Asp.Net ile birlikte gelen Profile Api’si bir çok açıdan web sitelerimizi kişileştirmede kolaylık sağlıyor. Bazı temel şeyler için Session nesnesini kullanmak yerine Profile nesnesi ile kolaylıkla kişileştirme işlemlerini yapabiliyoruz. Ancak Visual Studio 2005 ve 2008 versiyonlarında bulunan Web Application modeli ile yeni bir web uygulaması yapmaya çalıştığımızda Profile nesnesini kullanmak Web Site projelerindeki kadar kolay olmuyor. Bunun nedeni Web Application modeli ile değişen derleme olayı.

Web Site şeklinde bir projede Profile için gerekli ayarları web.config’de yaptığınız zaman, Visual Studio ProfileCommon diye,ProfileBase’den türeyen bir sınıf oluşturur ve intellisense de Profile nesnesi olarak bu sınıfa ulaşabiliriz. Bu sınıf web.config’de yapmış olduğumuz Profile özelliklerini barındırır. Bu sayede kodlama yaparken bunlardan kolayca yararlanabiliriz. Ama web application tarzı projelerde bu şekilde olmaz. Çünkü Visual Studio ProfileCommon sınıfını yaratmaz. Bunun nedeni web application tipindeki projelerdeki item’ların tek tek derleniyor olması ve bir birinden bağımsız olarak çıkması.

Ama tabi ki bu Web Application tarzı projelerde Profile Api’sini kullanamayacağımız anlamına gelmiyor. Profile nesnesi,yukarıda da bahsettiğim gibi ProfileBase sınıfından türüyor. HttpContext.Current.Profile şeklinde bu ProfileBase sınıfına ulaşabilirsiniz.

ProfileBase p = (ProfileBase)HttpContect.Current.Profile;

p["Firstname"] = “Arda”;

p["Lastname"] = “Çetinkaya”;

şeklinde web.config’deki profile özelliklerine ulaşabilirsiniz. Profile Api’sinin kullanımı hakkında http://www.csharpnedir.com/makalegoster.asp?MId=644 adresindeki Burak Selim Şenyurt’un makalesine de göz atmanızı tavsiye ederim.

Asp.net’de bazen hangi kontrolün PostBack olduğunu anlamamız gerekebilir.Hangi kontrol PostBack işlemini tetikliyor bilgisi, bir sonraki işler için oldukça gerekebiliyor,özellikle Partial Rendering tarzı Ajax uygulamalarında işimize yarayabilir.Aşağıdaki kod parçacağı ile bu işlemi yapabilirsiniz…

ScriptManager sm = ScriptManager.GetCurrent(this);
string controlId = sm.AsyncPostBackSourceElementID;
Control cntrl = this.FindControl(controlId);

 

.NET Framework 3.5 ve Visual Studio 2008′e tamamen uyumlu olarak ACT’in yeni versiyonu çıktı.
http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=11121 adresinden indirebilirsiniz.

Volta      Microsoft Live Labs, çok katmanlı web uygulamaları geliştirmede, geliştiriciye kolaylık sağlaması açısından yeni bir yaklaşım ile karşımıza çıkıyor. Bir web uygulamasını, çok katmanlı bir mimarinin web tarafındaki kullanıcı arayüz katmanı olarak düşünebiliriz aslında. Bundan dolayı çok katmanlı web uygulamaları konsepti ne kadar anlamlı tartışılır. Ama gelişen teknoloji ve büyüyen internetten dolayı standart “application” kavramının yavaş yavaş “web application” kavramına dönüşmesi sanırım bu olaya biraz açıklık getirir. Çok dağılmadan Volta’ya geri dönelim.
Volta aslında bir çeşit derleyici ve kütüphane. MSIL kodunun tekrar derlenmesi ile uygulamanın client ve server için gerekli olan kısımlarını oluşturuluyor, ilgili web servis iletişimlerini oluşturup bunların güvenliklerini sağlıyor. Çok karmaşık gibi gelse de, aslında geliştirmesi oldukça kolay bir ortam sunuyor Volta bize.
Peki bunları nasıl yapıyor? Refactoring,retargeting ve remodulating şeklinde 3 aşamada bütün bunlar oluyor.
Refactoring;  Tek katmanlı uygulamanızı, dağıtık mimari için uygun hale getiren aşama bu. Tek katmanlı bir uygulama nasıl oluyorda dağıtık bir mimariye dönüşüyor? Ne kadar mantıksız? Banada ilk başta bu şekilde mantıksız gelmişti. Ancak daha sonraki araştırmalarımda Volta’nın uygulama geliştirme yaklaşımı, tek katmanlı bir yapı düşünerek geliştirmeyle başlamaya dayanıyor. Yani uygulamanızı geliştirirken uygulamayı bir .NET client uygulaması olarak geliştirmeye başlıyor, geliştirme aşamasında client ve serverda olacak kısımları belirtebiliyorsunuz. Refactoring aşaması bu olayı gerçekleştiriyor. Yani aslında bu şekilde mimarinizi sonradan “refactor” etmiş oluyorsunuz. İşte Volta’nın ortaya çıktığı nokta da bu aslında. Mevcut mimarinizi bozmadan ama etkin kullanım için geliştirmek.
Retargeting; Bu aşamada MSIL kodundan, Javascript kodları yaratılıyor. Bu sayede server-client ilişkisi .NET Framework’nün sağladığı imkanlar ile güçleniyor. Ajax bu güçlerden birine örnek.
Remodulating; Web uygulamaları geliştirirken, çeşitli browser’lara göre bazı şeyleri düşünmek gerekir.Kimi javascripti desteklemez,kimi desteklese de bir yerde patlar…Remodulating aşamasında Volta sizin için bunları düşünüyor ve gerekli düzenlemeleri kendi ayarlıyor.Şu aşamada sadece IE ve Firefox desteği var ama ilerleyen sürümlerde diğer browser destekleride olur herhalde.
Volta yaklaşamı ile uygulama geliştirebilmek için Visual Studio 2008 ve .NET 3.5 Framework’ü bilgisayarınızda yüklü olmalı. http://labs.live.com/volta/ adresinden indireceğiniz dosyayı kurtuktan sonra Visual Studio 2008’de Volta uygulamaları geliştirmek için çeşitli template’ler çıkacaktır.
Bir sonraki yazı da Volta ile ilgili basit bir örnek ile bütün bu yukardaki kavramları biraz daha somutlaştırmaya çalışacağım.
Volta: http://labs.live.com/volta

Ajax Extensions 1.0 ile gelen ve sanırım en çok kullanılan kontrol olan UpdatePanel’den biraz bahsetmek istiyorum. Kendi yaptığım uygulamalarda oldukça sık kullanıyor olmam böyle bir yazı yazmam için beni tetikledi. Tetikledi derken, trigger mantığından da biraz bahsedeceğimi söylemek isterim. Bu yazıda basit bir UpdatePanel örneği ve bu UpdatePanel’i dışarıdan başka bir kontrol ile nasıl tetikleriz bundan bahsedeceğim. Umarım bir şekilde işinize yarayan bir şeyler olmuşmasını sağlar. Yapacağımız şey oldukça basit bir örnek olacak; RadioButtonList’den seçtiğimiz elemanlara göre UpdatePanel içindeki ASP.NET kontrolünü güncelleme.
Read the rest of this entry »