Zum Fußzeileninhalt springen
Iron Academy Logo
C#-Anwendung
C#-Anwendung

Andere Kategorien

C#-Anwendungsentwicklung: Das Teamformular abschließen (Lektion 14)

Tim Corey
51m 15s

In dieser Videolektion aus Tim Coreys Kurs C# From Start to Finish kehrt Tim zu dem Create Team-Formular zurück, um das letzte Stück zu vervollständigen: den 'Create Team'-Button. Tim erklärt, dass, obwohl der größte Teil des Formulars bereits verkabelt ist, der Button, der die Teamdaten tatsächlich in der Datenbank speichert, noch implementiert werden muss.

C# (ausgesprochen 'C sharp') ist eine moderne, objektorientierte Programmiersprache, die 2000 von Microsoft als Teil des .NET-Frameworks erstellt wurde. C# wird häufig verwendet, um eine Vielzahl von Anwendungen zu erstellen, einschließlich Windows-Anwendungen, Webdienste und mehr, was es zu einer beliebten Wahl unter Unternehmensentwicklern macht.

Diese Lektion bietet einen tiefergehenden Einblick, wie man eine Windows Forms-App erstellt, sie mit einer SQL-Datenbank verbindet und CRUD-Operationen mit gespeicherten Prozeduren implementiert.

Learning C# Fundamentals

Die Beherrschung der C#-Grundlagen ist der Grundstein für jeden Entwickler, der robuste, skalierbare und hochleistungsfähige .NET-Anwendungen erstellen möchte. Als objektorientierte Sprache ermöglicht es C# Entwicklern, eine Vielzahl von Lösungen zu erstellen, von Desktop-Apps und Webanwendungen bis hin zu mobilen Anwendungen und sogar Spieleentwicklung. Diese Vielseitigkeit macht C# zu einer Top-Wahl in der modernen Softwareentwicklung, da es Entwicklern ermöglicht, plattformübergreifend zu erkunden und zu innovieren.

Das .NET-Ökosystem bietet eine umfassende Suite von Bibliotheken und Tools, die die .NET-Entwicklung vereinfachen. Visual Studio hebt sich als die primäre integrierte Entwicklungsumgebung (IDE) zum Erstellen, Debuggen und Bereitstellen von .NET-Anwendungen hervor, während Visual Studio Code einen leichten, plattformübergreifenden Code-Editor bietet, ideal für schnelle Entwicklung und leichten Zugang zu wichtigen Funktionen. Unabhängig davon, ob Sie Windows, macOS oder Linux ansprechen, sorgt das .NET Core-Framework für plattformübergreifende Unterstützung, sodass Ihre Anwendungen nahtlos auf einer Vielzahl von Geräten und Umgebungen laufen können.

Für Unternehmenssoftware und skalierbare Anwendungen bieten C# und die .NET-Plattform hohe Leistung und Zuverlässigkeit. Entwickler, die mit C# arbeiten, können ASP.NET Core für den Bau moderner, plattformübergreifender Webanwendungen und Razor Pages für ein vereinfachtes Webentwicklungserlebnis nutzen. Mit der Einführung von .NET MAUI ist es jetzt einfacher als je zuvor, mobile Anwendungen zu erstellen, die auf mehreren Plattformen laufen, mit einem einzigen Code, was den Umfang Ihres .NET-Projekts weiter erweitert.

Ein einzelner Entwickler kann die Leistungsfähigkeit von C# nutzen, um von einfachen Codebeispielen und Konsolenanwendungen bis hin zu komplexen, unternehmensgerechten Lösungen alles zu erstellen. Regelmäßige Updates der .NET-Plattform bringen Leistungsverbesserungen, neue Funktionen und erhöhte Sicherheit, um sicherzustellen, dass Ihre Anwendungen immer mit den neuesten Technologien auf dem Laufenden bleiben. Der Zugang zu einer Vielzahl von Bibliotheken und Lernmaterialien — einschließlich Tutorials, Beispielprojekten und Codebeispielen — macht es einfach, C# zu lernen und schnell reale Anwendungen zu erstellen.

Die Verwendung von C# reduziert nicht nur Fehler, sondern verbessert auch die Codequalität, dank seiner starken Typisierung und modernen Programmierfunktionen. Ob Sie an Webentwicklung, Erstellung von Desktop-Apps oder der Erforschung von mobilen und Spieleentwicklungen interessiert sind, C# und das .NET-Framework bieten die Werkzeuge, Ressourcen und die Leistung, die benötigt werden, um in der heutigen schnelllebigen Softwareentwicklungsumgebung erfolgreich zu sein. Mit C# können Sie mit Zuversicht skalierbare, leistungsstarke Anwendungen erstellen, die den Anforderungen von Benutzern und Unternehmen gleichermaßen gerecht werden.

Verstehen der Datenbankstruktur vor dem Codieren

Tim beginnt damit, die Bedeutung des Verständnisses des Datenbankdesigns zu betonen, bevor überhaupt Code geschrieben wird. Er zeigt, dass die Anwendung zwei Haupttabellen verwendet: Teams und TeamMembers. Die Tabelle Teams enthält nur eine TeamID und einen TeamName, während TeamMembers die TeamID und PersonID speichert.

Tim erklärt, dass die Reihenfolge der Dateneingabe wichtig ist, da die Anwendung zuerst das Team erstellen, seine ID erhalten und dann Mitglieder diesem Team mit der zurückgegebenen ID hinzufügen muss. Dieses Setup ist essentiell im Design von Datenschichten in C#, um sicherzustellen, dass die Anwendung konsistent und genau bleibt.

Erstellen von SQL-Speicherprozeduren für Teameinfügung

Um Daten korrekt in die Datenbank einzufügen, erstellt Tim zwei SQL-Speicherprozeduren, ein häufiges Best Practice in der Datenbankprogrammierung und der SQL-Server-Entwicklung.

SP_Teams_Insert

Tim erstellt eine Speicherprozedur, die den Teamnamen akzeptiert und die neue Team-ID unter Verwendung von SCOPE_IDENTITY() ausgibt. Dieser Ansatz ist typisch in SQL-Server-Speicherprozeduren zum Aufrechterhalten der referenziellen Integrität.

INSERT INTO dbo.Teams (TeamName)
VALUES (@TeamName)

SELECT @Id = SCOPE_IDENTITY()

SP_TeamMembers_Insert

Als nächstes erstellt Tim eine Speicherprozedur, um Teammitglieder einzufügen. Es akzeptiert TeamID und PersonID und gibt die neue Datensatz-ID aus.

INSERT INTO dbo.TeamMembers (TeamID, PersonID)
VALUES (@TeamID, @PersonID)

SELECT @Id = SCOPE_IDENTITY()

Tim warnt davor, SQL-Code zu kopieren und zu modifizieren, da geringfügige Fehler große Probleme verursachen können, was ein wesentlicher Tipp für Datenbankentwickler ist.

Sollten CreateTeam eine oder zwei Methoden sein?

Tim behandelt dann eine Designentscheidung: Sollte das Erstellen eines Teams und das Hinzufügen von Teammitgliedern von einer Methode oder zwei separaten Methoden gehandhabt werden? Er bezieht sich auf das Single Responsibility Principle (SRP), argumentiert jedoch, dass dieser Prozess eine Transaktion darstellt: das Erstellen eines Teams und die Zuordnung von Mitgliedern.

Tim kommt zu dem Schluss, dass die Kombination dieser Maßnahmen ein Szenario verhindert, in dem ein Team erstellt, aber seine Mitglieder nicht hinzugefügt werden, was zu unvollständigen Daten führt. Diese Designentscheidung ist grundlegend in der Softwarearchitektur, insbesondere bei der Arbeit an C# Enterprise-Anwendungen. C# wird weit verbreitet in der Enterprise-Softwareentwicklung eingesetzt, dank seiner Sicherheit, Skalierbarkeit und Wartbarkeit.

CreateTeam in der Datenanschlussschnittstelle implementieren

Tim fügt der Datenanschlussschnittstelle eine neue Methode hinzu:

TeamModel CreateTeam(TeamModel model);

Er stellt sicher, dass sowohl der SQL-Connector als auch der Textconnector diese Methode implementieren, was die richtige Nutzung von Schnittstellen und eine saubere Architektur in C# zeigt. Die Vorteile der Verwendung von Schnittstellen und einer sauberen Architektur in der C#-Anwendungsentwicklung sind verbesserte Code-Wartbarkeit, einfachere Tests und größere Flexibilität bei der Anpassung an neue Anforderungen.

Implementierung des SQL-Connectors: Einfügen von Team und Mitgliedern

Tim baut die SQL-Logik auf, indem er vorhandene Muster kopiert. Er führt aus:

  1. Teamnamen einfügen und TeamID abrufen.

  2. Durchlaufen Sie jedes Mitglied und fügen Sie es in TeamMembers ein.

Er stellt fest, dass das PersonModel bereits PersonID enthält, sodass das Hinzufügen von Teammitgliedern unkompliziert ist. Dies ist ein praktisches Beispiel für Datenbindung und relationale Datenbankoperationen.

Verkabeln des Create Team-Buttons in Windows Forms

Im Formularcode erstellt Tim ein TeamModel-Objekt und setzt dessen Eigenschaften:

TeamModel t = new TeamModel();
t.TeamName = teamNameValue.Text;
t.TeamMembers = selectedTeamMembers;

t = GlobalConfig.Connection.CreateTeam(t);

Dies zeigt die Ereignisbehandlung von Windows Forms und wie man Daten von der Benutzeroberfläche (UI) zur Datenzugriffsschicht übergibt, was ein reibungsloses Benutzererlebnis gewährleistet.

Tim weist darauf hin, dass das Formular nach dem Erstellen des Teams sicher geschlossen werden kann, da das Team erfolgreich gespeichert wurde.

Testen des SQL-Datenbank-Einfügens

Tim testet das Formular, indem er ein Team erstellt und die Datensätze in SQL Server überprüft. Er bestätigt, dass das Team korrekt in Teams gespeichert ist und die Mitglieder in TeamMembers gespeichert sind. Dies ist ein entscheidender Schritt bei der Anwendungsprüfung und Validierung von CRUD-Operationen.

CreateTeam in der Text-Dateispeicherung (Textconnector) implementieren

Tim wechselt zur Text-Dateispeichermethode und erklärt die Herausforderung: Das Teammodell enthält eine Liste von PersonModel, die im CSV-Format gespeichert werden muss.

Er erstellt ein Format, das eine durch Pipe getrennte Liste von Personen-IDs enthält:

1,Team Name,1|3|5

Dies ermöglicht es der Anwendung, komplexe Datenstrukturen mit einfachen Textdateien zu speichern, was nützlich für dateibasierte Speicherung in kleinen Anwendungen ist.

Konvertieren von Textdateidaten in Teamobjekte

Tim erstellt die Methode ConvertToTeamModels, die die CSV-Datei liest und TeamModel-Objekte rekonstruiert:

  1. Jede Zeile durch Komma trennen

  2. Team-ID und -Name extrahieren

  3. Die letzte Spalte durch Pipe (|)

  4. Jede Personen-ID in der Personenliste nachschlagen

  5. Personenobjekte den Teammitgliedern hinzufügen

Er entscheidet sich dafür, einen Fehler auszuwerfen, wenn eine Personen-ID fehlt, um Datenkonsistenz sicherzustellen. Dies ist eine wichtige Praxis in der robusten C#-Anwendungsentwicklung.

Speichern von Teams zurück in die Datei mit durch Pipe getrennten Mitgliedern

Tim erstellt eine Hilfsmethode ConvertPeopleListToString, um Teammitglieder in eine durch Pipe getrennte Zeichenfolge zu konvertieren. Er erläutert die Notwendigkeit, das letzte Pipe-Zeichen mit folgender Methode zu entfernen:

output = output.Substring(0, output.Length - 1);

Er fügt auch eine Sicherheitsüberprüfung für leere Listen hinzu, um Fehler zu verhindern, ein praktisches Beispiel für defensives Programmieren.

Endgültige Tests & Abschluss

Tim testet die textbasierte Speicherung, indem er ein Team erstellt und bestätigt, dass die CSV-Datei korrekt erstellt wird. Er folgert, dass das Create Team-Formular vollständig ist und ermutigt die Zuschauer, dem Muster zu folgen, Aufgaben in kleinere Schritte zu zerlegen.

Conclusion: Building a Complete C# Application

Tim schließt sein Video ab, indem er betont, dass selbst komplexe Windows Forms-Funktionen abgeschlossen werden können, indem man die Arbeit in kleinere Teile unterteilt und konsistenten Mustern folgt. Er deutet an, dass der nächste große Schritt das Create Tournament-Formular ist, wodurch die Anwendung fast fertiggestellt wird.

Diese Lektion hebt die wichtigsten Konzepte in der C#-Anwendungsentwicklung hervor, einschließlich Windows Forms UI, SQL-Gespeicherte Prozeduren, Datenzugriffsschichten, CRUD-Operationen und dateibasierte Speicherung, alle klar durch Tim Coreys Lehrstil erklärt.

Entwickler verwenden häufig C#, um eine breite Palette von Anwendungen zu erstellen, einschließlich Webanwendungen, Backend-APIs, Desktop-Software, mobile Anwendungen und Spieleentwicklung. Die Fähigkeit, C# in diesen Bereichen zu nutzen, zeigt seine Vielseitigkeit und breite Anwendbarkeit.

C# hat ein großes globales Ökosystem und entwickelt sich mit neuen Funktionen und Leistungsverbesserungen weiter. Es bleibt eine zuverlässige, moderne und hoch gefragte Sprache in verschiedenen Branchen.

Hero Worlddot related to C#-Anwendungsentwicklung: Das Teamformular abschließen (Lektion 14)
Hero Affiliate related to C#-Anwendungsentwicklung: Das Teamformular abschließen (Lektion 14)

Verdienen Sie mehr, indem Sie teilen, was Sie lieben

Erstellen Sie Inhalte für Entwickler, die mit .NET, C#, Java, Python oder Node.js arbeiten? Verwandeln Sie Ihr Fachwissen in ein zusätzliches Einkommen!

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an