Smart Client Applications - Yazgelistir.com
C# & VB.Net / Smart Client Applications
Programcılığın ilk başladığı yıllarda her bir programcı kendine özel olan bir program yazıyor ve yazdığı bu programı sadece kendisi kullanıyordu. Yani herkes ve her program sunucu konumundaydı.
Programcılığın ilk başladığı yıllarda her bir programcı kendine özel olan bir program yazıyor ve yazdığı bu programı sadece kendisi kullanıyordu. Yani herkes ve her program sunucu konumundaydı. Daha sonra 1990 ların ortalarında Microsoft Windows platformunda server – client (Sunucu – istemci) tipi programlar yazılmaya başlandı. Fat Client adı verilen bu tür uygulamalar Windows uygulaması oluyordu. Bu tür programların fonksiyonel olması ve bu tür programlar sayesinde client kullanıcılarının işlerinin daha kolay halledilmesi bu tür programları çok yaygın hale getirdi. Ayrıca bu uygulamalar Windows uygulaması olduğu için geliştirilmesi oldukça kolaydı. Daha sonraları yeni çıkan çeşitli Tool lar yardımıyla bu tür uygulamaları geliştirmek daha da kolay oldu. Fakat Fat Client türü uygulamaların getirdiği zorluklarda vardı. Bu tür programlar her bir istemciye teker teker yükleniyordu. Bu da büyük bir şirkette bu epey zaman alan bir yöntemdi. Ayrıca bu tür programlar yenilenmek istendiğinde tüm zorluklar tekrar tekrar yaşanıyordu.
Daha sonra Internet adı verilen teknoloji geldi. Bu teknoloji ile birlikte Browserlar yaygınlaştı. Böylece Server – Client uygulamaları da bu alana kaydı. Thin Client adı verilen bu tür uygulamalar ile; artık her bir Client programa browser üzerinden erişiyor, kendi makinasına kurmak zorunda kalmıyordu. Böylece programcı uygulamaya yeni bir özellik eklediğinde kullanıcılar anında ve zahmetsiz bir şekilde uygulamanın yeni halini çalıştırabiliyorlardı. Bu Internetin sağlamış olduğu büyük yeniliklerden biriydi. Fakat bu teknolojinin bir çok dezavantajı da vardı. Örneğin; bu teknoloji ile yapılan programlar Browser ın yetenekleri ile sınırlıydı. Bir Windows uygulaması kadar zengin arayüze sahip değillerdi. Örneğin bu tür uygulamalarda çok kullanılan Drag-and-Drop, Undo-Redo gibi işlemler yapmak hemen hemen imkansızdı. Ayrıca, bu uygulamaların hızı tamamen Network hızına bağımlı olduğu için Network de oluşabilecek bir hasar sonrası istemcilerin programı çalıştırma hızı çok düşecek yada programı hiç çalıştıramayacaklardı. Bu tür programlar çok kompleks bir yapıdaydı. O yüzden bu tür bir uygulama gelistirmek normal bir Windows uygulaması geliştirmekten daha zordu. Bu da programcılar için ekstra bir yük ve zaman kaybını da beraberinde getiriyordu.
Günümüzde bütün bu zorlukları yenebilecek yeni bir teknoloji oluşmaya başladı. Bu teknoloji Smart Client teknolojisidir.
Smart Client Nedir?
Bu teknoloji Thin Client ve Fat Client teknolojilerinin avantajlarını kendi bünyesinde tutan bir teknolojidir. Bu tür uygulamalarda ön planda bir windows uygulaması olmasına rağmen arka planda Internet yani XML Web Servisleri vardır.
Şekil 1 Smart Clients
Şekil 1 de gösterilen şekilde, Smart Client uygulamasının bir Fat Client ile Thin Client ın birleşmesinden olduğu ve Bu uygulamanın onların üstün özelliklerini bünyesinde bulundurduğu görülmektedir.
Uygulama bir kez client tarafına kurulduktan sonra uygulama Client tarafında sanki bir Fat Client gibi çalışır. Fakat arka planda program XML Web Servisleri ile Server a bağlanır eğer programın bir parçası Update edilmişse sadece bu parça yenilenir ve program çalışmaya devam eder. Böylece Network ün band genişliği boşuna harcanmamış olur.
Smart Client Uygulamasının Avantajları;
Hafızada Çok küçük bir alan
Kolay yayılma ve kullanım
Kolaylıkla Değiştirilebilecek içerik ve yönetim
Smart Client Uygulamasının Dezavantajları;
Bu tür uygulamalrın bulunacağı her bir Client ta .Net Framework yüklü olmalıdır.
MSIL kod ilk sefer kullanıldığında EXE ye çevrileceği için ilk yüklemede biraz yavaş olacaktır.
MSIL kod client tarafında EXE ye çevrileceği için yazılan kod da de-compiling riski vardır.
Uygulamada kullanılacak konfigurasyon dosyası (app.config) normal bir windows uygulaması kadar kolay kullanılamazlar.
Smart Client mimarisi her seneryo için ideal değildir. Kullanıcı platformlarının bilinmediği ya da farklılık gösterdiği durumlarda, örneğin e-ticaret, browser-tabanlı model daha pratik olarak devam ediyor. Fakat; Clientların Windows İşletim Sistemini kullandıkları bilindiği yerlerde, smart client modeli çok daha uygun bir modeldir. Bu modeli kullanarak daha hızlı, pratik ve esnek bir modelleme yapma imkanı vardır.
Bu bölümde Smart Client Uygulamaları hakkında kavramsal açıklamalarda bulunuldu. Bu yazının bir sonraki bölümünde örnek bir uygulama yapılarak konunun bütünüyle kavranması hedeflenecektir.