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
|