Wednesday, October 03, 2007

Bildiğiniz gibi asp.net uygulamalarında textboxlara karakter sınırı koymak için maxlength adlı propertisini kullanabiliriz. Fakat textbox'ın textmode=multiline yapınca her nedense bu property çalışmıyor.(Bug mı acaba?)

 

Bu sorunu ekteki javascript'i kullanarak aşabiliriz.

   

    <script type="text/javascript" language="JavaScript">

    function textCounter(field,cntfield,maxlimit) {

        if (field.value.length > maxlimit)

            field.value = field.value.substring(0, maxlimit);

 

        else

            cntfield.value = maxlimit - field.value.length;

       }

    </script>

 

 

 

       <table>

           <tr>

               <td>

                   <input readonly type="text" name="Sayac" maxlength="3" value="230" style="width: 29px" />

                   Kalan karakter sayısı

               </td>

           </tr>

           <tr>

               <td>

                   <asp:TextBox runat="server" ID="txtKisitli" Width="250px" Height="100px" TextMode="MultiLine"

                       onKeyDown="textCounter(document.aspnetForm.txtKisitli,document.aspnetForm.Sayac,230)"

                       onKeyUp="textCounter(document.aspnetForm.txtKisitli,document.aspnetForm.Sayac,230)">

                   </asp:TextBox>

               </td>

           </tr>

       </table>

 | 
Wednesday, October 03, 2007 5:04:10 PM (GMT Standart Saati, UTC+00:00)
 Friday, September 28, 2007

Bir ignliiz üvnsertsinede ypalin arsaitramya gröe, kleimleirn hrfalreiinn
hnagi sridaa yzalidkilrai ömneli dgeliims. Öenlmi oaln brinci ve snonucnu
hrfain yrenide omlsaimyis. Ardakai hfraliren srisai kriaisk oslada
ouknyuorums. Çnükü kleimlrei hraf hraf dgeil bir btüün oalark oykuorumusz.
Biakn nsial da düügzn oudkuunz, iignlç diegl mi?
Sveilegr.

 

fi yuo cna raed tihs, yuo hvae a sgtrane mnid too
Cna yuo raed tihs? Olny 55 plepoe out of 100 can.
i cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg.

The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy,
 it dseno't mtaetr in waht oerdr the ltteres in a wrod are,
the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghit pclae.
The rset can be a taotl mses and you can sitll raed it whotuit a pboerlm.
Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Azanmig huh?
yaeh and I awlyas tghuhot slpeling was ipmorantt!



Friday, September 28, 2007 11:45:57 PM (GMT Standart Saati, UTC+00:00)
 Tuesday, August 28, 2007
Tuesday, August 28, 2007 1:57:14 PM (GMT Standart Saati, UTC+00:00)
 Saturday, July 28, 2007
 #
 

Evet Sonunda terzi kendi söküğünü dikti.

İş arkadaşım ve sevgili abim Erbuğ, Microsoft Expression Studio ile geliştirdiği sitesini yayına aldı.

Her zaman ki kalitesini burda da göstermiş.

Ayrıca burdan YazGeliştir'e yazdığı Microsoft Expression Studio makalelerine ulaşabilirsiniz.

 

http://www.erbugkaya.com

 

 | 
Saturday, July 28, 2007 12:02:57 AM (GMT Standart Saati, UTC+00:00)
 Saturday, June 23, 2007
Saturday, June 23, 2007 1:14:38 PM (GMT Standart Saati, UTC+00:00)
 Wednesday, June 06, 2007

10. Eğitimciler Zirvesi 06-07 Haziran tarihleri arasında Crowne Plaza'da gerçekleşti.

Bir çok değerli konuşmacının katıldığı zirvede, bende ilk gün,

 benimde içinde bulunduğum yazılım ekibinin geliştirdiği Eğitim Portalını katılımcılara tanıttım.

Wednesday, June 06, 2007 9:16:37 AM (GMT Standart Saati, UTC+00:00)
 Thursday, April 12, 2007

Daha öncede söylemiştim database dizayn etmek zor iş diye.

Sanırım  birileri beni duymuş ve bakın ne yapmış.

Thursday, April 12, 2007 1:05:09 PM (GMT Standart Saati, UTC+00:00)
 Sunday, March 04, 2007

   Döküman yönetimi çağımızın sorunu. Halen basit masraf formlarımızın bile çıktısını alıp kişi kiş dolaştırıp en son muhasebeye kendi ellerimizle götürüyoruz. Bu zaman kaybı olduğu gibi onlarca ağacın kesilmesi anlamında geliyor. Şirket çalışanları basit bir masraf formunun kimden kime geçeceğini bilmek zorunda mı? 3 kuruşun peşine düşmüş gibi dakikalarca kime imzalatması gerektiğini öğrenmeli mi? Hayır. :) Adobe LiveCycle, bu ve bunun gibi iş akışı gereken her türlü işi bizim için yönetebilir.

Örneğin yine o basit masraf formlarımızdan başlayalım;

Şirketimizde, 1000ytl üzeri masraflar önce icra kurulu üyesine sonra amiri sonra muhasebeye gitsin.
                  1000ytl altında ki masraflar ise birim müdürü, ik ve daha sonra muhasebeye gitsin.

Eğer icra kurulu üyesi 30 dakika içinde form üzerinde hiçbir işlem yapmazsa form otomatik olarak birim müdür yardımcısına mail olarak gitsin ve X veritabanında ki y tablosundaki z kolonuna masrafı kaydetsin.

 

Evet bu yukarda örneklediğim senaryoyu ve daha karmaşık senaryoları Adobe LiveCycle ile rahatlıkla yönetebilr, Zaman ve para kaybını önleyebilrsiniz. Ürünü incelemek ve daha detaylı bilgi almak için http://www.adobe.com/ ziyaret edebilir, yada behlul.behram@bilgeadam.com adresine sorularınızı gönderebilirsiniz.


Adobe LiveCycle ürününün;

LiveCycle Designer
LiveCycle Forms 
LiveCycle Workflow modüllerinin Trainer sertifikalarını, Munich'te katıldığım TTT eğitimini tamamlayıp, sınav ve sunumlarını yaparak aldım.

Destekleri için çalışma arkadaşlarım ve Evren Ayan hocama sonsuz teşekkürler.

 | 
Sunday, March 04, 2007 10:10:26 PM (GMT Standart Saati, UTC+00:00)
 Tuesday, February 06, 2007

Üyelik sistemlerinde sıklıkla karşılaşılan sorulardan biri de "Beni Hatırla" özelliğidir, makalemde Cookie kullanarak "Beni Hatırla" opsiyonunu login sayfalarına nasıl adapte edebileceğinizi anlatacağım.

Web sitesinin kullanıcıları hatırlaması için bir çok yöntem var. Örneğin Mac adresini kullanıcı ile eşleyerek veritabanına yazmak bunlardan biri. Fakat hem kullanım alanının çok verimli olmayışı hem de kullanılabilirliliğinin azlığı nedeniyle pek kullanılan bir yöntem değildir. Diğer ve etkin bir yöntem ise Cookiler.

Cookiler kullanıcı tarafında  saklanan text tabanlı dosyalardır. Bu dosyaların yönetimi, içeriği ve erişimi tamamen cooki'yi yaratan web sitesine aittir. Cookilerin ömürlerini biz belirleyebildiğimiz gibi, içerik değişiklikleri, silinmesi, expire olması gibi tüm özelliklerini de server tarafından yönetebiliriz. Ayrıca kullanıcı isterse cookieleri kapatabileceğinden yada internet tarayıcısı üzerinde bunları rahatlıka temizleyebileceğinden, tüm sistemi kesinlikle cookiler üzerine kurmamalıyız.  Bu yazıda Cookileri web sitesine giriş yaparken, kullanıcıyı hatırlamak için gerekli olan değeri kullanıcının bilgisayarına (Client Side) kaydederek saklamak için kullanacağız. Cookiler kullanıcı tarafında saklandığı için potansiyel güvenlik açıklarını da beraberinde getirir. Bu nedenle, kullanıcıyı tanımlamada kullanacağımız bilgiler, sistemimizi minimum düzeyde tehlikeye sokacak düzeyde olmalıdır. Bu nedenle cookie de saklanacak veri kullanıcı adı ve şifresi olmamalıdır.

Cookie yönetebilen bir login.aspx nasıl olmalı :

Bu uygulamada cookilere yazıcağımız değeri şifrelemek yerine veritabanında unique indetifier olarak tanımladığımız UserId ile dolduruyoruz. Bu bize cookie okunduğu zaman o kullanıcıyla ilgili herhangibir bilginin dışarı sızmasını engelliyor.


Bu sistem bize projemizin business tarafında kullanıcıadı ve şifre denetleyerek kullanıcları tanıma yönteminin dışında UserId kullanarak kullanıcı tanımlama fonksiyonuna ihtiyacımız olduğunu gösteriyor.

Öncelikle buttonumuzun click eventini yazalım:

 

     Cookie.buss buss = new Cookie.buss(); 
     DataTable user = new DataTable();   
     user = buss.GetUser(TextBox1.Text.Trim(), TextBox2.Text.Trim());
//ekrandan girilen kullanıcı adi ve şifreyi doğrulayan kullanıcı varmı?
         
if (user.Rows.Count>0)
         {
            
if (CheckBox1.Checked) //Beni hatırla checkbox'ı
            {
             Response.Cookies[
"behluluser"].Value = user.Rows[0]["UserId"].ToString(); //Cookiemizi yaratıp guid'imizi içine yazalım.
             Response.Cookies[
"behluluser"].Expires = DateTime.Now.AddYears(30);  //Cookiye 30 yıl yaşama şansı verelim.
            }
          Response.Redirect(
"http:\\www.behlulbehram.com"); //kullanıcı başarıyla girdi istediğimiz sayfaya yönlendirelim.
         }
        else 
            Label1.Text = "kullanıcı bulunamadi";

 

Not: Farklı windows kullanıcıları aynı siteye girselerde farklı cookiler yaratılır. Birbirlerini ezmezler. Örneğin A kişisi sistemimize girip beni hatırla derse
A'nın "behluluser" cookie'si yaratılır. Aynı bilgisayaradan B kişisi accountunu açip sisteme giriş yapıp beni hatırlayı seçerse B'nin "behluluser" cookiesi yaratılır.

Şimdide login.aspx'in page loadunda  nasıl bir işlem yapmalıyız onu görelim;

if (!IsPostBack)
{
   if (Request.Cookies["behluluser"] != null)//Kullanıcı Tarafında daha önceden yarattığım Cookie Varmı? 
   

      Cookie.
buss buss = new Cookie.buss();
      
DataTable user = new DataTable();

      
string myguid= Request.Cookies["behluluser"].Value; 
      user = buss.GetUserById(myguid);
         
if (user.Rows.Count > 0)//cookiedeki user gerçekten database de de var
            
{
               Response.Redirect(http://www.behlulbehram.com);
            }
        
else//cookie deki bilgi yanlış  biri oynamış ... silelim.
            
{
              Response.Cookies[
"behluluser"].Expires = DateTime.Now.AddYears(-30);
            }
   }
}

not: Cookileri silmek yerine expire etmek daha verimli bir yöntemdir.

ve login.aspx'i tamamlamış olduk. Derleyip çalıştırabiliriz.

Umarım cookileri nasıl kullanıcağımızla ilgili azda olsa fikir sahibi olmuşsunuzdur.

Sorularınız için

behlul.behram@bilgeadam.com
behlulbehram@gmail.com

Kolay gelsin

Behlul.

 | 
Tuesday, February 06, 2007 7:20:21 PM (GMT Standart Saati, UTC+00:00)
 Monday, December 25, 2006

Globally Unique Identifier.

Ne demek bu Guid ?

Tekil 128 bit lik bir değer diyebiliriz. Bu tekillik oyle boyle bir tekillik diğil ama bir rivayete gore bir pc de uretilen guid değerini bir daha üretmek mümkün değil. Genelde büyük databaselerde primary key olarak kullanılıyor. Yada heran kullandığımız browserlerın açtığımız sayfaların sessionlarını guid kullanarak tutması iyi bir örnek olabilir.

Kullanımı basitce şöyle :=

using System;

namespace Behlul
{
  class MainClass
  {
    static void Main(string[] args)
    {
      System.Guid guid=System.Guid.NewGuid();
      Console.WriteLine(guid.ToString());
      Console.ReadLine();
    }
   }
 
}

işte bir guid := 6e42cdb4-e441-4c8f-8a77-1d2478ffb65a

 

kolay gelsin...

 

 | 
Monday, December 25, 2006 9:49:41 PM (GMT Standart Saati, UTC+00:00)
 Thursday, December 14, 2006

Proje analizi gerçekten çok önemlidir.!!!

Eksik veya yanlış yapılan analiz proje bitimine doğru developerları sıkıntıya sokabilir.
Analiz için bence başlangıç noktası Veri Tabanı olmalı.
Zaten Code generator gibi yazılmış araçların çoğu veri tabanındaki alanlara gore kod üretiyor.
Eğer veri tabanını doğru ve eksiksiz yaratabilirsek en azından başlangıcı doğru yapmış oluruz.
İşte size veri tabanı yaratırken yararlanabileceğiniz güzel bir  kaynak.

Teşekkürler Okan Barlas

Thursday, December 14, 2006 3:31:18 PM (GMT Standart Saati, UTC+00:00)
 Friday, November 10, 2006

Microsoft has released its new operating system, Windows Vista, to hardware manufacturers, marking the end of the development phase and the beginning of the distribution phase.
Everything's not perfect, but Microsoft expects to have all the glitches under control by the company's self-imposed January 2007 product release date.  :)

Bekleyenlerin gözü aydın. Release'i bekleyenler açıklanan tarih : Ocak 2007

 

 | 
Friday, November 10, 2006 9:03:29 PM (GMT Standart Saati, UTC+00:00)
 Wednesday, November 08, 2006

İşte Arama Moturunda yeni bir devrim.

Alışageldiğimiz ara yüzlerden çok farklı olan bu uygulama Ekrandaki Hoş bayanın sorularınıza sesli bir şekilde cevap vermesi ile daha da ilginç bir hale gelmiş.

http://www.msdewey.com/

Wednesday, November 08, 2006 11:53:39 PM (GMT Standart Saati, UTC+00:00)

Sonunda kullanıma hazır.

http://msdn.microsoft.com/windowsvista/support/relnotes/netfx3/default.aspx

Buna ek olarak

Windows Presentation Foundation (WPF, önceden Avalon olarak adlandırılıyordu) 
http://en.wikipedia.org/wiki/Windows_Presentation_Foundation

Windows Communication Foundation (WCF, öceden Indigo olarak adlandırılıyordu) 
http://en.wikipedia.org/wiki/Windows_Communication_Foundation

Windows Workflow Foundation (WF)
http://en.wikipedia.org/wiki/Windows_Workflow_Foundation

Windows CardSpace (WCS, öceden InfoCard olarak adlandırılıyordu) 
http://en.wikipedia.org/wiki/Windows_CardSpace

Bu linkleri ziyaret etmenizi tavsiye ederim.

 |  | 
Wednesday, November 08, 2006 12:10:15 AM (GMT Standart Saati, UTC+00:00)
 Friday, November 03, 2006


Microsoft, Windows XP'yi sistemleriyle birlikte alanlara Vista'yı bedava dağıtacağını açıkladı.
 
 
Microsoft 26 Ekim'den sonra yeni PC'leriyle birlikte Windows XP alanlara ya indirim veya ücretsiz Vista edinecekleri kuponlar dağıtacaklarını açıkladı.

Kampanyanın 26 Ekim 2006'dan 27 Mart 2007'e kadar süreceği bildirildi. HP, Dell, Gateway, Toshiba, Fujitsu ve daha büyük veya ufak bir çok marka kampanyaya katılıyor.
Kullanıcıların ise tek yapacağı şey, yeni işletim sistemi için gönderi masraflarını karşılamak ve 31 Mart 2007'ye kadar işletim sistemlerini güncellemek.


 

Friday, November 03, 2006 12:05:21 PM (GMT Standart Saati, UTC+00:00)
 Tuesday, October 31, 2006

Şöyle güzel bir site açalım. Bol resim yazı grafik falan olsun.

sonra adres çubuğuna java script kodunu kopyala yapıştır yapalım.

Şimdi boş durmayalım sayfayı kendimize göre düzenleyelim.

Sürükle bırak metodu ile herşeyi serbestce değiştirebilirsiniz.

iyi eğlenceler :)

 

javascript:void(document.body.contentEditable="true");

Tuesday, October 31, 2006 11:09:44 PM (GMT Standart Saati, UTC+00:00)

Turk milletiyiz biz gerekirse teknolojiye ayak uydurmaz , teknolojiyi bize benzetiriz.

İşte Turk Windows Xp

Tuesday, October 31, 2006 10:57:01 PM (GMT Standart Saati, UTC+00:00)
 Monday, October 30, 2006

YARADANIN ' DELETE ' TUSUNA BASMASINA AZ KALDI GALİBA....???????

DÜNYACA ÜNLÜ İTALYAN KARİKATÜRİST BRUNO BOZETTO'DAN HARİKA BİR UYARI

http://www.bozzetto.com/flash/life.htm

Monday, October 30, 2006 11:07:58 PM (GMT Standart Saati, UTC+00:00)

Google'ın Code araması yapabilen bir engine ara yüzü olduğunu biliyormuydunuz?

http://www.google.com/codesearch


 | 
Monday, October 30, 2006 6:16:57 PM (GMT Standart Saati, UTC+00:00)
 Saturday, October 28, 2006
 #
 

İşte Yeni Internet Explorer 7.0

Hem kullanımı kolay hale gelen hemde gerçekten sevimli bir ara yuzu olan 7.0 eminim sizde çok seveceksiniz.



Burdan indirip sizde deneyebilirsiniz.

Saturday, October 28, 2006 9:28:12 AM (GMT Standart Saati, UTC+00:00)