Sitemap

WCF Nedir ?(Windows Communication Foundation)

2 min readApr 18, 2021

Herkese merhaba. Bu yazımda sizlere WCF (Windows Communication Foundation) dan bahsetmek istiyorum. Bu teknoloji Microsoft tarafından .Net 3.0’ın çıkması ile birlikte ortaya konulmuştur.

WCF’in mimari yapısından bahsedecek olursak, temeli SOA adı ile bilinen servis odaklı mimariye dayanmaktadır. Dağıtık uygulamaların hazırlanabilmesi için oluşturulmuştur. İşi yapacak olan kodların uzak bilgisayarlarda çalıştırılması ve istemcilere sonuçları dönmesi temeline dayanır. Birden fazla istemci ve servis olabilir. Bir servis birden fazla istemci tarafından tüketilebilir veya bir istemci birden fazla servisi kullanabilir. İstemci servise bir istek gönderir, servis bu isteği alır işler ve bir cevap döner. Servis ve istemci birbirlerine “loose coupled” şeklinde bağlıdır yani çok az bağımlıdır.

WCF hizmetleriyle çalışacaksanız öncelikle işin ABC’sini öğrenmelisiniz. WCF hakkında okuyabileceğiniz pek çok farklı giriş makalesinde de duyacağınız bu ABC benzetmesi, bir şaka olmaktan öte gerçekten de WCF’in ana bileşenlerini anlatan bir kısaltmadır. Peki bu kısaltma neyi ifade etmektedir?

  • Address (Adres) : Eğer insanların/uygulamaların kullanacağı bir hizmet tanımı yapıyorsanız tabiki bu hizmetin belirli bir adresi olmalı, aynı iş yerlerinin/mağazaların olduğu gibi. Hizmetim intranet/internet üzerinde hangi adreste bulunmaktadır? İlk harfimiz A bunu temsil etmektedir.
  • Binding (Bağlayıcı) : Her bir WCF hizmetinde mutlaka yayınladığınız hizmete veri göndermek ya da hizmetten veri almak için uygulamalarca kullanılacak olan bir iletişim protokolünüz olmalıdır. Hizmetimle ne şekilde konuşulacak? ikinci harfimiz B bunu temsil etmektedir.
  • Contract (Kontrat) : Yayınladığınız her bir WCF hizmetinde kullanıcılarınıza sunmayı taahhüt edeceğiniz bir takım fonksiyonlar bulunacaktır. Gerçek hayatta olduğu gibi sizin ve müşterilerinizin sorumluluklarının tanımlandığı ve taraflarca üzerinde anlaşılan bir kontrat bulunmalıdır. WCF hizmetinizde tanımladığınız bir kontratla, sunduğunuz fonksiyonlar ile kullanıcılardan beklediğiniz değerler ile bu değerler neticesinde kullanıcıya vermeyi tahahüt ettiğiniz sonuçları belirtebilirsiniz. Hizmetim kullanıcılara hangi fonksiyonları sunacak? Üçüncü ve son harfimiz C bunu temsil etmektedir.

Yani bu ABC kısaca, dağıtık uygulamaların ve WCF’in süreçteki response ve request trafiğindeki “Nereye?(Address)”, “Nasıl(Binding)” ve “Neyi(Contract) sorularına yanıtları vermektedir.

Şimdi bir WCF uygulamasını pratikte ele alalım.Yeni bir WCF hizmeti tanımlarken ilk olarak sunulması hedeflenen fonksiyonlar netleştirilip bir contract ile duyurulur. Bu contract’ lar interface’lerin içerisine yazılırlar.

Proje içerisinde bulunan app.config sayfaları içerisinde kullanılacak contract’lar endpoint’ ler içerisinde tanımlanır ve servis yayınlanmaya hazır hale getirilir.

Temelde bu kadar basit lakin detayda mükemmel işler yapabilen bir servistir WCF.Herkese başarılı günler dilerim.

--

--

No responses yet