01-09-2016, Saat: 10:35
Merhaba değerli üyeler,
Bu yazıda UniGUI hakkında fikir oluşturacak bir nebze tanıtacak temel bilgiler vermeye çalışacağım.
UniGUI, Delphi kullanıcılarının alıştığı hızlı uygulama geliştirme yapılarını temel olarak geliştiricilerin masaüstü programlama beceri ve deneyimleri haricinde neredeyse hiç ek bilgiye ihtiyaçları olmadan çok çok hızlı bir şekilde zengin web uygulamaları geliştirilmesine olanacak tanıyan (bence) oldukça başarılı bir üründür.
UniGUI , tamamen sıfırdan üretilen bir ürün olmayıp aşağıdaki diğer ürünlerinden istifade edilerek üretilmiştir.
ExtJS ve Sencha Touch
UniGUI, tarafından üretilen tüm tarayıcı çıktıları EXt JS JavaScript kitaplığını kullanır , Mobil / Tablet için geliştirilecek uygulamalarda ise Sencha Touct JavaScript kitaplığını kullanır, her iki kitaplıkta tüm web uygulama geliştirme ortamlarınca kullanılabilen genelde iş uygulamaları için daha uygun olan tüm görsel kontrolleri bünyesinde barındırır.
Indy
UniGUI , mevcut Indy i temel alıp adına uIndy dedikleri bir çok modifikasyonu içeren yeni bir Indy sürümünü kullanır, nihayetinde TuidHTTPServer (TidCustomHTTPServer) başta olmak üzere bir çok network operasyonu için özelleştirilmiş Indy bileşenlerini kullanır.
SynEdit
UniGUI , veri bilinçli olan olmayan tüm editörlerini ve diğer görsel bileşenleri SynEdit bileşenlerini miras olarak üretmiştir.
PNGImage
UniGUI ile üreteceğiniz uygulamalarda sistemin tarayıcıya basacağı görselleri geliştiricinin belirtebileceği 2 formattan biriyle yapar (JPEG ya da PNG) PNG seçildiğinde tüm imajlar sunucudan PNG olarak çıkartılır bu noktada UniGUI PNGImage isimli bileşen setini kullanarak bunu yapar.
CSSParser
Kullanıcılar her bir UniGUI görsel bileşenine isterlerse özelleştirilmiş CSS ler yazabilir bu bileşen bu noktada devreye girer.
UniGUI de geliştirilen uygulamalar birer HTTP Web Server uygulamasıdır, ISAPI dışında tercih edilen türler kendi içlerinde otomatikman birer HTTP Server uygulaması da barındırır.
UniGUI ücretli bir üründür (Mobil bileşenleri dahil paketi 890 USD) , deneme sürümünü http://www.unigui.com/download/docman buradan indirerek işe başlayabilirsiniz.
Deneme sürümünün öğrenmeyi engelleyecek bir kısıtlaması olmamakla birlikte en önemli kısıtlamaları şöyledir ;
Aktif oturum sayısı 3 ile sınırlıdır ve Form etiketlerinin değiştirilememesidir.
Kurulum tam otomatiktir , bileşenleri , yeni proje menüsüne UniGUI proje seçeneklerini ve ExtJS kitaplığını yükler.
Dağıtıcağınız uygulamalarla beraber uygun ExtJS kitaplığı sürümünü de mutlaka dağıtmanız gerekir.
Kurulum sorunsuzca tamamlandığında (Eğer önceden SynEdit , CSSParser ve PNGImage bileşenlerinden birini ya da tümünü bir şekilde kendiniz yüklediyseniz kaldırmanız gerekir ) ,
İlk UniGUI uygulamamızı oluşturmak için hazırız.
Bu örneği Delphi XE2 ile oluşturacağım diğer IDE sürümlerinde de hemen hemen aynı olduğunu düşünüyorum
File-->New-->Other menülerini izleyerek aşağıdaki ekrana ulaşalım, "uniGUI for Delphi" bölümünden "Application Wizard" ı seçelim, hızlı bir başlangıç için Application Wizard ı kullanmak yerinde olacaktır. Bu makalede değinmeyeceğim ancak zaten anlatacaklarımla tamamen uyumlu olduğu için bahsetmek istiyorum UniGUI ile Mobile cihazlarda daha uygun görünen web uygulamaları da geliştirebilirsiniz bunun için Sencha Touch kitaplığını kullanan projeler üretir, "Mobile Application Wizard" ile aynı şekilde yola çıkabilirsiniz.


Projemize bir isim verelim ve "Standalone server" ı seçerek yola devam edelim.
Proje tüleri ;
Standalone Server : Kendi HTTP Server ını içinde barındıran bir sistem tepsisi masaüstü uygulamasıdır, bu seçildiğinde projeniz EXE olarak derlenir ve çalıştırıldığında hiç ekranda görünmeden direk sistem tepsisinde bir simge olarak çalışır, genelde uygulamayı DEBUG etmek için tercih edilir.
Standalone Server / ISAPI Module : uygulama varsayılanda Standalone Server olarak olarak oluşturulur ancak proje dosyasında (DPR) tanımlı bir derleyici direktifini kaldırarak uygulamamızı ISAPI Module olarak derlememize olanak tanır bu benim tercih ettiğim proje türüdür uygulamayı olgunlaştırana kadar standalone server olarak derlerim kolayca DEBUG edebilirim iş bitince kolayca ISAPI DLL olarak derler yayınlarım.
ISAPI Module : Uygulama IIS üzerinde çalıştırılabilir bir ISAPI DLL olarak derlenir büyük ölçekli ve oturum adedi yüksek olacak uygulamalarınızı IIS de ISAPI olarak çalıştırmanız alternatifsiz en doğrusudur.
Windows Service Application : Uygulama içinde HTTP Server barındıran bir Windows servis i olarak derlenir, küçük ölçekli projeler için uygundur hizmetlerde sessiz sakin çalışarak yayın yapar.
Standalone Server ı seçip devam ettiğimizde projeimizin temelleri bizim için otomatikman oluşturulur. Bir UniGUI uygulamasının çalışabilmesi için temelde en az şu 3 ü oluşur ,
1 - ServerModule : Uygulamamızın temel sunucu davranışlarını ve tanımlarını yönetebileceğimiz / özelleştirebileceğimiz modüldür TUniGUIServerModule sınıfından türer bir projede bir tane yer alabilir. Kullanılan ExtJS sürümü , ExtJS kitaplığını bulunduğu konumu , eğer Standalone Server ya da Windows servis uygulaması oluşturuyor isek HTTP Server ımızın hangi TCP portundan yayın yapacağı gibi yapıları kontrol eder. neredeyse her uygulamamız da mutlaka değişiklik yaptığımız ServerModule özellikleri aşağıda ki gibidir ;
- Favicon : uygulamamızın tarayıcı da görünen simgesi belirlenir (sadece *.ico ya müsade edilir)
- LoadingMessage : uygulamanız ilk açılırken çalışabilmek için istemciye yüklüce miktarda JS dosyası indirir bu esnada gösterilen mesajın içeriğini buradan değiştirirsiniz (Uygulama Hazırlanır lütfen Bekleyin.. gibi)
- MainFormDisplayMode : Uygulamanın ana formunun çerçevesiz klasik bir web sayfası gibi mi yoksa bir pencere gibi mi gösterileceğini belirtir (mfWindow , mfPage)
- Port : Eğer StandAloneServer = True ise anlam ifade eder HTTP Server ın yayın yapacağı TCP Port numarası buradan belirtilir varsayılanda 8077 dir.
- Title : Uygulamamızın adını belirten tarayıcı penceresinin caption ı dır.
Tabi ki bir çok önemli özelliği buradan değiştirebilirsiniz özellikle aşağıda vurguladıklarımı incelemenizi öneririm.

2 - MainModule : Uygulamamızın teması , ana ekran arka plan resmi ve bazı tarayıcı davranış ayarlarını bu modülden yaparız ayrıca en önemli diğer görevi bir nevi datamodul gibi uygulama genelinde erişmek istediğimiz görsel olmayan bileşenlerini bunun üzerine koyarız (veri tabanı bağlantı nesneleri vb..) her hangi bir formda "UniMainModule" fonksiyonuyla bu modüle ulaşabiliriz.
3- Main : Uygulamamızın ana sayfasıdır esasen sonradan ekleyeceğimiz formlardan hiç bir farkı yoktur buda TUniForm sınıfından türer, ancak uygulamamızın mutlaka bir ana sayfası olması zorunluluğundan dolayı projeye otomatikman dahil edilir.
Projemizde görsel öğeler olarak sadece UniGUI bileşenlerini kullanabiliriz, delphinin standart VCL kontrollerinin hemen hemen tamamının benzerlerini burada bulabilirsiniz.

Ayrıca projenizde görsel olmayan diğer tüm bileşenleri kullanabilirsiniz (örneğin Fast Report ile tasarladığınız raporu sunucu tarafında Ekrana göstermeden Prepare eder, PDF Export bilşeni ile PDF e çevirir ve UniGUI uygulamanıza Dosya olarak geri basabilirsiniz böylece raporlama da görsel sınırlarınız ortadan kalkar)
Uygulamamız UniGUI projesi ise UniGUI bileşenlerini, UniGUI Mobile projesi ise UniGUI Mobile bileşenlerini kullanmalısınız.
Evet projemize devam edelim, uygulama ana sayfası formu üzerine (MainForm) UniGUI Standart bileşen sekmesinde yer alan TUniButton , TUniEdit bielşenlerini ekliyorum.

UniButton1 in OnClick olayına UniEdit1 in Text ini değiştirecek kodu yazıyorum

Projemi derliyorum , sistem tepsisinde çalışmaya başlıyor..

ServerModule den bahsederken HTTP Server ın yayın yapacağı varsayılan portun 8077 olduğunu belirtmiştik şimdi tarayıcımızdan http://localhost:8077 diyerek projemize ulaşıyoruz.

Evet..! tıpkı masaüstü uygulaması tasarlar gibi tasarladık kodlarımızı yazdık ve aynı görüntüye tarayıcıdan ulaştık ne kadar kolay değil mi?
mevzu bahis bir web uygulaması olduğu için şöyle genel bir bilgi vereyim PAS dosyamız içine yazdığınız her türlü kod sunucu tarafında çalışacaktır yani UniButton1 nesnemizin OnClick olayı için tarayıcı sunucu tarafına bir AJAX çağrısı gönderecek uygulamamız bunu sunucuda çalıştıracak ve sonucu ilgili AJAX çağrısının dönüşüne eklenerek tarayıcıdaki ilgili değişiklik yansıtılacaktır. bir diğer durumda tüm UniGUI görsel bileşenlerinin "ClintEvents" özelliği mevcuttur sunucuya gelinmesine gerek olmayan işlemlerimizi performans arttırımı için istemci tarafında JavaScript kodları ile yapmamıza olacak tanır biraz önce sunucu tarafında yaptığımız işi ClientEvents yardımıyla istemci tarafında basitçe yapabilirdik.

ClientEvents.ExtEvents ı kullanıyoruz buraya yazılacak JavaScript kodları saf JS içerebileceği gibi esasen ExtJS framework ünün kullanım standartlarını barındırır, uniGuı uygulamamız projeye eklediğimiz tüm bileşenleri onlara verdiğimiz isimlerle birer ExtJS Objesi halinde javascript içinden erişilebilir hale getirir, Client Event yazarken obje referanslarında "FormAdı.ObjeAdı." şeklinde yol izlenmelidir. kullanabileceğiniz JS fonksiyon ve nesne metodları için ExtJS in Online Yardımına bakabilirsiniz. evet bu sayede kullanıcı butona tıkladığında hiç sunucuya gidilmeden doğrudan tarayıcıda UniEdit1 in içeriği değişmiş olacaktır.
Şimdi bir veritabanı bağlantısı sağlayıp kayıtları bir gridde gösterelim.
MainModule e tüm uygulama genelinde erişebileceğimiz veritabanı bağlantı nesnemizi ekliyorum (ben MyDAC ile MySQL üzerinde yapacağım) ve bildiiniz şekilde bağlantı ayarlarını yapıp hazır hale getiriyorum.

Ana formuma bir TUniDBGrid ve bildiğimiz TDataSource , ve uygun dataset i ( MyDAC kullandığım içinde bir TMyQuery) ekleyip bağlantıları yapıyorum (her şey VCL deki TDBGrid gibi)

Uygulamamı derliyorum ve tarayıcıdan erişiyorum.

İşte bu kadar kolay.. anlatacak çok şey var sorular geldikçe devam edelim..
Sağlıcakla kalın.
Bu yazıda UniGUI hakkında fikir oluşturacak bir nebze tanıtacak temel bilgiler vermeye çalışacağım.
UniGUI, Delphi kullanıcılarının alıştığı hızlı uygulama geliştirme yapılarını temel olarak geliştiricilerin masaüstü programlama beceri ve deneyimleri haricinde neredeyse hiç ek bilgiye ihtiyaçları olmadan çok çok hızlı bir şekilde zengin web uygulamaları geliştirilmesine olanacak tanıyan (bence) oldukça başarılı bir üründür.
UniGUI , tamamen sıfırdan üretilen bir ürün olmayıp aşağıdaki diğer ürünlerinden istifade edilerek üretilmiştir.
ExtJS ve Sencha Touch
UniGUI, tarafından üretilen tüm tarayıcı çıktıları EXt JS JavaScript kitaplığını kullanır , Mobil / Tablet için geliştirilecek uygulamalarda ise Sencha Touct JavaScript kitaplığını kullanır, her iki kitaplıkta tüm web uygulama geliştirme ortamlarınca kullanılabilen genelde iş uygulamaları için daha uygun olan tüm görsel kontrolleri bünyesinde barındırır.
Indy
UniGUI , mevcut Indy i temel alıp adına uIndy dedikleri bir çok modifikasyonu içeren yeni bir Indy sürümünü kullanır, nihayetinde TuidHTTPServer (TidCustomHTTPServer) başta olmak üzere bir çok network operasyonu için özelleştirilmiş Indy bileşenlerini kullanır.
SynEdit
UniGUI , veri bilinçli olan olmayan tüm editörlerini ve diğer görsel bileşenleri SynEdit bileşenlerini miras olarak üretmiştir.
PNGImage
UniGUI ile üreteceğiniz uygulamalarda sistemin tarayıcıya basacağı görselleri geliştiricinin belirtebileceği 2 formattan biriyle yapar (JPEG ya da PNG) PNG seçildiğinde tüm imajlar sunucudan PNG olarak çıkartılır bu noktada UniGUI PNGImage isimli bileşen setini kullanarak bunu yapar.
CSSParser
Kullanıcılar her bir UniGUI görsel bileşenine isterlerse özelleştirilmiş CSS ler yazabilir bu bileşen bu noktada devreye girer.
UniGUI de geliştirilen uygulamalar birer HTTP Web Server uygulamasıdır, ISAPI dışında tercih edilen türler kendi içlerinde otomatikman birer HTTP Server uygulaması da barındırır.
UniGUI ücretli bir üründür (Mobil bileşenleri dahil paketi 890 USD) , deneme sürümünü http://www.unigui.com/download/docman buradan indirerek işe başlayabilirsiniz.
Deneme sürümünün öğrenmeyi engelleyecek bir kısıtlaması olmamakla birlikte en önemli kısıtlamaları şöyledir ;
Aktif oturum sayısı 3 ile sınırlıdır ve Form etiketlerinin değiştirilememesidir.
Kurulum tam otomatiktir , bileşenleri , yeni proje menüsüne UniGUI proje seçeneklerini ve ExtJS kitaplığını yükler.
Dağıtıcağınız uygulamalarla beraber uygun ExtJS kitaplığı sürümünü de mutlaka dağıtmanız gerekir.
Kurulum sorunsuzca tamamlandığında (Eğer önceden SynEdit , CSSParser ve PNGImage bileşenlerinden birini ya da tümünü bir şekilde kendiniz yüklediyseniz kaldırmanız gerekir ) ,
İlk UniGUI uygulamamızı oluşturmak için hazırız.
Bu örneği Delphi XE2 ile oluşturacağım diğer IDE sürümlerinde de hemen hemen aynı olduğunu düşünüyorum
File-->New-->Other menülerini izleyerek aşağıdaki ekrana ulaşalım, "uniGUI for Delphi" bölümünden "Application Wizard" ı seçelim, hızlı bir başlangıç için Application Wizard ı kullanmak yerinde olacaktır. Bu makalede değinmeyeceğim ancak zaten anlatacaklarımla tamamen uyumlu olduğu için bahsetmek istiyorum UniGUI ile Mobile cihazlarda daha uygun görünen web uygulamaları da geliştirebilirsiniz bunun için Sencha Touch kitaplığını kullanan projeler üretir, "Mobile Application Wizard" ile aynı şekilde yola çıkabilirsiniz.


Projemize bir isim verelim ve "Standalone server" ı seçerek yola devam edelim.
Proje tüleri ;
Standalone Server : Kendi HTTP Server ını içinde barındıran bir sistem tepsisi masaüstü uygulamasıdır, bu seçildiğinde projeniz EXE olarak derlenir ve çalıştırıldığında hiç ekranda görünmeden direk sistem tepsisinde bir simge olarak çalışır, genelde uygulamayı DEBUG etmek için tercih edilir.
Standalone Server / ISAPI Module : uygulama varsayılanda Standalone Server olarak olarak oluşturulur ancak proje dosyasında (DPR) tanımlı bir derleyici direktifini kaldırarak uygulamamızı ISAPI Module olarak derlememize olanak tanır bu benim tercih ettiğim proje türüdür uygulamayı olgunlaştırana kadar standalone server olarak derlerim kolayca DEBUG edebilirim iş bitince kolayca ISAPI DLL olarak derler yayınlarım.
ISAPI Module : Uygulama IIS üzerinde çalıştırılabilir bir ISAPI DLL olarak derlenir büyük ölçekli ve oturum adedi yüksek olacak uygulamalarınızı IIS de ISAPI olarak çalıştırmanız alternatifsiz en doğrusudur.
Windows Service Application : Uygulama içinde HTTP Server barındıran bir Windows servis i olarak derlenir, küçük ölçekli projeler için uygundur hizmetlerde sessiz sakin çalışarak yayın yapar.
Standalone Server ı seçip devam ettiğimizde projeimizin temelleri bizim için otomatikman oluşturulur. Bir UniGUI uygulamasının çalışabilmesi için temelde en az şu 3 ü oluşur ,
1 - ServerModule : Uygulamamızın temel sunucu davranışlarını ve tanımlarını yönetebileceğimiz / özelleştirebileceğimiz modüldür TUniGUIServerModule sınıfından türer bir projede bir tane yer alabilir. Kullanılan ExtJS sürümü , ExtJS kitaplığını bulunduğu konumu , eğer Standalone Server ya da Windows servis uygulaması oluşturuyor isek HTTP Server ımızın hangi TCP portundan yayın yapacağı gibi yapıları kontrol eder. neredeyse her uygulamamız da mutlaka değişiklik yaptığımız ServerModule özellikleri aşağıda ki gibidir ;
- Favicon : uygulamamızın tarayıcı da görünen simgesi belirlenir (sadece *.ico ya müsade edilir)
- LoadingMessage : uygulamanız ilk açılırken çalışabilmek için istemciye yüklüce miktarda JS dosyası indirir bu esnada gösterilen mesajın içeriğini buradan değiştirirsiniz (Uygulama Hazırlanır lütfen Bekleyin.. gibi)
- MainFormDisplayMode : Uygulamanın ana formunun çerçevesiz klasik bir web sayfası gibi mi yoksa bir pencere gibi mi gösterileceğini belirtir (mfWindow , mfPage)
- Port : Eğer StandAloneServer = True ise anlam ifade eder HTTP Server ın yayın yapacağı TCP Port numarası buradan belirtilir varsayılanda 8077 dir.
- Title : Uygulamamızın adını belirten tarayıcı penceresinin caption ı dır.
Tabi ki bir çok önemli özelliği buradan değiştirebilirsiniz özellikle aşağıda vurguladıklarımı incelemenizi öneririm.

2 - MainModule : Uygulamamızın teması , ana ekran arka plan resmi ve bazı tarayıcı davranış ayarlarını bu modülden yaparız ayrıca en önemli diğer görevi bir nevi datamodul gibi uygulama genelinde erişmek istediğimiz görsel olmayan bileşenlerini bunun üzerine koyarız (veri tabanı bağlantı nesneleri vb..) her hangi bir formda "UniMainModule" fonksiyonuyla bu modüle ulaşabiliriz.
3- Main : Uygulamamızın ana sayfasıdır esasen sonradan ekleyeceğimiz formlardan hiç bir farkı yoktur buda TUniForm sınıfından türer, ancak uygulamamızın mutlaka bir ana sayfası olması zorunluluğundan dolayı projeye otomatikman dahil edilir.
Projemizde görsel öğeler olarak sadece UniGUI bileşenlerini kullanabiliriz, delphinin standart VCL kontrollerinin hemen hemen tamamının benzerlerini burada bulabilirsiniz.

Ayrıca projenizde görsel olmayan diğer tüm bileşenleri kullanabilirsiniz (örneğin Fast Report ile tasarladığınız raporu sunucu tarafında Ekrana göstermeden Prepare eder, PDF Export bilşeni ile PDF e çevirir ve UniGUI uygulamanıza Dosya olarak geri basabilirsiniz böylece raporlama da görsel sınırlarınız ortadan kalkar)
Uygulamamız UniGUI projesi ise UniGUI bileşenlerini, UniGUI Mobile projesi ise UniGUI Mobile bileşenlerini kullanmalısınız.
Evet projemize devam edelim, uygulama ana sayfası formu üzerine (MainForm) UniGUI Standart bileşen sekmesinde yer alan TUniButton , TUniEdit bielşenlerini ekliyorum.

UniButton1 in OnClick olayına UniEdit1 in Text ini değiştirecek kodu yazıyorum

Projemi derliyorum , sistem tepsisinde çalışmaya başlıyor..

ServerModule den bahsederken HTTP Server ın yayın yapacağı varsayılan portun 8077 olduğunu belirtmiştik şimdi tarayıcımızdan http://localhost:8077 diyerek projemize ulaşıyoruz.

Evet..! tıpkı masaüstü uygulaması tasarlar gibi tasarladık kodlarımızı yazdık ve aynı görüntüye tarayıcıdan ulaştık ne kadar kolay değil mi?
mevzu bahis bir web uygulaması olduğu için şöyle genel bir bilgi vereyim PAS dosyamız içine yazdığınız her türlü kod sunucu tarafında çalışacaktır yani UniButton1 nesnemizin OnClick olayı için tarayıcı sunucu tarafına bir AJAX çağrısı gönderecek uygulamamız bunu sunucuda çalıştıracak ve sonucu ilgili AJAX çağrısının dönüşüne eklenerek tarayıcıdaki ilgili değişiklik yansıtılacaktır. bir diğer durumda tüm UniGUI görsel bileşenlerinin "ClintEvents" özelliği mevcuttur sunucuya gelinmesine gerek olmayan işlemlerimizi performans arttırımı için istemci tarafında JavaScript kodları ile yapmamıza olacak tanır biraz önce sunucu tarafında yaptığımız işi ClientEvents yardımıyla istemci tarafında basitçe yapabilirdik.

ClientEvents.ExtEvents ı kullanıyoruz buraya yazılacak JavaScript kodları saf JS içerebileceği gibi esasen ExtJS framework ünün kullanım standartlarını barındırır, uniGuı uygulamamız projeye eklediğimiz tüm bileşenleri onlara verdiğimiz isimlerle birer ExtJS Objesi halinde javascript içinden erişilebilir hale getirir, Client Event yazarken obje referanslarında "FormAdı.ObjeAdı." şeklinde yol izlenmelidir. kullanabileceğiniz JS fonksiyon ve nesne metodları için ExtJS in Online Yardımına bakabilirsiniz. evet bu sayede kullanıcı butona tıkladığında hiç sunucuya gidilmeden doğrudan tarayıcıda UniEdit1 in içeriği değişmiş olacaktır.
Şimdi bir veritabanı bağlantısı sağlayıp kayıtları bir gridde gösterelim.
MainModule e tüm uygulama genelinde erişebileceğimiz veritabanı bağlantı nesnemizi ekliyorum (ben MyDAC ile MySQL üzerinde yapacağım) ve bildiiniz şekilde bağlantı ayarlarını yapıp hazır hale getiriyorum.

Ana formuma bir TUniDBGrid ve bildiğimiz TDataSource , ve uygun dataset i ( MyDAC kullandığım içinde bir TMyQuery) ekleyip bağlantıları yapıyorum (her şey VCL deki TDBGrid gibi)

Uygulamamı derliyorum ve tarayıcıdan erişiyorum.

İşte bu kadar kolay.. anlatacak çok şey var sorular geldikçe devam edelim..
Sağlıcakla kalın.


çok sık güncelleme yayınlıyorlar bariz hatalar çıkmıyor genelde çok derinlerde kalmış istisnai durumlar düzeltiliyor, güncellemeler genelde yeni bileşen yada mevcut bileşenler üzerindeki geliştirmelerden kaynaklı oluyor. Tasarladığınız uygulamalar derlenmiş kod ve statik JS kitaplığı kullanıyor bu durumda elinizdeki kararlı işinizi gören bir sürümle Windows ve IIS var olduğu sürece sorun yaşamazsınız. tabi yeni tarayıcılar yada radikal sürüm değişiklikleri JS yorumlamalarında farklılıklara neden olursa ExtJS in uygun bir sürümü ve buna uyumlu bir UniGUI sürümü gerekliliği doğabilir. Şuan Windows destekleniyor, Linux için somut bir adım yok ama umut var çünkü sonuçta projeler VCL değil birer konsol uygulaması gibi çalışıyor, delphi tarafındaki Linux yaklaşımı görsel den ziyade Console uyuglamaları yönünde olduğu için bencede yakın gelecekte Linux desteği gelebilir.