Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
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