Windows Communication Foundation nedir?
Windows Communication Foundation (WCF), hizmet odaklı uygulamalar oluşturmaya yönelik bir çerçevedir. WCF kullanarak verileri bir hizmet uç noktasından diğerine zaman uyumsuz iletiler olarak gönderebilirsiniz. Hizmet uç noktası, IIS tarafından barındırılan sürekli kullanılabilir bir hizmetin parçası olabileceği gibi, bir uygulamada barındırılan bir hizmet de olabilir. Uç nokta, hizmet uç noktasından veri isteyen bir hizmetin istemcisi olabilir. İletiler, XML olarak gönderilen tek bir karakter veya sözcük kadar basit veya ikili veri akışı kadar karmaşık olabilir. Birkaç örnek senaryo şunlardır:
İş işlemlerini işlemek için güvenli bir hizmet.
Trafik raporu veya diğer izleme hizmeti gibi geçerli verileri başkalarına sağlayan bir hizmet.
İki kişinin gerçek zamanlı olarak iletişim kurmasını veya veri alışverişinde bulunmasını sağlayan bir sohbet hizmeti.
Veriler için bir veya daha fazla hizmeti yoklayan ve mantıksal bir sunuda sunan bir pano uygulaması.
Windows Workflow Foundation kullanılarak uygulanan bir iş akışını WCF hizmeti olarak ortaya çıkarma.
WCF'nin varlığından önce bu tür uygulamaların oluşturulması mümkün olsa da, WCF uç noktaların geliştirilmesini her zamankinden daha kolay hale getirir. Özetle WCF, Web hizmetleri ve Web hizmeti istemcileri oluşturmaya yönelik yönetilebilir bir yaklaşım sunacak şekilde tasarlanmıştır.
WCF'ye alternatif olarak gRPC
gRPC, WCF'ye popüler bir alternatif olan modern bir RPC çerçevesidir. gRPC, AŞAĞıDAKIler dahil olmak üzere WCF'ye göre bir dizi avantaj sağlayan HTTP/2 üzerine kurulmuştur:
- Performans: gRPC, özellikle uzun süre çalışan bağlantılar için WCF'den çok daha verimlidir.
- Ölçeklenebilirlik: gRPC, çok sayıda istemci ve sunucuya ölçeklendirilecek şekilde tasarlanmıştır.
- Güvenlik: gRPC, TLS ve kimlik doğrulaması dahil olmak üzere çeşitli güvenlik mekanizmalarını destekler.
- Platformlar arası: gRPC platformdan bağımsızdır ve çeşitli programlama dilleri ile kullanılabilir.
WCF uygulamalarını geliştirme veya gRPC'ye geçirme hakkında daha fazla bilgi için bkz:
- WCF geliştiricileri için gRPC'yi neden öneririz?
- WCF ile gRPC karşılaştırması
- WCF geliştiricileri için gRPC'ye giriş
WCF'nin Özellikleri
WCF aşağıdaki özellik kümesini içerir. Daha fazla bilgi için bkz . WCF Özellik Ayrıntıları.
Hizmet Yönlendirmesi
WS standartlarını kullanmanın bir sonucu, WCF'nin hizmet odaklı uygulamalar oluşturmanıza olanak tanımasıdır . Hizmet odaklı mimari (SOA), veri göndermek ve almak için Web hizmetlerine güvenen mimaridir. Hizmetler, bir uygulamadan diğerine sabit kodlanmış olmak yerine gevşek bir şekilde bağlanmış olmanın genel avantajına sahiptir. Gevşek bir şekilde bağlanmış bir ilişki, herhangi bir platformda oluşturulan tüm istemcilerin, temel sözleşmeler karşılandığı sürece herhangi bir hizmete bağlanabileceğini gösterir.
Birlikte çalışabilirlik
WCF, Web hizmeti birlikte çalışabilirliği için modern endüstri standartları uygular. Desteklenen standartlar hakkında daha fazla bilgi için bkz . Birlikte Çalışabilirlik ve Tümleştirme.
Birden Çok İleti Deseni
İletiler çeşitli desenlerden birinde değiştirilir. En yaygın desen, bir uç noktanın ikinci bir uç noktadan veri istediği istek/yanıt desenidir. İkinci uç nokta yanıtlar. Tek uç noktanın yanıt beklentisi olmadan ileti gönderdiği tek yönlü ileti gibi başka desenler de vardır. Daha karmaşık bir desen, iki uç noktanın bir bağlantı kurduğu ve anlık ileti programına benzer şekilde ileri geri veri gönderdiği çift yönlü değişim desenidir. WCF kullanarak farklı ileti değişimi desenleri uygulama hakkında daha fazla bilgi için bkz. Sözleşmeler.
Hizmet Meta Verileri
WCF, WSDL, XML Şeması ve WS-policy gibi endüstri standartlarında belirtilen biçimleri kullanarak hizmet meta verilerini yayımlamayı destekler. Bu meta veriler, WCF hizmetlerine erişmek üzere istemcileri otomatik olarak oluşturmak ve yapılandırmak için kullanılabilir. Meta veriler HTTP ve HTTPS üzerinden veya Web Hizmeti Meta Veri Değişimi standardı kullanılarak yayımlanabilir. Daha fazla bilgi için bkz . Meta veriler.
Veri Anlaşmaları
WCF .NET Framework kullanılarak oluşturulduğundan, uygulamak istediğiniz sözleşmeleri sağlamak için kod dostu yöntemler de içerir. Evrensel sözleşme türlerinden biri veri sözleşmesidir. Temelde, Visual C# veya Visual Basic kullanarak hizmetinizi kodladığınızda, verileri işlemenin en kolay yolu, veri varlığına ait özelliklere sahip bir veri varlığını temsil eden sınıflar oluşturmaktır. WCF, verilerle bu kolay şekilde çalışmaya yönelik kapsamlı bir sistem içerir. Verileri temsil eden sınıfları oluşturduktan sonra, hizmetiniz istemcilerin tasarladığınız veri türleriyle uyumlu olmasını sağlayan meta verileri otomatik olarak oluşturur. Daha fazla bilgi için bkz . Veri Sözleşmelerini Kullanma.
Güvenlik
İletiler gizliliği korumak için şifrelenebilir ve kullanıcıların iletileri almalarına izin verilmeden önce kimliklerini doğrulamalarını zorunlu tutabilirsiniz. Güvenlik, SSL veya WS-SecureConversation gibi iyi bilinen standartlar kullanılarak uygulanabilir. Daha fazla bilgi için bkz . Güvenlik.
Birden Çok Aktarım ve Kodlama
İletiler çeşitli yerleşik aktarım protokollerinden ve kodlamalarından herhangi birinde gönderilebilir. En yaygın protokol ve kodlama, World Wide Web'de kullanılmak üzere Köprü Metni Aktarım Protokolü(HTTP) kullanarak metin kodlanmış SOAP iletileri göndermektir. Alternatif olarak WCF, TCP, adlandırılmış kanallar veya MSMQ üzerinden ileti göndermenizi sağlar. Bu iletiler metin olarak veya iyileştirilmiş ikili biçim kullanılarak kodlanabilir. İkili veriler MTOM standardı kullanılarak verimli bir şekilde gönderilebilir. Sağlanan aktarımların veya kodlamaların hiçbiri gereksinimlerinize uymuyorsa kendi özel aktarım veya kodlamanızı oluşturabilirsiniz. WCF tarafından desteklenen aktarımlar ve kodlamalar hakkında daha fazla bilgi için bkz . Aktarımlar.
Güvenilir ve Kuyruğa Alınmış İletiler
WCF, WS-Reliable Messaging üzerinden uygulanan güvenilir oturumları ve MSMQ'yu kullanarak güvenilir ileti değişimini destekler. WCF'de güvenilir ve kuyruğa alınmış mesajlaşma desteği hakkında daha fazla bilgi için bkz . Kuyruklar ve Güvenilir Oturumlar.
Dayanıklı İletiler
Dayanıklı ileti, iletişimdeki bir kesintiden dolayı hiçbir zaman kaybolmaz. Dayanıklı ileti düzenindeki iletiler her zaman bir veritabanına kaydedilir. Bir kesinti oluşursa, bağlantı geri yüklendiğinde veritabanı ileti değişimini sürdürmenize olanak tanır. Windows Workflow Foundation'ı (WF) kullanarak dayanıklı bir ileti de oluşturabilirsiniz. Daha fazla bilgi için bkz . İş Akışı Hizmetleri.
İşlemler
WCF ayrıca üç işlem modelinden birini kullanan işlemleri de destekler: WS-AtomicTransactions, ad alanında API'ler System.Transactions ve Microsoft Dağıtılmış İşlem Düzenleyicisi. WCF'de işlem desteği hakkında daha fazla bilgi için bkz . İşlemler.
AJAX ve REST Desteği
REST, gelişen bir Web 2.0 teknolojisi örneğidir. WCF, SOAP zarfında sarmalı olmayan "düz" XML verilerini işleyebilecek şekilde yapılandırılabilir. WCF ayrıca ATOM gibi belirli XML biçimlerini (popüler bir RSS standardı) ve hatta JavaScript Nesne Gösterimi (JSON) gibi XML olmayan biçimleri destekleyecek şekilde genişletilebilir.
Genişletilebilirlik
WCF mimarisinin bir dizi genişletilebilirlik noktası vardır. Ek özellik gerekiyorsa, bir hizmetin davranışını özelleştirmenize olanak sağlayan bir dizi giriş noktası vardır. Kullanılabilir genişletilebilirlik noktaları hakkında daha fazla bilgi için bkz . WCF'yi genişletme.
Diğer Microsoft Teknolojileri ile WCF Tümleştirmesi
WCF esnek bir platformdur. Bu aşırı esneklik nedeniyle WCF, diğer birçok Microsoft ürününde de kullanılır. WCF'nin temellerini anladığınızda, bu ürünlerden herhangi birini de kullanıyorsanız hemen bir avantaj elde etmiş olursunuz.
WCF ile eşleştiren ilk teknoloji Windows Workflow Foundation (WF) oldu. İş akışları, iş akışındaki adımları "etkinlikler" olarak kapsülleyerek uygulama geliştirmeyi basitleştirir. Windows Workflow Foundation'ın ilk sürümünde, bir geliştiricinin iş akışı için bir konak oluşturması gerekiyordu. Windows Workflow Foundation'ın sonraki sürümü WCF ile tümleştirilmişti. Bu, herhangi bir iş akışının bir WCF hizmetinde kolayca barındırılabilmesini sağladı. Visual Studio 2012 veya sonraki sürümlerde WF/WCF proje türünü otomatik olarak seçerek bunu yapabilirsiniz.
Microsoft BizTalk Server R2, wcf'yi iletişim teknolojisi olarak da kullanır. BizTalk, standartlaştırılmış bir biçimden diğerine veri almak ve dönüştürmek için tasarlanmıştır. İletiler, katı bir eşleme kullanılarak veya iş akışı altyapısı gibi BizTalk özelliklerinden biri kullanılarak dönüştürülebilen merkezi ileti kutusuna teslim edilmelidir. BizTalk artık ileti kutusuna ileti teslim etmek için WCF İş Kolu (LOB) bağdaştırıcısını kullanabilir.
Windows Server AppFabric uygulama sunucusunun barındırma özellikleri, iletişim için WCF kullanan uygulamaları dağıtmak ve yönetmek için özel olarak tasarlanmıştır. Barındırma özellikleri, WCF özellikli uygulamalar için özel olarak tasarlanmış zengin araçlar ve yapılandırma seçenekleri içerir.