Sie sind hier
E-Book

Visual Basic 2015 - Grundlagen, Profiwissen und Rezepte

AutorThomas Gewinnus, Walter Doberenz
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2015
Seitenanzahl1195 Seiten
ISBN9783446446052
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis49,99 EUR
VISUAL BASIC 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 Visual Basic-/.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 Basic 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 Basic 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 VB-Programm54
1.2.1 Vorbereitungen54
1.2.2 Programm 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-Dialog59
1.3.2 Objekt- und ereignisorientierte Programmierung59
1.3.3 Windows-Programmierung unter Visual Studio 201560
1.4 Die Entwicklungsumgebung Visual Studio 201562
1.4.1 Neues Projekt62
1.4.2 Die wichtigsten Fenster63
1.5 Microsofts .NET-Technologie65
1.5.1 Zur Geschichte von .NET65
1.5.2 .NET-Features und Begriffe67
1.6 Wichtige Neuigkeiten in Visual Studio 201575
1.6.1 Entwicklungsumgebung75
1.6.2 Neue VB-Sprachfeatures75
1.6.3 Code-Editor75
1.6.4 NET Framework 4.676
1.7 Praxisbeispiele76
1.7.1 Windows-Anwendung für Einsteiger76
1.7.2 Windows-Anwendung für fortgeschrittene Einsteiger80
2 Einführung in Visual Basic88
2.1 Grundbegriffe88
2.1.1 Anweisungen88
2.1.2 Bezeichner89
2.1.3 Kommentare90
2.1.4 Zeilenumbruch91
2.2 Datentypen, Variablen und Konstanten93
2.2.1 Fundamentale Typen93
2.2.2 Wertetypen versus Verweistypen94
2.2.3 Benennung von Variablen94
2.2.4 Deklaration von Variablen95
2.2.5 Typinferenz98
2.2.6 Konstanten deklarieren98
2.2.7 Gültigkeitsbereiche von Deklarationen99
2.2.8 Lokale Variablen mit Dim99
2.2.9 Lokale Variablen mit Static100
2.2.10 Private globale Variablen100
2.2.11 Public Variablen101
2.3 Wichtige Datentypen im Überblick101
2.3.1 Byte, Short, Integer, Long101
2.3.2 Single, Double und Decimal102
2.3.3 Char und String102
2.3.4 Date103
2.3.5 Boolean104
2.3.6 Object104
2.4 Konvertieren von Datentypen105
2.4.1 Implizite und explizite Konvertierung105
2.4.2 Welcher Datentyp passt zu welchem?106
2.4.3 Konvertierungsfunktionen107
2.4.4 CType-Funktion108
2.4.5 Konvertieren von Strings108
2.4.6 Die Convert-Klasse110
2.4.7 Die Parse-Methode110
2.4.8 Boxing und Unboxing111
2.4.9 TryCast-Operator112
2.4.10 Nullable Types112
2.5 Operatoren113
2.5.1 Arithmetische Operatoren113
2.5.2 Zuweisungsoperatoren114
2.5.3 Logische Operatoren115
2.5.4 Vergleichsoperatoren116
2.5.5 Rangfolge der Operatoren116
2.6 Kontrollstrukturen117
2.6.1 Verzweigungsbefehle117
2.6.2 Schleifenanweisungen120
2.7 Benutzerdefinierte Datentypen121
2.7.1 Enumerationen121
2.7.2 Strukturen122
2.8 Nutzerdefinierte Funktionen/Prozeduren125
2.8.1 Deklaration und Syntax125
2.8.2 Parameterübergabe allgemein127
2.8.3 Übergabe mit ByVal und ByRef128
2.8.4 Optionale Parameter129
2.8.5 Überladene Funktionen/Prozeduren129
2.9 Praxisbeispiele130
2.9.1 Vom PAP zum Konsolen-Programm130
2.9.2 Vom Konsolen- zum Windows-Programm132
2.9.3 Schleifenanweisungen kennen lernen134
2.9.4 Methoden überladen137
2.9.5 Eine Iterationsschleife verstehen139
2.9.6 Anwendungen von C# nach Visual Basic portieren142
3 OOP-Konzepte150
3.1 Strukturierter versus objektorientierter Entwurf150
3.1.1 Was bedeutet strukturierte Programmierung?150
3.1.2 Was heißt objektorientierte Programmierung?151
3.2 Grundbegriffe der OOP152
3.2.1 Objekt, Klasse, Instanz152
3.2.2 Kapselung und Wiederverwendbarkeit153
3.2.3 Vererbung und Polymorphie153
3.2.4 Sichtbarkeit von Klassen und ihren Mitgliedern154
3.2.5 Allgemeiner Aufbau einer Klasse155
3.3 Ein Objekt erzeugen156
3.3.1 Referenzieren und Instanziieren157
3.3.2 Klassische Initialisierung158
3.3.3 Objekt-Initialisierer158
3.3.4 Arbeiten mit dem Objekt158
3.3.5 Zerstören des Objekts159
3.4 OOP-Einführungsbeispiel159
3.4.1 Vorbereitungen159
3.4.2 Klasse definieren160
3.4.3 Objekt erzeugen und initialisieren161
3.4.4 Objekt verwenden161
3.4.5 Unterstützung durch die IntelliSense161
3.4.6 Objekt testen162
3.4.7 Warum unsere Klasse noch nicht optimal ist163
3.5 Eigenschaften163
3.5.1 Eigenschaften kapseln163
3.5.2 Eigenschaften mit Zugriffsmethoden kapseln166
3.5.3 Lese-/Schreibschutz für Eigenschaften167
3.5.4 Statische Eigenschaften168
3.5.5 Selbst implementierende Eigenschaften169
3.6 Methoden170
3.6.1 Öffentliche und private Methoden170
3.6.2 Überladene Methoden171
3.6.3 Statische Methoden172
3.7 Ereignisse173
3.7.1 Ereignise deklarieren173
3.7.2 Ereignis auslösen174
3.7.3 Ereignis auswerten174
3.7.4 Benutzerdefinierte Ereignisse (Custom Events)176
3.8 Arbeiten mit Konstruktor und Destruktor179
3.8.1 Der Konstruktor erzeugt das Objekt179
3.8.2 Bequemer geht’s mit einem Objekt-Initialisierer181
3.8.3 Destruktor und Garbage Collector räumen auf182
3.8.4 Mit Using den Lebenszyklus des Objekts kapseln184
3.9 Vererbung und Polymorphie185
3.9.1 Vererbungsbeziehungen im Klassendiagramm185
3.9.2 Überschreiben von Methoden (Method-Overriding)187
3.9.3 Klassen implementieren187
3.9.4 Objekte implementieren192
3.9.5 Ausblenden von Mitgliedern durch Vererbung193
3.9.6 Allgemeine Hinweise und Regeln zur Vererbung195
3.9.7 Polymorphe Methoden196
3.10 Besondere Klassen und Features198
3.10.1 Abstrakte Klassen198
3.10.2 Abstrakte Methoden199
3.10.3 Versiegelte Klassen199
3.10.4 Partielle Klassen200
3.10.5 Die Basisklasse System.Object202
3.10.6 Property-Accessors203
3.10.7 Nullbedingter Operator203
3.11 Schnittstellen (Interfaces)204
3.11.1 Definition einer Schnittstelle204
3.11.2 Implementieren einer Schnittstelle205
3.11.3 Abfragen, ob eine Schnittstelle vorhanden ist206
3.11.4 Mehrere Schnittstellen implementieren206
3.11.5 Schnittstellenprogrammierung ist ein weites Feld206
3.12 Praxisbeispiele207
3.12.1 Eigenschaften sinnvoll kapseln207
3.12.2 Eine statische Klasse anwenden210
3.12.3 Vom fetten zum dünnen Client212
3.12.4 Schnittstellenvererbung verstehen221
3.12.5 Aggregation und Vererbung gegenüberstellen225
3.12.6 Eine Klasse zur Matrizenrechnung entwickeln231
3.12.7 Rechner für komplexe Zahlen237
3.12.8 Formel-Rechner mit dem CodeDOM245
3.12.9 Einen Funktionsverlauf grafisch darstellen250
3.12.10 Sortieren mit IComparable/IComparer254
3.12.11 Objektbäume in generischen Listen abspeichern259
3.12.12 OOP beim Kartenspiel erlernen265
4 Arrays, Strings, Funktionen270
4.1 Datenfelder (Arrays)270
4.1.1 Ein Array deklarieren270
4.1.2 Zugriff auf Array-Elemente271
4.1.3 Oberen Index ermitteln271
4.1.4 Explizite Arraygrenzen271
4.1.5 Arrays erzeugen und initialisieren271
4.1.6 Zugriff mittels Schleife272
4.1.7 Mehrdimensionale Arrays273
4.1.8 Dynamische Arrays274
4.1.9 Zuweisen von Arrays275
4.1.10 Arrays aus Strukturvariablen276
4.1.11 Löschen von Arrays277
4.1.12 Eigenschaften und Methoden von Arrays277
4.1.13 Übergabe von Arrays280
4.2 Zeichenkettenverarbeitung281
4.2.1 Strings zuweisen281
4.2.2 Eigenschaften und Methoden eines Strings281
4.2.3 Kopieren eines Strings in ein Char-Array284
4.2.4 Wichtige (statische) Methoden der String-Klasse284
4.2.5 Die StringBuilder-Klasse286
4.3 Reguläre Ausdrücke289
4.3.1 Wozu braucht man reguläre Ausdrücke?289
4.3.2 Eine kleine Einführung290
4.3.3 Wichtige Methoden der Klasse Regex290
4.3.4 Kompilierte reguläre Ausdrücke292
4.3.5 RegexOptions-Enumeration293
4.3.6 Metazeichen (Escape-Zeichen)294
4.3.7 Zeichenmengen (Character Sets)295
4.3.8 Quantifizierer296
4.3.9 Zero-Width Assertions297
4.3.10 Gruppen301
4.3.11 Text ersetzen301
4.3.12 Text splitten302
4.4 Datums- und Zeitberechnungen303
4.4.1 Grundlegendes303
4.4.2 Wichtige Eigenschaften von DateTime-Variablen304
4.4.3 Wichtige Methoden von DateTime-Variablen305
4.4.4 Wichtige Mitglieder der DateTime-Struktur306
4.4.5 Konvertieren von Datumstrings in DateTime-Werte307
4.4.6 Die TimeSpan-Struktur307
4.5 Vordefinierten Funktionen309
4.5.1 Mathematik309
4.5.2 Datums- und Zeitfunktionen311
4.6 Zahlen formatieren313
4.6.1 Die ToString-Methode314
4.6.2 Die Format-Methode315
4.6.3 Stringinterpolation317
4.7 Praxisbeispiele317
4.7.1 Zeichenketten verarbeiten317
4.7.2 Zeichenketten mittels StringBuilder addieren320
4.7.3 Reguläre Ausdrücke testen324
4.7.4 Fehler bei mathematischen Operationen behandeln326
4.7.5 Methodenaufrufe mit Array-Parametern329
4.7.6 String in Array kopieren und umgekehrt332
4.7.7 Ein Byte-Array in einen String konvertieren334
4.7.8 Strukturvariablen in Arrays einsetzen336
5 Weitere Sprachfeatures340
5.1 Namespaces (Namensräume)340
5.1.1 Ein kleiner Überblick340
5.1.2 Die Imports-Anweisung342
5.1.3 Namespace-Alias342
5.1.4 Namespaces in Projekteigenschaften343
5.1.5 Namespace Alias Qualifizierer344
5.1.6 Eigene Namespaces einrichten344
5.2 Überladen von Operatoren345
5.2.1 Syntaxregeln345
5.2.2 Praktische Anwendung346
5.2.3 Konvertierungsoperatoren überladen347
5.3 Auflistungen (Collections)348
5.3.1 Beziehungen zwischen den Schnittstellen348
5.3.2 IEnumerable349
5.3.3 ICollection350
5.3.4 IList350
5.3.5 Iteratoren350
5.3.6 Die ArrayList-Collection351
5.3.7 Die Hashtable352
5.4 Generische Datentypen353
5.4.1 Wie es früher einmal war353
5.4.2 Typsicherheit durch Generics355
5.4.3 List-Collection ersetzt ArrayList356
5.4.4 Über die Vorzüge generischer Collections357
5.4.5 Typbeschränkungen durch Constraints358
5.4.6 Collection-Initialisierer359
5.4.7 Generische Methoden359
5.5 Delegates360
5.5.1 Delegates sind Methodenzeiger360
5.5.2 Delegate-Typ definieren361
5.5.3 Delegate-Objekt erzeugen362
5.5.4 Delegates vereinfacht instanziieren362
5.5.5 Relaxed Delegates363
5.5.6 Anonyme Methoden363
5.5.7 Lambda-Ausdrücke364
5.5.8 Lambda-Ausdrücke in der Task Parallel Library365
5.6 Dynamische Programmierung367
5.6.1 Wozu dynamische Programmierung?367
5.6.2 Das Prinzip der dynamischen Programmierung367
5.6.3 Kovarianz und Kontravarianz371
5.7 Weitere Datentypen372
5.7.1 BigInteger372
5.7.2 Complex374
5.7.3 Tuple(Of T)375
5.7.4 SortedSet(Of T)375
5.8 Praxisbeispiele377
5.8.1 ArrayList versus generische List377
5.8.2 Delegates und Lambda Expressions380
5.8.3 Mit dynamischem Objekt eine Datei durchsuchen383
6 Einführung in LINQ388
6.1 LINQ-Grundlagen388
6.1.1 Die LINQ-Architektur388
6.1.2 LINQ-Implementierungen389
6.1.3 Anonyme Typen389
6.1.4 Erweiterungsmethoden391
6.2 Abfragen mit LINQ to Objects392
6.2.1 Grundlegendes zur LINQ-Syntax392
6.2.2 Zwei alternative Schreibweisen von LINQ-Abfragen393
6.2.3 Übersicht der wichtigsten Abfrage-Operatoren395
6.3 LINQ-Abfragen im Detail396
6.3.1 Die Projektionsoperatoren Select und SelectMany397
6.3.2 Der Restriktionsoperator Where399
6.3.3 Die Sortierungsoperatoren OrderBy und ThenBy399
6.3.4 Der Gruppierungsoperator GroupBy401
6.3.5 Verknüpfen mit Join402
6.3.6 Aggregat-Operatoren403
6.3.7 Verzögertes Ausführen von LINQ-Abfragen405
6.3.8 Konvertierungsmethoden406
6.3.9 Abfragen mit PLINQ406
6.4 Praxisbeispiele409
6.4.1 Die Syntax von LINQ-Abfragen verstehen409
6.4.2 Aggregat-Abfragen mit LINQ412
6.4.3 LINQ im Schnelldurchgang erlernen414
6.4.4 Strings mit LINQ abfragen und filtern417
6.4.5 Duplikate aus einer Liste oder einem Array entfernen418
6.4.6 Arrays mit LINQ initialisieren421
6.4.7 Arrays per LINQ mit Zufallszahlen füllen423
6.4.8 Einen String mit Wiederholmuster erzeugen424
6.4.9 Mit LINQ Zahlen und Strings sortieren426
6.4.10 Mit LINQ Collections von Objekten sortieren427
6.4.11 Ergebnisse von LINQ-Abfragen in ein Array kopieren429
Teil II: Technologien430
7 Zugriff auf das Dateisystem432
7.1 Grundlagen432
7.1.1 Klassen für Verzeichnis- und Dateioperationen433
7.1.2 Statische versus Instanzen-Klasse433
7.2 Übersichten434
7.2.1 Methoden der Directory-Klasse434
7.2.2 Methoden eines DirectoryInfo-Objekts435
7.2.3 Eigenschaften eines DirectoryInfo-Objekts435
7.2.4 Methoden der File-Klasse435
7.2.5 Methoden eines FileInfo-Objekts436
7.2.6 Eigenschaften eines FileInfo-Objekts437
7.3 Operationen auf Verzeichnisebene437
7.3.1 Existenz eines Verzeichnisses/einer Datei feststellen437
7.3.2 Verzeichnisse erzeugen und löschen438
7.3.3 Verzeichnisse verschieben und umbenennen439
7.3.4 Aktuelles Verzeichnis bestimmen439
7.3.5 Unterverzeichnisse ermitteln439
7.3.6 Alle Laufwerke ermitteln440
7.3.7 Dateien kopieren und verschieben441
7.3.8 Dateien umbenennen442
7.3.9 Dateiattribute feststellen442
7.3.10 Verzeichnis einer Datei ermitteln444
7.3.11 Alle im Verzeichnis enthaltene Dateien ermitteln444
7.3.12 Dateien und Unterverzeichnisse ermitteln444
7.4 Zugriffsberechtigungen445
7.4.1 ACL und ACE445
7.4.2 SetAccessControl-Methode446
7.4.3 Zugriffsrechte anzeigen446
7.5 Weitere wichtige Klassen447
7.5.1 Die Path-Klasse447
7.5.2 Die Klasse FileSystemWatcher448
7.6 Datei- und Verzeichnisdialoge450
7.6.1 OpenFileDialog und SaveFileDialog450
7.6.2 FolderBrowserDialog452
7.7 Praxisbeispiele453
7.7.1 Infos über Verzeichnisse und Dateien gewinnen453
7.7.2 Die Verzeichnisstruktur in eine TreeView einlesen456
7.7.3 Mit LINQ und RegEx Verzeichnisbäume durchsuchen458
8 Dateien lesen und schreiben464
8.1 Grundprinzip der Datenpersistenz464
8.1.1 Dateien und Streams464
8.1.2 Die wichtigsten Klassen465
8.1.3 Erzeugen eines Streams466
8.2 Dateiparameter466
8.2.1 FileAccess466
8.2.2 FileMode466
8.2.3 FileShare467
8.3 Textdateien467
8.3.1 Eine Textdatei beschreiben bzw. neu anlegen467
8.3.2 Eine Textdatei lesen469
8.4 Binärdateien471
8.4.1 Lese-/Schreibzugriff471
8.4.2 Die Methoden ReadAllBytes und WriteAllBytes471
8.4.3 BinaryReader/BinaryWriter erzeugen472
8.5 Sequenzielle Dateien472
8.5.1 Lesen und Schreiben von strukturierten Daten472
8.5.2 Serialisieren von Objekten473
8.6 Dateien verschlüsseln und komprimieren474
8.6.1 Das Methodenpärchen Encrypt-/Decrypt475
8.6.2 Verschlüsseln unter Windows Vista/7/8/10475
8.6.3 Verschlüsseln mit der CryptoStream-Klasse476
8.6.4 Dateien komprimieren477
8.7 Memory Mapped Files478
8.7.1 Grundprinzip478
8.7.2 Erzeugen eines MMF479
8.7.3 Erstellen eines Map View479
8.8 Praxisbeispiele480
8.8.1 Auf eine Textdatei zugreifen480
8.8.2 Einen Objektbaum speichern484
8.8.3 Ein Memory Mapped File (MMF) verwenden491
8.8.4 Hex-Dezimal-Bytes-Konverter493
8.8.5 Eine Datei verschlüsseln497
8.8.6 Eine Datei komprimieren500
8.8.7 Echte ZIP-Dateien erstellen502
8.8.8 PDFs erstellen/exportieren503
8.8.9 Eine CSV-Datei erstellen507
8.8.10 Eine CSV-Datei mit LINQ lesen und auswerten510
8.8.11 Einen korrekten Dateinamen erzeugen512
9 Asynchrone Programmierung514
9.1 Übersicht514
9.1.1 Multitasking versus Multithreading515
9.1.2 Deadlocks516
9.1.3 Racing516
9.2 Programmieren mit Threads518
9.2.1 Einführungsbeispiel518
9.2.2 Wichtige Thread-Methoden519
9.2.3 Wichtige Thread-Eigenschaften521
9.2.4 Einsatz der ThreadPool-Klasse522
9.3 Sperrmechanismen524
9.3.1 Threading ohne SyncLock524
9.3.2 Threading mit SyncLock525
9.3.3 Die Monitor-Klasse528
9.3.4 Mutex531
9.3.5 Methoden für die parallele Ausführung sperren532
9.3.6 Semaphore533
9.4 Interaktion mit der Programmoberfläche534
9.4.1 Die Werkzeuge535
9.4.2 Einzelne Steuerelemente mit Invoke aktualisieren535
9.4.3 Mehrere Steuerelemente aktualisieren536
9.4.4 Ist ein Invoke-Aufruf nötig?537
9.4.5 Und was ist mit WPF?537
9.5 Timer-Threads539
9.6 Die BackgroundWorker-Komponente540
9.7 Asynchrone Programmier-Entwurfsmuster543
9.7.1 Kurzübersicht543
9.7.2 Polling544
9.7.3 Callback verwenden545
9.7.4 Callback mit Parameterübergabe verwenden546
9.7.5 Callback mit Zugriff auf die Programm-Oberfläche547
9.8 Asynchroner Aufruf beliebiger Methoden548
9.8.1 Die Beispielklasse548
9.8.2 Asynchroner Aufruf ohne Callback550
9.8.3 Asynchroner Aufruf mit Callback und Anzeigefunktion550
9.8.4 Aufruf mit Rückgabewerten (per Eigenschaft)551
9.8.5 Aufruf mit Rückgabewerten (per EndInvoke)552
9.9 Es geht auch einfacher – Async und Await553
9.9.1 Der Weg von synchron zu asynchron553
9.9.2 Achtung: Fehlerquellen!555
9.9.3 Eigene asynchrone Methoden entwickeln557
9.10 Praxisbeispiele559
9.10.1 Spieltrieb & Multithreading erleben559
9.10.2 Prozess- und Thread-Informationen gewinnen571
9.10.3 Ein externes Programm starten576
10 Die Task Parallel Library580
10.1 Überblick580
10.1.1 Parallel-Programmierung580
10.1.2 Möglichkeiten der TPL583
10.1.3 Der CLR-Threadpool583
10.2 Parallele Verarbeitung mit Parallel.Invoke584
10.2.1 Aufrufvarianten585
10.2.2 Einschränkungen586
10.3 Verwendung von Parallel.For586
10.3.1 Abbrechen der Verarbeitung588
10.3.2 Auswerten des Verarbeitungsstatus589
10.3.3 Und was ist mit anderen Iterator-Schrittweiten?589
10.4 Collections mit Parallel.ForEach verarbeiten590
10.5 Die Task-Klasse591
10.5.1 Einen Task erzeugen591
10.5.2 Task starten592
10.5.3 Datenübergabe an den Task593
10.5.4 Wie warte ich auf das Taskende?594
10.5.5 Tasks mit Rückgabewerten596
10.5.6 Die Verarbeitung abbrechen599
10.5.7 Fehlerbehandlung603
10.5.8 Weitere Eigenschaften603
10.6 Zugriff auf das Userinterface605
10.6.1 Task-Ende und Zugriff auf die Oberfläche605
10.6.2 Zugriff auf das UI aus dem Task heraus606
10.7 Weitere Datenstrukturen im Überblick608
10.7.1 Threadsichere Collections608
10.7.2 Primitive für die Threadsynchronisation609
10.8 Parallel LINQ (PLINQ)609
10.9 Praxisbeispiel: Spieltrieb – Version 2610
10.9.1 Aufgabenstellung610
10.9.2 Global-Klasse610
10.9.3 Controller611
10.9.4 LKWs613
10.9.5 Schiff-Klasse614
10.9.6 Oberfläche616
11 Fehlersuche und Behandlung618
11.1 Der Debugger618
11.1.1 Allgemeine Beschreibung618
11.1.2 Die wichtigsten Fenster619
11.1.3 Debugging-Optionen622
11.1.4 Praktisches Debugging am Beispiel624
11.2 Arbeiten mit Debug und Trace628
11.2.1 Wichtige Methoden von Debug und Trace628
11.2.2 Besonderheiten der Trace-Klasse631
11.2.3 TraceListener-Objekte632
11.3 Caller Information635
11.3.1 Attribute635
11.3.2 Anwendung635
11.4 Fehlerbehandlung636
11.4.1 Anweisungen zur Fehlerbehandlung636
11.4.2 Try-Catch636
11.4.3 Try-Finally641
11.4.4 Das Standardverhalten bei Ausnahmen festlegen643
11.4.5 Die Exception-Klasse644
11.4.6 Fehler/Ausnahmen auslösen644
11.4.7 Eigene Fehlerklassen645
11.4.8 Exceptionhandling zur Entwurfszeit647
11.4.9 Code Contracts647
12 XML in Theorie und Praxis650
12.1 XML – etwas Theorie650
12.1.1 Übersicht650
12.1.2 Der XML-Grundaufbau653
12.1.3 Wohlgeformte Dokumente654
12.1.4 Processing Instructions (PI)657
12.1.5 Elemente und Attribute657
12.1.6 Verwendbare Zeichensätze659
12.2 XSD-Schemas661
12.2.1 XSD-Schemas und ADO.NET661
12.2.2 XML-Schemas in Visual Studio analysieren663
12.2.3 XML-Datei mit XSD-Schema erzeugen666
12.2.4 XSD-Schema aus einer XML-Datei erzeugen667
12.3 XML-Integration in Visual Basic668
12.3.1 XML-Literale668
12.3.2 Einfaches Navigieren durch späte Bindung671
12.3.3 Die LINQ to XML-API673
12.3.4 Neue XML-Dokumente erzeugen674
12.3.5 Laden und Sichern von XML-Dokumenten676
12.3.6 Navigieren in XML-Daten678
12.3.7 Auswählen und Filtern680
12.3.8 Manipulieren der XML-Daten680
12.3.9 XML-Dokumente transformieren682
12.4 Verwendung des DOM unter .NET685
12.4.1 Übersicht685
12.4.2 DOM-Integration in Visual Basic686
12.4.3 Laden von Dokumenten686
12.4.4 Erzeugen von XML-Dokumenten687
12.4.5 Auslesen von XML-Dateien689
12.4.6 Direktzugriff auf einzelne Elemente690
12.4.7 Einfügen von Informationen691
12.4.8 Suchen in den Baumzweigen693
12.5 Weitere Möglichkeiten der XML-Verarbeitung697
12.5.1 Die relationale Sicht mit XmlDataDocument697
12.5.2 XML-Daten aus Objektstrukturen erzeugen700
12.5.3 Schnelles Suchen in XML-Daten mit XPathNavigator703
12.5.4 Schnelles Auslesen von XML-Daten mit XmlReader706
12.5.5 Erzeugen von XML-Daten mit XmlWriter708
12.5.6 XML transformieren mit XSLT710
12.6 Praxisbeispiele712
12.6.1 Mit dem DOM in XML-Dokumenten navigieren712
12.6.2 XML-Daten in eine TreeView einlesen715
12.6.3 DataSets in XML-Strings konvertieren719
12.6.4 In Dokumenten mit dem XPathNavigator navigieren723
13 Einführung in ADO.NET728
13.1 Eine kleine Übersicht728
13.1.1 Die ADO.NET-Klassenhierarchie728
13.1.2 Die Klassen der Datenprovider729
13.1.3 Das Zusammenspiel der ADO.NET-Klassen732
13.2 Das Connection-Objekt733
13.2.1 Allgemeiner Aufbau733
13.2.2 OleDbConnection733
13.2.3 Schließen einer Verbindung735
13.2.4 Eigenschaften des Connection-Objekts735
13.2.5 Methoden des Connection-Objekts737
13.2.6 Der ConnectionStringBuilder738
13.3 Das Command-Objekt739
13.3.1 Erzeugen und Anwenden eines Command-Objekts739
13.3.2 Erzeugen mittels CreateCommand-Methode740
13.3.3 Eigenschaften des Command-Objekts740
13.3.4 Methoden des Command-Objekts742
13.3.5 Freigabe von Connection- und Command-Objekten743
13.4 Parameter-Objekte745
13.4.1 Erzeugen und Anwenden eines Parameter-Objekts745
13.4.2 Eigenschaften des Parameter-Objekts745
13.5 Das CommandBuilder-Objekt746
13.5.1 Erzeugen746
13.5.2 Anwenden747
13.6 Das DataReader-Objekt747
13.6.1 DataReader erzeugen748
13.6.2 Daten lesen748
13.6.3 Eigenschaften des DataReaders749
13.6.4 Methoden des DataReaders749
13.7 Das DataAdapter-Objekt750
13.7.1 DataAdapter erzeugen750
13.7.2 Command-Eigenschaften751
13.7.3 Fill-Methode752
13.7.4 Update-Methode753
13.8 Praxisbeispiele754
13.8.1 Wichtige ADO.NET-Objekte im Einsatz754
13.8.2 Eine Aktionsabfrage ausführen756
13.8.3 Eine Auswahlabfrage aufrufen758
13.8.4 Die Datenbank aktualisieren760
13.8.5 Den ConnectionString speichern763
14 Das DataSet766
14.1 Grundlegende Features des DataSets766
14.1.1 Die Objekthierarchie767
14.1.2 Die wichtigsten Klassen767
14.1.3 Erzeugen eines DataSets768
14.2 Das DataTable-Objekt770
14.2.1 DataTable erzeugen770
14.2.2 Spalten hinzufügen770
14.2.3 Zeilen zur DataTable hinzufügen771
14.2.4 Auf den Inhalt einer DataTable zugreifen772
14.3 Die DataView774
14.3.1 Erzeugen eines DataView774
14.3.2 Sortieren und Filtern von Datensätzen774
14.3.3 Suchen von Datensätzen775
14.4 Typisierte DataSets775
14.4.1 Ein typisiertes DataSet erzeugen776
14.4.2 Das Konzept der Datenquellen777
14.4.3 Typisierte DataSets und TableAdapter778
14.5 Die Qual der Wahl779
14.5.1 DataReader – der schnelle Lesezugriff780
14.5.2 DataSet – die Datenbank im Hauptspeicher780
14.5.3 Objektrelationales Mapping – die Zukunft?781
14.6 Praxisbeispiele782
14.6.1 Im DataView sortieren und filtern782
14.6.2 Suche nach Datensätzen784
14.6.3 Ein DataSet in einen XML-String serialisieren785
14.6.4 Untypisierte in typisierte DataSets konvertieren790
14.6.5 Eine LINQ to SQL-Abfrage ausführen795
15 Verteilen von Anwendungen800
15.1 ClickOnce-Deployment801
15.1.1 Übersicht/Einschränkungen801
15.1.2 Die Vorgehensweise802
15.1.3 Ort der Veröffentlichung802
15.1.4 Anwendungsdateien803
15.1.5 Erforderliche Komponenten803
15.1.6 Aktualisierungen804
15.1.7 Veröffentlichungsoptionen805
15.1.8 Veröffentlichen806
15.1.9 Verzeichnisstruktur806
15.1.10 Der Webpublishing-Assistent808
15.1.11 Neue Versionen erstellen809
15.2 InstallShield809
15.2.1 Installation809
15.2.2 Aktivieren810
15.2.3 Ein neues Setup-Projekt810
15.2.4 Finaler Test818
15.3 Hilfedateien programmieren818
15.3.1 Der HTML Help Workshop819
15.3.2 Bedienung am Beispiel820
15.3.3 Hilfedateien in die VB-Anwendung einbinden822
15.3.4 Eine alternative Hilfe-IDE verwenden826
16 Weitere Techniken828
16.1 Zugriff auf die Zwischenablage828
16.1.1 Das Clipboard-Objekt828
16.1.2 Zwischenablage-Funktionen für Textboxen830
16.2 Arbeiten mit der Registry830
16.2.1 Allgemeines831
16.2.2 Registry-Unterstützung in .NET832
16.3 .NET-Reflection834
16.3.1 Übersicht834
16.3.2 Assembly laden834
16.3.3 Mittels GetType und Type Informationen sammeln835
16.3.4 Dynamisches Laden von Assemblies837
16.4 Praxisbeispiele839
16.4.1 Zugriff auf die Registry839
16.4.2 Dateiverknüpfungen erzeugen841
16.4.3 Die Zwischenablage überwachen und anzeigen843
16.4.4 Die WIA-Library kennenlernen846
16.4.5 Auf eine Webcam zugreifen858
16.4.6 Auf den Scanner zugreifen860
16.4.7 OpenOffice.org Writer per OLE steuern864
16.4.8 Nutzer und Gruppen des Systems ermitteln872
16.4.9 Testen, ob Nutzer in einer Gruppe enthalten ist873
16.4.10 Testen, ob der Nutzer ein Administrator ist875
16.4.11 Die IP-Adressen des Computers bestimmen876
16.4.12 Die IP-Adresse über den Hostnamen bestimmen877
16.4.13 Diverse Systeminformationen ermitteln878
16.4.14 Sound per MCI aufnehmen887
16.4.15 Mikrofonpegel anzeigen890
16.4.16 Pegeldiagramm aufzeichnen892
16.4.17 Sound-und Video-Dateien per MCI abspielen896
17 Konsolenanwendungen904
17.1 Grundaufbau/Konzepte904
17.1.1 Unser Hauptprogramm – Module1.vb905
17.1.2 Rückgabe eines Fehlerstatus906
17.1.3 Parameterübergabe907
17.1.4 Zugriff auf die Umgebungsvariablen908
17.2 Die Kommandozentrale: System.Console909
17.2.1 Eigenschaften909
17.2.2 Methoden/Ereignisse910
17.2.3 Textausgaben911
17.2.4 Farbangaben912
17.2.5 Tastaturabfragen913
17.2.6 Arbeiten mit Streamdaten914
17.3 Praxisbeispiel: Farbige Konsolenanwendung915
Teil III: Windows Apps918
18 Erste Schritte920
18.1 Grundkonzepte und Begriffe920
18.1.1 Windows Runtime (WinRT)920
18.1.2 Windows Store 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 Praxisbeispiele969
19.5.1 Seitennavigation und Parameterübergabe969
19.5.2 Die Fensterkopfzeile anpassen971
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, ProgressRing985
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 RelativPanel997
20.3 Listendarstellungen999
20.3.1 ComboBox, ListBox999
20.3.2 ListView1003
20.3.3 GridView1005
20.3.4 FlipView1007
20.4 Sonstige Controls1009
20.4.1 CaptureElement1009
20.4.2 MediaElement1010
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 gruppieren1021
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.vb1039
21.1.3 Verweise1041
21.1.4 App.xaml und App.xaml.vb1041
21.1.5 Package.appxmanifest1042
21.1.6 Application1_TemporaryKey.pfx1047
21.1.7 MainPage.xaml & MainPage.xaml.vb1047
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 Resuming1053
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?1060
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 laden1065
21.3.8 Daten in der Cloud ablegen/laden (Roaming)1067
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öschen1087
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 Dateipicker1096
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 verwenden1113
22.2.4 Zugriff auf die Kontaktliste1114
22.3 Spezielle Oberflächenelemente1116
22.3.1 MessageDialog1116
22.3.2 ContentDialog1119
22.3.3 Popup-Benachrichtigungen1121
22.3.4 PopUp/Flyouts1128
22.3.5 Das PopupMenu einsetzen1132
22.3.6 Eine AppBar verwenden1134
22.4 Datenbanken und Windows Store Apps1138
22.4.1 Der Retter in der Not: SQLite!1138
22.4.2 Verwendung/Kurzüberblick1138
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 App1146
22.5.1 Verpacken der App1146
22.5.2 App-Installation per Skript1148
22.6 Ein Blick auf die App-Schwachstellen1150
22.6.1 Quellcodes im Installationsverzeichnis1150
22.6.2 Zugriff auf den App-Datenordner1152
22.7 Praxisbeispiele1152
22.7.1 Ein Verzeichnis auf Änderungen überwachen1152
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

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

CE-Markt

CE-Markt

CE-Markt ist Pflichtlektüre in der Unterhaltungselektronik-Branche. Die Vermarktung von Home und Mobile Electronics mit den besten Verkaufsargumenten und Verkaufsstrategien gehören ebenso zum ...

dima

dima

Bau und Einsatz von Werkzeugmaschinen für spangebende und spanlose sowie abtragende und umformende Fertigungsverfahren. dima - die maschine - bietet als Fachzeitschrift die Kommunikationsplattform ...

DSD Der Sicherheitsdienst

DSD Der Sicherheitsdienst

Der "DSD – Der Sicherheitsdienst" ist das Magazin der Sicherheitswirtschaft. Es erscheint viermal jährlich und mit einer Auflage von 11.000 Exemplaren. Der DSD informiert über aktuelle Themen ...

rfe-Elektrohändler

rfe-Elektrohändler

rfe-Elektrohändler ist die Fachzeitschrift für die CE- und Hausgeräte-Branche. Wichtige Themen sind: Aktuelle Entwicklungen in beiden Branchen, Waren- und Verkaufskunde, Reportagen über ...

elektrobörse handel

elektrobörse handel

elektrobörse handel gibt einen facettenreichen Überblick über den Elektrogerätemarkt: Produktneuheiten und -trends, Branchennachrichten, Interviews, Messeberichte uvm.. In den monatlichen ...

Euphorion

Euphorion

EUPHORION wurde 1894 gegründet und widmet sich als „Zeitschrift für Literaturgeschichte“ dem gesamten Fachgebiet der deutschen Philologie. Mindestens ein Heft pro Jahrgang ist für die ...

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