- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Schrödinger ist unser Mann fürs Programmieren. Er kann schon was, aber noch nicht C#. Zum Glück hat er einen richtigen Profi an seiner Seite, der auf jede Frage eine Antwort weiß. Und weil Schrödinger zwar schlau ist, aber auch ein wenig ungeduldig, gibt es nach der nötigen Theorie immer sofort etwas zu tun. Mit viel Code und Beispielen, die du nicht wieder vergisst. Ob es ums Einparken ohne Crash geht oder um Schuhschränke, die immer größer werden: Die Übungen schafft ihr (aber nicht immer mit links), die Pausen sind verdient, und am Ende jedes Kapitels dürft ihr euch einen Spickzettel…mehr
Andere Kunden interessierten sich auch für
- Richard EisenmengerWordPress 639,90 €
- Denise Banks-GrasedyckSAP-S/4HANA-Projekte erfolgreich managen59,90 €
- René KrooßAlgorithmen und Datenstrukturen49,99 €
- Eric MatthesPython Crashkurs32,90 €
- Carsten EilersYou've been hacked!39,90 €
- Jake VanderPlasData Science mit Python19,99 €
- Handbuch IT-Projektmanagement (eBook, ePUB)54,99 €
-
-
-
-
-
-
-
-
-
-
-
-
-
Schrödinger ist unser Mann fürs Programmieren. Er kann schon was, aber noch nicht C#. Zum Glück hat er einen richtigen Profi an seiner Seite, der auf jede Frage eine Antwort weiß. Und weil Schrödinger zwar schlau ist, aber auch ein wenig ungeduldig, gibt es nach der nötigen Theorie immer sofort etwas zu tun. Mit viel Code und Beispielen, die du nicht wieder vergisst. Ob es ums Einparken ohne Crash geht oder um Schuhschränke, die immer größer werden: Die Übungen schafft ihr (aber nicht immer mit links), die Pausen sind verdient, und am Ende jedes Kapitels dürft ihr euch einen Spickzettel einstecken - Achievement Unlocked, Ready for Next Level. Fantastisch illustriert. Für Einsteiger, Umsteiger und Fans.
Aus dem Inhalt:
Operatoren, Schleifen, DatentypenKlassen und VererbungWichtige EntwurfsmusterGUI-Entwicklung mit XAMLLINQ einsetzenasync/await geschickt verwendenDateizugriffe und StreamsMultithreadingInternetzugriffMit Fehlern und Ausnahmen umgehen
Aus dem Inhalt:
Operatoren, Schleifen, DatentypenKlassen und VererbungWichtige EntwurfsmusterGUI-Entwicklung mit XAMLLINQ einsetzenasync/await geschickt verwendenDateizugriffe und StreamsMultithreadingInternetzugriffMit Fehlern und Ausnahmen umgehen
Produktdetails
- Produktdetails
- Rheinwerk Computing
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/06968
- 3., überarb. Aufl.
- Seitenzahl: 749
- Erscheinungstermin: Juni 2019
- Deutsch
- Abmessung: 236mm x 192mm x 53mm
- Gewicht: 1778g
- ISBN-13: 9783836269681
- ISBN-10: 3836269686
- Artikelnr.: 54765059
- Rheinwerk Computing
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/06968
- 3., überarb. Aufl.
- Seitenzahl: 749
- Erscheinungstermin: Juni 2019
- Deutsch
- Abmessung: 236mm x 192mm x 53mm
- Gewicht: 1778g
- ISBN-13: 9783836269681
- ISBN-10: 3836269686
- Artikelnr.: 54765059
Bernhard Wurm ist Softwareentwickler aus Leidenschaft und kann sich noch sehr gut an seine ersten Programmierversuche erinnern. Er weiß, dass gute Nerven und Ausdauer genauso gefragt sind wie Neugierde und Spaß am logischen Denken. Auf jeden Fall hat ihn noch kein Programm in die Knie gezwungen; er studierte prompt Information Engineering und Management sowie Software Engineering. Inzwischen leitet er die Software-Entwicklung in einem österreichischen Unternehmen. Seine Interessen sind breit gestreut, aber immer Computer-affin: Sie reichen von Distributed Computing über die digitale Bilderverarbeitung und Software Architekturen bis hin zu den neuesten Technologien.
An den Leser ... 2
Schrödingers Büro ... 4
Schrödingers Werkstatt ... 6
Schrödingers Wohnzimmer ... 8
Impressum ... 10
Inhaltsverzeichnis ... 12
1. Ein guter Start ist der halbe Sieg: Compiler und Entwicklungsumgebungen ... 25
Compiler und Compiler ... 26
Hallo Schrödinger ... 29
Du brauchst eine IDE! ... 33
Visual Studio Community Edition ... 34
Der Spaß geht los! ... 35
.NET Core vs .NET Framework ... 36
Dein erstes Projekt ... 37
Theorie und Praxis ... 40
Was gelernt! ... 42
2. Ein netter Typ: Datentypen und deren Behandlung ... 43
Dieses Glas für diesen Wein ... 44
Grundlagen im Kamelreiten ... 48
Übungen für den Barkeeper ... 50
Rechnen mit Transvestiten ... 51
Alles nur Klone! ... 56
Ja oder nein? ... 57
Was gibt's zu essen? ... 58
Das ständige Hin und Her zwischen ja und nein ... 60
Gut kommentieren! ... 61
Kommentare im Einsatz ... 62
Andere für sich denken lassen ... 62
Compiler-Spiele ... 63
Viele neue Freunde ... 64
3. Alles unter Kontrolle: Bedingungen, Schleifen und Arrays ... 65
Bedingungen ... 66
In der Kürze liegt die Würze ... 69
Durch Variationen bleibt es interessant ... 70
Der Herr der Fernbedienung ... 72
Ist noch Bier da? ... 74
Einer von vielen ... 75
Zwillinge ... 77
Ein Schuhschrank muss her ... 80
Arbeiten in den Tiefen des Schuhschranks -- von Kopf bis Fuß ... 81
Die ganze Welt ist Mathematik und aller guten Dinge sind drei vier ... 83
Schau's dir an mit dem Debugger ... 84
Solange du nicht fertig bist, weitermachen ... ... 85
Ich habe es mir anders überlegt ... 86
Oder mach doch weiter ... ... 87
Zurück zu den Schuhschränken ... 88
Wenn aus einem Schuhschrank eine Lagerhalle wird ... 89
Wiederholung, Wiederholung! ... 91
Code muss man auch lesen können ... 92
Jetzt kommt das neue coole Zeug! ... 94
.. oder einmal alles ... 97
4. Sexy Unterwäsche -- von kleinen Teilen bis gar nichts: Strings, Characters und Nullable Types ... 99
Zeichenketten -- Strings ... 100
Kleine Teile -- einzelne Zeichen ... 101
Kleine und große Teile ... 102
Einfacher und schneller ... 103
Noch einfacher: Variablen im Text verwenden ... 106
Etwas Besonderes sollte es sein ... 107
Verdrehte Welt ... 108
Sein oder nicht sein? ... 111
Verweise auf nichts ... 113
Nichts im Einsatz ... 115
Damit bei so viel null nichts verloren geht ... 116
5. Eine endliche Geschichte: Enumerationen ... 117
Rot -- Gelb -- Grün ... 118
Tageweise ... 120
Tell me why I don't like mondays ... ... 123
WoW-Völker ... 124
Auf wenige Sätze heruntergebrochen ... 126
6. Teile und herrsche: Methoden ... 127
Teilen statt Kopieren ... 128
Originale und überteuerte Kopien ... 131
Eins ist nicht genug ... 135
Ich rechne mit dir ... 136
Wenn sich nichts bewegt und alles statisch ist ... 137
Ich hätte gerne das Original! ... 137
Sommerschlussverkauf -- alles muss raus ... 138
Tauschgeschäfte, die nicht funktionieren ... 140
Ich will das ganz anders oder auch gar nicht -- Methoden überladen ... 141
Das Ganze noch einmal umgerührt ... 144
Ein knurrender Magen spornt bestimmt zu Höchstleistungen an ... 146
Originale zurücksenden ... 147
Maximale Originale ... 149
Eine kleine Zusammenfassung für dich ... 150
7. Klassengesellschaft: Objekte, Eigenschaften und Sichtbarkeiten ... 151
Mein Alter, meine Augenfarbe, mein Geburtsdatum ... 152
Eine Aufgabe für den Accessor ... 156
Ich sehe was, was du nicht siehst ... 157
Eigenschaften aufpoliert und bereit für die Bühne ... 158
Tanzen mit Elvis -- wenn keiner da ist, ist keiner da ... 160
Geheimniskrämerei und Kontrollfreak ... 161
Darf ich jetzt oder nicht? ... 162
Zusammen, was zusammengehört! ... 166
Zusammen und doch getrennt ... 168
Laufen, kämpfen, sterben ... 170
Vom Leben und Sterben ... 171
Geburtenkontrolle ... 172
Mehrlingsgeburt ... 175
Partielle Klassen ... 176
Meine partiellen Daten ... 178
Gemeinsame Werte von dicken Freunden ... 179
Eigene Wertetypen ... 180
Strukturen überall ... 182
Strukturen ohne Namen ... 184
Eigene Typen nochmals vom Sofa aus betrachtet ... 186
Die Nachteile der Wertetypen ausgetrickst ... 188
Gelernt ist gelernt! ... 191
8. Es wird Zeit für Übersicht! Namespaces ... 193
Eine Ordnung für die Klassen ... 194
Was ist denn nur in diesem Namespace vorhanden? ... 197
Vorhandene Systembausteine ... 199
Wo sind nur diese Bausteine? ... 201
Mathematik für Einsteiger ... 203
Nochmals finden, was scheinbar nicht da ist ... 204
Zum Mitnehmen ... 204
9. Erben ohne Sterben: Objektorientierte Programmierung ... 205
Geisterstunde ... 206
Schleimgeister sind spezielle Geister ... 208
Fünf vor zwölf ... 210
Geister fressen, Schleimgeister fressen, Kannibalen fressen -- alles muss man einzeln machen ... 216
Enterben ... 217
Geister haben viele Gestalten ... 217
Geister, die sich nicht an die Regeln halten ... 220
Gestaltwandler unter der Lupe ... 221
Nochmals drüber nachgedacht ... 222
Hier noch ein Merkzettel ... 226
10. Abstrakte Kunst: Abstrakte Klassen und Interfaces ... 227
Unverstandene Künstler ... 230
Das Meisterwerk nochmals betrachtet ... 232
Abstrakte Kunst am Prüftisch ... 233
Allgemein ist konkret genug ... 235
Fabrikarbeit ... 236
Alles unter einem Dach ... 237
Kaffee oder Tee? Oder doch lieber eine Cola? ... 238
Kaffeemaschine im Einsatz ... 240
Eine Cola bitte ... 242
Freundin vs. Chef -- Runde 1 ... 244
Bei perfekter Verwendung ... ... 245
Freundin vs. Chef -- Runde 2 ... 246
Freundin vs. Chef -- Runde 3 ... 248
Abstraktion und Interfaces auf einen Blick ... 249
11. Airbags können Leben retten: Exceptionhandling ... 251
Mach's stabil! ... 252
Einen Versuch war es wert ... 254
Nur unter bestimmten Umständen ... 257
Fehler über Fehler ... 258
Über das Klettern auf Bäume ... 262
Klettern auf nicht vorhandene Bäume -- NullReferenceException ... 262
Auf Sträucher klettern -- FormatException ... 263
Sträucher im Sägewerk -- ArgumentException ... 264
Bezahlung ohne Ware -- ArgumentNullException ... 264
Bewusste Fehler ... 265
Selbst definierte Fehler ... 266
Fehler in freier Wildbahn ... 267
Das Matruschka-Prinzip ... 268
Alles noch einmal aufgerollt ... 270
Dein Fehler-Cheat-Sheet ... 274
12. Ein ordentliches Ablagesystem muss her: Collections und Laufzeitkomplexität ... 275
Je größer der Schuhschrank, desto länger die Suche ... 276
Komplizierte Laufschuhe ... 277
Geschwindigkeitsprognosen ... 280
Es muss nicht immer gleich quadratisch sein ... 282
Geschwindigkeitseinschätzung und Buchstabensuppe ... 285
Selbstwachsende Schuhschränke ... 288
Eine Array-Liste ... 289
Ringboxen ... 290
Listige Arrays und ihre Eigenheiten ... 291
Listige Arrays und ihre Verwendung ... 291
The Need for Speed ... 292
Es wird konkreter ... 293
Sortieren bringt Geschwindigkeit -- SortedList ... 294
Listenreiche Arbeit ... 296
Es geht noch schneller! ... 298
Im Rausch der Geschwindigkeit ... 300
Dictionary-Initialisierung in C# 6 ... 302
Wörterbücher in der Anwendung ... oder was im Regelfall schiefgeht ... 303
Von Bäumen und Ästen ... 307
Ein Verwendungsbeispiel ... 308
Alles eindeutig -- das HashSet ... 309
Schnelles Arbeiten mit Sets ... 310
Das große Bild ... 312
Der große Test, das Geheimnis und die Verwunderung ... 315
Noch einmal durchleuchtet ... 320
Dein Merkzettel rund um die Collections aus Laufzeiten ... 325
13. Allgemein konkrete Implementierungen: Generizität ... 327
Konkrete Typen müssen nicht sein ... 328
Das große Ganze ... 329
Mülltrennung leicht gemacht ... 330
Der Nächste bitte ... 333
Allgemein, aber nicht für jeden! ... 335
Immer das Gleiche und doch etwas anderes ... 337
Fabrikarbeit ... 339
Aus allgemein wird konkret ... 340
Hier kommt nicht jeder Typ rein. ... 341
Ähnlich, aber nicht gleich! ... 342
Varianzen hin oder her ... 344
Varianzen in der Praxis ... 347
WoW im Simulator ... 350
Damit's auch hängen bleibt ... 352
14. Linke Typen, auf die man sich verlassen kann: LINQ ... 353
Linke Typen, auf die man sich verlassen kann ... 354
Shoppen in WoW ... 357
Gesund oder gut essen? ... 360
Listen zusammenführen ... 361
Fix geLINQt statt handverlesen ... 369
Merkzettel ... 372
15. Blumen für die Dame: Delegaten und Ereignisse ... 373
Ein Butler übernimmt die Arbeit ... 374
Im Strudel der Methoden ... 377
Die Butlerschule ... 380
Die Wahl des Butlers ... 383
Ereignisreiche Tage ... 384
Eine Runde für alle ... 387
Auf in die Bar! ... 388
Wiederholung, Wiederholung ... 391
Die delegierte Zusammenfassung ... 394
16. Der Standard ist nicht genug: Extension-Methoden und Lambda-Expressions ... 395
Extension-Methoden ... 396
Auf die Größe kommt es an ... 400
Erweiterungen nochmals durchschaut ... 402
Softwareentwicklung mit Lambdas ... 404
Lambda-Expressions auf Collections loslassen ... 407
Ein Ausritt auf Lamas ... 408
Filtern ... 408
Gruppieren ... 410
Verknüpfen ... 411
Gruppieren und Verknüpfen kombiniert ... 412
Left Join ... 413
VerLINQte LAMbdAS ... 415
Lamas im Schnelldurchlauf ... 418
17. Die Magie der Attribute: Arbeiten mit Attributen ... 419
Die Welt der Attribute ... 420
Die Magie erleben ... 422
Das Ablaufdatum-Attribut ... 424
Die Magie selbst erleben ... 425
Eine magische Reise in dein Selbst ... 426
In den Tiefen des Kaninchenbaus ... 429
Der Attribut-Meister erstellt eigene Attribute! ... 432
Meine Klasse, meine Zeichen ... 434
Selbstreflexion ... 436
Die Psychologie lehrt uns: Wiederholung ist wichtig! ... 440
18. Ich muss mal raus: Dateizugriff und Streams ... 441
Daten speichern ... 442
Rundherum oder direkt rein ... 443
Rein in die Dose, Deckel drauf und fertig ... 445
Deine Geheimnisse sind bei mir nicht sicher ... 446
Das Mysterium der Dateiendungen ... 449
Das Gleiche und doch etwas anders ... 452
Das Lexikon vom Erstellen, Lesen, Schreiben, Umbenennen ... 453
Ran an die Tastatur, rein in die Dateien ... 458
Von der Sandburg zum Wolkenkratzer ... 460
Fließbandarbeit ... 464
Wenn das Fließband nicht ganz richtig läuft ... 467
Dem Fließband vorgeschalteter Fleischwolf ... 471
Nutze die Attribut-Magie! ... 473
Das Formatter-Prinzip ... 474
X(M)L entspricht XXL ... 475
Die kleinste Größe -- JSON ... 477
Wir sind viele ... 479
Das World Wide Web. Unendliche Weiten ... 484
Deine Seite, meine Seite ... 486
Probe, Probe, Leseprobe ... 488
Punkt für Punkt fürs Hirn ... 490
19. Sag doch einfach, wenn du fertig bist: Asynchrone und parallele Programmierung ... 491
Zum Beispiel ein Download-Programm ... 492
Asynchroner Start mit Ereignis bei Fertigstellung ... 494
Subjektive Geschwindigkeiten und Probleme mit dem Warten ... 496
Auf der Suche nach der absoluten Geschwindigkeit ... 499
Es geht auch einfacher! ... 502
Was so alles im Hintergrund laufen kann ... 507
Gemeinsam geht es schneller ... 509
Jetzt wird es etwas magisch ... 513
Wenn jeder mit anpackt, dann geht alles schneller ... 515
Rückzug bei Kriegsspielen ... 518
async/await/cancel ... 520
Unkoordinierte Koordination ... 522
Anders und doch gleich ... 527
Gemeinsam Kuchen backen ... 528
Wenn das Klo besetzt ist ... 533
Das Producer-Consumer-Problem ... 533
Dein Spickzettel ... 539
20. Nimm doch, was andere schon gemacht haben: Die Paketverwaltung NuGet ... 541
Bibliotheken für Code ... 542
Fremden Code aufspüren ... 545
Die Welt ist schon fertig ... 548
21. Die schönen Seiten des Lebens: Einführungin XAML ... 549
Oberflächenprogrammierung ... 550
Hinzufügen der Komponenten für die Universal Windows Platform Apps in Visual Studio ... 552
Diese X-Technologien ... 554
Tabellen über Tabellen ... 558
Hallo Universal App ... 561
Die App soll »Hallo« sagen ... 562
Schrödingers kreative Katze ... 566
Buttons und Text ausrichten ... 569
Von Tabellen, Listen und Parkplätzen ... 571
VariableSizedWrapGrid und RelativePanel -- zwei gute Teilnehmer ... 574
Die Mischung macht's! ... 576
Das gemischte Layout ... 577
Alles schön am Raster ausrichten ... 579
Das sieht doch schon aus wie eine Anwendung ... 581
Ein Layout für eine App ... 583
Auf in die (App)Bar ... 586
Die Ecken und Winkel in der Bar ... 587
Einfach und wirksam ... 588
Das ist alles eine Stilfrage ... 590
Von der Seite in die Anwendung ... 592
Do you speak English, Koreanisch oder so? Schrödinger, I do! ... 593
Die Welt der Sprachen ... 595
Honey, I do! ... 598
Oberflächenprogrammierung auf einen Blick ... 600
22. Models sind doch schön anzusehen: Das Model-View-ViewModel-Entwurfsmuster ... 601
Einführung in MVVM ... 602
Mein erstes eigenes Model ... 606
Datenbindung noch kürzer -- als Seitenressource ... 610
Eine Technik, sie alle zu binden! ... 611
Eine Eigenschaft für alle Infos ... 613
Wenn nur jeder wüsste, was er zu tun hätte ... 615
Los geht's! Notify-Everybody ... 618
Ein Laufsteg muss es sein! ... 621
Über Transvestiten und Bindungsprobleme ... 628
Über Bindungsprobleme und deren Lösungen ... 629
Alleine oder zu zweit? ... 630
Aus Klein mach Groß und zurück ... 631
Klein aber fein ... 632
Die Größe der Kaffeetasse ... 636
Auf mein Kommando ... 641
Kommandierende Butler ... 643
Dem Zufall das Kommando überlassen ... 647
MVVM Punkt für Punkt ... 652
23. Stereotyp Schönheit: Universal Windows Platform (UWP) Apps ... 653
Heute dreht sich alles um Apps ... 654
Universal Windows Platform Apps -- Planung ... 655
Ran an den Code -- die Wetter-App ... 660
Visuelle Zustände als einfache Lösung ... 666
Apps ohne Ende ... 669
Etwas mehr Komfort darf schon sein! ... 671
Auf einen Blick ... 674
24. Toast-Notifications: Der Einsatz von Toast-Notifications ... 675
Ich habe etwas Wichtiges zu sagen! ... 676
Das Betriebssystem wird es schon richten ... 676
Einfache Toast-Notifications ... 677
Templates verzögert anzeigen ... 679
Eigene Notification-Templates ... 680
Die Verwendung deines individuellen Templates ... 682
Das Feinste vom Feinen ... 683
Kleine Änderungen mit großer Wirkung ... 686
Minütlich grüßt die Notification ... 687
Deine Toast-Zusammenfassung ... 690
25. Live is Live: Der Einsatz von Toast-Notifications ... 691
Innovation Live-Kacheln ... 692
Klein, mittel, groß ... 692
Die Do's und Dont's ... 694
Live-Tiles mit XML definieren ... 695
Live-Kacheln mit C# erstellen ... 697
Gona Catch'em all ... 703
Deine Live-Zusammenfassung ... 706
26. Ich will alles rausholen: Datenzugriff über die Windows API ... 707
Dateizugriff nur mit Erlaubnis ... 708
Verhandlungstechnik 1: Dateiauswahl ... 711
Verhandlungstechnik 2: Ordner auswählen ... 712
Verhandlungstechnik 3: Anwendungsdaten speichern, ohne benutzergewählten Speicherort ... 712
Besser als Raumschiff Enterprise -- ein Logbuch ... 715
Energie! Die Oberfläche der App ... 716
Der Sourcecode ... 717
Das ist doch alles dasselbe ... 722
Deine Kurzliste mit den wichtigsten Infos ... 724
27. Funktioniert das wirklich? Unit-Testing ... 725
Das Problem: Testen kann lästig werden ... 726
Die Lösung: Unit-Tests -- Klassen, die Klassen testen ... 727
Das Testprojekt erstellen ... 730
Die Ausführung ist das A und O! ... 732
Spezielle Attribute ... 733
Unit-Tests sind nicht alles ... 733
Testgetriebene Softwareentwicklung -- oder wie du Autofahren lernst ... 734
Darfst du schon fahren? ... 735
Let's do it! ... 740
Dein Test-Merkzettel ... 741
Auf ein Wiedersehen! ... 743
Index ... 744
Schrödingers Büro ... 4
Schrödingers Werkstatt ... 6
Schrödingers Wohnzimmer ... 8
Impressum ... 10
Inhaltsverzeichnis ... 12
1. Ein guter Start ist der halbe Sieg: Compiler und Entwicklungsumgebungen ... 25
Compiler und Compiler ... 26
Hallo Schrödinger ... 29
Du brauchst eine IDE! ... 33
Visual Studio Community Edition ... 34
Der Spaß geht los! ... 35
.NET Core vs .NET Framework ... 36
Dein erstes Projekt ... 37
Theorie und Praxis ... 40
Was gelernt! ... 42
2. Ein netter Typ: Datentypen und deren Behandlung ... 43
Dieses Glas für diesen Wein ... 44
Grundlagen im Kamelreiten ... 48
Übungen für den Barkeeper ... 50
Rechnen mit Transvestiten ... 51
Alles nur Klone! ... 56
Ja oder nein? ... 57
Was gibt's zu essen? ... 58
Das ständige Hin und Her zwischen ja und nein ... 60
Gut kommentieren! ... 61
Kommentare im Einsatz ... 62
Andere für sich denken lassen ... 62
Compiler-Spiele ... 63
Viele neue Freunde ... 64
3. Alles unter Kontrolle: Bedingungen, Schleifen und Arrays ... 65
Bedingungen ... 66
In der Kürze liegt die Würze ... 69
Durch Variationen bleibt es interessant ... 70
Der Herr der Fernbedienung ... 72
Ist noch Bier da? ... 74
Einer von vielen ... 75
Zwillinge ... 77
Ein Schuhschrank muss her ... 80
Arbeiten in den Tiefen des Schuhschranks -- von Kopf bis Fuß ... 81
Die ganze Welt ist Mathematik und aller guten Dinge sind drei vier ... 83
Schau's dir an mit dem Debugger ... 84
Solange du nicht fertig bist, weitermachen ... ... 85
Ich habe es mir anders überlegt ... 86
Oder mach doch weiter ... ... 87
Zurück zu den Schuhschränken ... 88
Wenn aus einem Schuhschrank eine Lagerhalle wird ... 89
Wiederholung, Wiederholung! ... 91
Code muss man auch lesen können ... 92
Jetzt kommt das neue coole Zeug! ... 94
.. oder einmal alles ... 97
4. Sexy Unterwäsche -- von kleinen Teilen bis gar nichts: Strings, Characters und Nullable Types ... 99
Zeichenketten -- Strings ... 100
Kleine Teile -- einzelne Zeichen ... 101
Kleine und große Teile ... 102
Einfacher und schneller ... 103
Noch einfacher: Variablen im Text verwenden ... 106
Etwas Besonderes sollte es sein ... 107
Verdrehte Welt ... 108
Sein oder nicht sein? ... 111
Verweise auf nichts ... 113
Nichts im Einsatz ... 115
Damit bei so viel null nichts verloren geht ... 116
5. Eine endliche Geschichte: Enumerationen ... 117
Rot -- Gelb -- Grün ... 118
Tageweise ... 120
Tell me why I don't like mondays ... ... 123
WoW-Völker ... 124
Auf wenige Sätze heruntergebrochen ... 126
6. Teile und herrsche: Methoden ... 127
Teilen statt Kopieren ... 128
Originale und überteuerte Kopien ... 131
Eins ist nicht genug ... 135
Ich rechne mit dir ... 136
Wenn sich nichts bewegt und alles statisch ist ... 137
Ich hätte gerne das Original! ... 137
Sommerschlussverkauf -- alles muss raus ... 138
Tauschgeschäfte, die nicht funktionieren ... 140
Ich will das ganz anders oder auch gar nicht -- Methoden überladen ... 141
Das Ganze noch einmal umgerührt ... 144
Ein knurrender Magen spornt bestimmt zu Höchstleistungen an ... 146
Originale zurücksenden ... 147
Maximale Originale ... 149
Eine kleine Zusammenfassung für dich ... 150
7. Klassengesellschaft: Objekte, Eigenschaften und Sichtbarkeiten ... 151
Mein Alter, meine Augenfarbe, mein Geburtsdatum ... 152
Eine Aufgabe für den Accessor ... 156
Ich sehe was, was du nicht siehst ... 157
Eigenschaften aufpoliert und bereit für die Bühne ... 158
Tanzen mit Elvis -- wenn keiner da ist, ist keiner da ... 160
Geheimniskrämerei und Kontrollfreak ... 161
Darf ich jetzt oder nicht? ... 162
Zusammen, was zusammengehört! ... 166
Zusammen und doch getrennt ... 168
Laufen, kämpfen, sterben ... 170
Vom Leben und Sterben ... 171
Geburtenkontrolle ... 172
Mehrlingsgeburt ... 175
Partielle Klassen ... 176
Meine partiellen Daten ... 178
Gemeinsame Werte von dicken Freunden ... 179
Eigene Wertetypen ... 180
Strukturen überall ... 182
Strukturen ohne Namen ... 184
Eigene Typen nochmals vom Sofa aus betrachtet ... 186
Die Nachteile der Wertetypen ausgetrickst ... 188
Gelernt ist gelernt! ... 191
8. Es wird Zeit für Übersicht! Namespaces ... 193
Eine Ordnung für die Klassen ... 194
Was ist denn nur in diesem Namespace vorhanden? ... 197
Vorhandene Systembausteine ... 199
Wo sind nur diese Bausteine? ... 201
Mathematik für Einsteiger ... 203
Nochmals finden, was scheinbar nicht da ist ... 204
Zum Mitnehmen ... 204
9. Erben ohne Sterben: Objektorientierte Programmierung ... 205
Geisterstunde ... 206
Schleimgeister sind spezielle Geister ... 208
Fünf vor zwölf ... 210
Geister fressen, Schleimgeister fressen, Kannibalen fressen -- alles muss man einzeln machen ... 216
Enterben ... 217
Geister haben viele Gestalten ... 217
Geister, die sich nicht an die Regeln halten ... 220
Gestaltwandler unter der Lupe ... 221
Nochmals drüber nachgedacht ... 222
Hier noch ein Merkzettel ... 226
10. Abstrakte Kunst: Abstrakte Klassen und Interfaces ... 227
Unverstandene Künstler ... 230
Das Meisterwerk nochmals betrachtet ... 232
Abstrakte Kunst am Prüftisch ... 233
Allgemein ist konkret genug ... 235
Fabrikarbeit ... 236
Alles unter einem Dach ... 237
Kaffee oder Tee? Oder doch lieber eine Cola? ... 238
Kaffeemaschine im Einsatz ... 240
Eine Cola bitte ... 242
Freundin vs. Chef -- Runde 1 ... 244
Bei perfekter Verwendung ... ... 245
Freundin vs. Chef -- Runde 2 ... 246
Freundin vs. Chef -- Runde 3 ... 248
Abstraktion und Interfaces auf einen Blick ... 249
11. Airbags können Leben retten: Exceptionhandling ... 251
Mach's stabil! ... 252
Einen Versuch war es wert ... 254
Nur unter bestimmten Umständen ... 257
Fehler über Fehler ... 258
Über das Klettern auf Bäume ... 262
Klettern auf nicht vorhandene Bäume -- NullReferenceException ... 262
Auf Sträucher klettern -- FormatException ... 263
Sträucher im Sägewerk -- ArgumentException ... 264
Bezahlung ohne Ware -- ArgumentNullException ... 264
Bewusste Fehler ... 265
Selbst definierte Fehler ... 266
Fehler in freier Wildbahn ... 267
Das Matruschka-Prinzip ... 268
Alles noch einmal aufgerollt ... 270
Dein Fehler-Cheat-Sheet ... 274
12. Ein ordentliches Ablagesystem muss her: Collections und Laufzeitkomplexität ... 275
Je größer der Schuhschrank, desto länger die Suche ... 276
Komplizierte Laufschuhe ... 277
Geschwindigkeitsprognosen ... 280
Es muss nicht immer gleich quadratisch sein ... 282
Geschwindigkeitseinschätzung und Buchstabensuppe ... 285
Selbstwachsende Schuhschränke ... 288
Eine Array-Liste ... 289
Ringboxen ... 290
Listige Arrays und ihre Eigenheiten ... 291
Listige Arrays und ihre Verwendung ... 291
The Need for Speed ... 292
Es wird konkreter ... 293
Sortieren bringt Geschwindigkeit -- SortedList ... 294
Listenreiche Arbeit ... 296
Es geht noch schneller! ... 298
Im Rausch der Geschwindigkeit ... 300
Dictionary-Initialisierung in C# 6 ... 302
Wörterbücher in der Anwendung ... oder was im Regelfall schiefgeht ... 303
Von Bäumen und Ästen ... 307
Ein Verwendungsbeispiel ... 308
Alles eindeutig -- das HashSet ... 309
Schnelles Arbeiten mit Sets ... 310
Das große Bild ... 312
Der große Test, das Geheimnis und die Verwunderung ... 315
Noch einmal durchleuchtet ... 320
Dein Merkzettel rund um die Collections aus Laufzeiten ... 325
13. Allgemein konkrete Implementierungen: Generizität ... 327
Konkrete Typen müssen nicht sein ... 328
Das große Ganze ... 329
Mülltrennung leicht gemacht ... 330
Der Nächste bitte ... 333
Allgemein, aber nicht für jeden! ... 335
Immer das Gleiche und doch etwas anderes ... 337
Fabrikarbeit ... 339
Aus allgemein wird konkret ... 340
Hier kommt nicht jeder Typ rein. ... 341
Ähnlich, aber nicht gleich! ... 342
Varianzen hin oder her ... 344
Varianzen in der Praxis ... 347
WoW im Simulator ... 350
Damit's auch hängen bleibt ... 352
14. Linke Typen, auf die man sich verlassen kann: LINQ ... 353
Linke Typen, auf die man sich verlassen kann ... 354
Shoppen in WoW ... 357
Gesund oder gut essen? ... 360
Listen zusammenführen ... 361
Fix geLINQt statt handverlesen ... 369
Merkzettel ... 372
15. Blumen für die Dame: Delegaten und Ereignisse ... 373
Ein Butler übernimmt die Arbeit ... 374
Im Strudel der Methoden ... 377
Die Butlerschule ... 380
Die Wahl des Butlers ... 383
Ereignisreiche Tage ... 384
Eine Runde für alle ... 387
Auf in die Bar! ... 388
Wiederholung, Wiederholung ... 391
Die delegierte Zusammenfassung ... 394
16. Der Standard ist nicht genug: Extension-Methoden und Lambda-Expressions ... 395
Extension-Methoden ... 396
Auf die Größe kommt es an ... 400
Erweiterungen nochmals durchschaut ... 402
Softwareentwicklung mit Lambdas ... 404
Lambda-Expressions auf Collections loslassen ... 407
Ein Ausritt auf Lamas ... 408
Filtern ... 408
Gruppieren ... 410
Verknüpfen ... 411
Gruppieren und Verknüpfen kombiniert ... 412
Left Join ... 413
VerLINQte LAMbdAS ... 415
Lamas im Schnelldurchlauf ... 418
17. Die Magie der Attribute: Arbeiten mit Attributen ... 419
Die Welt der Attribute ... 420
Die Magie erleben ... 422
Das Ablaufdatum-Attribut ... 424
Die Magie selbst erleben ... 425
Eine magische Reise in dein Selbst ... 426
In den Tiefen des Kaninchenbaus ... 429
Der Attribut-Meister erstellt eigene Attribute! ... 432
Meine Klasse, meine Zeichen ... 434
Selbstreflexion ... 436
Die Psychologie lehrt uns: Wiederholung ist wichtig! ... 440
18. Ich muss mal raus: Dateizugriff und Streams ... 441
Daten speichern ... 442
Rundherum oder direkt rein ... 443
Rein in die Dose, Deckel drauf und fertig ... 445
Deine Geheimnisse sind bei mir nicht sicher ... 446
Das Mysterium der Dateiendungen ... 449
Das Gleiche und doch etwas anders ... 452
Das Lexikon vom Erstellen, Lesen, Schreiben, Umbenennen ... 453
Ran an die Tastatur, rein in die Dateien ... 458
Von der Sandburg zum Wolkenkratzer ... 460
Fließbandarbeit ... 464
Wenn das Fließband nicht ganz richtig läuft ... 467
Dem Fließband vorgeschalteter Fleischwolf ... 471
Nutze die Attribut-Magie! ... 473
Das Formatter-Prinzip ... 474
X(M)L entspricht XXL ... 475
Die kleinste Größe -- JSON ... 477
Wir sind viele ... 479
Das World Wide Web. Unendliche Weiten ... 484
Deine Seite, meine Seite ... 486
Probe, Probe, Leseprobe ... 488
Punkt für Punkt fürs Hirn ... 490
19. Sag doch einfach, wenn du fertig bist: Asynchrone und parallele Programmierung ... 491
Zum Beispiel ein Download-Programm ... 492
Asynchroner Start mit Ereignis bei Fertigstellung ... 494
Subjektive Geschwindigkeiten und Probleme mit dem Warten ... 496
Auf der Suche nach der absoluten Geschwindigkeit ... 499
Es geht auch einfacher! ... 502
Was so alles im Hintergrund laufen kann ... 507
Gemeinsam geht es schneller ... 509
Jetzt wird es etwas magisch ... 513
Wenn jeder mit anpackt, dann geht alles schneller ... 515
Rückzug bei Kriegsspielen ... 518
async/await/cancel ... 520
Unkoordinierte Koordination ... 522
Anders und doch gleich ... 527
Gemeinsam Kuchen backen ... 528
Wenn das Klo besetzt ist ... 533
Das Producer-Consumer-Problem ... 533
Dein Spickzettel ... 539
20. Nimm doch, was andere schon gemacht haben: Die Paketverwaltung NuGet ... 541
Bibliotheken für Code ... 542
Fremden Code aufspüren ... 545
Die Welt ist schon fertig ... 548
21. Die schönen Seiten des Lebens: Einführungin XAML ... 549
Oberflächenprogrammierung ... 550
Hinzufügen der Komponenten für die Universal Windows Platform Apps in Visual Studio ... 552
Diese X-Technologien ... 554
Tabellen über Tabellen ... 558
Hallo Universal App ... 561
Die App soll »Hallo« sagen ... 562
Schrödingers kreative Katze ... 566
Buttons und Text ausrichten ... 569
Von Tabellen, Listen und Parkplätzen ... 571
VariableSizedWrapGrid und RelativePanel -- zwei gute Teilnehmer ... 574
Die Mischung macht's! ... 576
Das gemischte Layout ... 577
Alles schön am Raster ausrichten ... 579
Das sieht doch schon aus wie eine Anwendung ... 581
Ein Layout für eine App ... 583
Auf in die (App)Bar ... 586
Die Ecken und Winkel in der Bar ... 587
Einfach und wirksam ... 588
Das ist alles eine Stilfrage ... 590
Von der Seite in die Anwendung ... 592
Do you speak English, Koreanisch oder so? Schrödinger, I do! ... 593
Die Welt der Sprachen ... 595
Honey, I do! ... 598
Oberflächenprogrammierung auf einen Blick ... 600
22. Models sind doch schön anzusehen: Das Model-View-ViewModel-Entwurfsmuster ... 601
Einführung in MVVM ... 602
Mein erstes eigenes Model ... 606
Datenbindung noch kürzer -- als Seitenressource ... 610
Eine Technik, sie alle zu binden! ... 611
Eine Eigenschaft für alle Infos ... 613
Wenn nur jeder wüsste, was er zu tun hätte ... 615
Los geht's! Notify-Everybody ... 618
Ein Laufsteg muss es sein! ... 621
Über Transvestiten und Bindungsprobleme ... 628
Über Bindungsprobleme und deren Lösungen ... 629
Alleine oder zu zweit? ... 630
Aus Klein mach Groß und zurück ... 631
Klein aber fein ... 632
Die Größe der Kaffeetasse ... 636
Auf mein Kommando ... 641
Kommandierende Butler ... 643
Dem Zufall das Kommando überlassen ... 647
MVVM Punkt für Punkt ... 652
23. Stereotyp Schönheit: Universal Windows Platform (UWP) Apps ... 653
Heute dreht sich alles um Apps ... 654
Universal Windows Platform Apps -- Planung ... 655
Ran an den Code -- die Wetter-App ... 660
Visuelle Zustände als einfache Lösung ... 666
Apps ohne Ende ... 669
Etwas mehr Komfort darf schon sein! ... 671
Auf einen Blick ... 674
24. Toast-Notifications: Der Einsatz von Toast-Notifications ... 675
Ich habe etwas Wichtiges zu sagen! ... 676
Das Betriebssystem wird es schon richten ... 676
Einfache Toast-Notifications ... 677
Templates verzögert anzeigen ... 679
Eigene Notification-Templates ... 680
Die Verwendung deines individuellen Templates ... 682
Das Feinste vom Feinen ... 683
Kleine Änderungen mit großer Wirkung ... 686
Minütlich grüßt die Notification ... 687
Deine Toast-Zusammenfassung ... 690
25. Live is Live: Der Einsatz von Toast-Notifications ... 691
Innovation Live-Kacheln ... 692
Klein, mittel, groß ... 692
Die Do's und Dont's ... 694
Live-Tiles mit XML definieren ... 695
Live-Kacheln mit C# erstellen ... 697
Gona Catch'em all ... 703
Deine Live-Zusammenfassung ... 706
26. Ich will alles rausholen: Datenzugriff über die Windows API ... 707
Dateizugriff nur mit Erlaubnis ... 708
Verhandlungstechnik 1: Dateiauswahl ... 711
Verhandlungstechnik 2: Ordner auswählen ... 712
Verhandlungstechnik 3: Anwendungsdaten speichern, ohne benutzergewählten Speicherort ... 712
Besser als Raumschiff Enterprise -- ein Logbuch ... 715
Energie! Die Oberfläche der App ... 716
Der Sourcecode ... 717
Das ist doch alles dasselbe ... 722
Deine Kurzliste mit den wichtigsten Infos ... 724
27. Funktioniert das wirklich? Unit-Testing ... 725
Das Problem: Testen kann lästig werden ... 726
Die Lösung: Unit-Tests -- Klassen, die Klassen testen ... 727
Das Testprojekt erstellen ... 730
Die Ausführung ist das A und O! ... 732
Spezielle Attribute ... 733
Unit-Tests sind nicht alles ... 733
Testgetriebene Softwareentwicklung -- oder wie du Autofahren lernst ... 734
Darfst du schon fahren? ... 735
Let's do it! ... 740
Dein Test-Merkzettel ... 741
Auf ein Wiedersehen! ... 743
Index ... 744
An den Leser ... 2
Schrödingers Büro ... 4
Schrödingers Werkstatt ... 6
Schrödingers Wohnzimmer ... 8
Impressum ... 10
Inhaltsverzeichnis ... 12
1. Ein guter Start ist der halbe Sieg: Compiler und Entwicklungsumgebungen ... 25
Compiler und Compiler ... 26
Hallo Schrödinger ... 29
Du brauchst eine IDE! ... 33
Visual Studio Community Edition ... 34
Der Spaß geht los! ... 35
.NET Core vs .NET Framework ... 36
Dein erstes Projekt ... 37
Theorie und Praxis ... 40
Was gelernt! ... 42
2. Ein netter Typ: Datentypen und deren Behandlung ... 43
Dieses Glas für diesen Wein ... 44
Grundlagen im Kamelreiten ... 48
Übungen für den Barkeeper ... 50
Rechnen mit Transvestiten ... 51
Alles nur Klone! ... 56
Ja oder nein? ... 57
Was gibt's zu essen? ... 58
Das ständige Hin und Her zwischen ja und nein ... 60
Gut kommentieren! ... 61
Kommentare im Einsatz ... 62
Andere für sich denken lassen ... 62
Compiler-Spiele ... 63
Viele neue Freunde ... 64
3. Alles unter Kontrolle: Bedingungen, Schleifen und Arrays ... 65
Bedingungen ... 66
In der Kürze liegt die Würze ... 69
Durch Variationen bleibt es interessant ... 70
Der Herr der Fernbedienung ... 72
Ist noch Bier da? ... 74
Einer von vielen ... 75
Zwillinge ... 77
Ein Schuhschrank muss her ... 80
Arbeiten in den Tiefen des Schuhschranks -- von Kopf bis Fuß ... 81
Die ganze Welt ist Mathematik und aller guten Dinge sind drei vier ... 83
Schau's dir an mit dem Debugger ... 84
Solange du nicht fertig bist, weitermachen ... ... 85
Ich habe es mir anders überlegt ... 86
Oder mach doch weiter ... ... 87
Zurück zu den Schuhschränken ... 88
Wenn aus einem Schuhschrank eine Lagerhalle wird ... 89
Wiederholung, Wiederholung! ... 91
Code muss man auch lesen können ... 92
Jetzt kommt das neue coole Zeug! ... 94
.. oder einmal alles ... 97
4. Sexy Unterwäsche -- von kleinen Teilen bis gar nichts: Strings, Characters und Nullable Types ... 99
Zeichenketten -- Strings ... 100
Kleine Teile -- einzelne Zeichen ... 101
Kleine und große Teile ... 102
Einfacher und schneller ... 103
Noch einfacher: Variablen im Text verwenden ... 106
Etwas Besonderes sollte es sein ... 107
Verdrehte Welt ... 108
Sein oder nicht sein? ... 111
Verweise auf nichts ... 113
Nichts im Einsatz ... 115
Damit bei so viel null nichts verloren geht ... 116
5. Eine endliche Geschichte: Enumerationen ... 117
Rot -- Gelb -- Grün ... 118
Tageweise ... 120
Tell me why I don't like mondays ... ... 123
WoW-Völker ... 124
Auf wenige Sätze heruntergebrochen ... 126
6. Teile und herrsche: Methoden ... 127
Teilen statt Kopieren ... 128
Originale und überteuerte Kopien ... 131
Eins ist nicht genug ... 135
Ich rechne mit dir ... 136
Wenn sich nichts bewegt und alles statisch ist ... 137
Ich hätte gerne das Original! ... 137
Sommerschlussverkauf -- alles muss raus ... 138
Tauschgeschäfte, die nicht funktionieren ... 140
Ich will das ganz anders oder auch gar nicht -- Methoden überladen ... 141
Das Ganze noch einmal umgerührt ... 144
Ein knurrender Magen spornt bestimmt zu Höchstleistungen an ... 146
Originale zurücksenden ... 147
Maximale Originale ... 149
Eine kleine Zusammenfassung für dich ... 150
7. Klassengesellschaft: Objekte, Eigenschaften und Sichtbarkeiten ... 151
Mein Alter, meine Augenfarbe, mein Geburtsdatum ... 152
Eine Aufgabe für den Accessor ... 156
Ich sehe was, was du nicht siehst ... 157
Eigenschaften aufpoliert und bereit für die Bühne ... 158
Tanzen mit Elvis -- wenn keiner da ist, ist keiner da ... 160
Geheimniskrämerei und Kontrollfreak ... 161
Darf ich jetzt oder nicht? ... 162
Zusammen, was zusammengehört! ... 166
Zusammen und doch getrennt ... 168
Laufen, kämpfen, sterben ... 170
Vom Leben und Sterben ... 171
Geburtenkontrolle ... 172
Mehrlingsgeburt ... 175
Partielle Klassen ... 176
Meine partiellen Daten ... 178
Gemeinsame Werte von dicken Freunden ... 179
Eigene Wertetypen ... 180
Strukturen überall ... 182
Strukturen ohne Namen ... 184
Eigene Typen nochmals vom Sofa aus betrachtet ... 186
Die Nachteile der Wertetypen ausgetrickst ... 188
Gelernt ist gelernt! ... 191
8. Es wird Zeit für Übersicht! Namespaces ... 193
Eine Ordnung für die Klassen ... 194
Was ist denn nur in diesem Namespace vorhanden? ... 197
Vorhandene Systembausteine ... 199
Wo sind nur diese Bausteine? ... 201
Mathematik für Einsteiger ... 203
Nochmals finden, was scheinbar nicht da ist ... 204
Zum Mitnehmen ... 204
9. Erben ohne Sterben: Objektorientierte Programmierung ... 205
Geisterstunde ... 206
Schleimgeister sind spezielle Geister ... 208
Fünf vor zwölf ... 210
Geister fressen, Schleimgeister fressen, Kannibalen fressen -- alles muss man einzeln machen ... 216
Enterben ... 217
Geister haben viele Gestalten ... 217
Geister, die sich nicht an die Regeln halten ... 220
Gestaltwandler unter der Lupe ... 221
Nochmals drüber nachgedacht ... 222
Hier noch ein Merkzettel ... 226
10. Abstrakte Kunst: Abstrakte Klassen und Interfaces ... 227
Unverstandene Künstler ... 230
Das Meisterwerk nochmals betrachtet ... 232
Abstrakte Kunst am Prüftisch ... 233
Allgemein ist konkret genug ... 235
Fabrikarbeit ... 236
Alles unter einem Dach ... 237
Kaffee oder Tee? Oder doch lieber eine Cola? ... 238
Kaffeemaschine im Einsatz ... 240
Eine Cola bitte ... 242
Freundin vs. Chef -- Runde 1 ... 244
Bei perfekter Verwendung ... ... 245
Freundin vs. Chef -- Runde 2 ... 246
Freundin vs. Chef -- Runde 3 ... 248
Abstraktion und Interfaces auf einen Blick ... 249
11. Airbags können Leben retten: Exceptionhandling ... 251
Mach's stabil! ... 252
Einen Versuch war es wert ... 254
Nur unter bestimmten Umständen ... 257
Fehler über Fehler ... 258
Über das Klettern auf Bäume ... 262
Klettern auf nicht vorhandene Bäume -- NullReferenceException ... 262
Auf Sträucher klettern -- FormatException ... 263
Sträucher im Sägewerk -- ArgumentException ... 264
Bezahlung ohne Ware -- ArgumentNullException ... 264
Bewusste Fehler ... 265
Selbst definierte Fehler ... 266
Fehler in freier Wildbahn ... 267
Das Matruschka-Prinzip ... 268
Alles noch einmal aufgerollt ... 270
Dein Fehler-Cheat-Sheet ... 274
12. Ein ordentliches Ablagesystem muss her: Collections und Laufzeitkomplexität ... 275
Je größer der Schuhschrank, desto länger die Suche ... 276
Komplizierte Laufschuhe ... 277
Geschwindigkeitsprognosen ... 280
Es muss nicht immer gleich quadratisch sein ... 282
Geschwindigkeitseinschätzung und Buchstabensuppe ... 285
Selbstwachsende Schuhschränke ... 288
Eine Array-Liste ... 289
Ringboxen ... 290
Listige Arrays und ihre Eigenheiten ... 291
Listige Arrays und ihre Verwendung ... 291
The Need for Speed ... 292
Es wird konkreter ... 293
Sortieren bringt Geschwindigkeit -- SortedList ... 294
Listenreiche Arbeit ... 296
Es geht noch schneller! ... 298
Im Rausch der Geschwindigkeit ... 300
Dictionary-Initialisierung in C# 6 ... 302
Wörterbücher in der Anwendung ... oder was im Regelfall schiefgeht ... 303
Von Bäumen und Ästen ... 307
Ein Verwendungsbeispiel ... 308
Alles eindeutig -- das HashSet ... 309
Schnelles Arbeiten mit Sets ... 310
Das große Bild ... 312
Der große Test, das Geheimnis und die Verwunderung ... 315
Noch einmal durchleuchtet ... 320
Dein Merkzettel rund um die Collections aus Laufzeiten ... 325
13. Allgemein konkrete Implementierungen: Generizität ... 327
Konkrete Typen müssen nicht sein ... 328
Das große Ganze ... 329
Mülltrennung leicht gemacht ... 330
Der Nächste bitte ... 333
Allgemein, aber nicht für jeden! ... 335
Immer das Gleiche und doch etwas anderes ... 337
Fabrikarbeit ... 339
Aus allgemein wird konkret ... 340
Hier kommt nicht jeder Typ rein. ... 341
Ähnlich, aber nicht gleich! ... 342
Varianzen hin oder her ... 344
Varianzen in der Praxis ... 347
WoW im Simulator ... 350
Damit's auch hängen bleibt ... 352
14. Linke Typen, auf die man sich verlassen kann: LINQ ... 353
Linke Typen, auf die man sich verlassen kann ... 354
Shoppen in WoW ... 357
Gesund oder gut essen? ... 360
Listen zusammenführen ... 361
Fix geLINQt statt handverlesen ... 369
Merkzettel ... 372
15. Blumen für die Dame: Delegaten und Ereignisse ... 373
Ein Butler übernimmt die Arbeit ... 374
Im Strudel der Methoden ... 377
Die Butlerschule ... 380
Die Wahl des Butlers ... 383
Ereignisreiche Tage ... 384
Eine Runde für alle ... 387
Auf in die Bar! ... 388
Wiederholung, Wiederholung ... 391
Die delegierte Zusammenfassung ... 394
16. Der Standard ist nicht genug: Extension-Methoden und Lambda-Expressions ... 395
Extension-Methoden ... 396
Auf die Größe kommt es an ... 400
Erweiterungen nochmals durchschaut ... 402
Softwareentwicklung mit Lambdas ... 404
Lambda-Expressions auf Collections loslassen ... 407
Ein Ausritt auf Lamas ... 408
Filtern ... 408
Gruppieren ... 410
Verknüpfen ... 411
Gruppieren und Verknüpfen kombiniert ... 412
Left Join ... 413
VerLINQte LAMbdAS ... 415
Lamas im Schnelldurchlauf ... 418
17. Die Magie der Attribute: Arbeiten mit Attributen ... 419
Die Welt der Attribute ... 420
Die Magie erleben ... 422
Das Ablaufdatum-Attribut ... 424
Die Magie selbst erleben ... 425
Eine magische Reise in dein Selbst ... 426
In den Tiefen des Kaninchenbaus ... 429
Der Attribut-Meister erstellt eigene Attribute! ... 432
Meine Klasse, meine Zeichen ... 434
Selbstreflexion ... 436
Die Psychologie lehrt uns: Wiederholung ist wichtig! ... 440
18. Ich muss mal raus: Dateizugriff und Streams ... 441
Daten speichern ... 442
Rundherum oder direkt rein ... 443
Rein in die Dose, Deckel drauf und fertig ... 445
Deine Geheimnisse sind bei mir nicht sicher ... 446
Das Mysterium der Dateiendungen ... 449
Das Gleiche und doch etwas anders ... 452
Das Lexikon vom Erstellen, Lesen, Schreiben, Umbenennen ... 453
Ran an die Tastatur, rein in die Dateien ... 458
Von der Sandburg zum Wolkenkratzer ... 460
Fließbandarbeit ... 464
Wenn das Fließband nicht ganz richtig läuft ... 467
Dem Fließband vorgeschalteter Fleischwolf ... 471
Nutze die Attribut-Magie! ... 473
Das Formatter-Prinzip ... 474
X(M)L entspricht XXL ... 475
Die kleinste Größe -- JSON ... 477
Wir sind viele ... 479
Das World Wide Web. Unendliche Weiten ... 484
Deine Seite, meine Seite ... 486
Probe, Probe, Leseprobe ... 488
Punkt für Punkt fürs Hirn ... 490
19. Sag doch einfach, wenn du fertig bist: Asynchrone und parallele Programmierung ... 491
Zum Beispiel ein Download-Programm ... 492
Asynchroner Start mit Ereignis bei Fertigstellung ... 494
Subjektive Geschwindigkeiten und Probleme mit dem Warten ... 496
Auf der Suche nach der absoluten Geschwindigkeit ... 499
Es geht auch einfacher! ... 502
Was so alles im Hintergrund laufen kann ... 507
Gemeinsam geht es schneller ... 509
Jetzt wird es etwas magisch ... 513
Wenn jeder mit anpackt, dann geht alles schneller ... 515
Rückzug bei Kriegsspielen ... 518
async/await/cancel ... 520
Unkoordinierte Koordination ... 522
Anders und doch gleich ... 527
Gemeinsam Kuchen backen ... 528
Wenn das Klo besetzt ist ... 533
Das Producer-Consumer-Problem ... 533
Dein Spickzettel ... 539
20. Nimm doch, was andere schon gemacht haben: Die Paketverwaltung NuGet ... 541
Bibliotheken für Code ... 542
Fremden Code aufspüren ... 545
Die Welt ist schon fertig ... 548
21. Die schönen Seiten des Lebens: Einführungin XAML ... 549
Oberflächenprogrammierung ... 550
Hinzufügen der Komponenten für die Universal Windows Platform Apps in Visual Studio ... 552
Diese X-Technologien ... 554
Tabellen über Tabellen ... 558
Hallo Universal App ... 561
Die App soll »Hallo« sagen ... 562
Schrödingers kreative Katze ... 566
Buttons und Text ausrichten ... 569
Von Tabellen, Listen und Parkplätzen ... 571
VariableSizedWrapGrid und RelativePanel -- zwei gute Teilnehmer ... 574
Die Mischung macht's! ... 576
Das gemischte Layout ... 577
Alles schön am Raster ausrichten ... 579
Das sieht doch schon aus wie eine Anwendung ... 581
Ein Layout für eine App ... 583
Auf in die (App)Bar ... 586
Die Ecken und Winkel in der Bar ... 587
Einfach und wirksam ... 588
Das ist alles eine Stilfrage ... 590
Von der Seite in die Anwendung ... 592
Do you speak English, Koreanisch oder so? Schrödinger, I do! ... 593
Die Welt der Sprachen ... 595
Honey, I do! ... 598
Oberflächenprogrammierung auf einen Blick ... 600
22. Models sind doch schön anzusehen: Das Model-View-ViewModel-Entwurfsmuster ... 601
Einführung in MVVM ... 602
Mein erstes eigenes Model ... 606
Datenbindung noch kürzer -- als Seitenressource ... 610
Eine Technik, sie alle zu binden! ... 611
Eine Eigenschaft für alle Infos ... 613
Wenn nur jeder wüsste, was er zu tun hätte ... 615
Los geht's! Notify-Everybody ... 618
Ein Laufsteg muss es sein! ... 621
Über Transvestiten und Bindungsprobleme ... 628
Über Bindungsprobleme und deren Lösungen ... 629
Alleine oder zu zweit? ... 630
Aus Klein mach Groß und zurück ... 631
Klein aber fein ... 632
Die Größe der Kaffeetasse ... 636
Auf mein Kommando ... 641
Kommandierende Butler ... 643
Dem Zufall das Kommando überlassen ... 647
MVVM Punkt für Punkt ... 652
23. Stereotyp Schönheit: Universal Windows Platform (UWP) Apps ... 653
Heute dreht sich alles um Apps ... 654
Universal Windows Platform Apps -- Planung ... 655
Ran an den Code -- die Wetter-App ... 660
Visuelle Zustände als einfache Lösung ... 666
Apps ohne Ende ... 669
Etwas mehr Komfort darf schon sein! ... 671
Auf einen Blick ... 674
24. Toast-Notifications: Der Einsatz von Toast-Notifications ... 675
Ich habe etwas Wichtiges zu sagen! ... 676
Das Betriebssystem wird es schon richten ... 676
Einfache Toast-Notifications ... 677
Templates verzögert anzeigen ... 679
Eigene Notification-Templates ... 680
Die Verwendung deines individuellen Templates ... 682
Das Feinste vom Feinen ... 683
Kleine Änderungen mit großer Wirkung ... 686
Minütlich grüßt die Notification ... 687
Deine Toast-Zusammenfassung ... 690
25. Live is Live: Der Einsatz von Toast-Notifications ... 691
Innovation Live-Kacheln ... 692
Klein, mittel, groß ... 692
Die Do's und Dont's ... 694
Live-Tiles mit XML definieren ... 695
Live-Kacheln mit C# erstellen ... 697
Gona Catch'em all ... 703
Deine Live-Zusammenfassung ... 706
26. Ich will alles rausholen: Datenzugriff über die Windows API ... 707
Dateizugriff nur mit Erlaubnis ... 708
Verhandlungstechnik 1: Dateiauswahl ... 711
Verhandlungstechnik 2: Ordner auswählen ... 712
Verhandlungstechnik 3: Anwendungsdaten speichern, ohne benutzergewählten Speicherort ... 712
Besser als Raumschiff Enterprise -- ein Logbuch ... 715
Energie! Die Oberfläche der App ... 716
Der Sourcecode ... 717
Das ist doch alles dasselbe ... 722
Deine Kurzliste mit den wichtigsten Infos ... 724
27. Funktioniert das wirklich? Unit-Testing ... 725
Das Problem: Testen kann lästig werden ... 726
Die Lösung: Unit-Tests -- Klassen, die Klassen testen ... 727
Das Testprojekt erstellen ... 730
Die Ausführung ist das A und O! ... 732
Spezielle Attribute ... 733
Unit-Tests sind nicht alles ... 733
Testgetriebene Softwareentwicklung -- oder wie du Autofahren lernst ... 734
Darfst du schon fahren? ... 735
Let's do it! ... 740
Dein Test-Merkzettel ... 741
Auf ein Wiedersehen! ... 743
Index ... 744
Schrödingers Büro ... 4
Schrödingers Werkstatt ... 6
Schrödingers Wohnzimmer ... 8
Impressum ... 10
Inhaltsverzeichnis ... 12
1. Ein guter Start ist der halbe Sieg: Compiler und Entwicklungsumgebungen ... 25
Compiler und Compiler ... 26
Hallo Schrödinger ... 29
Du brauchst eine IDE! ... 33
Visual Studio Community Edition ... 34
Der Spaß geht los! ... 35
.NET Core vs .NET Framework ... 36
Dein erstes Projekt ... 37
Theorie und Praxis ... 40
Was gelernt! ... 42
2. Ein netter Typ: Datentypen und deren Behandlung ... 43
Dieses Glas für diesen Wein ... 44
Grundlagen im Kamelreiten ... 48
Übungen für den Barkeeper ... 50
Rechnen mit Transvestiten ... 51
Alles nur Klone! ... 56
Ja oder nein? ... 57
Was gibt's zu essen? ... 58
Das ständige Hin und Her zwischen ja und nein ... 60
Gut kommentieren! ... 61
Kommentare im Einsatz ... 62
Andere für sich denken lassen ... 62
Compiler-Spiele ... 63
Viele neue Freunde ... 64
3. Alles unter Kontrolle: Bedingungen, Schleifen und Arrays ... 65
Bedingungen ... 66
In der Kürze liegt die Würze ... 69
Durch Variationen bleibt es interessant ... 70
Der Herr der Fernbedienung ... 72
Ist noch Bier da? ... 74
Einer von vielen ... 75
Zwillinge ... 77
Ein Schuhschrank muss her ... 80
Arbeiten in den Tiefen des Schuhschranks -- von Kopf bis Fuß ... 81
Die ganze Welt ist Mathematik und aller guten Dinge sind drei vier ... 83
Schau's dir an mit dem Debugger ... 84
Solange du nicht fertig bist, weitermachen ... ... 85
Ich habe es mir anders überlegt ... 86
Oder mach doch weiter ... ... 87
Zurück zu den Schuhschränken ... 88
Wenn aus einem Schuhschrank eine Lagerhalle wird ... 89
Wiederholung, Wiederholung! ... 91
Code muss man auch lesen können ... 92
Jetzt kommt das neue coole Zeug! ... 94
.. oder einmal alles ... 97
4. Sexy Unterwäsche -- von kleinen Teilen bis gar nichts: Strings, Characters und Nullable Types ... 99
Zeichenketten -- Strings ... 100
Kleine Teile -- einzelne Zeichen ... 101
Kleine und große Teile ... 102
Einfacher und schneller ... 103
Noch einfacher: Variablen im Text verwenden ... 106
Etwas Besonderes sollte es sein ... 107
Verdrehte Welt ... 108
Sein oder nicht sein? ... 111
Verweise auf nichts ... 113
Nichts im Einsatz ... 115
Damit bei so viel null nichts verloren geht ... 116
5. Eine endliche Geschichte: Enumerationen ... 117
Rot -- Gelb -- Grün ... 118
Tageweise ... 120
Tell me why I don't like mondays ... ... 123
WoW-Völker ... 124
Auf wenige Sätze heruntergebrochen ... 126
6. Teile und herrsche: Methoden ... 127
Teilen statt Kopieren ... 128
Originale und überteuerte Kopien ... 131
Eins ist nicht genug ... 135
Ich rechne mit dir ... 136
Wenn sich nichts bewegt und alles statisch ist ... 137
Ich hätte gerne das Original! ... 137
Sommerschlussverkauf -- alles muss raus ... 138
Tauschgeschäfte, die nicht funktionieren ... 140
Ich will das ganz anders oder auch gar nicht -- Methoden überladen ... 141
Das Ganze noch einmal umgerührt ... 144
Ein knurrender Magen spornt bestimmt zu Höchstleistungen an ... 146
Originale zurücksenden ... 147
Maximale Originale ... 149
Eine kleine Zusammenfassung für dich ... 150
7. Klassengesellschaft: Objekte, Eigenschaften und Sichtbarkeiten ... 151
Mein Alter, meine Augenfarbe, mein Geburtsdatum ... 152
Eine Aufgabe für den Accessor ... 156
Ich sehe was, was du nicht siehst ... 157
Eigenschaften aufpoliert und bereit für die Bühne ... 158
Tanzen mit Elvis -- wenn keiner da ist, ist keiner da ... 160
Geheimniskrämerei und Kontrollfreak ... 161
Darf ich jetzt oder nicht? ... 162
Zusammen, was zusammengehört! ... 166
Zusammen und doch getrennt ... 168
Laufen, kämpfen, sterben ... 170
Vom Leben und Sterben ... 171
Geburtenkontrolle ... 172
Mehrlingsgeburt ... 175
Partielle Klassen ... 176
Meine partiellen Daten ... 178
Gemeinsame Werte von dicken Freunden ... 179
Eigene Wertetypen ... 180
Strukturen überall ... 182
Strukturen ohne Namen ... 184
Eigene Typen nochmals vom Sofa aus betrachtet ... 186
Die Nachteile der Wertetypen ausgetrickst ... 188
Gelernt ist gelernt! ... 191
8. Es wird Zeit für Übersicht! Namespaces ... 193
Eine Ordnung für die Klassen ... 194
Was ist denn nur in diesem Namespace vorhanden? ... 197
Vorhandene Systembausteine ... 199
Wo sind nur diese Bausteine? ... 201
Mathematik für Einsteiger ... 203
Nochmals finden, was scheinbar nicht da ist ... 204
Zum Mitnehmen ... 204
9. Erben ohne Sterben: Objektorientierte Programmierung ... 205
Geisterstunde ... 206
Schleimgeister sind spezielle Geister ... 208
Fünf vor zwölf ... 210
Geister fressen, Schleimgeister fressen, Kannibalen fressen -- alles muss man einzeln machen ... 216
Enterben ... 217
Geister haben viele Gestalten ... 217
Geister, die sich nicht an die Regeln halten ... 220
Gestaltwandler unter der Lupe ... 221
Nochmals drüber nachgedacht ... 222
Hier noch ein Merkzettel ... 226
10. Abstrakte Kunst: Abstrakte Klassen und Interfaces ... 227
Unverstandene Künstler ... 230
Das Meisterwerk nochmals betrachtet ... 232
Abstrakte Kunst am Prüftisch ... 233
Allgemein ist konkret genug ... 235
Fabrikarbeit ... 236
Alles unter einem Dach ... 237
Kaffee oder Tee? Oder doch lieber eine Cola? ... 238
Kaffeemaschine im Einsatz ... 240
Eine Cola bitte ... 242
Freundin vs. Chef -- Runde 1 ... 244
Bei perfekter Verwendung ... ... 245
Freundin vs. Chef -- Runde 2 ... 246
Freundin vs. Chef -- Runde 3 ... 248
Abstraktion und Interfaces auf einen Blick ... 249
11. Airbags können Leben retten: Exceptionhandling ... 251
Mach's stabil! ... 252
Einen Versuch war es wert ... 254
Nur unter bestimmten Umständen ... 257
Fehler über Fehler ... 258
Über das Klettern auf Bäume ... 262
Klettern auf nicht vorhandene Bäume -- NullReferenceException ... 262
Auf Sträucher klettern -- FormatException ... 263
Sträucher im Sägewerk -- ArgumentException ... 264
Bezahlung ohne Ware -- ArgumentNullException ... 264
Bewusste Fehler ... 265
Selbst definierte Fehler ... 266
Fehler in freier Wildbahn ... 267
Das Matruschka-Prinzip ... 268
Alles noch einmal aufgerollt ... 270
Dein Fehler-Cheat-Sheet ... 274
12. Ein ordentliches Ablagesystem muss her: Collections und Laufzeitkomplexität ... 275
Je größer der Schuhschrank, desto länger die Suche ... 276
Komplizierte Laufschuhe ... 277
Geschwindigkeitsprognosen ... 280
Es muss nicht immer gleich quadratisch sein ... 282
Geschwindigkeitseinschätzung und Buchstabensuppe ... 285
Selbstwachsende Schuhschränke ... 288
Eine Array-Liste ... 289
Ringboxen ... 290
Listige Arrays und ihre Eigenheiten ... 291
Listige Arrays und ihre Verwendung ... 291
The Need for Speed ... 292
Es wird konkreter ... 293
Sortieren bringt Geschwindigkeit -- SortedList ... 294
Listenreiche Arbeit ... 296
Es geht noch schneller! ... 298
Im Rausch der Geschwindigkeit ... 300
Dictionary-Initialisierung in C# 6 ... 302
Wörterbücher in der Anwendung ... oder was im Regelfall schiefgeht ... 303
Von Bäumen und Ästen ... 307
Ein Verwendungsbeispiel ... 308
Alles eindeutig -- das HashSet ... 309
Schnelles Arbeiten mit Sets ... 310
Das große Bild ... 312
Der große Test, das Geheimnis und die Verwunderung ... 315
Noch einmal durchleuchtet ... 320
Dein Merkzettel rund um die Collections aus Laufzeiten ... 325
13. Allgemein konkrete Implementierungen: Generizität ... 327
Konkrete Typen müssen nicht sein ... 328
Das große Ganze ... 329
Mülltrennung leicht gemacht ... 330
Der Nächste bitte ... 333
Allgemein, aber nicht für jeden! ... 335
Immer das Gleiche und doch etwas anderes ... 337
Fabrikarbeit ... 339
Aus allgemein wird konkret ... 340
Hier kommt nicht jeder Typ rein. ... 341
Ähnlich, aber nicht gleich! ... 342
Varianzen hin oder her ... 344
Varianzen in der Praxis ... 347
WoW im Simulator ... 350
Damit's auch hängen bleibt ... 352
14. Linke Typen, auf die man sich verlassen kann: LINQ ... 353
Linke Typen, auf die man sich verlassen kann ... 354
Shoppen in WoW ... 357
Gesund oder gut essen? ... 360
Listen zusammenführen ... 361
Fix geLINQt statt handverlesen ... 369
Merkzettel ... 372
15. Blumen für die Dame: Delegaten und Ereignisse ... 373
Ein Butler übernimmt die Arbeit ... 374
Im Strudel der Methoden ... 377
Die Butlerschule ... 380
Die Wahl des Butlers ... 383
Ereignisreiche Tage ... 384
Eine Runde für alle ... 387
Auf in die Bar! ... 388
Wiederholung, Wiederholung ... 391
Die delegierte Zusammenfassung ... 394
16. Der Standard ist nicht genug: Extension-Methoden und Lambda-Expressions ... 395
Extension-Methoden ... 396
Auf die Größe kommt es an ... 400
Erweiterungen nochmals durchschaut ... 402
Softwareentwicklung mit Lambdas ... 404
Lambda-Expressions auf Collections loslassen ... 407
Ein Ausritt auf Lamas ... 408
Filtern ... 408
Gruppieren ... 410
Verknüpfen ... 411
Gruppieren und Verknüpfen kombiniert ... 412
Left Join ... 413
VerLINQte LAMbdAS ... 415
Lamas im Schnelldurchlauf ... 418
17. Die Magie der Attribute: Arbeiten mit Attributen ... 419
Die Welt der Attribute ... 420
Die Magie erleben ... 422
Das Ablaufdatum-Attribut ... 424
Die Magie selbst erleben ... 425
Eine magische Reise in dein Selbst ... 426
In den Tiefen des Kaninchenbaus ... 429
Der Attribut-Meister erstellt eigene Attribute! ... 432
Meine Klasse, meine Zeichen ... 434
Selbstreflexion ... 436
Die Psychologie lehrt uns: Wiederholung ist wichtig! ... 440
18. Ich muss mal raus: Dateizugriff und Streams ... 441
Daten speichern ... 442
Rundherum oder direkt rein ... 443
Rein in die Dose, Deckel drauf und fertig ... 445
Deine Geheimnisse sind bei mir nicht sicher ... 446
Das Mysterium der Dateiendungen ... 449
Das Gleiche und doch etwas anders ... 452
Das Lexikon vom Erstellen, Lesen, Schreiben, Umbenennen ... 453
Ran an die Tastatur, rein in die Dateien ... 458
Von der Sandburg zum Wolkenkratzer ... 460
Fließbandarbeit ... 464
Wenn das Fließband nicht ganz richtig läuft ... 467
Dem Fließband vorgeschalteter Fleischwolf ... 471
Nutze die Attribut-Magie! ... 473
Das Formatter-Prinzip ... 474
X(M)L entspricht XXL ... 475
Die kleinste Größe -- JSON ... 477
Wir sind viele ... 479
Das World Wide Web. Unendliche Weiten ... 484
Deine Seite, meine Seite ... 486
Probe, Probe, Leseprobe ... 488
Punkt für Punkt fürs Hirn ... 490
19. Sag doch einfach, wenn du fertig bist: Asynchrone und parallele Programmierung ... 491
Zum Beispiel ein Download-Programm ... 492
Asynchroner Start mit Ereignis bei Fertigstellung ... 494
Subjektive Geschwindigkeiten und Probleme mit dem Warten ... 496
Auf der Suche nach der absoluten Geschwindigkeit ... 499
Es geht auch einfacher! ... 502
Was so alles im Hintergrund laufen kann ... 507
Gemeinsam geht es schneller ... 509
Jetzt wird es etwas magisch ... 513
Wenn jeder mit anpackt, dann geht alles schneller ... 515
Rückzug bei Kriegsspielen ... 518
async/await/cancel ... 520
Unkoordinierte Koordination ... 522
Anders und doch gleich ... 527
Gemeinsam Kuchen backen ... 528
Wenn das Klo besetzt ist ... 533
Das Producer-Consumer-Problem ... 533
Dein Spickzettel ... 539
20. Nimm doch, was andere schon gemacht haben: Die Paketverwaltung NuGet ... 541
Bibliotheken für Code ... 542
Fremden Code aufspüren ... 545
Die Welt ist schon fertig ... 548
21. Die schönen Seiten des Lebens: Einführungin XAML ... 549
Oberflächenprogrammierung ... 550
Hinzufügen der Komponenten für die Universal Windows Platform Apps in Visual Studio ... 552
Diese X-Technologien ... 554
Tabellen über Tabellen ... 558
Hallo Universal App ... 561
Die App soll »Hallo« sagen ... 562
Schrödingers kreative Katze ... 566
Buttons und Text ausrichten ... 569
Von Tabellen, Listen und Parkplätzen ... 571
VariableSizedWrapGrid und RelativePanel -- zwei gute Teilnehmer ... 574
Die Mischung macht's! ... 576
Das gemischte Layout ... 577
Alles schön am Raster ausrichten ... 579
Das sieht doch schon aus wie eine Anwendung ... 581
Ein Layout für eine App ... 583
Auf in die (App)Bar ... 586
Die Ecken und Winkel in der Bar ... 587
Einfach und wirksam ... 588
Das ist alles eine Stilfrage ... 590
Von der Seite in die Anwendung ... 592
Do you speak English, Koreanisch oder so? Schrödinger, I do! ... 593
Die Welt der Sprachen ... 595
Honey, I do! ... 598
Oberflächenprogrammierung auf einen Blick ... 600
22. Models sind doch schön anzusehen: Das Model-View-ViewModel-Entwurfsmuster ... 601
Einführung in MVVM ... 602
Mein erstes eigenes Model ... 606
Datenbindung noch kürzer -- als Seitenressource ... 610
Eine Technik, sie alle zu binden! ... 611
Eine Eigenschaft für alle Infos ... 613
Wenn nur jeder wüsste, was er zu tun hätte ... 615
Los geht's! Notify-Everybody ... 618
Ein Laufsteg muss es sein! ... 621
Über Transvestiten und Bindungsprobleme ... 628
Über Bindungsprobleme und deren Lösungen ... 629
Alleine oder zu zweit? ... 630
Aus Klein mach Groß und zurück ... 631
Klein aber fein ... 632
Die Größe der Kaffeetasse ... 636
Auf mein Kommando ... 641
Kommandierende Butler ... 643
Dem Zufall das Kommando überlassen ... 647
MVVM Punkt für Punkt ... 652
23. Stereotyp Schönheit: Universal Windows Platform (UWP) Apps ... 653
Heute dreht sich alles um Apps ... 654
Universal Windows Platform Apps -- Planung ... 655
Ran an den Code -- die Wetter-App ... 660
Visuelle Zustände als einfache Lösung ... 666
Apps ohne Ende ... 669
Etwas mehr Komfort darf schon sein! ... 671
Auf einen Blick ... 674
24. Toast-Notifications: Der Einsatz von Toast-Notifications ... 675
Ich habe etwas Wichtiges zu sagen! ... 676
Das Betriebssystem wird es schon richten ... 676
Einfache Toast-Notifications ... 677
Templates verzögert anzeigen ... 679
Eigene Notification-Templates ... 680
Die Verwendung deines individuellen Templates ... 682
Das Feinste vom Feinen ... 683
Kleine Änderungen mit großer Wirkung ... 686
Minütlich grüßt die Notification ... 687
Deine Toast-Zusammenfassung ... 690
25. Live is Live: Der Einsatz von Toast-Notifications ... 691
Innovation Live-Kacheln ... 692
Klein, mittel, groß ... 692
Die Do's und Dont's ... 694
Live-Tiles mit XML definieren ... 695
Live-Kacheln mit C# erstellen ... 697
Gona Catch'em all ... 703
Deine Live-Zusammenfassung ... 706
26. Ich will alles rausholen: Datenzugriff über die Windows API ... 707
Dateizugriff nur mit Erlaubnis ... 708
Verhandlungstechnik 1: Dateiauswahl ... 711
Verhandlungstechnik 2: Ordner auswählen ... 712
Verhandlungstechnik 3: Anwendungsdaten speichern, ohne benutzergewählten Speicherort ... 712
Besser als Raumschiff Enterprise -- ein Logbuch ... 715
Energie! Die Oberfläche der App ... 716
Der Sourcecode ... 717
Das ist doch alles dasselbe ... 722
Deine Kurzliste mit den wichtigsten Infos ... 724
27. Funktioniert das wirklich? Unit-Testing ... 725
Das Problem: Testen kann lästig werden ... 726
Die Lösung: Unit-Tests -- Klassen, die Klassen testen ... 727
Das Testprojekt erstellen ... 730
Die Ausführung ist das A und O! ... 732
Spezielle Attribute ... 733
Unit-Tests sind nicht alles ... 733
Testgetriebene Softwareentwicklung -- oder wie du Autofahren lernst ... 734
Darfst du schon fahren? ... 735
Let's do it! ... 740
Dein Test-Merkzettel ... 741
Auf ein Wiedersehen! ... 743
Index ... 744