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
Durchblicken, mitmachen und genießen
'Ein neuer Weg bei der Vermittlung von Entwickler-Fachwissen' — c’t zur Schrödinger-Reihe
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, Datentypen
- Klassen und Vererbung
- Wichtige Entwurfsmuster
- GUI-Entwicklung mit XAML
- LINQ einsetzen
- async/await geschickt verwenden
- Dateizugriffe und Streams
- Multithreading
- Internetzugriff
- Mit Fehlern und Ausnahmen umgehen
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.