02 Mar 2007 Microsoft MVP Seçildim... Kategori: Benden Etiketler: ASP.NETMicrosoft 26 Yorum 01.03.2007 Tarihi ile ASP.NET Kategorisinde Microsoft MVP(Most Valuable Professional) seçildim. Bu haberi bana veren Bilgeadam Yazılım Egitmeni olan Suat Tuncer e Tesekkürü borç bilirim...ASP.NET MVPLERCengiz Han Hakan Ulagan Mehmet Nuri ÇANKAYA Coskun SUNALI Cem SISMAN Zafer Demirkol Sem Göksu
27 Şub 2007 ASP.NET Whois Sorgusu Kategori: ASP.NET Etiketler: ASP.NET 0 Yorum Merhaba arkadaşlar, bu makalemizde ASP.NET ile whois sorgulama işleminin nasıl yapıldığına bakacağız.ASP.NET Whois Sorgusu Bir domain adı almak istedigimizde ik olarak baskası tarafından register edilip edilmedigine yani almak için müsait olup olmadıgına bakarız. Iste bende bu makale de ASP.NET ile whois sorgusunun nasıl yapılacagını anlatacagım. Web kaynaklarını uzaktan sorgulamak için System.Net.WebClient sınıfını kullanırız. Bu sınıf internet kaynaklarına erismek için WebRequest sınıfını kullanır. Burada, bir byte array döndüren ve kaynaktan veriyi indiren WebClient sınıfının Download metodu vardır. Byte olarak gönderilen veri sisteme ANSI olarak encode edilir. Alınan veriyi parse etmek için Regex sınıfını kullanılır. Ihtiyacımız olan veriyi elde etmek için de Match sınıfını kullanacagız... Peki bu bilgileri nereden sorgulayacagız? Bu bilgileri tutan whois serverları kullanarak istedigimiz domain adını sorgulayabiliriz. Ben bu projemde http://www.directnic.com/whois Whois serverını kullanacagım. Simdi örnegimize geçelim; Ilk olarak Bir Web Projesi olusturalım... Projemize domain adlarını sorgulamak için kullanacagımız ve domain adını girmemiz için formumuza bir textbox, domain adı uzantısını seçmemiz için bir dropdown, sonucu görüntülemek için label ve whois sorgusunu yapmak için button ekleyelim. Benim olusturdugum Whois Sayfası asagıdaki gibidir; Simdi bu islem için kodlarımızı yazalım; Evet simdi projemizi çalıstıralım; Simdi domain adını sorgulayalım; Whois sonucu bu domain adının daha önceden register edilmis oldugunu gördük; simdide register edilmemis bir domain adı sorgulayalım; Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz semgoksu@semgoksu.com Kaynaklar http://www.codeproject.com
23 Şub 2007 ASP.NET Multi Upload Kategori: ASP.NET Etiketler: ASP.NETASP.NET 2.0 8 Yorum Merhaba arkadaşlar, bu makalemizde web sitelerinde çok sık kullandığımız file upload kontrolünü genişleterek Multi Upload kontrolü oluşturacağız.ASP.NET Multi UploadFile upload kontrolü bazen tek basına yetmez. yani tek dosya upload'u bizim için yeterli olmaz. Birden fazla dosya upload etmek istedigimizde bunu tek tek yapmak bizim için oldukça zor olur. Hele upload edilecek dosya sayısı belli degilse yada degiskense... Burada biz kendi çözümümüzü gelistirmeliyiz. Ben de bu makale de size kendi gelistirmis oldugum çözümü anlatacagım. Bunu nasıl yapacagız ? Run time'da sayfamıza file upload kontroller ekleyerek bu islemi gerçeklestirebiliriz. protectedvoid Page_Load(object sender, EventArgs e) { FileUpload myFileUpload = new FileUpload(); myFileUpload.ID = "Upload_Dosyasi"; this.form1.Controls.Add(myFileUpload); } Bu kod sayfa açıldıgında formumuza formupload kontrolü ekleyecek.. Evet tek bir kontrolü eklemek istedigimizde bunu yapmak yukarıdaki kadar kolay. Simdi bu islemi çoklu upload için yazalım. Ilk olarak sayfamıza bir adet Panel(upload kontrolleri bu panele ekleyecegiz), DropDownList(Kaç adet File Upload kontrolü sayfamıza eklenecek bunu belirleyecek ben item olarak 3,5,7,10 ekledim) Button(File Upload kontrolünde seçilen dosyaları upload edecek) Benim olusturdugum sayfa asagıdaki gibidir; Sayfamız ilk açıldıgında default olarak 10 adet file upload kontrolü eklensin. protected void Page_Load(object sender, EventArgs e) { for (int i = 1; i <= 10; i++)//10 kere dön { FileUpload myFileUpload = new FileUpload();//Yeni File Upload Kontrolünin instance'ni al myFileUpload.ID = "Upload_" + i;//Erismek için ID'ni belirle this.Panel1.Controls.Add(myFileUpload);//Kontrolü panel içine ekle }}Evet simdi projemizi çalıstıralım; Sayfamıza 10 dan daha az yada daha fazla kontrol eklemek isteyebiliriz. Bunun için seçecegimiz Dropdownda deçecegimiz göre degisecek. Ilk olarak Dropdownun AutoPostback özelligini True yapalım. Simdi gerekli kodları yazalım. protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { Panel1.Controls.Clear(); for (int i = 1; i <= Convert.ToInt32(DropDownList1.SelectedValue); i++) { FileUpload myFileUpload = new FileUpload(); myFileUpload.ID = "Upload_" + i; this.Panel1.Controls.Add(myFileUpload); } } Projemizi tekrar çalıstıralım ve ve dropdowndaki degeri degistirelim; Evet 3 adet kontrol eklendi... Simdi sayfamıza ekledigimiz kontroller için upload islemini yapalım. Button'umuza tıklayalım; FileUpload myFileUpload; // Unutmayalım !!protected void Button1_Click(object sender, EventArgs e) { for (int i = 1; i <= Convert.ToInt32(DropDownList1.SelectedValue); i++) { myFileUpload = ((FileUpload)Panel1.FindControl("upload_" + i.ToString())); if (myFileUpload.HasFile) { myFileUpload.SaveAs(Server.MapPath("images/"+myFileUpload.FileName)); Response.Write(i.ToString()+". Dosya "+ " Upload Edilen Dosya Adı:"+myFileUpload.FileName + "<br/>"); } }} Evet simdi isterseniz bunu test edelim; Evet simdi dosyalarımızı upload edelim... Image klasörü içine gidip upload kontrollere bakalım gerçekten eklemismi : ) EVET 1.gif,2.gif ve 3.gif image klasörümüze eklendi... Eger 3 tane upload yetmediyse dropdowdan istedigimiz sayıyı seçelim ve istediginiz kadar upload yapalım : ) Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Örnek Kodları buradan indirebilirsinizSem GÖKSUMCP | MCAD.NET | MCTSsemgoksu@semgoksu.com Kaynaklarhttp://msdn.com
21 Şub 2007 Alfabetik Sayfalama Kategori: ASP.NET Etiketler: ASP.NETASP.NET 2.0ASP.NET 4.0 1 Yorum Merhaba arkdaşlar, bu makalemizde Gridview kontrolü üzerinde Alfabetik sayfalamanın nasıl yapıldığına bakacağız. Alfabetik Sayfalama Bu makalemizde gridview de klasiklesmis olan numeric bazlı yada navigation bazlı sayfalama düzeninden vazgeçip gridview üzerinde Alfabetik sayfalama yapacagız. Bu bize ne saglayacak? Örnegin bir fihrist, sözlük vs.. yaptıgımız da A harfindekileri kayıtları bulmak isteriz. Ya da sadece B harfindeki kayıtları... Klasik sayfalama (1.2.3 yada prev., next) bize burada çözüm olmayacaktır. Iste bunu çözmek için Alfabetik sayfalama en iyi çözümdür. Simdi isterseniz bu çözümü örnekleyelim; SQL Server 2005 içindeki AdventureWorks Database'indeki Person.Contact tablosundaki kayıtlarımı gridview ile listeleyelim. Ilk olarak bir web projesi açalım; Ben alıskanlık olarak ajax projesi açtım. Daha sonra formumuzda ne yapacagımıza geçelim. Sayfamızda Alfabetik olarak sıralanan harfler olacak ve biz bu harflere tıkladıgımız zaman; gridview de bu harfe baglı olan(örnegin A ile baslayanlar) kayıtlar listelenecek. Ilk olarak formumuz üzerine bir adet panel ve gridview ekleyelim. Paneli ekledik çünkü bu panelin üzerine LinkButton'lar olusturacagız. Evet simdi isterseniz projemize hareket katalım ve projemize AJAX özelliklerini de ekleyelim. Bunun için formumuza Script Menager, UpdatePanel ve UpdateProgress de ekleyelim. Evet simdi butonlara tıkladıgımızda gridview refresh olmadan kayıtları listeleyecek. Isterseniz ilk olarak Panel üzerinde listelenecek olan Alfabetik Paging'i olusturalım. protected void CreateLink() { string[] letters = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "All"}; for (int i = 0; i < letters.Length; i++) { LinkButton myLetter = new LinkButton();Yeni Bir LinkButton olusturduk myLetter.ID = myLetter + i.ToString(); myLetter.CommandName = "LetterPaging";// myLetter.CommandArgument = letters[i].ToString(); myLetter.Text = letters[i].ToString() + " "; myLetter.Command += new CommandEventHandler(myLetter_Command); // Burada Command Eventini olusturuyoruz. this.PagingPanel.Controls.Add(myLetter);//Olusturulan Butonu Panel'e ekliyoruz } } Simdi isterseniz pagingimizi test edelim; Tabi önce bu Void'i form_load da çagırmalıyız. Pagingimizi olusturduk... Simdi Bu linklere tıklanınca olusacak olan kodları yazalım. Yukarıda myLetter.Command += new CommandEventHandler(myLetter_Command); Olusturdugumuz Command eventi içerisini yazalım; private void myLetter_Command(object sender, CommandEventArgs e) { if (e.CommandName.ToString() == "LetterPaging") { if (e.CommandArgument.ToString() != "All") { GetContactsByLetter(e.CommandArgument.ToString()); } else { GetAllContacts(); } } } Burada Command Name'e göre ve gelen commandArgument degerine göre 2 islem yapılıyor; Eger CommandArgument degeri All ise GetAllContacts Voidini çagırıyor degilse de GetContactsByLetter("A") voidini çagrıyor. Simdi bunları olusturalım. SqlConnection Cnn; SqlDataAdapter Da; DataSet Ds; private void GetAllContacts()//tüm kayıtları listele { Cnn = new SqlConnection("Data Source=localhost; initial catalog=AdventureWorks; trusted_connection=yes"); if (Cnn.State == ConnectionState.Closed) Cnn.Open(); Da = new SqlDataAdapter("SELECT top 20 FirstName + ´ ´ + LastName as ContactName, EmailAddress FROM Person.Contact", Cnn); Ds = new DataSet(); Da.Fill(Ds, "TBL"); GridView1.DataSource = Ds.Tables[0]; GridView1.DataBind(); } private void GetContactsByLetter(string Letter)//Gelen Harfe göre listele { Cnn=new SqlConnection("Data Source=localhost; initial catalog=AdventureWorks; trusted_connection=yes"); if (Cnn.State == ConnectionState.Closed) Cnn.Open(); Da = new SqlDataAdapter("SELECT top 20 FirstName + ´ ´ + LastName as ContactName, EmailAddress FROM Person.Contact where Firstname like ´" + Letter + "%´", Cnn); Ds = new DataSet(); Da.Fill(Ds, "TBL"); GridView1.DataSource = Ds.Tables[0]; GridView1.DataBind(); } Pagingimizden sonra Listelenecek olan kayıtlarımız da hazır; ama kullanıcı sayfaya geldiginde sayfayı bos görmesin bunun için GetAllContacts voidini form_load da çagıralım. Tabi linkleri olusturmak için CreateLink voidinide... protected void Page_Load(object sender, EventArgs e) { GetAllContacts(); CreateLink(); } Projemizi çalıstıralım; Tüm kayıtlar listelendi; Simdi a harfine tıklayalım; Postback olmuyor ve Ajax UpdateProgress ile kullanıcıyı bilgilendiriyoruz... Evet iste A harfi ie baslayan kullanıcıları listeledik : ) Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz semgoksu@ semgoksu.com Kaynaklar http://msdn.com http://www.codeproject.com
20 Şub 2007 AJAX ve AJAX Control Toolkit Kurulumu Kategori: AJAX Etiketler: ASP.NETASP.NET AjaxASP.NET 2.0 3 Yorum Merhaba arkadaşlar, bu makalemizde ajax ve ajax control toolkit’in nasıl kurulduğundan bahsedeceğiz.AJAX ve AJAX Control Toolkit Kurulumu Yazılıramı takip edenler de bilirler, simdiye kadar hep ajax control toolkit nesnelerinden bahsettim. Ama gelen sorular ve istekler üzerine bu makale de ajax özelliklerinin ve ajax control toolkit nesnelerinin Visual Studio'ya nasıl ekleneceginden bahsedecegim. Ilk olarak web uygulamalarımızda AJAX uygulamalarını gelistirebilmek için ASP.NET 2.0 AJAX Extensions 1.0'i yüklememiz gerekir. ASP.NET 2.0 AJAX Extensions 1.0'i asagıdaki adresten indirelim. ASP.NET 2.0 Ajax Extension 1.0 Next, Next, Next... Evet AJAX 2.0 Extension'ı kurduktan sonra, su anda en son versiyonu yayınlanan ASP.NET 2.0 AJAX Futures January CTP yi indirelim. Bu bize ASP.NET 2.0 AJAX yada ASP.NET AJAX Control Toolkit için yeni özellikleri yüklememizi saglar. ASP.NET 2.0 AJAX Futures January CTP yi asagıdaki adresten indirelim. ASP.NET 2.0 AJAX Futures January CTPSimdi bunu kuralım. Klasik olarak Next, Next, Next... ASP.NET 2.0 AJAX Futures January CTP yi de kurduktan sonra geriye kalan tek sey Control toolkit nesnelerinin Visual studio'ya eklenmesi. Ajax Control Toolkit'i asagıdaki adresten indirelim. Ajax Control ToolkitSimdi indirdigimiz bu dosyalara göz atalım. Ajax contollerinin yer aldıgı sample site ve derlenecek olan projelerin yer aldıgı bir klasör bulunuyor. Simdi AjaxControlToolkit Projesini açalım ve projemizi derleyelim. Projemizi derledikten sonra Visul Studio Toolbox üzerinde yeni bir tab olusturalım. Bu tab üzerinde sag tıklayalım ve açılan pencereden Choose Item 'ı Seçelim Açılacak olan pencere de browse tıklayalım ve derlemis oldugumuz AjaxControlToolkit.DLL dosyasını seçelim. Open seçenegini seçelim. Gördüldügü gibi Ajax nesneleri artık tüm projelerimiz de kullanmak üzere hazır : ) Simdi Visual Studio üzerinde yeni bir proje açmaya deneyelim; Artık projemiz de ajax özelliklerini ve ajax nesnelerini kullanabiliriz... Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS www.semgoksu.com Örnek Kodlar için mail adresimi kullanabilirsiniz semgoksu@ semgoksu.com Kaynaklar http://ajax.asp.net