8 Mayıs 2010 Cumartesi

WCF Ria 1 - RIA Nedir?

Çok katmanlı uygulama mimarisinin en önemli geliştirme sorunu uygulama mantığının web servis üzerinde ki orta seviye ile ön yüz arasında ki koordinasyondur. Yazılım geliştiriciler uygulama mantığının orta seviyede olması gerektiğinin farkındalar. Fakat hem orta seviyede hem ön yüzde uygulama mantığını yönetmek zorunda kalmaktadırlar. Çözüm önerisi uygulama mantığının tamamen ön yüzden kurtarmak ve orta seviyeye taşımaktır. Sunulan çözümün işlemesi için orta seviyede ön yüzde yönetilen uygulama mantığının taşına bilmesi gerekmektedir.

Microsoft’un WCF ürün ailesi içinde sunduğu WCF Rich Internet Application (RIA) çok katmanlı uygulama geliştirme için sunulan bir uygulama şablonudur. RIA servis problemi aşmak için alt yapı bileşenleri araçları ve uygulama lojiğini taşıyacak olan servisler sunmaktadır. RIA istemci uygulamasının uygulama mantığını çoklama ihtiyacını duymamaktadır. Çünkü Ria istemcileri orta seviyede sunulan uygulama mantığını temel alarak güncelleyebilme özellikleri vardır.

Aşağıda ki şekilde çok katmanlı bir uygulamanın basit bir gösterimi bulunmaktadır.

Ria servisleri kapalı kutu ile gösterilen ön yüz ve orta seviyede bulunan uygulama mantığı ile ilgilenirler. Visual Stdio içine eklenen Ria servis araçları aynı Solution içinde yer alan istemci ve sunucu uygulamalarının birbirlerine bağlar ve orta seviyede yazılan ortak kodları kod üretimi ile istemciye taşınmasını sağlar.  Aynı zamanda alt yapı bileşenleri ile orta seviyede yazılan uygulama mantığının çalışan ön yüzün ihtiyaçlarına göre şekil değiştirerek tekrar kullanılmasını sağlamaktadır. Orta seviye servisleri kodlama aşamasında özelleştirilecek olan uygulama için ortak ve temel yetkilendirme, kullanıcı ayarları ve yönetim gibi temel iş kurallarını taşırlar.

Ria Servis Şablonun da Neler Var?

Yeni bir Ria uygulaması oluşturarak incelemeye başlayalım. Silverlight sekmesi içinde yer alan Ria servis bir uygulama şablonunu ile yeni bir proje oluşturulalım.

Oluşan proje yapısı şu şekilde olacaktır.

Ria Bağlantısı

Görüldüğü gibi istemci Silverlight uygulamasında bir web servis referansı yok. Bunun yerine gizlenmiş olan Generated_Code klasörü için istemcinin ihtiyaç duyacağı tüm sunucu bileşenlerinin kodlarının üretildiğini görüyoruz.

İstemi uygulamanın özelliklerine baktığımızda ise aradığımız web servis referansını görebiliyoruz. Ria uygulaması çalışılan proje içinde ki tüm Ria servislerini bir liste üzerinde bize sunmakta ve kullanmak istediğimiz servisi seçmemizi beklemektedir.

Ria uygulaması aşağıda ki şekilde görüldüğü gibi bir orta seviye web uygulaması ve bir istemci uygulaması ve aralarında Ria servis araçları ile oluşturulan bir Ria bağlantısından oluşmaktadır.

Burada ki Ria bağlantısı Genrated_Code dizini içinde Visual Studio içinde eklenen araçlar ile sunucu tarafında oluşturulan veri modeli, veri modeli özellik sınıfları Resource dosyaları ve uygulama mantığını taşıyan servislerin istemci sınıflarını istemci uygulamada oluşturmaktadır.

Hazır Servisler

Şablon tarafından oluşturulan kodlara tekrar baktığımızda bizim için hazır bazı ön yüzlerin ve sınıfların oluşturulmuş olduğunu görüyoruz. Bunlar bir uygulamanın ana sayfası, hata gösterim sayfası ve kullanıcı giriş ekranlarıdır. Bununla birlikte web tarafında yetkilendirme ve kullanıcı giriş servislerinin hazır olduğunu görüyoruz.

İlk Görüş

Şablon üzerinde hiçbir kodlama yapmadan çalıştıralım. Bize hazır olarak sunulan servis ve ön yüzleri deneyelim.

Gördüğüz gibi hazır bir kullanıcı yönetimi ile birlikte geliyor.  Ria uygulama şablonu ASP.NET Membership Provider’ı kullanmaktadır yetkilendirme sistemi olarak. Uygulama içinde ilk kullanıcı oluşturduğunuzda Ria Web projesi altında ki App_Data dizinine yeni bir ASPNETDB SQL Server dosyası oluşturmakta ve ASP.NET Membership Provider burada ki veri tabanı dosyası ile kullanıcı yönetimini yapmaktadır.

Böylelikle ilk Ria projemizi oluşturmuş ve kullanıcı girişi yapmış bulunmaktayız. Bir sonraki makalede veri erişimini inceleyeceğiz.