Konuya başlamadan önce uzun zamandır siteyi ihmal ettiğim için herkesten özür dilerim. İş yoğunluğundan kaynaklı zaman problemim nedeni ile siteye aylardır yazı ekleyemiyordum. Her neyse bari güzel bir bilgilendirme yazısı yazayımda hatamı az da olsa telafi etmeye çalışayım.
Hepimizin sürekli dillendirdiği bir düşüncedir, Windows Appliationlarını Web den çalıştırmak. Bununla ilgili birçok çalışma yapıldığını da duymuşuzdur hepimiz. Ancak Windows Applicationlarının yapısı ve çalışma mantığının Web sayfalarından çok farklı olması nedeni ile bu konuda çok birşey yapılamamaktadır. Bir windows application da bulunan nesneler (button, checkbox, combobox, listview vs.) birer Window nesneleridir. Kendi aralarında iletişimlerini Windows Messaging denilen bir yapı ile mesajlaşarak yaparlar. Webde ise html nesneler explorer ve benzer browserlarda gösterilirken DOM nesnelerine dönüştürülüp COM nesneleri şeklinde çalışırlar.
Bir Windows Application developerı olarak bunu yıllardır defalarca düşünmüşümdür. Yani bir şekilde Windows Applicationlarını Webden çalıştırmak her zaman istediğim bir şeydi.
Bir kaç ay önce, Kenji Obata, Code Systems yada diğer adı ile Xenocode'un kurucusu bana bu fikirden söz ettiğinde oldukça heyecanlanmıştım. Kenji'nin planı hali hazırda varolan VM (Virtual Machine) lerinide kullanarak istenilen Windows Application'ı Webden çalıştırmaktı. Bana bunun ne kadar mümkün olduğunu, mümkünse bunu yazıp yazamayacağımı sorduğunda ben çok düşünmeden bu işin olabileceğini söyledim. Şimdi bu proje hayatta, ve test aşamasında. Xenocode'un VM ürünü sayesinde virtualize edilmiş herhangi bir program istenildiği takdirde Web'den Surface denilen yapı sayesinde çalıştırılabiliyor.
Şimdi çoğunuzun, arka planda programı indirip çalıştırıyorlardır dediğinizi tahmin ediyorum. Doğru arka planda istenilen bu windows application download edilip çalıştırılıyor. Ancak bu 2 farklı modda yapılıyor.
1 - Normal Mode: Bu modda virtualize edilmiş programı arka planda indirip webde çalıştırıyoruz.
2 - Streaming Mode: Bu moda ise application'ın gerekli yerlerinin indirilip çalışması şeklinde oluyor. Yani Xenocode XStream teknoloji sayesinde programın tamamı gelmeden program çalıştırılıyor. Buda ornegin 1GB lik bir programin %5 lik kısmı geldiğinde çalışıyor olmasını sağlıyor. Düşünün Türkiye gibi internette hız diye birşeyden söz edilemeyen bir ülke için ne büyük bir avantaj. Çok büyük bir programı çalıştırıyorsunuz ve 1 dakka içinde program download edilmiş gibi çalışıyor ve siz kullanmaya başlıyorsunuz. Siz kullandıkça bulunduğunuz yere göre analiz yapıp sonra yapacağınız muhtemel işlemler için gerekli yerleri arka planda indirmeye devam ediyor. Örneğin geçen gün bir demo için hazırlanan oldukça yüklü bir oyunu (177MB) 1 dakikadan kısa bir sürede webden hemde ADSL bağlantısı ile çalıştırıp oynadım. Oldukça zevkli bir tecrübe idi. İstediğiniz programı sadece 1 dakika içinde hemde zahmetsiz bir şekilde bilgisayarınızda çalıştırmak fikir olarak bile insana harika geliyor, bunu birde tecrübe etmek çok daha zevkli.
Ayrıca cache mekanizması sayesinde indirilen bu program localde cachleniyor ve sonraki girişlerinizde sizi indirme belasından kurtarıyor.
Evet bu ürünler sayesinde artık Windows Applicationlarını Web üzerinden hemde download/setup etmeye gerek kalmaksızın çalıştırabiliyoruz. Hemde bunu yaparken programın bilgisayarınıza zarar vermesini engellemek adına tamamen ayrılmış bir ortamda programlar çalıştırılıyor. İndirdiğiniz programın yapacağı ayar değişiklikleri, registry kayıtları tamamen virtual bir ortamda yapılıyor. Yani İşletim sistemize ve bilgisayarınıza zarar vermesi tamamen engellenmiş oluyor.
Bu ürünlerin geliştirilmesi halen devam ediyor. Oldukça profesyonel, çoğunluğu Microsoft'tan ayrılma bir ekip tarafından bir çok şart gözününde bulundurularak geliştirilmeye devam ediliyor, ancak bu hali ilede oldukça başarılı diyebiliriz. Burada şunuda unutmamak gerekir, bu platformun Surface (Windows Applicationlarını Webde çalıştırma) kısmını geliştiren biri olarak şunu söyleyebilirim ki, gerçekten bu tarz bir ürün geliştirmek oldukça zordur. Dünya üzerinde standart ve standart olayan birçok windows application var ve tüm bunları ortak bir yapı içinde çalıştırmaya çalışmak oldukça zahmetli bir iş, hali ile bu ürünün elbetteki şu aşamada bazı sıkıntıları olacaktır, ancak genel ilerleyiş ve varolan sistem içerisinde oldukça başarılı olduğunu çok rahat söyleyebilirim. Microsoft'un bile backward compability konusunda harcadığı emeği düşündüğümüzde bu işin zahmeti daha rahat anlaşılabilir.
Ürün hakkında daha detaylı bilgi almak için Xenocode'un web adresine bakabilirsiniz. Orada birçok virtualize edilmiş programı setup etmenize gerek olmaksızın çalıştırabilirsiniz. Özellikle web developerlar için tüm Browserlara tek sayfadan setup etmeksizin ulaşabilecekleri ve kendi sitelerini farklı browserlarda rahatlıkla test edebilecekleri Browsers page'ini tavsiye ederim. İlk hazırladığımızda oldukça ses getirmişti. XStream ve Surface'le çalışan örnekler ise şu anda demo aşamasındalar ve birçok stability testlerinden geçiyorlar, sanıyorum bir kaç hafta içerisinde XStream ve Surface modunda çalışan applicationlarıda yine Xenocode'un web sitesinde public kullanıma açmış olacağız. Şu aşamada indireceğiniz programlar setup gerektirmeyen Virtualize edilmiş programlar olacaktır.
XStream ve Surface stabil hale geldiğinde yapılacak duyuruyu yine buradan sizlere bildireceğim, o zamana kadar müsadenizle.
Şimdilik herkese kolay gelsin, İyi çalışmalar