SPA mit ASP.NET Core und Angular

Einfache Model-Klassen anlegen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Model-Klassen sind das M des MVC(Model-View-Controller)-Musters. Es handelt sich dabei um einfache Klassen, sogenannte POCOs (Plain-Old-Clr-Objects).
05:55

Transkript

Meine ASP.NET-Core-Anwendung, die ich hier geöffnet habe, die ist aktuell noch relativ leer. Ich habe sie auf Basis der Vorlage Web-API-Projekt angelegt. Und was ich nun gerne machen möchte ist, ich möchte das Projekt ein wenig mit Leben befüllen. Und der erste Schritt besteht für mich darin, dass ich zunächst einmal Model-Klassen anlege. Also solche Klassen, die wir später nutzen werden, um die Daten in der Datenbank zu persistieren, und die Daten in der Anwendung dann auch weiterzuverarbeiten. In meiner Anwendung geht es um die Speisekarte eines spanischen Restaurants. Und darum werde ich zwei Model-Klassen anlegen: Einmal eine Klasse, in der ich Kategorien von Speisen verwalte, das wird die Klasse Category sein, und dann eine Klasse, in der ich die Speise selber verwaltet, das ist die Klasse Dish. So, bevor ich die beiden Klassen anlege, muss ich aber erstmal einen neuen Ordner anlegen. Und diesen Ordner, den nenne ich treffend Models. Innerhalb dieses Ordners lege ich jetzt zunächst einmal die Klasse an für meine Speise. Und wie eben schon gesagt, ich werde das Ganze hier Dish nennen, weil ich meine Klassen Englisch benennen möchte. So, die Klasse ist da. Was wir jetzt benötigen, sind noch ein paar Eigenschaften. Na ja, zunächst braucht eigentlich all das, was wir irgendwie später einmal aus einer Datenbank lesen wollen, irgendwie eine Id. Ich tippe also hier prop ein, um einen Codeausschnitt einzufügen, drücke dann zweimal Tab und jetzt bestätige ich hier über Tab, dass es ein int ist, dann gebe ich hier einen Namen an mit Id und Enter, fertig. Diese Id, die kann ich später auch nutzen, um sie zum Beispiel auf die Speisekarte als Speisennummer zu drücken. Na ja, aber so eine Speise, die braucht nicht nur eine Nummer, die braucht auch sicherlich mal einen Namen. Also werde ich auch hier eine Eigenschaft anlegen, die ist natürlich jetzt vom Typ String. Außerdem eine Beschreibung, denn nicht jeder kann sich vielleicht etwas darunter vorstellen, was Patatas Bravas sind oder ähnliche spanische Gerichte. Also werden wir auch einen String für eine deutsche Beschreibung haben. Und diese Eigenschaften nennen wir Description. So, in einem Restaurant müssen wir typischerweise auch bezahlen, deswegen müssen wir uns den Preis auch noch ablegen. Außerdem soll ja jede Speise zu einer gewissen Kategorie gehören, zum Beispiel Vorspeisen oder Hauptspeisen oder Getränke. Und deswegen werde ich hier zwei Dinge machen: Zum einen werde ich hier eine Kategorie Id ablegen, und zum anderen werde ich hier direkt ein Verweisobjekt vom Typ Kategorie anlegen. Bedeutet also, ich sage hier, ich habe hier eine Eigenschaft vom Typ Category und die nenne ich Category. So, Category gibt es jetzt gar nicht. Das mag Visual Studio gar nicht, mein Code konnte nämlich nicht kompilieren. Und jetzt kann ich hier einfach Steuerung+Punkt drücken. Und dann bekomme ich hier die Möglichkeit, dass ich eine neue Klasse generieren lasse, und zwar die Klasse Category in einer neuen Datei, auch am besten direkt, so. Das wähle ich aus. Hier rechts ist jetzt meine Klasse Category. Ich drücke hier einmal F12, dann lande ich direkt in dieser Klasse. Und so eine Category, die braucht auch wieder eine Id, also auch hier prop int ID. Außerdem braucht auch so eine Category einen Namen und auch eine Beschriftung. Das sind beides Strings. Und zu guter Letzt möchte ich, dass jede Kategorie auch die zugewiesenen Speisen kennt. Darum lege ich eine Eigenschaft vom Typ ICollection an, und zwar ICollection vom Typ Dish und die nenne ich Dishes. ICollection wird hier aktuell rot unterkringelt, und das liegt daran, weil ich den Namensraum noch nicht mit einem Using Statement importiert habe. Also einmal Steuerung+Punkt, Und jetzt bietet mir Visual Studio hier bereits an, dass ich ja den Namensraum System.Collections.Generic importieren kann. Und das ist auch genau der, der mir hier fehlt an der Stelle. Diese Collection von Dishes, die werde ich als virtual deklarieren. Und das hängt damit zusammen, dass ich später das Entity Framework nutzen möchte. Und hier ist es einfach von Vorteil für das Lazy Loading, also das Nachladen von Daten bei Bedarf, wenn diese Properties virtual sind. Außerdem muss ich diese Collection noch initialisieren und das mache ich zum Beispiel, indem ich im Konstruktor angebe, dass ich diese Eigenschaft Dishes auf ein neues HashSet vom Typ Dish setze. Ich kann es nicht auf ein ICollection von Dish setzen, denn ich kann ja kein neues Objekt aus einem Interface erzeugen. Deswegen wähle ich eine Implementierung des Interfaces, und in meinem Fall ist es eben der HashSet. So, jetzt speichere ich alles, und wir schauen uns einmal die Änderungen an. Der erste Schritt bestand also für mich darin, dass ich hingegangen bin und erst einmal meine Model-Klassen angelegt habe. Ich habe für meine Anwendung zwei Model-Klassen, einmal die Klasse Dish, das sind also die späteren Speisen, mit Name, Beschreibung, Preis und Kategorie und dann die Kategorie mit Name und Beschreibung.

SPA mit ASP.NET Core und Angular

Lernen Sie die Bestandteile von modernen Webanwendungen kennen und nutzen.

5 Std. 21 min (36 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.09.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!