Jürgen Bayer Informatik  
Home      Dienstleistungen      Referenzen      Kontakt     

Das C# 2008 Codebook

Jürgen Bayer
Addison Wesley 2008
ISBN-10: 3827323266
ISBN-13: 978-3827323262
1168 Seiten

Buchseite bei Addison-Wesley

Bei Amazon bestellen

Buchbeschreibung

Die Bibliothek des .NET Framework 3.5 enthält eine gewaltige Menge an Klassen, Strukturen und anderen Typen. Diese Vielzahl macht es trotz des hierarchischen Aufbaus dieser Bibliothek nicht immer einfach, die richtigen Typen für die Lösung eines Programmierproblems zu finden. Häufig ist aber auch der Einsatz der gefundenen Typen nicht trivial und erfordert einiges an Backgroundwissen. In einigen Fällen finden Sie in der .NET Framework Bibliothek aber einfach auch keine Klassen oder Strukturen, über die Sie Ihr Problem lösen könnten.
Hier setzt dieses Buch an. In 388 Rezepten (wenn die der Einführung mitzählen) finden Sie Lösungen zu Problemen, die in der Praxis immer wieder auftreten. Die meisten dieser Rezepte haben sich aus meiner jahrelangen Praxisarbeit mit .NET entwickelt. Andere entstanden aus Newsgroup-Beiträgen oder aus Fragen in meinen Seminaren und Workshops. Natürlich löst dieses Buch nicht alle Probleme. Die Praxisorientiertheit der Rezepte führt allerdings mit recht großer Wahrscheinlichkeit dazu, dass viele Ihrer Fragen zur C#-Programmierung in diesem Buch beantwortet werden.
Diese dritte Auflage des C# Codebook basiert natürlich auf der zweiten. Die Rezepte der vorherigen Auflage habe ich größtenteils beibehalten, aber komplett überarbeitet. Bei den meisten Rezepten betraf die Überarbeitung neue C#-Sprachfeatures (wie Lambda-Ausdrücke und Objekt-Initialisierer). Viele habe ich auch auf WPF erweitert (z. B. die Rezepte im Kapitel »Bildbearbeitung«). Bei vielen der alten Rezepte habe ich Verbesserungen einfließen lassen, die sich im Lauf der Zeit (auch durch die nette Mitwirkung einiger Leser) ergeben haben. Die Änderungen gegenüber der zweiten Auflage finden Sie übrigens im Anhang.
Das Buch enthält darüber hinaus auch neue Rezepte. Unter Ausreizung der zur Verfügung stehenden Seitenanzahl sind das immerhin 52. Dazu gehören neben einigen speziellen neuen Rezepten (wie endlich auch zwei, die die asymmetrische Verschlüsselung behandeln :-) ) solche zu WPF, LINQ und LINQ to SQL. Als Zugabe finden Sie auf der Buch-CD auch einige umfangreiche Artikel, die diese neuen Technologien erläutern.
Einige Rezepte werden Ihnen u. U. sehr einfach erscheinen. Diese beschreiben meist grundlegende Techniken, wie z. B. das Formatieren einer Zahl, die besonders von C#-Novizen des Öfteren nachgefragt werden. Diese Rezepte sollen aber eben genau die Zielgruppe der C#-Anfänger ansprechen. Die Vielzahl der Rezepte behandelt allerdings Probleme, deren Lösungen komplex sind und die auch von erfahreneren C#-Entwicklern nachgelesen werden müssen.
Bei der Erstellung der einzelnen Rezepte habe ich wesentlich mehr Wert auf Qualität als auf Quantität gelegt. Besonders wichtig war mir, dass Sie das, was dort programmiert ist, auch verstehen. Deshalb wird jedes Rezept erläutert, wobei ich auch auf die vielen möglichen Fallstricke eingehe. Außerdem enthält der entsprechende Quellcode jedes Rezepts Kommentare, die die Programmierung kurz erläutern. Daneben finden Sie keine »Quick and Dirty«-Lösung in diesem Buch. Ich habe jedes Rezept sehr intensiv getestet und potenzielle Fehlerquellen beseitigt (was manchmal für ein Rezept einige Stunden oder auch einen ganzen Tag in Anspruch genommen hat).

Inhalt

1 Einführung

1.1 Zum Buch

1.2 Recherche-Möglichkeiten

2 Basics

1 Zahlen formatieren

2 Negative und positive Zahlen unterschiedlich formatieren

3 (Ganz-)Zahlen hexadezimal darstellen

4 Hexadezimale Zahlen in dezimale Zahlen konvertieren

5 Ganzzahlen dual darstellen

6 Dualzahlen in Ganzzahlen konvertieren

7 Zahlen in verschiedenen Notationen darstellen

8 Zahlen kaufmännisch runden

9 Den kleinsten und den größten Wert eines numerischen Datentyps ermitteln

10 Gradmaß in das Bogenmaß umrechnen

11 Bogenmaß in das Gradmaß umrechnen

12 Umstellen der aktuellen Kultur

13 Die verfügbaren Kulturen auslesen

14 Zahlen in verschiedenen Länderformaten darstellen

15 Einen Bytewert in ein besser lesbares Format umwandeln

16 Überprüfen, ob ein String eine gültige Zahl speichert

17 Überprüfen, ob ein String ein gültiges Datum speichert

18 Zufallszahlen erzeugen

19 High- und Low-Word lesen

20 High- und Low-Word setzen

21 Beep ausgeben

22 Strings ohne Berücksichtigung der Groß- bzw. Kleinschreibung vergleichen

23 Teilstrings flexibel ersetzen

24 Strings an vorgegebenen Trennzeichen auftrennen

25 Mehrere (Leer-)Zeichen in ein (Leer-)Zeichen konvertieren

26 Erstes Zeichen aller Wörter im String groß- und die restlichen Zeichen kleinschreiben

27 Anzahl der Wörter in einem String ermitteln

28 Alle Wörter eines Strings extrahieren

29 Einen String an einem rechten Rand wortgerecht umbrechen

30 String auf die ersten Wörter bis zu einer Maximallänge kürzen

31 Teilstring nur dann ersetzen, wenn dieser am Anfang eines Strings gespeichert ist

32 Linken und rechten Teilstring extrahieren

33 Zahlen aus einem String extrahieren

34 Überprüfen, ob ein String mit einer Zahl beginnt

35 Zufalls-String berechnen

36 Konstantennamen einer Aufzählung als String auslesen

37 Strings in Aufzählungswerte konvertieren

38 String in Byte-Array umwandeln

39 Byte-Array in String lesen

40 Auflistungen und Arrays sortieren

41 Auflistungen und Arrays performant durchsuchen

42 Typisierte Auflistungen erzeugen

43 Schnelle Auflistung mit Schlüssel- und Indexzugriff

44 Das Programm für eine definierte Zeit anhalten

45 Die Nachrichten einer Exception und ihrer inneren Exceptions ermitteln

46 Exceptions in Anwendungen korrekt auswerten

3 Datum und Zeit

47 Aktuelles Datum und aktuelle Uhrzeit ermitteln

48 Datumswerte formatieren

49 Datumswerte in verschiedenen Länderformaten ausgeben

50 Datum in das ISO-Format konvertieren

51 Datumswerte vergleichen

52 Die Differenz zwischen zwei Datumswerten berechnen

53 Alter in ganzen Jahren berechnen

54 Datumswerte addieren und subtrahieren

55 Eine Zeitangabe in einem String in ein Datum mit der Basis DateTime.Min umwandeln

56 Die Anzahl der Tage eines Monats berechnen

57 Die Anzahl der Tage eines Jahres berechnen

58 Den Wochentag eines Datums ermitteln

59 Den Namen eines Wochentags ermitteln

60 Den Namen eines Monats ermitteln

61 Den ersten und letzten Tag der Woche eines Datums berechnen

62 Den ersten und den letzten Tag eines Monats berechnen

63 Das Quartal eines gegebenen Datums berechnen

64 Den ersten und den letzten Tag eines Quartals berechnen

65 Ermitteln, ob ein Jahr ein Schaltjahr ist

66 Ermitteln der ISO-Kalenderwoche

67 Ermitteln, mit welchem Datum eine Kalenderwoche beginnt

68 Anzahl der Kalenderwochen eines Jahres bestimmen

69 Systemdatum und -zeit setzen

70 Atomuhr-Datum inklusive Uhrzeit von einem NIST-Server abfragen

71 Datum normalisieren

72 Deutsche Feiertage und andere besondere Tage berechnen

73 Ermitteln, ob ein bestimmter Tag ein Feiertag ist

74 Zeit genau messen

75 Eine Eingabe daraufhin überprüfen, ob diese ein Datum ergeben kann

76 Eine Eingabe daraufhin überprüfen, ob diese eine Zeit ergeben kann

77 Datumswerte fehlerfrei zwischen Systemen mit verschiedenen Zeitzonen austauschen

78 Mit Zeitzonen arbeiten

79 Mit Kalendersystemen arbeiten

4 Anwendungen, Anwendungs-Konfiguration, Prozesse und Dienste

80 Den Dateinamen der Anwendung ermitteln

81 Das Verzeichnis der Anwendung ermitteln

82 Befehlszeilenargumente auswerten

83 User Account Control (UAC) berücksichtigen

84 Ausnahmen global behandeln

85 Den Speicherverbrauch von .NET-Anwendungen verstehen und gegebenenfalls reduzieren

86 Konfigurationsdaten in der .config-Datei verwalten

87 Konfigurationsdaten aus dem appSettings-Element der .config-Datei lesen

88 Externe Konfigurationsdateien lesen und schreiben

89 Konfigurationsdaten in eigenen Abschnitten speichern

90 Anwendungskonfiguration über eine eigene XML-Datei

91 Daten aus der Registry lesen und in die Registry schreiben

92 Verhindern, dass eine Anwendung mehrfach gestartet werden kann

93 Aktivieren einer laufenden Anwendung

94 Auflisten aller laufenden Prozesse eines Computers

95 Auflisten aller laufenden Anwendungen eines Computers

96 Informationen über die Dienste eines Computers auslesen

97 Dienste starten, anhalten, fortfahren und stoppen

98 Ermitteln, ob eine Anwendung ausgeführt wird

99 Anwendungen starten

100 Dateien mit der assoziierten Anwendung öffnen

101 Starten einer anderen Anwendung und warten, bis diese beendet ist

102 Konsolenanwendungen starten und die Ausgabe auswerten

103 Andere Anwendungen beenden

104 Java-Anwendungen starten

105 Die Betätigung der Tastatur simulieren

5 Dateisystem

106 Dateiname einer Windowsanwendung ermitteln

107 Dateiname einer Klassenbibliothek ermitteln

108 Ordner einer Windowsanwendung ermitteln

109 Ordner einer Klassenbibliothek ermitteln

110 Dateiname für eine temporäre Datei erzeugen

111 Ordner für temporäre Dateien ermitteln

112 Windows-(Spezial-)Ordner auslesen

113 Das .NET-Framework-Verzeichnis ermitteln

114 Dateiname mit anderer Endung ermitteln

115 Relativen Pfad aus einem absoluten Pfad ermitteln

116 Absoluten Pfad aus einem relativen Pfad ermitteln

117 Überprüfen, ob eine Pfadangabe gültig ist

118 Die logischen Laufwerke des Systems ermitteln

119 Den Typ der Laufwerke eines Systems ermitteln

120 Alle Laufwerke eines bestimmten Typs ermitteln

121 Größe und freien Speicherplatz eines Laufwerks ermitteln

122 Überprüfen, ob ein Ordner existiert

123 Ordner erzeugen

124 Ordner mit .NET-Features kopieren

125 Ordner mit Fortschrittsdialog, Abbruchmöglichkeit und Überschreib-Nachfrage über SHFileOperation kopieren

126 Ordner mit .NET-Features ohne Abbruch bei einer Ausnahme kopieren

127 Ordner umbenennen

128 Ordner verschieben

129 Ordner löschen

130 Ordnergröße ermitteln

131 Ordnergröße aller direkten Unterordner ermitteln

132 Überprüfen, ob eine Datei existiert

133 Dateien in einem Ordner und seinen Unterordnern suchen

134 Programmdateien in den Systempfaden suchen

135 Dateien kopieren

136 Dateien umbenennen

137 Dateien verschieben

138 Dateien löschen

139 Dateien vergleichen

140 Ordner vergleichen

141 Die Größe einer Datei ermitteln

142 Dateiattribute auslesen

143 Dateiattribute (z. B. den Schreibschutz) setzen oder aufheben

144 Die Erstell- und Zugriffsdaten einer Datei lesen und setzen

145 Die Version einer Datei auslesen

146 Den kurzen (8.3-)Dateinamen einer Datei auslesen

147 Alle Dateien eines Ordners auflisten

148 Dateien und Ordner mit Fortschrittsdialog, Abbruchmöglichkeit und Überschreib-Nachfrage umbenennen oder verschieben

149 Dateien und Ordner in den Papierkorb verschieben

150 Größe des Papierkorbs und Anzahl der Dateien im Papierkorb ermitteln

151 Verknüpfungen anlegen

152 Das Dateisystem überwachen

6 Text-, binäre und Zip-Dateien

153 Textdateien lesen

154 Textdateien schreiben

155 Texte an Textdateien anfügen

156 Textdateien ändern

157 Binäre Dateien lesen

158 Binäre Dateien schreiben

159 Binäre Dateien Base64-codieren

160 Base64-codierte Strings in Dateien umwandeln

161 Komprimieren von Daten mit .NET-Klassen

162 Dekomprimieren von Daten mit .NET-Klassen

163 (ZIP-)Komprimieren von Daten mit #ziplib

164 (ZIP-)Dekomprimieren von Daten mit #ziplib

165 Dateien in ZIP-Archive komprimieren

166 (ZIP-)Archive aus einem Ordner erzeugen

167 Dateiinformationen aus (ZIP-)Archiven auslesen

168 (ZIP-)Archive entpacken

7 XML

169 XML-Dokumente über LINQ to XML lesen

170 XML-Dokumente mit Namensraum über LINQ to XML lesen

171 XML-Dokumente über ein XmlReader-Objekt lesen

172 XML-Dokumente über das X-DOM lesen

173 XML-Dokumente beim Einlesen gegen ein Schema (oder DTD) prüfen

174 XML-Dokumente auf Gültigkeit überprüfen

175 XML-Dokumente validierend über das X-DOM lesen

176 Gezielt über XPath auf Elemente in einem XML-Dokument ohne Namensraum zugreifen

177 Gezielt über XPath auf Elemente in einem XML-Dokument mit Namensraum zugreifen

178 XML-Dokumente mit einem XmlWriter erzeugen

179 XML-Dokumente über das X-DOM erzeugen und ändern

180 XML-Dokumente über LINQ to XML erzeugen

181 XML-Dokumente über ein DataTable- oder DataSet-Objekt erzeugen

182 XML-Dokumente über ein DataTable- oder ein DataSet-Objekt ändern

183 Binäre Daten in einem XML-Dokument speichern

184 Base64-codierte Bilder (binäre Daten) aus XML-Dokumenten auslesen

185 XML-Dokumente über LINQ to XML transformieren

186 XML-Dokumente über XSL-Dokumente transformieren

8 System

187 Den Namen des Computers ermitteln

188 Systempfade herausfinden

189 Windows-Version auslesen

190 Windows-Hauptversion ermitteln

191 Die Prozessorgeschwindigkeit ermitteln

192 Informationen über den Arbeitsspeicher auslesen

193 Die Version des aktuellen Service-Packs ermitteln

194 Installierte Programme auflisten

195 Informationen zu den parallelen Schnittstellen des Systems auslesen

196 Informationen zu den seriellen Schnittstellen des Systems auslesen

197 Ermitteln der Soundkarten des Systems

198 Windows herunterfahren und neu starten

199 Die verfügbaren Leistungsindikatoren auslesen

200 Den Arbeitsspeicher überwachen

201 Speicherauslastung und CPU-Belastung des aktuellen Prozesses überwachen

202 Speicherauslastung und CPU-Belastung des aktuellen Prozesses in ein Trace-Protokoll schreiben

203 Eigene Leistungsindikatoren implementieren

204 Monitor abschalten, in den Energiesparmodus schalten und wieder einschalten

205 System-Hotkeys registrieren und auswerten

9 Internet

206 Status der Internetverbindung abfragen

207 Pingen – Ermitteln, ob eine Internetverbindung besteht

208 TCP- und ICMP-Prüfsumme berechnen

209 Internetverbindung öffnen und schließen

210 Die IP-Adressen des Computers herausfinden

211 E-Mails über einen SMTP-Server versenden

212 E-Mails über MAPI bzw. Outlook versenden

213 Browser starten

214 Webseiten (HTML-Dokumente) in der Anwendung darstellen

215 Dateien von einem Web- oder FTP-Server über eine WebClient-Instanz downloaden

216 Dateien von einem Webserver über eine HttpWebRequest-Instanz downloaden

217 Intelligenter Up- und Download mit BITS

218 Die Größe einer Datei von einem FTP-Server abfragen

219 Dateien zu einem Web- oder FTP-Server hochladen

220 FTP-Verzeichnisse auslesen

221 Dateien und Ordner auf einem FTP-Server löschen

222 Ordner auf einem FTP-Server erstellen

10 Windows.Forms

223 Formulare ohne Titelleiste

224 (Rahmenlose) Formulare über den Clientbereich verschiebbar machen

225 Unbewegbare Formulare mit Titelleiste

226 Andockende Formulare

227 Ändern des Systemmenüs – Entfernen des Schließen-Eintrags und -Schalters

228 Formulare verlaufend füllen

229 Formulare mit speziellen Formen

230 Formulare mit dem Vista-Glas-Effekt ausstatten

231 Splash-Formulare

232 Ermitteln, auf welchen Monitoren ein Formular angezeigt wird

233 Ein Formular auf einem sekundären Bildschirm öffnen

234 Die Bildschirm-Position eines Steuerelements ermitteln

235 Die optimale Position eines Formulars oder eines Steuerelements bezogen auf ein Steuerelement ermitteln

236 Das Hauptformular einer Anwendung ermitteln

237 Menüs in der Laufzeit erstellen oder erweitern

238 Steuerelemente mit transparentem Hintergrund

239 TextBox automatisch beim Eintritt selektieren

240 TextBox auf Zahleingaben beschränken

241 Auf Return in einer TextBox reagieren

242 Bei der Betätigung der Return-Taste die Tab-Taste simulieren

243 Die Position des Eingabecursors in einer TextBox, RichTextBox oder MaskedTextBox ermitteln

244 Die angezeigten Zeilen einer MultiLine-TextBox auslesen

245 ComboBox mit Autovervollständigung

246 Daten neben den Einträgen einer ListBox oder ComboBox verwalten

247 ListBox mit ToolTip für längere Einträge

248 ListView sortieren

249 Knoten einer Ebene in einem TreeView-Steuerelement vertauschen

250 Einzelne Knoten eines TreeView-Steuerelements sortieren

251 Die Werte einzelner Zellen in einem DataGridView setzen und lesen

252 Ein DataGridView anpassen

253 Ein DataGridView mit eigenen Spalten am Beispiel einer DateTimePicker-Spalte

254 Feiertage im MonthCalendar-Steuerelement darstellen

255 Drag&Drop von Dateien und Ordnern

256 Ein Ordner-Dialog

257 In einem Nicht-Tastatur-Ereignis herausfinden, ob eine bestimmte Taste betätigt ist

258 In einem eigenen Steuerelement verhindern, dass die Cursor-Tasten einen Fokuswechsel bewirken

259 Hooking – Eine MessageBox mit definierten Schalterbeschriftungen versehen

11 WPF

260 Fenster ohne Titelleiste

261 Den Handle eines WPF-Fensters ermitteln

262 Fenster über den Clientbereich verschiebbar machen

263 Windows-Nachrichten verarbeiten

264 Beim Maximieren eines Fensters ohne Titelleiste die Taskbar berücksichtigen

265 Fenster verlaufend füllen

266 Hintergrund mit Textur

267 Fenster mit speziellen Formen

268 Fenster mit dem Vista-Glas-Effekt ausstatten

269 Fenster in einer Schleife aktualisieren

270 Splash-Fenster

271 Die aktuelle DPI-Einstellung der Bildschirme des Systems ermitteln

272 Ein Fenster auf einem sekundären Bildschirm öffnen

273 Das Hauptfenster einer Anwendung ermitteln

274 Die absolute und die Bildschirm-Position eines Steuerelements ermitteln

275 Die optimale Position eines Fensters bezogen auf ein Steuerelement ermitteln

276 Beim Öffnen eines Fensters den Fokus setzen

277 Das Einfügen über die Zwischenablage abfangen

278 TextBox-Inhalt beim Eintritt komplett selektieren

279 TextBox auf Zahleingaben beschränken

280 Das TextChanged-Ereignis bei der ComboBox abfangen

281 Bei der Betätigung der Return-Taste die Tab-Taste simulieren

282 Drag&Drop von Dateien und Ordnern

283 In einem Nicht-Tastatur-Ereignis herausfinden, ob eine bestimmte Taste betätigt ist

12 LINQ und LINQ to SQL

284 Dynamische Abfragen

285 Ungleichheits-Verknüpfungen

286 Kreuzprodukt-Verknüpfungen

287 Kommaseparierte Dateien (CSV-Dateien) verarbeiten

288 Probleme mit der Benennung in LINQ-to-SQL-Modellen lösen

289 LINQ-to-SQL-Abfragen mit LIKE

290 SQL direkt ausführen

291 Die SQL-Anweisung einer LINQ-Abfrage evaluieren

13 Benutzer und Gruppen

292 Informationen zu den Benutzern eines Computers oder einer Domäne auflisten

293 Überprüfen, ob ein Benutzerkonto existiert

294 Benutzergruppen eines Computers oder einer Domäne auflisten

295 Benutzer ermitteln, die einer Gruppe angehören

296 Gruppen eines Benutzers abfragen

297 Eigenschaften eines Benutzers auslesen

298 Überprüfen, ob der aktuelle Benutzer einer in Windows vordefinierten Gruppe (z. B. Administratoren) angehört

299 Gruppen anlegen

300 Benutzer anlegen

301 Eigenschaften eines Benutzers ändern

302 Benutzer einer Gruppe zuweisen

303 Benutzer aus einer Gruppe entfernen

304 Benutzer löschen

305 Gruppe löschen

306 Den Namen des aktuellen Benutzers auslesen

307 Ein Programm unter einem spezifischen Benutzerkonto ausführen

14 Sicherheit

308 Strings sicher im Programm verwalten

309 Daten symmetrisch ver- und entschlüsseln

310 Asymmetrisches Verschlüsseln mit RSA

311 Sicherer Schlüsselaustausch mit ECDH

312 Daten mit Hashing-Verfahren verschlüsseln

15 Multimedia

313 Wave-Dateien abspielen

314 Multimedia-Dateien in einer Windows.Forms-Anwendung über MCI abspielen

315 Multimediadateien in einer WPF-Anwendung abspielen

16 Bildbearbeitung

316 Speicherschonend in einer Windows.Forms-Anwendung mit Bildern umgehen

317 Bitmap-Objekte aus BitmapSource-Objekten erzeugen

318 BitmapSource-Objekte aus Bitmap-Objekten erzeugen

319 Das Format eines Bilds auslesen

320 Bild-Metadaten auslesen

321 Das Aufnahmedatum eines Bilds auslesen

322 Eingelesene Bilder im Originalformat speichern

323 Bild in Byte-Array umwandeln

324 Byte-Array in Bild umwandeln

325 Bilder aus der Zwischenablage auslesen

326 Screenshot erstellen

327 Bilder skalieren

328 Thumbnails aus Bildern erzeugen

329 Bilder konvertieren

330 (JPEG-)Bilder mit definierter Qualität speichern

331 Bilder drehen, neigen und spiegeln

332 Bildausschnitte auslesen

333 Farben von Bildern auf andere Farben mappen

334 Farbinformationen von Bildern gezielt verändern

335 Ein Negativ eines Bilds erzeugen

336 Die einzelnen Pixel eines Bilds bearbeiten

337 Farb-Bilder in Graustufen-Bilder umwandeln

17 Zeichnen

338 GDI-Probleme vermeiden

339 Einstellen der Grafik-Qualität unter GDI

340 Rechtecke mit abgerundeten Ecken zeichnen

341 Pfeile zeichnen

342 Transparente Bilder und Grafiken erzeugen

343 Bilder mit Schatten zeichnen

344 Schräg zeichnen und Zeichenobjekte rotieren

345 Den Drehpunkt eines Rechtecks so ermitteln, dass die Ecke links oben an derselben Position bleibt

346 Text an einer definierten Position in 90-Grad-Schritten gedreht ausgeben

347 Die Breite und Höhe eines auszugebenden Textes bestimmen

348 Texte zentriert oder rechtsbündig zeichnen

349 Strings beim Zeichnen wortgerecht umbrechen

18 COM-Interop mit Office

350 Laufende COM-Komponenten-Instanzen referenzieren

351 Word-Dokumente öffnen

352 Word-Dokumente basierend auf einer Dokumentenvorlage erzeugen, füllen, ausdrucken und speichern

353 Excel-Arbeitsmappen erzeugen

354 Daten in Excel-Arbeitsmappen erweitern

355 Performantes Lesen und Schreiben in Excel-Arbeitsmappen

356 Kontakte aus Outlook auslesen

19 Reflection und Serialisierung

357 Informationen über den Aufrufer in einer Methode oder einem Konstruktor ermitteln

358 Programmcode dynamisch ausführen

359 Assemblys dynamisch erzeugen

360 Assemblys dynamisch laden

361 Objekte über eine Datenvertrag-Serialisierung serialisieren

362 Objekte binär serialisieren und deserialisieren

363 Objekte nach XML serialisieren und von XML deserialisieren

364 Font- und andere (serialisierbare) Objekte in einen String serialisieren

20 Threading und asynchroner Methodenaufruf

365 In einem Thread sicher auf Steuerelemente zugreifen

366 Easy-Threading mit der BackgroundWorker-Komponente

367 Parameter an Threads übergeben und Ergebnisse auslesen

368 Das ereignisbasierte asynchrone Entwurfsmuster implementieren

21 Datenbank-Programmierung

369 Die Anzahl der Datensätze ermitteln, die eine Abfrage in einer Datenbank ergibt

370 Datenbanken erzeugen

371 Abfragen der automatisch vergebenen Id eines neuen Datensatzes

372 Bilder und andere binäre Daten in einer Datenbank verwalten

373 Backup und Restore einer SQL-Server-Datenbank über SMO

374 Die verfügbaren SQL Server ermitteln

375 Die Datenbanken einer SQL-Server-Instanz abfragen

22 Anhang

21.1 Änderungen gegenüber der zweiten Auflage

21.2 Die ersten 255 Zeichen des Unicode-Zeichensatzes