Software entwickeln mit C#, WPF und dem MVVM-Konzept
()
About this ebook
Als Programmiersprache nutzen Sie hier C# und Sie arbeiten mit der Windows Präsentation Form.
Stefan Kunick
Stefan Kunick, geboren 1961 in Villingen-Schwenningen, erlernte den Beruf des Industriekaufmanns. 1985 absolvierte er nebenberuflich eine Ausbildung zum Softwareentwickler. Später folgten weiter Vertiefungen im Bereich der Softwareentwicklung, Computersysteme und der Organistion. Seit 1988 ist er im EDV-Bereich tätig.
Related to Software entwickeln mit C#, WPF und dem MVVM-Konzept
Related ebooks
C# 10 – kurz & gut Rating: 0 out of 5 stars0 ratingsC# 8.0 – kurz & gut Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsEinstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratingsBootstrap kurz & gut Rating: 0 out of 5 stars0 ratingsProgrammierung in Visual Basic (VB): von der promanalyse zum programm Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsMicroservices-Architektur: Patterns in Spring implementieren Rating: 0 out of 5 stars0 ratingsVue.js kurz & gut Rating: 0 out of 5 stars0 ratingsWindows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger – Für alle Versionen Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 16 Rating: 0 out of 5 stars0 ratingsDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Rating: 1 out of 5 stars1/5Moderne Datenzugriffslösungen mit Entity Framework 6 Rating: 0 out of 5 stars0 ratingsKompaktkurs C# 7 Rating: 0 out of 5 stars0 ratingsVue.js für alle: Wissenswertes für Einsteiger und Experten Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Progressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Rating: 0 out of 5 stars0 ratingsVisual Studio Release Management Rating: 0 out of 5 stars0 ratingsRichtig einsteigen: Excel VBA-Programmierung: Für Microsoft Excel 2007 bis 2016 Rating: 0 out of 5 stars0 ratingsPowerShell – kurz & gut: Für PowerShell 7 und Windows PowerShell 5 Rating: 0 out of 5 stars0 ratingsASP.NET Core: Eine Einführung Rating: 0 out of 5 stars0 ratingsSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Rating: 0 out of 5 stars0 ratingsJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Rating: 0 out of 5 stars0 ratingsMicroservices: Der Hype im Realitätscheck Rating: 0 out of 5 stars0 ratingsVon Monolithen und Microservices: Funktionierende Microservices-Architekturen erstellen Rating: 0 out of 5 stars0 ratingsAndroid mit Kotlin – kurz & gut: Inklusive Android 8 und Android Studio 3.0 Rating: 0 out of 5 stars0 ratingsSQL Server: Performanceprobleme analysieren und beheben Rating: 0 out of 5 stars0 ratings
Programming For You
Algorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsProgrammieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Programmieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Programmieren für Einsteiger: Teil 2 Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Arduino: Ein schneller Einstieg in die Microcontroller-Entwicklung Rating: 5 out of 5 stars5/5Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsWeniger schlecht programmieren Rating: 4 out of 5 stars4/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5Microsoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5HTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratingsDas Franzis Starterpaket Arduino Mega 2560: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratings
Reviews for Software entwickeln mit C#, WPF und dem MVVM-Konzept
0 ratings0 reviews
Book preview
Software entwickeln mit C#, WPF und dem MVVM-Konzept - Stefan Kunick
Quellen
Vorwort
MVVM – das Model View View Model-Konzept, mal wieder eine neue Idee in der Softwareentwicklung? Ja, es ist eine Variante des MVC-Konzeptes (Model-View-Controller). Im Jahr 2005 wurde das Konzept vom John Gossman veröffentlicht und gewinnt immer mehr Anhänger.
Das Buch dient Ihnen zum einfacheren Einstieg in die Materie. Es führt Sie bei der Codierung Ihrer Anwendungen von einem Punkt zum anderen. Sie sollten bei der Lektüre des Buches schon C#-Kenntnisse mitbringen und Ihre erste Hello-Word-Anwendung ist schon realisiert worden.
Im vorliegenden Buch arbeiten Sie mit der deutschsprachigen Community-Edition des Visual Studios 2015/2017 (mit den anderen Versionen geht es natürlich auch). Als Oberfläche verwenden Sie die Windows-Presentation-Form (kurz WPF). Zwischenzeitlich gibt es auch Anbieter von MVVM-Frameworks (z.B. MVVM Light oder auch Prism). Beachten Sie bei einem Einsatz eines Frameworks immer, dass ein solches Projekt auch mal eingestellt werden kann. So unterbleiben wichtige Anpassungen und Sie sitzen auf dem Trockenen. Der Vorteil liegt natürlich in der schnelleren und einfacheren Umsetzung Ihrer Projekte. In dem vorliegenden Buch lernen Sie die Grundlagen des MVVM-Konzeptes kennen.
Im Internet finden Sie hin und wieder etwas abweichende Vorschläge. Alle haben eines gemeinsam, sie führen oft zum Ziel. Teilweise kommen Sie sich vor, wie bei Opern- oder Theater-Aufführungen. Dem einen gefällt eine Inszenierung, dem anderen nicht.
An dieser Stelle möchte ich auch meiner Frau Janny für Hinweise und Korrekturen danken.
1. Wie funktioniert eine MWM-Anwendung?
1.1 Das Prinzip
In dem unten gezeigten Bild sehen Sie den Aufbau der Anwendung. Sie, als Anwender, geben in einer Anwendung Daten ein, drücken anschließend eine Schaltfläche und erhalten ein Ergebnis.
Im MWM-Konzept interagiert der Anwender mit der View. Sie haben dort alle grafischen Elemente. Von der View gehen die Daten oder Kommandos an das ViewModel. Dieses „Mittelteil" ist die Schaltstelle im Programm. Hier ein Beispiel: Sie geben eine Artikel-Nr. ein und drücken den Button Lesen. Die eingegebene Artikel-Nr. geht von der View zum ViewModel. Das ViewModel liest mit Hilfe des Models den Eintrag in der Datenbank. Im negativen oder positiven Fall gehen die Informationen zurück an das ViewModel. Das ViewModel reicht die Daten an die View weiter (die Textfelder werden gefüllt). Im negativen Fall sollte der Anwender natürlich auch informiert werden! Dazu bietet sich ein Informationsfeld an.
1.2 Näheres zu den einzelnen Komponenten
1.2.1 Die View
Die View ist ein Formular. In ihm befinden sich alle grafischen Elemente. Sie können hier sowohl die Elemente von Microsoft einsetzten oder auch die von Fremdanbietern (zum Beispiel die von Janus-Tools, Telerik oder DevExpress). Über den Weg der Datenanbindung gehen Informationen an das ViewModel weiter oder kommen auch zurück vom ViewModel an die View.
1.2.2 Das ViewModel
Das ViewModel ist eine Klasse und erbt vom Interface INotifyPropertyChanged. Dadurch „dürfen" Sie dann das Ereignis OnPropertyChanged in die Klasse einbauen. Die View nutzt über die Datenanbindung die Eigenschaften des ViewModels. In der Set-Methode einer Eigenschaft geben Sie den ankommenden Inhalt an eine Klassenvariable weiter und lösen auch ein OnPropertyChanged-Ereignis aus. Das wird besonders wichtig, wenn Sie zum Beispiel das Ergebnis einer Operation dem Anwender zugänglich machen müssen. Generell gilt: In dieser Klasse befindet sich die Präsentations-Logik. Es gibt in der Anwendung nur eine ViewModel-Klasse!
Zum ViewModel gehört noch eine Klasse für die Kommandos, die von der View an das ViewModel gehen. Diese Klasse erbt von dem Interface ICommand.
1.2.3 Das Model
Das Model beinhaltet die Geschäftslogik. In ihm greifen Sie auf Daten zu, die sich in einer Datenbank oder Datei befinden. Auch Berechnungen erledigt das Model und das Ergebnis geht an das ViewModel zurück.
1.3 Die grafischen Elemente auf dem Formular
Die einzelnen Elemente (wie TextBoxen und andere) sind mit dem ViewModel verbunden. Auch das ViewModel sendet Informationen an die einzelnen grafischen Elemente (um beispielsweise das Ergebnis einer Rechenoperation auszugeben).
Wie sieht die Sache nun in der Praxis aus? Hier sehen Sie 2 Möglichkeiten.
Das Beispiel TextBox, mit der Eigenschaft Text, gilt im Prinzip für viele Elemente. Bei Buttons und TreeViews ist es etwas anders. Das Element enthält den Text, den der Anwender auf dem Formular sieht:
Anstelle der Eigenschaft Text können Sie natürlich auch andere Eigenschaften ansprechen. Im Kapitel 4 geht das Buch näher auf die Sache ein. Doch nun geht es zu den Schaltflächen.