Sefer Algan'ın Günlüğü

Günlüğüme hoşgeldiniz...

August 2005 - Posts

OOPSLA' 05 Ekim Ayında başlıyor
 

Object Oriented Analiz, tasarim, enterprise frameworkler ve tasarim metodolojileri konulari üzerine dünyada düzenlenen en önemli konferanslardan birisi OOPSLA' (OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES and APPLICATIONS) dir. Bu yilki OOPSLA konferansi 16-20 Ekim tarihleri arasinda San Diago'da gerçeklesecek. imkani olanlarin gitmesini tavsiye ediyorum. Firsat bulabilirsem katilmayi bende istiyorum.
Input alanların autocomplete="off" özelliği

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.

.NET Remoting ile Singleton Problemi

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;
  }

  .....

}

C# 2.0 Semineri
Persembe günü BT Akademi'de C# 2.0 semineri veriyorum. ilgilenenlere duyrulur. Detayli bilgi, adres ve kayit için tiklayiniz.
sys-con'da ilginç C#-JAVA atışması..


Java camiasindan ve www.sys-con.com  yazari Calvin AustinC#:Is the party over? isimli yazisinda bir çok hatali bilgisi ile birlikte C# in deger kaybettigini ve C# in o kadar da bahsedildigi gibi olmadigini anlatmis. Yanlis bilgilerle dolu bu yazisina hemen Microsoft yetkilisinden yine ayni sitede olmak üzere bir cevap yazisi geldi. Iki yaziyida okuduktan sonra degerlendirmeyi size birakiyorum.

Kendi görüsümü kisaca özetlemem gerekirse : Platformlar  ve diger her türlü bilgi sistemi insanlara faydali olsun diye yine insanlar tarafindan yaratiliyor. Ama bazi kisiler ve gruplar  kullandiklari platformlari dünyanin yegane platformu saniyorlar, hatta bazen isi abartip az bir bilgi  ile birbirlerini karalamaya çalisiyorlar. Soylediklerim hem Java hemde .NET camiasi için geçerli. Calvin Austin java grubunda önemli bir adam olabilir ama o .NET hakkinda yeterli olmayan bilgisi ile sys-con gibi önemli bir sitede atip tutmasi hiç hos olmamis. Sanirim o da yazdigina pisman olmustur bu yaziyi. Sonuç olarak hangi camiadan olursa olsun insanlarin bilmeden biseyler yazmasi hiç hos degil..
101 Samples with Fx 2.0

.NET Framework 2.0 daki yenilikleri en hizli sekilde ögrenmek ve uygulamalarinizda kullanabilmek amaciyla Microsoft FX 2.0 da gelistirilmis 101 örnek uygulama yayinlandi. Bu güzel örnekleri http://lab.msdn.microsoft.com/vs2005/downloads/101samples/default.aspx 

adresinden indirebilirsiniz.

.net fx 2.0 ve Compression
.NET Framework 2.0 yeni bir kütüphane ile birlikte geliyor. Duyaniniz oldumu bilmiyorum ama System.IO.Compression isim alani altinda sikistirma islemi yapan sinif var. Stream tabanli çalisan bu sinif GZipStream. Ilerleyen zamanlarda bu kütüpahenelerin kullanimina iliskin örnekleri csharpnedir.com sitesinde bulabilirsiniz.
Data Mapping Application Block Release Sürümü Çıktı

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 

http://workspaces.gotdotnet.com/dmab  adresinden erisebilirsiniz.
 
Not : Data Mapping A.B Enterprise Library'nin 2005 Haziran da çikan sürümü ile uyumlu çalismaktadir.
Steve Ballmer ve Scott McNeally
Sun Microsystem'in CEO'su Scott McNeally ile Microsoft2un CEO'su Steve Ballmer'in katildigi keyifli bir oturumun metni : http://www.microsoft.com/presspass/exec/steve/2005/05-13msftsun.mspx  Bos zamaninizda okumanizi öneririm.