Schrödinger programmiert C #

Das etwas andere Fachbuch
 
 
Rheinwerk (Verlag)
  • 3. Auflage
  • |
  • erschienen im Juni 2019
 
  • Buch
  • |
  • Softcover
  • |
  • 749 Seiten
978-3-8362-6968-1 (ISBN)
 
»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
3.,m aktualisierte Auflage
  • Deutsch
  • Bonn
  • |
  • Deutschland
Rheinwerk
  • Überarbeitete Ausgabe
  • Klappenbroschur
  • Höhe: 236 mm
  • |
  • Breite: 192 mm
  • |
  • Dicke: 53 mm
  • 1775 gr
978-3-8362-6968-1 (9783836269681)
weitere Ausgaben werden ermittelt
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



Sofort lieferbar

49,90 €
inkl. 7% MwSt.
in den Warenkorb