.NET 3.0 wurde vor kurzem zur Verfügung zu allen Entwicklern. Mit ihm kommt eine Reihe neuer Satz von API, die einfach da sind die .NET-Entwickler das Potenzial zu entfesseln, die nächste Welle von leistungsstarken Anwendungen zu erstellen. Diese API, früher unter dem Namen WinFX, nehmen die Form von vier Säulen -, und. In diesem Beitrag von mir, würde Ich mag eine Perspektive auf die Windows Communication Foundation (WCF) zu geben.
Typischerweise beginnt man eine Einführung in WCF aus, indem Sie erklären, die vier Grundsätze der SOA und wie WCF umarmt sie von Grund auf. Während dies sehr vernünftig ist, würde Ich mag über WCF aus einer etwas anderen Perspektive zu denken, die, natürlich, in Zusammenfluß der SOA Lehren schließlich fließen würde. Um einen guten Einblick in diese Lehren bekommen, würde ich fordere Sie vom ehrwürdigen Don Box zu suchen.
WCF, kurz gesagt, ist alles über den Nachrichtenaustausch zwischen den Endpunkten erleichtern. Beachten Sie, dass "Nachricht" und "Endpunkt" unterstrichen werden. Nun, das sind aber, was WCF geht. Dies sind Konzepte, durch die SOA realisiert wird. Lassen Sie mich Ihnen mein Verständnis dieser Konzepte:
Wenn eine Einheit mit der Welt zu kommunizieren muss, tut sie dies mit den Endpunkten. Endpunkt besteht aus drei Elementen (allgemein als ABC genannt): Adresse (Wo) - Wo kann ich den Dienst zu finden, die URI-Bindung (Wie) - Wie kann ich mit dem Service kommunizieren? Was sind die Sicherheitsanforderungen, die Codierung Anforderungen usw.? Vertrag (Was) - Was die Struktur der Nachrichten ist, dass ich mit dem Endpunkt kommunizieren müssen? Was sind die Nachrichtenaustauschmuster (wie Request / Reply, OneWay etc)
Ein WCF-Dienst würde daher mindestens einen Endpunkt; es könnte mehrere basierend auf verschiedenen Kombinationen von Bindungen, Verträge oder Endpunkt-Adressen haben.
Wenn Sie wirklich es betrachtet, sind die Konzepte, verkörpert durch WCF nicht neu. Sie waren so ziemlich in ASMX. Was fehlte, war, dass diese Konzepte / Abstraktionen wurden in der ASMX (ASP.NET) Rahmen nicht explizit kodifiziert. ASMX schien nur eine schnelle Art und Weise zu sein .NET-Klassen zu bekommen SOAP zu sprechen. So gefangen, in einer Welt der Klassen und Attribute, verloren Entwickler Sicht der zugrunde liegenden Konzepte, die als Wsdl manifestiert: porttype, wsdl: port, wsdl: message und wsdl: binding.
WCF, auf der anderen Seite macht diese Konzepte explizit, wie sie in der ServiceEndpoint gesehen, Binden, Contract und EndpointAddress Klassen im System.ServiceModel-Namespace. Es ist dieses Objektmodell, das WCF sehr mächtig macht. Die Zahl der Out-of-the-box-Bindungen zur Verfügung, und das Vorhandensein mehrerer Erweiterungspunkte sprechen von der rohen Energie des WCF-Programmiermodell. Auch diese Architektur ist das, was Vereinigung mehrerer Programmiermodelle wie MSMQ macht, COM , WSE usw. möglich.
"Message", die aus kann einfach gedacht, da die Daten / document / Informationsaustausch zwischen Endpunkten, ist ein First-Class-Bürger in der WCF-Programmiermodell. Im Gegensatz zu seinem Vorgänger, dem Nachrichten nicht mehr als ein XML-Dokument gemeint (oder Strom), die den SOAP-Umschlag, bietet WCF viel bessere Darstellung und eine genauere Kontrolle über Nachrichten. Die Nachrichten werden durch die Nachricht abstrakte Klasse im System.ServiceModel.Channels Namespace vertreten.
Nachdem mit in WCF gesehen, wie Endpunkte und Nachrichten behandelt werden, kann es sicher behauptet werden, dass wir bewusst jetzt von der Prozeduraufruf Paradigma zu einem Nachrichtenaustausch Paradigma bewegen.
Um mehr über WCF-Architektur erfahren, und die Hauptklassen, WCF machen möchten, finden Sie von Yasser Shohoud.
Aktualisieren:
Als Teil der Community Einführung von Windows Vista und Office 2007 in der wir, eine Gruppe von MVPs und andere aktive Community-Mitglieder ein kleines E-Book-Autor, bestehend aus Artikeln über Vista, 2007 .NET 3.0 und Microsoft Office auf dieser Basis Beitrag von mir, schrieb ich einen Artikel über, was ich dachte, die Untermauerung Konzepte der WCF waren. Sie könnten das PDF des E-Book herunterladen.