Aracılığıyla paylaş


Sözleşmeler

Bu bölümde, Windows Communication Foundation (WCF) sözleşmelerini tanımlama ve uygulama gösterilmektedir. Hizmet sözleşmesi, uç noktanın dış dünyayla ne iletişim kuracaklarını belirtir. Daha somut bir düzeyde, istek/yanıt, tek yönlü ve çift yönlü gibi temel ileti değişimi desenleri (MEP' ler) halinde düzenlenmiş belirli bir ileti kümesiyle ilgili bir deyimdir. Hizmet sözleşmesi mantıksal olarak ilişkili bir ileti değişimi kümesiyse, hizmet işlemi tek bir ileti değişimidir. Örneğin, bir Hello işlem açıkça bir iletiyi kabul etmelidir (arayan karşılamayı duyurabilir) ve bir ileti döndürebilir veya döndürmeyebilir (işlemin iznine bağlı olarak).

Sözleşmeler ve diğer temel WCF kavramları hakkında daha fazla bilgi için bkz . Temel Windows Communication Foundation Kavramları. Bu konu, hizmet sözleşmelerini anlamaya odaklanır. Hizmetlere bağlanmak için hizmet sözleşmelerini kullanan istemciler oluşturma hakkında daha fazla bilgi için bkz . WCF İstemcisine Genel Bakış. İstemci kanalları, istemci mimarisi ve diğer istemci sorunları hakkında daha fazla bilgi için bkz . İstemciler.

Genel bakış

Bu konu, WCF hizmetlerini tasarlamaya ve uygulamaya yönelik üst düzey bir kavramsal yönlendirme sağlar. Alt konu konuları, tasarım ve uygulama özellikleri hakkında daha ayrıntılı bilgi sağlar. WCF uygulamanızı tasarlamadan ve uygulamadan önce şunları yapmanızı öneririz:

  • Hizmet sözleşmesinin ne olduğunu, nasıl çalıştığını ve nasıl oluşturulacağını anlayın.

  • Sözleşmelerin, çalışma zamanı yapılandırması veya barındırma ortamının desteklemeyebileceği en düşük gereksinimleri belirttiğini anlayın.

Hizmet Sözleşmeleri

Hizmet sözleşmesi, aşağıdakiler hakkında bilgi sağlayan bir deyimdir:

  • Bir hizmetteki işlemleri gruplandırma.

  • İşlemlerin ileti alışverişi açısından imzası.

  • Bu iletilerin veri türleri.

  • İşlemlerin konumu.

  • Hizmetle başarılı iletişimi desteklemek için kullanılan belirli protokoller ve serileştirme biçimleri.

Örneğin, bir satın alma siparişi sözleşmesi, sipariş bilgileri türlerinin girişini kabul eden ve sipariş tanımlayıcısı da dahil olmak üzere başarı veya hata bilgilerini döndüren bir işleme sahip CreateOrder olabilir. Ayrıca sipariş GetOrderStatus tanımlayıcısı kabul eden ve sipariş durumu bilgilerini döndüren bir işlemi de olabilir. Bu tür bir hizmet sözleşmesi şunları belirtir:

  • Satın alma siparişi sözleşmesinin ve GetOrderStatus işlemlerinden CreateOrder oluştuğu.

  • İşlemlerin giriş iletilerini ve çıkış iletilerini belirttiğini.

  • Bu iletilerin taşıyabileceği veriler.

  • İletileri başarıyla işlemek için gereken iletişim altyapısı hakkındaki kategorik deyimler. Örneğin, bu ayrıntılar başarılı bir iletişim kurmak için gerekli güvenlik biçimlerini ve olup olmadığını içerir.

Bu tür bilgileri diğer platformlardaki uygulamalara (Microsoft dışı platformlar dahil) iletmek için, XML hizmet sözleşmeleri web hizmetleri açıklama dili (WSDL) ve XML Şeması (XSD) gibi standart XML biçimlerinde ve diğerleri arasında genel olarak ifade edilir. Birçok platform için geliştiriciler, hem belirtim dilini anladıkları hem de bu dillerin hizmetin desteklediği genel formları, biçimleri ve protokolleri açıklayarak birlikte çalışmaya olanak sağlayacak şekilde tasarlandığından, hizmetle iletişim kurabilen uygulamalar oluşturmak için bu genel sözleşme bilgilerini kullanabilir. WCF'nin bu tür bilgileri nasıl işlediği hakkında daha fazla bilgi için bkz . Meta veriler.

Ancak sözleşmeler birçok şekilde ifade edilebilir ve WSDL ve XSD, hizmetleri erişilebilir bir şekilde açıklamak için mükemmel diller olsa da, doğrudan kullanımı zor dillerdir; her durumda, hizmet sözleşmesi uygulamalarının değil yalnızca hizmetin açıklamalarıdır. Bu nedenle, WCF uygulamaları hem yapısını tanımlamak hem de bir hizmet uygulamak için yönetilen öznitelikleri, arabirimleri ve sınıfları kullanır.

Yönetilen türlerde tanımlanan sonuçta elde edilen sözleşme, özellikle diğer platformlarda istemciler veya diğer hizmet uygulayıcıları tarafından gerektiğinde meta veri olarak (WSDL ve XSD olarak da adlandırılır) dönüştürülebilir. Sonuç, herhangi bir istemci uygulaması için genel meta veriler kullanılarak açıklanabilir basit bir programlama modelidir. Taşıma ve güvenlikle ilgili bilgiler gibi temel SOAP iletilerinin ayrıntıları WCF'ye bırakılabilir ve bu da hizmet sözleşmesi türü sisteminden XML türü sistemine otomatik olarak gerekli dönüştürmeleri gerçekleştirir.

Sözleşme tasarlama hakkında daha fazla bilgi için bkz . Hizmet Sözleşmeleri Tasarlama. Sözleşmeleri uygulama hakkında daha fazla bilgi için bkz . Hizmet Sözleşmelerini Uygulama.

Ayrıca WCF, hizmet sözleşmelerini tamamen ileti düzeyinde geliştirme olanağı da sağlar. İleti düzeyinde hizmet sözleşmeleri geliştirme hakkında daha fazla bilgi için bkz . İleti Sözleşmelerini Kullanma. SOAP OLMAYAN XML'de hizmet geliştirme hakkında daha fazla bilgi için bkz . POX Uygulamalarıyla Birlikte Çalışabilirlik.

Gereksinimler Hiyerarşisini Anlama

Bir hizmet sözleşmesi işlemleri gruplandırarak; bu iletilerin taşıdığı MEP, ileti türleri ve veri türlerini belirtir; ve bir uygulamanın sözleşmeyi desteklemesi gereken çalışma zamanı davranışı kategorilerini gösterir (örneğin, iletilerin şifrelenmesini ve imzalanması gerekebilir). Ancak hizmet sözleşmesi, bu gereksinimlerin tam olarak nasıl karşılandığını belirtmez, yalnızca bunların yerine getirilmesi gerektiğini belirtir. Ne tür bir şifreleme veya iletinin nasıl kaydoldığı, uyumlu bir hizmetin uygulanmasına ve yapılandırılmasına yöneliktir.

Sözleşmenin davranış eklemek için hizmet sözleşmesi uygulamasının ve çalışma zamanı yapılandırmasının belirli şeyleri gerektirdiğine dikkat edin. Bir hizmeti kullanım için kullanıma sunma amacıyla karşılanması gereken gereksinimler kümesi, önceki gereksinimler kümesinde derleniyor. Bir sözleşme uygulamanın gereksinimlerini karşılıyorsa, bir uygulama hizmetin çalışmasını sağlayan yapılandırma ve bağlamaların daha fazlasını gerektirebilir. Son olarak, konak uygulamasının hizmet yapılandırmasının ve bağlamalarının ekleyip eklemediğini de desteklemesi gerekir.

Bu ek gereksinim süreci, Windows Communication Foundation (WCF) hizmet uygulamanızı tasarlarken, uygularken, yapılandırırken ve barındırırken göz önünde bulundurmanız önemlidir. Örneğin, sözleşme bir oturumu desteklemesi gerektiğini belirtebilir. Öyleyse, bağlamayı bu sözleşme gereksinimini destekleyecek şekilde yapılandırmanız gerekir, aksi takdirde hizmet uygulaması çalışmaz. Ya da hizmetiniz Tümleşik Windows kimlik doğrulaması gerektiriyorsa ve Internet Information Services'ta (IIS) barındırılıyorsa, hizmetin bulunduğu Web uygulamasında Tümleşik Windows kimlik doğrulaması açık ve anonim destek kapalı olmalıdır. Farklı hizmet konağı uygulama türlerinin özellikleri ve etkisi hakkında daha fazla bilgi için bkz . Barındırma.

Ayrıca bkz.