WCF Eco System

Özellikle son bir iki yıllık zaman dilimi içerisinde .Net tarafında pek çok servis modeli ve ismiyle karşılaştık. Örneğin Astoria kod adıyla başlayan Ado.Net Data Services, Silverlight gibi Rich Internet Application' ları hedef alan .Net RIA Services vb... (Eğer Microsoft' un ürünleri için kullandığı kod adlarını merak ediyorsanız Wikipedia' daki ilgili listeye bakmanızı öneririm) Hal böyle olunca ortada bir sürü kod adı ve isim oluşmaya başladı. Buda çok doğal olarak bizim gibi geliştricilerin kafasında pek çok soru işaretine neden oldu. Acaba hangi servis modelini hangi amaçlar ile kullanmalıyız? Bunların nihai sürümler yaklaştıkça isimlendirmeleri neler olacak? Ne gibi avantaj veya dez avantajları var? [Daha fazla]

Microsoft.Net Services - Service Bus için REST Tabanlı Hello World

Bir önceki yazımızda Microsoft.Net Services alt yapsının önemli parçalarından birisi olan Service Bus hizmetini incelemeye çalışmış ve basit bir Hello World uygulama koleksiyonu geliştirmiştik. Bu yazımızda ise REST bazlı geliştirilen bir WCF servisine herhangibir tarayıcı yardımıyla HTTP Get metoduna göre, Service Bus üzerinden nasıl ulaşabileceğimizi incelemeye çalışacağız... [Daha fazla]

Screencast - Workflow Service Geliştirmek [Beta 2]

WCF(Windows Communication Foundation) ve WF(Workflow Foundation) modellerinin bir arada kullanıldığı Workflow Service' lerin sunduğu kolaylıklardan birisi de, iş akışlarının servis bazlı olarak sunulabilmesi imkanıdır. Bir Workflow örneğinin çalışma ortamı içerisinde Persistence hizmetlerinden, transaction yönetiminden vb... yararlanması ve Long Running Process' lerin ele alınması sağlanabilir. Üstelik buna Visual Studio 2010 gibi geliştirme ortamlarında yer alan WPF designer desteğininde eklenmesi ve XAML bazlı olarak geliştirme yapılması da çok önemlidir. Bir Workflow Service ise, az önce bahsedilen fonksiyonellikleri taşıyan bir akışın servis bazlı olarak sunulabilmesine olanak tanımaktadır. Böylece, pek çok sistemin ortaklaşa kullandığı akışların servis bazlı olarak sunulabilmesi mümkün hale gelebilmektedir. Gerçek hayat senaryolarında Workflow Service' lerin değerlendirilebileceği pek çok alan bulunmaktadır. Ama öncesinde basit ve pekte işe yaramayacak bir Hello World örneği geliştirmekte yarar vardır. [Daha fazla]

WCF Known Types Analizi

Bilindiği üzere WCF aslında SOA(Service Oriented Architecture) mimarisinin uygulama modellerinden birisidir. İşin içerisinde servisler söz konusu olduğunda ağlar ve sistemler arası mesajlaşlamalar söz konusudur. [Daha fazla]

Ado.Net Data Services 1.5 - Projections

Çok zaman değil daha bir sene öncesine kadar Astoria kod adlı Ado.Net Data Services konusunu incelemeye başlamıştım. Entity Framework veya Custom LINQ Provider' ları ile sunulan veri kümelerine, REST bazlı olarak URL sorgular atılabilmesini sağlayan ve özellikle Silverlight gibi RIA içeriklerinde son derece kıymetli olan bir servis uygulaması olarak değerlendirebileceğimiz bu konu ile ilişkili ilk paylaşımlarımı yaptıktan sonra araya WCF 4.0, WF 4.0, Design Patterns, Design Principles, .Net RIA Services gibi konular girdi. [Daha fazla]

WCF 4.0 Yenilikleri - DataContractResolver ile Dinamik Tip Çözümleme(Dynamic Type Resolution) [Beta 1]

Hatırlayacağınız üzere bir önceki yazımızda, WCF serileştirme işlemlerinde Known Types sorunsalını değerlendirmeye çalışmıştık. Bu sorunsalın giderilmesinde ele alınan tekniklerden biriside KnownType niteliğinin(Attribute) kullanılmasıyıdı. Ama istersek servise uygulanacak ServiceKnownType niteliği ve başka diğer teknikleri de değerlendirebileceğimizden bahsetmiştik. Ne varki tüm bu teknikler static bir model sunmaktadır. WCF 4.0 ile birlikte, tip çözümlemelerinin(Type Resolution) dinamik olarak ele alınmasını sağlayan DataContractResovler isimli abstract bir sınıfın geldiği görülmektedir. Bu sınıf System.Runtime.Serialization.dll assembly' ının .Net Framework 4.0 versiyonunda yer almaktadır. Abstract bir sınıf olması, türetmede(Inheritance) kullanıldığı takdirde anlam kazanacak bir tip olduğunu ifade etmektedir. [Daha fazla]

WCF 4.0 Yenilikleri - Routing Service Geliştirmek - Hello World [Beta 1]

Routing Service konusu ile ilişkili bir önceki yazımızda modelin sunduğu alt yapıya kısaca değinmeye çalışmış ancak bir örnek geliştirme girişiminde bulunmamıştık. Bu yazımızda ise bir Hello World örneğini geliştirmeye çalışacağız. (Örneğimizi .Net Framework Beta 1 ve Visual Studio 2010 Beta 1 ile geliştirdiğimizi bir kere daha hatırlatmak isterim.) İlk olarak sizlere, örnek senaryomuzdan bahsetmek isterim. [Daha fazla]

WCF 4.0 Yenilikleri - Routing Service Geliştirmek - Giriş [Beta 1]

Servis Yönelimli Mimari(Service Oriented Architecture) çözümlerinde zaman zaman yönlendirme amaçlı servislerin yazılması gerekmektedir(Router Service). Bu servislerin genel kullanım amacı çoğunlukla, istemcilerden gelecek olan talepleri değerlendirip asıl işi yapacak olan servislere devretmek ile ilişkilidir. Ancak, gelen taleplere ait içeriğinin(Message Content, Header vb...) filtrelenerek ele alınması gibi ileri seviye teknikleride içerebilir. Yönlendirme işlemleri için kullanılan pek çok donanımsal cihaz ve hatta yazılım zaten mevcuttur. Bu nedenle öncelikli olarak yönlendirme servislerine neden ihtiyaç duyulabileceğini kavramakta yarar vardır. [Daha fazla]

WCF 4.0 Yenilikleri - Managed WS-Discovery [Beta 1]

Proxy servisi aslında hem announcement mesajları hemde istemcilerden gelecek olan Probe taleplerini dinlemektedir. Announcement mesajların dinlenmesi, online veya offline olan servislerin, Proxy servisi üzerinde bir saklama alanında tutulmasınıda gerektirir. Nitekim proxy servisi, ağa bağlı olan veya ayrılan tüm servislere ait ortak bir listeyi barındırıp istemci taleplerini bu listedeki durumlara göre karşılamalıdır. Diğer taraftan kendiside, istemciler tarafından keşfedilebilir olmalıdır. Bu nedenle tüm istemciler için ortak bir Discovery Endpoint noktasına sahip olmalıdır. Proxy servisini bu nedenlerden dolayı sürekli online halde kalan bir hizmet olarak düşünebiliriz. Online kalması önemlidir; çünkü online olduğu sürece, ağı dinleyerek katılan servisleri listesine alabilir ve istemcilerden gelen Probe veya Resolve gibi çağrılara cevap verebilir. Peki işi zorlayan nokta nedir? [Daha fazla]

WCF 4.0 Yenilikleri - Discovery için Scope Kullanmak [Beta 1]

Bir önceki yazımızda WCF 4.0 tabanlı servislerde WS-Discovery protokolünün, Ad Hoc modeline göre nasıl uygulanabileceğini görmüştük. Ad Hoc modelinde istemcinin, yerel ağ üzerine dahil olan bir servisi aramak için kullanabileceği kriterleri önceden belirlemesi ve bunları kullanması gerektiğinden bahsetmiştik. Bu amaçla kod tarafında FindCriteria tipinden yararlanılmaktadır. Bir önceki örneğimizde, arama kriterinde sadece servis sözleşmesini(Service Contract) kullanmıştık. [Daha fazla]

WCF 4.0 Yenilikleri - Artık Svc Uzantısına Gerek Yok [Beta 1]

Nihayet WCF 4.0 için basitleştirilmiş konfigurasyon(Simplified Configuration) yeniliklerinden sonuncusuna değineceğimiz blog girişimize ulaştık. Tabiki WCF 4.0 tarafındaki diğer yenilikleride zaman içerisinde inceliyoruz olacağız. Örneğin Discovery, Routing, RESTful geliştirmeleri vb...Ancak diğer köklü değişikliklere başlamadan önce konfigurasyon tarafına son noktayı koyalım artık.Wink [Daha fazla]