WCF 4.0 Yenilikleri - DataContractResolver ile Dinamik Tip Çözümleme(Dynamic Type Resolution) [Beta 1] 26 Eylül 2009 Burak-Selim-Senyurt WCF 4.0 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 - HTTP Cache Desteği [Beta 1] 22 Eylül 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 En basit ve popülerlerinden birisi olan Output Caching,REST tabanlı WCF servisleri içinde kullanılabilmektedir. WCF' in önceki sürümünde WebOperationContext tipinden yararlanılarak ekstra kod eforu ile ele alınabilen Output Cache özelliği, 4.0 sürümünde tamamen dekleratif olarak değerlendirilebilmektedir. [Daha fazla]
WCF 4.0 Yenilikleri - Automatic Help Page [Beta 1] 16 Eylül 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 WCF 4.0 tarafında beklenen gelmesi yüksek olan yenilikleri sizlere aktarmaya çalıştığım yazılarımızın yavaş yavaş sonlarına gelmekteyiz. Elbette incelemeyemediğimiz bir çok detay var. Bunları ilerleyen dönemlerde ürün son halini alırken tartışma ve araştırma fırsatımız olacak... [Daha fazla]
WCF 4.0 Yenilikleri - Routing Service - MatchAll Filtresi [Beta 1] 14 Eylül 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 Bundan önceki yazılarımızda WCF 4.0 için yönlendirme servislerinin(Router Service) nasıl yazılabileceğini incelemeye çalışmıştık. Fark edeceğiniz üzere yönlendirme servislerinin en önemli noktaları arasında filtreleme tablosu ve filtrelerin olduğunu gördük... [Daha fazla]
WCF 4.0 Yenilikleri - Routing Service - Hata Yönetimi [Beta 1] 09 Eylül 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 Bir önceki blog yazımızda WCF 4.0 ile basit bir yönlendirme servisinin(Router Service) nasıl yazılabileceğini incelemeye çalışmıtık. Tabi bu tip bir sistemde dikkat edilmesi gereken vakalardan biriside, Downstream servislerde istisnaların(Exceptions) oluşması halinde nasıl davranılacağıdır. [Daha fazla]
WCF 4.0 Yenilikleri - Routing Service Geliştirmek - Hello World [Beta 1] 26 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 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] 24 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 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] 22 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 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 - Announcement Kullanımı [Beta 1] 21 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 WCF 4.0 tarafında WS-Discovery tabanlı olarak gerçekleştirilen uygulamalarda önem arz eden noktalardan biriside, servislerin online veya offline olma durumlarını, bulundukları ağ üzerindeki dinleyicilere(Listeners) bildirmeleridir(Announce). [Daha fazla]
WCF 4.0 Yenilikleri - Discovery için Scope Kullanmak [Beta 1] 20 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 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 - Ad Hoc WS-Discovery [Beta 1] 18 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 Ağ üzerinde bulunan servis noktalarının çalışma zamanında keşfi(Runtime Discovery), Servis Yönelimli Mimarilerde(Service Oriented Architecture) karşılaşılan en önemli ihtiyaçlardan birisidir. [Daha fazla]
WCF 4.0 Yenilikleri - Artık Svc Uzantısına Gerek Yok [Beta 1] 18 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 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]
WCF 4.0 Yenilikleri - Basitleştirilmiş Asp.Net Hosting [Beta 1] 18 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 WCF 4.0 ile birlikte gelen yenilikler bitmek bilmiyor. Smile Aslında irili ufaklı bu değişikliklerin ilk bölümünde daha çok basitleştirilmiş konfigurasyon(Simplified Configuration) özellikleri üzerinde durmaya çalışıyoruz. [Daha fazla]
WCF 4.0 Yenilikleri - Standard Endpoints [Beta 1] 14 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 Bir süredir WCF 4.0 ile birlikte gelen yenilikleri tek tek incelemeye çalışıyoruz. İlk incelediğimiz noktalar konfigurasyon ayarları üzerinde yapılmış olan basitleştirmeleri içermektedir. Bu değişimlerden bir diğerini inceleyerek serimize devam ediyor olacağız. Bu anlamda konumuz Standard Endpoints başlığı altında gelen yeniliklerdir. Bu özelliği inceledikten sonra konuyu anlamanın en iyi yolunun bir önceki versiyonda ne olduğuna bakmak olduğuna karar verdim. [Daha fazla]
WCF 4.0 Yenilikleri - Default Behavior Configuration [Beta 1] 13 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 WCF 4.0 ile gelen yeniliklerin ilk kümesi olan basitleştirilmiş konfigurasyon(Simplified Configuration) kabiliyetleri, geliştiricinin bazı ince detayları düşünme zorunluluğunu ortadan kaldırmaktadır. Örneğin Endpoint eklenmesede varsayılan olanların çalışma zamanında oluşturulması, bağlayıcılar(Binding Types) için name, binding configuration gibi nitelikleri kullanma zorunluluğunun ortadan kaldırılması veya protocol eşleştirmelerinin kolayca ele alınması vb... [Daha fazla]
WCF 4.0 Yenilikleri - Default Binding Configuration [Beta 1] 12 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 WCF 4.0 ile birlikte gelmesi muhtemel yenilikleri incelemeye kaldığımız yerden devam ediyoruz. Bu yazımızda ele alacağımız konu, config dosyası içerisinde kullanılan bağlayıcı tipe(Binding Type) özel konfigurasyon ayarları ile ilişkili olacak. Konuyu net bir şekilde anlayabilmek için .Net Framework 3.5 tabanlı olarak geliştirilmiş basit bir servis uygulaması ile işe başlamamız gerekiyor. [Daha fazla]
WCF 4.0 Yenilikleri - Default Protocol Mapping [Beta 1] 11 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 Bir önceki blog yazımızda, WCF 4.0 ile birlikte gelebilecek özelliklerden birisi olan Default EndPoints kavramına değinmeye çalışmıştık. Durumu kısaca özetleyip, bu konu ile bağlantılı olan başka bir yenileğe bakarak devam edelim. Default EndPoints özelliği sayesinde, WCF çalışma zamanına(Runtime) açık bir şekilde EndPoint bildirimi yapma zorunluluğumuz ortadan kalkmaktaydı... [Daha fazla]
WCF 4.0 Yenilikleri - Default EndPoints [Beta 1] 09 Ağustos 2009 Burak-Selim-Senyurt WCF 4.0 Beta 1 Çok eskinden .Net Remoting ile ilişkili uygulamalarda çalışırken, servis ve istemci taraflarının konfigurasyon dosyası bazlı ayarlamaları sırasında, Visual Studio.Net 2003 intelli-sense özelliğinin kaybolduğuna şahit olmuştum. Gerçektende config dosyası içerisindeki intelli-sense özelliği belirli bir elemente kadar destek veriyor ama sonrasında kayboluyordu. Böyle bir durumda pek çok ayarlamayı ezbere yapmak zorunda kaldığımı hatırlıyorum. [Daha fazla]