Sie sind hier
E-Book

Visual C# 2015 - Grundlagen, Profiwissen und Rezepte

AutorThomas Gewinnus, Walter Doberenz
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2015
Seitenanzahl1195 Seiten
ISBN9783446446069
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis49,99 EUR
VISUAL C# 2015 - GRUNDLAGEN, PROFIWISSEN, REZEPTE //
- Für Einsteiger, Fortgeschrittene und Profis
- Übungs- und Nachschlagewerk mit genialen Rezepten zu jedem Thema
- EXTRA: 700 Seiten Bonuskapitel zur GUI-Entwicklung mit WPF und Windows Forms
- Im Internet: Bonuskapitel sowie alle Beispiele aus dem Buch
Dieser Klassiker der C#-/.NET-Programmierung bietet Ihnen Informationen und Rezepte, nach denen Sie anderswo vergeblich suchen. Einsteiger erhalten ein umfangreiches Praktikum zu den Grundlagen der .NET-Programmierung mit Visual C# 2015, dem Profi liefert es fortgeschrittene Programmiertechniken zu allen wesentlichen Einsatzgebieten der Windowsprogrammierung. Zum sofortigen Ausprobieren finden Sie am Ende eines jeden Kapitels hochwertige Lösungen für nahezu jedes Problem.
Mit diesem Buch haben Sie den idealen Begleiter für Ihre tägliche Arbeit und zugleich - dank der erfrischenden und unterhaltsamen Sprache - eine durchaus spannende Lektüre auch für die Zeit nach der Arbeit.
Die Themenkomplexe im Buch:
Teil I: Grundlagen der Programmierung mit Visual C# 2015
Teil II: Technologien
Teil III: Windows Apps
Die Themenkomplexe im Internet:
Teil IV: WPF-Anwendungen
Teil V: Windows Forms
AUS DEM INHALT //
Grundlagen der Sprache // OOP-Konzepte // Einführung in LINQ // Dateien & Dateisystem // XML-Dateien // Asynchrone Programmierung & Task Parallel Library // Fehlersuche und Behandlung // Datenbankzugriff mit ADO.NET // Verteilen von Anwendungen // App-Oberflächen entwerfen // Apps im Detail // GUI-Entwicklung mit WPF und Windows Forms

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Inhaltsverzeichnis6
Vorwort46
Teil I: Grundlagen50
1 Einstieg in Visual Studio 201552
1.1 Die Installation von Visual Studio 201552
1.1.1 Überblick über die Produktpalette52
1.1.2 Anforderungen an Hard- und Software53
1.2 Unser allererstes C#-Programm54
1.2.1 Vorbereitungen54
1.2.2 Quellcode schreiben56
1.2.3 Programm kompilieren und testen56
1.2.4 Einige Erläuterungen zum Quellcode57
1.2.5 Konsolenanwendungen sind out58
1.3 Die Windows-Philosophie58
1.3.1 Mensch-Rechner-Dialog58
1.3.2 Objekt- und ereignisorientierte Programmierung59
1.3.3 Programmieren mit Visual Studio 201560
1.4 Die Entwicklungsumgebung Visual Studio 201561
1.4.1 Neues Projekt62
1.4.2 Die wichtigsten Fenster63
1.5 Microsofts .NET-Technologie66
1.5.1 Zur Geschichte von .NET66
1.5.2 .NET-Features und Begriffe68
1.6 Wichtige Neuigkeiten in Visual Studio 201575
1.6.1 Entwicklungsumgebung75
1.6.2 Neue C#-Sprachfeatures75
1.6.3 Code-Editor76
1.6.4 NET Framework 4.676
1.7 Praxisbeispiele77
1.7.1 Unsere erste Windows Forms-Anwendung77
1.7.2 Umrechnung Euro-Dollar81
2 Grundlagen der Sprache C#90
2.1 Grundbegriffe90
2.1.1 Anweisungen90
2.1.2 Bezeichner91
2.1.3 Schlüsselwörter92
2.1.4 Kommentare92
2.2 Datentypen, Variablen und Konstanten93
2.2.1 Fundamentale Typen93
2.2.2 Wertetypen versus Verweistypen94
2.2.3 Benennung von Variablen95
2.2.4 Deklaration von Variablen95
2.2.5 Typsuffixe97
2.2.6 Zeichen und Zeichenketten98
2.2.7 object-Datentyp100
2.2.8 Konstanten deklarieren100
2.2.9 Nullable Types101
2.2.10 Typinferenz102
2.2.11 Gültigkeitsbereiche und Sichtbarkeit103
2.3 Konvertieren von Datentypen103
2.3.1 Implizite und explizite Konvertierung103
2.3.2 Welcher Datentyp passt zu welchem?105
2.3.3 Konvertieren von string106
2.3.4 Die Convert-Klasse108
2.3.5 Die Parse-Methode108
2.3.6 Boxing und Unboxing109
2.4 Operatoren110
2.4.1 Arithmetische Operatoren111
2.4.2 Zuweisungsoperatoren112
2.4.3 Logische Operatoren113
2.4.4 Rangfolge der Operatoren116
2.5 Kontrollstrukturen117
2.5.1 Verzweigungsbefehle117
2.5.2 Schleifenanweisungen120
2.6 Benutzerdefinierte Datentypen123
2.6.1 Enumerationen123
2.6.2 Strukturen124
2.7 Nutzerdefinierte Methoden126
2.7.1 Methoden mit Rückgabewert127
2.7.2 Methoden ohne Rückgabewert128
2.7.3 Parameterübergabe mit ref129
2.7.4 Parameterübergabe mit out130
2.7.5 Methodenüberladung131
2.7.6 Optionale Parameter132
2.7.7 Benannte Parameter133
2.8 Praxisbeispiele134
2.8.1 Vom PAP zur Konsolenanwendung134
2.8.2 Ein Konsolen- in ein Windows-Programm verwandeln136
2.8.3 Schleifenanweisungen verstehen138
2.8.4 Benutzerdefinierte Methoden überladen140
2.8.5 Anwendungen von Visual Basic nach C# portieren143
3 OOP-Konzepte150
3.1 Kleine Einführung in die OOP150
3.1.1 Historische Entwicklung150
3.1.2 Grundbegriffe der OOP152
3.1.3 Sichtbarkeit von Klassen und ihren Mitgliedern154
3.1.4 Allgemeiner Aufbau einer Klasse155
3.1.5 Das Erzeugen eines Objekts156
3.1.6 Einführungsbeispiel159
3.2 Eigenschaften164
3.2.1 Eigenschaften mit Zugriffsmethoden kapseln164
3.2.2 Berechnete Eigenschaften166
3.2.3 Lese-/Schreibschutz168
3.2.4 Property-Accessoren169
3.2.5 Statische Felder/Eigenschaften169
3.2.6 Einfache Eigenschaften automatisch implementieren172
3.3 Methoden173
3.3.1 Öffentliche und private Methoden173
3.3.2 Überladene Methoden174
3.3.3 Statische Methoden175
3.4 Ereignisse177
3.4.1 Ereignis hinzufügen177
3.4.2 Ereignis verwenden180
3.5 Arbeiten mit Konstruktor und Destruktor183
3.5.1 Konstruktor und Objektinitialisierer183
3.5.2 Destruktor und Garbage Collector186
3.5.3 Mit using den Lebenszyklus des Objekts kapseln189
3.5.4 Verzögerte Initialisierung189
3.6 Vererbung und Polymorphie190
3.6.1 Klassendiagramm190
3.6.2 Method-Overriding191
3.6.3 Klassen implementieren192
3.6.4 Implementieren der Objekte195
3.6.5 Ausblenden von Mitgliedern durch Vererbung197
3.6.6 Allgemeine Hinweise und Regeln zur Vererbung198
3.6.7 Polymorphes Verhalten200
3.6.8 Die Rolle von System.Object202
3.7 Spezielle Klassen203
3.7.1 Abstrakte Klassen203
3.7.2 Versiegelte Klassen205
3.7.3 Partielle Klassen205
3.7.4 Statische Klassen206
3.8 Schnittstellen (Interfaces)207
3.8.1 Definition einer Schnittstelle208
3.8.2 Implementieren einer Schnittstelle208
3.8.3 Abfragen, ob Schnittstelle vorhanden ist209
3.8.4 Mehrere Schnittstellen implementieren210
3.8.5 Schnittstellenprogrammierung ist ein weites Feld210
3.9 Praxisbeispiele210
3.9.1 Eigenschaften sinnvoll kapseln210
3.9.2 Eine statische Klasse anwenden213
3.9.3 Vom fetten zum schlanken Client215
3.9.4 Schnittstellenvererbung verstehen227
3.9.5 Rechner für komplexe Zahlen232
3.9.6 Formel-Rechner mit dem CodeDOM241
3.9.7 Berechnungsergebnisse als Diagramm darstellen249
3.9.8 Sortieren mit IComparable/IComparer253
3.9.9 Einen Objektbaum in generischen Listen abspeichern258
3.9.10 OOP beim Kartenspiel erlernen264
3.9.11 Eine Klasse zur Matrizenrechnung entwickeln268
4 Arrays, Strings, Funktionen274
4.1 Datenfelder (Arrays)274
4.1.1 Array deklarieren274
4.1.2 Array instanziieren275
4.1.3 Array initialisieren275
4.1.4 Zugriff auf Array-Elemente276
4.1.5 Zugriff mittels Schleife277
4.1.6 Mehrdimensionale Arrays278
4.1.7 Zuweisen von Arrays280
4.1.8 Arrays aus Strukturvariablen281
4.1.9 Löschen und Umdimensionieren von Arrays282
4.1.10 Eigenschaften und Methoden von Arrays283
4.1.11 Übergabe von Arrays285
4.2 Verarbeiten von Zeichenketten286
4.2.1 Zuweisen von Strings286
4.2.2 Eigenschaften und Methoden von String-Variablen287
4.2.3 Wichtige Methoden der String-Klasse289
4.2.4 Die StringBuilder-Klasse291
4.3 Reguläre Ausdrücke293
4.3.1 Wozu werden reguläre Ausdrücke verwendet?294
4.3.2 Eine kleine Einführung294
4.3.3 Wichtige Methoden/Eigenschaften der Klasse Regex295
4.3.4 Kompilierte reguläre Ausdrücke297
4.3.5 RegexOptions-Enumeration298
4.3.6 Metazeichen (Escape-Zeichen)298
4.3.7 Zeichenmengen (Character Sets)299
4.3.8 Quantifizierer301
4.3.9 Zero-Width Assertions302
4.3.10 Gruppen305
4.3.11 Text ersetzen306
4.3.12 Text splitten307
4.4 Datums- und Zeitberechnungen308
4.4.1 Die DateTime-Struktur308
4.4.2 Wichtige Eigenschaften von DateTime-Variablen309
4.4.3 Wichtige Methoden von DateTime-Variablen310
4.4.4 Wichtige Mitglieder der DateTime-Struktur310
4.4.5 Konvertieren von Datumstrings in DateTime-Werte311
4.4.6 Die TimeSpan-Struktur312
4.5 Mathematische Funktionen313
4.5.1 Überblick313
4.5.2 Zahlen runden314
4.5.3 Winkel umrechnen314
4.5.4 Potenz- und Wurzeloperationen314
4.5.5 Logarithmus und Exponentialfunktionen315
4.5.6 Zufallszahlen erzeugen315
4.6 Zahlen- und Datumsformatierungen316
4.6.1 Anwenden der ToString-Methode316
4.6.2 Anwenden der Format-Methode318
4.6.3 Stringinterpolation319
4.7 Praxisbeispiele320
4.7.1 Zeichenketten verarbeiten320
4.7.2 Zeichenketten mit StringBuilder addieren323
4.7.3 Reguläre Ausdrücke testen326
4.7.4 Methodenaufrufe mit Array-Parametern328
5 Weitere Sprachfeatures332
5.1 Namespaces (Namensräume)332
5.1.1 Ein kleiner Überblick332
5.1.2 Einen eigenen Namespace einrichten333
5.1.3 Die using-Anweisung334
5.1.4 Namespace Alias335
5.1.5 Namespace Alias Qualifizierer335
5.2 Operatorenüberladung336
5.2.1 Syntaxregeln336
5.2.2 Praktische Anwendung337
5.3 Collections (Auflistungen)338
5.3.1 Die Schnittstelle IEnumerable338
5.3.2 ArrayList340
5.3.3 Hashtable342
5.3.4 Indexer342
5.4 Generics344
5.4.1 Klassische Vorgehensweise345
5.4.2 Generics bieten Typsicherheit346
5.4.3 Generische Methoden347
5.4.4 Iteratoren348
5.5 Generische Collections349
5.5.1 List-Collection statt ArrayList349
5.5.2 Vorteile generischer Collections350
5.5.3 Constraints350
5.6 Das Prinzip der Delegates350
5.6.1 Delegates sind Methodenzeiger351
5.6.2 Einen Delegate-Typ deklarieren351
5.6.3 Ein Delegate-Objekt erzeugen351
5.6.4 Delegates vereinfacht instanziieren353
5.6.5 Anonyme Methoden354
5.6.6 Lambda-Ausdrücke355
5.6.7 Lambda-Ausdrücke in der Task Parallel Library357
5.7 Dynamische Programmierung359
5.7.1 Wozu dynamische Programmierung?359
5.7.2 Das Prinzip der dynamischen Programmierung359
5.7.3 Optionale Parameter sind hilfreich362
5.7.4 Kovarianz und Kontravarianz363
5.8 Weitere Datentypen363
5.8.1 BigInteger363
5.8.2 Complex366
5.8.3 Tuple<>366
5.8.4 SortedSet<>367
5.9 Praxisbeispiele368
5.9.1 ArrayList versus generische List368
5.9.2 Generische IEnumerable-Interfaces implementieren372
5.9.3 Delegates, anonyme Methoden, Lambda Expressions375
5.9.4 Dynamischer Zugriff auf COM Interop379
6 Einführung in LINQ382
6.1 LINQ-Grundlagen382
6.1.1 Die LINQ-Architektur382
6.1.2 Anonyme Typen383
6.1.3 Erweiterungsmethoden385
6.2 Abfragen mit LINQ to Objects386
6.2.1 Grundlegendes zur LINQ-Syntax386
6.2.2 Zwei alternative Schreibweisen von LINQ Abfragen387
6.2.3 Übersicht der wichtigsten Abfrage-Operatoren388
6.3 LINQ-Abfragen im Detail389
6.3.1 Die Projektionsoperatoren Select und SelectMany390
6.3.2 Der Restriktionsoperator Where391
6.3.3 Die Sortierungsoperatoren OrderBy und ThenBy392
6.3.4 Der Gruppierungsoperator GroupBy393
6.3.5 Verknüpfen mit Join396
6.3.6 Aggregat-Operatoren396
6.3.7 Verzögertes Ausführen von LINQ-Abfragen398
6.3.8 Konvertierungsmethoden399
6.3.9 Abfragen mit PLINQ399
6.4 Praxisbeispiele402
6.4.1 Die Syntax von LINQ-Abfragen verstehen402
6.4.2 Aggregat-Abfragen mit LINQ405
6.4.3 LINQ im Schnelldurchgang erlernen408
6.4.4 Strings mit LINQ abfragen und filtern410
6.4.5 Duplikate aus einer Liste oder einem Array entfernen411
6.4.6 Arrays mit LINQ initialisieren414
6.4.7 Arrays per LINQ mit Zufallszahlen füllen416
6.4.8 Einen String mit Wiederholmuster erzeugen418
6.4.9 Mit LINQ Zahlen und Strings sortieren419
6.4.10 Mit LINQ Collections von Objekten sortieren420
6.4.11 Ergebnisse von LINQ-Abfragen in ein Array kopieren423
Teil II: Technologien424
7 Zugriff auf das Dateisystem426
7.1 Grundlagen426
7.1.1 Klassen für den Zugriff auf das Dateisystem427
7.1.2 Statische versus Instanzen-Klasse427
7.2 Übersichten428
7.2.1 Methoden der Directory-Klasse428
7.2.2 Methoden eines DirectoryInfo-Objekts429
7.2.3 Eigenschaften eines DirectoryInfo-Objekts429
7.2.4 Methoden der File-Klasse429
7.2.5 Methoden eines FileInfo-Objekts430
7.2.6 Eigenschaften eines FileInfo-Objekts431
7.3 Operationen auf Verzeichnisebene431
7.3.1 Existenz eines Verzeichnisses/einer Datei feststellen431
7.3.2 Verzeichnisse erzeugen und löschen432
7.3.3 Verzeichnisse verschieben und umbenennen432
7.3.4 Aktuelles Verzeichnis bestimmen433
7.3.5 Unterverzeichnisse ermitteln433
7.3.6 Alle Laufwerke ermitteln433
7.3.7 Dateien kopieren und verschieben434
7.3.8 Dateien umbenennen435
7.3.9 Dateiattribute feststellen435
7.3.10 Verzeichnis einer Datei ermitteln437
7.3.11 Alle im Verzeichnis enthaltenen Dateien ermitteln437
7.3.12 Dateien und Unterverzeichnisse ermitteln437
7.4 Zugriffsberechtigungen438
7.4.1 ACL und ACE438
7.4.2 SetAccessControl-Methode439
7.4.3 Zugriffsrechte anzeigen439
7.5 Weitere wichtige Klassen440
7.5.1 Die Path-Klasse440
7.5.2 Die Klasse FileSystemWatcher441
7.6 Datei- und Verzeichnisdialoge442
7.6.1 OpenFileDialog und SaveFileDialog443
7.6.2 FolderBrowserDialog444
7.7 Praxisbeispiele445
7.7.1 Infos über Verzeichnisse und Dateien gewinnen445
7.7.2 Eine Verzeichnisstruktur in die TreeView einlesen449
7.7.3 Mit LINQ und RegEx Verzeichnisbäume durchsuchen451
8 Dateien lesen und schreiben456
8.1 Grundprinzip der Datenpersistenz456
8.1.1 Dateien und Streams456
8.1.2 Die wichtigsten Klassen457
8.1.3 Erzeugen eines Streams458
8.2 Dateiparameter458
8.2.1 FileAccess458
8.2.2 FileMode458
8.2.3 FileShare459
8.3 Textdateien459
8.3.1 Eine Textdatei beschreiben bzw. neu anlegen459
8.3.2 Eine Textdatei lesen461
8.4 Binärdateien462
8.4.1 Lese-/Schreibzugriff462
8.4.2 Die Methoden ReadAllBytes und WriteAllBytes463
8.4.3 Erzeugen von BinaryReader/BinaryWriter463
8.5 Sequenzielle Dateien464
8.5.1 Lesen und schreiben von strukturierten Daten464
8.5.2 Serialisieren von Objekten465
8.6 Dateien verschlüsseln und komprimieren466
8.6.1 Das Methodenpärchen Encrypt/Decrypt466
8.6.2 Verschlüsseln unter Windows Vista/7/8/10466
8.6.3 Verschlüsseln mit der CryptoStream-Klasse467
8.6.4 Dateien komprimieren468
8.7 Memory Mapped Files469
8.7.1 Grundprinzip469
8.7.2 Erzeugen eines MMF470
8.7.3 Erstellen eines Map View471
8.8 Praxisbeispiele472
8.8.1 Auf eine Textdatei zugreifen472
8.8.2 Einen Objektbaum persistent speichern475
8.8.3 Ein Memory Mapped File (MMF) verwenden482
8.8.4 Hex-Dezimal-Bytes-Konverter484
8.8.5 Eine Datei verschlüsseln488
8.8.6 Eine Datei komprimieren491
8.8.7 Echte ZIP-Dateien erstellen493
8.8.8 PDFs erstellen/exportieren495
8.8.9 Eine CSV-Datei erstellen498
8.8.10 Eine CSV-Datei mit LINQ lesen und auswerten501
8.8.11 Einen korrekten Dateinamen erzeugen504
9 Asynchrone Programmierung506
9.1 Übersicht506
9.1.1 Multitasking versus Multithreading507
9.1.2 Deadlocks508
9.1.3 Racing508
9.2 Programmieren mit Threads510
9.2.1 Einführungsbeispiel510
9.2.2 Wichtige Thread-Methoden511
9.2.3 Wichtige Thread-Eigenschaften513
9.2.4 Einsatz der ThreadPool-Klasse514
9.3 Sperrmechanismen516
9.3.1 Threading ohne lock516
9.3.2 Threading mit lock518
9.3.3 Die Monitor-Klasse520
9.3.4 Mutex523
9.3.5 Methoden für die parallele Ausführung sperren525
9.3.6 Semaphore525
9.4 Interaktion mit der Programmoberfläche527
9.4.1 Die Werkzeuge527
9.4.2 Einzelne Steuerelemente mit Invoke aktualisieren527
9.4.3 Mehrere Steuerelemente aktualisieren529
9.4.4 Ist ein Invoke-Aufruf nötig?529
9.4.5 Und was ist mit WPF?530
9.5 Timer-Threads531
9.6 Die BackgroundWorker-Komponente532
9.7 Asynchrone Programmier-Entwurfsmuster535
9.7.1 Kurzübersicht535
9.7.2 Polling536
9.7.3 Callback verwenden538
9.7.4 Callback mit Parameterübergabe verwenden539
9.7.5 Callback mit Zugriff auf die Programm-Oberfläche540
9.8 Asynchroner Aufruf beliebiger Methoden541
9.8.1 Die Beispielklasse541
9.8.2 Asynchroner Aufruf ohne Callback543
9.8.3 Asynchroner Aufruf mit Callback und Anzeigefunktion544
9.8.4 Aufruf mit Rückgabewerten (per Eigenschaft)545
9.8.5 Aufruf mit Rückgabewerten (per EndInvoke)545
9.9 Es geht auch einfacher – async und await546
9.9.1 Der Weg von Synchron zu Asynchron547
9.9.2 Achtung: Fehlerquellen!549
9.9.3 Eigene asynchrone Methoden entwickeln551
9.10 Praxisbeispiele553
9.10.1 Spieltrieb & Multithreading erleben553
9.10.2 Prozess- und Thread-Informationen gewinnen566
9.10.3 Ein externes Programm starten571
10 Die Task Parallel Library574
10.1 Überblick574
10.1.1 Parallel-Programmierung574
10.1.2 Möglichkeiten der TPL577
10.1.3 Der CLR-Threadpool577
10.2 Parallele Verarbeitung mit Parallel.Invoke578
10.2.1 Aufrufvarianten579
10.2.2 Einschränkungen580
10.3 Verwendung von Parallel.For580
10.3.1 Abbrechen der Verarbeitung582
10.3.2 Auswerten des Verarbeitungsstatus583
10.3.3 Und was ist mit anderen Iterator-Schrittweiten?584
10.4 Collections mit Parallel.ForEach verarbeiten584
10.5 Die Task-Klasse585
10.5.1 Einen Task erzeugen585
10.5.2 Den Task starten586
10.5.3 Datenübergabe an den Task588
10.5.4 Wie warte ich auf das Ende des Task?589
10.5.5 Tasks mit Rückgabewerten591
10.5.6 Die Verarbeitung abbrechen594
10.5.7 Fehlerbehandlung597
10.5.8 Weitere Eigenschaften598
10.6 Zugriff auf das User-Interface599
10.6.1 Task-Ende und Zugriff auf die Oberfläche600
10.6.2 Zugriff auf das UI aus dem Task heraus601
10.7 Weitere Datenstrukturen im Überblick603
10.7.1 Threadsichere Collections603
10.7.2 Primitive für die Threadsynchronisation604
10.8 Parallel LINQ (PLINQ)604
10.9 Praxisbeispiel: Spieltrieb – Version 2605
10.9.1 Aufgabenstellung605
10.9.2 Global-Klasse605
10.9.3 Controller-Klasse607
10.9.4 LKW-Klasse608
10.9.5 Schiff-Klasse610
10.9.6 Oberfläche612
11 Fehlersuche und Behandlung614
11.1 Der Debugger614
11.1.1 Allgemeine Beschreibung614
11.1.2 Die wichtigsten Fenster615
11.1.3 Debugging-Optionen618
11.1.4 Praktisches Debugging am Beispiel620
11.2 Arbeiten mit Debug und Trace624
11.2.1 Wichtige Methoden von Debug und Trace624
11.2.2 Besonderheiten der Trace-Klasse628
11.2.3 TraceListener-Objekte628
11.3 Caller Information631
11.3.1 Attribute631
11.3.2 Anwendung631
11.4 Fehlerbehandlung632
11.4.1 Anweisungen zur Fehlerbehandlung632
11.4.2 try-catch633
11.4.3 try-finally638
11.4.4 Das Standardverhalten bei Ausnahmen festlegen640
11.4.5 Die Exception-Klasse641
11.4.6 Fehler/Ausnahmen auslösen642
11.4.7 Eigene Fehlerklassen642
11.4.8 Exceptionhandling zur Entwurfszeit644
11.4.9 Code Contracts645
12 XML in Theorie und Praxis646
12.1 XML – etwas Theorie646
12.1.1 Übersicht646
12.1.2 Der XML-Grundaufbau649
12.1.3 Wohlgeformte Dokumente650
12.1.4 Processing Instructions (PI)653
12.1.5 Elemente und Attribute653
12.1.6 Verwendbare Zeichensätze655
12.2 XSD-Schemas657
12.2.1 XSD-Schemas und ADO.NET657
12.2.2 XML-Schemas in Visual Studio analysieren659
12.2.3 XML-Datei mit XSD-Schema erzeugen662
12.2.4 XSD-Schema aus einer XML-Datei erzeugen663
12.3 Verwendung des DOM unter .NET664
12.3.1 Übersicht664
12.3.2 DOM-Integration in C#665
12.3.3 Laden von Dokumenten665
12.3.4 Erzeugen von XML-Dokumenten666
12.3.5 Auslesen von XML-Dateien668
12.3.6 Direktzugriff auf einzelne Elemente670
12.3.7 Einfügen von Informationen670
12.3.8 Suchen in den Baumzweigen673
12.4 XML-Verarbeitung mit LINQ to XML676
12.4.1 Die LINQ to XML-API676
12.4.2 Neue XML-Dokumente erzeugen678
12.4.3 Laden und Sichern von XML-Dokumenten680
12.4.4 Navigieren in XML-Daten681
12.4.5 Auswählen und Filtern683
12.4.6 Manipulieren der XML-Daten683
12.4.7 XML-Dokumente transformieren685
12.5 Weitere Möglichkeiten der XML-Verarbeitung688
12.5.1 Die relationale Sicht mit XmlDataDocument688
12.5.2 XML-Daten aus Objektstrukturen erzeugen691
12.5.3 Schnelles Suchen in XML-Daten mit XPathNavigator694
12.5.4 Schnelles Auslesen von XML-Daten mit XmlReader697
12.5.5 Erzeugen von XML-Daten mit XmlWriter699
12.5.6 XML transformieren mit XSLT701
12.6 Praxisbeispiele703
12.6.1 Mit dem DOM in XML-Dokumenten navigieren703
12.6.2 XML-Daten in eine TreeView einlesen706
12.6.3 Ein DataSet in einen XML-String konvertieren710
12.6.4 Ein DataSet in einer XML-Datei speichern714
12.6.5 In Dokumenten mit dem XPathNavigator navigieren717
13 Einführung in ADO.NET722
13.1 Eine kleine Übersicht722
13.1.1 Die ADO.NET-Klassenhierarchie722
13.1.2 Die Klassen der Datenprovider723
13.1.3 Das Zusammenspiel der ADO.NET-Klassen726
13.2 Das Connection-Objekt727
13.2.1 Allgemeiner Aufbau727
13.2.2 OleDbConnection727
13.2.3 Schließen einer Verbindung729
13.2.4 Eigenschaften des Connection-Objekts729
13.2.5 Methoden des Connection-Objekts731
13.2.6 Der ConnectionStringBuilder732
13.3 Das Command-Objekt732
13.3.1 Erzeugen und Anwenden eines Command-Objekts733
13.3.2 Erzeugen mittels CreateCommand-Methode733
13.3.3 Eigenschaften des Command-Objekts734
13.3.4 Methoden des Command-Objekts736
13.3.5 Freigabe von Connection- und Command-Objekten737
13.4 Parameter-Objekte738
13.4.1 Erzeugen und Anwenden eines Parameter-Objekts738
13.4.2 Eigenschaften des Parameter-Objekts739
13.5 Das CommandBuilder-Objekt740
13.5.1 Erzeugen740
13.5.2 Anwenden740
13.6 Das DataReader-Objekt741
13.6.1 DataReader erzeugen741
13.6.2 Daten lesen742
13.6.3 Eigenschaften des DataReaders743
13.6.4 Methoden des DataReaders743
13.7 Das DataAdapter-Objekt744
13.7.1 DataAdapter erzeugen744
13.7.2 Command-Eigenschaften745
13.7.3 Fill-Methode746
13.7.4 Update-Methode747
13.8 Praxisbeispiele748
13.8.1 Wichtige ADO.NET-Objekte im Einsatz748
13.8.2 Eine Aktionsabfrage ausführen749
13.8.3 Eine Auswahlabfrage aufrufen752
13.8.4 Die Datenbank aktualisieren754
14 Das DataSet758
14.1 Grundlegende Features des DataSets758
14.1.1 Die Objekthierarchie759
14.1.2 Die wichtigsten Klassen759
14.1.3 Erzeugen eines DataSets760
14.2 Das DataTable-Objekt761
14.2.1 DataTable erzeugen762
14.2.2 Spalten hinzufügen762
14.2.3 Zeilen zur DataTable hinzufügen763
14.2.4 Auf den Inhalt einer DataTable zugreifen764
14.3 Die DataView766
14.3.1 Erzeugen einer DataView766
14.3.2 Sortieren und Filtern von Datensätzen766
14.3.3 Suchen von Datensätzen767
14.4 Typisierte DataSets767
14.4.1 Ein typisiertes DataSet erzeugen768
14.4.2 Das Konzept der Datenquellen769
14.4.3 Typisierte DataSets und TableAdapter770
14.5 Die Qual der Wahl771
14.5.1 DataReader – der schnelle Lesezugriff772
14.5.2 DataSet – die Datenbank im Hauptspeicher772
14.5.3 Objektrelationales Mapping – die Zukunft?773
14.6 Praxisbeispiele774
14.6.1 In der DataView sortieren und filtern774
14.6.2 Suche nach Datensätzen776
14.6.3 Ein DataSet in einen XML-String serialisieren777
14.6.4 Untypisiertes in ein typisiertes DataSet konvertieren782
14.6.5 Eine LINQ to SQL-Abfrage ausführen787
15 Verteilen von Anwendungen792
15.1 ClickOnce-Deployment793
15.1.1 Übersicht/Einschränkungen793
15.1.2 Die Vorgehensweise794
15.1.3 Ort der Veröffentlichung794
15.1.4 Anwendungsdateien795
15.1.5 Erforderliche Komponenten795
15.1.6 Aktualisierungen796
15.1.7 Veröffentlichungsoptionen797
15.1.8 Veröffentlichen798
15.1.9 Verzeichnisstruktur798
15.1.10 Der Webpublishing-Assistent800
15.1.11 Neue Versionen erstellen801
15.2 InstallShield801
15.2.1 Installation801
15.2.2 Aktivieren802
15.2.3 Ein neues Setup-Projekt802
15.2.4 Finaler Test810
15.3 Hilfedateien programmieren810
15.3.1 Der HTML Help Workshop811
15.3.2 Bedienung am Beispiel812
15.3.3 Hilfedateien in die Visual C#-Anwendung einbinden814
15.3.4 Eine alternative Hilfe-IDE verwenden818
16 Weitere Techniken820
16.1 Zugriff auf die Zwischenablage820
16.1.1 Das Clipboard-Objekt820
16.1.2 Zwischenablage-Funktionen für Textboxen822
16.2 Arbeiten mit der Registry822
16.2.1 Allgemeines823
16.2.2 Registry-Unterstützung in .NET825
16.3 .NET-Reflection826
16.3.1 Übersicht826
16.3.2 Assembly laden826
16.3.3 Mittels GetType und Type Informationen sammeln827
16.3.4 Dynamisches Laden von Assemblies829
16.4 Praxisbeispiele832
16.4.1 Zugriff auf die Registry832
16.4.2 Dateiverknüpfungen erzeugen834
16.4.3 Betrachter für Manifestressourcen836
16.4.4 Die Zwischenablage überwachen und anzeigen839
16.4.5 Die WIA-Library kennenlernen842
16.4.6 Auf eine Webcam zugreifen854
16.4.7 Auf den Scanner zugreifen856
16.4.8 OpenOffice.org Writer per OLE steuern861
16.4.9 Nutzer und Gruppen des aktuellen Systems ermitteln869
16.4.10 Testen, ob Nutzer in einer Gruppe enthalten ist870
16.4.11 Testen, ob der Nutzer ein Administrator ist872
16.4.12 Die IP-Adressen des Computers bestimmen873
16.4.13 Die IP-Adresse über den Hostnamen bestimmen874
16.4.14 Diverse Systeminformationen ermitteln875
16.4.15 Environment Variablen auslesen879
16.4.16 Alles über den Bildschirm erfahren883
16.4.17 Sound per MCI aufnehmen884
16.4.18 Mikrofonpegel anzeigen888
16.4.19 Pegeldiagramm aufzeichnen889
16.4.20 Sound-und Video-Dateien per MCI abspielen893
17 Konsolenanwendungen902
17.1 Grundaufbau/Konzepte902
17.1.1 Unser Hauptprogramm – Program.cs903
17.1.2 Rückgabe eines Fehlerstatus904
17.1.3 Parameterübergabe905
17.1.4 Zugriff auf die Umgebungsvariablen906
17.2 Die Kommandozentrale: System.Console907
17.2.1 Eigenschaften908
17.2.2 Methoden/Ereignisse908
17.2.3 Textausgaben909
17.2.4 Farbangaben910
17.2.5 Tastaturabfragen911
17.2.6 Arbeiten mit Streamdaten912
17.3 Praxisbeispiel914
17.3.1 Farbige Konsolenanwendung914
17.3.2 Weitere Hinweise und Beispiele916
Teil III: Windows Apps918
18 Erste Schritte920
18.1 Grundkonzepte und Begriffe920
18.1.1 Windows Runtime (WinRT)920
18.1.2 Windows Apps921
18.1.3 Fast and Fluid922
18.1.4 Process Sandboxing und Contracts923
18.1.5 .NET WinRT-Profil925
18.1.6 Language Projection925
18.1.7 Vollbildmodus – War da was?927
18.1.8 Windows Store927
18.1.9 Zielplattformen928
18.2 Entwurfsumgebung929
18.2.1 Betriebssystem929
18.2.2 Windows-Simulator929
18.2.3 Remote-Debugging932
18.3 Ein (kleines) Einstiegsbeispiel933
18.3.1 Aufgabenstellung933
18.3.2 Quellcode933
18.3.3 Oberflächenentwurf936
18.3.4 Installation und Test938
18.3.5 Touchscreen940
18.3.6 Fazit940
18.4 Weitere Details zu WinRT942
18.4.1 Wo ist WinRT einzuordnen?943
18.4.2 Die WinRT-API944
18.4.3 Wichtige WinRT-Namespaces946
18.4.4 Der Unterbau947
18.5 Praxisbeispiel949
18.5.1 WinRT in Desktop-Applikationen nutzen949
19 App-Oberflächen entwerfen954
19.1 Grundkonzepte954
19.1.1 XAML (oder HTML 5) für die Oberfläche955
19.1.2 Die Page, der Frame und das Window956
19.1.3 Das Befehlsdesign958
19.1.4 Die Navigationsdesigns960
19.1.5 Achtung: Fingereingabe!961
19.1.6 Verwendung von Schriftarten961
19.2 Seitenauswahl und -navigation962
19.2.1 Die Startseite festlegen962
19.2.2 Navigation und Parameterübergabe962
19.2.3 Den Seitenstatus erhalten963
19.3 App-Darstellung964
19.3.1 Vollbild quer und hochkant964
19.3.2 Was ist mit Andocken und Füllmodus?965
19.3.3 Reagieren auf die Änderung965
19.4 Skalieren von Apps967
19.5 Praxisbeispiele970
19.5.1 Seitennavigation und Parameterübergabe970
19.5.2 Die Fensterkopfzeile anpassen972
20 Die wichtigsten Controls974
20.1 Einfache WinRT-Controls974
20.1.1 TextBlock, RichTextBlock974
20.1.2 Button, HyperlinkButton, RepeatButton977
20.1.3 CheckBox, RadioButton, ToggleButton, ToggleSwitch979
20.1.4 TextBox, PasswordBox, RichEditBox980
20.1.5 Image984
20.1.6 ScrollBar, Slider, ProgressBar, ProgressRing986
20.1.7 Border, Ellipse, Rectangle987
20.2 Layout-Controls988
20.2.1 Canvas988
20.2.2 StackPanel989
20.2.3 ScrollViewer989
20.2.4 Grid990
20.2.5 VariableSizedWrapGrid991
20.2.6 SplitView992
20.2.7 Pivot996
20.2.8 RelativPanel998
20.3 Listendarstellungen1000
20.3.1 ComboBox, ListBox1000
20.3.2 ListView1004
20.3.3 GridView1005
20.3.4 FlipView1007
20.4 Sonstige Controls1009
20.4.1 CaptureElement1009
20.4.2 MediaElement1011
20.4.3 Frame1012
20.4.4 WebView1012
20.4.5 ToolTip1013
20.4.6 CalendarDatePicker1015
20.4.7 DatePicker/TimePicker1016
20.5 Praxisbeispiele1016
20.5.1 Einen StringFormat-Konverter implementieren1016
20.5.2 Besonderheiten der TextBox kennen lernen1018
20.5.3 Daten in der GridView gruppieren1022
20.5.4 Das SemanticZoom-Control verwenden1026
20.5.5 Die CollectionViewSource verwenden1031
20.5.6 Zusammenspiel ListBox/AppBar1034
21 Apps im Detail1038
21.1 Ein Windows App-Projekt im Detail1038
21.1.1 Contracts und Extensions1039
21.1.2 AssemblyInfo.cs1039
21.1.3 Verweise1041
21.1.4 App.xaml und App.xaml.cs1041
21.1.5 Package.appxmanifest1042
21.1.6 Application1_TemporaryKey.pfx1047
21.1.7 MainPage.xaml & MainPage.xaml.cs1047
21.1.8 Assets/Symbole1048
21.1.9 Nach dem Kompilieren1048
21.2 Der Lebenszyklus einer Windows App1048
21.2.1 Möglichkeiten der Aktivierung von Apps1050
21.2.2 Der Splash Screen1052
21.2.3 Suspending1052
21.2.4 Resuming1054
21.2.5 Beenden von Apps1054
21.2.6 Die Ausnahmen von der Regel1055
21.2.7 Debuggen1055
21.3 Daten speichern und laden1059
21.3.1 Grundsätzliche Überlegungen1059
21.3.2 Worauf und wie kann ich zugreifen?1059
21.3.3 Das AppData-Verzeichnis1060
21.3.4 Das Anwendungs-Installationsverzeichnis1062
21.3.5 Das Downloads-Verzeichnis1063
21.3.6 Sonstige Verzeichnisse1064
21.3.7 Anwendungsdaten lokal sichern und laden1064
21.3.8 Daten in der Cloud ablegen/laden (Roaming)1066
21.3.9 Aufräumen1068
21.3.10 Sensible Informationen speichern1069
21.4 Praxisbeispiele1070
21.4.1 Die Auto-Play-Funktion unterstützen1070
21.4.2 Einen zusätzlichen Splash Screen einsetzen1074
21.4.3 Eine Dateiverknüpfung erstellen1076
22 App-Techniken1082
22.1 Arbeiten mit Dateien/Verzeichnissen1082
22.1.1 Verzeichnisinformationen auflisten1082
22.1.2 Unterverzeichnisse auflisten1085
22.1.3 Verzeichnisse erstellen/löschen1086
22.1.4 Dateien auflisten1088
22.1.5 Dateien erstellen/schreiben/lesen1090
22.1.6 Dateien kopieren/umbenennen/löschen1094
22.1.7 Verwenden der Dateipicker1095
22.1.8 StorageFile-/StorageFolder-Objekte speichern1100
22.1.9 Verwenden der Most Recently Used-Liste1102
22.2 Datenaustausch zwischen Apps/Programmen1103
22.2.1 Zwischenablage1103
22.2.2 Teilen von Inhalten1110
22.2.3 Eine App als Freigabeziel verwenden1114
22.2.4 Zugriff auf die Kontaktliste1115
22.3 Spezielle Oberflächenelemente1116
22.3.1 MessageDialog1117
22.3.2 ContentDialog1120
22.3.3 Popup-Benachrichtigungen1122
22.3.4 PopUp/Flyouts1130
22.3.5 Das PopupMenu einsetzen1133
22.3.6 Eine AppBar/CommandBar verwenden1134
22.4 Datenbanken und Windows Store Apps1138
22.4.1 Der Retter in der Not: SQLite!1138
22.4.2 Verwendung/Kurzüberblick1139
22.4.3 Installation1140
22.4.4 Wie kommen wir zu einer neuen Datenbank?1141
22.4.5 Wie werden die Daten manipuliert?1145
22.5 Vertrieb der App1147
22.5.1 Verpacken der App1147
22.5.2 App-Installation per Skript1149
22.6 Ein Blick auf die App-Schwachstellen1150
22.6.1 Quellcodes im Installationsverzeichnis1150
22.6.2 Zugriff auf den App-Datenordner1152
22.7 Praxisbeispiele1153
22.7.1 Ein Verzeichnis auf Änderungen überwachen1153
22.7.2 Eine App als Freigabeziel verwenden1155
22.7.3 ToastNotifications einfach erzeugen1160
Anhang1166
A Glossar1168
B Wichtige Dateiextensions1174
Index1176
Download-Kapitel30

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Menschen. Inklusiv leben

Menschen. Inklusiv leben

MENSCHEN. das magazin informiert über Themen, die das Zusammenleben von Menschen in der Gesellschaft bestimmen -und dies konsequent aus Perspektive der Betroffenen. Die Menschen, um die es geht, ...

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 ...

Burgen und Schlösser

Burgen und Schlösser

aktuelle Berichte zum Thema Burgen, Schlösser, Wehrbauten, Forschungsergebnisse zur Bau- und Kunstgeschichte, Denkmalpflege und Denkmalschutz Seit ihrer Gründung 1899 gibt die Deutsche ...

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 ...

filmdienst#de

filmdienst#de

filmdienst.de führt die Tradition der 1947 gegründeten Zeitschrift FILMDIENST im digitalen Zeitalter fort. Wir begleiten seit 1947 Filme in allen ihren Ausprägungen und Erscheinungsformen.  ...