Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Auf der Zeitskala der Software ist WCF uralt. Im August 2001 erfuhr ich zum ersten Mal von Microsofts Bemühungen, COM+ mit verwaltetem Code neu zu schreiben. Danach passierte nicht mehr viel. Dann, während einer C# 2.0 Strategic Design Review im Juli 2002, umriss der Remoting Program Manager in groben Zügen die Pläne, Remoting in etwas umzuwandeln, das Entwickler tatsächlich nutzen sollten. Zur gleichen Zeit arbeitete Microsoft daran, die neuen Sicherheitsspezifikationen für Webdienste in den ASMX-Stack zu integrieren und zusammen mit anderen aktiv an der Ausarbeitung einer Reihe von zusätzlichen Webdienstspezifikationen zu arbeiten.
Im Juli 2003 erhielt ich Zugang zu einer neuen Transaktionsinfrastruktur, die die Unzulänglichkeiten der transaktionalen .NET-Programmierung verbesserte. Zu dieser Zeit gab es kein zusammenhängendes Programmiermodell, das diese unterschiedlichen Technologien vereinte. Gegen Ende des Jahres 2003 hatte ich das Privileg, in ein kleines Team von externen Branchenexperten eingeladen zu werden und an der strategischen Überprüfung einer neuen Entwicklungsplattform mit dem Codenamen Indigo teilzunehmen. Einige der klügsten und nettesten Leute, mit denen ich je zusammengearbeitet habe, gehörten zu diesem Team. In den nächsten zwei bis drei Jahren durchlief Indigo etwa drei Generationen von Programmiermodellen. Das endgültige deklarative, endpunktgesteuerte Objektmodell kam Anfang 2005 auf den Markt, wurde bis August desselben Jahres stabilisiert und erhielt den Namen Windows Communication Foundation (WCF). WCF wurde im November 2006 als Teil von .NET 3.0 veröffentlicht.
Auf der Skala der Software-Relevanz ist WCF ein Gigant. Sie hat alle richtigen Elemente, die für den Aufbau eines modernen Softwaresystems erforderlich sind, einschließlich des grundlegenden Musters aller modernen Software: eine erweiterbare, abhörbasierte Pipeline. Sie ist die Grundlage für die kommende Azure Service Fabric und lässt sich bereits jetzt in die Service Fabric integrieren. In den vorherigen drei Ausgaben dieses Buches wurde bereits gezeigt, wie alle Elemente der Service Fabric implementiert werden können. WCF ist also so wichtig wie eh und je.
WCF hat mehrere Facetten und ist heute die einzige Technologie, die Interoperabilität, Produktivität und Erweiterbarkeit bietet. Es ist die ultimative Interoperabilitätslösung, eine Implementierung einer langen Liste von Industriestandards. Für den Entwickler von verteilten Anwendungen ist es die einfachste Möglichkeit, Fernaufrufe und sogar Anrufe in Warteschlangen zu tätigen. Für den Systementwickler ist es die nächste Generation produktivitätsorientierter Funktionen, wie Transaktionen und Hosting, die eine Standardlösung für Anwendungen darstellen. Für den Anwendungsentwickler ist es ein deklaratives Programmiermodell zur Strukturierung von Anwendungen. Und für den Architekten ist es ein Werkzeug für die Erstellung serviceorientierter Anwendungen. WCF ist eigentlich all das, weil es so konzipiert wurde - als einheitliches Angebot der verschiedenen Microsoft-Technologien.
Für mich ist WCF eine überlegene Entwicklungsplattform, die die rohe .NET-Programmierung größtenteils verdrängt hat. Alle .NET-Entwicklerinnen und -Entwickler sollten WCF nutzen, unabhängig von der Art der Anwendung, der Größe oder der Branche, in der sie tätig sind. WCF ist eine grundlegende Technologie, die einen einfachen und sauberen Weg zur Erstellung von Diensten und Anwendungen bietet, die den meiner Meinung nach soliden Designprinzipien entsprechen. WCF wurde von Grund auf entwickelt, um die Anwendungsentwicklung und -bereitstellung zu vereinfachen und die Gesamtbetriebskosten zu senken. WCF-Dienste ermöglichen es dir, serviceorientierte Anwendungen zu erstellen, von eigenständigen Desktop-Anwendungen über webbasierte Anwendungen und Dienste bis hin zu High-End-Unternehmensanwendungen.
Wie dieses Buch organisiert ist
Dieses Buch behandelt die Themen und Fähigkeiten, die du brauchst, um serviceorientierte WCF-basierte Anwendungen zu entwerfen und zu entwickeln. Es zeigt dir, wie du die Vorteile der eingebauten Funktionen wie Service-Hosting, Instanzmanagement, Gleichzeitigkeitsmanagement, Transaktionen, unterbrochene Warteschlangenaufrufe, Sicherheit und die neue Windows Azure Service Fabric nutzen kannst. Aber eigentlich geht es in diesem Buch nicht um WCF. Es geht um moderne Softwareentwicklung, die WCF als Medium nutzt, um diese Designideen auszudrücken. Die verschiedenen Konzepte, die in diesem Buch behandelt werden, sind technologieübergreifend. Das Buch zeigt dir zwar, wie du diese Funktionen in WCF nutzen kannst, konzentriert sich aber auf das "Warum" und auf die Gründe für bestimmte Designentscheidungen. Du erfährst nicht nur etwas über die WCF-Programmierung und die damit verbundenen Systemprobleme, sondern auch über relevante Designoptionen, Tipps, bewährte Methoden und Fallstricke. Ich gehe fast jedes Thema und jeden Aspekt aus der Sicht der Softwareentwicklung an, denn mein Ziel ist es, dich nicht nur zu einem WCF-Experten, sondern auch zu einem besseren Softwareentwickler zu machen. Mit den Erkenntnissen aus diesem Text kannst du deine Anwendungen so entwickeln, dass sie wartbar, erweiterbar, wiederverwendbar und produktiv sind.
Diese vierte Ausgabe bot mir mehrere Gelegenheiten: Erstens wollte ich WCF in .NET 4.6 mit seinen neuen Funktionen zur parallelen Verarbeitung und Konfiguration nachholen. Zweitens wollte ich die kommende Azure Service Fabric vorstellen, die aufgrund der Art der Anwendungen, die sie Entwicklern ermöglicht, und der Art und Weise, wie sie Entwicklung und Betrieb vereinheitlicht, eine grundlegend bahnbrechende Technologie ist. Drittens habe ich ein paar Jahre mehr an WCF-Techniken, Ideen und Hilfsklassen gesammelt und die Ideen aus den vorherigen Ausgaben verbessert. Ich glaube, dass dieses neue Material diese Ausgabe auch für die Leser der dritten Ausgabe wertvoll machen wird.
Dieses Buch vermeidet viele Implementierungsdetails von WCF und beschränkt sich weitgehend auf die Möglichkeiten und praktischen Aspekte der Nutzung von WCF: wie man die Technologie anwendet und wie man zwischen den verfügbaren Design- und Programmiermodellen wählt. Es macht das Beste aus dem, was .NET 4.6 und die Service Fabric zu bieten haben, und ist in mancher Hinsicht auch ein Buch für Fortgeschrittene in C#.
Außerdem enthält das Buch viele nützliche Hilfsprogramme, Tools und Hilfsklassen, die ich geschrieben habe und die zusammen als ServiceModelEx bekannt sind. Meine Tools, Hilfsklassen und Attribute zielen darauf ab, deine Produktivität und die Qualität deiner WCF-Dienste zu steigern. ServiceModelEx ist im wahrsten Sinne des Wortes ein kleines Framework, das auf WCF aufsetzt und einige Unzulänglichkeiten in dessen Design ausgleicht. ServiceModelEx vereinfacht und automatisiert auch bestimmte Aufgaben. In diesem Buch geht es ebenso sehr um meine Tools, Ideen und Techniken wie um die native WCF, und mein Framework zeigt auch, wie du WCF erweitern kannst. Viele Leserinnen und Leser haben mir gesagt, dass ServiceModelEx neben den Erklärungen in diesem Buch das wertvollste Kapital ist, das das Buch bietet. Ich habe mich auch an meine Vorgabe gehalten, dass die Leserinnen und Leser im Prinzip nicht alle (oder einen Teil) von ServiceModelEx verwenden müssen. In der Praxis ist ServiceModelEx deine WCF-Power-Tools-Sammlung. Du kannst auch jede Hilfsklasse, jedes Dienstprogramm und jedes Framework einzeln verwenden, da es, wenn überhaupt, nur wenige Abhängigkeiten gibt.
Jedes Kapitel befasst sich mit einem einzelnen Thema und behandelt es eingehend. Allerdings stützen sich die Kapitel oft auf die vorangegangenen, daher solltest du das Buch in der richtigen Reihenfolge lesen.
Hier ist eine kurze Zusammenfassung der Kapitel und Anhänge in diesem Buch:
- Kapitel 1, WCF Grundlagen
- In diesem ersten Kapitel wird zunächst erklärt, was WCF ist. Anschließend werden die wichtigsten WCF-Konzepte und -Bausteine (wie Adressen, Verträge, Bindungen, Endpunkte, Hosting und Clients) sowie Schlüsselkonzepte wie Zuverlässigkeit und Transportsitzungen beschrieben. Das Kapitel enthält eine Diskussion über die WCF-Architektur, die der Dreh- und Angelpunkt für alles ist, was in den folgenden Kapiteln folgt. Dieses Kapitel setzt voraus, dass du die grundlegende Motivation und den Nutzen der Serviceorientierung verstehst. Wenn das nicht der Fall ist, solltest du zuerst Anhang A lesen. Auch wenn du bereits mit den grundlegenden Konzepten der WCF vertraut bist, empfehle ich dir, dieses Kapitel zumindest flüchtig zu lesen, nicht nur um sicherzustellen, dass du eine solide Grundlage hast, sondern auch, weil einige der hier vorgestellten Hilfsklassen und Begriffe im Laufe des Buches verwendet und erweitert werden.
- Kapitel 2, Dienstleistungsverträge
- Kapitel 2 widmet sich dem Thema Entwurf und Arbeit mit Serviceverträgen. Zunächst werden einige nützliche Techniken zur Überladung und Vererbung von Serviceverträgen sowie einige fortgeschrittene Techniken vorgestellt. Das Kapitel beschreibt auch, wie man Verträge so gestaltet, dass sie wiederverwendbar, wartbar und erweiterbar sind. Abschließend wird gezeigt, wie du zur Laufzeit programmatisch mit den Metadaten der offengelegten Verträge interagieren kannst.
- Kapitel 3, Datenverträge
- In Kapitel 3 geht es darum, wie der Client und der Dienst Daten austauschen können, ohne den Datentyp selbst zu teilen oder die gleiche Entwicklungstechnologie zu verwenden. In diesem Kapitel erfährst du, wie du mit einigen interessanten Problemen aus der Praxis umgehst, z. B. der Versionierung von Daten und der Übergabe von Sammlungen von Elementen. Außerdem wird in diesem Kapitel die Diskussion über Vertragsgestaltung und Factoring aus Kapitel 2 auf Datenverträge ausgeweitet.
- Kapitel 4, Instanzmanagement
- Dieses Kapitel beantwortet die Frage, welche Service-Instanz die Anfrage eines Kunden bearbeitet. WCF unterstützt verschiedene Techniken für die Verwaltung, Aktivierung und Lebensdauer von Dienstinstanzen, und deine Entscheidungen haben drastische Auswirkungen auf Skalierbarkeit, Leistung, das Programmiermodell und den Geschäftsablauf. In diesem Kapitel werden die Gründe für die einzelnen Instanzverwaltungsmodi erläutert, es werden Richtlinien für den optimalen Einsatz dieser Modi gegeben, und es werden einige verwandte Themen wie Haltbarkeit und Drosselung behandelt.
- Kapitel 5, Betrieb
- Kapitel 5 befasst sich mit den Arten von Operationen, die Clients auf einem Dienst aufrufen können, und den damit verbundenen Entwurfsrichtlinien, z. B. wie das WCF-Basisangebot verbessert und erweitert werden kann, um Callback-Setup und -Teardown zu unterstützen, Callback-Ports und -Kanäle zu verwalten und typsichere Duplex-Proxys zu ermöglichen.
- Kapitel 6, Fehler
- In diesem Kapitel werden die bewährten Methoden der Fehlerbehandlung besprochen, die es dir ermöglichen, die Fehlerbehandlung des Clients von der des Dienstes zu entkoppeln. Das Kapitel zeigt, wie Dienste bei Bedarf Fehler und Ausnahmen an ihre Kunden zurückmelden können, da Konstrukte wie Ausnahmen und Ausnahmebehandlung technologiespezifisch sind und nicht über die Dienstgrenze hinausgehen sollten. In diesem Kapitel wird auch gezeigt, wie du den grundlegenden Fehlerbehandlungsmechanismus der WCF erweitern und verbessern kannst.
- Kapitel 7, Transaktionen
- In diesem Kapitel wird zunächst die Motivation für Transaktionen im Allgemeinen erläutert. Anschließend werden die vielen Aspekte transaktionaler Dienste besprochen: die Architektur der Transaktionsverwaltung, die Konfiguration der Transaktionsausbreitung, die deklarative Transaktionsunterstützung der WCF und wie Clients Transaktionen erstellen können. Am Ende des Kapitels werden relevante Designrichtlinien wie die Zustandsverwaltung von transaktionalen Diensten und Instanzierungsmodi besprochen.
- Kapitel 8, Gleichzeitigkeitsmanagement
- In Kapitel 8 wird zunächst die leistungsstarke und dennoch einfache deklarative Art und Weise beschrieben, mit der WCF Gleichzeitigkeit und Synchronisierung sowohl für den Client als auch für den Dienst verwaltet. Anschließend werden fortgeschrittene Aspekte des Gleichzeitigkeitsmanagements wie Callbacks, Reentrancy, Thread-Affinität und Synchronisierungskontext, bewährte Methoden und Richtlinien zur Vermeidung von Deadlocks sowie das Management asynchroner Aufrufe vorgestellt. Das Kapitel befasst sich auch mit dem Task-based Asynchronous Pattern (TAP) und damit, wie diese Art der Asynchronität mit WCF zusammenhängt, und zeigt bewährte Methoden sowie mögliche Fallstricke auf.
- Kapitel 9, Dienste in der Warteschlange
- Kapitel 9 zeigt, wie Clients Aufrufe von Diensten in eine Warteschlange stellen können und so asynchrones, unverbundenes Arbeiten ermöglichen. Das Kapitel zeigt zunächst, wie Warteschlangendienste eingerichtet und konfiguriert werden, und konzentriert sich dann auf Aspekte wie Transaktionen, Instanzmanagement und Ausfälle und deren Auswirkungen auf das Geschäftsmodell des Dienstes und seine Implementierung. Außerdem werden Techniken zur Rationalisierung von Warteschlangen, zum Anrufmanagement und einige originelle Design-Ideen (z. B. ein Warteschlangen-Antwortdienst) vorgestellt.
- Kapitel 10, Sicherheit
- In diesem Kapitel wird die serviceorientierte Sicherheit entmystifiziert, indem diese vielschichtige Aufgabe in ihre Grundelemente wie Nachrichtenübertragung, Authentifizierung und Autorisierung zerlegt wird. Außerdem wird gezeigt, wie man Sicherheit für wichtige Szenarien wie Intranet- und Internetanwendungen bereitstellt. Schließlich wird mein Framework für deklarative WCF-Sicherheit vorgestellt, das die Einrichtung der Sicherheit automatisieren und die Verwaltung der Sicherheit erheblich vereinfachen soll.
- Kapitel 11, Die Azure Service Fabric
- Kapitel 11 führt dich in die Azure Service Fabric ein. Dieses Kapitel beginnt mit einer kurzen Erläuterung des Wertes und der Gründe für die neue Plattform und fährt mit der Vorstellung der vielen Möglichkeiten der Service Fabric fort. Am Ende des Kapitels wird
ServiceModelEx.ServiceFabric
vorgestellt, unsere einsatzbereite Service Fabric, die die Vorbereitung auf die Service Fabric vereinfacht und es dir ermöglicht, Service Fabric-Code in jeder Windows-Umgebung einzusetzen, die WCF-Dienste hosten kann. - Anhang A, Einführung in die Service-Orientierung
- Dieser Anhang richtet sich an Leserinnen und Leser, die verstehen wollen, worum es bei der Serviceorientierung geht: Er stellt meine Auffassung von Serviceorientierung vor und bringt sie in einen konkreten Kontext. Der Anhang definiert serviceorientierte Anwendungen (im Gegensatz zur reinen Architektur) und die Dienste selbst und untersucht die Vorteile der Methodik. Anschließend werden die Prinzipien der Serviceorientierung vorgestellt und die abstrakten Grundsätze um einige praktische Punkte ergänzt, die für die meisten Anwendungen erforderlich sind. In diesem Anhang teile ich auch meine Sichtweise darüber mit, wohin sich SOA und WCF entwickeln werden.
- Anhang B, Überschriften und Kontexte
- In diesem Anhang werden zwei verschiedene Techniken vorgestellt, die es dem Client ermöglichen, Out-of-Band-Parameter an den Dienst zu übergeben, was zu einem benutzerdefinierten logischen Kontext führt: Du wirst sehen, wie du entweder die Nachrichtenköpfe oder die Kontextbindung verwenden kannst, um dieses Ziel zu erreichen. In diesem Anhang werden auch meine Hilfsklassen vorgestellt, die die erforderliche Programmierung stark vereinfachen und kapseln. Diese Hilfsklassen und benutzerdefinierten Kontexte werden an mehreren Stellen im Buch verwendet.
- Anhang C, Entdeckung
- In diesem Anhang wird zunächst das mit .NET 4.0 eingeführte Basisangebot der Diensterkennung und Verfügbarkeitsmeldungen beschrieben. Die Erkennung vereinfacht die Bereitstellung und Verwaltung von Diensten und Clients und ermöglicht eine hohe Volatilität über Zeit und Einsatzorte hinweg. Der Anhang zeigt dann einige einfache Techniken und Hilfsklassen, die du verwenden kannst, um das Programmiermodell zu vereinfachen. Der Anhang endet mit unserer Technik für TCP-basierte Discovery, die die reguläre WCF-Discovery nachahmt und von der Discovery auch dort profitiert, wo UDP nicht erlaubt ist.
- Anhang D, Publish-Subscribe-Dienst
- In Anhang D werden verschiedene Techniken für die Implementierung einer Publish-Subscribe-Eventmanagement-Lösung vorgestellt. Er beginnt mit meinem Framework, mit dem du in höchstens einer Codezeile einen Veröffentlichungs- und einen Abonnementdienst entwickeln kannst. Der Anhang endet mit einer Discovery-fähigen Publish-Subscribe-Lösung, die keine expliziten Abonnement-Schritte erfordert.
- Anhang E, Generischer Abfangjäger
- In diesem Anhang wird ein allgemeines, erweiterbares Framework zum Abfangen von Aufrufen zu deinen WCF-Diensten vorgestellt. Er erläutert die Technik und den Gedankengang, der hinter einer solchen Erweiterung steht, und zeigt zwei Beispiele, wie diese einfache, aber leistungsstarke und nützliche Technik eingesetzt werden kann.
- Anhang F, WCF-Codierungsstandard
- Anhang F ist im Grunde eine konsolidierte Liste aller bewährten Methoden und der Do's and Don'ts, die in diesem Buch erwähnt werden. In diesem Standard geht es nur um das "Wie" und das "Was", nicht um das "Warum". Die Gründe dafür findest du im Rest des Buches. Der Standard verwendet auch die in diesem Buch besprochenen Begriffe und Hilfsklassen.
- Anhang G, ServiceModelEx-Katalog
- Der letzte Anhang enthält einen Katalog der etwa 100 öffentlichen Hilfstypen (ohne interne Hilfstypen) von ServiceModelEx, die im Buch erwähnt werden, geordnet nach Kategorien und Techniken und mit einer kurzen Beschreibung der einzelnen Typen.
Michael "Monty" Montgomery stellt sich vor
2009 lernte ich bei meiner jährlichen Architect's Master Class Monty kennen, der zu dieser Zeit Chefarchitekt eines großen Unternehmens war. In den nächsten Jahren blieben wir in Kontakt, denn Monty ist einer der besten Architekten, die ich je getroffen habe. Monty hat ein natürliches Gespür für serviceorientiertes Design und die damit verbundenen Systemfragen. Außerdem erwies er sich als WCF-Experte. Im Jahr 2012 machte er schließlich den Sprung und kam zu IDesign. Der Grund, warum ich ihn wollte, hatte fast nichts mit seinem technischen Fachwissen zu tun. Monty hat ein grundlegendes Verständnis dafür, was es braucht, um ein Entwicklerteam mit einem breiten Spektrum an Fähigkeiten produktiv zu machen. Im Laufe der Jahre hat Monty viele Architekten dabei unterstützt, genau dieses Ziel zu erreichen, und so war er die ideale Besetzung für die vierte Auflage der WCF-Bibel. Gemeinsam tauschten wir neue und alte Ideen aus, die in den neuen Techniken gipfelten, die du in diesem Buch lesen kannst.
Mit der Hinzufügung eines zweiten Autors wollte ich die Stimme des ursprünglichen Autors aus den vorherigen drei Ausgaben beibehalten, wenn es um persönliche Meinungen oder Beiträge geht. Wenn im Text von "ich" oder "mein" die Rede ist, bezieht sich das wie in den vorherigen Ausgaben auf Juval. Wenn es "wir" oder "unser" heißt, sind sowohl Juval als auch Monty gemeint.
Einige Annahmen über den Leser
Ich gehe davon aus, dass du, der Leser, ein erfahrener Entwickler bist und mit objektorientierten Konzepten wie Kapselung und Vererbung vertraut bist. Ich werde dein bereits vorhandenes Verständnis von Objekt- und Komponententechnologie und -terminologie nutzen und dieses Wissen auf WCF übertragen. Du solltest idealerweise ein gutes Verständnis von .NET haben und C# 4.5 kennen. Obwohl das Buch größtenteils in C# geschrieben ist, ist es für Visual Basic-Entwickler/innen genauso relevant.
Was du brauchst, um dieses Buch zu benutzen
Um dieses Buch zu verwenden, benötigst du .NET 4.5 oder .NET 4.6 und Visual Studio 2015 oder 2016. Für den Service Fabric-Anhang benötigst du das Windows Azure Service Fabric SDK. Wenn ich nicht ausdrücklich etwas anderes erwähne, gilt der Inhalt für jede Plattform, die WCF ausführen kann. Du kannst auch zusätzliche Windows-Komponenten installieren, wie MSMQ und IIS.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Wird für Fachbegriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen verwendet.
Constant width
-
Wird für Codebeispiele, Anweisungen, Namensräume, Klassen, Assemblies, Schnittstellenanweisungen, Operatoren, Attribute und reservierte Wörter verwendet.
Constant width bold
-
Wird zur Hervorhebung in Codebeispielen verwendet.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Immer wenn ich in einem Codebeispiel einen Punkt machen möchte, tue ich das mit der statischen Assert-Methode der Debug-Klasse:
int number = 1+2; Debug.Assert(number = 3);
Die Methode Assert
akzeptiert einen booleschen Wert und löst eine Ausnahme aus, wenn er falsch ist.
Das Buch folgt den empfohlenen Benennungsrichtlinien und dem Kodierungsstil, die bei iDesign verfügbar sind. Wenn es von diesem Standard abweicht, ist das wahrscheinlich das Ergebnis von Platz- oder Zeilenlängenbeschränkungen. Was die Namenskonventionen angeht, so verwende ich für öffentliche Methoden und Eigenschaften die "Pascal-Schreibweise", d. h. der erste Buchstabe jedes Wortes im Namen wird groß geschrieben. Für lokale Variablen und Methodenparameter verwende ich die "Kamelschreibweise", bei der der erste Buchstabe jedes Wortes im Namen großgeschrieben wird, mit Ausnahme des ersten Wortes. Den Namen privater Mitgliedsvariablen wird das Zeichen m_
vorangestellt:
class SomeClass { int m_Number; public int Number {get;set}; }
Ich verwende Ellipsen zwischen geschweiften Klammern, um das Vorhandensein von Code zu kennzeichnen, der notwendig, aber nicht spezifiziert ist:
class SomeClass {...}
Im Interesse der Übersichtlichkeit und des Platzes enthalten die Codebeispiele oft nicht alle using
Anweisungen, die für die Angabe aller benötigten Namensräume erforderlich sind; stattdessen enthalten diese Beispiele nur die neuen Namensräume, die im vorangehenden Text vorgestellt werden.
Safari® Bücher Online
Safari Books Online ist eine digitale On-Demand-Bibliothek, die Experteninhalte in Buch- und Videoform von weltweit führenden Autoren aus den Bereichen Technologie und Wirtschaft liefert.
Technologieexperten, Softwareentwickler, Webdesigner sowie Geschäftsleute und Kreative nutzen Safari Books Online als Hauptressource für Recherchen, Problemlösungen, Lernen und Zertifizierungsschulungen.
Safari Books Online bietet eine Reihe von Plänen und Preisen für Unternehmen, Behörden, Bildungseinrichtungen und Privatpersonen.
Mitglieder haben Zugang zu Tausenden von Büchern, Schulungsvideos und Manuskripten von Verlagen wie O'Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology und Hunderten mehr in einer vollständig durchsuchbaren Datenbank. Wenn du mehr über Safari Books Online erfahren möchtest, besuche uns bitte online.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter http://bit.ly/prog-wcf-services aufrufen .
Du kannst den Autor auch kontaktieren unter: http://www.idesign.net.
Der Autor hat auf der IDesign-Website eine umfassende Code-Bibliothek mit mehr als 150 Downloads zu den Themen WCF-Grundlagen, Vertragsgestaltung, Instanzmanagement, Operationen und Aufrufe, Fehler, Transaktionen, Gleichzeitigkeit, Warteschlangen, Sicherheit und Servicebus bereitgestellt. Die Downloads stellen viele der Codeschnipsel in diesem Buch in einer funktionierenden Form dar. Aufgrund der großen Anzahl der Downloads, des damit verbundenen Wartungsaufwands und der Tatsache, dass diese sekundären, begleitenden Beispiele selbst nicht im Buch erscheinen, werden sie jedoch getrennt von den offiziellen Quellen bereitgestellt.
Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an bookquestions@oreilly.com.
Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://www.youtube.com/oreillymedia
Danksagungen
Ohne die ständige Unterstützung und Interaktion mit den WCF (damals Indigo)-Programmmanagern hätte ich mich in den Anfangstagen der WCF nicht zurechtfinden können. Besonders dankbar bin ich Steve Swartz, einem der WCF-Architekten, nicht nur für sein Wissen und seinen Einblick, sondern auch für seine Geduld mit mir und die langen IM-Sitzungen. Mein Dank geht auch an Yasser Shohoud, Doug Purdy und Shy Cohen für die faszinierenden Überprüfungen des strategischen Designs und an Krish Srinivasan für seinen fast philosophischen Ansatz bei der Entwicklung. Die Zusammenarbeit mit euch war der beste Teil des Lernens von WCF und ein Privileg an sich. Die folgenden WCF-Programmmanager haben ebenfalls ihre Zeit geteilt und geholfen, WCF zu erklären: Andy Milligan, Brian McNamara, Eugene Osovetsky, Kenny Wolf, Kirill Gavrylyuk, Max Feingold, Michael Marucheck, Mike Vernal und Steve Millet. Vielen Dank auch an Angela Mills, die Gruppenleiterin.
Außerhalb von Microsoft bin ich Nicholas Paldino für seine Hilfe dankbar. Dies ist das sechste Buch, das Nick für mich rezensiert hat, und mittlerweile bin ich süchtig danach. Ich kann mir einfach nicht vorstellen, dass ich ohne Nicks Einblick, seine sorgfältige Prüfung und seine gewissenhafte Hilfe in den Druck gehen könnte, ganz zu schweigen von Nicks technischer Kompetenz, die einfach nur beeindruckend und demütigend ist. Dank seines Lektorats und seines Feedbacks sind die Bücher immer ein noch besseres Produkt.
Ich widme das Buch den IDesign Alumni. Ein einzigartiger Vorteil nach der Teilnahme an einer IDesign Master Class ist die Teilnahme an diesem privaten Forum, in dem du über die Anwendung unserer Techniken diskutieren, deine Beobachtungen und Erkenntnisse austauschen und sachdienliche Fragen stellen kannst. Die Mitglieder des Forums sind allesamt Weltklasse-Entwickler, Architekten und Projektleiter, und die Diskussionen in dieser Gruppe sind tiefgründig, aufschlussreich und von höchster Qualität. Viele der Ideen und Techniken in diesem Buch wurden zuerst von den Alumni ausprobiert und erprobt. Die besten E-Mails, die ich jeden Tag erhalte, sind die Diskussionen im Alumni-Forum, und das Maß an gegenseitigem Engagement, Empathie, Exzellenz, professioneller Integrität und Reaktionsfähigkeit ist unübertroffen. Es ist wirklich inspirierend, dass eine Gemeinschaft von meist virtuellen Gleichgesinnten sich so sehr um ihren Beruf und einander kümmern kann. Ich danke euch für jedes Mal, wenn ihr uns dazu gebracht habt, darüber nachzudenken, wie man eine Frage am besten beantwortet, wie man das Designproblem eines Absolventen intelligenter löst oder wie man eine verbesserte Technik einsetzt. Es sind Menschen wie du, für die wir Bücher schreiben.
Get Programmierung von WCF-Diensten, 4. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.