Ben artik web ayaklarinda hep Silverlight tercih ediyorum. O zaman ne yuzde yuz web ne de yuzde yuz desktop oluyor. Hibrit, ASP, ASP.Net'e oranla desktop programcilarinin daha kolay anlayacagi birsey gibi geldi bana (ya da ben sahsen hoslanmadim diyelim ASP, ASP.Net, foxisapi, PHP vs ile calismayi). Ilk yaptigimda isin icinde VFP vardi ve sonuc beklentimin otesinde iyi oldu. Ozetle yaptigim:
1) VFP'de neleri yapacagima karar verip onun icin OLEPUBLIC class yaptim (simdiki aklim olsa sanirim oraya da VFP karistirmaz tumunu C# ile yapardim).
2) VFP COM'u TlbImp ile .Net'e import ettim:
tlbImp VFPServer.dll /out:VFPProxy.dll /namespace:VFPLink
3) Silverlight RIA uygulamasi yarattim (daha dogrusu o zamanlar Navigation Application - RIA hazir degildi).
4) Bir adet WCF data servis yarattim.
5) Yarattigim data serviste interface'de VFP'deki her public metod icin bir interface metod tanimladim (hepsi uygulamada dogrudan VFPLink interop cagiriyor ilgili parametreler ile)
6) Silverlight sayfalarini yaptim.
7) Calistirdim:)
Guzel yanlari:
a) Normalde benim makinem bir proxyinin arkasinda. Makinem uzerinden istesem de birisine test icin IIS hizmeti veremiyorum. Oysa SL uygulamasini kullandirabildim! Hala da istersem evden baglanip kullaniyorum. Proxyler,firewaller dert olmaktan cikti. Musterininkine baglanmak bile kolay artik (ki dunyanin obur ucu).
b) Browserda calissa da istersen desktopa aliyorsun normal desktop uygulamasi gibi calisiyor (out of browser destekli).
c) Arayuz tek kelimeyle muhtesem. Benim artistigim ve ekran dizaynlarim yerlerde surunur normalde ben bile sasirdim yaptigim efektlere (nasil becerdim emin degilim cogunlukla hazir SL toolboxlari, ornekleri kullandim). Mesela bir "combo" var. Icinde ID ve Isim alanlari var. Ister ID yaz, ister isim yazdigina gore dropdown kismi filtreleniyor (tabii nasil filtrelenecegini sen yaziyorsun C# ile ama aynisini VFP'de yapabilecegimden hic emin degilim). Kullaniciya verdiginde onlar pek dikkat etmiyor ve normal birseymis gibi sadece 'a guzel' diyorlar ona bozuluyorum o ayri:)
d) Klasik web zimbirtilari gibi stateless olmamak cok hos. Eventler elinin altinda yalnizca asenkron calismaya alisman gerekiyor.
Kotu yani: Bir iki dakikalik dilimde, 800+ baglanti olursa ve server PIII 800 ise kilitlenme oluyor. Kullanimi 10 dk'ya filan yaymak gerekiyor (musterinin konfigurasyonu oyleydi, makineyi degistirtmek zorunda kaldik kaldirmiyor diye). Bu yuku acaba ASP.Net olsaydi kaldirirmiydi diye dusunuyorum ama hic denemedim.
Neyse reklamlar bu kadar. www.silverlight.net'de bir suru ornek uygulama var. Basta karisik gelmisti ama sifirdan, nasil yapilir filan bakip basit bir uygulamayi kullanima sokmak bir hafta surdu. Yakinda yeni bir proje daha var, onda mevcut web (west-wind web connection kullanmistim) baglantimizi Silverlighta cevirip gelistirmek (wc ile gelistirmek bir yana, en ufak bir ek/degisiklik yapma istegi tuylerimi diken diken ediyor). En azindan bir goz at.
Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)