Sie sind hier
E-Book

Verteilte Systeme und Services mit .NET 4.5

Konzepte und Lösungen für WCF 4.5 und ASP.NET Web-API

AutorHolger Schwichtenberg, Jörg Krause, Manfred Steyer, Matthias Fischer
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2013
Seitenanzahl674 Seiten
ISBN9783446435650
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis39,99 EUR

VERTEILTE SYSTEME & SERVICES MIT .NET 4.5 //
- Für .NET-Entwickler, vom WCF-Einsteiger bis zum -Profi
- Ideal für das Selbststudium, für das Vertiefen und Nachschlagen
- Mit zahlreichen, aufeinander aufbauenden Beispiellösungen und wertvollen Tipps
- Forum für Fragen unter: www.it-visions.de/leser
- Alle Beispiele aus dem Buch unter: http://downloads.hanser.de
Mit diesem durch und durch praxisorientierten Handbuch bekommen Sie einen erstklassigen, didaktisch hervorragenden wie auch konkurrenzlosen Leitfaden an die Hand, um in .NET 4.5 komplexe Geschäftsprozesse planen und entwickeln zu können.
Das Themenspektrum ist groß: Sie lernen alle wichtigen .NET-Technologien, Techniken und Konzepte kennen, um in .NET 4.5 verteilte Systeme, Webservices und serviceorientierte Anwendungen zu erstellen.
Für die erfolgreiche Implementierung verteilter Systeme sind neben der Windows Communication Foundation bzw. der ASP.NET Web API weitere Frameworks notwendig. Detailliert erfahren Sie, wie Sie
- mittels WCF bzw. Web API und SignalR mit Systemen und Geschäftspartnern kommunizieren.
- Geschäftsprozesse in Form von Workflows mit Windows Workflow Foundation automatisieren.
- Single-Sign-On-Szenarien mit Windows Identity Foundation implementieren.
- verschiedene Systeme über Azure Service Bus standortübergreifend integrieren.
- mit Entity Framework, RIA- und Data-Services auf Datenbanken zugreifen.
AUS DEM INHALT:
Servicebasierte Systeme mit WCF umsetzen // REST-Services mit Web API erstellen // Benachrichtigungs-Szenarien mit SignalR // Single-Sign-On mit der Identity Foundation // Datenbasierte Services mit Entity Framework // Geschäftsprozesse mit Workflow Foundation // Systeme verbinden mit Azure Service Bus

Manfred STEYER: FH-Professor und Fachbereichsleiter Software Engineering an der FH CAMPUS 02 in Graz sowie Trainer und Berater bei www.IT-Visions.de. Dr. Holger SCHWICHTENBERG: Leiter des .NET-Expertennetzwerks www.IT-Visions.de. Matthias FISCHER, Jörg KRAUSE: Trainer, Berater und Entwickler für .NET-Technologien.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
1 Serviceorientierung (S. 1-3)

Bevor es in den nachfolgenden Kapiteln um die Realisierung von Services mit Windows Communication Foundation (WCF) gehen wird, bietet dieses Kapitel einen kompakten Überblick zum Thema Serviceorientierung. Neben den unterschiedlichen Sichten auf dieses Thema wird auch auf Protokolle zur Realisierung von Services eingegangen. 1.1 Konzeptionelle Ebene

Sowohl für Techniker als auch für Betriebswirte ist Serviceorientierung von Bedeutung. Allerdings haben beide Gruppen eine unterschiedliche Sicht auf diese Thematik. Dieser Abschnitt geht auf diese beiden Sichten ein und informiert darüber, was allgemein unter Service verstanden werden kann.

1.1.1 Betriebswirtschaftliche Sicht

Auf das Thema Serviceorientierte Architekturen (SOA) gibt es zwei Sichtweisen – eine betriebswirtschaftliche und eine technische. Aus betriebswirtschaftlicher Sicht helfen serviceorientierte Architekturen beim Unterstützen von Geschäftsprozessen. Einzelne Schritte eines Geschäftsprozesses werden dabei von Services, die von verschiedenen Systemen angeboten werden, realisiert. Zur Koordinierung dieser Services wird ein weiterer Service, ein sogenannter Prozessservice, eingesetzt. Dieser ist beispielsweise mit einer Workflow-Engine implementiert, sodass Anpassungen einfach möglich sind und die Umsetzung auch gleichzeitig die Dokumentation widerspiegelt. Bild 1.1 veranschaulicht dies. Dargestellt ist hier ein sehr einfacher, mit den Mitteln der Business Process Modeling Notation (BPMN, vgl. www. bpmn.org) modellierter Prozess, der eine Vorgehensweise zur Angebotslegung für Reisen beschreibt und in vier Bereiche geteilt ist. Diese Bereiche werden in der BPMN als Pools bezeichnet. Die Aktivitäten in den Pools System, Fluggesellschaft und Hotelreservierung werden idealerweise von Services implementiert. Diese können entweder innerhalb der eigenen Organisation zur Verfügung stehen oder von Geschäftspartnern angeboten werden. Ersteres ist bei den Aktivitäten im Pool System der Fall; Letzteres bei den Aktivitäten in den Pools Fluggesellschaft und Hotelreservierung. Die Aktivitäten im Pool Reisebüro würden die Applikation darstellen, die durch Kombination der restlichen Services geschaffen werden soll, und der Prozess an sich würde mit den Mitteln einer Workflow-Engine, welche die einzelnen Services koordiniert, umgesetzt werden. Hierbei ist auch von Orchestrierung die Rede. Bild 1.1 Beispielhafter Geschäftsprozess

1.1.2 Technische Sicht

Aus technischer Sicht geht es beim Thema SOA um verteilte Systeme und Systemintegration. Einzelne Dienste werden, meist über das Netzwerk, in Anspruch genommen. Dazu sendet ein Client eine Anfrage an einen Service. Dieser führt daraufhin die gewünschte Aufgabe durch und sendet das Ergebnis retour an den Client. Je nach Kommunikationspartner können dabei die zu verwendenden Protokolle und Datenformate variieren. Letztere gilt es bei Bedarf zu „übersetzen“, sodass sie in einer für das Gegenüber bearbeitbaren Form vorliegen. All diese Konzepte sind wahrscheinlich so alt wie das Konzept von Computernetzwerken und firmierten vor den Zeiten von SOA zuletzt unter dem Begriff Enterprise Application Integration (EAI) und Komponentenorientierung. Der Übergang zwischen diesen Paradigmen und SOA ist, nüchtern betrachtet, fließend, zumal auch die verwendeten Technologien großteils dieselben sind. SOA unterscheidet sich von seinen Vorgängern vor allem darin, dass der Aspekt der Interoperabilität, also das Zusammenspiel verschiedener Systeme, stärker im Vordergrund steht. Dies manifestiert sich in den bevorzugt verwendeten offenen Protokollen und Datenformaten, wie zum Beispiel HTTP, XML oder auch SOAP. Daneben So wird beispielsweise häufig auf serviceübergreifende Transaktionen verzichtet, da sich deren interoperable Implementierung in der Regel als sehr herausfordernd darstellt. Stattdessen werden im Fehlerfall Kompensationslogiken, welche die ursprünglichen Aktionen rückgängig machen, angestoßen. Bezogen auf das zuvor betrachtete Beispiel könnte es sich dabei um das Stornieren eines Fluges handeln.

1.1.3 Was ist ein Service?

Neben der Tatsache, dass es sich bei einem Service um eine Sammlung von Operationen, die von einzelnen Clients über ein Netzwerk konsumiert werden können, handelt, geht damit auch ein bestimmtes Mindset einher. Im Gegensatz zum klassischen Ansatz der Remote Procedure Calls (RPC) ist ein Service in sich geschlossen. Das bedeutet, dass das Innenleben eines Services für den Aufrufer eine Blackbox darstellt, sodass dieser nicht über technische Details Bescheid wissen muss. Aus diesem Grund sind Service-Operationen auch stark Use-Case-orientiert und selten technisch bzw. generisch. Dies führt auch dazu, dass Service-Operationen mitunter grobgranularer als herkömmliche Methoden sind. Ein gutes Beispiel hierfür bietet die nachfolgend dargestellte Operation BucheFlug. public Ticket BucheFlug(Buchung buchung) { … }

Einige dazu passende Negativbeispiele gehen aus Listing 1.1 hervor, zumal sich der Aufrufer hier mit technischen Konstrukten des Systems, wie zum Beispiel FlugHandles oder Seat- Handles, beschäftigen muss. Gute Services würden hingegen fachliche Konstrukte verwenden, z. B. Flüge anstatt FlugHandles.

Diese Operationen könnte es im vorhin betrachteten Positivbeispiel zwar auch geben, allerdings wären diese hier zum einen nicht öffentlich zugänglich und würden zum anderen von der Operation BucheFlug koordiniert werden. Services mit solchen Koordinierungsmethoden werden auch als Fassaden bzw. Servicefassaden bezeichnet, da sie dahinter liegende Details verbergen. Dabei soll nicht verschwiegen werden, dass die Verwendung von Fassaden auch schon vor dem Aufkommen des Begriffs SOA gängige Praxis im Bereich verteilter Geschäftsanwendungen war. Der Vorteil dieser Vorgehensweise liegt neben der Tatsache, dass sich der Aufrufer nicht mit Interna belasten muss, in einer geringeren Netzwerkbelastung, da anstatt vieler kleiner Nachrichten wenige oder nur eine größere zu übersenden sind. Daneben führt dieses Muster dazu, dass die von der Fassade gekapselten Details ohne Anpassungen des Clients ausgetauscht werden können. Dies erlaubt es, die verwendeten Software-Systeme einfacher an sich ändernde Geschäftsregeln und Abläufe anzupassen, was in weiterer Folge auch die Agilität des Unternehmens erhöht. Hierbei ist auch von loser Kopplung die Rede, was im betrachteten Fall bedeutet, dass der Client möglichst wenig über den konsumierten Service wissen muss.
Blick ins Buch
Inhaltsverzeichnis
Inhalt6
Geleitwort des Herausgebers18
Vorwort20
1 Serviceorientierung24
1.1 Konzeptionelle Ebene24
1.1.1 Betriebswirtschaftliche Sicht24
1.1.2 Technische Sicht25
1.1.3 Was ist ein Service?26
1.2 Technische Realisierung27
1.2.1 SOAP27
1.2.2 Web Service Description Language (WSDL)29
1.2.3 Universal Description, Discovery and Integration30
1.2.4 WS-I30
1.2.5 WS-*31
1.2.6 RESTful Web Services als Gegenbewegung zu SOAP31
1.2.7 POX-Services und Web APIs34
1.2.8 SOAP und REST im Vergleich35
1.3 WCF vs. ASP.NET Web API36
2 WCF im Überblick38
2.1 Architektur38
2.2 Standard-Bindings39
2.3 Hosting von Services41
2.4 Erste Schritte mit WCF42
2.4.1 Erstellen eines Web-Service-Projektes42
2.4.2 Web-Service mit Client konsumieren50
2.4.3 Mit Laufzeit-Proxy auf Service zugreifen54
2.4.4 Service zur Verwendung von ws2007HttpBinding konfigurieren55
2.4.5 NetTcpBinding und Self-Hosting56
3 Services mit WCF erstellen62
3.1 Verträge62
3.1.1 Serviceverträge62
3.1.2 Datenverträge63
3.1.3 Nachrichtenverträge66
3.1.4 SOAP-Binding festlegen67
3.2 Instanziierung von Services67
3.2.1 PerCall68
3.2.2 Single69
3.2.3 PerSession69
3.3 Nebenläufigkeit74
3.4 Asynchrone Service-Operationen74
3.5 WCF konfigurieren75
3.5.1 WCF deklarativ konfigurieren75
3.5.2 WCF programmatisch konfigurieren78
3.5.3 In IIS gehostete Services programmatisch konfigurieren
78
3.5.4 Benutzerdefinierte Bindings80
3.5.5 Einschränkungen für Bindings festlegen81
3.5.6 Drosselung82
3.5.7 Port-Sharing bei TCP-basierten Services83
3.5.8 Konfiguration des Proxy-Servers84
3.6 Metadaten85
3.7 Services diagnostizieren87
3.7.1 Protokollierung konfigurieren87
3.7.2 Leistungsindikatoren89
3.8 One-Way-Operationen90
3.9 Duplex-Operationen90
3.9.1 Unterstützte Bindings91
3.9.2 Implementierung von Duplex-Szenarien92
3.9.3 Konfigurieren von Duplex-Szenarien93
3.9.4 Callbacks mit WebSockets (ab .NET 4.5)95
3.9.5 Grenzen von Callbacks96
3.10 UDP und Multicasts (ab .NET 4.5)97
3.11 Umgang mit binären Daten98
3.11.1 MTOM99
3.11.2 Streaming103
3.12 Fehlerbehandlung und FaultContracts106
3.13 ASP.NET-Kompatibilität108
3.14 Zuverlässige Sitzungen110
3.14.1 Verlässliche Sitzungen konfigurieren111
3.14.2 Verlässliche Sitzungen erzwingen112
3.14.3 Idempotente Services als Alternative zu WS-ReliableMessaging112
3.15 Transaktionale Services113
3.15.1 Zwei-Phasen-Commit113
3.15.2 Plug-in für WS-AtomicTransactions einrichten113
3.15.3 Distributed Transaction Coordinator (DTC) einrichten114
3.15.4 Transaktionen konfigurieren und nutzen115
3.15.5 Transaktionsisolationslevel117
3.15.6 Transaktion am Client starten118
3.15.7 Transaktionen und Sessions118
3.16 Queued Services119
3.16.1 Microsoft Message Queuing Services (MSMQ)119
3.16.2 Implementierung von Queued Services120
3.16.3 Queued Services konfigurieren121
3.17 REST-basierte Services mit WCF123
3.17.1 REST-Services mit WCF implementieren und konsumieren124
3.17.2 Antwortformat dynamisch festlegen127
3.17.3 Hilfe-Seiten (Help Pages)128
3.17.4 ASP.NET Cache Profiles130
3.17.5 REST-Services über ASP.NET-Routen131
3.17.6 Ausnahmen auf HTTP-Statuscodes abbilden131
3.17.7 Conditional GET und ETag-Unterstützung132
3.18 WCF und Windows 8133
4 Sicherheit von WCF-Diensten134
4.1 Überblick über WCF-Security134
4.1.1 Transport- und Nachrichtensicherheit134
4.1.2 Festlegen der zu verwendenden Credentials136
4.1.3 Authentifizierung und Autorisierung137
4.1.4 Service-Identitäten139
4.1.5 Verschlüsseln und Signieren139
4.2 Windows-Security141
4.2.1 Impersonation141
4.2.2 Kerberos vs. NTLM142
4.3 Web-Security mit SSL und IIS144
4.3.1 IIS für die Verwendung von SSL konfigurieren144
4.3.2 Konfiguration des Service148
4.3.3 Aufruf der Service-Operation149
4.3.4 Benutzerdefinierte Authentifizierung und Autorisierung149
4.4 Web-Security mit SSL ohne IIS156
4.5 Nachrichtenbasierte Sicherheit157
4.5.1 Zertifikate einrichten157
4.5.2 Konfiguration158
4.5.3 Aufruf der Service-Operation160
4.6 Client-Zertifikate160
4.7 Federated und Claims-based Security mit Windows Identity Foundation (WIF)162
4.7.1 Architektur163
4.7.2 Web-Service-Standards164
4.7.3 Implementierung in .NET 4.5164
4.7.4 Implementierung für Versionen vor 4.5178
5 Lose Kopplung mit WCF190
5.1 Routing (System.ServiceModel.Routing)190
5.1.1 Architektur191
5.1.2 Routerarten192
5.1.3 Beispielanwendung (Routing Testclient)193
5.1.4 Filter194
5.1.5 Erstellen des Routers mit WCF 4.x197
5.1.6 Konfiguration eines Routers197
5.1.7 Router für das Routing-Testszenario198
5.1.8 Entwicklung des Clients203
5.1.9 Dynamische Filter entwickeln204
5.1.10 Dynamische Filter mit eigener Filtertabelle206
5.1.11 Leistungsverlust durch Routing210
5.2 Discovery211
5.2.1 Dienst mit Discovery211
5.2.2 Client mit Discovery212
5.2.3 Mögliche Services mittels Scopes einschränken213
5.2.4 Clients für die Verwendung mit Discovery deklarativ ­konfigurieren214
5.2.5 Ankündigungen (Announcements)215
5.3 Ereignisse und Publish-/Subscribe-Szenarien217
5.3.1 Service-Verträge217
5.3.2 Implementierung eines Publish-/Subscribe-Service218
5.3.3 Konfiguration220
5.3.4 Implementierung des zu benachrichtigenden Clients221
5.3.5 Weiterführende Überlegungen222
5.4 ESB-Lösungen mit WCF entwickeln222
5.4.1 Catch-All-Verträge222
5.4.2 Nachrichtentransformation223
5.5 Freie ESB-Implementierung227
6 ASP.NET Web API228
6.1 REST-Services mit ASP.NET
228
6.1.1 Parameter und Rückgabewerte229
6.1.2 Dynamische Parameter231
6.1.3 REST-Services konfigurieren232
6.1.4 REST-Services mit Fiddler testen233
6.1.5 Mehr Kontrolle über HTTP234
6.1.6 REST-Services über HttpClient konsumieren237
6.1.7 Hilfe-Seiten240
6.2 Tracing244
6.2.1 Standard-Implementierung von ITraceWriter244
6.2.2 Eigenen TraceWriter implementieren245
6.3 OData-Unterstützung246
6.4 Self-Hosting mit Web APIs246
6.5 Querschnittsfunktionen an globalen Stellen platzieren247
6.5.1 Querschnittsfunktionen mit Message-Handler implementieren248
6.5.2 Handler mit HttpClient verwenden249
6.5.3 Querschnittsfunktionen mit Filter realisieren251
6.6 Erweiterte Konfigurationsmöglichkeiten255
6.6.1 Benutzerdefinierte Routen255
6.6.2 Controller-basierte Konfiguration255
6.6.3 Routen-basierte Konfiguration256
6.7 Deklaratives Validieren von Parametern257
6.7.1 Verwenden von Data-Attributen257
6.7.2 Auswerten von Validierungsattributen259
6.7.3 Benutzerdefinierte Validierungsattribute260
6.8 Benutzerdefinierte Formate unterstützen261
6.8.1 Formatter implementieren261
6.8.2 Formatter serverseitig registrieren und testen263
6.8.3 Formatter mit HttpClient verwenden263
6.8.4 Binäre Serialisierung mit BSON264
6.9 Serialisierung beeinflussen264
6.9.1 JSON-Serializer konfigurieren265
6.9.2 XML-Serializer konfigurieren266
6.9.3 Eigenschaften von der Serialisierung ausnehmen266
6.9.4 Zirkuläre Referenzen serialisieren266
6.10 Streaming269
6.10.1 Action-Methoden für Streaming vorbereiten269
6.10.2 Streaming in Self-Hosting-Szenarien konfigurieren270
6.10.3 Streaming für IIS konfigurieren270
6.10.4 Streams über HttpClient verwenden272
6.11 Fortschritt ermitteln273
6.12 Web API und HTML-Formulare274
6.12.1 Einfache Formular-Felder übermitteln274
6.12.2 Dateiupload via HTML-Formular275
6.13 ASP.NET Web API erweitern277
6.13.1 Abhängigkeiten auflösen mit benutzerdefiniertem ­DependencyResolver277
6.13.2 Zusätzliche Assemblies mit AssemblyResolver laden278
6.13.3 Service-Operationen über HttpActionSelector auswählen279
6.13.4 Controller über HttpControllerSelector auswählen280
6.13.5 Methodenparameter auf benutzerdefinierte Weise
282
7 ASP.NET Web API Security286
7.1 Verschlüsselte Übertragung286
7.1.1 SSL mit IIS286
7.1.2 SSL in Self-Hosting-Szenarien286
7.1.3 Diskussion über Nachrichtensicherheit287
7.2 Authentifizierung und Autorisierung287
7.2.1 Operationen absichern287
7.2.2 HTTP-Authentifizierung mit IIS289
7.2.3 HTTP-Authentifizierung in Self-Hosting-Szenarien290
7.2.4 Benutzer mit HttpClient authentifizieren291
7.2.5 Benutzerdefinierte Security mit Handler291
7.2.6 Benutzerdefinierte Security mit HTTP-Module293
7.2.7 Mit Client-Zertifikaten arbeiten296
7.3 Single Sign-On mit OAuth2 und
300
7.3.1 OAuth2300
7.3.2 OAuth2 und REST-Services301
7.3.3 Implementieren eines Authorization Servers mit
301
7.3.4 Client für OAuth2-Szenario307
7.3.5 Service mittels OAuth2 absichern308
8 ASP.NET SignalR310
8.1 Long-Polling310
8.2 Web Sockets311
8.3 ASP.NET SignalR311
8.4 PersistentConnection312
8.4.1 Erste Schritte mit SignalR und PersistentConnection312
8.4.2 Lifecycle-Methoden313
8.4.3 URL-Mapping für PersistentConnection314
8.4.4 Einfacher Client für eine PersistentConnection314
8.4.5 Einfacher JavaScript-Client für eine PersistentConnection315
8.4.6 Daten über serverseitige Prozesse an Connection senden317
8.5 Hubs317
8.5.1 Methoden und Callbacks mit SignalR und Hubs317
8.5.2 URL-Mapping für Hubs319
8.5.3 Lifecycle-Methoden319
8.5.4 Hubs konsumieren319
8.5.5 Hubs über JavaScript konsumieren322
8.5.6 Gruppen325
8.5.7 Hubs über serverseitige Prozesse benachrichtigen326
8.6 Pipeline-Modules für Querschnitts­funktionen326
8.7 SignalR konfigurieren328
8.8 SignalR skalieren328
9 Hosting von WCF- und Web API-Diensten330
9.1 Hosting in Windows-Systemdiensten330
9.1.1 Erstellen eines Windows-Systemdienstes331
9.1.2 Ergänzen eines WCF-Dienstes in einem Systemdienst333
9.1.3 Ergänzen eines Web API-Dienstes in einem Systemdienst334
9.1.4 Trick für das Debugging eines Systemdienstes334
9.1.5 Vorbereiten der Installation eines Systemdienstes337
9.1.6 Installation eines Systemdienstes338
9.2 Hosting im Internet Information Server (IIS)/Windows Server AppFabric340
9.2.1 Von IIS über WAS zu AppFabric340
9.2.2 IIS-Websites341
9.2.3 IIS-Anwendungen347
9.2.4 IIS-Anwendungspools348
9.2.5 Autostart354
9.3 WCF-Projekte für den IIS357
9.3.1 .svc-Dateien358
9.3.2 Test des Dienstes358
9.3.3 Abruf der Metadaten359
9.3.4 Konfigurationsdatei360
9.3.5 WCF ohne SVC-Datei362
9.3.6 Eigene ServiceHostFactory362
9.4 ASP.NET Web API-Projekte für den IIS363
9.5 Installieren von WCF- und
363
9.5.1 Manuelles Verbreiten von Diensten (XCopy-Deployment)363
9.5.2 Verbreiten mit der Funktion „Build/Publish“ in Visual Studio ­direkt auf einen IIS364
9.5.3 Verbreiten von Diensten mit dem IIS Web Deployment Tool
365
9.6 Konfiguration und Monitoring mit den „AppFabric“-Erweiterungen375
9.6.1 Installation376
9.6.2 AppFabric-Ansichten377
9.6.3 Überwachungsfunktionen379
9.6.4 Weitere Konfigurationsmöglichkeiten381
10 Service Bus und Access Control für Windows Azure und Windows Server384
10.1 Überblick384
10.2 Namespace einrichten385
10.3 Relaying386
10.3.1 Relay-Bindings387
10.3.2 Service über Relaying bereitstellen387
10.3.3 Service über Relaying konsumieren390
10.4 Lose Kopplung mit Queues und Topics391
10.4.1 Zugriff auf Queues und Topics393
10.4.2 Transaktionen393
10.4.3 Sitzungen394
10.4.4 Metadaten, Filtern und Stamping394
10.4.5 Queues über die .NET-API ansprechen394
10.4.6 Queues programmatisch erzeugen395
10.4.7 Nachrichten an Queues senden396
10.4.8 Nachrichten aus Queues abrufen397
10.4.9 Mit Sitzungen arbeiten399
10.4.10 Aus Dead Letter Queue lesen400
10.4.11 Topics und Abonnenten einrichten401
10.4.12 Nachrichten unter Verwendung von Topics senden
403
10.4.13 Queues über WCF ansprechen405
10.4.14 WCF-Sitzungen realisieren408
10.4.15 Topics via WCF abonnieren409
10.5 Windows Azure Access Control410
10.5.1 AC konfigurieren410
10.5.2 Service mit AC absichern412
10.5.3 Azure Service Bus mit AC absichern416
10.6 Windows Server Service Bus417
10.6.1 Namespaces administrieren418
10.6.2 Auf Queues und Topics zugreifen418
10.6.3 Zugriff auf Queues und Topics einschränken419
11 Datenbasierte Services420
11.1 Was sind datenbasierte Services?420
11.2 Services und ADO.NET Entity ­Framework420
11.2.1 Vom DataSet zum Entity Framework420
11.2.2 Grundlagen der Self-Tracking Entities422
11.2.3 Beispielanwendung426
11.3 ADO.NET Entity Framework Code First (Code Only)435
11.3.1 Die drei Ebenen des ADO.NET Entity Framework435
11.3.2 Vorbereitungen436
11.3.3 Entitätsklassen436
11.3.4 Kontextklasse441
11.3.5 Nutzen der Kontextklasse442
11.3.6 Einsatzbeispiel443
11.3.7 Konvention vor Konfiguration446
11.3.8 Codebasierte Konfiguration448
11.3.9 Schemamigrationen449
11.3.10 Entity Framework Power Tools450
11.3.11 Code Only und Webservices452
11.4 Kritik an der Implementierung eines datenbasierten Service mit WCF453
11.5 WCF Data Services (Open Data Protocol)454
11.5.1 Lizenz und Standardisierung454
11.5.2 Bezug der WCF Data Services454
11.5.3 Andere Bibliotheken455
11.5.4 Rahmenbedingungen456
11.5.5 OData-Beispiel456
11.5.6 Architektur458
11.5.7 Abfragesyntax459
11.5.8 Einen WCF Data Service erstellen460
11.5.9 Zugriffsrechte460
11.5.10 Fehlermeldungen aktivieren462
11.511 Einen WCF Data Service im Webbrowser testen463
11.5.12 Abruf der Metadaten465
11.5.13 Einen WCF Data Service mit Fiddler testen466
11.5.14 Einen .NET-basierten Client erstellen466
11.5.15 Tipps und Tricks471
11.6 WCF RIA Services480
11.6.1 Architektur der RIA Services481
11.6.2 Einen RIA Service erstellen482
11.6.3 Einen RIA Service nutzen486
11.7 Datenbasierte REST-Services mit ASP.NET Web API und dem Open Data Protocol (OData)489
11.7.1 Daten mit OData flexibel abfragen489
11.7.2 Mögliche OData-Abfragen einschränken491
11.7.3 OData-Abfragen global aktivieren493
11.7.4 OData-Abfragen manuell auswerten493
11.7.5 Daten mit OData verwalten494
11.8 Vergleich und Fazit498
12 Workflows und Workflow Services502
12.1 Überblick502
12.2 Visual Studio-Projektvorlagen503
12.3 Sequenzielle Workflows503
12.3.1 Sequenzielle Workflows erstellen503
12.3.2 Sequenzielle Workflows ausführen504
12.3.3 Kontrollfluss505
12.4 Flussdiagramme507
12.5 Zustandsautomaten (State Machines)508
12.6 Transaktionen und Kompensation510
12.6.1 Transaktionen510
12.6.2 Kompensation510
12.7 WCF Workflow Services512
12.7.1 Workflow Services erstellen512
12.7.2 Workflow Services testen513
12.7.3 Workflow Services konfigurieren514
12.7.4 Korrelation515
12.7.5 Contract-First (ab .NET 4.5)516
12.8 Benutzerdefinierte Aktivitäten518
12.8.1 CodeActivity518
12.8.2 AsyncCodeActivity519
12.8.3 NativeActivity520
12.8.4 Anpassen der Darstellung benutzerdefinierter Aktivitäten523
12.9 Bookmarks525
12.10 Persistenz526
12.10.1 SQLWorkflowInstanceStore526
12.10.2 Eigenschaften höherstufen529
12.10.3 Höherstufen von Eigenschaften bei Verwendung
531
12.11 Versionisierung und Aktualisierung von Workflows (ab .NET 4.5)533
12.11.1 Side-by-Side-Versionisierung533
12.11.2 Dynamic Update539
12.11.3 Dynamic Update mit WorkflowControlEndpoint544
12.12 Ablaufverfolgung (Tracking)546
12.12.1 Benutzerdefinierte Tracking Records erzeugen546
12.12.2 Tracking Records abonnieren547
12.12.3 Tracking Records einsehen549
12.13 Workflow-Designer in eigenen ­Anwendungen hosten550
12.14 WCF-Dienste und -Services in AppFabric hosten551
12.14.1 Monitoring552
12.14.2 Persistenz554
12.14.3 Weitere Möglichkeiten555
13 Das WCF-Erweiterungs­modell556
13.1 Übersicht556
13.1.1 Was sich erweitern lässt556
13.1.2 Die Laufzeitumgebung der Applikation erweitern557
13.2 Erweiterung des Sicherheitsmodells557
13.2.1 Verantwortungsbereich der WCF Security Component557
13.2.2 Das WebService-(WS-)Sicherheitsmodell557
13.2.3 Implementierung der WebService-(WS-)Sicherheit558
13.3 Erweiterung des Bindungssystems562
13.3.1 Bindungen und Bindungselemente563
13.3.2 Nachrichtenkanäle563
13.3.3 Benutzerdefinierte Bindungen564
13.4 Weitere Erweiterungsfunktionen565
13.4.1 Erweiterung des Metadatenmodells565
13.4.2 Erweiterungen der Serialisierung566
14 WCF erweitern568
14.1 ServiceHost und Dienstmodellebene568
14.1.1 Aufbau der Dienstmodellebene568
14.1.2 Erweiterung mittels Verhalten569
14.1.3 Erweiterung von Clients572
14.1.4 Erweiterung des Dispatchers577
14.1.5 Erweiterbare Objekte585
14.1.6 Erweitertes Hosting – die Klasse ServiceHostFactory588
14.2 Erweiterung des Bindungsmodells590
14.2.1 Konfigurieren mittels Bindungselementen590
14.2.2 Bindungen selbst erstellen591
14.2.3 Erstellen eines eigenen Bindungselements593
14.3 Channel Layer- und Peer Channel-Erweiterungen595
14.3.1 Funktionsweise596
14.3.2 Benutzerdefinierte Übertragungskanäle596
14.3.3 Benutzerdefinierte Nachrichtenencoder606
14.4 Das Metadatensystem608
14.4.1 Funktionsweise609
14.4.2 Anwendung609
14.5 Serialisierung und Encoder614
14.5.1 Ersetzen von Datenverträgen614
14.5.2 Eigene Formatierer620
14.6 Erweiterung des Sicherheitsmodells626
14.6.1 Aufbau der Sicherheitsarchitektur626
14.6.2 Benutzerdefinierte Anmeldeinformation und Token626
14.6.3 Benutzerdefinierte Nachrichtenverschlüsselung644
Anhang – NuGet654
Index658

Weitere E-Books zum Thema: Informatik - Algorithmen - Softwaresysteme

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Weitere Zeitschriften

BEHINDERTEPÄDAGOGIK

BEHINDERTEPÄDAGOGIK

Für diese Fachzeitschrift arbeiten namhafte Persönlichkeiten aus den verschiedenen Fotschungs-, Lehr- und Praxisbereichen zusammen. Zu ihren Aufgaben gehören Prävention, Früherkennung, ...

BMW Magazin

BMW Magazin

Unter dem Motto „DRIVEN" steht das BMW Magazin für Antrieb, Leidenschaft und Energie − und die Haltung, im Leben niemals stehen zu bleiben.Das Kundenmagazin der BMW AG inszeniert die neuesten ...

CE-Markt

CE-Markt

CE-Markt ist Pflichtlektüre in der Unterhaltungselektronik-Branche. Die Vermarktung von Home und Mobile Electronics mit den besten Verkaufsargumenten und Verkaufsstrategien gehören ebenso zum ...

dental:spiegel

dental:spiegel

dental:spiegel - Das Magazin für das erfolgreiche Praxisteam. Der dental:spiegel gehört zu den Top 5 der reichweitenstärksten Fachzeitschriften für Zahnärzte in Deutschland (laut LA-DENT 2011 ...

Deutsche Tennis Zeitung

Deutsche Tennis Zeitung

Die DTZ – Deutsche Tennis Zeitung bietet Informationen aus allen Bereichen der deutschen Tennisszene –sie präsentiert sportliche Highlights, analysiert Entwicklungen und erläutert ...

DULV info

DULV info

UL-Technik, UL-Flugbetrieb, Luftrecht, Reiseberichte, Verbandsinte. Der Deutsche Ultraleichtflugverband e. V. - oder kurz DULV - wurde 1982 von ein paar Enthusiasten gegründet. Wegen der hohen ...

Evangelische Theologie

Evangelische Theologie

Über »Evangelische Theologie« In interdisziplinären Themenheften gibt die Evangelische Theologie entscheidende Impulse, die komplexe Einheit der Theologie wahrzunehmen. Neben den Themenheften ...