Henüz yeni ögrendigim(ihtiyacim olmamisti su ana kadar) bir özelligi sizlerle paylasmak istiyorum. Web sayfalarinda bulunan input alanlarina girilen degerlerin tarayici tarafindan hatirlatilmamasi(saklanmamasi) için input alanlarinin autocomplete özelligini(attribute) "off" yapmak gerekiyor.
Örnek : <input type="text" autocomplete="off" name="Ad">
Böylece ayni alana daha önce baskalari tarafindan ne girildigi gözükmez. Bu özellikle birden çok kisiye açik bilgisayarlarda kullanilan uygulamalarda veri gizlemek için kullanilan bir yöntemdir.
Bildiginiz gibi .NET 'in dagitik uygulama gelistirme teknigi Remoting kütüphanesine dayaniyor. Remote olan nesneler iki modelde olabilir: Singleton ve SingleCall. Singleton modelinde remote nesneden sadece ve sadece bir adet nesne olusturulur. Yani her çagrimda ulastiginiz nesne host tarafinda aynidir. Boyle olmasina ragmen eger remote nesneye 5 (lease time) dakika içerisinde erismezseniz o nesne host tarafindan bellekten silinir ve çagrim yaparsaniz tekrar yeni bir nesne olusturulur.
Bu durum singleton kavramina aykiri düsmektedir. Bu durumu yaptigim bir uygulamayi test etmek için bir kahve almaya gitmem neticesinde kesfettim. Programi test edip bir ara verdikten sonra yeniden test edince server tarafindaki nesnenin state(durum) ini kaybettigini gördüm. Bunun bir bug yada bilmedigim bir neden den olabilecegini düsündüm ve arastirmaya basladim. Arastirmalarim bunun bir bug degil "by design" yani bir tasarim seçenegi oldugunu gösterdi. Peki Singleton bir nesnenin sonsuz ömürlü olmasi için ne olmasi gerekiyor! Bu sorunun cevabi ise MarshalByRefObject sinifnin InitializeLifetimeService metodunu override etmek ve geriye null döndürmek. Yani remote nesneleri asagidaki gibi tasarlamak gerekiyor.
public class MyRemoteObject : System.MarshalByRefObject
{
public override Object InitializeLifetimeService()
{
return null;
}
.....
}
Microsoft'un P&P takimi henüz Enterprise Library 'ye eklemedigi ama arka planda gelistridigi bir takim yapilar mevcut. Bunlardan bir tanesi ve en önemlisi "Data Mapping Application Block" idi. Geçtigimiz günlerde son hali yayinlandi. Bu yapi sayesinde Data Access Logic bilesenlerimizi (DALc) rahatlikla veritabanindan ve veri erisiminden soyutlayabiliyoruz. Data Mapping A.B ile CRUD fonksiyonlarini konfigürasyon bazli dosyalarla yonetebiliyoruz, hatta transaction ve enttity caching gibi ayrintili islemleri bile konfigürasyon dosyalarindan rahatlikla yonetebilmekteyiz.
Data Mapping A.B ile ilgili detayli bilgiye ve ilgili dosyalara
Not : Data Mapping A.B Enterprise Library'nin 2005 Haziran da çikan sürümü ile uyumlu çalismaktadir.