XML Web Service- Anwendungen mit Microsoft .NET Christian Weyer XML Web Service- Anwendungen mit Microsoft .NET An imprint of Pearson Education München (cid:127) Boston (cid:127) San Francisco (cid:127) Harlow, England Don Mills, Ontario (cid:127) Sydney (cid:127) Mexico City Madrid (cid:127) Amsterdam Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ein Titeldatensatz für diese Publikation ist bei Der Deutschen Bibliothek erhältlich. Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröf- fentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusam- menstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehler- hafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung über- nehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektroni- schen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden, sind gleichzeitig auch eingetragene Warenzeichen oder sollten als solche betrachtet werden. Umwelthinweis: Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt. Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus umweltfreundlichem und recyclingfähigem PE-Material. 10 9 8 7 6 5 4 3 2 1 05 04 03 02 ISBN 3-8273-1891-2 © 2002 by Addison-Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH, Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Einbandgestaltung: atelier für gestaltung, niesner & huber, Wuppertal Lektorat: Christiane Auf, [email protected] Fachlektorat: Dr. Berhard Tritsch, Ober-Ramstadt Korrektorat: Christina Gibbs Herstellung: Claudia Bäurle, [email protected] CD Mastering: Gregor Kopietz, [email protected] Satz: reemers publishing services gmbh, Krefeld, www.reemers.de Druck und Verarbeitung: Bercker, Kevelaer Printed in Germany Inhaltsverzeichnis Vorwort 13 Einleitung 15 Über dieses Buch 15 Allgemeines 15 Kapitelübersicht 16 Die CD zum Buch 18 Programmbeispiele 18 Software 18 Die Website zum Buch 18 1 Wieso weshalb warum? Einführung und Motivation 21 1.1 Überblick 21 1.2 Einführung und Motivation 21 1.2.1 Problematik und Hintergrund 21 1.2.2 Warum dieses Buch? 23 1.3 Internet-Anwendungen 23 1.3.1 Client-Server-Modell 25 1.3.2 N-Schichten-Modell 27 1.4 Komponenten-basierte Anwendungen mit Windows heute 28 1.4.1 Softwarekomponenten 28 1.4.2 COM, DCOM, COM+ im Überblick 30 1.4.3 Windows DNA 39 1.5 Warum .NET? 40 1.5.1 Probleme existierender Lösungen 41 1.5.2 Möglicher Lösungsansatz 43 1.6 Zusammenfassung 45 2 Das Handwerkszeug .NET Grundlagen 47 2.1 Überblick 47 2.2 Idee und Gesamtkonzept von .NET 47 2.3 .NET Framework 50 5 Inhaltsverzeichnis 2.4 .NET-Grundlagen für Programmierer 51 2.4.1 Common Language Runtime (CLR) 52 2.4.2 Einheitliches Typensystem 56 2.4.3 Base Class Library 60 2.5 Der Blick ins Innere 61 2.5.1 Assemblies 61 2.5.2 Intermediate Language (IL) 69 2.5.3 Metadaten in .NET 71 2.5.4 Garbage Collection 72 2.6 Zusammenfassung 72 3 Schöne neue WWWelt ASP.NET und Web Forms 75 3.1 Überblick 75 3.2 Web-basierte Entwicklung mit ASP 75 3.2.1 ASP als Revolution 75 3.2.2 Probleme mit ASP 78 3.3 ASP.NET 80 3.3.1 Überblick 81 3.3.2 Architektur und Laufzeitumgebung 81 3.3.3 ASP.NET Pipeline 86 3.3.4 Kompilierte Ausführung 88 3.4 ASP.NET Web Forms 91 3.4.1 Einführung 91 3.4.2 Ereignis-basierte Programmierung 92 3.4.3 Direktiven 98 3.4.4 Inline und Code-Behind 100 3.5 Server Controls 102 3.5.1 HTML Controls 103 3.5.2 Web Controls 105 3.5.3 Validierung 107 3.5.4 Data Binding 109 3.5.5 User Controls 111 3.6 ASP.NET Web Forms mit Visual Studio .NET 114 3.7 Zusammenfassung 118 6 Inhaltsverzeichnis 4 Daten, Daten, Daten ADO.NET und XML in .NET 119 4.1 Einführung 119 4.2 ADO.NET 120 4.2.1 Architektur 121 4.2.2 Der Namensraum System.Data 123 4.2.3 Verbindung herstellen 126 4.2.4 Lesen von Daten 129 4.2.5 Einfügen von Daten 133 4.2.6 Aktualisieren von Daten 134 4.2.7 Arbeiten mit Parametern 134 4.2.8 Gespeicherte Prozeduren 136 4.2.9 Transaktionen 140 4.2.10 Das ADO.NET DataSet 142 4.2.11 Binärdaten 147 4.3 XML in .NET 149 4.3.1 Architektur 150 4.3.2 Der Namensraum System.Xml 151 4.3.3 Lesen von XML-Dokumenten 153 4.3.4 Schreiben von XML-Dokumenten 156 4.4 Zusammenfassung 158 5 Öffentlicher Dienst XML Web Services mit ASP.NET 159 5.1 Einführung 159 5.2 Web Services-Überblick 159 5.2.1 Was sind Web Services und warum werden sie eingesetzt? 159 5.2.2 XML und Co. 162 5.2.3 SOAP 166 5.2.4 WSDL 177 5.3 XML Web Services in ASP.NET 186 5.3.1 ASP.NET und Web Services 186 5.3.2 XML Web Services erstellen 187 5.3.3 XML Web Services benutzen 196 5.4 XML Web Services-Anwendungen mit Visual Studio .NET 205 5.4.1 Erstellen eines XML Web Services 205 5.4.2 Erstellen einer Windows-Client-Anwendung 209 5.5 Zusammenfassung 214 7 Inhaltsverzeichnis 6 Fast wie im richtigen Leben ASP.NET XML Web Services im Einsatz 215 6.1 Einführung 215 6.2 Asynchrone Web Service-Kommunikation 215 6.3 XML-Serialisierung unter der Haube 219 6.3.1 Überblick 219 6.3.2 Architektur von XmlSerializer 220 6.3.3 Beeinflussung des Serialisierungsvorgangs 222 6.3.4 Binäre Daten 228 6.4 COM/COM+ und XML Web Services 232 6.4.1 .NET und COM 233 6.4.2 .NET und COM+-Dienste 239 6.4.3 Web Services-Transaktionen 245 6.5 Zustand und Geschwindigkeit 249 6.5.1 Zustandsverwaltung 249 6.5.2 Caching 254 6.6 Arbeiten mit SOAP Headern 256 6.7 Zusammenfassung 260 7 Sicher ist sicher Sicherheit in .NET und XML Web Services 261 7.1 Einführung 261 7.1.1 Sicherheit als Notwendigkeit 261 7.1.2 Allgemeine Konzepte 262 7.2 Sicherheitskonzepte in .NET 264 7.2.1 Code-Zugriffssicherheit 265 7.2.2 Rollen-basierte Sicherheit 270 7.3 Web-Sicherheit 271 7.3.1 IIS-Sicherheit 271 7.3.2 ASP.NET-Sicherheit 273 7.4 Web Services-Sicherheit 278 7.4.1 Windows-Authentifizierung mit Web Services 278 7.4.2 Forms-Authentifizierung mit Web Services 280 7.5 Zusammenfassung 284 8 Inhaltsverzeichnis 8 Ob nah, ob fern Verteilte Anwendungen mit .NET Remoting 285 8.1 Einführung 285 8.1.1 Warum etwas Neues? 285 8.1.2 Neue Anforderungen 286 8.2 Erweiterte Grundlagen 287 8.2.1 Applications Domains 287 8.2.2 Kontext-basierte Programmierung 289 8.2.3 Marshaling 290 8.3 Remoting-Architektur 292 8.3.1 Proxy und Dispatcher 292 8.3.2 Channels 294 8.3.3 Formatter 295 8.4 Arbeiten mit entfernten Objekten 297 8.4.1 Aktivierungsmodelle 297 8.5 Konfiguration 303 8.6 Hosting 306 8.7 Client-Anwendungen 307 8.8 Zusammenfassung 310 Stichwortverzeichnis 311 9