Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

ASP.NET MVC 5 Grundkurs

Code First

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
ASP.NET MVC bietet weitere Möglichkeiten zur Modellerstellung, unter anderem auf Basis von Code. Das heißt "Code First". Sie geben eine Klasse an und ASP.NET MVC kümmert sich nahezu vollständig um den ganzen Rest, einschließlich dem Anlegen der Datenbank.
13:09

Transkript

Ab einer gewissen Filmgröße und Größe des Entwicklungsteams ist Programmierung und die Verwaltung und Erstellung von Datenbanken zunmindest häufig voneinander getrennt. Das heißt, also dass ein Entwickler nicht unbedingt eine Datenbank Experte ist, somit ist eine Datenbank nicht unbedingt ein guter Wert-Entwickler Diesen wird unter anderem mit einer Technik Rechnung getragen, die wir uns hier anschauen wollen Microsoft nennt die Code First, die Idee ist folgendes. Wir haben die Webanwendung und wer die Webanwendungen entwickelt der möchte natürlich vorher schon festlegen, was für Entitäten es gibt, was für Objekte es gibt wie die Datenbank aussieht, ist eigentlich nachrangig, wichtig ist vor allem was für Objekte man eben hat, was Funktionalitäten, und deswegen gibt es die Idee, dass man anstelle einfach eine Datenbank zu erstellen und dann denkt wie in einer Datenbank, Ihr denk wie ein Code und das Modell einfach erstellt. Deswegen machen wir das mal, wie erstellen jetzt einfach ein Modell und ignorieren noch komplett die Datenbank und zwar läuft es wie folgt. Wir haben hier dieser Modusordner und in diesen Modusordner legen wir jetzt mal einfaches Modell an für unsere PersonenVerwaltung. So, rechte Maustaste Hinzufügen neues Element und bei den Vorlagen gibt es jetzt noch eine ganze Reihe von Möglichkeiten, die wir haben, ich nehme eine ganz simple Klasse und ich nenne die Klasse mal Person, und diese Klasse Person, die jetzt im Namespace meine Anwendung. Models liegt, die enthält entsprechend eine Reihe von Eigenschaften, diese Eigenschaften werden dann später natürlich in der Datenbank manifestiert, aber das ist mir zunächst egal, Hauptsache ich habe eben die Objekte, mit denen ich ich arbeiten kann. Also wir haben zunächst die Eigenschaft und ich nenne dazu kürzere, also also Prop, Tab, Tab, die Integer-Eigenschaft ID und das ist auch wieder so eine Konventionssache, wenn ich einen Zahlenwert Namens ID habe, dann wird das später bei der Datengenerierung automatisch als Primärschlüssel verwendet. Eben bei diesem Namen, das durchaus andeutet. Dann habe ich den Vornammen, der ist ein String, da interessieren mich die Datenbank-Datentypen, ich bin im C# Code also String Nachname, dann haben wir noch das Geburtsdatum, und dann gibt es ja am .NET Framwork, diese interessante Entscheidung, dass es keine eigenen, ja, Datumsdatentypen gibt. es gibt nur Datetime, wo also Datum und Zeit drin steckt. Hilft nichts, also DateTime und dann Geburtsdatum. so jetzt haben wir also hier diese Modellklasse schon mal erstellt, das ist ja schon mal ganz nett, aber im nächsten Schritt müssen wir aus dieser Modell-Klasse entsprechend eine Datenbank erzeugen oder sie uns generieren lassen, und dazu brauchen wir mächtige Hilfe, und zwar ist die Rede vom erst die Framework, also Microsoft URL Mapper, dessen Job ist ja genau aus einer Datenbank eine Überführung zu machen hin, zu einem, ja, Object C# Objektmodell und umgekehrt wenn wir so ein Modell haben, wie wire es gerade eben haben, dann brauchen wir als nächstes noch eine Kontextklasse, die sozusagen angibt, wie der Code oder das Modell im Code auf die Dtenbank überführt werden soll. Wenn ich diese Kontextklasse anlege, klicke mal direct auf den Modus- Ordner, häufig macht man noch einen eigenen Ordner, aber ich denke, das passt hier relativ gut, und ich nenne die Klasse einfach Person Context, und Person Context ist eine Klasse, die muss ableiten von DB Kontext. Und jetzt sehen wir hier, wir können einen neuen Typ generieren oder wir können eine neue Klasse generieren. Visual Studio kennt DB-Kontext nicht. Das liegt an folgendem, wenn Sie eine ältere Version von Visual Studio verwenden, kann sein, dass Sie über die diese Steuerung+ Punkt Helfer-Tastaturkombination die Möglichkeit bekommen den zugehörigen Entity Framework Namespace zu importieren, weil das Entity Framework standartmäßig mitinstalliert worden ist, aber im neueren Version ist das nicht der Fall, das heißt da müssen wir uns auch drum kümmern, deswegen gehen wir ins Toolsmenü, und gehen in den Nuget Package Manager, starten die Paketmanager Konsole, das ist an Microsofts, ja, Kommandozeilen basiertes Installationstool und über dieses Tool können wir dann das Entity Framework nachinstallieren. Der zugehörige Befehl heißt install-package und dann als Name, ja, der Name des Pakets und zwar Entity Framework, man kann auch auf Tab drücken und bekommt dann so eine Autoergänzung, die aus dem Internet gezogen wird, man könnte auch noch eine Versionsnummer angeben, hat teilweise auch Auswirkungen, je nachdem, ob Visual Studio teilweise schon auf bestimmte Entyti Frameworkfeatures vorbereitet ist oder umgekehrt, mag das zu dem Zeitpunkt zudem Sie das machen unter Umständen eine notwendige Option sein. Ist zwar Standard-Version, die wir hier anbieten, installiert, und er verbindet sich jetzt eben mit dem Repository im Internet, lädt das Entity Framework herunter und noch alle anderen Abhängigkeiten davon. Sehen wir das also gut Entity Framework Version 602 ist aktuell die neuste, die er mir hier anbietet, und jetzt ist das tatsächlich installiert, jetzt habe ich das Entytät Framework in meiner Anwendung, wurde jetzt also hier hinein integriert, und wenn ich jetzt nochmal sage Personen Kontext soll von DB Kontext ableiten und ich drücke wieder Steuerung+Punkt, dann wird mir jetzt hier tatsächlich angeboten, dass ich das entweder komplett qualifiziere oder dass ich ein Using Statement verwende, ich nehme das Using Statement, das wird dann hier entsprechend includiert, und, ja, jetzt leitet der Person-Context tatsächlich von DB Kontext ab, und damit bin ich auf dem richtigen Weg. damit kann ich diese Kontaktklasse fertigstellen und zwar muss ich einfach eine spezifische Eigenschaft anlegen jeweils für die Typen, die ich verwenden möchte, also zum Beispiel habe ich ja momentan nur eine Entytät, nämlich die Person, das heißt ich brauche irgendeinen Typ, der mir eine Liste von Personen repräsentiert. Und das geht so, ich lege einfach Eigenschaft an, die ist vom Typ DB Set , ist auch etwas, was über System-Data- Entäty kommt, die wir hier auch sehen, und zwar typisiert auf Person, ja, also unsere Modellklasse, und, ja, die braucht noch einen Namen, es gibt einige Automatismen, die Plural und Singular nach den englischen Regeln ganz gut unterscheiden können, ich will das hier mal beibehalten, das heißt ich rede hier nicht von Personen, sondern könnte sagen persons oder das ist ein englisher Sonderfall, ich könnte auch people sagen, people ist eine Plural von Person, und wähle dazu einfach standardmäßig get, set an und das ist im Wsentliche schon die Kontextklasse, das heißt wenn ich das Projekt neu erstelle, passt alles und auch dieser Contax steht mir zur Verfügung, und das wird eben sehr-sehr sehr wichtig, wenn ich jetzt weiter mit speziellen Typisierung arbeite, um spezielle Views eben zum Beispiel für Anzeige von einer Person, für die Anzeige von mehreren Personen ecd. anlegen möchte. Fällt nur noch die Datenbank selbst. auch hierfür gibt es mehrere Möglichkeiten die anzulegen, ich verwende für mich den, ja, einfachsten Ansatz, und zwar wir haben hier unsere WebConfig und innerhalb von der Web Config kann man auch Connectionstrings angeben. Steckt noch keiner drin, also machen wir einfach ein neues Element, Connection Strings, unds dann fügen wir einfach einen neuen Connectionstring hinzu, als Name nehmen wir den Namen der neuen Kontextklasse, also Person Context es gibt auch den Ansatz, dass man das Gnze nicht Typ Kontext nennt, sondern Typ Entities, also in dem Fall Person Entities. Das ist egal, Hauptsache Name der Klasse ist gleich Name hier des connectionstrings sonst klappt die Verbindung nicht. und sagen wir noch, wo die Daten hingespeichert werden sollen und was für eine Art von Datenbank es ist, also ConnectionString Providername, das hängt auch ein bisschen davon ab, also wie ein System Insalliert ist, nennen wir beispielsweise mal SQL Server ce, also auch dateibasiert, aber dass wir eine andere Dateieendung auch noch haben, dass dann die Unterscheidung zur vorher schon angelegten Datenbank vielleicht etwas vereinfacht, also als Provider System Data SQL Server ce 40, und als Connection String einfach Datenquelle = und dann in unserem Appdata-Verzeichnis, das kürzlich hierfür, und das Schlüsselwort ist data directory und ansprechen den Namen also Personen DB.sdf so das ist also im Wesentlichen das, was wir einstellen müssen, wir brauchen den Connection-Stringer, und dadurch wird dann in Zweifel, wenn wir das brauchen, die Datenbank erzeugt. ziehen wir jetzt vorher die Connectionstrings, vielleicht nur nach unten, Configsections muss,ja, das erste Element immer sein in der Konfigurationsdatei, also legen wir es nach, bla bla bla, im Alphabet zunächst ungefähr, legen wir es also hier hinein, und dann haben wir schon mal einen guten Start- und Ausgangspunkt. Alles ist jetzt konfiguriert, jetzt gehen wir gleich in die Vollen und zwar wir legen einen neuen Controller an, und ich nenne diesen Controller Code 1 Controller, aber ich werde jetzt nicht einen leeren Controller, sondern hätte gerne einen MVC 5 Controller mit Ansichten, also mit use unter Verwendung von Entity Framework. Das heißt hierwird komplett vorgesehen, dass ich alle Anwendungsszenarien über das Entity Framework dann löse , so was wie Anzeigen nur einfügen etc. Im älteren Version sieht es so ähnlich aus, kann man halt auch Entity Framework auswählen, wird da auch gerne von Gerüst gesprochen, von Scaffolding, das sind so die Schlüsselbegriffe, auf die Sie achten müssen. Füge es also hinzu, nennne das den code 1 Controller, und jetzt ist es interessant. ich muss zunächst bei Modell auswählen, was ist denn meine Modellklasse, und Sie sehen, alles hier schon vorausgefüllt, sofern wir mindestens einmal kompiliert haben, was wir haben, nämlich als Person und Datenbank Kontextklasse ist natürlich meine Personen-Kontextklasse und, ja, dann werde ich gefragt, will ich Ansichten generieren, ja, will ich, Hinzufügen und jetzt liegt er los, Gerüstbau, klingt ganz ulkig, aber die Rede ist tatsächlich von Scaffolding, also dass wirklich ein Standard-Gerüst gebaut wird, auf Baisis der Informaionen. Und jetzt sehen Sie, dass dieser Code 1 Controller doch relativ viel Code beinhaltet, ungefäht 127 Zeilen, das ist ganz ordentlich und viel überraschender ist unser Bereich Views, Code 1 hat jetzt 5 neue CS HTML-Dateien erhalten. Das wurde eben alle generiert auf Baisis des Modells, weil Visual Studio weiß, ja, alles, was wir brauchen, um entsprechend hier unsere Applikation vorzubereiten auf Bais von Code1. Thoretisch wären wir jetzt fertig, aber eventuell fehlt es noch an etwas. Haben wir das System, sozusagen etwas getünt, dass es jetzt, so die Hoffnung nicht funktionieren wird. Ich starte den Browser mit unserer Applikation, lädt natürlich standardmäßig den Homecontroller, wir wollen aber den Code 1 Controller haben, also Slash+Enter, und, ja, jetzt bekommen wir eine Exception, das kann nämlich bei Ihnen auch passieren, wir haben den SQL-Server CE gewählt, unter Umständen ist der Entity Framework-Provider nicht installiert für den SQL-Server CE. Wel wir, ja, so eine Meldung kriegen, müssen wir das Paket noch nachinstallieren. wir haben ja eher unseren nuget Package Manager und installieren jetzt das Paket Entity Framework, Punkt, SQL Server Compact heißt das Ganze, dasinstalliert sich jetzt hier hinein. Passt die Abhängigkeit entsprechend an. installiertert das, aktualisiert auch die Web Config, Das heißt, die wird dann entsprechend nochmal neu angepasst, und jetzt haben wir alles,was wir brauchen für unser automatisch generiertes Gerüst, für unsere Applikation, legen wir also los, starten nochmal den Browser gehen dann gleich nochmal in unseren Code 1 Controller, landen ist mal nicht wieder in Visual Studio, sondern bekommen hier eine Übersicht aller Personen in der Datenbank. Wir haben noch keine, Sie erinnern sich, wir hatten ursprünglich eine Datenbank angelegt, da steht was drin, aber in unseerm per Code 1 generierten Modell ist da nichts. Also legen wir einen neuen Benutzer an, zum Beispiel unseren Max Mustermann, zum Beispiel 03.01.1970, klicken auf Create, und schon wird der in der Datenbank hinterlegt. Könnten auch noch Martina Musterfrau in die liste mitübernehmen, anlegen liegt da, können wir auch in Zweifel noch uns in Details anschauen, können bearbeiten, das Geburtsdatum ändern, und können auch einen Nutzer löschen. Werden wir gefragt wollen wir tatsächlich löschen, ja. Wow, die Anwendung ist eigentlich schon fertig.

ASP.NET MVC 5 Grundkurs

Machen Sie sich mit den Grundlagen von ASP.NET MVC 5 vertraut und lassen Sie sich in dieser anspruchsvollen Einführung diesen Architekturansatz von Microsoft erläutern.

2 Std. 30 min (20 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!