Microsoft Visual Basic 2008 - das Entwicklerbuch: [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1]
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Unterschleißheim
Microsoft Press
2009
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XXXI, 1388 S. Ill., graph. Darst. 1 DVD-ROM (12 cm) ; 1 DVD (12 cm) |
ISBN: | 9783866455061 3866455062 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV023412463 | ||
003 | DE-604 | ||
005 | 20240517 | ||
007 | t | ||
008 | 080723s2009 gw ad|| |||| 00||| ger d | ||
015 | |a 07,N38,0059 |2 dnb | ||
016 | 7 | |a 985438703 |2 DE-101 | |
020 | |a 9783866455061 |c Gb. : EUR 59.00, EUR 61.20 (AT), sfr 94.90 |9 978-3-86645-506-1 | ||
020 | |a 3866455062 |9 3-86645-506-2 | ||
024 | 3 | |a 9783866455061 | |
035 | |a (OCoLC)643432858 | ||
035 | |a (DE-599)DNB985438703 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BY | ||
049 | |a DE-1051 |a DE-91G |a DE-824 |a DE-12 |a DE-573 |a DE-11 | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 357f |2 stub | ||
100 | 1 | |a Löffelmann, Klaus |e Verfasser |0 (DE-588)111128943 |4 aut | |
245 | 1 | 0 | |a Microsoft Visual Basic 2008 - das Entwicklerbuch |b [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] |c Klaus Löffelmann |
246 | 1 | 3 | |a Visual Basic 2008 - das Entwicklerbuch |
264 | 1 | |a Unterschleißheim |b Microsoft Press |c 2009 | |
300 | |a XXXI, 1388 S. |b Ill., graph. Darst. |e 1 DVD-ROM (12 cm) ; 1 DVD (12 cm) | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a VisualBASIC 2008 |0 (DE-588)7613492-1 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4585131-1 |a DVD-ROM |2 gnd-carrier | |
689 | 0 | 0 | |a VisualBASIC 2008 |0 (DE-588)7613492-1 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=2997049&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016595055&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-016595055 |
Datensatz im Suchindex
_version_ | 1811811023294824448 |
---|---|
adam_text |
Inhaltsverzeichnis
Vorwort XXVII
Einleitung XXIX
Danksagungen XXX
Support XXXI
Teil A - Der Einstieg in Sprache und Entwicklungswerkzeuge l
1 Einführung 3
Welches Vorwissen verlangt dieses Buch? 4
Welche Softwarevoraussetzungen benötigen Sie? 5
Wissenswertes zur Installation von Visual Studio 2008 7
LaufFähigkeit von Visual Studio und den erstellten Kompilaten
unter den verschiedenen Betriebssystemen 8
Parallelinstallation von Visual Studio 6, Visual Studio 2002, Visual Studio 2003,
Visual Studio 2005 und Visual Studio 2008 9
Die SQL-Datenbanken für Visual Studio 2008: SQL Server 2005 und SQL Server 2008 9
Der Umgang mit Web-Links in diesem Buch - http://www.activedevelop.de/vb2008 10
Die Begleitdateien zum Buch und das E-Book 11
Nützliches zu Visual Basic 2008 - www.codeclips.de 11
2 »Symbolischer Allzweckbefehlscode für Anfänger« 13
Visual Studio das erste Mal starten 14
Konsolenanwendungen (Console Applications) 16
Anwendung starten 18
Anatomie eines (Visual Basic-)Programms 20
Programmstart mit der Main-Methode 23
Methoden mit und ohne Rückgabewerte 25
Funktionen mit Rückgabewerten 25
Deklaration von Variablen 25
Ausdrücke und Variablendefinitionen 27
Gleichzeitiges Deklarieren und Definieren von Variablen 27
Komplexe Ausdrücke 28
Boolesche Ausdrücke 29
Und was sind Objekte im Unterschied zu »normalen« Datentypen? 30
Ableiten von Objekten und abstrakten Objekten 31
Programmstrukturen 32
Schleifen 32
For/Next-Schleifen 32
For Each-Schleifen 35
Do/Loop-und While/End While-Schleifen 36
Exit - Vorzeitiges Verlassen von Schleifen 37
Continue - Vorzeitige Schleifenwiederholung 37
Anweisungen, die Programmcode bedingt ausführen - If/Then/Else und Select/Case 38
If. Then . Else . Eiself. Endlf 38
Vergleichsoperatoren, die boolesche Ergebnisse zurückliefern 39
Select. Case . End Select 41
Vereinfachter Zugriff auf Objekte mit With/EndWith 42
Gültigkeitsbereiche von lokalen Variablen 42
3 Einführung in das .NET Framework 45
Was ist .NET und aus was besteht es? 46
Was ist eine Assembly? 47
Was ist ein Namespace? 47
Was versteckt sich hinter CLR (Common Language Runtime) und CLI (Common
Language Infrastructure)? 51
Was ist die FCL (Framework Class Library) und was die BCL
(die Base Class Library)? 52
Was ist das CTS (Common Type System)? 53
Was ist CIL/MSIL (Microsoft-Intermediate Language) und wozu dient der JITter? 53
Erzwungene Typsicherheit und Deklarationszwang von Variablen 55
Namensgebung von Variablen 58
Und welche Sprache ist die beste? 60
4 Der Schnelleinstieg in die Bedienung der Visual Studio-Entwicklungsumgebung (IDE) 61
Der erste Start von Visual Studio 62
Übernehmen von Visual Studio 2005-Einstellungen 63
Visual Studio 2005-Projekte zu Visual Studio 2008 migrieren 63
Die Startseite - der erste Ausgangspunkt für Ihre Entwicklungen 65
Der Visual Studio-Nachrichten-Channel 65
Anpassen der Liste der zuletzt bearbeiteten Projekte 66
Die IDE auf einen Blick 67
Genereller Umgang mit Fenstern in der Entwicklungsumgebung 69
Dokumentfenster 69
Toolfenster 6g
Andocken von Toolfenstern 70
Arbeiten mit Toolfenstern 7X
Navigieren durch Dateien und Toolfenster mit dem IDE-Navigator 72
Die wichtigsten Toolfenster 72
Projektmappen und Projekte mit dem Projektmappen-Explorer verwalten 73
Projektdateitypen 74
Alle Projektdateien anzeigen 74
Weitere Funktionen des Projektmappen-Explorers 75
Organisieren von Codedateien in Unterordnern 75
Dateioperationen innerhalb des Projektmappen-Explorers 76
Das Eigenschaftenfenster 77
Einrichten und Verwalten von Ereigniscode mit dem Eigenschaftenfenster 77
Die Fehlerliste 79
Konfigurieren von Warnungen in den Projekteigenschaften 80
Die Aufgabenliste 81
Das Ausgabefenster 83
Die dynamische Hilfe 85
Die Klassenansicht 87
Codeeditor und Designer 87
Wichtige Tastenkombinationen auf einen Blick 87
Verbesserungen an der integrierten Entwicklungs- Umgebung (IDE) in Visual Studio 2008 89
Einfacheres Positionieren und Andocken von Toolfenstern 89
Navigieren durch Dateien mit dem IDE-Navigator 90
Wechseln zu bestimmten Dateien im Editor 90
Navigieren zwischen Toolfenstern in der IDE 91
Umgebungsschriftart definieren 91
Designer für Windows Presentation Foundation-Projekte 93
IntelliSense-Verbesserungen 95
Syntax-Tooltipps 95
Filtern beim Tippen 96
5 Einführung in Windows Forms - Designer und Codeeditor am Beispiel 99
Das Fallbeispiel - Der DVD-Hüllen-Generator »Covers« 100
Das »Pflichtenheft« von Covers 101
Erstellen eines neuen Projektes 103
Gestalten von Formularen mit dem Windows Forms-Designer 105
Positionieren von Steuerelementen 105
Häufige Arbeiten an Steuerelementen mit Smarttags erledigen 109
Dynamische Anordnung von Steuerelementen zur Laufzeit 110
Automatisches Scrollen von Steuerelementen in Containern 121
Selektieren von Steuerelementen, die Sie mit der Maus nicht erreichen 122
Festlegen der Tabulatorreihenfolge (Aktivierreihenfolge) von Steuerelementen 123
Über die Eigenschaften Name, Text und Caption 125
Einrichten von Bestätigungs- und Abbrechen-Funktionalitäten für
Schaltflächen in Formularen 127
Hinzufügen neuer Formulare zu einem Projekt 127
Wie geht's weiter? 129
Namensgebungskonventionen für Steuerelemente in diesem Buch 130
Funktionen zum Layouten von Steuerelementen im Designer 131
Tastaturkürzel für die Platzierung von Steuerelementen 133
Der Codeeditor 133
Die Wahl der richtigen Schriftart für ermüdungsfreies Arbeiten 133
Viele Wege führen zum Codeeditor 134
IntelliSense - Ihr stärkstes Zugpferd im Coding-Stall 135
Automatische Vervollständigung von Struktur-Schlüsselworten und Codeeinrückung 137
Fehlererkennung im Codeeditor 138
XML-Dokumentationskommentare für IntelliSense bei eigenen Objekten und Klassen 142
Hinzufügen neuer Codedateien zum Projekt 146
Code umgestalten (Refactoring) 148
Die Bibliothek der Codeausschnitte (Code Snippets Library) 151
Einstellen des Speicherns von Anwendungseinstellungen mit dem Settings-Designer. 155
Weitere Funktionen des Codeeditors 163
Aufbau des Codefensters 163
Automatischen Zeilenumbruch aktivieren/deaktivieren 163
Navigieren zu vorherigen Bearbeitungspositionen im Code 164
Rechteckige Textmarkierung 164
Gliederungsansicht 165
Suchen und Ersetzen, Suche in Dateien 166
Suchen in Dateien 167
Inkrementelles Suchen 168
Gehe zu Zeilennummern 168
Lesezeichen 169
6 Einführung in Windows Presentation Foundation 171
Was ist die Windows Presentation Foundation? 172
Was ist so neu an WPF? 173
25 Jahre Windows, 25 Jahre gemalte Schaltflächen 174
Wie WPF Designer und Entwickler zusammenbringt 185
XAML: Extensible Application Markup Language 187
DerWPF-Designer 194
Ereignisbehandlungsroutinen in WPF und Visual Basic 195
Logischer und visueller Baum 195
Die XAML-Syntax im Überblick 197
Ein eigenes XAMLPad 201
Zusammenfassung 206
7 Die essentiellen .NET-Datentypen 207
Numerische Datentypen 208
Numerische Datentypen deklarieren und definieren 209
Delegation numerischer Berechnungen an den Prozessor 210
Hinweis zur CLS-Konformität 213
Die numerischen Datentypen auf einen Blick 213
Tabellarische Zusammenfassung der numerischen Datentypen 220
Rundungsfehler bei der Verwendung von Single und Double 221
Besondere Funktionen, die für alle numerischen Datentypen gelten 224
Spezielle Funktionen der Fließkommatypen 228
Spezielle Funktionen des Wertetyps Decimal 230
Der Datentyp Char 230
Der Datentyp String 231
Strings - gestern und heute 232
Strings deklarieren und definieren 232
Der String-Konstruktor als Ersatz von String$ 233
Einem String Zeichenketten mit Sonderzeichen zuweisen 234
Speicherbedarf von Strings 235
Strings sind unveränderlich 235
Speicheroptimierung von Strings durch das Framework 236
Ermitteln der String-Länge 237
Ermitteln von Teilen eines Strings oder eines einzelnen Zeichens 237
Angleichen von String-Längen 238
Suchen und Ersetzen 238
Algorithmisches Auflösen eines Strings in Teile 242
Ein String-Schmankerl zum Schluss 243
Iterieren durch einen String 247
Stringbuilder vs. String - wenn es auf Geschwindigkeit ankommt 247
Der Datentyp Boolean 254
Konvertieren von und in numerische Datentypen 254
Konvertierung von und in Strings 255
Der Datentyp Date 255
Rechnen mit Zeiten und Datumswerten - TimeSpan 256
Bibliothek mit brauchbaren Datumsrechenfunktionen 257
Zeichenketten in Datumswerte wandeln 260
.NET-Äquivalente primitiver Datentypen 263
8 Tipps Tricks für das angenehme Entwickeln zuhause und unterwegs 267
Der Einsatz mehrerer Monitore 268
Und die Bildschirmdarstellung auf Notebooks? 270
Sichern, Wiederherstellen oder Zurücksetzen aller Visual Studio-Einstellungen 270
Sichern der Visual Studio-Einstellungen 270
Wiederherstellen von Visual Studio-Einstellungen 272
Zurücksetzen der IDE-Einstellungen in den Ausgangszustand 274
Wieviel Arbeitsspeicher darf's denn sein? 276
Testen Ihrer Software unterwegs und zuhause mit Virtualisierungssystemen 277
Microsoft Virtual PC 278
Virtual Server 281
Hyper-V in Windows Server 2008 282
Hilfe zur Selbsthilfe 283
XU Inhaltsverzeichnis
Erweitern Sie die Codeausschnittsbibliothek um eigene Codeausschnitte 288
Erstellen einer Code Snippets-XML-Vorlage 290
Hinzufügen einer neuen Snippet-Vorlage zur Snippet-Bibliothek
(Codeausschnittsbibliothek) 293
Verwenden des neuen Codeausschnittes "4
Parametrisieren von Codeausschnitten 295
Teil B - Umsteigen auf Visual Basic 2008 303
9 Migrieren zu Visual Basic 2008 - Vorüberlegungen 305
Das Problem der Visual Basic 6.0-Migration 306
Kurzfristige Rettung mit virtuellen PCs 308
Grundsätzliches zur Umstellung von Visual Basic 6-Anwendungen auf.NET 308
Aufwandsabschätzung einer Migration 310
Interop Forms Toolkit - »Weiche Migration« für kleinere und modulare Projekte 311
10-teilige Webcast-Reihe zum Thema Migration 311
10 Migration von Visual Basic 6-Anwendungen 313
Unterschiede in der Variablenbehandlung 315
Veränderungen bei primitiven Integer-Variablen - die Größen von
Integer und Long und der neue Typ Short 315
Typen, die es nicht mehr gibt 316
. und die primitiven Typen, die es jetzt gibt 316
Deklaration von Variablen und Variablentypzeichen 318
Typsicherheit und Typliterale zur Typdefinition von Konstanten 320
Deklaration und Definition von Variablen »in einem Rutsch« 325
Lokaler Typrückschluss 325
Vorsicht: New und New können zweierlei in VB6 und VB.NET sein! 326
Überläufe bei Fließkommazahlen und nicht definierte Zahlenwerte 327
Alles ist ein Objekt oder »let Set be« 329
Gezieltes Freigeben von Objekten mit Using 330
Direktdeklaration von Variablen in For-Schleifen 333
Unterschiede bei verwendbaren Variablentypen für For/Each in VB6 und VB.NET 334
Continue in Schleifen 334
Gültigkeitsbereiche von Variablen 335
Globale bzw. öffentliche (public) Variablen 335
Variablen mit Gültigkeit auf Modul, Klassen oder Formularebene 336
Gültigkeitsbereiche von lokalen Variablen 337
Arrays 339
Die Operatoren += und -= und ihre Verwandten 340
Die Bitverschiebeoperatoren « und » 341
Fehlerbehandlung 342
Elegantes Fehlerabfangen mit Try/Catch/Finally 344
Kurzschlussauswertungen mit OrElse und AndAlso 348
Inhaltsverzeichnis , ^ s , J*'|
Variablen und Argumente auch an Subs in Klammern! 350
Namespaces und Assemblies 350
Assemblies 350
Namespaces 353
So bestimmen Sie Assembly-Namen und Namespace für Ihre eigenen Projekte 356
Verschiedene Namespaces in einer Assembly 357
Zugriff auf den Framework-System-Namespace mit Global 358
11 Neues im Visual Basic 2008-Compiler 361
First and defmitely not least - die Performance des Visual Basic 2008-Compilers 362
Framework Version-Targeting (Framework-Versionszielwahl) bei Projekten 364
Lokale Typrückschlüsse (Local Type Inference) 366
Generelles Einstellen von Option Infer, Strict, Explicit und Compare 367
If-Operator vs. Ilf-Funktion 368
Festlegen der Projekteinstellungen für die Benutzerkontensteuerung (Windows Vista) 368
Nullable-Typen 369
Besonderheiten bei Nullable beim Boxen 372
Anonyme Typen 374
Lambda-Ausdrücke 375
Abfrageausdrücke mit LINQ 375
Erweiterungsmethoden 375
Der eigentliche Zweck von Erweiterungsmethoden 376
Inhalte von System- oder externen Typen in Vorschaufenstern fürs
Debuggen konfigurieren 377
Zugriff auf den .NET Framework-Quellcode beim Debuggen 378
Teil C - Objektorientiertes Programmieren 385
12 Einführung in die objektorientierte Programmierung 387
Was spricht für Klassen und Objekte? 389
Miniadresso - die prozedurale Variante 390
13 Klassentreffen 393
Was ist eine Klasse? 394
Klassen mit New instanziieren 394
New oder nicht New - wieso es sich bei Objekten um Verweistypen handelt 396
Nothing 399
Klassen anwenden 400
Wertetypen 401
Wertetypen mit Structure erstellen 403
Wertetypen durch Zuweisung klonen 403
Wann Werte-, wann Referenztypen verwenden? 404
Konstanten vs. Felder (Klassen-Membervariablen) 405
Xiv Inhaltsverzeichnis
14 Klassencode entwickeln 407
Eigenschaften 408
Zuweisen von Eigenschaften 410
Ermitteln von Eigenschaften 410
Eigenschaften mit Parametern 412
Default-Eigenschaften (Standardeigenschaften) 413
Öffentliche Variablen oder Eigenschaften - eine Glaubensfrage? 414
Der Konstruktor einer Klasse - bestimmen, was bei New passiert 418
Parametrisierte Konstruktoren 420
Hat jede Klasse einen Konstruktor? 422
Klassenmethoden mit Sub und Function 426
Überladen von Methoden, Konstruktoren und Eigenschaften 427
Methodenüberladung und optionale Parameter 429
Gegenseitiges Aufrufen von überladenen Methoden 430
Gegenseitiges Aufrufen von überladenen Konstruktoren 432
Überladen von Eigenschaften-Prozeduren mit Parametern 433
Zugriffsmodifizierer für Klassen, Methoden und Eigenschaften - Gültigkeitsbereiche
definieren 434
Zugriffsmodifizierer bei Klassen 434
Zugriffsmodifizierer bei Prozeduren (Subs, Functions, Properties) 435
Zugriffsmodifizierer bei Variablen 435
Unterschiedliche Zugriffsmodifizierer für Eigenschaften-Accessors 436
Statische Komponenten 437
Statische Methoden 438
Statische Eigenschaften 440
Module in Visual Basic - automatisch statische Klassen erstellen 440
Delegaten und Lambda-Ausdrücke 441
Umgang mit Delegaten am Beispiel 441
Lambda-Ausdrücke 444
Lambda-Ausdrücke am Beispiel 445
Über mehrere Codedateien aufgeteilter Klassencode - Das Partial-Schlüsselwort 447
Partieller Klassecode bei Methoden und Eigenschaften 447
15 Vererben von Klassen und Polymorphie 449
Wiederverwendbarkeit von Klassen durch Vererbung (Inheritance) 450
Initialisierung von Member-Variablen bei Klassen ohne Standardkonstruktoren 458
Überschreiben von Methoden und Eigenschaften 459
Überschreiben vorhandener Methoden und Eigenschaften von Framework-Klassen. 462
Das Speichern von Objekten im Arbeitsspeicher 463
Polymorphie 466
Polymorphie in der Praxis 470
Polymorphie und der Gebrauch von Me, MyClass und MyBase 483
Abstrakte Klassen und virtuelle Prozeduren 485
Eine Klasse mit Mustlnherit als abstrakt deklarieren 485
Inhaltsverzeichnis . , *Y
Eine Methode oder Eigenschaft einer abstrakten Klasse mit
MustOverride als virtuell deklarieren 486
Schnittstellen (Interfaces) 488
Unterstützung bei abstrakten Klassen und Schnittstellen durch den Editor 495
Schnittstellen, die Schnittstellen implementieren 500
Einbinden mehrerer Schnittstellen in eine Klasse 502
Die Methoden und Eigenschaften von Object 503
Polymorphie am Beispiel von ToString und der ListBox 503
Prüfen auf Gleichheit von Objekten mit Object.Equals oder dem Is/IsNot-Operator. 506
Equals, Is und IsNot im praktischen Entwicklungseinsatz 509
Übersicht über die Eigenschaften und Methoden von Object 510
Shadowing (Überschatten) von Klassenprozeduren 510
Shadows als Unterbrecher der Klassenhierarchie 512
Sonderform »Modul« in Visual Basic 516
Singleton-Klassen und Klassen, die sich selbst instanziieren 516
16 Entwickeln von Wertetypen 519
Erstellen von Wertetypen mit Structure am praktischen Beispiel 520
Unterschiedliche Verhaltensweisen von Werte- und Referenztypen 526
Verhalten der Parameterübergabe mit ByVal und ByRef steuern 527
Konstruktoren und Standardinstanziierungen von Wertetypen 528
Gezieltes Zuweisen von Speicherbereichen für Struktur-Member mit den StructLayout-
und FieldOffset-Attributen 531
Performance-Unterschiede zwischen Werte- und Referenztypen 533
Wieso kann durch Vererben aus Object (Referenztyp) ValueType (Wertetyp) werden? 534
17 Typenumwandlung (Type Casting) und Boxing von Wertetypen 535
Konvertieren von primitiven Typen 536
Konvertieren von und in Zeichenketten (Strings) 538
Konvertieren von Strings mit den Parse- und ParseExact-Methoden 539
Konvertieren in Strings mit der ToString-Methode 539
Abfangen von fehlschlagenden Typkonvertierungen mit TryParse
oder Ausnahmebehandlern 540
Casten von Referenztypen mit DirectCast 541
Boxing von Wertetypen und primitiven Typen 542
Übrigens: Was DirectCast nicht kann 545
Wann wird und wann wird nicht geboxt? 545
Wertänderung von durch Schnittstellen geboxten Wertetypen 545
18 Beerdigen von Objekten - Dispose, Finalize und der Garbage Collector 549
Der Garbage Collector - die Müllabfuhr in .NET 552
Generationen 553
Die Geschwindigkeit der Objektbereitstellung 554
XYI Inhaltsverzeichnis
Finalize JJ6
Wann Finalize nicht stattfindet 557
Dispose 560
Unterstützung durch den Visual Basic-Editor beim Einfügen
eines Disposable-Patterns "0
19 Eigene Operatoren für benutzerdefinierte Typen 571
Einführung in Operatorenprozeduren 572
Vorbereitung einer Struktur oder Klasse für Operatorenprozeduren 574
Implementierung von Operatoren 578
Überladen von Operatorenprozeduren 579
Implementierung von Vergleichsoperatoren 580
Implementierung von Typkonvertierungsoperatoren mit Operator CType 581
Implementieren von Wahr- und Falsch-Auswertungsoperatoren 583
Problembehandlungen bei Operatorenprozeduren 584
Aufgepasst bei der Verwendung von Referenztypen 584
Übersicht der implementierbaren Operatoren 586
20 Ereignisse und Ereignishandler 589
Konsumieren von Ereignissen mit WithEvents und Handies 591
Auslösen von Ereignissen 594
Der Umweg über Onxxx 595
Zur-Verfügung-Stellen von Ereignisparametern 596
Die Quelle des Ereignisses: Sender 597
Nähere Informationen zum Ereignis: EventArgs 598
Dynamisches Anbinden von Ereignissen mit AddHandler 600
Teil D - Programmieren von und mit Datenstrukturen des .NET Frameworks 609
21 Enums 611
Bestimmung der Werte der Aufzählungselemente 613
Bestimmung der Typen der Aufzählungselemente 614
Ermitteln des Elementtyps zur Laufzeit 614
Konvertieren von Enums 614
In Zahlenwerte umwandeln und aus Werten definieren 615
In Strings umwandeln und aus Strings definieren 615
Flags-Enum (Flags-Aufzählungen) 615
Abfrage von Flags-Aufzählungen 617
22 Arrays und Coliections 619
Grundsätzliches zu Arrays 620
Änderung der Array-Dimensionen zur Laufzeit 621
Wertevorbelegung von Array-Elementen im Code 623
Mehrdimensionale und verschachtelte Arrays 624
Die wichtigsten Eigenschaften und Methoden von Arrays 625
Inhaltsverzeichnis ^ W
Implementierung von Sort und BinarySearch für eigene Klassen 627
Enumeratoren 635
Benutzerdefinierte Enumeratoren durch Implementieren von IEnumerable 636
Grundsätzliches zu Auflistungen (Collections) 638
Wichtige Auflistungen der Base Class Library 642
ArrayList - universelle Ablage für Objekte 642
Typsichere Auflistungen auf Basis von CollectionBase 644
Hashtables - für das Nachschlagen von Objekten 648
Anwenden von Hashtables 648
Verwenden eigener Klassen als Schlüssel (Key) 658
Enumerieren von Datenelementen in einer Hashtable 661
DictionaryBase 662
Queue - Warteschlangen im FIFO-Prinzip 662
Stack - Stapelverarbeitung im LIFO-Prinzip 663
SortedList - Elemente ständig sortiert halten 664
23 Generics (Generika) und generische Auflistungen 667
Einführung 668
Generics: Verwenden einer Codebasis für verschiedene Typen 668
Lösungsansätze 669
Typengeneralisierung durch den Einsatz generischer Datentypen 671
Beschränkungen (Constraints) 674
Beschränkungen für generische Typen auf eine bestimmte Basisklasse 675
Beschränkungen auf Klassen, die bestimmte Schnittstellen implementieren 679
Beschränkungen auf Klassen, die über einen Standardkonstruktor verfügen 683
Beschränkungen auf Wertetypen 683
Kombinieren von Beschränkungen und Bestimmen mehrerer Typparameter 683
Generische Auflistungen (Generic Collections) 684
KeyedCollection - Schlüssel/Wörterbuch-Auflistung mit zusätzlichen Index-Abrufen 687
Elementverkettungen mit LinkedList(Of) 689
List(Of)-Auflistungen und Lambda-Ausdrücke 691
24 Serialisierung von Typen 697
Einführung in Serialisierungstechniken 698
Serialisieren mit SoapFormatter und BinaryFormatter 701
Flaches und tiefes Klonen von Objekten 706
Universelle DeepClone-Methode 710
Serialisieren von Objekten mit Zirkelverweisen 712
Serialisierung von Objekten unterschiedlicher Versionen beim Einsatz
von BinaryFormatter oder SoapFormatter-Klassen 715
XML-Serialisierung 715
Prüfen der Versionsunabhängigkeit der XML-Datei 720
Serialisierungsfehler bei KeyedCollection 721
Workaround 725
XYIH Inhaltsverzeichnis
25 Attribute und Reflection - Wenn Klassen ein Bewusstsein entwickeln 727
Genereller Umgang mit Attributen 728
Einsatz von Attributen am Beispiel von ObsoleteAttribute 729
Die speziell in Visual Basic verwendeten Attribute 731
Einführung in Reflection ' ^^
Die Type-Klasse als Ausgangspunkt für alle Typenuntersuchungen 733
Klassenanalysefunktionen, die ein Type-Objekt bereitstellt 734
Objekthierarchie von Memberlnfo und Casten in den spezifischen Info-Typ 736
Ermitteln von Eigenschaftswerten über Propertylnfo zur Laufzeit 737
Erstellung benutzerdefinierter Attribute und deren Erkennen zur Laufzeit 737
Ermitteln von benutzerdefinierten Attributen zur Laufzeit 741
26 Kultursensible Klassen entwickeln 743
Allgemeines über Format Provider in .NET 744
Kulturabhängige Formatierungen mit Culturelnfo 745
Vermeiden von kulturabhängigen Programmfehlern 747
Formatierung durch Formatzeichenfolgen 748
Formatierung von numerischen Ausdrücken durch Formatzeichenfolgen 748
Formatierung von numerischen Ausdrücken durch vereinfachte Formatzeichenfolgen 751
Formatierung von Datums- und Zeitausdrücken durch Formatzeichenfolgen 752
Formatierung von Zeitausdrücken durch vereinfachte Formatzeichenfolgen 757
Gezielte Formatierungen mit Format Providern 758
Gezielte Formatierungen von Zahlenwerten mit NumberFormatlnfo 758
Gezielte Formatierungen von Zeitwerten mit DateTimeFormatlnfo 759
Kombinierte Formatierungen 760
Ausrichtungen in kombinierten Formatierungen 761
Angeben von Formatzeichenfolgen in den Indexkomponenten 762
So helfen Ihnen benutzerdefinierte Format Provider, Ihre Programme
zu internationalisieren 763
Benutzerdefinierte Format Provider durch IFormatProvider und ICustomFormatter. 774
Automatisch formatierbare Objekte durch Einbinden von IFormattable 777
27 Reguläre Ausdrücke (Regulär Expressions) 779
RegExperimente mit dem RegExplorer 780
Erste Gehversuche mit Regulären Ausdrücken 782
Einfache Suchvorgänge 782
Einfache Suche nach Sonderzeichen 783
Komplexere Suche mit speziellen Steuerzeichen 784
Verwendung von Quantifizierern 786
Gruppen 788
Suchen und Ersetzen 79O
Captures ygj
Optionen bei der Suche 794
Steuerzeichen zu Gruppendefinitionen 795
Inhaltsverzeichnis XIX
Programmieren von Regulären Ausdrücken 796
Ergebnisse im Match-Objekt 796
Die Matches-Auflistung 797
Abrufen von Captures und Gruppen eines Match-Objektes 798
Regex am Beispiel: Berechnen beliebiger mathematischer Ausdrücke 800
Der Formelparser 802
Die Klasse ADFormularParser 802
Vererben der Klasse ADFormularParser, um eigene Funktionen hinzuzufügen 820
Teil E - Entwicklungsvereinfachungen in Visual Basic 2008 821
28 Eine philosophische Betrachtung der Visual Basic-spezifischen Vereinfachungen 823
Die VB2008-Vereinfachungen am Beispiel DotNetCopy 824
DotNetCopy mit /Autostart und /Silent-Optionen 827
Die prinzipielle Funktionsweise von DotNetCopy 829
29 Der My-Namespace 831
Formulare ohne Instanziierung aufrufen 833
Auslesen der Befehlszeilenargumente mit My.Application.CommandLineArgs 835
Gezieltes Zugreifen auf Ressourcen mit My.Resources 837
Anlegen und Verwalten von Ressource-Elementen 837
Abrufen von Ressourcen mit My.Ressources 838
Internationalisieren von Anwendungen mithilfe von Ressource-Dateien
und dem My-Namespace 840
Vereinfachtes Durchfuhren von Dateioperationen mit My.Computer.FileSystem 843
Verwenden von Anwendungseinstellungen mit My.Settings 846
30 Das Anwendungsframework 849
Die Optionen des Anwendungsframeworks 851
Windows XP Look and Feel für eigene Windows-Anwendungen - Visuelle XP-Stile
aktivieren 851
Verhindern, dass Ihre Anwendung mehrfach gestartet wird - Einzelinstanzanwendung
erstellen 851
MySettings-Einstellungen automatisch sichern - Eigene Einstellungen beim
Herunterfahren speichern 851
Bestimmen, welcher Benutzer-Authentifizierungsmodus verwendet wird 851
Festlegen, wann eine Anwendung »zu Ende« ist - Modus für das Herunterfahren 852
Einen Splash-Dialog beim Starten von komplexen Anwendungen anzeigen -
Begrüßungsdialog 852
Eine Codedatei implementieren, die Anwendungsereignisse behandelt 852
Xx Inhaltsverzeichnis
Teil F - Language Integrated Query - LINQ 857
31 Einführung in Language Integrated Query (LINQ) 859
Wie »geht« LINQ prinzipiell 862
Erweiterungsmethoden als Basis für LINQ 865
Die Where-Methode 867
Die Select-Methode 868
Anonyme Typen 8°'
Typrückschluss für generische Typparameter 869
Die OrderBy-Methode 872
Sortieren nach Eigenschaften, die per Variable übergeben werden 874
Die GroupBy-Methode 875
Kombinieren von LINQ-Erweiterungsmethoden 876
Vereinfachte Anwendung von LINQ - Erweiterungsmethoden mit der
LINQ-Abfragesyntax 878
32 LINQ to Objects 879
Einführung in LINQ to Objects 880
Verlieren Sie die Skalierbarkeit von LINQ nicht aus den Augen! 880
Der Aufbau einer LINQ-Abfrage 881
Kombinieren und verzögertes Ausführen von LINQ-Abfragen 887
Faustregeln für das Erstellen von LINQ-Abfragen 889
Kaskadierte Abfragen 890
Gezieltes Auslösen von Abfragen mit ToArray oder ToList 890
Verbinden mehrerer Auflistungen zu einer neuen 891
Implizite Verknüpfung von Auflistungen 892
Explizite Auflistungsverknüpfung mit Join 894
Gruppieren von Auflistungen 894
Gruppieren von Listen aus mehreren Auflistungen 896
Group Join 897
Aggregatfunktionen 898
Zurückliefern mehrerer verschiedener Aggregierungen 899
Kombinieren von gruppierten Abfragen und Aggregatfunktionen 899
33 LINQ to XML 901
Einführung in LINQ to XML 902
XML-Dokumente verarbeiten - Visual Basic 2005 im Vergleich mit Visual Basic 2008 903
XML-Literale - XML direkt im Code ablegen 904
Einbetten von Ausdrücken in XML-Literalen 905
Erstellen von XML mithilfe von LINQ 905
Abfragen von XML-Dokumenten mit LINQ to XML 907
IntelliSense-Unterstützung für LINQ to XML-Abfragen 908
Inhaltsverzeichnis ,. ^
34 LINQto SQL 911
Einleitung 912
Object Relational Mapper (O/RM) 912
Objekt-relationale Unverträglichkeit - Impedance Mismatch 913
Microsoft SQL Server 914
SQL Server 2008 Express Edition with Tools 915
Einsatz von SQL Server Express in eigenen Anwendungen 916
Voraussetzungen für die Beispiele dieses und des nächsten Kapitels 918
Download und Installation von SQL Server 2008 Express Edition with Tools 919
Installation der Beispieldatenbanken 928
Anfügen (»Attachen«) der Beispieldatenbanken an die SQL Server-Instanz 930
LINQ to SQL oder LINQ to Entities - was ist besser, was ist die Zukunft? 935
Hat LINQ to SQL eine Zukunft? 936
Entscheidungshilfe - Gegenüberstellung der wichtigsten Features von LINQ to SQL
und LINQ to Entities 938
Wie es bisher war - ADO.NET 2.0 vs. LINQ in .NET 3.5 939
LINQ to SQL am Beispiel - Die ersten Schritte 941
Protokollieren der generierten T-SQL-Befehle 951
Verzögerte Abfrageausführung und kaskadierte Abfragen 952
Eager und Lazy-Loading - Steuern der Ladestrategien bei l:n-Relationen 955
Trennen des Abfrageergebnisses vom Kontext 960
Daten verändern, speichern, einfügen und löschen 961
Datenänderungen mit SubmitChanges an die Datenbank übermitteln 961
Einfügen von Datensätzen mit InsertOnSubmit 963
Daten löschen mit DeleteOnSubmit 967
Concurrency-Checks (Schreibkonfliktprüfung) 968
Transaktionen 971
TransactionScope (Transaktionsgültigkeitsbereich) 971
Verwenden der Transaktionssteuerung des DataContext 972
Was, wenn LINQ einmal nicht reicht 973
LINQ-Abfragen dynamisch aufbauen 974
Abfragen und IQueryable 975
Dynamische Abfragen durch DynamicExtension.vb 976
35 LINQ to Entities - Programmieren mit dem Entity Framework 979
Voraussetzungen für das Verstehen dieses Kapitels 981
Technische Voraussetzungen 981
Prinzipielle Funktionsweise eines Entity Data Model (EDM) 981
LINQ to Entities - ein erstes Praxisbeispiel 983
Nachträgliches Ändern des Entitätscontainernamens 988
Abfrage von Daten eines Entitätsmodells 990
Abfrage von Daten mit LINQ to Entities-Abfragen 991
Wie Abfragen zum Datenprovider gelangen - Entity-SQL (eSQL) 993
XX|| Inhaltsverzeichnis
Anpassen des Namens der Entitätenmenge 993
Generierte SQL-Anweisungen unter die Lupe nehmen 994
Lazy- und Eager-Loading im Entity Framework 996
Anonymisierungsvermeidung bei Abfragen in verknüpften Tabellen 1000
Kompilierte Abfragen 1003
Daten verändern, speichern, einfügen und löschen 1004
Datenänderungen mit SaveChanges an die Datenbank übermitteln 1004
Einfügen von verknüpften Daten in Datentabellen 1006
Daten aus Tabellen löschen 1008
Concurrency-Checks (Schreibkonfliktprüfungen) 1010
Ausblick 1012
Teil G - SmartClient-Anwendungen entwickeln 1013
36 Einführung in SmartClient-Entwicklung 1015
Die Gretchenfrage: Windows Forms oder WPF? 1016
Vorüberlegungen zur Smart Client-Entwicklung 1018
Strukturieren von Daten in Windows Forms-Anwendungen 1019
37 Programmieren mit Windows Forms 1031
Formulare zur Abfrage von Daten verwenden - Aufruf von Formularen aus Formularen. 1032
Der Umgang mit modalen Formularen 1032
Überprüfung auf richtige Benutzereingaben in Formularen 1043
Anwendungen über die Tastatur bedienbar machen 1047
Definition von Schnellzugriffstasten per » «-Zeichen 1048
Accept- und Cancel-Schaltflächen in Formularen 1051
Über das »richtige« Schließen von Formularen 1051
Unsichtbarmachen eines Formulars mit Hide 1052
Schließen des Formulars mit Close 1052
Entsorgen des Formulars mit Dispose 1053
Grundsätzliches zum Darstellen von Daten aus Auflistungsklassen in Steuerelementen 1053
Darstellen von Daten aus Auflistungen im ListView-Steuerelement 1054
Spaltenköpfe 1054
Hinzufügen von Daten 1055
Beschleunigen des Hinzufügens von Elementen 1055
Automatisches Anpassen der Spaltenbreiten nach dem Hinzufügen aller Elemente 1056
Zuordnen von ListViewItems und Objekten, die sie repräsentieren 1056
Feststellen, dass ein Element der Liste selektiert wurde 1057
Selektieren von Elementen in einem List View-Steuerelement 1058
Verwalten von Daten aus Auflistungen mit dem DataGridView-Steuerelement 1059
Über Datenbindung, Bindungsquellen, die BindingSource-Komponente
und warum Currency nicht unbedingt Währung heißt 1060
Erstellen einer gebundenen DataGridView mit dem Visual Basic-Designer 1062
4
Inhaltsverzeichnis XXM
Sortieren und Benennen der Spalten eines DataGridView-Steuerelements 1067
Programmtechnisches Abrufen der aktuellen Zeile und aktuellen Spalte 1072
Formatieren von Zellen 1073
Problemlösung für das Parsen eines Zellenwerts mit einem komplexen Anzeigeformat 1073
Verhindern des Editierens bestimmter Spalten aber Gestatten Ihrer Neueingabe 1075
Überprüfen der Richtigkeit von Eingaben auf Zellen- und Zeilenebene 1076
Ändern des Standardpositionierungsverhaltens des Zellencursors nach dem
Editieren einer Zelle 1079
Entwickeln von MDI-Anwendungen 1081
Vererben von Formularen 1089
Ein erster Blick auf den Designer-Code eines Formulars 1093
Modifizierer von Steuerelementen in geerbten Formularen 1095
38 Im Motorraum von Formularen und Steuerelementen 1097
Über das Vererben von Form und die Geheimnisse des Designer-Codes 1098
Geburt und Tod eines Formulars - New und Dispose 1100
Ereignisbehandlung von Formularen und Steuerelementen 1104
Vom Programmstart mithilfe des Anwendungsframeworks über eine Benutzeraktion
zur Ereignisauslösung 1105
Implementieren neuer Steuerelementereignisse auf Basis
von Warteschlangenauswertungen 1109
Wer oder was löst welche Formular- bzw. Steuerelementereignisse wann aus? 1110
Kategorie Erstellen und Zerstören des Formulars 1114
Kategorie Mausereignisse des Formulars 1116
Kategorie Tastaturereignisse des Formulars 1118
Kategorie Position und Größe des Formulars 1119
Kategorie Anordnen der Komponenten und Neuzeichnen des Formulars 1120
Kategorie Fokussierung des Formulars 1121
Kategorie Tastaturvorverarbeitungsnachrichten des Formulars 1122
Kategorie Erstellen/Zerstören des Controls (des Steuerelements) 1124
Kategorie Mausereignisse des Controls 1124
Kategorie Tastaturereignisse des Controls 1127
Kategorie Größe und Position des Controls 1128
Kategorie Neuzeichnen des Controls und Anordnen untergeordneter Komponenten. 1129
Kategorie Tastaturnachrichtenvorverarbeitung des Controls 1131
Die Steuerungsroutinen des Beispielprogramms 1132
Anmerkungen zum Beispielprogramm 1137
39 Individuelles Gestalten von Elementinhalten mit GDI+ 1139
Einführung in GDI+ 1141
Linien, Flächen, Pens und Brushes 1144
Angabe von Koordinaten 1144
Wieso Integer- und Fließkommaangaben für Positionen und Ausmaße? 1145
Xxiy Inhaltsverzeichnis
Wie viel Platz habe ich zum Zeichnen? Ü45
Das gute, alte Testbild und GDI+ im Einsatz sehen! H46
Flimmerfreie, fehlerfreie und schnelle Darstellungen von GDI+-Zeichnungen 1155
Zeichnen ohne Flimmern *¦*¦"
Programmtechnisches Bestimmen der Formulargröße 1159
Was Sie beim Zeichnen von breiten Linienzügen beachten sollten 1161
40 Entwickeln von Steuerelementen für Windows Forms 1169
Neue Steuerelemente auf Basis vorhandener Steuerelemente implementieren 1171
Der Weg eines Steuerelements vom Klassencode in die Toolbox 1173
Implementierung von Funktionslogik und Eigenschaften 1175
Steuern von Eigenschaften im Eigenschaftenfenster 1177
Entwickeln von konstituierenden Steuerelementen 1180
Anlegen eines Projekts für die Erstellung einer eigenen Steuerelement-Assembly 1181
Initialisieren des Steuerelements 1186
Methoden und Ereignisse delegieren 1188
Implementieren der Funktionslogik 1189
Implementierung der Eigenschaften 1191
Erstellen von Steuerelementen von Grund auf 1192
Ein Label, das endlich alles kann 1193
Vorüberlegungen und Grundlagenerarbeitung 1194
Klasseninitialisierungen und Einrichten der Windows-Darstellungsstile
des Steuerelements 1195
Zeichnendes Steuerelements 1197
Größenbeeinflussung durch andere Eigenschaften 1200
Implementierung der Blink-Funktionalität 1203
Designercode-Generierung und Zurücksetzen von werteerbenden Eigenschaften
mit ShouldSerializeXXX und ResetXXX 1205
Designer-Reglementierungen 1207
Teil H - Entwickeln von WPF-Anwendungen 1211
41 Wichtige Steuerelemente zum Aufbau von WPF-Anwendungen 1213
Einführung 1214
Weitergeleitete Ereignisse (Routed Events) 1215
Weitergeleitete Befehle (Routed Commands) 1224
Eigenschaften der Abhängigkeiten 1228
Eingaben 1231
Schaltflächen 1233
Bildlaufleisten und Schieberegler 1235
Steuerelemente für die Texteingabe 1239
Das Label-Element 1243
Menüs 1244
Werkzeugleisten (Toolbars) 1249
Zusammenfassung 1252
Inhaltsverzeichnis ^V
42 Layout 1253
Das StackPanel 1254
DasDockPanel 1256
DasGrid 1260
Das GridSplitter-Element 1266
Das UniformGrid 1269
Das Canvas-Element 1270
Das Viewbox-Element 1271
Text-Layout 1273
Das WrapPanel 1277
Standard-Layout-Eigenschaften 1278
Width- und Height-Eigenschaft 1278
MinWidth-, MaxWidth-, MinHeight- und MaxHeight-Eigenschaft 1278
HorizontalAlignment- und VerticalAlignment-Eigenschaft 1279
Margin-Eigenschaft 1279
Padding-Eigenschaft 1280
Zusammenfassung 1281
43 Grafische Grundelemente 1283
Grundlagen 1284
Die Grafik-Auflösung 1291
Die grafischen Grundelemente 1293
Rechteck und Ellipse 1294
Einfache Transformationen 1296
Die Linie 1297
DiePolylinie 1298
Das Path-Element 1302
Hit-Testing mit dem Path-Element 1304
Zusammenfassung 1307
Teil I - Anwendungsausführung parallelisieren 1309
44 Einführung in die Technik des Threading 1311
45 Threading-Techniken 1315
Gleichzeitige Codeausführung mithilfe eines Thread-Objektes 1316
Starten von Threads 1318
Grundsätzliches über Threads 1318
Synchronisieren von Threads 1319
Synchronisieren der Codeausführung mit SyncLock 1319
Mehr Flexibilität in kritischen Abschnitten mit der Monitor-Klasse 1322
Synchronisieren von beschränkten Ressourcen mit Mutex 1326
Weitere Synchronisierungsmechanismen 1328
XXVI Inhaltsverzeichnis
Verwenden von Steuerelementen in Threads 1331
Managen von Threads 1333
Starten eines Threads mit Start 1333
Vorübergehendes Aussetzen eines Threads mit Sleep - Statusänderungen
im Framework bei Suspend und Resume 1333
Abbrechen und Beenden eines Threads 1334
Datenaustausch zwischen Threads durch Kapseln von Threads in Klassen 1338
Der Einsatz von Thread-Klassen in der Praxis 1341
Verwenden des Thread-Pools 1349
Thread-sichere Formulare in Klassen kapseln 1354
Threads durch den Background-Worker initiieren 1357
Threads durch asynchrone Aufrufe von Delegaten initiieren 1360
Stichwortverzeichnis 1363 |
adam_txt |
Inhaltsverzeichnis
Vorwort XXVII
Einleitung XXIX
Danksagungen XXX
Support XXXI
Teil A - Der Einstieg in Sprache und Entwicklungswerkzeuge l
1 Einführung 3
Welches Vorwissen verlangt dieses Buch? 4
Welche Softwarevoraussetzungen benötigen Sie? 5
Wissenswertes zur Installation von Visual Studio 2008 7
LaufFähigkeit von Visual Studio und den erstellten Kompilaten
unter den verschiedenen Betriebssystemen 8
Parallelinstallation von Visual Studio 6, Visual Studio 2002, Visual Studio 2003,
Visual Studio 2005 und Visual Studio 2008 9
Die SQL-Datenbanken für Visual Studio 2008: SQL Server 2005 und SQL Server 2008 9
Der Umgang mit Web-Links in diesem Buch - http://www.activedevelop.de/vb2008 10
Die Begleitdateien zum Buch und das E-Book 11
Nützliches zu Visual Basic 2008 - www.codeclips.de 11
2 »Symbolischer Allzweckbefehlscode für Anfänger« 13
Visual Studio das erste Mal starten 14
Konsolenanwendungen (Console Applications) 16
Anwendung starten 18
Anatomie eines (Visual Basic-)Programms 20
Programmstart mit der Main-Methode 23
Methoden mit und ohne Rückgabewerte 25
Funktionen mit Rückgabewerten 25
Deklaration von Variablen 25
Ausdrücke und Variablendefinitionen 27
Gleichzeitiges Deklarieren und Definieren von Variablen 27
Komplexe Ausdrücke 28
Boolesche Ausdrücke 29
Und was sind Objekte im Unterschied zu »normalen« Datentypen? 30
Ableiten von Objekten und abstrakten Objekten 31
Programmstrukturen 32
Schleifen 32
For/Next-Schleifen 32
For Each-Schleifen 35
Do/Loop-und While/End While-Schleifen 36
Exit - Vorzeitiges Verlassen von Schleifen 37
Continue - Vorzeitige Schleifenwiederholung 37
Anweisungen, die Programmcode bedingt ausführen - If/Then/Else und Select/Case 38
If. Then . Else . Eiself. Endlf 38
Vergleichsoperatoren, die boolesche Ergebnisse zurückliefern 39
Select. Case . End Select 41
Vereinfachter Zugriff auf Objekte mit With/EndWith 42
Gültigkeitsbereiche von lokalen Variablen 42
3 Einführung in das .NET Framework 45
Was ist .NET und aus was besteht es? 46
Was ist eine Assembly? 47
Was ist ein Namespace? 47
Was versteckt sich hinter CLR (Common Language Runtime) und CLI (Common
Language Infrastructure)? 51
Was ist die FCL (Framework Class Library) und was die BCL
(die Base Class Library)? 52
Was ist das CTS (Common Type System)? 53
Was ist CIL/MSIL (Microsoft-Intermediate Language) und wozu dient der JITter? 53
Erzwungene Typsicherheit und Deklarationszwang von Variablen 55
Namensgebung von Variablen 58
Und welche Sprache ist die beste? 60
4 Der Schnelleinstieg in die Bedienung der Visual Studio-Entwicklungsumgebung (IDE) 61
Der erste Start von Visual Studio 62
Übernehmen von Visual Studio 2005-Einstellungen 63
Visual Studio 2005-Projekte zu Visual Studio 2008 migrieren 63
Die Startseite - der erste Ausgangspunkt für Ihre Entwicklungen 65
Der Visual Studio-Nachrichten-Channel 65
Anpassen der Liste der zuletzt bearbeiteten Projekte 66
Die IDE auf einen Blick 67
Genereller Umgang mit Fenstern in der Entwicklungsumgebung 69
Dokumentfenster 69
Toolfenster 6g
Andocken von Toolfenstern 70
Arbeiten mit Toolfenstern 7X
Navigieren durch Dateien und Toolfenster mit dem IDE-Navigator 72
Die wichtigsten Toolfenster 72
Projektmappen und Projekte mit dem Projektmappen-Explorer verwalten 73
Projektdateitypen 74
Alle Projektdateien anzeigen 74
Weitere Funktionen des Projektmappen-Explorers 75
Organisieren von Codedateien in Unterordnern 75
Dateioperationen innerhalb des Projektmappen-Explorers 76
Das Eigenschaftenfenster 77
Einrichten und Verwalten von Ereigniscode mit dem Eigenschaftenfenster 77
Die Fehlerliste 79
Konfigurieren von Warnungen in den Projekteigenschaften 80
Die Aufgabenliste 81
Das Ausgabefenster 83
Die dynamische Hilfe 85
Die Klassenansicht 87
Codeeditor und Designer 87
Wichtige Tastenkombinationen auf einen Blick 87
Verbesserungen an der integrierten Entwicklungs- Umgebung (IDE) in Visual Studio 2008 89
Einfacheres Positionieren und Andocken von Toolfenstern 89
Navigieren durch Dateien mit dem IDE-Navigator 90
Wechseln zu bestimmten Dateien im Editor 90
Navigieren zwischen Toolfenstern in der IDE 91
Umgebungsschriftart definieren 91
Designer für Windows Presentation Foundation-Projekte 93
IntelliSense-Verbesserungen 95
Syntax-Tooltipps 95
Filtern beim Tippen 96
5 Einführung in Windows Forms - Designer und Codeeditor am Beispiel 99
Das Fallbeispiel - Der DVD-Hüllen-Generator »Covers« 100
Das »Pflichtenheft« von Covers 101
Erstellen eines neuen Projektes 103
Gestalten von Formularen mit dem Windows Forms-Designer 105
Positionieren von Steuerelementen 105
Häufige Arbeiten an Steuerelementen mit Smarttags erledigen 109
Dynamische Anordnung von Steuerelementen zur Laufzeit 110
Automatisches Scrollen von Steuerelementen in Containern 121
Selektieren von Steuerelementen, die Sie mit der Maus nicht erreichen 122
Festlegen der Tabulatorreihenfolge (Aktivierreihenfolge) von Steuerelementen 123
Über die Eigenschaften Name, Text und Caption 125
Einrichten von Bestätigungs- und Abbrechen-Funktionalitäten für
Schaltflächen in Formularen 127
Hinzufügen neuer Formulare zu einem Projekt 127
Wie geht's weiter? 129
Namensgebungskonventionen für Steuerelemente in diesem Buch 130
Funktionen zum Layouten von Steuerelementen im Designer 131
Tastaturkürzel für die Platzierung von Steuerelementen 133
Der Codeeditor 133
Die Wahl der richtigen Schriftart für ermüdungsfreies Arbeiten 133
Viele Wege führen zum Codeeditor 134
IntelliSense - Ihr stärkstes Zugpferd im Coding-Stall 135
Automatische Vervollständigung von Struktur-Schlüsselworten und Codeeinrückung 137
Fehlererkennung im Codeeditor 138
XML-Dokumentationskommentare für IntelliSense bei eigenen Objekten und Klassen 142
Hinzufügen neuer Codedateien zum Projekt 146
Code umgestalten (Refactoring) 148
Die Bibliothek der Codeausschnitte (Code Snippets Library) 151
Einstellen des Speicherns von Anwendungseinstellungen mit dem Settings-Designer. 155
Weitere Funktionen des Codeeditors 163
Aufbau des Codefensters 163
Automatischen Zeilenumbruch aktivieren/deaktivieren 163
Navigieren zu vorherigen Bearbeitungspositionen im Code 164
Rechteckige Textmarkierung 164
Gliederungsansicht 165
Suchen und Ersetzen, Suche in Dateien 166
Suchen in Dateien 167
Inkrementelles Suchen 168
Gehe zu Zeilennummern 168
Lesezeichen 169
6 Einführung in Windows Presentation Foundation 171
Was ist die Windows Presentation Foundation? 172
Was ist so neu an WPF? 173
25 Jahre Windows, 25 Jahre gemalte Schaltflächen 174
Wie WPF Designer und Entwickler zusammenbringt 185
XAML: Extensible Application Markup Language 187
DerWPF-Designer 194
Ereignisbehandlungsroutinen in WPF und Visual Basic 195
Logischer und visueller Baum 195
Die XAML-Syntax im Überblick 197
Ein eigenes XAMLPad 201
Zusammenfassung 206
7 Die essentiellen .NET-Datentypen 207
Numerische Datentypen 208
Numerische Datentypen deklarieren und definieren 209
Delegation numerischer Berechnungen an den Prozessor 210
Hinweis zur CLS-Konformität 213
Die numerischen Datentypen auf einen Blick 213
Tabellarische Zusammenfassung der numerischen Datentypen 220
Rundungsfehler bei der Verwendung von Single und Double 221
Besondere Funktionen, die für alle numerischen Datentypen gelten 224
Spezielle Funktionen der Fließkommatypen 228
Spezielle Funktionen des Wertetyps Decimal 230
Der Datentyp Char 230
Der Datentyp String 231
Strings - gestern und heute 232
Strings deklarieren und definieren 232
Der String-Konstruktor als Ersatz von String$ 233
Einem String Zeichenketten mit Sonderzeichen zuweisen 234
Speicherbedarf von Strings 235
Strings sind unveränderlich 235
Speicheroptimierung von Strings durch das Framework 236
Ermitteln der String-Länge 237
Ermitteln von Teilen eines Strings oder eines einzelnen Zeichens 237
Angleichen von String-Längen 238
Suchen und Ersetzen 238
Algorithmisches Auflösen eines Strings in Teile 242
Ein String-Schmankerl zum Schluss 243
Iterieren durch einen String 247
Stringbuilder vs. String - wenn es auf Geschwindigkeit ankommt 247
Der Datentyp Boolean 254
Konvertieren von und in numerische Datentypen 254
Konvertierung von und in Strings 255
Der Datentyp Date 255
Rechnen mit Zeiten und Datumswerten - TimeSpan 256
Bibliothek mit brauchbaren Datumsrechenfunktionen 257
Zeichenketten in Datumswerte wandeln 260
.NET-Äquivalente primitiver Datentypen 263
8 Tipps Tricks für das angenehme Entwickeln zuhause und unterwegs 267
Der Einsatz mehrerer Monitore 268
Und die Bildschirmdarstellung auf Notebooks? 270
Sichern, Wiederherstellen oder Zurücksetzen aller Visual Studio-Einstellungen 270
Sichern der Visual Studio-Einstellungen 270
Wiederherstellen von Visual Studio-Einstellungen 272
Zurücksetzen der IDE-Einstellungen in den Ausgangszustand 274
Wieviel Arbeitsspeicher darf's denn sein? 276
Testen Ihrer Software unterwegs und zuhause mit Virtualisierungssystemen 277
Microsoft Virtual PC 278
Virtual Server 281
Hyper-V in Windows Server 2008 282
Hilfe zur Selbsthilfe 283
XU Inhaltsverzeichnis
Erweitern Sie die Codeausschnittsbibliothek um eigene Codeausschnitte 288
Erstellen einer Code Snippets-XML-Vorlage 290
Hinzufügen einer neuen Snippet-Vorlage zur Snippet-Bibliothek
(Codeausschnittsbibliothek) 293
Verwenden des neuen Codeausschnittes "4
Parametrisieren von Codeausschnitten 295
Teil B - Umsteigen auf Visual Basic 2008 303
9 Migrieren zu Visual Basic 2008 - Vorüberlegungen 305
Das Problem der Visual Basic 6.0-Migration 306
Kurzfristige Rettung mit virtuellen PCs 308
Grundsätzliches zur Umstellung von Visual Basic 6-Anwendungen auf.NET 308
Aufwandsabschätzung einer Migration 310
Interop Forms Toolkit - »Weiche Migration« für kleinere und modulare Projekte 311
10-teilige Webcast-Reihe zum Thema Migration 311
10 Migration von Visual Basic 6-Anwendungen 313
Unterschiede in der Variablenbehandlung 315
Veränderungen bei primitiven Integer-Variablen - die Größen von
Integer und Long und der neue Typ Short 315
Typen, die es nicht mehr gibt 316
. und die primitiven Typen, die es jetzt gibt 316
Deklaration von Variablen und Variablentypzeichen 318
Typsicherheit und Typliterale zur Typdefinition von Konstanten 320
Deklaration und Definition von Variablen »in einem Rutsch« 325
Lokaler Typrückschluss 325
Vorsicht: New und New können zweierlei in VB6 und VB.NET sein! 326
Überläufe bei Fließkommazahlen und nicht definierte Zahlenwerte 327
Alles ist ein Objekt oder »let Set be« 329
Gezieltes Freigeben von Objekten mit Using 330
Direktdeklaration von Variablen in For-Schleifen 333
Unterschiede bei verwendbaren Variablentypen für For/Each in VB6 und VB.NET 334
Continue in Schleifen 334
Gültigkeitsbereiche von Variablen 335
Globale bzw. öffentliche (public) Variablen 335
Variablen mit Gültigkeit auf Modul, Klassen oder Formularebene 336
Gültigkeitsbereiche von lokalen Variablen 337
Arrays 339
Die Operatoren += und -= und ihre Verwandten 340
Die Bitverschiebeoperatoren « und » 341
Fehlerbehandlung 342
Elegantes Fehlerabfangen mit Try/Catch/Finally 344
Kurzschlussauswertungen mit OrElse und AndAlso 348
Inhaltsverzeichnis , ^ s , J*'|
Variablen und Argumente auch an Subs in Klammern! 350
Namespaces und Assemblies 350
Assemblies 350
Namespaces 353
So bestimmen Sie Assembly-Namen und Namespace für Ihre eigenen Projekte 356
Verschiedene Namespaces in einer Assembly 357
Zugriff auf den Framework-System-Namespace mit Global 358
11 Neues im Visual Basic 2008-Compiler 361
First and defmitely not least - die Performance des Visual Basic 2008-Compilers 362
Framework Version-Targeting (Framework-Versionszielwahl) bei Projekten 364
Lokale Typrückschlüsse (Local Type Inference) 366
Generelles Einstellen von Option Infer, Strict, Explicit und Compare 367
If-Operator vs. Ilf-Funktion 368
Festlegen der Projekteinstellungen für die Benutzerkontensteuerung (Windows Vista) 368
Nullable-Typen 369
Besonderheiten bei Nullable beim Boxen 372
Anonyme Typen 374
Lambda-Ausdrücke 375
Abfrageausdrücke mit LINQ 375
Erweiterungsmethoden 375
Der eigentliche Zweck von Erweiterungsmethoden 376
Inhalte von System- oder externen Typen in Vorschaufenstern fürs
Debuggen konfigurieren 377
Zugriff auf den .NET Framework-Quellcode beim Debuggen 378
Teil C - Objektorientiertes Programmieren 385
12 Einführung in die objektorientierte Programmierung 387
Was spricht für Klassen und Objekte? 389
Miniadresso - die prozedurale Variante 390
13 Klassentreffen 393
Was ist eine Klasse? 394
Klassen mit New instanziieren 394
New oder nicht New - wieso es sich bei Objekten um Verweistypen handelt 396
Nothing 399
Klassen anwenden 400
Wertetypen 401
Wertetypen mit Structure erstellen 403
Wertetypen durch Zuweisung klonen 403
Wann Werte-, wann Referenztypen verwenden? 404
Konstanten vs. Felder (Klassen-Membervariablen) 405
Xiv Inhaltsverzeichnis
14 Klassencode entwickeln 407
Eigenschaften 408
Zuweisen von Eigenschaften 410
Ermitteln von Eigenschaften 410
Eigenschaften mit Parametern 412
Default-Eigenschaften (Standardeigenschaften) 413
Öffentliche Variablen oder Eigenschaften - eine Glaubensfrage? 414
Der Konstruktor einer Klasse - bestimmen, was bei New passiert 418
Parametrisierte Konstruktoren 420
Hat jede Klasse einen Konstruktor? 422
Klassenmethoden mit Sub und Function 426
Überladen von Methoden, Konstruktoren und Eigenschaften 427
Methodenüberladung und optionale Parameter 429
Gegenseitiges Aufrufen von überladenen Methoden 430
Gegenseitiges Aufrufen von überladenen Konstruktoren 432
Überladen von Eigenschaften-Prozeduren mit Parametern 433
Zugriffsmodifizierer für Klassen, Methoden und Eigenschaften - Gültigkeitsbereiche
definieren 434
Zugriffsmodifizierer bei Klassen 434
Zugriffsmodifizierer bei Prozeduren (Subs, Functions, Properties) 435
Zugriffsmodifizierer bei Variablen 435
Unterschiedliche Zugriffsmodifizierer für Eigenschaften-Accessors 436
Statische Komponenten 437
Statische Methoden 438
Statische Eigenschaften 440
Module in Visual Basic - automatisch statische Klassen erstellen 440
Delegaten und Lambda-Ausdrücke 441
Umgang mit Delegaten am Beispiel 441
Lambda-Ausdrücke 444
Lambda-Ausdrücke am Beispiel 445
Über mehrere Codedateien aufgeteilter Klassencode - Das Partial-Schlüsselwort 447
Partieller Klassecode bei Methoden und Eigenschaften 447
15 Vererben von Klassen und Polymorphie 449
Wiederverwendbarkeit von Klassen durch Vererbung (Inheritance) 450
Initialisierung von Member-Variablen bei Klassen ohne Standardkonstruktoren 458
Überschreiben von Methoden und Eigenschaften 459
Überschreiben vorhandener Methoden und Eigenschaften von Framework-Klassen. 462
Das Speichern von Objekten im Arbeitsspeicher 463
Polymorphie 466
Polymorphie in der Praxis 470
Polymorphie und der Gebrauch von Me, MyClass und MyBase 483
Abstrakte Klassen und virtuelle Prozeduren 485
Eine Klasse mit Mustlnherit als abstrakt deklarieren 485
Inhaltsverzeichnis . , *Y
Eine Methode oder Eigenschaft einer abstrakten Klasse mit
MustOverride als virtuell deklarieren 486
Schnittstellen (Interfaces) 488
Unterstützung bei abstrakten Klassen und Schnittstellen durch den Editor 495
Schnittstellen, die Schnittstellen implementieren 500
Einbinden mehrerer Schnittstellen in eine Klasse 502
Die Methoden und Eigenschaften von Object 503
Polymorphie am Beispiel von ToString und der ListBox 503
Prüfen auf Gleichheit von Objekten mit Object.Equals oder dem Is/IsNot-Operator. 506
Equals, Is und IsNot im praktischen Entwicklungseinsatz 509
Übersicht über die Eigenschaften und Methoden von Object 510
Shadowing (Überschatten) von Klassenprozeduren 510
Shadows als Unterbrecher der Klassenhierarchie 512
Sonderform »Modul« in Visual Basic 516
Singleton-Klassen und Klassen, die sich selbst instanziieren 516
16 Entwickeln von Wertetypen 519
Erstellen von Wertetypen mit Structure am praktischen Beispiel 520
Unterschiedliche Verhaltensweisen von Werte- und Referenztypen 526
Verhalten der Parameterübergabe mit ByVal und ByRef steuern 527
Konstruktoren und Standardinstanziierungen von Wertetypen 528
Gezieltes Zuweisen von Speicherbereichen für Struktur-Member mit den StructLayout-
und FieldOffset-Attributen 531
Performance-Unterschiede zwischen Werte- und Referenztypen 533
Wieso kann durch Vererben aus Object (Referenztyp) ValueType (Wertetyp) werden? 534
17 Typenumwandlung (Type Casting) und Boxing von Wertetypen 535
Konvertieren von primitiven Typen 536
Konvertieren von und in Zeichenketten (Strings) 538
Konvertieren von Strings mit den Parse- und ParseExact-Methoden 539
Konvertieren in Strings mit der ToString-Methode 539
Abfangen von fehlschlagenden Typkonvertierungen mit TryParse
oder Ausnahmebehandlern 540
Casten von Referenztypen mit DirectCast 541
Boxing von Wertetypen und primitiven Typen 542
Übrigens: Was DirectCast nicht kann 545
Wann wird und wann wird nicht geboxt? 545
Wertänderung von durch Schnittstellen geboxten Wertetypen 545
18 Beerdigen von Objekten - Dispose, Finalize und der Garbage Collector 549
Der Garbage Collector - die Müllabfuhr in .NET 552
Generationen 553
Die Geschwindigkeit der Objektbereitstellung 554
XYI Inhaltsverzeichnis
Finalize JJ6
Wann Finalize nicht stattfindet 557
Dispose 560
Unterstützung durch den Visual Basic-Editor beim Einfügen
eines Disposable-Patterns "0
19 Eigene Operatoren für benutzerdefinierte Typen 571
Einführung in Operatorenprozeduren 572
Vorbereitung einer Struktur oder Klasse für Operatorenprozeduren 574
Implementierung von Operatoren 578
Überladen von Operatorenprozeduren 579
Implementierung von Vergleichsoperatoren 580
Implementierung von Typkonvertierungsoperatoren mit Operator CType 581
Implementieren von Wahr- und Falsch-Auswertungsoperatoren 583
Problembehandlungen bei Operatorenprozeduren 584
Aufgepasst bei der Verwendung von Referenztypen 584
Übersicht der implementierbaren Operatoren 586
20 Ereignisse und Ereignishandler 589
Konsumieren von Ereignissen mit WithEvents und Handies 591
Auslösen von Ereignissen 594
Der Umweg über Onxxx 595
Zur-Verfügung-Stellen von Ereignisparametern 596
Die Quelle des Ereignisses: Sender 597
Nähere Informationen zum Ereignis: EventArgs 598
Dynamisches Anbinden von Ereignissen mit AddHandler 600
Teil D - Programmieren von und mit Datenstrukturen des .NET Frameworks 609
21 Enums 611
Bestimmung der Werte der Aufzählungselemente 613
Bestimmung der Typen der Aufzählungselemente 614
Ermitteln des Elementtyps zur Laufzeit 614
Konvertieren von Enums 614
In Zahlenwerte umwandeln und aus Werten definieren 615
In Strings umwandeln und aus Strings definieren 615
Flags-Enum (Flags-Aufzählungen) 615
Abfrage von Flags-Aufzählungen 617
22 Arrays und Coliections 619
Grundsätzliches zu Arrays 620
Änderung der Array-Dimensionen zur Laufzeit 621
Wertevorbelegung von Array-Elementen im Code 623
Mehrdimensionale und verschachtelte Arrays 624
Die wichtigsten Eigenschaften und Methoden von Arrays 625
Inhaltsverzeichnis ^ W
Implementierung von Sort und BinarySearch für eigene Klassen 627
Enumeratoren 635
Benutzerdefinierte Enumeratoren durch Implementieren von IEnumerable 636
Grundsätzliches zu Auflistungen (Collections) 638
Wichtige Auflistungen der Base Class Library 642
ArrayList - universelle Ablage für Objekte 642
Typsichere Auflistungen auf Basis von CollectionBase 644
Hashtables - für das Nachschlagen von Objekten 648
Anwenden von Hashtables 648
Verwenden eigener Klassen als Schlüssel (Key) 658
Enumerieren von Datenelementen in einer Hashtable 661
DictionaryBase 662
Queue - Warteschlangen im FIFO-Prinzip 662
Stack - Stapelverarbeitung im LIFO-Prinzip 663
SortedList - Elemente ständig sortiert halten 664
23 Generics (Generika) und generische Auflistungen 667
Einführung 668
Generics: Verwenden einer Codebasis für verschiedene Typen 668
Lösungsansätze 669
Typengeneralisierung durch den Einsatz generischer Datentypen 671
Beschränkungen (Constraints) 674
Beschränkungen für generische Typen auf eine bestimmte Basisklasse 675
Beschränkungen auf Klassen, die bestimmte Schnittstellen implementieren 679
Beschränkungen auf Klassen, die über einen Standardkonstruktor verfügen 683
Beschränkungen auf Wertetypen 683
Kombinieren von Beschränkungen und Bestimmen mehrerer Typparameter 683
Generische Auflistungen (Generic Collections) 684
KeyedCollection - Schlüssel/Wörterbuch-Auflistung mit zusätzlichen Index-Abrufen 687
Elementverkettungen mit LinkedList(Of) 689
List(Of)-Auflistungen und Lambda-Ausdrücke 691
24 Serialisierung von Typen 697
Einführung in Serialisierungstechniken 698
Serialisieren mit SoapFormatter und BinaryFormatter 701
Flaches und tiefes Klonen von Objekten 706
Universelle DeepClone-Methode 710
Serialisieren von Objekten mit Zirkelverweisen 712
Serialisierung von Objekten unterschiedlicher Versionen beim Einsatz
von BinaryFormatter oder SoapFormatter-Klassen 715
XML-Serialisierung 715
Prüfen der Versionsunabhängigkeit der XML-Datei 720
Serialisierungsfehler bei KeyedCollection 721
Workaround 725
XYIH Inhaltsverzeichnis
25 Attribute und Reflection - Wenn Klassen ein Bewusstsein entwickeln 727
Genereller Umgang mit Attributen 728
Einsatz von Attributen am Beispiel von ObsoleteAttribute 729
Die speziell in Visual Basic verwendeten Attribute 731
Einführung in Reflection ' ^^
Die Type-Klasse als Ausgangspunkt für alle Typenuntersuchungen 733
Klassenanalysefunktionen, die ein Type-Objekt bereitstellt 734
Objekthierarchie von Memberlnfo und Casten in den spezifischen Info-Typ 736
Ermitteln von Eigenschaftswerten über Propertylnfo zur Laufzeit 737
Erstellung benutzerdefinierter Attribute und deren Erkennen zur Laufzeit 737
Ermitteln von benutzerdefinierten Attributen zur Laufzeit 741
26 Kultursensible Klassen entwickeln 743
Allgemeines über Format Provider in .NET 744
Kulturabhängige Formatierungen mit Culturelnfo 745
Vermeiden von kulturabhängigen Programmfehlern 747
Formatierung durch Formatzeichenfolgen 748
Formatierung von numerischen Ausdrücken durch Formatzeichenfolgen 748
Formatierung von numerischen Ausdrücken durch vereinfachte Formatzeichenfolgen 751
Formatierung von Datums- und Zeitausdrücken durch Formatzeichenfolgen 752
Formatierung von Zeitausdrücken durch vereinfachte Formatzeichenfolgen 757
Gezielte Formatierungen mit Format Providern 758
Gezielte Formatierungen von Zahlenwerten mit NumberFormatlnfo 758
Gezielte Formatierungen von Zeitwerten mit DateTimeFormatlnfo 759
Kombinierte Formatierungen 760
Ausrichtungen in kombinierten Formatierungen 761
Angeben von Formatzeichenfolgen in den Indexkomponenten 762
So helfen Ihnen benutzerdefinierte Format Provider, Ihre Programme
zu internationalisieren 763
Benutzerdefinierte Format Provider durch IFormatProvider und ICustomFormatter. 774
Automatisch formatierbare Objekte durch Einbinden von IFormattable 777
27 Reguläre Ausdrücke (Regulär Expressions) 779
RegExperimente mit dem RegExplorer 780
Erste Gehversuche mit Regulären Ausdrücken 782
Einfache Suchvorgänge 782
Einfache Suche nach Sonderzeichen 783
Komplexere Suche mit speziellen Steuerzeichen 784
Verwendung von Quantifizierern 786
Gruppen 788
Suchen und Ersetzen 79O
Captures ygj
Optionen bei der Suche 794
Steuerzeichen zu Gruppendefinitionen 795
Inhaltsverzeichnis XIX
Programmieren von Regulären Ausdrücken 796
Ergebnisse im Match-Objekt 796
Die Matches-Auflistung 797
Abrufen von Captures und Gruppen eines Match-Objektes 798
Regex am Beispiel: Berechnen beliebiger mathematischer Ausdrücke 800
Der Formelparser 802
Die Klasse ADFormularParser 802
Vererben der Klasse ADFormularParser, um eigene Funktionen hinzuzufügen 820
Teil E - Entwicklungsvereinfachungen in Visual Basic 2008 821
28 Eine philosophische Betrachtung der Visual Basic-spezifischen Vereinfachungen 823
Die VB2008-Vereinfachungen am Beispiel DotNetCopy 824
DotNetCopy mit /Autostart und /Silent-Optionen 827
Die prinzipielle Funktionsweise von DotNetCopy 829
29 Der My-Namespace 831
Formulare ohne Instanziierung aufrufen 833
Auslesen der Befehlszeilenargumente mit My.Application.CommandLineArgs 835
Gezieltes Zugreifen auf Ressourcen mit My.Resources 837
Anlegen und Verwalten von Ressource-Elementen 837
Abrufen von Ressourcen mit My.Ressources 838
Internationalisieren von Anwendungen mithilfe von Ressource-Dateien
und dem My-Namespace 840
Vereinfachtes Durchfuhren von Dateioperationen mit My.Computer.FileSystem 843
Verwenden von Anwendungseinstellungen mit My.Settings 846
30 Das Anwendungsframework 849
Die Optionen des Anwendungsframeworks 851
Windows XP Look and Feel für eigene Windows-Anwendungen - Visuelle XP-Stile
aktivieren 851
Verhindern, dass Ihre Anwendung mehrfach gestartet wird - Einzelinstanzanwendung
erstellen 851
MySettings-Einstellungen automatisch sichern - Eigene Einstellungen beim
Herunterfahren speichern 851
Bestimmen, welcher Benutzer-Authentifizierungsmodus verwendet wird 851
Festlegen, wann eine Anwendung »zu Ende« ist - Modus für das Herunterfahren 852
Einen Splash-Dialog beim Starten von komplexen Anwendungen anzeigen -
Begrüßungsdialog 852
Eine Codedatei implementieren, die Anwendungsereignisse behandelt 852
Xx Inhaltsverzeichnis
Teil F - Language Integrated Query - LINQ 857
31 Einführung in Language Integrated Query (LINQ) 859
Wie »geht« LINQ prinzipiell 862
Erweiterungsmethoden als Basis für LINQ 865
Die Where-Methode 867
Die Select-Methode 868
Anonyme Typen 8°'
Typrückschluss für generische Typparameter 869
Die OrderBy-Methode 872
Sortieren nach Eigenschaften, die per Variable übergeben werden 874
Die GroupBy-Methode 875
Kombinieren von LINQ-Erweiterungsmethoden 876
Vereinfachte Anwendung von LINQ - Erweiterungsmethoden mit der
LINQ-Abfragesyntax 878
32 LINQ to Objects 879
Einführung in LINQ to Objects 880
Verlieren Sie die Skalierbarkeit von LINQ nicht aus den Augen! 880
Der Aufbau einer LINQ-Abfrage 881
Kombinieren und verzögertes Ausführen von LINQ-Abfragen 887
Faustregeln für das Erstellen von LINQ-Abfragen 889
Kaskadierte Abfragen 890
Gezieltes Auslösen von Abfragen mit ToArray oder ToList 890
Verbinden mehrerer Auflistungen zu einer neuen 891
Implizite Verknüpfung von Auflistungen 892
Explizite Auflistungsverknüpfung mit Join 894
Gruppieren von Auflistungen 894
Gruppieren von Listen aus mehreren Auflistungen 896
Group Join 897
Aggregatfunktionen 898
Zurückliefern mehrerer verschiedener Aggregierungen 899
Kombinieren von gruppierten Abfragen und Aggregatfunktionen 899
33 LINQ to XML 901
Einführung in LINQ to XML 902
XML-Dokumente verarbeiten - Visual Basic 2005 im Vergleich mit Visual Basic 2008 903
XML-Literale - XML direkt im Code ablegen 904
Einbetten von Ausdrücken in XML-Literalen 905
Erstellen von XML mithilfe von LINQ 905
Abfragen von XML-Dokumenten mit LINQ to XML 907
IntelliSense-Unterstützung für LINQ to XML-Abfragen 908
Inhaltsverzeichnis ,. ^
34 LINQto SQL 911
Einleitung 912
Object Relational Mapper (O/RM) 912
Objekt-relationale Unverträglichkeit - Impedance Mismatch 913
Microsoft SQL Server 914
SQL Server 2008 Express Edition with Tools 915
Einsatz von SQL Server Express in eigenen Anwendungen 916
Voraussetzungen für die Beispiele dieses und des nächsten Kapitels 918
Download und Installation von SQL Server 2008 Express Edition with Tools 919
Installation der Beispieldatenbanken 928
Anfügen (»Attachen«) der Beispieldatenbanken an die SQL Server-Instanz 930
LINQ to SQL oder LINQ to Entities - was ist besser, was ist die Zukunft? 935
Hat LINQ to SQL eine Zukunft? 936
Entscheidungshilfe - Gegenüberstellung der wichtigsten Features von LINQ to SQL
und LINQ to Entities 938
Wie es bisher war - ADO.NET 2.0 vs. LINQ in .NET 3.5 939
LINQ to SQL am Beispiel - Die ersten Schritte 941
Protokollieren der generierten T-SQL-Befehle 951
Verzögerte Abfrageausführung und kaskadierte Abfragen 952
Eager und Lazy-Loading - Steuern der Ladestrategien bei l:n-Relationen 955
Trennen des Abfrageergebnisses vom Kontext 960
Daten verändern, speichern, einfügen und löschen 961
Datenänderungen mit SubmitChanges an die Datenbank übermitteln 961
Einfügen von Datensätzen mit InsertOnSubmit 963
Daten löschen mit DeleteOnSubmit 967
Concurrency-Checks (Schreibkonfliktprüfung) 968
Transaktionen 971
TransactionScope (Transaktionsgültigkeitsbereich) 971
Verwenden der Transaktionssteuerung des DataContext 972
Was, wenn LINQ einmal nicht reicht 973
LINQ-Abfragen dynamisch aufbauen 974
Abfragen und IQueryable 975
Dynamische Abfragen durch DynamicExtension.vb 976
35 LINQ to Entities - Programmieren mit dem Entity Framework 979
Voraussetzungen für das Verstehen dieses Kapitels 981
Technische Voraussetzungen 981
Prinzipielle Funktionsweise eines Entity Data Model (EDM) 981
LINQ to Entities - ein erstes Praxisbeispiel 983
Nachträgliches Ändern des Entitätscontainernamens 988
Abfrage von Daten eines Entitätsmodells 990
Abfrage von Daten mit LINQ to Entities-Abfragen 991
Wie Abfragen zum Datenprovider gelangen - Entity-SQL (eSQL) 993
XX|| Inhaltsverzeichnis
Anpassen des Namens der Entitätenmenge 993
Generierte SQL-Anweisungen unter die Lupe nehmen 994
Lazy- und Eager-Loading im Entity Framework 996
Anonymisierungsvermeidung bei Abfragen in verknüpften Tabellen 1000
Kompilierte Abfragen 1003
Daten verändern, speichern, einfügen und löschen 1004
Datenänderungen mit SaveChanges an die Datenbank übermitteln 1004
Einfügen von verknüpften Daten in Datentabellen 1006
Daten aus Tabellen löschen 1008
Concurrency-Checks (Schreibkonfliktprüfungen) 1010
Ausblick 1012
Teil G - SmartClient-Anwendungen entwickeln 1013
36 Einführung in SmartClient-Entwicklung 1015
Die Gretchenfrage: Windows Forms oder WPF? 1016
Vorüberlegungen zur Smart Client-Entwicklung 1018
Strukturieren von Daten in Windows Forms-Anwendungen 1019
37 Programmieren mit Windows Forms 1031
Formulare zur Abfrage von Daten verwenden - Aufruf von Formularen aus Formularen. 1032
Der Umgang mit modalen Formularen 1032
Überprüfung auf richtige Benutzereingaben in Formularen 1043
Anwendungen über die Tastatur bedienbar machen 1047
Definition von Schnellzugriffstasten per » «-Zeichen 1048
Accept- und Cancel-Schaltflächen in Formularen 1051
Über das »richtige« Schließen von Formularen 1051
Unsichtbarmachen eines Formulars mit Hide 1052
Schließen des Formulars mit Close 1052
Entsorgen des Formulars mit Dispose 1053
Grundsätzliches zum Darstellen von Daten aus Auflistungsklassen in Steuerelementen 1053
Darstellen von Daten aus Auflistungen im ListView-Steuerelement 1054
Spaltenköpfe 1054
Hinzufügen von Daten 1055
Beschleunigen des Hinzufügens von Elementen 1055
Automatisches Anpassen der Spaltenbreiten nach dem Hinzufügen aller Elemente 1056
Zuordnen von ListViewItems und Objekten, die sie repräsentieren 1056
Feststellen, dass ein Element der Liste selektiert wurde 1057
Selektieren von Elementen in einem List View-Steuerelement 1058
Verwalten von Daten aus Auflistungen mit dem DataGridView-Steuerelement 1059
Über Datenbindung, Bindungsquellen, die BindingSource-Komponente
und warum Currency nicht unbedingt Währung heißt 1060
Erstellen einer gebundenen DataGridView mit dem Visual Basic-Designer 1062
4
Inhaltsverzeichnis XXM
Sortieren und Benennen der Spalten eines DataGridView-Steuerelements 1067
Programmtechnisches Abrufen der aktuellen Zeile und aktuellen Spalte 1072
Formatieren von Zellen 1073
Problemlösung für das Parsen eines Zellenwerts mit einem komplexen Anzeigeformat 1073
Verhindern des Editierens bestimmter Spalten aber Gestatten Ihrer Neueingabe 1075
Überprüfen der Richtigkeit von Eingaben auf Zellen- und Zeilenebene 1076
Ändern des Standardpositionierungsverhaltens des Zellencursors nach dem
Editieren einer Zelle 1079
Entwickeln von MDI-Anwendungen 1081
Vererben von Formularen 1089
Ein erster Blick auf den Designer-Code eines Formulars 1093
Modifizierer von Steuerelementen in geerbten Formularen 1095
38 Im Motorraum von Formularen und Steuerelementen 1097
Über das Vererben von Form und die Geheimnisse des Designer-Codes 1098
Geburt und Tod eines Formulars - New und Dispose 1100
Ereignisbehandlung von Formularen und Steuerelementen 1104
Vom Programmstart mithilfe des Anwendungsframeworks über eine Benutzeraktion
zur Ereignisauslösung 1105
Implementieren neuer Steuerelementereignisse auf Basis
von Warteschlangenauswertungen 1109
Wer oder was löst welche Formular- bzw. Steuerelementereignisse wann aus? 1110
Kategorie Erstellen und Zerstören des Formulars 1114
Kategorie Mausereignisse des Formulars 1116
Kategorie Tastaturereignisse des Formulars 1118
Kategorie Position und Größe des Formulars 1119
Kategorie Anordnen der Komponenten und Neuzeichnen des Formulars 1120
Kategorie Fokussierung des Formulars 1121
Kategorie Tastaturvorverarbeitungsnachrichten des Formulars 1122
Kategorie Erstellen/Zerstören des Controls (des Steuerelements) 1124
Kategorie Mausereignisse des Controls 1124
Kategorie Tastaturereignisse des Controls 1127
Kategorie Größe und Position des Controls 1128
Kategorie Neuzeichnen des Controls und Anordnen untergeordneter Komponenten. 1129
Kategorie Tastaturnachrichtenvorverarbeitung des Controls 1131
Die Steuerungsroutinen des Beispielprogramms 1132
Anmerkungen zum Beispielprogramm 1137
39 Individuelles Gestalten von Elementinhalten mit GDI+ 1139
Einführung in GDI+ 1141
Linien, Flächen, Pens und Brushes 1144
Angabe von Koordinaten 1144
Wieso Integer- und Fließkommaangaben für Positionen und Ausmaße? 1145
Xxiy Inhaltsverzeichnis
Wie viel Platz habe ich zum Zeichnen? Ü45
Das gute, alte Testbild und GDI+ im Einsatz sehen! H46
Flimmerfreie, fehlerfreie und schnelle Darstellungen von GDI+-Zeichnungen 1155
Zeichnen ohne Flimmern *¦*¦"
Programmtechnisches Bestimmen der Formulargröße 1159
Was Sie beim Zeichnen von breiten Linienzügen beachten sollten 1161
40 Entwickeln von Steuerelementen für Windows Forms 1169
Neue Steuerelemente auf Basis vorhandener Steuerelemente implementieren 1171
Der Weg eines Steuerelements vom Klassencode in die Toolbox 1173
Implementierung von Funktionslogik und Eigenschaften 1175
Steuern von Eigenschaften im Eigenschaftenfenster 1177
Entwickeln von konstituierenden Steuerelementen 1180
Anlegen eines Projekts für die Erstellung einer eigenen Steuerelement-Assembly 1181
Initialisieren des Steuerelements 1186
Methoden und Ereignisse delegieren 1188
Implementieren der Funktionslogik 1189
Implementierung der Eigenschaften 1191
Erstellen von Steuerelementen von Grund auf 1192
Ein Label, das endlich alles kann 1193
Vorüberlegungen und Grundlagenerarbeitung 1194
Klasseninitialisierungen und Einrichten der Windows-Darstellungsstile
des Steuerelements 1195
Zeichnendes Steuerelements 1197
Größenbeeinflussung durch andere Eigenschaften 1200
Implementierung der Blink-Funktionalität 1203
Designercode-Generierung und Zurücksetzen von werteerbenden Eigenschaften
mit ShouldSerializeXXX und ResetXXX 1205
Designer-Reglementierungen 1207
Teil H - Entwickeln von WPF-Anwendungen 1211
41 Wichtige Steuerelemente zum Aufbau von WPF-Anwendungen 1213
Einführung 1214
Weitergeleitete Ereignisse (Routed Events) 1215
Weitergeleitete Befehle (Routed Commands) 1224
Eigenschaften der Abhängigkeiten 1228
Eingaben 1231
Schaltflächen 1233
Bildlaufleisten und Schieberegler 1235
Steuerelemente für die Texteingabe 1239
Das Label-Element 1243
Menüs 1244
Werkzeugleisten (Toolbars) 1249
Zusammenfassung 1252
Inhaltsverzeichnis ^V
42 Layout 1253
Das StackPanel 1254
DasDockPanel 1256
DasGrid 1260
Das GridSplitter-Element 1266
Das UniformGrid 1269
Das Canvas-Element 1270
Das Viewbox-Element 1271
Text-Layout 1273
Das WrapPanel 1277
Standard-Layout-Eigenschaften 1278
Width- und Height-Eigenschaft 1278
MinWidth-, MaxWidth-, MinHeight- und MaxHeight-Eigenschaft 1278
HorizontalAlignment- und VerticalAlignment-Eigenschaft 1279
Margin-Eigenschaft 1279
Padding-Eigenschaft 1280
Zusammenfassung 1281
43 Grafische Grundelemente 1283
Grundlagen 1284
Die Grafik-Auflösung 1291
Die grafischen Grundelemente 1293
Rechteck und Ellipse 1294
Einfache Transformationen 1296
Die Linie 1297
DiePolylinie 1298
Das Path-Element 1302
Hit-Testing mit dem Path-Element 1304
Zusammenfassung 1307
Teil I - Anwendungsausführung parallelisieren 1309
44 Einführung in die Technik des Threading 1311
45 Threading-Techniken 1315
Gleichzeitige Codeausführung mithilfe eines Thread-Objektes 1316
Starten von Threads 1318
Grundsätzliches über Threads 1318
Synchronisieren von Threads 1319
Synchronisieren der Codeausführung mit SyncLock 1319
Mehr Flexibilität in kritischen Abschnitten mit der Monitor-Klasse 1322
Synchronisieren von beschränkten Ressourcen mit Mutex 1326
Weitere Synchronisierungsmechanismen 1328
XXVI Inhaltsverzeichnis
Verwenden von Steuerelementen in Threads 1331
Managen von Threads 1333
Starten eines Threads mit Start 1333
Vorübergehendes Aussetzen eines Threads mit Sleep - Statusänderungen
im Framework bei Suspend und Resume 1333
Abbrechen und Beenden eines Threads 1334
Datenaustausch zwischen Threads durch Kapseln von Threads in Klassen 1338
Der Einsatz von Thread-Klassen in der Praxis 1341
Verwenden des Thread-Pools 1349
Thread-sichere Formulare in Klassen kapseln 1354
Threads durch den Background-Worker initiieren 1357
Threads durch asynchrone Aufrufe von Delegaten initiieren 1360
Stichwortverzeichnis 1363 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Löffelmann, Klaus |
author_GND | (DE-588)111128943 |
author_facet | Löffelmann, Klaus |
author_role | aut |
author_sort | Löffelmann, Klaus |
author_variant | k l kl |
building | Verbundindex |
bvnumber | BV023412463 |
classification_rvk | ST 250 |
classification_tum | DAT 357f |
ctrlnum | (OCoLC)643432858 (DE-599)DNB985438703 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV023412463</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240517</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080723s2009 gw ad|| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">07,N38,0059</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">985438703</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783866455061</subfield><subfield code="c">Gb. : EUR 59.00, EUR 61.20 (AT), sfr 94.90</subfield><subfield code="9">978-3-86645-506-1</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3866455062</subfield><subfield code="9">3-86645-506-2</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783866455061</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)643432858</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB985438703</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BY</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1051</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-12</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 357f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Löffelmann, Klaus</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)111128943</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Microsoft Visual Basic 2008 - das Entwicklerbuch</subfield><subfield code="b">[Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1]</subfield><subfield code="c">Klaus Löffelmann</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">Visual Basic 2008 - das Entwicklerbuch</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Unterschleißheim</subfield><subfield code="b">Microsoft Press</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXI, 1388 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield><subfield code="e">1 DVD-ROM (12 cm) ; 1 DVD (12 cm)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">VisualBASIC 2008</subfield><subfield code="0">(DE-588)7613492-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4585131-1</subfield><subfield code="a">DVD-ROM</subfield><subfield code="2">gnd-carrier</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">VisualBASIC 2008</subfield><subfield code="0">(DE-588)7613492-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=2997049&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016595055&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016595055</subfield></datafield></record></collection> |
genre | (DE-588)4585131-1 DVD-ROM gnd-carrier |
genre_facet | DVD-ROM |
id | DE-604.BV023412463 |
illustrated | Illustrated |
index_date | 2024-07-02T21:28:05Z |
indexdate | 2024-10-02T14:00:38Z |
institution | BVB |
isbn | 9783866455061 3866455062 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016595055 |
oclc_num | 643432858 |
open_access_boolean | |
owner | DE-1051 DE-91G DE-BY-TUM DE-824 DE-12 DE-573 DE-11 |
owner_facet | DE-1051 DE-91G DE-BY-TUM DE-824 DE-12 DE-573 DE-11 |
physical | XXXI, 1388 S. Ill., graph. Darst. 1 DVD-ROM (12 cm) ; 1 DVD (12 cm) |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Microsoft Press |
record_format | marc |
spelling | Löffelmann, Klaus Verfasser (DE-588)111128943 aut Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] Klaus Löffelmann Visual Basic 2008 - das Entwicklerbuch Unterschleißheim Microsoft Press 2009 XXXI, 1388 S. Ill., graph. Darst. 1 DVD-ROM (12 cm) ; 1 DVD (12 cm) txt rdacontent n rdamedia nc rdacarrier VisualBASIC 2008 (DE-588)7613492-1 gnd rswk-swf (DE-588)4585131-1 DVD-ROM gnd-carrier VisualBASIC 2008 (DE-588)7613492-1 s DE-604 text/html http://deposit.dnb.de/cgi-bin/dokserv?id=2997049&prov=M&dok_var=1&dok_ext=htm Inhaltstext HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016595055&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Löffelmann, Klaus Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] VisualBASIC 2008 (DE-588)7613492-1 gnd |
subject_GND | (DE-588)7613492-1 (DE-588)4585131-1 |
title | Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] |
title_alt | Visual Basic 2008 - das Entwicklerbuch |
title_auth | Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] |
title_exact_search | Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] |
title_exact_search_txtP | Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] |
title_full | Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] Klaus Löffelmann |
title_fullStr | Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] Klaus Löffelmann |
title_full_unstemmed | Microsoft Visual Basic 2008 - das Entwicklerbuch [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] Klaus Löffelmann |
title_short | Microsoft Visual Basic 2008 - das Entwicklerbuch |
title_sort | microsoft visual basic 2008 das entwicklerbuch grundlagen techniken profi know how mit ebook auf dvd berucksichtigt vs 2008 sp1 |
title_sub | [Grundlagen, Techniken, Profi-Know-how ; mit Ebook auf DVD ; berücksichtigt VS 2008 SP1] |
topic | VisualBASIC 2008 (DE-588)7613492-1 gnd |
topic_facet | VisualBASIC 2008 DVD-ROM |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=2997049&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016595055&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT loffelmannklaus microsoftvisualbasic2008dasentwicklerbuchgrundlagentechnikenprofiknowhowmitebookaufdvdberucksichtigtvs2008sp1 AT loffelmannklaus visualbasic2008dasentwicklerbuch |