Archive for the “N-Tier” Category


Com teknolojisinden bagimsiz bir datasnap mimarisi delphi 2009 ile birlikte karsimiza cikiyor. Kullanimi oldukca basit olan bu yeni mimari ile 3-katmanli uygulama gelistirmek cok daha kolay olacak.

Tiburon ile yaptigim ufak bir demoyu buraya tiklayarak online olarak izleyebilir ya da buraya tiklayarak videoyu bilgisayariniza indirebilirsiniz. Videodaki projenin kaynak kodlari ise kisa bir sure sonra burada..

Comments 1 Comment »

Bloglardan takip edebildigim kadariyla yakin bir zamanda cikacak olan Delphi 2009 (Tiburón) hakkinda ki bazi fikirlerimi paylasmak istedim sizinle.

1- Unicode destegi.
Artik Delphi 2009 ‘un idesi, vcli , compileri herseyi artik unicode destekli. Hatta delphi urun yoneticisi bu durumu vurgulamak icin Unicodified tabirini kullanmayi uygun gormus. Veritabani baglantilari , bilesen isimleri , temel string tipi , mesajlar falan hersey artik unicode. Unicode destegi sizin icin gerekli ya da gereksiz olabilir ama eninde sonunda kacinilmazdi ve delphi 2009 ile bu destek karsimiza cikti. Simdi bundan sonra neler olabilir , ne gibi durumlarla karsilasabiliriz soyle bir liste yapmaya calisalim.

  • Delphi 2009 ile yaptiginiz uygulamalar artik win98 lerde calismayacak. Geriye uyumluluk adina bircok seyden vazgececegiz. Aslinda bu konudan cok emin degilim ama unicode degisikliginin compiler seviyesinde yapildigini dusunursek % 99 ihtimal win98 lere artik elveda diyebiliriz.
  • Artik cince sitelerde gordugumuz kodlari anlamamiz ve modifiye edip kendi projemizde kullanmamiz cok daha zor olacak. Eskiden string degerler haric geriye kalan ifadeler ingilizce oldugundan kodlari okuyup anlamamiz daha kolay oluyordu. Simdi cinliler herseyi unicode var diye kendi harflerinde yazarlarsa isler arap sacina donecek :)
  • Unicode yillardir alistigimiz ansii karakter setinden cok farkli. Uzun yillardir unicode destegine sahip dillerde bile bircok kisi hala bu karakterlerin duzgun bir sekilde saklanmasi ve gosterilmesi ile ilgili problemler yasarken bu problemleri bizlerinde yasamasi kacinilmaz. Alismak biraz zaman alacak ve bu arada epey bir sac bas yolabilirsiniz.
  • Unicode benim cok ihtiyac duydugum bir sey degildi acikcasi ve bu nedenle Tiburon kullanmak su an icin bana biraz luks kaciyor. Hayatimda unicode destegine ihtiyac duydugum sadece bir tane proje gelistirdim onda da TNT nin unicode destekli bilesenleri isimi fazlasiyla gormustu. O nedenle su an icin delphi 2007 ile yoluma devam etmek bana daha cazip gibi gorunuyor lakin urunu canli canli minciklamadan kesin birsey soylemek istemiyorum.
  • Temel String sinifi artik unicode bir string tipi oldugundan eski kodlarinizi Tiburon da derlediginizde bazi garipliklerle karsilazmaniz muhtemel olacaktir.
    Listbox1.Items.LoadFromFile(’c:\temp\MyListBoxItems.txt’,TEncoding.UTF8)
    tarzindaki kodlarinizin duzgun dosya formatlari ile duzgun calisabilmesi icin artik parametre olarak sonuna hangi karakter turuyle islem yapmak istediginizi belirtmeniz gerekebilir.
  • unutmayin! SizeOf(Char) artik geriye 1 degil 2 degerini donderecek. string = UnicodeString , PChar = PWideChar

2- Object Pascal’a eklenen yeni ozellikler

  • Win32 icin Generics metodlar. Generics metodlar hakkinda bilgi icin bkz:1 , bkz:2
  • Anonymous Methodlar. Bu metodlarin tam olarak nerde nasil ne ise yarayacagini anlayabilmis degilim. Bizim procedur ve functionlarin icinde kullandigimiz embed metodlara benziyor ama bloglarda verilen orneklerde tam olarak varolus nedenini cikartabilmis degilim. bkz:3

3- Yeni datasnap mimarisi
Acikcasi Tiburonda Datasnap ile ilgili iyilestirmelerin yapilacagi yol haritasinda soyleniyordu ama bu iyilestirmeden oteye gecmis ve karsimiza JSON/RPC tabanli yepyeni bir mimari getirmisler. Unicode olmasa da bu yeni Datasnap mimarisini kullanmak icin bilgisayarima Tiburon kurabilirim. Datasnap artik cok gicik oldugum ve kullanmayi bi turlu sevemedigim COM/DCOM bagimliligindan tamamen kurtulmus. Artik sunucuyu register etmek gibi dertlerimiz olmayacak ve eminim bu yeni mimari cok daha kolay kullanilabilir , basit , sade ama cok guclu olacak. Yeni datasnap mimarisi DBExpress ile icice tasarlarmis. Birbirleriyle iletisimleri ust duzeyde ve datasnap kullanirken dbexpress kullanmak olmazsa olmazlardan olacak gibi duruyor. Bu iki nokta aklima su dusunceyi getiriyor benim. DBExpress zaten yuzde yuz object pascal ile yazilmis bir framework ve platform bagimsiz sayilir. Datasnap COM/DCOM ve midas.dll ortamlarina bagimliydi. Tiburon ile bu bagimliligi kaldirmislar. Yani ileriki bir zamanda CodeGear Delphiyi cross platform yapmak icin onunde bulunan buyuk bir engelden kendini kurtarmis oldu. Bilmem anlatabildim mi ? :)

Bu kismin eksik kalan tek yanina hala Firebird icin dogal dbexpress surucusunun kutudan cikmiyor olmasini ekleyebiliriz.
bkz:1
bkz:2
4- Com ve ActiveX mimarisinin yenilenmesi
Bu yenilenme tam olarak neleri iceriyor cok net bilgim yok ama en azindan bloglarda yer alan resimlerde Import ActiveX gibi islevler yenilenmis ve biraz daha gelistirilmis.

5- ideye eklenen yeni ozellikler
Component palete bir tane edit ekleyerek daha onceden yaptigimiz bilesen aramasini biraz daha anlasilir ve mantikli bir hale getirmisler. Islev olarak ideye yeni bir ozellik getirmesede Delphi 2007 de o ozelligi kullandikca aklima hep Git dugmesi olmayan internet explorer surumleri geliyordu. Acmak istedikleri siteyi adres cubuguna yazdiktan sonra Entera basmak gerektigini bilmeyen bircok kullanici site acilacak diye dakikalarca beklemislerdi. :)

6- VCL e eklenen yeni bilesenler…
Bana gore Cagetory Panel haricindeki diger bilesenlerin “dostlar alisveriste gorsun” mantigiyla VCL e eklendigini dusundugum gereksiz bilesenler toplulugu.
bkz1

Sonuc olarak delphi 2007 ve daha onceki versiyonlar ile gelistirmis oldugunuz bir proje icin getirmis oldugu cok ahim sahim bir ozellik delphi 2009 da mevcut degil. Ancak yeni bir proje baslarken Unicode destegini de yaniniza almak ve windows 2000 den öncesine elveda demek isterseniz ya da yeni yaptiklari Datasnap nasil birseymis diye merak ederseniz mutlaka edinmeniz gereken bir surum olmus. Onun haricinde Delphi 2007 ile yola devam etmeniz halinde kacirmis olacaginiz pek fazla birsey mevcut degil delphi 2009 versiyonunda. Hatta bana kalirsa eski projelerinizi baliklama delphi 2009 gecirirseniz unicode ayagina basiniz cok agriyabilir. Bir zamanlar Delphi 3 ten Delphi 4 e gecerken real tipinde yapilan degisikligin zamaninda bizi ne kadar ugrastirdigini bilenler ne demek istedigimi cok iyi anlayacaktir :)

Comments 3 Comments »

Daha once burada 3-katmanli mimari konusuna ufak bir giris yapmistik. simdi sira bir sonraki adima geldi. Ufak bir ornek gelistirerek olayi biraz daha somut bir hale getirelim.
(more…)

Comments 1 Comment »

Yazılım dünyasında ihtiyaçlar ortaya çıktıkça bu ihtiyaçlara cevap verecek çeşitli yazılım mimarileri ortaya çıkmış. İlk önceleri tek katmanlı (1-Tier) yazılımlar varmış. Mesela paradox veritabanı kullanarak geliştirilmiş bir yazılım. Bu mimaride veritabanı ve uygulama aynı bilgisayar uzerinde bulunur.

(more…)

Comments 3 Comments »