WCF Servis Yolunda Debelenirken

Geçtiğimiz günlerde çalıştığım turuncu bankada bölümüm değişti. Yeni bölümümdeki ilk görevim ise ServiceStack yerini alabilecek bir çatının oluşturulması konusunda bir takım POC çalışmalarının yapılması. Önemli hedeflerden birisi Servislerin IIS bağımsız dinamik olarak ayağa kaldırılması ve servislere gidip gelen mesajların yakalanabildiğinin görülmesi. Epey zamandır WCF alt tarafında çalışmamıştım. Pas tuttuğumu itiraf edeyim. Tabii yazının konusu devam etmekte olan POC çalışmasının tamamını anlatmak değil ancak dinamik olarak host edilen servislere gelen ve servisten dönen mesajları nasıl yakalayabiliriz bunun bir yolunu göstermeye çalışacağım. [Daha fazla]

WCF 4.5–ChannelFactory Tipi için Caching Kullanımı

Bir WCF(Windows Communication Foundation) servisi ile onun tüketicisi olan istemci arasındaki iletişimde önem arz eden konulardan birisi de kanaldır(Channel). Bu kanalın oluşturulması görevini ChannelFactory tipi üstlenmektedir. İstemci açısından bakıldığında bir kanalın oluşturulması aslında servisin bir Proxy tipinin üretilmesi ve uzak metod çağrıları için gerekli iletişim ortamının sağlanması anlamına gelmektedir. Bir kanal esas itibariyle EndPoint odaklı üretilir. Dolayısıyla WCF' in ABC'si olarak nitelendirilen Address Binding Contract üçlemesi üzerine inşa olunur(ki bu da WCF Service EndPoint tanımıdır) [Daha fazla]

WCF–Custom AuthenticationService

WCF(Windows Communication Foundation) ile servis yazan bir geliştiriciye, “en çok hangi konuların uygulanmasında zorlanıyorsun?” diye sorsak, sanıyorum ki ilk sıralardaki maddelerde şu anahtar kelimeler yer alıyor olacaktır; Security, Authentication, Authorization. Her ne kadar WCF’ in konfigurasyon bazlı özellikleri ve getirdiği dekleratif yaklaşım bu işlemlerin mümkün mertebe kolay uygulanabilmesini öngörse de, çabuk unutulan konular olduklarından sık sık kitapları ve blogları tekrardan karıştırmak zorunda kalmaktayız. [Daha fazla]

WCF - Referans Güncellemeden Güncelleme Yapmak

Bildiğiniz üzere bir servis yazıldığında genellikle bunu tüketen(Consume) en az bir taraf bulunur. İstemci olarak düşündüğümüz bu taraflar her hangi bir uygulama olabilir. WCF(Windows Communication Foundation) ile geliştirdiğimiz bu servislerin, söz konusu istemciler tarafından kullanılması noktasında ise izlenebilecek bir kaç yol bulunmaktadır. Bunlardan en yaygını, servislerin projeye referans olarak eklenmesi ve üretilen Proxy sınıfının kullanılmasıdır(Add Service Reference). Visual Studio gibi gelişmiş IDE’ lerin ilgili arabirimleri, bu noktada büyük kolaylık sağlamaktadır. [Daha fazla]

WCF Uygulamalarında Enterprise Library Validation Block Kullanımı

Biz bu makalemizde WCF(Windows Communication Foundation) servislerinde, Validation Application Block’ u nasıl kullanabileceğimizi incelemeye çalışıyor olacağız. Bu block yardımıyla nitelik bazlı(Attribute Based) olacak şekilde doğrulama(Validation) kontrolleri yapılabilmektedir. Söz konusu doğrulama kontrolleri sınıfların özelliklerine uygulanan nitelikler ile yapılabileceği gibi, metodların parametreleri üzerine de enjekte olabilmektedir. Dilerseniz adım adım senaryomuzu geliştirip konuyu basit seviye de kavramaya çalışalım. [Daha fazla]

WCF–Concurrency

Windows Communication Foundation içerisinde önem arz eden konuların başında, istemciden gelen taleplerin eş zamanlı olarak değerlendirilme stratejilerine karar verilmesi de gelir. Aslında bir servis davranış biçimi olan ve Single, Multiple, Reentrant olmak üzere 3 farklı modda uygulanabilen Concurrency, tek başına değil, Instance Context Mode ile birlikte düşünülmelidir. Servislerin PerCall, PerSession ve Single gibi modlarda örneklenebildikleri düşünüldüğünde ortaya, 9 farklı kombinasyon çıkmaktadır. İşte bu görsel dersimizde WCF Concurrency konusuna değiniyor ve örnek bir uygulama üzerinden Instance Context Mode ile olan kullanımını kavramaya çalışıyoruz.

Gribal sorunlar nedeniyle zaman zaman konuşmakta zorlandığım ve sık sık öksürmek zorunda kaldığım görsel dersimizi Nedirtv Youtube kanalından da izleyebilirsiniz. [Daha fazla]

WCFden, XML Web Servisine TransactionScope Activity Bileşeni Üzerinden Transaction Aktarmak

Bir süre öncesine kadar Composition adı verilen bir katmanda yer alacak çeşitli servisler ile yoğun şekilde güreşmekteydim. Çok fazla faktör, çok fazla farklı sistem ve tabiri yerinde ise oyun ve oyuncu söz konusuydu. WCF servisleri, XML Web Servisleri, Java tabanlı olanları ve belki de yarın gelecek olan çeşitli COM bileşenleri, 3ncü parti uygulamalar, koduna müdahale edemeyeceğimiz programlar vs. [Daha fazla]

WCF Service' lerinde Routing ile Versiyonlama

Geçen gün şöyle eskiden yazmış olduğum makalelere bir bakayım dedim. Derken gözüm WCF 4.0’ ın Beta zamanlarında yazdıklarıma takıldı. O zamanlar .Net Framework 4.0' ün Beta sürümü çıktığında, incelemeye çalıştığım önemli yeniliklerden birisi de yönlendirme servisleri(Routing Service) idi. [Daha fazla]

WCF 4.5–Task Based Asynchronous Operasyonlar

Bilindiği üzere .Net Framework 4.5 ile birlikte altyapıya entegre olan async ve await anahtar kelimelerini kullanarak, task bazlı asenkron programlama teknikleri uygulanabilmektedir. Çok doğal olarak WCF 4.5 tarafında da bunun bir yansımasını görmekteyiz. Visual Studio arabirimi üzerinden herhangibir WCF servis referansını istemci uygulamaya eklemeye çalıştığımızda Task bazlı operasyon desteği varsayılan olarak etkinleştirilmekte ve proxy tipi içeriğinde buna uygun metodlara yer verilmektedir. Dolayısıyla WCF(Windows Communication Foundation) servislerini kullanan istemciler, operasyon çağrılarında async ve await anahtar kelimelerinden de yararlanabilirler. [Daha fazla]

Code Night Sabahında

Merhaba Arkadaşlar, O sabah diğer pek çok sabah olduğu gibi gün benim için erken başlamıştı. Saat 07:15 sularında şirketteki masama oturmuş, sıcak kahvemi yudumlamakta ve gece yapılacak olan etkinliğin içeriğine bakmaktaydım. İlk defa katılacağım bir etkinlikti. Vakit &cce... [Daha fazla]

WCF Interceptors

WCF(Windows Communication Foundation) alt yapısının popüler olmasının en büyük nedenlerinden birisi de, hemen her seviyede genişletilebilir olmasıdır. Genişleyebilirlik, bir Framework için oldukça önemli bir özelliktir. Nitekim bu yeteneğin olması, geliştiricilerin daha fazla noktada müdahalede bulunabilme ve ihtiyaçları daha fazla yerde çözümleyebilme kabiliyetini kazanabilmesi anlamına gelmektedir. [Daha fazla]

WCF 4.5–SingleWSDL

Daha dün gibi hatırlıyorum. Windows Communication Foundation 4.0 ile gelen yenilikleri inceliyor, öğrendiklerimi derhal bloğumda paylaşıyordum. Zaman ya çok hızlı akıyor ya da Microsoft zamanın önünde koşuyor Smile Nitekim .Net Framework 4.5 ha çıktı çıkacak derken, çoktan çıkmış da profesyonel projelerde kullanılmaya başlanmış bile. [Daha fazla]

WCF 4.5 WebSockets Kullanımı [Taslak]

Bilindiği üzere HTTP protokolü üzerinden gerçekleştirilmekte olan Request-Response tabanlı çalışma modelinde, istemcilerin göndereceği taleplere karşılık olarak sunucunun vereceği cevaplar söz konusudur. Dolayısıyla istemciler, örneğin borsa hareketliliği gibi anlık değişim gösteren içerikleri elde etmek istediklerinde, çeşitli teknikleri işin içerisine katmak zorundadırlar. Bunun için Polling adı verilen teknik sıklıkla kullanılmaktadır. İstemci belirli periyot aralıklarında sunucudan gerekli veriyi talep eder ve içeriği okur. Polling dışında bir de Streaming tekniği ile verinin çekilmesi sağlanabilir, ancak hangisi olursa olsun istemci ve sunucu arasındaki haberleşme şekli, tek talebe(Request) karşın, tek bir cevap(Response) gelecek şekilde tesis edilir. [Daha fazla]

WCF Tarafında Task Bazlı Asenkron Operasyonlar

Uzun bir zamandır .Net Framework içerisinde, fonksiyonların asenkronize edilmesi üzerinde çalışılmaktadır. Daha önceleri Thread bazlı veya Delegate tipleri ile gerçekleştirdiğimiz asenkron çağırımlar, .Net Framework 4.0’ a gömülü olarak gelen Task Parallel Library sayesinde daha da gelişmiş ve alt yapının her noktasına enjekte edilebilir olmuştur. Şu günlerde .Net Framework 4.5 ile birlikte gündeme gelen ve uzun zamandır da haberdar olduğumuz async, await gibi anahtar kelimeler de, temel de Task tiplerine dayanmaktadır. Bir başka deyişle TPL kütüphanesi ve içeriği, ilerleyen zamanlarda .Net Framework’ ün pek çok önemli alt yapısında etkisini hissettirecektir. [Daha fazla]

Entity Framework ile Gerçek Hayat Örnekleri 2 Webineri

Hatırlayacağınız üzere bir önceki bölümümüzde, Entity Framework tabanlı Data-Centric çözümümüzü(Solution) geliştirmeye başlamış ve çok basit olarak çatıyı kurduktan sonra, iş katmanına(Business Layer) ait bir operasyonu örneklemiştik. Ardından bu operasyonu bir Unit Test metodu ile denemeye tabi tutarak Webinerimizi sonlandırmıştık. [Daha fazla]

Servis Operasyonlarını Kod Yardımıyla İzlemek – Event Kullanımı

Oysaki operasyon çağrılarını işletim sisteminin Event Log’ larına yazdırtmak ya da, XML tabanlı bir dosyaya aktarılmasını sağlamak isteyebiliriz. Hatta söz konusu izlerin veritabanı üzerindeki bir tabloya yazdırılması da düşünülebilir vb… Bir başka deyişle operasyon çağrılarının izlenmesi sırasında oluşan log verilerini, herhangibir kaynağa doğru yazdırmak isteyebiliriz. Böyle bir durumda, tasarlamış olduğumuz tiplerin, onları kullanan object user’ lara alternatif bir yol sunması gerekmektedir. Nitekim oluşturulan log verisinin nereye yazılacağına object user’ ın karar vermesi, çok daha esnek bir izleme yapısı oluşturulmasını sağlayacaktır. Peki bunu nasıl gerçekleştirebiliriz? [Daha fazla]

WCF Öğreniyorum Ders 3–Bağlayıcılar

Hız kesmeden NedirTv?com liderliğinde sürdürdüğümüz WCF Öğreniyorum Webiner serimize devam ediyoruz. Bu webinerimizde ağırlık olarak Binding Type(Bağlayıcı Tip) kavramını anlamaya çalışacağız. Sunum üzerindeki tablolardan bazı Binding tiplerini ve aralarındaki farklılıkları tartışıyor olacağız. Örnek uygulamamızda ise bir servisi birden fazla Endpoint üzerinden host edeceğiz. Ayrıca istemci(Client) ile servis(Service Host) arasındaki mesajlaşmalara ait log dosyasına bir göz atıp farklılıkları en azından bir kaç Binding tipi için kavramaya çalışacağız. Her zamanki gibi webinerimize ait sunum dosyası, Solution’ ın son hali ve ekran kaydına aşağıdaki linklerden ulaşabilirsiniz. Bir sonraki webinerimizde görüşünceye dek hepinize mutlu günler dilerim. [Daha fazla]

WCF Öğreniyorum Ders 2–Veri Sözleşmeleri II

3ncü dersimizde WCF Servisimizi IIS üzerinde host edebilecek şekilde bir WCF Service Application şablonunu kullandık. Bu sayede HTTP bazlı olarak yayınlama yapan bir WCF Servisinin Web üzerinden erişilebilirliğini değerlendirdik. Ayrıca Entity bazlı bir kütüphanenin veri içeriğini istemci tarafına sunarken Surrogate tipindeki veri sözleşmelerini nasıl değerlendirebileceğimize baktık. Söz konusu servise ait operasyonları ele alan istemci tarafında da, bu veri sözleşmelerini nasıl kullanabileceğimizi gördük. Her zaman ki gibi, örnek uygulama kodlarını, Powerpoint sunum dosyasını ve Nedirtv?com üzerine eklenmiş olan ekran kayıtlarını aşağıda linkerden tedarik edebilirsiniz. Tekrardan görüşünceye dek hepinize mutlu günler dilerim. [Daha fazla]