Archive for the ‘ASP.Net’ Category

30
Haz

Microsoft Chart – ASP.NET 3.5

   Posted by: admin

ASP.NET 3.5 projelerine add-on olarak kurabileceğiniz efektif grafik raporlar ortaya koymanızı sağlayan Chart kontrolünün yeni versiyonu yayınlandı.

Umarım ilerleyen günlerde vakit ayırıp demo yapma fırsatım olur.

MsChart eklentisini indirmek için tıklayın.

19
Mar

ASP.Net MVC Framework 1.0 yayınlandı

   Posted by: admin

ASP.Net MVC Framework RTW (Release To Web) 1.0 yayınladı. Mix 09 konferansında ScottGu‘nun duyurduğu ve henüz bloğunda bahsetmediği sürümü buradan indirebilirsiniz.

Bu zamana kadar 10 sürüm yayınlanmış:

  1. December 2007 CTP
  2. Preview 2
  3. Preview 2.5 (April CodePlex release)
  4. Preview 3
  5. CodePlex Preview 4
  6. Preview 5
  7. Beta
  8. RC 1
  9. RC 2
  10. 1.0

ASP.Net MVC Framework official sitesinden tutorial video ve uygulamalara erişebilirsiniz.

Projenizde Asp.Net Ajax kullanmak istiyorsunuz, peki nelere dikkat etmelisiniz ?

1. Localhost’a güvenmeyin:Uygulamalarınızı test edebilmek için mutlaka bir test sunucunuz olmalı. Burada     ideal olan projenin gerçekte çalışacağı ortama en yakını olmasıdır. En azından ucuz bir Asp.Net hosting paketi alarak test sunucusu olarak kullanabilirsiniz. Güncel versiyon oluştukça bu sunucuda test edebilirsiniz.

2. UpdatePanel’i efektif kullanmalısınız.

3. UpdatePanel ‘i kullanıcının bir süre bekletileceği noktalarda kullanın,örneğin Gridview refresh/filter olurken. Kullanılmaması gereken yerler: doğrulama işlemlerinde (validation),  DropDownList seçimi değiştiğinde veya radiobutton / checkbox seçildiğinde (kullanıcı gerçek zamanlı cevap bekler) sunucu tarafında bir kod çağrılacağı zaman.

4. Script servisleri (AJAX kütüphaneleri aracılığıyla web service çağrıldığında) kullanıyoruz, fakat bazı zamanlarda projeye impelemente etmek çok güç olabiliyor. Bu noktada dengeyi korumalısınız, elde ettiğiniz avantajlar (kullanışlılık, hız kazancı, aynı işlemi tekrar partial rendering ile gerçekleştirdiğinizde üstün performans) bütçe ve proje sürecini etkileyecektir. Script servislerini sunucu tabanlı validasyonlarda kolaylıkla kullanabilirsiniz.

5. Default olarak tüm UpdatePanel’ler sayfa her partial postpack olduğunda yenilenir: UpdateMode attribute yardımıyla conditional ve  sadece güncellenmesi gereken yerlerde güncellensin şeklinde değiştirebilirsiniz. (MyPanel.Update)

6. UpdatePanel’ler mümkün olduğunca kısa olmalı: Script Manager her istek gönderdiğinde tüm viewstate değeri gönderiliyor, fakat elde ettiğiniz cevap,  updatepanel’in update edeceği büyüklüğe bağlı olarak değişecektir.Kompleks sayfalarda tüm sayfayı kaplayan bir updatepanel kullanmamalısınız.

7. Bir istekte birden fazla paneli refresh edebilirsiniz: Sayfanın yerleşimini UpdatePanel’e göre ayarlamak zorunda değilsiniz. UpdatePanel’in birisi sağ üst köşede bir yerde olsun, (upperPanel). Diğeri de en altta olsun, (lowerPanel). Bu sayfada bir request oluştuğunda, sunucu tarafında hangi panelin update edileceğini belirlemelisiniz:

upperPanel.Update();
lowerPanel.Update();

8. Sayfanızın request yöneticisi Singleton’dur: Bunun anlamı, aynı anda sadece bir isteğe cevap verilebilir.Sayfamızdaki UpdatePanel içerisinde iki buton olduğunu hayal edelim. (A butonu textbox1 i update ediyor, B butonu textbox2 yi update ediyor.) Eğer kullanıcı A butonuna tıklarsa, request sunucuya gönderilecek, B butonuna tıklarsa önceki request iptal edilecek ve sadece textbox2 nin update edildiğini göreceğiz. Gerçekte siz bunun farkına varmayacaksınız, çünkü kontrollerin göstereceği etkiye güveniyorsunuz. (Eğer request iptal edilirse,yeni request veriyi HTML kontrolünde tutacaktır), fakat sayfanızın mantığı çerçevesince, iki farklı çözüm bulunmakta:Scritpt servislerini kullanarak sayfanızı DTHML kullanarak update etmek, UI (arayüz) devre dışı bırakmak ve request in gönderilmesine ardından  işlenmesine imkan sağlamak.

9. AJAX enabled bir web sayfasından Web Servislerine erişmek özel bir durumdur: Script servislerini kullandığınızda, web servisine erişmek istemeniz sıradan bir durum değildir.Performansı arttırmak için ve aynı zamanda  geliştirmeyi kolaylaştırmak için, XML SOAP yerine JSON tercih etmelisiniz.(web servisinize sadece “scriptable”  attribute eklemeniz yeterli olacaktır. AJAX kütüphanesi hemen hemen bütün serialization işlemini otomatik yapacaktır).Diğer bir ilginç nokta da normal bir web servisi sürekli durumunu korumaz,buradaki asıl mesele, web servisinizin oturum durumunu aktifleştirmektir. Session nesnelerinizi ASP.Net uygulamaları ile paylaşabilirsiniz , bu yaklaşımla web servisiniz bir çok veriyi ve fonksiyonelliği uygulamanızla paylaşabilecektir.Örneğin; Hangi kullanıcı giriş yaptı?

10. Viewstate performansınız düşüürebilir: Partial rendering işlemini hatırlarsanız  (UpdatePanel…) ViewState her request için gidip gelir, eğer sayfanızda çok büyük bir viewstate oluşmuşsa perfomansını kötü etkileyecektir, ViewState kontrolünüzü devre dışı bırakabilirsiniz. (Gridview olması en kritik noktalardandır).ViewState ‘in olması demek extra 1 Mb büyüklük demektir. Diğer bir ipucu da, kontrollerin ID isimlendirmelerini kısa tutmaktır. Her kontrol için tekrarlanarak performans kaybına neden olurlar.

11. Standard Asp .net 2.0 validatorleri %100 Partial Rendering yapmıyorlar (UpdatePanel): Scott Guthrie bunun için bir örnek paylaşmıştı, gerekli DLL dosyalarını indirerek ve web.config ayarlarınızdan birkaç değişiklik yaparak istenilen çalışma sağlanmış olacaktır.

12. Eğer tam olarak ihtiyacınızı karşılıyorsa AJAX toolkit güzel bir tercih olacaktır: AJAX toolkit içerisinde size kodlama zamanı kazandıracak süper kontroller barındırıyor. Örneğin; AutocompleteExtender, ModalPopup, Accordions, Cascading dropdowns, … fakat her zaman %100 sizin ihtiyacınızı karşılamayabilirler. Müşteriye tesliminden önce mutlaka testleri yapılmalıdır.

13. Herhangi bir MVP, MVC tasarım deseni kullanmadan önce: AJAX ve Partial Rendering ile ilgili uyuşma sorunu olup olmadığını kontrol edin, örneğin; bazı implementasyonlar UpdatePanel’leri desteklemiyor.

14. AutocompleteExtender kontrolü: binlerce kayıt içeren combobox lar için mükemmel bir yaklaşım.Veriyi çekerken script servislerini kullanıyor, roket hızında 😉

15. Her işlemde AJAX kullanmamak gerekiyor: Kimi zaman AJAX modunda düşünüldüğünde, bazı fonksiyonellikler kullanıcı tarafında bir javascript ile çözümlenebiliyor (örneğin; bazı seçimler neticesinde Combobox içine küçük değerlerin yüklenmesi gibi ). Sade client javascript çözümleri, AJAX çözümlerinden daha hızlıdır. (sunucuya git gel olmadığından).

16. Child page veya user control içerisinden Script Manager’e erişebilirsiniz: Scriptmanager’ı Masterpage içerisinde tanımlayabilirsiniz. Herhangi bir child page veya user control erişiminiz sağlanmış olur; Code behind tarafında ASPX içerisindeki ScriptManagerProxy veya ScriptManager.Getcurrent(this.Page).

17. Gerektiğinde UpdatePanel içerisindeki bir buton postpack gerçekleştirebilir: updatepanel de bir değişiklik yapmanıza gerek kalmadan,pageload anındayken ScriptManager.RegisterAsyncPostBack(yourControlID) diyerek postback yaptırmaya zorlyabilirsiniz.

18. RegisterStartupScript kullanarak javascript kodunu sayfa yüklendiğinde nasıl çağırabiliriz: Yine benzer bir metod uygulayarak, scriptManager.RegisterStartupScript.

9
Oca

Web projelerinize IM kontrolü ekleyin

   Posted by: admin

Windows Live Messenger ekibinin yayınladığı gömülebilir messenger kontrolü (embeddable messenger control) ile herhangi bir programlama yapmadan kolaylıkla web projelerinize ekleyebilirsiniz.

HTML kodunu oluşturmak için Messenger settings page sayfasını ziyaret etmelisiniz.

Sitenizi ziyaret eden herjangi bir kimsenin sizinle konuşma talebilini kabul etmek için grant permission sayfasındaki kutucuğu işaretlemelisiniz.

Şimdilik sadece mesajlaşma işlemi bulunuyor. İlerleyen günlerde font,renk, smileys gibi özelleştirilebilir olmasını bekliyoruz.

Bildiğim kadarıyla bu script# Microsoft’un bugüne kadar yayınladığı ilk script# oldu.

Kontrol ile ilgili gelişmeleri şuradan http://msdn2.microsoft.com/en-us/library/aa905675.aspx forumu şuradan http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1987&SiteID=1. takip edebilir, sorularınızı geliştiricilere yöneltebilirsiniz.