Upload
vuongkiet
View
224
Download
0
Embed Size (px)
Citation preview
Dirk Louis, Shinja Strasser, Thorsten Kansy
MicrosoftVisual C# 2010 -Das Entwicklerbuch
MicrosoftPress
InhaltsverzeichnisEinleitung 27
Zielgruppe 28Aufbau des Buchs 28Die Beispielsammlung zu diesem Buch 29Die Visual Studio 2010-Edition auf der beiliegenden Buch-DVD 29Korrekturen und Kommentare 30
Teil A - Einführung in .NET 4.0 und Visual C# 2010 31
1 Das .NET Framework 33Historie 34Bausteine des .NET Framework 35
Common Language Infrastructure 35Common Language Runtime 35Common Intermediate Language 36Just-In-Time-Compiler 37
Assemblys 38Ausführungsmodell für Assemblys 40
2 Visual Studio 2010 und Visual C# 2010 43Visual Studio 44
Geschichte 44Visual Studio 2010, .NET Framework 4.0 und C# 4.0 45Arbeiten in der Entwicklungsumgebung 45
Die Projektverwaltung 52Übersicht 52Projektmappen 53Stertprojekte, Verweise und Projektabhängigkeiten 57Eigene Projektvorlagen 59
Der Code-Editor 59Kleine Annehmlichkeiten 60IntelliSense 61using-Smarttag 63Umschließung 64Codeausschnitte 64Umgestaltung 66
Inhaltsverzeichnis
Erstellung 68MSBuild 68Build-Konfigurationen 69
Konfiguration 70Umgebungseinstellungen 70Extras/Optionen 70Externe Tools einrichten 72
Fensterverwaltung 73Die Andock-Hilfe 73Die Pin-Nadel 74Der IDE-Navigator 74
Navigation 75Suchen 75Zur Definition wechseln 77Klassenansicht und Objektkatalog 77Aufrufhierarchie 77
Hilfe 78Übersicht 78Lokal oder Online 79Die Online-Hilfe 80Die lokale Hilfe 82
3 Die ersten Programme 85Konsolenanwendungen 86Windows Forms-Anwendungen 89
4 Stilkonventionen 93Bezeichner 94Konventionen 95Blöcke 97
Teil B - C#-Grundlagen 99
5 Anatomie eines C#-Programms 101Programmaufbau 102
Klassen 103Eintrittspunkt Main() 104
using-Direktive und Framework-Klassen 106Ein- und Ausgabe 106Kommentare 108
Dateien und Assemblys 109Klassen und Dateien 109Dateien und Assemblys 110
Inhaltsverzeichnis . 7
Imperative Programmierung in C# 112Daten und Datentypen 112Literale und Variablen 112Operatoren und Ausdrücke 113Anweisungen 113Funktionen (Methoden) 115
Objektorientierte Programmierung in C# 116Wie sind OOP-Objekte beschaffen? 117Objekte und Klassen 118Die Klasse als Zentrum der objektorientierten Programmierung 121Konzepte, die auf der Klasse aufbauen 125Die Klasse als Funktionensammlung 130
6 Variablen, Daten und Typen 131Das C#-Datenmodell 132
Datenrepräsentation 132Typisierung 132Wert- und Verweistypen 133Erweiterbarkeit 136
Literale 136Variablen 139
Definition 139Initialisierung 140Eindeutige Zuweisung 141Gültigkeitsbereiche 142
Konstanten 142Typen: Primitive Typen 143
Derbool-Typ 144Ganzzahlige Typen 145Gleitkommatypen 147Zeichen 149Der decimal-Typ 150
Typen: Definierbare Typen 150Typen: Strings 152Typumwandlung und Boxing 153
Implizite Typumwandlungen 153Explizite Typumwandlungen 154Boxing und Unboxing 155
7 Operatoren und Ausdrücke 157Operatoren und Ausdrücke 158
Klassifizierung nach Operanden 158Ausdrücke 159
Inhaltsverzeichnis
Auswertungsreihenfolge 159Vorrang der Operatoren 160Assoziativität der Operatoren 161Operanden 162Klammerung 162
Nebeneffekte und andere Fallstricke 162Die arithmetischen Operatoren 165
Division und Modulo 165Inkrement und Dekrement 166
Die Zuweisungsoperatoren 167Die relationalen Operatoren 168Die logischen Operatoren 169Die Bit-Operatoren 172Die Operatoren für die Typidentifizierung und -Umwandlung 175
Typidentifizierung 175Typumwandlung 177
Sonstige Operatoren 178Datenzugriff 178
checked und unchecked 179Der new-Operator 179Der Bedingungsoperator ?: 179Der ??-Operator 180Operatoren für nicht gesicherten Code 180
8 Ablaufsteuerung 181Verzweigungen 182
Die einfache if-Anweisung 182Die if...eise-Verzweigung 184iL.else-Ketten und -Verschachtelungen 185Die switch-Verzweigung 187
Schleifen 190Die while-Schleife 191Die do...while-Schleife 193Die for-Schleife 195Die foreach-Schleife für Arrays und Auflistungen 196
Sprunganweisungen 197Die continue-An Weisung 198Die break-Anweisung 198Die goto-Anweisung 199
9 Arrays, Enumerationen und Strukturen 201Arrays 202
Definition und Erzeugung 202Initialisierungslisten 205
Inhaltsverzeichnis .
System. Array 205Mehrdimensionale Arrays 214Arrays von Arrays 218
Enumerationen 220Definition 220Verwendung 221Enumerationen und switch 222Die Klasse System.Enum 223
Strukturen 224Definition 224Verwendung 225Unterschiede zwischen Strukturen und Klassen 226
Teil C - Objektorientierte Programmierung in C# 227
10 Klassen 229Die Klassendefinition 230
Zugriff auf Klasse steuern 231Zugriff auf Member steuern 231Spezielle Klassen 233Partielle Klassen 234
Konstanten 235Felder 236
Definition 236Instanzfelder 237Statische Felder 238
Methoden 242Allgemeines 242Instanzmethoden und this 245Statische Methoden 247Datenaustausch 248Rekursion 256Überladung 257
Eigenschaften 260Konstruktoren 264
Klassen ohne selbst definierten Konstruktor 266Der Standardkonstruktor 266Überladene Konstruktoren 266Statische Konstruktoren 267
Destruktoren 269Aufruf 269Eigener Destruktor 270
Verschachtelte Typdefinitionen 272
10 Inhaltsverzeichnis
11 Schnittstellen 275Vertragsbasierte Programmierung 276
Modell 1: schnittstellengestützte Methoden 277Modell 2: Schnittstellen als Labels für Klassen 278
Schnittstellen definieren 279Schnittstellen-Member 280Schnittstellenvererbung 280
Schnittstellen implementieren 281Die Dokumentation ist wichtig (IComparable-Beispiel) 282Schnittstellen-Member verbergen 284
Namenskonflikte in Schnittstellen lösen 286
12 Vererbung, Polymorphie und Klassen-Design 289Vererbung 290
Das Prinzip der Vererbung 290Geerbte Member 294Die oberste Basisklasse Object 304Vererbung über Assembly- und Sprachgrenzen hinweg 305
Polymorphie 309Grundprinzip und Implementierung 309Dynamische und statische Bindung 312Generische Programmierung 319Typidentifizierung zur Laufzeit 324Abstrakte Klassen 326
Der Klassen-Designer 328Klassendiagramme erzeugen 328Klassendiagramme bearbeiten 329Projektdokumentationen erstellen 332Analysespezifikationen umsetzen 332Projekte pflegen 333
13 Indexer, Enumeratoren und Iteratoren 335Indexer 336
Syntax 336Beispiel 337
Enumeratoren 338Funktionsweise 339Implementierung 340
Iteratoren 345foreach-Unterstützung durch Iteratoren 345Klassen mit mehreren (benannten) Iteratoren 347Eigene Lösungen, die auf IEnumerable basieren 348
Inhaltsverzeichnis . . .11
14 Operatorenüberladung 351Syntax 352Regeln 353
Überladbare Operatoren 353Regeln für die Überladung 354
Fallbeispiel: Unäre Inkrement- und Dekrement-Operatoren 355Fallbeispiel: Binäre mathematische Operatoren 355Fallbeispiel: Relationale Operatoren 357Fallbeispiel: Konvertierungsoperatoren 359Fallbeispiel: true und false 360
15 Ausnahmebehandlung 361Konzeption und Zielsetzung 362
Kein Weg zurück 364Behandeln von Ausnahmen 364
Das try...catch-Grundgerüst 365Ausnahmen abfangen 365Mehrere catch-Handler 367Ausnahmen als Informationsträger 369
Die finally-Klausel 369finally-Block 369using-Anweisung 371Ausnahmen auslösen 372
Ausnahmen weiterleiten 372Innere Ausnahmen 372
Die vordefinierten Ausnahmeklassen 373Member der Klasse Exception 374CLR-generierte Ausnahmen 375
Eigene Ausnahmeklassen schreiben 376
Teil D - Fortgeschrittenes C# 379
16 Werttypen und Verweistypen 381Zwischen C++ und Smalltalk 382
Das Wertemodell 382Das Verweismodell 383Umsetzung in C++ und Smalltalk 383
DerC#-Weg 384Speicherreservierung und Lebensdauer 385Objekte kopieren 393Objekte vergleichen 399Boxing und Unboxing 409Wert- und Referenzparameter 410
Inhaltsverzeichnis
Nullfähigkeit 411Nullable<T> 412
Zusammenfassung 413
17 Namespaces, Gültigkeitsbereiche und Zugriffsschutz 415Namespaces 416
Namespaces definieren 416Namespaces erweitern 417Typen aus Namespaces verwenden 418using-Direktive 418using-Aliase 420Konfliktlösung mit Namespaces 422
Gültigkeitsbereiche 423Übersicht 423Verdeckung 423Auflösung der Verdeckung 424
Zugriffsmodifizierer im Überblick 425
18 Delegaten und Ereignisse 427Delegaten 428
Definition 428Instanziierung 429Aufruf 432Delegaten als Methoden-Hooks 432Delegaten mit Aufruflisten 434
Ereignisse 436Das Prinzip 436Ereignisse veröffentlichen 437Ereignisse abonnieren 440Ereignis-Argumente 441
19 Attribute 445Vordefinierte Attribute 446Benutzerdefinierte Attribute 448
Benutzerdefinierte Attribut-Klasse erstellen 448Komponente erstellen, die mit der Attribut-Klasse arbeitet 449Attribut-Klasse verwenden 451
20 C#-Generika 453Einführung in Generika 454Generische Typen 458
Generische Klassen 459Generische Strukturen 462
Inhaltsverzeichnis 13
Generische Schnittstellen 462Generische Delegaten und Prädikate 463Kovarianz und Kontravarianz 465
Generische Methoden 467Aufruf 467Swap 468
Einschränkungen für Typparameter 469Ungebundene Typen 469Einschränkungen 470Vererbung 473
Null, default und die Problematik der Werttypen 473Das Problem der Standardwerte 474Das Problem der Leere 475
Ein Blick hinter die Kulissen 477Typisierung mit Werttypen 478Typisierung mit Verweistypen 479
21 XML-basierte Dokumentierung 481Einführung 482XML-Dokumentationskommentare 483
Die empfohlenen Tags 484Eigene Tags definieren 487Beispiele 487
XML-Dokument erzeugen 490Lesbare Dokumentationsseiten 490
Transformation mit ndoc 490Transformation mit eigenem XSLT-Code 490
Teil E - Wichtige .NET-Klassen 499
22 Strings und reguläre Ausdrücke 501String-Erzeugung 502String-Llterale 503
Escapesequenzen 503@-Literale 503Zeilenumbrüche 504Pooling 504
String-Vergleiche 505Test auf Nutzinhalt 505Gleichheit und Ungleichheit 506Größenvergleiche 506Kulturunabhängige Größenvergleiche 508
. .. Inhaltsverzeichnis
String-Manipulationen 508Aneinanderreihung 508Einfügen, Löschen, Ersetzen 511Suchen 512Zerlegen und Zusammenfügen 513Trimmen und auffüllen (Padding) 515Umwandeln 516Auf einzelne Zeichen zugreifen 517Kopieren 518
Formatierung mit Platzhaltern 518ToStringO, IFormattable und die Formatbezeichner 518
IFormattable 518String.FormatO und die kombinierte Formatierung 523
Eigene Typen mit Unterstützung für Formatbezeichner 524Eigene Formatierer mit IFormatProvider und ICustomFormatter 526
StringBuilder 529String-Manipulation 530Kapazität 532
Reguläre Ausdrücke 532Syntax regulärer Ausdrücke 532Suchen mit Regex und Match 536Ersetzen mit Regex 538
23 Streams, Dateien und Serialisierung 541Reader und Writer 542Verzeichnisse 544
Auflisten von Verzeichnissen 544Anlegen und Löschen von Verzeichnissen 546Rekursives Löschen von Dateien und Verzeichnissen 547Verschieben von Verzeichnissen 547Mit Verzeichnissen arbeiten 547Pfadangaben 549
Streams 549Dateien schreiben 550Dateien lesen 551Die File-Klasse 552MemoryStream 553NetworkStream 553BufferedStream 555CryptoStream 558DeflateStream und GZipStream 560Asynchrones Streaming 562
Inhaltsverzeichnis 15,
Serialisierung 564Formatter 564Serialisierung von persistenten und transienten Daten 565Objekte serialisieren 567Objekte deserialisieren 568
24 Auflistungen 573Grundlagen 574
Die Basis-Schnittstellen 574Die Auflistungsklassen 577
Die Qual der Wahl 577Kriterium I: Generisch oder nicht generisch 578Kriterium II: Eigenschaften 578Kriterium III: Effizienz 579Die Auflistungen im Vergleich 579
Nicht generische Auflistungen 581ArrayList 581Hashtable 583BitArray 584
Generische Auflistungen 585List 586Dictionary 588LinkedList 589Stack 591SortedSet 592
25 Datum, Mathematik und die Systemumgebung 595Datum und Uhrzeit 596
Datum und Uhrzeit abfragen 596Datum und Uhrzeit manipulieren 597Formatierung 598Zeitzonen 600Kalender 600Zeitspannen 603Laufzeitmessungen 603
Numerik 603Die Klasse Math 604Die trigonometrischen Funktionen 606Die Klasse Biginteger 606Die Klasse Complex 608
Zufallszahlen 610Zufallszahlengenerator erzeugen 611Zufallszahlen erzeugen 611
. Inhaltsverzeichnis
Systemumgebung 612Informationen zur Systemumgebung abfragen 612Umgebungsvariablen 614Externe Anwendungen ausführen 615
Teil F - Windows Forms-Anwendungen 617
26 Einführung in Windows Forms.... 619Windows Forms 620
Namespaces 620Zentrale Klassen 621
Anwendungsgerüst 622Die Visual Studio-Projektvorlage 623Anwendungsgerüst ohne Visual Studio 626Starten und beenden 627Leerlaufverarbeitung 628Assembly-Info 629
Benutzeroberfläche 630Formulare, Container und Steuerelemente 631Layout 631Ressourcen 640Windows Forms-Designer 643
Ereignisbehandlung 648Ereignisse behandeln 649Allgemeine Ereignisse 651Mausereignisse 654Tastaturereignisse 655Mehrere Ereignisse - eine Behandlungsmethode 660
27 Formulare 661Rund ums Formular 662
Konfiguration 662Ereignisbehandlung 665Formulare anzeigen und schließen 667Formulare als Hauptfenster 668Anwendungssymbol 670
Dialogfelder 672Eigene Dialogfelder 672Musterimplementierung für modale Dialoge 674Musterimplementierung für nicht-modale Dialoge 677Standard-Dialogfelder 680Meldungsfelder 681
Inhaltsverzeichnis 17
Konfiguration via Anwendungseinstellungen 682Anwendungskonfiguration aus XML-Datei 682Benutzerdefinierte Einstellungen 685
28 DVD-Kapitel: Steuerelemente 689Dieses Kapitel finden Sie als kostenlosen Zusatzinhalt auf der beiliegenden DVD.
29 Eigene Steuerelemente entwickeln 691Erweiterung bestehender Steuerelemente 692
Neue Eigenschaften hinzufügen 696In die Ereignisbehandlung eingreifen 697Steuerelemente selbst zeichnen 699
Kombination bestehender Steuerelemente 701Ableitung von Control 701Unterstützung für den Windows Forms-Designer 704
Benutzerdefinierte Steuerelemente in der Toolbox 704Benutzerdefinierte Steuerelemente im Eigenschaftenfenster 705Überflüssige, geerbte Eigenschaften und Ereignisse ausblenden 706
30 Drag & Drop, Drucken und andere weiterführende Techniken 709Dateien öffnen und speichern 710
Menübefehle 710Nicht gespeicherte Änderungen 712Die Methoden zum Anlegen, Öffnen und Speichern 713
Zwischenablage 717Die Klasse Clipboard 718Daten in die Zwischenablage einfügen 719Daten aus der Zwischenablage übernehmen 720Die vordefinierten Datenformate 721Daten in mehreren Formaten einfügen 721Aktivierung der Zwischenablagebefehle 722
Drag & Drop 723Die Drag & Drop-Quelle 724Der Drag & Drop-Vorgang 725Das Drag & Drop-Ziel 726Dateien aus dem Windows Explorer in ein Textfeld ziehen 728Drag & Drop zwischen Listenfeldern 729
Begrüßungsbildschirme 731Begrüßungsbildschirme erstellen 731Begrüßungsbildschirme anzeigen 732
MDI 733VonSDIzuMDI 734Das übergeordnete Fenster 734
.18 Inhaltsverzeichnis
Die untergeordneten Fenster 735Das Menüsystem 736
Drucken 740Einführung 741Drucken in fünf Minuten 742Druckeinstellungen und -dialoge 743Bilder drucken 751Texte drucken 753
Sound 757Die vordefinierten Signaltöne 757WAV-Dateien abspielen 758
31 GDI+ , 761Gerätekontexte und Paint 762
Das Paint-Ereignis 762Eigene Graphics-Objekte 766
Zeichenwerkzeuge und -Operationen 768Zeichenqualität einstellen 769Zeichenfläche löschen 770Text zeichnen 771Linien und andere Grafikprimitiven zeichnen 776Schriften 783Farben 791Stifte (Pen) 793Pinsel (Brush) 795
Transformationen 803Verschieben 803Drehen 804Skalieren 805Kombinierte Transformationen 806Transformationen zurücknehmen 807
Bilder 808Laden 808Anzeigen 810Speichern 816Bearbeiten 818Bitmaps 819Metadateien 823
Clipping 824Grafikprogramme 826Fraktale 828Animation und Double Buffering 830
Die Grundtechnik 830Automatisches Double Buffering 834
Inhaltsverzeichnis . . .. 1°
Die Bilderlernen laufen 835
Double Buffering mit BufferedGraphics 838
Teil G - Windows Presentation Foundation 841
32 Einführung in WPF 843Das Grundprinzip 844
Von Windows Forms zu WPF 845Die erste WPF-Anwendung 845
DerWPF-Designer 856Der Entwurf-Bereich 856Der XAML-Bereich 858Das Eigenschaftenfenster 859
DasWPF-Modell 861Eine neue Zielsetzung 861Eine neue GUI-Bibliothek 862Ein neues Grafikmodell 862Ein neues Layoutkonzept 864Ein neues Eigenschaftenkonzept 867Ein neues Ereignismodell 870Neue Ausführungsmodelle 874
33 WPF-Fenster, -Seiten und -Steuerelemente 875Fenster und Seiten 876
Fensterbasierte Anwendungen 876Browseranwendungen 880Fensterbasierte Anwendungen mit Frames und Seiten 885
Die Steuerelemente 886Die Basisklassen 887Übersicht 888
Datenbindung 896Menüs und Symbolleisten 900
Aufbau von Menüs 900Ereignisbehandlung 901Kontextmenüs 904Symbolleisten 905
Zwischenablage 906Drag & Drop 906
34 Grafik 909Grundtechniken 910Transformationen 912
20 Inhaltsverzeichnis
3D-Ansichten 912Die Benutzeroberfläche 913Die Objekte 914Die Szenerie 916Kamera verschieben 918Zoomen 918
Bilder 919Animation 922
35 XAML 925Grundlagen 926
XAML zur Laufzeit laden 927Eigene Klassen instanziieren 928Klassen definieren 929
Namespaces 930CLR-Namespaces 930XML-Namespaces 931
Elemente 931Elementinhalt 932Eigenschaften als Elemente 932
Attribute 932Typkonvertierung 933Attached-Eigenschaften 933Markuperweiterungen (Markup Extensions) 934Die Attribute (und Elemente) des XAML-Namespace 935
Ressourcen, Stile und Vorlagen 937Ressourcen definieren 937Ressourcen verwenden 938Stile 938Trigger 939Vorlagen 939
WPF-Ausführungsmodelle 940
Teil H - Multithreading 941
36 Prozesse und Anwendungsdomänen 943Prozesse 944
Die Process-Klasse 944Prozess starten 944Prozess binden 946Prozess beenden 946Prozessverhalten und -mechanismen verwalten 947
Inhaltsverzeichnis 21
Anwendungsdomäne 948Erstellen einer Anwendungsdomäne 948Ausführbare Assemblys innerhalb einer Anwendungsdomäne 949Nicht ausführbare Assemblys innerhalb einer Anwendungsdomäne 950Laden und Entladen von Assemblys in einer Anwendungsdomäne 951Daten zwischen Anwendungsdomänen austauschen 951
37 Thread-Programmierung 955Starten von Threads 956
Einfachen Thread starten 956Starten von Threads in einer anderen Anwendungsdomäne 958Hintergrundthreads 959
Arbeiten mit Threads 961Priorisieren von Threads 961Anhalten und Beenden von Threads 962
Synchronisierung 964Monitor 965Interlock 967Mutex 967
Pooling 970Timer 972
Teil I - Datenbanken 975
38 ADO.NET 977Architektur und Technologie 978
Technologie 978Architektur 979
KlasseninADO.NET 979Connection-Klasse und Pooling 979Command-Klasse 984DataReader-Klasse 993DataAdapter-und DataSet-Klasse 996
DataTable-Klasse 1005DataTableReader 1005Data View-Klasse 1005Transaktionen 1006
39 SQL Server-Programmierung 1007Programmieren von SQL Server 2008 R2 1008
Anlegen eines SQL Server-Projekts 1009Erstellen einer benutzerdefinierten Funktion 1010Erstellen einer gespeicherten Prozedur 1012
22 . Inhaltsverzeichnis
Erstellen eines Aggregats 1013Ersteüen eines Triggers 1015Erstellen eines benutzerdefinierten Typs 1017
Teil J-XML 1021
40 XML Daten 1023Allgemeines 1024
Aufbau und Terminologie eines XML-Dokuments 1024Verfügbare APIs 1025
Programmieren mit XML 1026Die Klasse XMLDocument 1026LINQtoXML 1031
41 XPath, XQuery LINQ to XML und XSLT 1033XPath und XQuery 1034
Arbeiten mit XPath 1034Arbeiten mit XQuery 1035Arbeiten mit XPath und XQuery 1035
LINQtoXML 1036XSLT 1037
XSLT-Transformation 1037
Teil K - Web Forms 1039
42 Grundlagen der Webentwicklung (ASP.NET) 1041GrundlagenvonASP.NET 1042
Ordnerstruktur 1042SeitenmodelleinASP.NET 1042Automatische Kompilierung 1044Lebenszyklus einer ASP.NET-Seite 1044
ArbeitenmitASP.NET 1045ASP.NET-Projekt erzeugen 1045Webkonfigurationsdatei 1046Debuggen von Webanwendungen 1046Website veröffentlichen 1047Website konfigurieren 1048
43 Web Forms und Steuerelemente 1051Arbeiten mit Web Forms 1052
Web Form erstellen 1052Steuerelemente platzieren 1053
Inhaltsverzeichnis 23
Arbeiten mit serverseitigen Steuerelementen 1053TextBox und Button 1053DropDownList und ListBox 1054CheckBoxList und RadioButtonList 1056CheckBox und RadioButton 1057FileUpload 1059Wizard 1059Xml-Steuerelement 1060MultiView und View 1061Sitemap, Menü undTreeView 1062Login-Steuerelemente 1063
MembershipProvider und RoleProvider 1067Validierung von Daten 1070
44 Datengebundene Steuerelemente 1075Steuerelemente an Expressions binden 1076
Ressourcendatei hinzufügen 1076Ressource binden 1077
Datenquellen an Steuerelemente binden 1077DropDownList, ListBox, CheckBoxList und RadioButtonList 1078
Deklarative Datenbindung 1079GridView-Steuerelement 1084
Deklarative Datenbindung 1086Form View und DetailsView 1089
Object Binding 1090
45 Webpartsund Layout 1095Webparts 1096
Vorbereitungen 1096WebPartManager 1096WebPartZone 1096EditorZone 1097CatalogZone 1099
Designs 1100Vorbereitung 1100Skin bzw. Designdatei erzeugen 1100Skin in die Website einbinden 1101
Teil L - Webdienste und Remoting 1103
46 XML-Webdienste 1105Architektur der XML-Webdienste 1106
24 Inhaltsverzeichnis
SOAP.XMLundWSDL 1107UDDI 1107SOAP 1107WSDL 1108Interoperabilität 1111Die Proxyklasse eines Webdienstes 1111
XML-Webdienst-Namespaces 1113Einen ASP.NET-Webdienst erstellen 1114Einen neuen Webdienst erstellen 1115
Die Basisklasse WebService 1117Das Attribut WebService 1117
Webmethodenerstellen 1118BufferResponse 1118CacheDuration 1118Description 1119EnableSession 1119MessageName 1120
Einen XML-Webdienst testen 1120Fortgeschrittene Techniken für Webdienste : 1122
Arbeiten mit dem SO AP-Header 1122Autorisieren über Principals und Permissons 1123Arbeiten mit Zertifikaten 1124Arbeiten mit komplexen Typen 1125Proxy Type Sharing.... 1127
Aufrufen und arbeiten mit Webdiensten 1127Erstellen eines Webverweises mit Visual Studio 1127Einfacher Aufruf von Webmethoden 1128Aufruf zustandsbehafteter Webmethoden 1129Aufruf von Webdiensten mit SOAP-Headern 1129Asynchroner Aufruf von Webmethoden 1130Dynamische Webdienst-URLs 1131Aufruf von Webdiensten über einen Proxyserver 1132Authentifizieren über Windows-Authentifizierung 1132
Debuggen eines XML-Webdienstes 1132Weitergeben von Webdiensten 1133
47 Remoting 1135Architektur und Technologie 1136
Channels 1136Formatter 1136Remoteobjekte 1136Proxy 1137Marshal-By-Value 1137Marshal-By-Reference 1139
Inhaltsverzeichnis 25
! Server- und Clientaktivierte Objekte 1139! Serveraktivierte Objekte 1140I Clientaktivierte Objekte 1141
Deklarative Konfiguration 1143i Objektlebensdauer 1145' Hosts 1148! Das Remoteobjekt 1148S Remoting über einen Windows-Dienst 1148
Installieren des Dienstes 1150
Die Clientanwendung des Windows-Dienstes 1152
Teil M - Spracherweiterungen und LINQ 1153
48 Spracherweiterungen von C# 4.0 1155i Dynamic 1156
Ko- und Kontravarianz 1157Optionale (oder Standard-) Parameter 1157Benannte Argumente 1158Verbesserte COM Interoperabilität 1158
49 LINQ 1161Grundlagen der LINQ-Operatoren 1162
Projektionsoperatoren 1164Restriktionsoperator 1167Sortierungsoperatoren 1168Gruppierungsoperatoren 1170Verknüpfungsoperatoren 1172Set-Operatoren 1174Aggregatsoperatoren 1178Generierungsoperatoren 1182Quantifizierungsoperatoren 1184Partitionierungsoperatoren 1185Elementoperatoren 1188
LINQ to Objects 1191LINQ to SQL 1191
Referenzen und Namespaces 1191Kommunikation mit der Datenbank 1191Entwerfen von Entitätsklassen 1192Entitätsverknüpfungen 1194Datenabfragen 1197Datenmanipulation 1203
LINQ to Entities 1208LINQ to DataSet 1210
26 Inhaltsverzeichnis
LINQtoXML 1212Erzeugen von XML-Dokumenten über die LINQ to XML API 1212Lesen von XML-Dokumenten 1213Ändern von abgefragten XML-Daten 1215
Teil N - Debuggen 1217
50 Debuggen mit Visual C# 1219Der integrierte Debugger 1220
Vorbereitung für das Debuggen 1220Anwendungen im Debugger ausführen 1221Haltepunkte und Einzelschrittausführung 1223Die Debug-Fenster 1226
Debuggen im Code-Editor 1231DataTip (Dateninfo) 1232Schnellüberwachung 1232Bearbeiten und Fortfahren (Edit & Continue) 1232
Manuelle Debug-Techniken 1233Meldungsfenster 1233Bedingte Kompilierung 1234Assert() -Methode 1234Conditional-Attribut 1234
Anhang A - DVD-Kapitel: Schlüsselwörter 1237Diesen Anhang finden Sie als kostenlosen Zusatzinhalt auf der beiliegenden DVD.
Anhang B - DVD-Kapitel: C#-Referenz 1239Diesen Anhang finden Sie als kostenlosen Zusatzinhalt auf der beiliegenden DVD.
Stichwortverzeichnis 1241