Transkripte
1. Einführung: Hallo und willkommen
zu diesem Kurs, SP dotnet Core
plattformübergreifende Entwicklung. Ich bin Ihr Dozent für
Voir Williams und bin seit über einem Jahrzehnt Softwareingenieur und
Vorlesung. In diesem Kurs werden
wir einige einfache Schritte befolgen , die auf jeder Plattform
repliziert werden können . Das stimmt. Sie werden diesen
Kurs unabhängig davon machen, ob Sie
Mac OS, Linux oder Windows verwenden . Und Sie werden in der Lage sein, mitzuhalten und eine
asp.net-Core-MVC-Anwendung
zu erstellen asp.net-Core-MVC-Anwendung , Dinge wie
Entity Framework Core zu
lernen und einen datenbankorientierten Ansatz
zu verfolgen, wir uns angesehen haben Bootstrap
Five- und jQuery-Bibliotheken. Wir werden die Integration
mit Auth Zero
, einem OpenID
Connect-Anbieter, durchführen. Und während du all das tust,
wirst du dich mit GitHub vertraut machen. Beachten Sie, dass die
Entwicklungstools,
die wir verwenden werden sehr wichtig
sind, bereit, dunkler zu werden,
damit wir
eine SQL Server-Instanz
unabhängig von unserem
Betriebssystem hosten können eine SQL Server-Instanz , obwohl SQL
Der Server ist hauptsächlich für die Windows-Verteilung konzipiert. Wir verwenden auch
Visual Studio Code als Ihr Datenstudio
und die Dotnet-CLI, die
wir
alle wieder auf jedem
Betriebssystem verwenden können. Wissen Sie, nur um die Zone zu aktivieren, während wir
Visual Studio Code und
Azure Data Studio verwenden. So vielseitige plattformübergreifende
Entwicklungstools und sie sind sehr leicht, sodass es keine Rolle spielt, welche Spezifikationen
Ihre Maschine hat. Sie verwenden nicht so viele Ressourcen
wie ihre Gegenstücke, wie Visual Studio 2022 und das SQL Server
Management Studio. Sie können diese Tools also
auf einer weniger leistungsstarken Maschine verwenden. Sie können erneut
auf jedem Betriebssystem verwendet werden. Sie bieten übersichtliche
Integrationen mit verschiedenen Diensten von Drittanbietern und sind leistungsstark genug
, um alles zu erstellen. Jetzt hoffe ich, dass du
genauso aufgeregt bist wie
ich und ich kann es kaum erwarten, dich im Kurs zu
sehen.
2. GitHub-Konto erstellen: Ordnung Leute, in dieser Lektion
werden wir
den sehr einfachen Einrichtungsprozess zum Erstellen
eines GitHub-Kontos durchgehen den sehr einfachen Einrichtungsprozess . Github ist also wohl die
größte Social-Coding-Plattform. Es ist einer der
beliebtesten Anbieter von Waren. Und es gehört
Microsoft und ist kostenlos für Open Source und
persönliche Entwicklung. Du kannst dort auch
private Projekte haben und diesen Kurs veranstalten, wir werden GitHub verwenden. Also, wenn dies dein erstes Mal ist, hast du
vielleicht
gehört, dass sowohl das
Quellcodeverwaltungsmanagement als auch GitHub sind . Und du willst diese
Erfahrung wirklich machen. Keine Sorge, wir
werden es in
diesem Kurs verwenden und Sie werden diese Erfahrung
genießen. Um loszulegen, gehst
du zu github.com und
von hier aus kannst du dich anmelden. Ich gehe also davon aus, dass Sie
noch keinen A-Kegel haben. Wenn Sie sich also anmelden, erhalten Sie ein sehr einfaches Formular,
in dem
Sie nach Ihrer E-Mail-Adresse gefragt Sie nach Ihrer E-Mail-Adresse damit Sie
diese angeben und fortfahren können. Und eigentlich denke ich, dass Sie nur Ihre
E-Mail-Adresse und Ihr Passwort
benötigen, also habe ich bereits ein Konto, aber lassen Sie mich einfach versuchen, eine andere E-Mail-Adresse
einzugeben. Und dann erstellst du ein Passwort. Und sobald Sie mit der
Erstellung dieses Passworts
fortfahren, wollen sie einen Benutzernamen. Sie können diesen Benutzernamen erstellen. Lassen Sie mich einfach etwas
Willkürliches erstellen und dann weitermachen. Und dann fragen sie dich einfach, ob du ein paar Werbeartikel
möchtest. Weiter. Und sie sind als Scheck eingefangen. Und dann, im Grunde, am Ende all dessen, erhalten
Sie eine
Bestätigungs-E-Mail. Sobald Sie sich
verifiziert haben , können
Sie sich anmelden. Also werde ich einfach
weitermachen und mich anmelden und dir zeigen, wie diese
Erfahrung aussehen würde. Sobald Sie sich mit
Ihrem Benutzernamen und Passwort
oder Ihrer E-Mail-Adresse
und Ihrem Passwort angemeldet haben Ihrem Benutzernamen und Passwort , sehen
Sie einen Bildschirm,
der ähnlich aussieht. Ich habe schon ein paar
Repositorys, also hast du vielleicht
nichts auf der linken Seite, dann ist das in Ordnung.
Deshalb sind wir hier. Aber du wirst sehen, dass ich
ziemlich viele Repositorys habe. Und das ist mein Profil. Wenn du zu meinem Profil
gelangen möchtest, könntest
du jederzeit zu
github.com gehen und meinen Benutzernamen, der einfach mein Name ist
, abschneiden. Und es wäre ähnlich
für Sie und , die
zu Ihrem Profil
navigieren möchten. Auf
alle Repositories, an
denen Sie arbeiten sobald sie
veröffentlicht wurden, können zugegriffen werden. Und das ist das
Schöne an GitHub. Es hilft Ihnen,
zu anderen Projekten beizutragen und Ihre
Projekte so zu teilen, dass auch andere Personen zu ihnen
beitragen können. Sobald Sie Ihr Konto
eingerichtet haben, können
Sie mit
der nächsten Lektion fortfahren.
3. Installieren . NET 7 SDK: Ordnung Leute, also
richten
wir unsere Umgebung weiter ein. Und der nächste Schritt ist die Installation
der Punktnetze eines SDK. Sie können einfach
zu.net.microsoft.com oder einfach google.net SDK aufrufen. Okay, ich denke,
das ist am
einfachsten , einfach google.net. Also SDK und das erste Suchergebnis würden Sie sicher zu dieser Seite
führen. Nein. Dotnet Seven ist die
neueste Veröffentlichung zum Zeitpunkt der Aufnahme, jedoch
die Standardversion, was bedeutet, dass sie aus der Mode
kommen wird , wenn
Dotnet Eight herauskommt. Wir haben auch das
Six-Punkt-Tool der Version, das langfristige Unterstützung bietet. Also viel von dem, was wir in diesem Kurs tun
werden, obwohl wir Dotnet Seven
verwenden werden, wird
es mehr oder
weniger kompatibel sein mit seinen sechs Ensembles, außer
vielleicht ein paar
Cis-Phrasen. Ich werde auf jeden Fall darauf hinweisen,
wo sich der Code
zwischen dem, was Dotnet Seven bietet,
und dem, was wir in Dotnet Six
tun können, unterscheidet zwischen dem, was Dotnet Seven bietet . Zum Zeitpunkt dieser Aufnahme ist Dotted Seven
jedoch
die neueste und beste, und deshalb werden wir sie verwenden
und Sie können
gerne mit Dotnet Seven fortfahren. Um zu beginnen, sollten
Sie das SDK installieren. Nun gibt es zwei Dinge
, die Sie installieren möchten. Sie sollten das SDK
für Entwicklungsressourcen installieren. Und natürlich können Sie
Ihr
Betriebssystem entsprechend wählen . Wenn Sie also auf einem
Windows-Computer sind, sollten
Sie die 64-Bit-Version verwenden und können entsprechend Mac- oder
Linux-Versionen wählen. Zu Hosting-Zwecken sollten
Sie dann aber auch die Runtime
installieren. Sie können also auch
das Hosting-Paket für
Windows oder die
entsprechende Version auf
Basis Ihres Betriebssystems installieren Windows oder die
entsprechende Version . Sie können diese beiden also herunterladen
und installieren. Davon abgesehen werden wir
Visual Studio Code verwenden, weil wir,
Visual Studio Code, plattformübergreifend
sind. Ich möchte nicht für
alle Betriebssysteme sorgen,
die Mönche, Mac und Windows. Also werden wir
Visual Studio Code verwenden. Wenn Sie jedoch auf
einem Windows-Computer sind und Visual Studio bevorzugen
, eine voll ausgestattete, sehr, sehr leistungsstarke IDE, dann können
Sie
einfach bei Windows bleiben und
tatsächlich einfach herunterladen und installieren Sie Visual Studio 2022, das mit
dem integrierten SDK geliefert wird. Also werfe ich
das einfach da raus, oder? Also, wenn Sie
Visual Studio Code verwenden, der weitaus
leichter und kompakter ist. Und wir werden viele
Dotnet-CLI-Befehle verwenden. Dann können Sie weitermachen und das SDK manuell
installieren. Wenn Sie
Visual Studio 2022 verwenden möchten. Und ich werde
Ihnen in
einer nachfolgenden Lektion zeigen, wie Sie
Visual Studio 2022 einrichten in
einer nachfolgenden Lektion zeigen, wie Sie
Visual Studio 2022 Dann können Sie
den SDK-Download-Schritt tatsächlich überspringen. Ich empfehle jedoch, dass
Sie die Laufzeit trotzdem verwenden. Sobald Sie diese heruntergeladen
und installiert haben, und es ist eine einfache Installation, klicken
Sie einfach auf Weiter, Weiter, Weiter in Sternen gesetzt, und dann können Sie das Fenster
schließen. Dann können Sie mit der
nächsten Lektion fortfahren, in der wir Visual Studio Code einrichten
werden.
4. Visual Studio installieren (jedes Betriebssystem): In Ordnung Leute, willkommen
zurück. Also haben wir unser SDK installiert und der nächste Schritt ist die Installation von
Visual Studio Code. Oder Visual Studio Code ist eine sehr flexible und
leichte IDE uns von Microsoft zur Verfügung
gestellt wurde. Darüber hinaus ist
es kostenlos und plattformübergreifend, sodass wir es auf Mark,
Windows oder Linux verwenden können . Ich verwende einen
Windows-Computer, also würde
ich natürlich mit dem
Herunterladen für Windows fortfahren,
aber stellen Sie sicher, dass Sie den auswählen , der am besten geeignet ist, wissen
Sie, das Herunterladen und
Installieren ist sehr einfach. Sie erhalten ein MSI-Paket.
Sobald Sie darauf doppelklicken, starten
wir das Installationsprogramm
. Nach ein paar Klicks installiert
es alle Binärdateien
und befindet sich auf Ihrem Computer. Und nur als Vorschau, das ist es, was Sie erwarten können. Du kannst so
etwas erwarten. Ich habe das jetzt schon eine
Weile installiert und habe eine Menge
verschiedener Projekte verwendet. Sie können also sehen, dass ich
einige Symbole habe , die Sie möglicherweise
nicht sofort einsatzbereit haben. Wenn dies zum Beispiel Ihr erstes Mal
ist, haben
Sie möglicherweise
nichts unter dem neuesten Stand. Aber Sie können jederzeit Open File,
Open Folder
starten , Sie können true. Und ich bekomme das Repository
auf deinen Computer. Und dann zur Seite
haben Sie das Explorer-Fenster. Du kannst suchen, du kannst
ein paar Sachen zur Quellcodeverwaltung machen. Sie können ausführen und debuggen. Dann haben Sie Remote
Explorer und Erweiterungen. Und dann
ist die andere Sache, dass ich hier einige andere Plugins habe, die ich von Nebenprojekten
für diesen Kurs habe. Diese sind nicht
unbedingt erforderlich. Aber ich werde darauf achten, auf die Dinge
hinzuweisen, die Sie im Laufe der Zeit benötigen und darauf, wie Sie
Ihre Umgebung einrichten
und für
das Projekt optimieren können darauf, wie Sie
Ihre Umgebung einrichten
und für
das Projekt optimieren , an dem wir arbeiten
werden. Sobald Sie Visual
Studio Code installiert haben, können
Sie loslegen. Es hat viele
eingebaute Funktionen , die wir
unterwegs erkunden werden. Wenn Sie jedoch die
Idee bevorzugen, Visual Studio zu verwenden, da der Visual
Studio-Code erfordert, dass wir viele Befehle für die
Befehlszeilenschnittstelle
verwenden. Und Visual Studio
hilft Ihnen tatsächlich
gut dabei, sich einfach
umzusehen und
einige dieser Dinge zu erledigen. Ich werde Ihnen also zeigen, wie Sie Visual Studio 2022
installieren, und das werde ich in
der nächsten Lektion sein.
5. Alternative – Visual Studio 2022 installieren (Windows und Mac): Ordnung Leute,
in dieser Lektion werde
ich Sie einfach
durch ein ganzes Wochenende führen, um Visual Studio auf unserem Computer
einzurichten . Visual Studio ist
die Flaggschiff-IDE. Und ID ist die Abkürzung für integrierte
Entwicklungsumgebungen, wie die Flaggschiff-IDE, die uns von Microsoft zur Verfügung
gestellt wurde. Es ist eine verbale vollständige IDE. Es ermöglicht uns,
alles von der Konzeption die Implementierung bis hin zur
Lieferung unserer Anwendung zu tun. Und es ist
für mehrere
Betriebssysteme verfügbar , während mehrere, also Windows und Mac OS dafür, tatsächlich
von dieser Website
, Visual
studio.microsoft.com, Sie könnten tatsächlich gehen rüber , um auch Visual
Studio Code herunterzuladen
, den plattformübergreifenden kleinen
Bruder von Visual Studio. Wenn Sie jetzt Visual Studio
erhalten möchten, haben
Sie drei Optionen. Sie haben die Community Edition, Professional und Enterprise,
Communitys, kostenlos
für Open Source und einzelne Lernende
oder akademische Zwecke. Und dann
sind professionell
und unternehmerisch eher für Unternehmen oder für kommerzielle
Entwicklungspraktiken. In Ordnung? , Wir werden also zu jedem Zeitpunkt für diesen Kurs einfach die Community nutzen da dies eine
Lernerfahrung für uns alle ist. Sie helfen Ihnen bei
der Auswahl des für Sie am besten geeigneten Tools. Und ich bin mir sicher, dass
sie bei
zyklischen Notizen Visual Studio Code für Linux vorschlagen werden. Aber wenn ich dann Mark wählen würde und
dann anfange, einige Dinge auszuwählen , basierend auf dem, was ich auswähle den MAC von Visual Studio Code. Oder sie sehen möglicherweise Visual
Studio für Mac. Und wenn ich mich dann höchstwahrscheinlich für
Windows entscheide, egal für was ich mich entscheide, heißt
es, Visual
Studio ist die beste Wahl, okay, aber nicht für Java. In Ordnung? Dies kann Ihnen also helfen
, eine Entscheidung
zu treffen , welche Tools für Sie besser
sein könnten. Davon abgesehen ist
Visual Studio Code, wie gesagt, etwas kompakter, benötigt also weniger
Ressourcen und ist einfach einfacher für schnelle
Bearbeitungsvorgänge zu verwenden. Visual Studio ist sehr
leistungsfähig und wird für viele
fortgeschrittene Dinge
verwendet. In dieser Lektion werde
ich
Sie nur durch das führen, was Sie bei der
Installation von Visual Studio
erwarten können . Also, wann möchten
Sie zuerst Visual Studio
herunterladen. Wenn Sie also die Community herunterladen
, erhalten Sie ein Installationsprogramm. Und sobald Sie das
Installationsprogramm haben und es gelernt haben, erhalten
Sie ein Fenster
, das ähnlich wie dieses aussieht. Ich habe es bereits installiert, also zeige ich Ihnen nur einige
der Module und die Benutzeroberfläche
aussieht und
wie Sie von hier aus vorgehen können. Für diesen Kurs benötigen wir wirklich nur das ASP.NET
und die Webentwicklung, was wir als Workload bezeichnen. Jede dieser
Boxen steht also für unseren Arbeitsaufwand und
gibt uns Zugriff auf die verschiedenen
Projekttypen, die für verschiedene Arten
von
Entwicklungsaktivitäten
verfügbar sind für verschiedene Arten
von
Entwicklungsaktivitäten
verfügbar , oder? Also asp.net und Webentwicklung, wir werden eine
Dotnet-Anwendung Webanwendungen erstellen. Also wollen wir das auf jeden Fall. Und es wird tatsächlich das SDK
enthalten. Sdk sowie andere
Projektvorlagen. Die Tools, die wir
für die Webentwicklung benötigen. Davon abgesehen, wenn Sie an
anderen Workloads
interessiert sind , z. B. für die
Dotnet-Desktop-Entwicklung oder die Dotnet-Maui-Entwicklung. Dann können Sie immer
die verschiedenen Workloads übernehmen , die Sie haben möchten. Je mehr Sie ankreuzen,
desto mehr Platz
nimmt es natürlich auf Ihrer Maschine ein. Also sei sehr vorsichtig. An dieser
Stelle benötigen wir jedoch wieder einmal
alles, was wir
für diesen Kurs wirklich benötigen die Asp.net- und
Webentwicklungs-Workloads. Sie können also weitermachen und dann auf Installieren klicken.
Dies wird
hier angezeigt
, anstatt es beim Herunterladen installiert zu haben. Sobald Sie das getan haben, übernimmt Visual Studio alle Tools, die für diesen Workload
benötigt werden, und lädt sie
herunter. Und dann können
Sie Ergebnisse für sie veröffentlichen. Danach. Wenn Sie es starten, werden Sie
möglicherweise aufgefordert, sich anzumelden. Sie können also Ihr Live-Konto verwenden falls Sie eines haben,
oder Sie können
ein Live-Konto erstellen und dieses
Konto für Ihre Visual
Studio-Installation verwenden . Jetzt nur, um Ihnen eine
schnelle Vorschau darauf zu geben, wie die Visual Studio
202-Benutzeroberfläche aussieht. Ich werde einfach mit
allen Kabeln weitermachen , sodass nur die Benutzeroberfläche
gestartet wird. Und was wir hier haben,
wäre ein Solution Explorer, der alle Dateien und
Ordner
auflistet , die Teil
Ihres Projekts sein werden , wenn wir es erstellen. Und du kannst weitermachen und
das Projekt bleibt angehängt, nein, weil es leer ist, können
wir das Projekt ausführen. Und diese Benutzeroberfläche
wird wirklich lebendig, sobald wir da sind, wenn Sie viele
Integrationen wie mit Git haben, und wir
hier auf
unsere GitHub-Inhalte zugreifen können , genauso wie wir
das von Visual Studio Code aus tun können. Und wenn Sie
Visual Studio verwenden möchten, ist das in Ordnung. den ersten Lektionen werde
ich Ihnen die
Parallelen zwischen der Verwendung von
Visual Studio Code und der
Verwendung von Visual Studio zeigen . So kann man zumindest ein Gefühl bekommen ,
für welches besser sein könnte. Aber für den
Großteil des Kurses werden
wir
Visual Studio Code verwenden, werden
wir
Visual Studio Code verwenden nur weil es
plattformübergreifend ist. Unabhängig davon, welches
Betriebssystem Sie verwenden, können
Sie also problemlos mitmachen. Das war's für Hollywood Visual Studio
einrichten,
es ist ganz einfach. Und wenn
Sie zu irgendeinem Zeitpunkt mehr Workloads benötigen, können
Sie jederzeit
zum Installer zurückkehren. Sie können also
einfach auf
Ihrem Computer nach Visual
Studio Installer suchen . Es wird Sie zu diesem Punkt
zurückbringen. Und Sie können
die Workloads nach Bedarf auswählen oder abwählen.
6. SQL Server Express installieren: Willkommen zum ersten
Video in diesem Kurs, Einführung in SQL Server 2017. Und heute werden
wir uns mit dem Herunterladen und Installieren
dieser Software befassen. Nun, eine Datenbank ist quasi eine logische Sammlung
verwandter Daten. Und das war's auf den Punkt gebracht Wenn Sie bereits
Erfahrung mit Datenbanken haben, wurde
es wahrscheinlich mit
Microsoft Access oder MySQL geliefert. Und Sie möchten einfach
Ihr Wissen darüber hinaus erweitern. Und selbst wenn Sie keine
Vorkenntnisse in Datenbanken haben, ist
dies ein hervorragender Kurs,
um Sie mit den Fähigkeiten von Datenbanken vertraut zu machen,
welche Vorbereitungen getroffen
werden müssen und wie Sie Sie Ihre Reise
zum Datenbankadministrator
beginnen oder einfach nur Daten in
einer Datenbank
manipulieren, ist, wie ich bereits sagte, wir
werden all
diese Konzepte mit
Microsoft SQL untersuchen Server 2017. Und ich habe
es schon auf meinem Bildschirm, die Seite zum Herunterladen. Also habe ich
die URL, wie hier beschrieben,
in die Klassennotizen aufgenommen . Und das würde
Sie dazu bringen,
die Microsoft SQL Server 2017
Express-Datenbank-Engine herunterzuladen . Und die kurze
Beschreibung ist, dass es ein leistungsstarkes und zuverlässiges
Datenbankverwaltungssystem handelt
, mit
dem Sie einfache Websites
und Desktop-Anwendungen erstellen können . Das ist also ziemlich gut, ziemlich anständig ist ein
guter Ausgangspunkt. Wenn Sie nicht über
diese hochwertige High-End-Maschine verfügen,
haben Sie nur eine normale Maschine, Sie möchten einfach loslegen. Dies ist eine hervorragende Option. Es gibt noch weitere
Ergänzungen, die Sie wahrscheinlich
in Ihrer Recherche sehen
würden, aber wenn Sie diesem Link folgen
, werden all dieser Lärm und all
die anderen Ausgaben dadurch ausgeblendet. Und wir können mit Express
beginnen. Sie können fortfahren und
auf diesen Download klicken und diesen
Download-Vorgang
zunächst einleiten. Und dann ist eine weitere Software
, an der wir interessiert sind das SQL Server
Management Studio. Jetzt ist das Management Studio
Ihr Tor tatsächlich
mit der Datenbank
zu
interagieren, die Daten abzufragen und sogenannte
Abfragen in einer Sprache
mit Cloud SQL zu schreiben . Wir werden zu gegebener Zeit auf all
diese Dinge eingehen. Aber vorerst kannst du
dieser URL noch einmal
in den Klassennotizen folgen . Und wir können einfach auf
diese Download-Schaltfläche klicken ,
um diesen Download zu
initialisieren kann eine Weile dauern. Es ist eine ziemlich große Datei. Sobald der
Download abgeschlossen ist, werden
wir uns erneut treffen und
dann den
Installationsvorgang
durchgehen . Hallo Leute, willkommen zurück. Nachdem unsere Downloads abgeschlossen
sind, beginnen
wir mit der Installation
unserer SQL Express-Engine. Also klicken wir einfach auf
diese Installationsdatei, klicken auf Ausführen und dann
werden wir mit diesem
Installationsbildschirm begrüßt. Wir können auf Basic klicken. Der Kunde würde Ihnen erlauben, bestimmte Funktionen
auszuwählen. In dieser Phase
müssen wir das nicht tun. Wir können einfach mit Basic weitermachen wir können weitermachen und
den Allgemeinen Geschäftsbedingungen zustimmen. Sie können es
durchlesen, wenn Sie möchten. Wenn Sie andere Ideen haben, sollten Sie dieses Verzeichnis vielleicht
ändern. Andernfalls können Sie es genauso
gut als Standard verwenden. Und Sie können
hier sehen, dass
wir von 6 GB wirklich nur 300 MB benötigen. Also werde ich einfach
weitermachen und auf Installieren klicken. Und das kann eine Weile dauern, also werden wir uns wieder treffen,
sobald dies abgeschlossen ist. Okay, am Ende dieses
Installationsvorgangs werden
Sie sehen, dass Sie diese Installation
erfolgreich durchgeführt haben. Und dann geben sie
dir einige Informationen. Sie geben dir eine
Verbindungszeichenfolge. Wenn Sie also
eine Anwendung auf
der Grundlage dieser Datenbank entwickeln möchten, sollten
Sie diesem Teil wahrscheinlich
Aufmerksamkeit schenken. Nun, das ist momentan nicht wirklich
notwendig. Und sie geben
Ihnen nur die Pfade für die Protokolldateien und andere wichtige Teile
der Anwendung. Ein weiterer wesentlicher Teil
dieses Installationsvorgangs
ist, wie bereits erwähnt, die Installation des Sequel Management
Server Studio. Dann geben
sie Ihnen bei dieser Express
Edition-Installation tatsächlich die
Option, SSMS installieren zu sagen. Und das wird wirklich Ihren Browser
aufrufen und zu, nun, ich habe mir diese Rede vorgestellt, der Link zu dieser Seite ist bereits in den Unterrichtsnotizen
enthalten. Und hier, von hier aus, können Sie direkt
zum Management Studio herunterladen. Wenn Sie es also noch nicht getan haben, können
Sie einfach diesem Link folgen
und die Datei bereits herunterladen. Lassen Sie sie sich hier herunterladen. Also werde ich
diese Installation einfach initiieren. All dies startet
das Installationsprogramm und gibt Ihnen
wirklich nur eine Schaltfläche,
auf die Sie klicken können, welches installiert ist. Natürlich kannst du diesen Ort
ändern, wenn du andere
Ideen für den Pfad hast. Andernfalls können Sie es als Standard
belassen und
einfach auf Installieren klicken. Dies kann auch eine Weile dauern, daher werden wir uns am
Ende dieses Prozesses wieder treffen. Okay, unsere
Installation ist abgeschlossen und wir müssen nur
neu starten, um fortzufahren. Also können wir das einfach schnell machen. Und im nächsten Video werden
wir uns ansehen, wie wir anfangen,
alles zusammenzusetzen. Was ist eine Datenbank
und warum es so wichtig
ist, diese Fähigkeit zu erlernen. Bleib dran.
7. Alternative – SQL Server auf Docker installieren (jedes Betriebssystem): Derzeit ist Microsoft
SQL Server fast ausschließlich
auf Windows-Computern nutzbar. Die vorherigen
Installationsschritte sind also möglicherweise nicht gut gelaufen möglicherweise nicht gut gelaufen.
Wenn Sie keinen Windows-Computer verwenden
, wenn Sie Mac oder Linux verwenden, sich
keine Sorgen, es gibt
immer noch eine Lösung für Sie. Lösung Nummer eins
wäre , dass Sie
eine virtuelle Maschine verwenden können, sodass Sie VMware oder ein
anderes Tool verwenden können , das Virtualisierung
unterstützt. Und Sie können
eine virtuelle Maschine einem Windows-Betriebssystem einrichten
und dieses dann verwenden. Wisse, dass das
ressourcenintensiv sein kann. Und ich werde Sie nicht all das
durchmachen lassen, nur
um die eine Software zu verwenden. Die Alternative zu einer
virtualisierten Umgebung für Windows
wäre die Verwendung von Docker, was ich
auf meinem Bildschirm habe. Dunkler, du kannst ganz einfach
hierher gelangen, indem du zu docker.com gehst. Darker ist eine sehr schnelle
Anwendung, mit der wir sogenannte
Container anstelle einer gesamten
virtualisierten Umgebung
verwenden können wir sogenannte
Container anstelle einer gesamten
virtualisierten Umgebung
verwenden . Was wir also tun können, ist
Docker zu verwenden , um die benötigte
Umgebung zu simulieren und nur die Umgebung, die für die Ausführung
einer bestimmten Anwendung erforderlich Ausführung
einer bestimmten Anwendung ohne dass das
gesamte Betriebssystem benötigt wird. Was wir also
tun werden, ist Docker zu verwenden, um eine Umgebung
für SQL Server zu simulieren. Und dann
können wir eine Verbindung
zum SQL Server herstellen, nur um zu sehen, auch wenn Sie
keinen Windows-Computer verwenden. Nun, das Erste, was Sie
bemerken werden, ist, dass es für jedes
Betriebssystem
verfügbar ist , ziemlich richtig? Wenn Sie also Windows verwenden, können
Sie immer noch Docker verwenden. Wenn Sie ein Apple-Gerät oder Linux-basiertes Gerät oder ein Gerät mit einem
Intel-Chip
haben, können Sie dasselbe tun. Wir installieren Docker. Also mach weiter, lade es herunter
und installiere es. Ich habe es bereits
auf meinem Windows-Computer installiert, aber sobald Sie es installiert haben, erhalten Sie Zugriff auf
die Docker-Befehlszeilenbefehle. Sobald Sie es installiert haben, klicken Sie auf Pause, lassen Sie es installieren und dann können Sie fortfahren. Ich würde Sie ermutigen, Ihr Terminal zu
starten. Also noch einmal, ich verwende
einen Windows-Computer, aber Ihr Terminal unter Linux oder Mac OSX würde diesem
sehr ähnlich aussehen. Und Sie können einfach
den Befehl docker ausführen , um
sicherzustellen, dass er installiert ist. Und wenn Sie etwas sehen, das so
aussieht, hatten
sie keinen Zugriff auf
die Docker-CLI-Befehle. Ordnung, was wir an dieser Stelle tun wollen ,
ist einen Befehl namens Docker auszuführen. Pull ist ein bisschen vergrößert,
damit es besser lesbar ist. Also machen wir
Docker, Pull, Docker Pull. Wir werden das,
was wir Image nennen, ziehen. Docker verfügt also über
vordefinierte Dateien, die die Umgebung
auskleiden, die für eine
bestimmte Anwendung benötigt
wird. Und diese werden Bilder genannt. Das Bild, das wir wollen, ist das Microsoft MS
SQL Server-Image. Also machen wir einen Docker,
ziehen das Bild an, sodass Sie auf Pause klicken können.
Stellen Sie sicher, dass Sie es
genauso eingeben, wie ich es habe. Und wenn Sie die Eingabetaste drücken, wird
weitergemacht und gesagt: Okay, ich erhalte die neueste Version und dann sehen
Sie das Herunterladen. Ich habe das Bild bereits abgerufen, also habe ich
es bereits auf meinem Computer. Aber Sie werden sehen, dass es
zieht und dann werden Metriken
angezeigt, wenn es fertig geladen ist. Und es würde tatsächlich eher
so aussehen. Das ist also ein Screenshot, den ich zuvor
gemacht
habe, als ich ihn heruntergeladen habe. Und du wirst
sehen, dass es diese Reihe von
Zeilen hervorbringen wird , die diesem ähnlich
aussehen. Und du wirst
diese Download-Tags haben. Sobald das abgeschlossen ist, der nächste Schritt darin, es
tatsächlich auszuführen. Um es auszuführen,
benötigen Sie diesen Befehl. Also
sagen wir Docker, run, dann Bindestrich e und schon
akzeptiert die EULA das. Was also passiert, ist, dass SQL
Server normalerweise eines
dieser Dokumente enthält , die Sie benötigen, um die
Allgemeinen Geschäftsbedingungen zu akzeptieren. Also geben wir es einfach
in einen Parameter ein, dass wir die Allgemeinen
Geschäftsbedingungen akzeptieren. Und dann noch einer
, der SA-Passwort sagt. Wenn Sie sich also den Installationsvorgang ansehen,
während wir Windows verwenden, können
wir die
Windows-Authentifizierung verwenden um eine Verbindung zur
Datenbank herzustellen, oder? Also alles was wir brauchen ist
ein Maschinenname. Wir können einen Windows-Benutzer,
den aktuellen Windows-Benutzer, die
Windows-Authentifizierung verwenden den aktuellen Windows-Benutzer, die
Windows-Authentifizierung und einfach eine Verbindung herstellen. Da das jetzt dunkler ist
und es ein Container ist, gibt es keine Fenster oder Türen oder Mark oder es gibt keine
Linux-Authentifizierung. Es ist also nicht wirklich so, dass
Sie einfach
mit dem Standardbenutzer
auf Ihrem Computer eine Verbindung herstellen können. Dieser Schritt
gilt also unabhängig davon, ob Sie Windows,
Mac, Linux usw. verwenden. Wir müssen
also ein SA-Passwort
angeben. AC ist also der Standardbenutzer, was Systemadministrator
oder Systemadministrator bedeutet. Jedes Mal, wenn Sie
eine Datenbank-Engine
für Microsoft SQL Server installieren , erhalten
Sie diesen Essay-Benutzer. Wir werden
diese SA einrichten, Passwort. Und Sie können jedes beliebige
Passwort eingeben. Ich gebe hier nur ein
sicheres Passwort ein. Und das ist wirklich möglich
, dass Sie es in
anderen Demos sehen , die Sie
sich überall im Internet ansehen könnten . Dieses Passwort ist also nicht unbedingt für
mich oder diese Übung einzigartig. Sie können einen beliebigen
Passwortwert eingeben , mit dem Sie sich wohl fühlen. Und du erinnerst dich,
ich teile das Wort sicheres
Passwort natürlich mit Zeichen, Ziffern und ein
paar Großbuchstaben auf. Dann geben wir den Port an. Der Hafen hier
vorne ist wichtig
, den wir
durchqueren wollen. Der Hafen. Am anderen Ende des Doppelpunkts befindet sich der Port, dem er zugeordnet werden soll. Das bedeutet, dass der SQL-Server standardmäßig
von Port 1433 sendet, das ist der Standardport. Also ohne etwas zu tun, irgendwelche
Ports oder irgendetwas
anzugeben, wird
1433 immer einmal durchlaufen oder eine Verbindung hergestellt. Docker läuft jedoch in einer eigenen speziellen
Umgebung, daher müssen wir eine Karte erstellen. Dies ist der Standardport, und dann ist dies
die Port-Maschine , die einen Tunnel
durchlaufen möchte, um zu diesem Sport zu gelangen. Also könntest du das eigentlich einfach als 14331433
belassen. Wenn Sie nicht möchten, dass
SQL Server
bereits installiert ist und Sie Mac und Linux
ausführen, dann ist 14, 14, 33 in Ordnung. Du musst nichts
extra tun . Sie können einfach eine Verbindung herstellen. Allerdings, weil ich
einen Windows-Computer verwende und hinzufüge,
um meinen Port zu ändern, weil 1433 bereits von
meiner nativen SQL
Server-Installation belegt ist . Also zeige ich dir nur
, dass du standardmäßig 14,
14, 33 machen kannst . Oder Sie können
Ihren eigenen spezifischen Port angeben,
wenn Sie dies wünschen. Dann sagen wir als Nächstes und letztes
Bindestrich D und geben dann das
Bild an, das wir ausführen möchten. Im Grunde sagen wir also, dass
Docker dieses Image ausführt und sicherstellt, dass all diese Parameter
dazwischen konfiguriert sind. Das ist im Wesentlichen das
, was wir gerade getan haben. Wenn Sie also die Eingabetaste drücken und nur
Sie diese ausführen, wird
das Bild in
der dunkleren Benutzeroberfläche gestartet . In der dunkleren Benutzeroberfläche wirst
du
etwas sehen, das so aussieht. Es wird
unter Containern erscheinen. Und Sie können hier sehen, wie mehrere Container sind, oder? Ich habe sogar einen anderen
SQL-Container , der Salz von früher hinzufügt. Und hier ist der neue von
meinem Befehl, den ich gerade ausgeführt habe. Also erstellte er einen
brandneuen Container für Microsoft SQL Server. Und es läuft gerade
und es läuft seit 30 s.
Und der Port, den es verwendet, ist 1.400. den es verwendet, ist 1.400 Wenn Sie
das nicht ändern
und den Standard
1433 verwenden , wäre es 1433. Sie können die Container jederzeit anhalten und
starten. Sie können auch löschen und beobachten, was passiert. Sie können es also im
Terminal öffnen und hier damit
interagieren. Sie können auch den Zustand
überprüfen und sich
einige Konfigurationen ansehen. Dies sind also einige der Umgebungsvariablen
, die wir eingerichtet haben. Was sind die Parameter
, die wir übergeben? Dann kannst du dir auch die Logs
ansehen. Sehen Sie hier, dass es
anscheinend erfolgreich gestartet wurde. Nachdem ich
all diese Dinge jetzt bestätigt habe, möchte
ich eine Verbindung herstellen. Jetzt können wir für Windows
das Microsoft SQL Server
Management Studio verwenden . Management
Studio ist jedoch nicht unbedingt
auf Linux und Mac verfügbar. Die Alternative
hier wäre also, sich das Azure Data Studio zuzulegen. Sie können einfach
eine Google-Suche durchführen und
der Microsoft-Dokumentation
bis zum Azure Data Studio folgen . Data Studio ist ein
plattformübergreifendes Datenbanktool für Profis. Und es kann unter
Windows, macOS, Linux funktionieren. Sie können also weitermachen und
die entsprechende
Version für sich selbst installieren . Und natürlich können Sie sich alle Warnungen
ansehen, um
sicherzustellen, dass Sie sich in
einem kompatiblen Zustand befinden. In Ordnung? Die Sache ist also, dass das Data Studio die
meisten Dinge tun kann , die das
Management Studio kann, insbesondere im Rahmen
dieses Kurses, in dem wir über
Datenbankentwicklung und Abfragen
lernen und solche. Die Erfahrung wird etwas anders
sein. Bestimmte Dinge werden also nicht am selben Ort sein und
möglicherweise nicht dasselbe genannt werden. Rüber, um eine Verbindung herzustellen. Lassen Sie mich Ihnen nur zeigen,
wie wir uns verbinden. Sie können also sehen, dass ich
im Laufe der Zeit ziemlich viele Ups
angeschlossen habe oder es braucht eher
eine Basis, aber hier werde ich
Microsoft SQL Server verbinden und dann wird
der Server hier ein lokales Hostkomma sein, der von Ihnen angegebene Port. In meinem Fall habe ich
1.400 auf meiner Veranda angegeben. Möglicherweise haben Sie
auch 1.400 oder was auch immer Sie angegeben haben
, angegeben. Wenn wir eingestellt haben,
sollte der Container laufen und wenn
Sie sich nicht erinnern, können
Sie einfach
nochmal rübergehen und nachschauen. Sie geben diesen Port an. Und dann nicht
Windows-Authentifizierung, sondern SQL-Anmeldung. Und unser Benutzername ist SE und unser Passwort ist das
Passwort, das wir eingegeben haben. Und noch einmal, wenn Sie
sich nicht erinnern, wie das Passwort lautet, können
Sie jederzeit
zum Container gehen und
dann auf Inspect klicken. Und ich kann diesen
Wert einfach kopieren und dann einfügen. Und dann
erinnerst du dich für die Zukunft einfach an dein Passwort. Dann können wir uns verbinden. Dann ist dies ein Zeichen für eine
erfolgreiche Verbindung. Ich, du siehst hier die Betriebssystemversion, also bin ich immer noch auf meinem
Windows-Computer. Die festgestellte Betriebssystemversion ist jedoch Ubuntu. Das ist es also, was der
Container tut. Es läuft in einer
Linux-Umgebung, simuliert
aber
die Umgebung,
genau die Umgebung, die benötigt wird damit
SQL Server ausgeführt werden kann. Wenn ich Datenbanken erweitere, wirst
du sehen, dass sie leer sind. Und dann können
wir im Grunde
alles, was wir vom Management
Studio aus tun können, von hier aus tun. Eine Sache, die Sie
vielleicht bemerken,
ist, dass einige der
Werkzeuge begrenzt sind. Im Management
Studio kann ich also einfach oder einfacher mit der
rechten Maustaste klicken und sagen, bestimmte Dinge
tun, z. B.
eine neue Datenbank erstellen und so weiter. In der Verwaltung
im Data Studio wird es
jedoch wahrscheinlich skriptgesteuert werden
müssen. Es ist etwas
, das Sie
kontrollieren müssten und erstellt
eine neue Skriptdatei. Und um dann
eine neue Datenbank zu erstellen, müssten
Sie „Datenbank
erstellen“ sagen. Und dann gib den Namen an, sagen
wir test db, dann F5, und dann wird
es geworfen. Also dann kannst du die Liste der
Datenbanken
aktualisieren und dann siehst
du TSDB, oder? In diesem Kurs werden wir
uns jedoch mit der Ausführung beider Skripts und
der Verwendung der grafischen Benutzeroberfläche
in Management Studio befassen. Sie sollten also in der Lage sein, das ganz gut zu
verfolgen. Und
wenn Sie auf Schwierigkeiten stoßen, können Sie sich auf jeden Fall
gerne an uns wenden.
8. Microsoft Data Studio installieren: Hallo Leute. In dieser Lektion werden
wir uns ansehen, wie wir Azure Data Studio
herunterladen und installieren
können . Nun, der Name ist
irreführend , weil er mit Azure
beginnt, aber es ist kein Tool, das nur in Azure verfügbar
ist. Es ist ein plattformübergreifendes Tool für das
Datenverwaltungssystem, dem wir eine Verbindung
zu jeder Art von Datenquelle herstellen können. Nun, zumindest die Microsoft
SQL Server-Datenquellen,
unabhängig davon, ob sie lokal gehostet
werden, werden in Microsoft Azure gehostet. Es gibt noch andere Dinge, die
wir mit dem Tool tun können, aber wir werden sie in diesem Kurs nicht unbedingt
tun. Der Grund, warum wir uns
für dieses Tool entscheiden,
ist jedoch die Tatsache, dass es sich um ein
plattformübergreifendes Datenbanktool handelt, dem wir unter Windows,
Mac OS oder Linux arbeiten können . Denken Sie also daran, dass
wir uns um die plattformübergreifende Entwicklung kümmern. Deshalb versuche ich, Ihnen alle Tools zu zeigen ,
die uns helfen können, unsere Ziele zu erreichen, unabhängig
von unserem Betriebssystem. In Ordnung, also um loszulegen, können
Sie eigentlich einfach
Google Data Studio und Sie können wahrscheinlich, oder Sie können sagen, ein Studio
ohne Daten herunterladen. Und es führt Sie
zu dieser Website, die sich auf Microsoft Learn befindet. In Ordnung. Und von hier aus können Sie zu den
verschiedenen Download-Optionen
nach unten scrollen. Für Windows
haben wir also diese Optionen. Und das Benutzerinstallationsprogramm
ist ein einfaches Installationsprogramm, das der Installation mit
Visual Studio Code sehr
ähnlich wäre . Wir haben den
macOS-Installer und wir haben die Linux-Methode, um
die Dateien auf unser System zu übertragen. Wenn du also Schlag für
Schlag pro Anweisung
oder Geld benötigst ,
kannst du tatsächlich nach unten scrollen
und schon siehst du
hier den Abschnitt für die
Windows-Installation. Und Sie können sehen, dass
Sie einfach
das Installationsprogramm für Windows herunterladen
und mit der Einrichtung fortfahren können . Oder Sie können
eine Zip-Datei herunterladen und an einem Ort
entpacken und sie dann direkt von dort aus
verwenden. Ordnung, ich scrolle
einfach durch die Option und hier ist der Installationsabschnitt für MAC OS. Und dann ist hier der
Linux-Installationsbereich. Am Ende erhalten wir jedoch eine Anwendung
, die so
aussieht. Wenn du es bekommst, kannst du dein
Thema und alles andere ändern. Bei mir läuft das Dark Theme. Sie können dieses
Farbthema jederzeit ändern, wenn Sie möchten. Aber letztendlich ermöglicht es uns , eine Verbindung zu jeder
Art von Datenquelle herzustellen. Und hier habe ich ein
ausstehendes Update. Das mache ich später. Wir können
unsere verschiedenen Server jedoch verbinden unabhängig davon, ob
sie sich auf einem lokalen Host befinden. Diese Standardeinstellung ist also mein lokaler
Host, die SQL Express-Instanz. Ich habe auch eine
Docker-Instanz zur Verfügung, jetzt mehrere Instanzen bei
Microsoft als Juris, alle meine Server
sind genau da. In Ordnung? Und wir können ein paar coole Dinge tun. Wir können suchen, wir können ein paar Notizbücher
machen und Sachen zur Quellcodeverwaltung
und Erweiterung erforschen. Wie gesagt, es hat
andere eingebaute Tools für andere verwandte Aktivitäten, auf die ich nicht eingehen
werde. Aber im Moment ist es einfach
ein
Tool, mit dem wir unsere Abfragen schreiben können. Wir können unsere
Datenbank ganz einfach erstellen. Ordnung, also wenn wir zurückkommen, werden
wir tatsächlich
mit der Entwicklung beginnen.
9. ASP.NET Core MVC erstellen – Visual Studio: Willkommen zurück, Leute.
In dieser Lektion werden
wir unsere asp.net
Core MVC-Webanwendung
erstellen . Nun
sollten Sie als Erstes Ihr Terminal starten. Terminal kann
je nach
Betriebssystem, das Sie verwenden,
anders aussehen . Wenn Sie Linux verwenden, sieht es anders aus, als wenn es nicht markiert ist. Nun, zu oft wird es tatsächlich ziemlich ähnlich
aussehen. Wenn Sie sich jedoch auf einem
Windows-Computer befinden, möchten Sie
entweder nach PowerShell
oder Command Prompt suchen . Ich verwende einen Windows-PC, also habe ich tatsächlich dieses Fenster,
das Terminal heißt, und es gibt mir tatsächlich
Zugriff auf die verschiedenen Arten von Terminals, die ich auf meinem Computer
habe. Sie sehen hier, ich habe einen Tab
namens Windows PowerShell, einen anderen Tab namens
Command Prompt. Auch wenn Sie ein Fenster haben, das nicht unbedingt so aussieht, können
Sie alles tun, was
wir tun werden, wenn Sie einen Windows-Computer
verwenden, indem Sie die
Eingabeaufforderung
verwenden, so oder so, genauso Befehle, die
wir auf meinem Computer ausführen werden, funktionieren auf
jedem Betriebssystem. Also schließe ich
einfach einen
dieser Tabs und
verwende einfach das PowerShell-Fenster. Und zunächst möchten
wir sicherstellen, dass
wir es installiert haben. Wenn Sie nur Dotnet
und dann Bindestrich und
Bindestrich sagen , dann sehen Sie einen schönen kleinen Druck
oder so, der
alle
Dotnet-Laufzeiten anzeigt , die Sie installiert haben. Ich mache die
Dotnet-Entwicklung auf dieser speziellen Maschine,
seit 3.1 das Richtige war. Du siehst hier, dass ich
fünf und ich auch sieben habe. Und wenn Sie hier nach unten schauen, werden
Sie sehen, dass ich auch Zugriff auf Versionen von sechs
habe. Ordnung, das ist also ein Beweis dafür
, dass Dotnet erfolgreich
installiert wurde und Sie sicherstellen
möchten, dass Sie sieben
haben, weil
wir sieben verwenden werden. Wenn Sie jedoch sechs installiert haben
und verwenden möchten, 90% dessen, was wir tun können mit sechs
funktionieren, wo
es einen Unterschied gibt. Ich werde
darauf hinweisen. Jetzt, da wir überprüft haben, dass Dotnet installiert ist und wir Zugriff auf die Dotnet-CLI
haben. Was wir jetzt tun müssen,
ist, dass ich es nur
etwas größer machen werde , damit die
Befehle besser sichtbar sind. Was wir
tun müssen, ist zu
einem Verzeichnis zu navigieren , von dem wir wissen, dass wir unser Projekt haben
möchten. Und dann werden wir unsere
neue Dotnet-Anwendung erstellen. Ich sage einfach CLS, um die Eingabeaufforderung zu
löschen. Und dann wieder der größere. Jetzt können wir zu dem Ordner
navigieren,
der ungefähr wie cd aussieht, und dann wählst du
dein Ziel. Ich habe also einen speziellen Ordner auf meinem C-Laufwerk, den ich für Projekte
verwende. Also kann ich
zu diesem Verzeichnis navigieren. Und dann führe ich einen
Befehl aus, der sagt dots net new MVC. Und dann habe ich mir einen Bindestrich angesehen, oder dieser Bindestrich 0 bedeutet wo möchte ich dieses Projekt
platzieren? Also wollte ich einen neuen Ordner
erstellen. Wenn ich das nicht mache,
wo immer ich bin, wird ein Ordner erstellt. Sie hätten also
einen Ordner für sich selbst erstellen können, sei es über Ihre
Benutzeroberfläche oder Ihre Befehlszeile. Und bevor ich darauf eingehe, lassen Sie mich
Ihnen nur zeigen, wie Sie das
erstellen würden , wenn ich
MK dir Verzeichnis sagen und ihm
dann einen Namen geben würde, sagen
wir, teste MVC auf. Dann würde es das schaffen. Dann könnte ich CD sagen
, um die MVC App zu testen. Und Sie sehen hier, dass es sich
um eine Reihe von Ordnern handelt. Und dann könnte ich einfach Dotnet
sagen, neues MVC. Und dann würde das bedeuten, ein brandneues asp.net Core Web Up unter Verwendung der Model
View-Controller-Vorlagen zu erstellen. Das ist es also, was MVC bedeutet, nur für den Fall, dass das vorher nicht klar war. Und sie lassen Sie wissen, dass
es erfolgreich erstellt wurde. Sie
teilen Ihnen also mit, dass sie das Projekt auf
diesem Weg
erstellt haben . Und sie gaben dem Projekt den gleichen Namen wie dem
Ordner, in dem es erstellt wurde. In Ordnung, das ist also
eine nette, saubere Art , ein neues MVC-Up zu erstellen. Wir werden jedoch nicht an MVC arbeiten, also mache ich einfach cd dot dot, wodurch ich wieder ein
Verzeichnis öffne und ich
meinen Bildschirm erneut
von allen Nachrichten löschen kann. Dieses Mal einfach im Vollbildmodus. Und dann lassen Sie uns das von Anfang bis Ende machen
. Wenn ich also eine brandneue
Dotnet-MVC-Anwendung haben möchte, sage ich dotnet new MVC, und dann sehe ich es als
Bindestrich oder nicht Null, sondern alles und gebe ihr dann
den Namen des Verzeichnisses. In diesem Kurs werden
wir nun eine sehr
kleine Schulleitung aufbauen . Gerade genug, um
einer kleinen Schule zu helfen , die Schüler, die Lehrer, von
den Kursen,
die sie anbieten,
fernzuhalten , oder? Also sage ich einfach,
Schulmanagement läuft, okay? Dann sage ich einfach MVC, nur damit wir wissen, dass dies mit Sicherheit ein MVC
ist. Und wenn ich dann die Eingabetaste drücke, mache ich weiter und erstelle das neue Verzeichnis, School of Management
App Punkt MVC. Und dann erstellt
der neue
Direktor die zugehörige Projektdatei. In Ordnung, das ist also eine andere
Art, wie wir es machen könnten. Wir könnten einfach
Dotnet, neuer MVC-Bindestrich sagen und dann
den Projektnamen angeben. Es wird sowohl die Verzeichnis- als auch die
Projektdatei in einem Durchlauf ausführen. Jetzt, wenn wir dieses Projekt
öffnen wollen, haben
wir eine nette
Tastenkombination, mit der wir stattdessen eine andere
Befehlskombination verwenden
können. Also wenn ich
zu diesem Ordner navigiere und ich Schulverwaltung von MVC sage, also CD, springt da rüber. Und dann kann ich Codepunkte sagen. Schau dir an, was passiert. Dies ist der Fall, wenn Sie
Visual Studio-Code verwenden. Sobald Sie also
Visual Studio Code haben, haben
Sie diese
Umgebungsvariable in Ihrer Befehlszeile. Sobald Sie Code, Punkt,
sagen, öffnet
sich Visual
Studio Code im Kontext
des
Ordners, zu dem Sie gerade im Terminal navigiert
haben. Und tatsächlich sind wir mit Visual
Studio Code
da und hier sind alle Dateien, die in diesem
bestimmten Verzeichnis erstellt
wurden . Natürlich kann er navigieren, sie benutzen deinen
Explorer, wenn du willst. Aber im Moment
ist dies ein ausreichender Beweis dafür, dass unsere Bemühungen zur Projekterstellung erfolgreich
waren. Ich werde
keine Erweiterungen oder so durchgehen. Ich wollte
Ihnen nur zeigen, wie Sie
mithilfe
der CLI ein brandneues MVC erstellen und es mit
Visual Studio Code
vollständig öffnen würden der CLI ein brandneues MVC erstellen mithilfe
der CLI ein brandneues MVC erstellen und . Wissen Sie, kurz bevor wir
diese Übung abschließen, wollte
ich nur darauf hinweisen
, dass es mehrere gibt.
10. ASP.NET Core MVC erstellen – Visual Studio: In Ordnung, also haben wir uns angesehen, wie wir
mit der Dotnet-CLI ein neues Projekt erstellen können. Und das gilt wirklich für
jedes Betriebssystem, insbesondere wenn Visual Studio auf Ihrem
Betriebssystem
nicht unterstützt wird. Wenn Sie jedoch
Visual Studio für die
Entwicklungsübungen verwenden möchten , gehen
wir nur die
einfachen Schritte durch, um
ein ähnliches Projekt
mit Visual Studio zu erstellen . Visual Studio ist eine
sehr leistungsstarke IDE uns von Microsoft
für die Dotnet-Entwicklung zur Verfügung
gestellt wurde. Und es
steckt voller Funktionen
, die Sie benötigen. Viele Erweiterungen und
viele Add-Ons mit anderen Tools, um wirklich
die gleichen Leistungen zu erzielen. Davon abgesehen sind andere
Tools in der Lage und die Ressourcen
dazu sind sofort einsatzbereit. Hinweis auf der linken Seite,
Sie werden sehen, dass ich
eine Liste der letzten Projekte habe . Wenn Sie Visual Studio zum ersten
Mal verwenden, haben
Sie möglicherweise nicht so
viel Leben auf dieser Seite. Das ist in Ordnung. Wir möchten uns jedoch auf den
Abschnitt Erste Schritte
konzentrieren, damit wir zunächst unser Repository klonen, ein vorhandenes
Projekt oder eine Lösung oder einen Ordner
öffnen können , in dem
möglicherweise ein vorhandenes Projekt vorhanden ist, oder wir
kann ein neues Projekt erstellen. Wir können auch
ohne Code weitermachen. Ich denke, wir haben diese Option gewählt, wir
uns Visual Studio
das letzte Mal ansehen. Dieses Mal
sagen
wir jedoch Neues Projekt erstellen. Und dann werden
eine Reihe von Projektvorlagen geladen . Basierend auf den
Workloads, die Sie für Visual Studio ausgewählt hätten , haben
Sie möglicherweise mehr oder weniger
Workloads als ich hier habe. In Ordnung? Die wichtigste ist
die, bei der Erstellung,
nämlich MVC weiß, dass
dies eine riesige Liste ist wir nach
den Sprachen filtern können. Wir wollen also nur
C-Sharp-Vorlagen sehen. Vielleicht wollen wir nur Vorlagen
für unsere
spezielle Art von
Plattform und für bestimmte
Projekttypen sehen Vorlagen
für unsere
spezielle Art von , oder? Oder wir können einfach suchen. Also ich weiß, dass ich MVC will, ich kann einfach nach MVC suchen. Und dann geben sie
mir hier die Web-API. Nein, das will ich nicht. Und dann sehe ich hier, dass
sie mir eine Web-App
mit dem MVC Model
View Controller geben . Also das ist die, die ich
auswählen werde. Wählen Sie Weiter. Und dann
werden sie mich fragen, okay, wie sollte
das Projekt heißen? Das wird also in
ein anderes Standardverzeichnis
als meine vorherigen verschoben. Also gebe ich ihm denselben Namen nur um ein gewisses
Maß an Konsistenz zu zeigen. In Ordnung, also
Schulleitung Punkt MVC. Und dann kann ich auf Weiter klicken. Dann wird es mich
nach dem Framework-Typ fragen. Wir haben also bereits
die Tatsache durchgemacht , dass wir
verschiedene Arten von Frameworks haben oder möglicherweise
verschiedene Frameworks installiert haben. Und was wir in diesem Kurs tun
werden, lassen Sie uns suchen, können
es ab sieben tun, können es tun, wo es einen Unterschied
gibt. Ich würde auf jeden Fall darauf hinweisen. Aber für diesen Kurs verwenden
wir Dotnet Seven und können einen
Standardauthentifizierungstyp wählen. Nun, dies sind Optionen, die
wir in
der CLI hätten
bereitstellen können, da ich in der CLI keine Optionen angegeben habe. Ich werde hier nichts extra tun. Stimmt das? Und ich werde keines
dieser Dinge tun. Was ich tun werde, ist einfach auf Erstellen zu klicken. Nachdem
Sie auf Erstellen geklickt haben, wird unser Visual Studio mit unseren Projekten geöffnet. Wir haben also standardmäßig den Solution
Explorer, dieses Panel befindet sich tatsächlich
auf der rechten Seite. Aber ich finde es einfacher , es zu benutzen, wenn es auf
der linken Seite ist. Sie können
diese Panels also tatsächlich ziehen und an einer beliebigen Stelle
platzieren. Natürlich ist links oder rechts
normalerweise ein guter Ort, um so etwas zu
haben, das Ihnen
alle Dateien zeigt, aber ich hätte
es gerne auf der linken Seite. In Ordnung? Sie haben auch Zugriff auf die integrierten
Datenbankverwaltungstools. Mit Visual Studio benötigen
Sie also nicht einmal
das Data Studio, da Sie
von hier aus eine Verbindung zu
Ihrer Datenbank herstellen können . Und Geld, bis zu
einem gewissen Grad, Abfragen ausführen, neue Tabellen
erstellen und nach Bedarf als
Datenbankobjekte. Okay, Visual
Studio ist also sehr leistungsfähig und wenn
Sie es ausführen möchten, können
Sie entweder
F5 auf Ihrer Tastatur drücken oder Sie können oben auf diese Schaltfläche „
Ausführen“ klicken, die die Buchstaben HTTPS hat. Wenn Sie jedoch Dotnet Six verwenden, wird in den Buchstaben möglicherweise kein HTTPS angezeigt. Sie haben vielleicht nur den Namen
des Projekts, wo
Sie hier HTTPS sehen,
es würde heißen, Schulleitung
Punkt MVC, und das ist in Ordnung. Beide werden dasselbe
tun. Es ist nur eine Frage,
wie sie in diesen
Starteinstellungen klassifiziert
oder aufgerufen werden ,
dieser JSON-Datei, in der sie die verschiedenen Profile
skizziert. Sie haben also ein HTTP-Profil , das auf einem HTTP-Setup ausgeführt wird. Dann ist es auch standardmäßig
mit HTTPS ausgestattet, das mit
HTTPS-Einstellungen ausgeführt wird. In Ordnung? Möglicherweise erhalten Sie auch eine Aufforderung,
dem Zertifikat,
den Entwicklungszertifikaten, zu vertrauen . Wenn Sie dazu
aufgefordert werden, auf Ja zu klicken. Und ich renne einfach und lass uns sehen, wie
das aussehen würde. Es
erstellt also das Projekt, das
heißt, es wird kompiliert, schaut sich den gesamten Code an und stellt
sicher, dass alles gut aussieht. Und wenn dann alles gut
aussieht, werde ich
es hier starten. Das Terminal, oder ich habe ein Terminal, das auch in
Visual Studio läuft. Und es zeigt
mir, dass es jetzt den HTTPS-Sport
7212 und den HTTP-Port 5294
abhört . Im Hintergrund. Es
hat auch meinen Standardbrowser gestartet, und es hätte standardmäßig
den HTTPS-Port verwendet. Und hier ist unsere Webanwendung in
Visual Studio
ausgeführt wird. Visual Studio ist also wieder einmal sehr leistungsfähig und ermöglicht es uns eine
Reihe von Dingen
zu erreichen einfach hier und da klicken. Sie geben uns viele Tools
und es ist sehr einfach zu navigieren und loszulegen. Aber auch hier
unterstützt
nicht jeder Computer, nicht jedes Betriebssystem Visual Studio. Wir werden uns also
auf die Entwicklung
mit Visual Studio Code
und der Dotnet-CLI konzentrieren . Ich werde jedoch mein Bestes tun, um die Parallelen
auszuführen, bei denen Sie möglicherweise wissen müssen,
wie Sie
dasselbe mit
Visual Studio erreichen können.
11. Visual Studio Tour: Willkommen zurück, Leute. In dieser Lektion werden
wir uns ein wenig mit
Visual Studio Code
beschäftigen, oder? Es ist ein sehr vielseitiger Editor und es ist gut, einfach zu wissen,
wo sich die Dinge befinden, und einige
der Aufforderungen zu
verstehen, die wir im Laufe der Zeit sehen könnten. Also habe ich unser School of
Management App Dot MVC-Projekt geöffnet, das wir zuvor erstellt haben. Und wenn Sie unser Projekt
öffnen möchten, nehmen wir an, Visual Studio Code wird geschlossen und Sie
möchten dorthin zurückkehren. Sie haben die Möglichkeit,
die CLI zu verwenden und dort zu navigieren. Oder Sie könnten tatsächlich zu
Datei gehen und Ordner öffnen sagen. Und dann können
Sie von hier aus zum Ordner navigieren und dann
den Ordner
auswählen. Und dann hätten Sie dieselbe Erfahrung mit
Visual Studio-Code, wir laden einfach alle
Dateien, die sich derzeit in
dem Ordner in diesem Abschnitt befinden, der Explorer
genannt wird. Du kannst diesen Explorer
andocken um mehr Platz
für deinen Code zu bekommen. Oder Sie können es auf der Seite haben, es kann die Größe nach Belieben ändern. Schreib manchmal, du willst einfach
nicht, dass es so offen ist. In Ordnung? Sie
haben auch die Möglichkeit , alles zu durchsuchen. Wenn ich also nach
dem neuesten MVC suche, werden
mir nur alle Orte angezeigt, die
angezeigt werden, an denen ich ganz einfach suchen
und ersetzen kann. Alle zu
ersetzen ersetzt eins nach dem anderen. Natürlich würde ich
einen nach dem anderen für Massenoperationen
vorschlagen, bei einen nach dem anderen für Massenoperationen denen es zu
Konflikten mit dem kommen könnte , wonach
Sie suchen, oder? Daher sollten Sie beim Suchen und Ersetzen immer vorsichtig
sein , insbesondere bei Massenoperationen. Dann haben wir Zugriff auf
die Quellcodeverwaltung. Nun, hier sehen Sie möglicherweise
eine Option,
die vorschlägt , Git für
Ihr Betriebssystem zu installieren. Jetzt bin ich auf Windows. Wenn ich
Git nicht schon installiert hätte, würdest
du
Git für Windows installieren sehen. Denn was passiert, ist, dass Visual Studio Code eine
direkte Integration mit Git hat. Und es ermöglicht
Ihnen, alles auszuführen Befehle
bequem von
hier aus abzurufen , ohne dass Sie jemals in die CLI gehen
müssen. In Ordnung, also
Git-Befehle zu kennen ist cool. Aber mit Visual Studio Code können
Sie das irgendwie tun ohne sie genau zu
kennen. Sie möchten also weitermachen und auf Ihr Betriebssystem zugreifen. Wir werden GitHub verwenden. Sie sehen hier also, dass es
einen schönen großen roten Button gibt steht
, dass wir einen GitHub veröffentlicht
haben,
weil es ein paar Klicks sind. Wir können unser Projekt tatsächlich
auf GitHub pushen und das
werden wir später tun. müssen wir uns also
keine Sorgen machen. Dann gibt es Run und Debug. Run and Debug ermöglicht es
uns tatsächlich, unser Projekt auszuführen. Okay, bei unserem
Visual Studio-Experiment haben
Sie gesehen, dass wir auf
die Schaltfläche klicken konnten , und unser Projekt wurde
gestartet. Nun, genau das bietet
Runner Depot hier an. Wir werden uns ansehen, wie das
funktioniert und wie wir es auch in der CLI tun
können. Ich wollte den Remote Explorer nicht
überspringen. Und
das überspringe ich, weil du das
wahrscheinlich nicht hast. Dieser Remote Explorer ist
eines meiner zusätzlichen Plugins. Und alles, was
Sie neben meinem Computer sehen und
das Sie nicht sehen auf Ihrem Computer
zu entscheiden,
bedeutet, dass dies
zusätzliche Erweiterungen sind , die ich für meine eigenen Zwecke
installiert habe . Ich werde
nichts priorisieren, was für Sie nicht
unbedingt erforderlich ist , um diesen Kurs abzuschließen. Das nächste große
Symbol, auf das
Sie achten sollten
, wären also Erweiterungen. Unter Erweiterungen sehen
Sie nun, dass Sie Zugriff auf die Installation
verschiedener Erweiterungen haben, um je
nach Bedarf verschiedene
Projekttypen zu unterstützen . Also arbeite ich mit Azure. Ich habe ziemlich viele wie deine
Erweiterungen installiert, oder? Aber dann habe ich auch Schnipsel für Bootstrap Five, um mir das Leben leichter zu
machen. Ich habe auch einen C-Snippet. Und vielleicht haben Sie einige Aufforderungen
gesehen , dass je nach Projekttyp eine
C-Sharp-Erweiterung erforderlich ist. Also, weil
wir
ein C-Sharp-Projekt in Dotnet machen werden . Die C-Sharp-Erweiterung
ist
sehr sinnvoll, da sie Unterstützung für C-Sharp-Codierungssyntax und IntelliSense sowie Autovervollständigung
und eine Reihe von Dingen bietet. Ich würde also vorschlagen, dass Sie sich auf die Erweiterung von
C-Sharp freuen. Nein. Um eine Erweiterung zu installieren
, durchsuchen Sie den
Erweiterungs-Marktplatz oben hier oben, und Sie können
einfach C sharp schreiben. Und dann wird diese
ganz oben auf der Liste stehen, weil es sich um eine offizielle
Microsoft-Erweiterung handelt. Du kannst darauf klicken. Wo Sie dann all
diese Schaltflächen für mich sehen, würden
Sie tatsächlich eine Schaltfläche zum
Installieren der Erweiterung sehen. Wenn ich zum Beispiel auf einen klicken würde, habe ich keine Schaltfläche zum Deinstallieren, was Sie sehen
würden. Sie können
es also installieren und möglicherweise müssen Sie Ihren
Visual Studio-Code neu starten. Es gibt eine
Reihe praktischer Erweiterungen und Sie sollten sich immer den Herausgeber der Erweiterung
ansehen . Und eine Sache, die ich auch
verwende, um es zu messen ist, wie viele Downloads es hat. Der Herausgeber ist einer, aber dann die
Anzahl der Downloads falls Sie den Herausgeber nicht unbedingt
kennen. Die Anzahl der Downloads
ist ebenfalls unterschiedlich. Ein sehr guter Indikator für seine Stabilität und
wie gut er genutzt wird. Eine weitere Sache,
die Sie vielleicht bemerken, und ich glaube, ich habe es bereits
erwähnt, ist, dass Visual Studio-Code
Ihnen möglicherweise ein kleines
Pop-up zeigt , dass Sie bestimmte Erweiterungen erhalten. Installieren Sie
bestimmte Erweiterungen basierend auf einem Projekttyp. Mit denen können Sie tatsächlich
weitermachen. Visual Studio Code
macht nur Vorschläge, um Ihnen
zu helfen , basierend auf dem, woran
Sie gerade arbeiten, das bestmögliche Erlebnis zu erzielen. Hat eine Reihe
von Erweiterungen installiert. Du kannst hier sehen, dass
ich 45 Erweiterungen habe. Also gehen Sie einfach in soziale Netzwerke, Visual Studio
Codes, Vielseitigkeit, weil ich es für die
ARM-Vorlagenentwicklung verwendet habe. Ich habe es für die
Angular-Entwicklung verwendet, ich habe es für die
Azure-Entwicklung verwendet. Ich habe es für
einige Datenarbeitsmappen verwendet ,
die immer noch Azure sind, oder? Larve, PHP, Python. Dies sind alles Dinge, für die
ich es verwendet habe, und für
diese Dinge können Sie
es in Zukunft
verwenden für
diese Dinge können Sie
es in Zukunft wenn Sie sich weiterentwickeln und verschiedene Wege erkunden
möchten. Visual Studio Code
ist also fast wie eine All-in-One-IDE für
verschiedene Plattformen. Dies ist das erste Mal, dass
Sie Visual Studio Code verwenden. Ich ermutige Sie
, weiterzumachen und zu prüfen, wie es
andere Sprachen und andere
Frameworks unterstützt und wie Sie es zu Ihrem Vorteil nutzen
können. Nun, eine weitere Sache
, die ich möchte, Lassen Sie uns mit den Erweiterungen fortfahren. Eine andere Sache, auf die ich nur
hinweisen wollte , bevor wir echten Entwicklung beginnen die Tatsache, dass es über
ein eingebautes Terminal verfügt. Also vorher wissen wir alles was wir getan haben, um
das Projekt zu erstellen und so weiter. haben wir im nativen Terminal
unseres Betriebssystems gemacht. Während wir uns jedoch
in Visual Studio Code befinden, möchten
wir wahrscheinlich nicht zwischen Fenstern hin- und herspringen . Es hat praktischerweise ein Terminal für uns
enthalten. Sie können dorthin gelangen, indem Sie
die Tastenkombination verwenden , die hier steht. Oder Sie können natürlich einfach
darauf klicken und das öffnet ein Terminalfenster. Und dieses Terminalfenster
basiert auf Porsche. Aber rate mal was? Wir haben Optionen. Wir können also tatsächlich
mehrere Terminals gleichzeitig
laufen lassen. Also könnte ich tatsächlich
ein weiteres Terminalfenster hinzufügen. Und wenn ich eine wollte,
wäre das nur eine Eingabeaufforderung. Wenn ich eine wollte,
wäre das eine Bash und du
bekommst Git Bash, sobald wir
Git auf deinem Computer installiert haben. Und ich habe es schon einmal erwähnt, aber ich habe es dir nicht gezeigt. Du kannst also gut werden. Sie können also
den Bindestrich scm.com aufrufen, oder Sie können einfach googeln. Und ich bin mir sicher, das
erste Suchergebnis würde Ihnen diese Website geben. Sie können es unverändert für
verschiedene
Betriebssysteme herunterladen , auch plattformübergreifend. Sie können also
Windows, Mach, und Sie können es für
Ihre Linux-Distributionen bekommen. Und es ist eine native
Befehlszeilenschnittstelle, oder? Aber dann
haben Sie bestimmte Tools , die Ihnen
eine Benutzeroberfläche bieten können , und
Visual Studio Code ist
wiederum ein solches Tool
, mit dem Sie
hier verwandte Befehle ausführen können . In Ordnung? sind also Dinge, die wir wissen
können, wenn ich möchte, dass unsere Anwendung
hier mit der CLI
ausgeführt wird. Ich kann im Terminal und lass
mich einfach das Windows schließen, Terminalfenster,
die ich nicht benutze, diesen kleinen Mülleimer. Du kannst einfach darauf klicken,
um das Fenster zu schließen. Und ich springe zu den Eigenschaften für ihre Datei mit den
Raseneinstellungen. In Ordnung, also werde
ich Ihnen einen Rundgang durch
die Akte geben , damit Sie
alles verstehen , was passiert. Aber vorher
wollte ich mich nur auf diese Datei mit den
Zeileneinstellungen konzentrieren. Jetzt haben wir zwei Profile
von HTTP und HTTPS. Wenn wir möchten, dass
unsere Anwendung ausgeführt
wird, wird standardmäßig HDTP verwendet. Wenn ich dotnet run sage, würde
es tatsächlich
das HTTP-Profil und die Start- oder
HTTP-Version unserer Anwendung standardmäßig verwenden,
zitiere Unquote-Version. Es ist dieselbe
Version, derselbe Code, nur ein anderes
Sicherheitsverhalten. Wenn wir dann jedoch
mit der HTTP-Einstellung ausführen wollten, müssten wir dies in unserem Dotnet-Lauf
angeben. Also werde ich einfach dieses etwas größere
Terminalfenster
stummschalten . Und das können Sie tun, indem Sie die
Strg-Taste gedrückt halten und
Plus drücken , um die
Gesamtgröße Ihres Visual Studio zu erhöhen. Code, Benutzeroberfläche und Steuerung minus, um es zu
reduzieren, oder? Sie können also
damit herumspielen und
es an eine für Ihren Bildschirm geeignete
Größe anpassen . Und was
ist dann Dotnet Run noch? Und dann können sie
Bindestrich, Bindestrich und
Bindestrichprofil sehen und
dann angeben, dass
ich das HTTPS-Startprofil verwenden möchte. Oder wenn ich die Eingabetaste drücke, wird
es erstellt. Und es wird die
Terminalausgabe sehen, die unsere Anwendung
jetzt auf
unserem HTTP-Port und HTTP abhört , oder? Ich habe das nicht getan. Ein Teil davon würde immer noch laufen, aber es würde nur
den HTTP-Port 5246 abhören. Ordnung, das sind also
nur ein paar Kleinigkeiten. Wenn wir also bei gedrückter Maustaste auf diese URL klicken, wird unser Browser gestartet. Und dann können wir
hier sehen, dass dies
unsere MVC-Anwendung ist , die in
Visual Studio Code ausgeführt wird. In Ordnung, und wenn ich mit dem, was ich gerade
mache, fertig bin, kann
ich einfach Control
C benutzen, um es herunterzufahren. Also, wenn ich mit dem
Testen fertig bin und wieder
zum Code zurückkehren wollte und ich den laufenden
Server beenden möchte. Ich kann einfach C steuern und
dann wird es
heruntergefahren und ich werde
zur CLI-Schnittstelle zurückkehren. In Ordnung, das ist also ein netter,
kurzer und schmutziger
Überblick über Visual Studio Code und
was es für Sie tun kann. Es gibt noch weitere kleine
Kleinigkeiten, die wir unterwegs entdecken werden. Ich möchte Ihnen keine
Informationsflut geben. Ich wollte nur auf einige
der wichtigsten Dinge
für unsere Entwicklungsaufgaben
hinweisen . Und im Laufe der Zeit werden
wir mehr sehen. Kein nettes Feature. Es ist nicht unbedingt notwendig, aber es ist eines, das ich verwende. Und es wird wahrscheinlich
die Erfahrung beeinflussen, die Sie haben, basierend darauf, wie ich mein Ding mache. Aber ich verwende Autosave. Wenn Sie zu Datei gehen, werden Sie es auch tun. Wenn du nach unten
scrollst, siehst du Autosave, also siehst du, dass
es für mich angekreuzt ist. Das heißt, während ich tippe, speichert Visual Studio-Code meine Änderungen
automatisch. Und wenn Sie es aktivieren, werden
Sie eine
ähnliche Erfahrung machen. Andernfalls müssen Sie natürlich, nachdem
Sie Änderungen an unserer Datei vorgenommen
haben, sie entweder speichern
oder erstelle ich jedes Mal um die Spiegelung in
der Testumgebung zu sehen? Autosave kann also viel Zeit sparen. Wenn
es darum geht. Wir können auch unsere Einstellungen
ändern. Wenn Sie ein anderes
Farbthema verwenden möchten, ist es da, Sie können Ihr
Thema auf was ändern, ein helles oder ein dunkles. Ich werde mich also nicht von der Dunkelheit
ändern, aber du kannst die
wählen, die du magst. Sie können auch
Dinge wie Word oder höher aktivieren und Ihre
Schriftgröße in den Einstellungen ändern. Sie können die
Schriftart ändern, die Sie verwenden. Sie können die Schriftgröße ändern. Also meins ist 30. Rent weiß es. Wenn du es wissen willst oder mehr. Du kannst hier danach suchen
und du kannst es ändern, was sie wollen, ein- oder ausschalten. Ich habe es an. Wenn wir jetzt zurückkommen, werden
wir einen
Rundgang durch unsere Projektdateien machen.
12. Führung von Dateien und Ordnern: Okay Leute, lassen Sie uns jetzt
einen Rundgang durch unsere Projektdateien machen. Das ist also die Ebene mit
den geöffneten Einstellungen. Lassen Sie mich das schließen und
lassen Sie uns von vorne beginnen. Ich werde auch ein bisschen
hineinzoomen und das Terminal
schließen, damit wir mehr Platz
haben. Wissen. Der Bin-Ordner. Dies wird generiert, nachdem Sie ein Projekt erstellt haben, und es
speichert so
ziemlich die Ressourcen, die
Ihre Anwendung zum Laufen bringen, oder? Also im Wesentlichen, wenn
Sie in
Visual Studio F5 drücken oder den
Befehl.net dotnet run verwenden würden . Was passiert ist, dass, wenn
es sagt, dass
es erstellt wird, all
diese Dateien
und Assets kompiliert und in
diesen Bin-Ordner ablegt. Und dann wird
die Anwendung aus
diesem Bin-Ordner ausgeführt . Und dann ist das die
Manifestation, die Sie beim Testen als interaktiv sehen
würden. Auf der anderen Seite würden
beim Veröffentlichen auch ähnliche Assets erstellt,
und diese würden
Sie auf
dem Zielcomputer platzieren , wenn Sie
Ihre Anwendung bereitstellen. In Ordnung? Nein, dotnet
Core ist plattformübergreifend, sodass diese Assets
auf jedem Betriebssystem funktionieren, auf praktisch jedem
Servertyp , auf dem sie gehostet werden
müssen. In Ordnung, das
bekommen wir aus dem Bin-Ordner. Jetzt haben wir einen
der Schlüsselordner , den wir
bereits vor dem Build sofort einsatzbereit haben. Und das nennt man Controller. Jetzt haben wir im
Controller-Ordner die Controller. Und denken Sie daran, dass
Controller dazu da sind, den Ablauf
Ihrer Anwendung zu steuern, was bedeutet,
dass jede eingehende Anfrage über einen Controller geht. Und dann wird es bearbeitet
und Sie erhalten entweder einen Fehler, weil es nicht richtig
verarbeitet
werden kann, oder Sie gelangen tatsächlich zu oder Sie gelangen tatsächlich zu
der Seite, die Sie aufrufen möchten. Jedes Mal, wenn Sie auf unserer Website
navigieren, senden
Sie eine Anfrage
mit jedem Klick, Sie senden eine Anfrage,
wenn Sie das Ziel erreichen oder die erwarteten
Ergebnisse erhalten, dann erhalten Sie eine Antwort. Hoffentlich erhalten Sie die
Antwort, die Sie erwarten, oder Sie erhalten möglicherweise
eine Fehlerantwort. Ein Controller befindet sich also
zwischen
dieser Request-Antwort-Transaktion, oder? Wenn wir zum Beispiel
unsere Website ausführen und sie die Homepage
geladen
hat, ging sie
zum Home-Controller und dann
ging es standardmäßig
zur Indexaktion und dann zum Index
Aktionen ist eine Ansicht zurückgeben. Der Controller verfügt über ein
Register aller möglichen
Root-Anfragen , die er erfolgreich
erfüllen kann. Eine solche Anfrage, die geroutet werden
kann, ist der Index. Im Allgemeinen sollte Webentwicklung, Index immer Ihr erster Strand
sein. Mehr Server
werden versuchen,
zum Index dot HTML oder Punkt
PHP oder nicht SPX zu wechseln, oder? Unabhängig vom Dateityp
und vom Erweiterungstyp sucht
es immer nach einem Index. Zuerst. Home-Controller hat
eine sogenannte Aktion, eine registrierte Route
, Home-Controller weiß
, dass er gehen kann. Wenn Sie nach Hause gehen, sucht es
automatisch nach einem Index. Und wenn sie dann nach einem Index
sucht, definiert
diese Methode, was
passieren soll , wenn der
Index versucht zu werden, basierend auf dem Akkord und welcher
Magie wir wollen. Vielleicht möchten wir
Daten aus der Datenbank abrufen. Vielleicht möchten wir Berechnungen durchführen. All das machen wir
innerhalb dieser Methode. Mach Sachen. In Ordnung? Und wir lesen unseren ganzen Code, unsere Magie
und Logik hier. Und dann geben wir
das zurück, was wir die Ansicht nennen. Ordnung, wir
kommen also bald zum Ordner Views, aber Sie werden sehen, dass wir einen Views-Ordner
haben. Dies ist das C in der Steuerung von
MVC, dem Seas Controller. Das ist es also, was ein
Controller macht. Es nimmt die Anfrage entgegen, von der es heißt, dass sie die Anfrage
nicht erfüllen kann. Du willst, dass es in den Index geht? Ja, ich habe eine Indexaktion. Ich kann die Anfrage erfüllen. Folgendes muss ich tun, bevor Ihre Anfrage
erfülle oder
bevor ich Ihnen ein Ergebnis zeige. Dann gebe
ich in der letzten Zeile die Seite zurück, die Sie
angefordert haben, zusammen
mit allen zusätzlichen
Daten, die vorhanden sein müssen. Angesichts der Tatsache, dass
dies ein Standardcode ist, können
Sie sehen, dass
es sehr einfach ist. Es wird
einfach den pH-Wert zurückgeben. Es macht nichts Besonderes,
bevor es die Seite umblättert. Die Aussicht ist also das ultimative Ziel und dies wird in der Regel
die letzte Zeile in
Ihrer Aktion sein die letzte Zeile in , wenn
Sie Ihre eigene erstellen. Ein weiteres Ziel, das der Home-Controller
kennt, ist der Datenschutz. Für jedes Ziel
, das Sie sich wünschen, müssen
Sie also eine Aktion haben. Und diese
Aktion gibt eine Ansicht zurück oder
gibt eine Reaktion zurück, die den Erwartungen des
Benutzers entspricht. Sie haben auch
einen weiteren allgemeinen Mythos, Aktion namens Fehler, die ein Modell der
Fehleransicht zurückgibt. Also die Fehlerseite. Wenn Sie jetzt hier nachschauen, sehen Sie , dass dieser mehr tut. Erstens hat es einige Anmerkungen
, die sich mit Caching befassen. Darüber müssen wir uns keine
Sorgen machen, oder? Nein. Aber innerhalb der Methode sieht man, dass
sie ein bisschen mehr tut. Es heißt Rückansicht
und dann wird
Rückansicht mit diesen Daten angezeigt. Das ist also im Grunde
wie eine globale Fehlerseite. Wann immer es einen Fehler gibt, zumindest während des Debuggings, wird es verfolgen
, welche Fehler ausgestrahlt werden, welche Aktivitäten es
sind, und ermöglicht es Ihnen , ihn später
in Ihrer Anwendung
nachzuverfolgen. Das ist also etwas
fortgeschritteneres Zeug
, auf das ich nicht eingehen werde. Aber was ich hier wirklich
hervorheben wollte, ist, dass es Informationen hinzufügt
, die die Ansicht benötigt. Auf diese Weise geben wir
Informationen in die Ansicht weiter. Der Blick nach Hause
braucht keine Entzündung. Also mussten wir nichts
tun. Stimmt. Ich müsste
es nicht entzünden. Der Datenschutzverantwortliche
benötigte auch keine
zusätzlichen Informationen. Wenn die Fehlerseite jedoch
erscheinen soll, möchten
wir diese
zusätzlichen Informationen aus
dem Code dahinter übergeben , wenn
wir die Ansicht zurückgeben. Das ist also im Wesentlichen das,
was das tut. In Ordnung? Nein, ich bin nicht
bereit, MVC zu bestellen. Ich gehe hier in der Reihenfolge
der Ordnerstruktur vor. Die nächsten wären also die Modelle. Und ein Modell mit Modellfehleransicht ist das einzige Modell, das
wir auf unserem Foto haben. Nun, das Error View-Modell enthält diese beiden Eigenschaften und
so ziemlich unsere Modelle
Slash-View-Modelle, unsere Klassendateien, die die verschiedenen Datenbits
darstellen , die wir unserem Benutzer
anzeigen möchten, oder? Ein Modell verkörpert also Zeichenketten
in verschiedenen Datentypen, in Spool, Char usw. Was auch immer Sie auf Ihrer Seite
anzeigen müssen, es muss dynamisch sein. So ziemlich werden
Sie eine Klassendatei erstellen, die im Grunde die Rolle unseres Modells
spielen wird. Es ist nur der Unterricht. Nichts Besonderes,
wenn 0 p, nun, du willst keine Klassen haben
und du weißt, was
die Eigenschaften sind. Und was wir mit dem Controller
im Wesentlichen machen , ist,
dass wir die Daten festlegen. Das ist es also, was wir hier machen. Wir fügen die Daten tatsächlich in dieses Fehleransichtsmodell ein, oder wir erstellen ein
Objekt dieser Klasse. Und sobald wir ein Objekt
erstellt haben, die Eigenschaften
nicht mehr mit
den verschiedenen
Datenbits gefüllt , die eins sein werden. Also hier füllen wir
die Anforderungs-ID mit all diesen Informationen auf. Entweder sendet es das
entsprechend ID oder es sendet
den Trace-Identifier. Wenn das weiß, was es mit all dem füllen wird, dann wird es
ein Objekt davon zurückgeben. Die Ansicht hat jetzt also ein
Modell, das einige Daten enthält. Und die Ansicht weiß
bereits, wie man die Daten aus dem
Objekt
extrahiert und die des Benutzers anzeigt. In Ordnung. Das ist es also, was ein Modell
wirklich darstellt, es ist nur ein Objekt
einer Klasse, das Daten
speichert, die die
Ansicht verwenden wird. Der Controller ist
dafür verantwortlich
, dieses Objekt mit den Daten zu füllen,
bevor es in der Ansicht angezeigt wird. Obj, das ist einer dieser
beliebigen Ordner, auf die wir nicht unbedingt besonders
achten müssen. Auch hier gibt es nur
eine Menge generierter Dateien, mit denen wir nicht
oder zu oft interagieren. Also überspringe ich das. Wir haben uns die
Eigenschaften angesehen und uns die
Starteinstellungen der JSON-Datei angesehen. Also hier hat
es, wie der
Dateiname schon sagt, nur unterschiedliche
Konfigurationen für das Ganze, die Anwendung
sollte starten, oder? Wir haben also iOS-Einstellungen. Wenn wir mit
einer lokalen IIS Express-Instanz laufen wollten ,
würde sie auf diesem Port laufen. Aber Vizio, sorry.net hat einen
eigenen eingebauten Server. Wir
müssen uns also nicht unbedingt auf das verlassen was wir in der
Vergangenheit zum Ausdruck gebracht haben. So können wir
unsere eigenen Startprofile
in HTTP und HTTPS haben . Und dann können wir
bei Bedarf sogenannte
Umgebungsvariablen in die verschiedenen
Starteinstellungen einfügen. In Ordnung? sind also so
ziemlich die Einstellungen
, die sofort einsatzbereit sind. Und Sie
müssen
diese Datei nicht unbedingt ändern , es sei denn, Sie
wissen absolut , was Sie tun, und haben sehr spezifische Bedürfnisse hinter
Ihren Änderungen. Im Allgemeinen
können Sie diese Datei jedoch in Ruhe lassen. Gehen wir nun zu den Ansichten
und dem Ordner Views über. Es kann sehr interessant sein. Zuallererst werden Sie
feststellen, dass wir zwei haben. Wir haben
da einen Ordner namens Home. Jetzt habe ich den
Home-Controller
gleichzeitig geöffnet , sodass ich
Ihnen zeigen kann , was
das Dateisystem erwartet und wie
alles zusammenhängt. Sobald wir diese
Namenskonvention befolgen, haben
wir den Home-Controller. Wir haben also einen
Views-Ordner namens Home. Was Sie also feststellen werden,
ist, dass die MVC-Engine für immer den
Controller, den Sie erstellen , automatisch im Views-Controller
nach einem Ordner mit demselben Namen wie der Controller sucht. Ich möchte den gleichen Namen sagen. Ich meine, was vor
dem Wort Controller kommt. Aber das ist ein Benennungsmuster. Also, wenn wir den
Studenten-Controller hinzufügen. Dann wären es Studenten. Das ist der Name
des Controllers. Das Wort Controller, das erwartet wurde. Okay, du solltest also immer das Wort Controller
haben, aber was auch immer
davor kommt, das ist der Name. Es wird erwartet, dass anstelle
des Views-Ordners ein Ordner mit demselben Namen
angezeigt wird. Und dann wird in diesem
Ordner erwartet, dass
verschiedene CSS-HTML-Dateien angezeigt werden. CSS HTML ist also die Erweiterung für
Razor View-Dateien, oder? Und bevor ich darauf eingehe, wie eine
dieser Dateien aussieht, wollte
ich darauf hinweisen, dass
jeder Dateiname einem Aktionsnamen
entsprechen muss . Deshalb weiß
View, wenn wir zurückkehren, was zurückgegeben werden muss. In Ordnung, also lass mich das noch einmal
durchmachen. Wenn Sie eine Anfrage senden, wenn Sie
rechts auf einen Link klicken , klicken Sie auf einen Link, der
zu unserem Controller führen sollte. Der Controller bewertet den Link und prüft, ob er eine Aktion
enthält, die der URL
übereinstimmt,
die Sie aufrufen möchten. Wenn es eine Option gibt, geht
es zu dieser Aktion über,
führt die Magie
dieser Aktion aus
und versucht dann, eine Ansicht
zurückzugeben. Diese Ansicht, die es
zurückzugeben versucht die CSS-HTML-Datei, die er ist
die CSS-HTML-Datei, die er mit demselben
Namen für diese Aktion angegeben hat. Wenn Sie also eine
Anfrage senden und es keine Aktion gibt, die dieser Anfrage
entspricht, erhalten
Sie einen 404-Fehler. Wenn Sie eine
Auktion und Anfragen senden, tut es
mir leid, und es wird eine Option gefunden
, die der Anfrage entspricht. Und dann
versucht es, die Ansicht zurückzugeben und es kann die
passende Datei nicht finden Dann erhalten Sie eine
Fluorophor-Anfrage und das hält
im Grunde die
gesamte Website am Laufen. Das ist also im Wesentlichen die
Erfahrung, die Sie
erwarten können , wenn
Sie beim Erstellen Ihrer Website im Visier sind. Und wenn Sie
diese Namenskonvention einmal befolgt haben, werden
Sie kein Problem haben. Sie werden also hier sehen, dass ich Celsius HTML
indexiert habe. Ich habe einen Index als Aktion
für Datenschutz, Datenschutz. Es kann Ausnahmen von
der Regel geben , da hier ein Fehler vorliegt, aber
in diesem Ordner wird kein Fehler angezeigt. Tatsächlich liegt ein Fehler im
geteilten Ordner vor. Das ist in Ordnung. Im Allgemeinen
sollten Sie jedoch dem Muster
hinter Index
und Datenschutz folgen . Schauen wir uns nun an,
was in der Indexdatei enthalten ist. In der Indexdatei haben
wir so ziemlich eine
Mischung aus HTML und C-Sharp. In Ordnung, das ist also HTML. Das ist ein Code,
der scharf aussieht. Die CSS-HTML-Datei ist also wie
eine Hybriddatei, die es uns
ermöglicht, eine gewisse Menge C-Sharp
in diese HTML-Datei zu schreiben. Aber wirklich und wahrhaftig ist es
nur eine verherrlichte HTML-Datei. Wenn wir etwas Dynamisches brauchen
, können
wir C-Sharp einführen. Und um C-Sharp einzuführen, benötigen
wir nur ein Werbeschild. Und dann können wir anfangen, etwas zu
tippen, oder? Das ist C Sharp-Code. Also mal sehen, ich werde
das zuerst ausführen. Ich verwende meine
Tastenkombination Control Shift, Apostrophe hat
das Terminal gestartet, ich sage dotnet run und lass damit
unsere Anwendung starten. Also hier ist unsere
Bewerbung, oder? Und beachten Sie, dass es gegangen
ist, es hat nicht angegeben,
wohin es gehen wollte, aber es hat uns nur zur
Indexseite des
Home-Controllers weitergeleitet , oder? Wenn ich auf Datenschutz klicke,
dann sieh dir das an. Es heißt
Home Slash Privacy. Also, wer ist der Controller? Datenschutz war das A und O. Wenn ich versucht habe, zu, lass uns versuchen, versuchen wir es mit Index, dann geht es
zurück zur Startseite. Es kennt also den Home Slash Index. Aber wenn ich versuche,
nach Hause zu gehen,
meinen Namen zu streichen , erhalte
ich eine 404, weil für diese Route
keine Aktion
gefunden werden konnte. In Ordnung. Jetzt möchte ich
Ihnen zeigen, wie wir dieser Ansicht etwas
Dynamisches verleihen können. Also, wenn ich wollte, sagen
wir mal den Datumswert. Also ich kann sagen, wann die Urkunden unterzeichnet sind. Nein. Schau dir das an, UTC weiß es, Ordnung, und speichere das. Und ich mache einfach Control C im
Terminal, um es zu beenden. Drücken Sie dann einfach nach oben, um
den neuesten Ausführungsbefehl zu erhalten den neuesten Ausführungsbefehl und drücken Sie dann
erneut die Eingabetaste, sodass es neu gestartet wird. Und dann navigiere ich zurück
zur Website oder
aktualisiere es einfach und schaue mir das an. habe ich gerade hinzugefügt, oder? Das ist ein Zeitstempel,
der auf dem Code basiert, den ich gerade eingegeben habe, nämlich C-Sharp-Code,
Datetime, UTC wissen. Okay, das ist also, ja, es ist eine HTML-Datei, aber ich kann
meinen C-Sharp-Code eingeben. Wenn ich also möchte, dass das, sagen
wir, in einem H1-Tag ist, könnte
ich tatsächlich
ein HTML erstellen. Jeder Tag. Gib diese Zeit ein. Und dieses Mal gehe ich
zu Control C, um es zu beenden. Und dieses Mal werde ich einen
anderen Befehl verwenden. Anstatt Dotnet Run sage
ich Dotnet Watch. In Ordnung. Also sieh dir das jetzt an. Und ich sagte Dotnet Watch. Es wird mich wissen lassen, dass
es das tun wird, was sie Hot Reload
nennen. Hot Reload ist aktiviert. Lassen Sie mich nach oben scrollen, damit wir genau
sehen können, was darin steht. Hier. Es ist in Dotnet
Watch Hot Reload aktiviert. Und dann können wir eine
Liste anderer Optionen sehen. Dann sagen sie, benutze
Control R, um neu zu starten. Auf diese Weise müssen wir
, wenn
wir unsere Änderungen vornehmen, nicht anhalten und starten und anhalten und rennen und springen
und Punkt darauf laufen. Watch wird uns das
etwas leichter machen. Also, wenn ich zu meinem Browser zurückkehre, ist
hier die Datetime, die
als H1-Tag bekannt ist, oder? Wenn ich also mehr davon haben möchte, kann
ich einfach Control C, V verwenden. Und ich habe bemerkt, dass ich nicht markiert habe, als ich CV gesteuert
habe, ich habe einfach auf die Zeile geklickt, Control C, Control V. Es wird duplizieren Sie die Zeile.
Und bei jeder Änderung weiß ich,
dass sich die Datei
geändert hat , und es wird
ein Hot-Reload durchgeführt. Und wenn ich dann
zum Browser zurückkehre , ohne
anzuhalten und zu starten, ist
hier eine Frucht der Arbeit. Ordnung, also ich zeige Ihnen nur dass die View-Datei wirklich
nur eine verherrlichte HTML-Datei ist , die
es uns ermöglicht, bei Bedarf etwas
C-Sharp-Code einzufügen. Und aus diesem Grund können wir
, wenn wir ein Objekt mit Daten laden, tatsächlich
mit den Daten interagieren, die von
unserem C-Sharp-Objekt
direkt hier in unserer View-Datei kommen . Die Indexansicht ist ziemlich einfach. Lassen Sie mich das alles einfach entfernen. Wir haben die Sicht auf
die Privatsphäre, die nicht
spektakulärer ist. Außer hier werden Sie sehen
, dass sie die scharfe
Injektion durchführen , weil Sie den Titel
dynamisch von der
Seite, auf der Sie sich befinden, einstellen
können , und dann drucken sie einfach
diese dynamische Seite hier. In Ordnung. Wenn ich jetzt
zum gemeinsamen Ordner gehe, haben
wir die Layoutdatei oder die Layoutdatei. Verkleinern Sie die Ansicht ein wenig. Die Layoutdatei ist im Grunde
nur die Vorlage, anhand derer die
gesamte Website ableiten wird , wie sie aussehen
sollte. Wenn Sie feststellen, dass, wenn ich
zwischen Zuhause und Privatsphäre wechsle, alles statisch ist, außer dem, was sich zwischen der
Kopf- und Fußzeile befindet. In Ordnung, nun, alles sieht
konsistent aus und Konsistenz
ist sehr wichtig. Wenn Sie Websites
mit statischen Websites erstellen, müssten
Sie diese Navigationsleiste
und die Fußzeile sowie alle Elemente auf jeder einzelnen Seite manuell
kopieren und einfügen und die Fußzeile sowie alle Elemente auf jeder einzelnen Seite manuell
kopieren und . Wenn Sie eine Konsistenz wünschen, bietet
die Layoutseite
eine HTML-Vorlage. Sie werden feststellen, dass
die Ansichten nicht mit den
HTML-Tags und allem
beginnen. Und bei jedem WEBO
beginnen sie immer mit deinem Skelett. Wir haben jedoch das
Skeleton an einer Stelle, wir haben die DOCTYPE-HTML-Tags. Wir haben den Kopf und wir haben
den Körper in einer Datei. In Ordnung, wir
müssen das also nicht für
jede einzelne
View-Seite wiederholen , die wir erstellen. Aber im Inneren des
Körpers und wir haben das Navi, lass mich
die Teile einfach irgendwie zusammenbrechen, oder? Wir haben das Navi und dann
beginnen wir mit dem Container, in dem Sie normalerweise
anfangen, Ihre Inhalte zu platzieren. Dann haben wir das
und dann haben wir diesen Abschnitt namens Render Body. Renderkörper ist also der Ort, an dem die
Ansicht eingefügt wird. Deshalb ist
alles andere statisch, wenn wir die Seiten
wechseln ,
außer dem, was
sich im Körper befindet . In Ordnung? Dies ist der
Container-Bereich, Datenschutz. Das ist unser
Container-Abschnitt, der den Text abgibt,
weil er uns nur
die View-Datei oder den Inhalt
der View-Datei anzeigt die View-Datei oder den Inhalt
der , die basierend auf der Route
geladen wird. Alles
andere ist jedoch konsistent. Wenn ich nun
kleine Anpassungen
vornehme, wie zum Beispiel diesen Abschnitt umbenennen, wie zum Beispiel diesen Abschnitt umbenennen, alle Schritte machen, Lebensmittel und
Zwischenräume zwischen den Mitteln schaffen. Und das habe ich im Titel, der Navigationsleiste
sowie in der Fußzeile gemacht. Wenn wir uns hier umschauen, werden wir sehen, dass sich
alles geändert hat, oder? Und egal auf welcher Seite
wir uns befinden, es wird immer konsistent
sein. Nein. Ich denke, wir haben ein
gutes Verständnis unserer Ansichten und wir haben andere Dokumente, die eine unterstützende Rolle
spielen, auf die
wir später eingehen werden. Wir haben den Ordner Dub, Dub,
Dub Root
, der unsere Assets enthält. Also kommen wir mit diesem CSS. Dies ist unsere eigene CSS-Datei
, die eingebaut ist, sodass wir unser eigenes CSS erweitern und
schreiben
können, aber wir haben Site-CSS, mit dem
wir unsere eigene Site schreiben können, nur in das wir unsere
eigenen JavaScript-Dateien schreiben können. Und dann haben wir den Ordner lib , der Bibliotheken von Drittanbietern enthält. Also im Allgemeinen, wenn Sie Bibliotheken
von Drittanbietern installieren, wie es mit
Bootstrap- und jQuery-Ende sofort einsatzbereit ist. Diese Bibliotheken, dann solltest du
sie in einen Flip legen. Diese werden standardmäßig auch in unserer Layoutdatei
referenziert. Hier. Hier sehen Sie alle Skriptdateien, auf die verwiesen
wird, oder? In der Kopfzeile sehen Sie auch, alle CSS-Dateien als Schlüssel
referenziert werden. Und mit diesen, also haben
wir Bootstrap, wir haben uns für CSS entschieden, und dann haben wir eine
spezielle CSS-Datei , die
speziell für Layouts entwickelt wurde. Und Sie werden es hier mit dem Namen
layout.css sehen . Mit CSS können
wir noch
mehr CSS spezifisch für
die Layoutseite schreiben ,
ohne dass es global ist. Okay, als nächstes haben wir einige andere eingebaute Dateien und wir haben die App-Einstellungen für
diese JSON-Datei. Die entgegengesetzten Dinge,
wie die JSON-Datei, besteht also aus
zwei Teilen, sodass wir
andere Umgebungen und
spezifische Versionen erstellen können . Wenn wir also für die Entwicklung bestimmte Konfigurationen verwenden
möchten, können
wir sie dort festlegen,
im Vergleich zum Zeitpunkt der Veröffentlichung im Vergleich zum Testen
usw., die Basin-Umgebung. Wir können verschiedene haben. Wir werden
das im Laufe der Zeit ändern. also wissen, dass es sich um eine Schlüsseldatei handelt,
und Sie sollten
sehr vorsichtig mit
den Änderungen sein , die Sie hier vornehmen, denn wenn diese
schlecht geändert werden, wird Ihre App nicht ausgeführt. Dann haben wir unsere program.cs, die in jeder
C-Sharp-Anwendung enthalten ist. Program.cs ist die erste
Datei, die ausgeführt wird. Sobald die Anwendung ausgeführt
wird, wird sie nach program.cs
suchen. Was auch immer in dieser Datei enthalten ist, gibt den Ton dafür an, wie Ihre
Anwendung funktionieren wird. Und wenn wir sehen,
dass
es den Ton , fügen wir dem Container zunächst angibt, fügen wir dem Container zunächst Dienste
hinzu. Der Container wird so sein, wie die App verwendet, um zu wissen,
was sie kann und was nicht. Möchten Sie so viele
Dienste hinzufügen, wie wir benötigen
, damit dieser Container erstellt wird, bevor
die App erstellt wird. Also hier sehen wir
IDE-Unterstützung für Controller mit Ansichten, wir machen ein MVC braucht
unbedingt Controller
und Views, oder? Dann erstellen wir die App. Und dann gibt es einige
Checks, um zu sagen, okay, wenn wir in einer Entwicklungsumgebung
sind, oder wenn wir nicht in
der App-Entwicklung sind
, dann können wir diese Seite neu schreiben, vier Pfeile und wir können
HTTPS-Umleitung, richtig? Im Grunde bedeutet das also, dass Sie nichts
anderes als HTTPS,
Strict Transport
Security Hitter, verwenden können. Aber dann ist das normalerweise
für die Produktion. Deshalb steht es in
dieser If-Aussage. Wenn wir nicht in der Entwicklung sind, sollten Sie diesen
HTTPS-Transport-Header strikt einhalten, oder? Wir verwenden HTTPS,
die Umleitung. Sie werden hier also sehen,
dass immer dann eine Warnung erscheint
, wenn wir die HTTPS-Einstellung nicht
verwenden, das heißt, die
Umleitungs-Middleware befindet sich während unserer Warnung,
das ist diese. Das
nennen wir also Middleware. Das sind also
Mini-Apps, die wir der Anforderungspipeline
hinzugefügt haben . heißt, sobald meine Anfrage eingeht, sobald jemand auf eine URL klickt, wird er sagen, okay, was ist die Reihenfolge,
die ich machen sollte? Ich sollte zuerst Erich lesen,
um Erich auf HTTPS zu lesen Ich sollte statische Dateien verwenden, also diese Assets
aus dem Stammverzeichnis. Ich sollte Routing verwenden. Ich sollte versuchen, zu autorisieren, und dann sollte ich versuchen, eine Karte zu erstellen. Dann sollte ich weglaufen, oder? Das ist
so ziemlich die Reihenfolge, in der
alle Funktionen bei jeder Anfrage
aufgerufen werden Wir können unsere eigene Middleware hinzufügen. Wir können die Reihenfolge ändern, aber die Reihenfolge ist wichtig. Sie möchten also
sicherstellen, dass Sie beim Hinzufügen von Middlewares zu dieser Datei diese in
einer bestimmten Reihenfolge hinzufügen, in
einer bestimmten Reihenfolge hinzufügen je nachdem, wie
Ihre App funktionieren soll. Das ist es für die Tour, oder? Es wurden viele Informationen ausgetauscht. Sie möchten also
noch einmal herumspielen, Sie wissen schon, wie Sie
zusätzliche Projekte erstellen können. Wenn Sie ein zusätzliches
Projekt
erstellen und versuchen möchten ,
die Dateien durcheinander zu bringen und zu sehen, was
nicht mehr funktioniert und so weiter. Das ist eine gute Möglichkeit,
sich zurechtzufinden. Ich würde vorschlagen, dass
Sie mehrere
Projekte haben , die Sie in dieser Breite bearbeiten. Moment
haben wir jedoch alle Projektdateien
,
die für unser
Verständnis in dieser Phase unbedingt
erforderlich sind . In unserer nächsten Lektion werden
wir unser
Projekt auf GitHub hochladen.
13. Projekt zu GitHub hinzufügen: In Ordnung Leute, also lasst es uns wissen, treibt unser Projekt voran. Also verwenden wir das von uns erstellte Projekt
, um ein brandneues Repository
auf unserem GitHub-Konto zu erstellen. Dadurch wird auch eine
Verbindung zwischen unserer Visual Studio Code-Instanz
und der GitHub-Instanz hergestellt. Und das würde es uns ermöglichen, nach Bedarf zu
drücken und zu ziehen. Gehen Sie zur Registerkarte „
Quellcodeverwaltung“. Und Sie haben zwei Möglichkeiten ein Repository
zu initialisieren, das auf GitHub veröffentlicht wird. Was also passiert, ist, dass Sie, sobald Sie Git
auf Ihrem Computer installiert
haben, ein lokales
Quellcodeverwaltungssystem zugreifen können. Daher wird es auch als
verteiltes
Quellcodeverwaltungssystem bezeichnet . Auf Ihrem eigenen Computer können
Sie alle gewünschten Änderungen vornehmen, den
gesamten Verlauf,
alles, was Sie tun,
alles auf Ihrem Computer. Wenn Ihr
Computer jedoch
ausfällt, haben Sie kein Backup. Also die
Remote-Option, wie GitHub, wo wir es
einen Remote-Server nennen. Es könnte also
GitHub oder Bitbucket sein, es könnte Azure DevOps sein. Es könnte eine Maschine
in Ihrem Büro , auf der
installiert
wurde und die dem Team dient. Was auch immer es ist. Das
nennen wir einen Remote-Server. Das ist also das zentrale
Repository, in dem Sie und viele andere ihren
Code gleichzeitig pushen und speichern können. Sie haben also Ihre eigenen
lokalen Kopien sowie eine zentralisierte Kopie, auf die
jeder zugreifen kann. Bevor wir nun wirklich zum
zentralen Repository gehen, möchte
ich
etwas über die
Dateien erklären und welche Dateien wir eigentlich verfolgen wollen und nicht
während der Tour durch das Projekt, ich hätte darauf hingewiesen, dass es bestimmte Dateien
gibt aufgrund unserer Aktivitäten eher automatisch generiert
werden. Und das bedeutet, dass
wir sie nicht unbedingt in der Quellcodeverwaltung behalten
müssen. Oder die Quellenkontrolle ist der Laster, die Brände, mit denen wir die Veränderungen tatsächlich
geheilt haben. Das einzige
, was nachträglich
generiert wird, ist , dass
wir nicht unbedingt in der Quellcodeverwaltung nachverfolgen
müssen. Also all das, um zu sagen , dass es bestimmte
Verzeichnisse wie
OBJ gibt und dass
ich so schnell im Handumdrehen generiert werde. Stimmt. Also OB-GYN
hat das Debulk oder
die Release-Dateien und andere Assets, die
kompiliert werden. einen Dotnet-Build machen will unseren Dotnet-Lauf oder
den Dotnet Watch, sie werden generiert,
sodass wir sie nicht unbedingt Wer einen Dotnet-Build machen will,
unseren Dotnet-Lauf oder
den Dotnet Watch,
sie werden generiert,
sodass wir sie nicht unbedingt in der Quellcodeverwaltung
benötigen. Was also passiert, ist, dass Git Hub das Konzept
einer Gitignore-Datei hat oder
Git im Allgemeinen ein Konzept einer
Gitignore-Datei hat, in der wir
diese Datei generieren können , Verzeichnisse anzugeben.
die wir nicht wollen. Und da wir möglicherweise nicht unbedingt Experten für alle Verzeichnisse sind
,
die wir ignorieren dürfen oder die wir uns leisten können, zu ignorieren. Es gibt gute
Vorlagen, auf die wir zugreifen
können, um sie zu ignorieren . Unsere Dotnet-CLI ermöglicht es
uns, Dotnet New Git Ignore zu
generieren. Und dann wird
weitergemacht und
diese Gitignore-Datei auf
der Grundlage der Visual Studio-Vorlagen generiert . In Ordnung? Diese Visual
Studio-Vorlage weiß, dass für jedes Projekt, das auf Visual Studio
basiert, auf Slash Dotnet
basiert, diese Art
von Ordnern nicht enthalten sein muss. Sehen Sie sich hier die Massenversion an, Sie werden sehen, es war ein OBJ. Und das heißt, was
S groß oder gemein ist, oder wenn es
diese drei Buchstaben hat , dann sollen
wir es ignorieren. Das war es, was Visual stand. Das ist es, was diese
Gitignore-Datei
dir sagen wird , wenn
du sie sendest , um diese Dateien
und die Dateien in
diesen Verzeichnissen zu ignorieren . Ordnung, das ist also eine
sehr nette Möglichkeit,
Ihre Check-ins oder Ihre Kommentare
sehr präzise und präzise zu halten Ihre Check-ins oder Ihre Kommentare . Und Sie können hier sehen
, dass Sie
die neueste Vorlage von
diesem Ort auf GitHub erhalten können . In Ordnung, wenn wir jetzt
zurück zum Quellcontroller gehen, sagen
wir, auf GitHub veröffentlicht. An dieser Stelle wirst du
möglicherweise aufgefordert bei GitHub
zu authentifizieren,
also gibst du einfach deine
Anmeldeinformationen und alles andere an. Jetzt können wir sagen, ob
wir in einem privaten
oder öffentlichen Repository veröffentlichen
wollten . Privat bedeutet, dass Sie und
alle Personen, die Sie
Zugriff gewähren , darauf zugreifen
können. Ich kann also nicht auf
dein Profil gehen und es sehen. Und dann bedeutet öffentlich
, dass jeder, der auf Ihr
Profil
stößt, es sehen kann. Nun, zumindest würde
diese Übung dazu ermutigen, an die Öffentlichkeit zu gehen weil es
einfacher ist, sie zu teilen. Es macht es einfacher, der Welt zu
zeigen, was Sie getan
haben und woran
Sie arbeiten. Und die Leute könnten sogar nachschauen und Code-Reviews
durchführen und
dir dabei helfen, richtig? Also werde ich es öffentlich machen. Sobald wir auf Öffentlich klicken,
wird das veröffentlicht. Um für uns bereit zu sein, wird eine
automatische Commit-Nachricht eingefügt. Wenn wir also „Open on Getting“ sagen, wird GitHub
gestartet und
es werden
dir all deine Projektdateien angezeigt , die übernommen wurden. Und beachten Sie,
dass es
kein OBJ und keinen anderen Ordner gab, der möglicherweise automatisch generiert wurde. Ausgeschlossen, richtig, also wären
diese von R ignoriert
worden , ignoriere die Datei. Wir haben auch eine automatische
First-Commit-Nachricht erhalten. Und was passiert
, ist, wenn wir das tun, wenn wir unsere Änderungen vornehmen
und
die Änderungen dann an die
Source Control Engine senden wollen . Wir möchten eine
Zusammenfassung dessen, was wir getan haben, beifügen. Lassen Sie mich
hier in unserer Views-Datei eine kleine Änderung vornehmen. Ich ging runter, um
das Layout und die
DateTime hier zu teilen . Das Jahr hier ist also statisch. Was wäre, wenn ich möchte
, dass das dynamisch ist? Denn wenn es sich
im nächsten Jahr ändert, möchte
ich nicht kommen und
diese Datei manuell aktualisieren müssen . Also kann ich das ändern
, um die Uhrzeit zu sehen. Gedanken. Kein Ohr. Vorteil, hier schreiben oder C-Sharp schreiben
zu können. Also ich sage nur, gib mir das Datum und die Uhrzeit in diesem
Moment und was ist das Jahr. Und dann wird das dynamisch sein. Was auch immer die Zeit ist und was auch immer
passiert, unser wird
sich immer entsprechend ändern. In Ordnung? Sie können also Dotnet Run ausführen und einfach überprüfen, ob Sie
immer noch dasselbe Jahr sehen. Natürlich, und es funktioniert immer noch. Aber dann, wenn sich diese
Zahl erhöht,
wenn das Jahr inkrementiert wird, braucht
ihr euch natürlich wenn das Jahr inkrementiert wird, braucht keine Gedanken darüber zu machen, diese Nicht-Dualität zu
ändern. Das ist nur diese winzige Veränderung. Sie können sich
die visuellen Hinweise notieren , die
Sie sehen werden, wie diese kleinen Punkte und m.
Das bedeutet also, dass dies
jetzt eine Modifikatordatei ist. Also, als ich das letzte Mal diese ganze Datei
bekommen habe, sah
es so aus. Lassen Sie mich also sagen, dass
dies jetzt geändert wurde. Das heißt
, wenn ich
zu meinem Versionskontroll-Tab gehe, wird mir mitgeteilt, dass
ich eine ausstehende Änderung habe,
weil ich
mindestens eine Datei geändert habe. Jetzt kann ich sehen, was sich geändert hat. Sagen wir, ändern Sie die Fußzeile, das Jahr soll dynamisch sein. Das ist meine Commit-Botschaft. Jetzt kann ich Commit erstellen, wodurch die Änderungen
lokal in meiner lokalen Kopie
des GitHub-Repositorys gespeichert
würden . Ich kann auch Commit und
Push und Commit und Sink machen. Commit und Push bedeutet also, dass
ich lokal Commit übernehme und meine Änderungen an
das Remote-Repository übertrage, was in diesem Fall GitHub-Commit
ist. Und Sync sagt, dass ich lokal Commit durchführen, meine Änderungen auf GitHub
pushen und
versuchen
werde meine Änderungen auf GitHub
pushen und , alle Änderungen zu erhalten, die
möglicherweise auf GitHub waren. Und das ist perfekt
für unsere Teamsitzungen Gerade wenn mehrere
Personen
zum Remote-Repository beitragen , möchten
Sie immer über
die neuesten Änderungen verfügen. Sie können auch, bevor
Sie sich verpflichten und
unser Engagement vorantreiben , sehen auf den Liter
gezogen. Sie können diese drei Punkte also tatsächlich
verwenden. Ich kann Paul sagen. Und es wird schauen und sehen, okay, was sind sie? Dateien, die sich
im Remote-Repository geändert haben und
sich von Ihren unterscheiden? Lassen Sie mich diese Änderungen vornehmen. Manchmal kommt es zu
Konflikten, wenn zwei von Ihnen
dieselbe Datei geändert
haben könnten , oder? Sie könnten also in
einen Konflikt geraten. Hoffentlich wirst du damit nicht
enden. Aber im Grunde möchten Sie
immer
so viel wie möglich
die neueste Version haben . Sie möchten also unregelmäßige
Pools während der Arbeit machen. Aber dann drücke ich,
um deine Änderungen hochzuschicken. Okay, du willst also
immer ziehen, vielleicht erschrecken alle
Abstürze, bevor du pushst, denn das hilft dem Team. Allerdings, wo
Solarentwickler für diesen Kurs sind, gebe
ich Ihnen nur ein klares Ja, aber was wir tun können, ist
dieses Engagement und Push, da wir alleine arbeiten. Es wird also lokal kommen und dann werden
die Änderungen mit GitHub synchronisiert. Und wenn ich dann zurück zu
Git Hub gehe , um mir das
Repository anzusehen, aktualisiere ich. Dann wirst du hier
sehen, dass es
eine neue Commit-Nachricht gibt ,
die vor ein paar Sekunden eingegangen ist. Und Sie können einen Drilldown durchführen
und sehen, was sich geändert hat. Wir haben diese
Zeile in diese Zeile geändert. In Ordnung, das ist also die Stärke von Quellcodeverwaltungssystemen während Sie
Ihre Projekte erstellen. Wir werden also
regelmäßig
solche Check-ins durchführen und sicherstellen , dass wir
alle Änderungen, die wir im Laufe der Zeit
vornehmen, im Auge behalten .
14. Die Layoutdatei und Bootstrap verstehen: Ordnung Leute, also
in dieser Lektion möchte
ich, dass wir etwas
mehr Zeit damit verbringen, uns diesen kleinen
Blick von vorhin anzusehen. Und ich wollte nur auf einige
der wichtigsten Teile
hinweisen , die
Sie ändern können. Ändern Sie sicher, wenn Sie Ihre gesamte
Anwendung an Ihre Bedürfnisse
anpassen möchten. Fangen wir also mit
Zeile Nummer eins an. Wir haben also die Ladedatei. Und noch einmal, dies ist unsere HTML-Vorlagendatei
für unsere gesamte Website. Die verschiedenen Seiten müssen also
nicht mit allen HTML-Tags
beginnen mit allen HTML-Tags
beginnen wie wir es bei einer statischen Website tun würden. Dies ist eine dynamische Datei,
die sich um all das
für jedes neue Stück kümmert , das wir wollen. Es ist bereits mit
allen HTML5-Metatags
nachgerüstet . Und es beinhaltet auch Bootstrap. Also sofort erhalten wir Bootstrap mit unserer
MVC-Anwendung. Jetzt ist Bootstrap eine sehr
leistungsstarke UI-Bibliothek. Wenn du zum ersten Mal davon
hörst , ist das in Ordnung. Sie können sich also tatsächlich damit
vertraut
machen , indem Sie auf
bootstrap.com gehen. Das ist ihre offizielle Website. Und Sie werden hier sehen, dass
die neueste Version 5.2 ist.
Dies ist
die Version, die sofort mit unserem Paket und unserem Projekt geliefert wurde. Führen die sofort mit unserem Paket und unserem Projekt geliefert Sie Sie
stattdessen durch, wie
Sie es installieren würden. Aber das
alles müssen wir nicht tun, da es bereits in unserem Projekt enthalten
ist. Die Dokumentation ist
jedoch ausgezeichnet. Wenn Sie also etwas
darüber
wissen müssen, wie es funktioniert, können
Sie zu getbootstrap.com gehen
und dort wissen müssen, wie es funktioniert, können
Sie zu getbootstrap.com gehen blättern. Schauen wir uns also an, wie wir etwas
wie vielleicht die Navbar anpassen
können. Du könntest einfach hier suchen. Und Sie können Navi, Nav-Leiste sehen. Das ist fair genug Bar. Dann lassen sie Sie sich
erklären, wie es funktioniert. Also hier zu den Komponenten, die
Sie Navbar haben, sprechen
sie darüber, wie es funktioniert. Sie sagen dir den unterstützten
Inhalt und dies ist das allgemeine Codelayout, wenn du möchtest, dass
der Balken so aussieht. Das bedeutet also, dass der Barcode für alle, die
genug waren, hier beginnt und er sich zwischen diesen
Nav-Tags befindet, die auf Android geöffnet werden. Also für jeden Artikel
, den wir wollen, können
wir dort platzieren. Wenn wir also das Wort Navbar wollen, das ist unsere
Navbar-Marke, wenn wir stattdessen ein Bild dort hätten, könnten wir das Bild
platzieren, nun, rate mal was? Wir haben auch diesen Abschnitt. tut mir leid. Wir haben auch diesen Abschnitt. Hier haben wir diesen
Ankertag, die Marke Navbar. Sie werden also sehen, dass
Bootstrap wirklich
nur ein Haufen
Klassen ist , die ich für uns
entwickelt habe , um
uns zu helfen, Dinge schneller zu machen,
weil es
Dinge gibt , die wir
immer tun wollen. Wann immer wir eine
Webanwendung haben, gibt es Farben, wir wollen immer ihre
bestimmten Stile. Wir wollen immer, dass die Jungs bei Bootstrap die Leute sind, die Bootstrap entwickelt
haben, nachdem sie jahrelang immer wieder
dasselbe gemacht haben. Sie haben eine verherrlichte CSS-Datei erstellt. Ordnung, eine riesige CSS-Datei, das ist diese CSS-Datei, die wir
in unsere Dub, Dub Roots
Lib, Bootstrap, CSS aufgenommen haben . Und dann werden Sie sehen, dass es dort
keine Puffer gibt, aber der, auf den Sie sich konzentrieren
möchten, wäre das main.css- oder das Punkt-CSS. In Ordnung? Dot Min ist nur eine verkleinerte
Version dieses CSS. Aber der Punkt ist, dass dies nur eine große CSS-Datei
ist. Schau dir das an,
die ganze CSS-Datei, ein CSS-Code und das Styling, richtig, nur damit wir es nicht immer wieder machen
müssen. Wir können einfach ihr
Stylesheet verwenden und
ihr Fachwissen und
ihre harte Arbeit nutzen . Okay, das ist also das ganze
Wochenende personalisierbar genug. Wenn wir ein
Bild hinzufügen wollten, das das zeigt, okay, wenn du ein
Bild möchtest, könntest du
das stattdessen tun und dein Logo hinzufügen. Ich glaube nicht, dass wir
ein Logo verwenden werden, aber ich
würde mir die Farbschemata ansehen. Okay, los geht's, also
kannst du die Farbe ändern. Wir haben also drei Möglichkeiten. Wir haben Dunkelblau
und wir haben Licht. In Ordnung? Hier zeigt dies die Klassen
, die wir für jede Klasse verwenden können. Also im Nav-Tag, wenn ich zurück zu meinem
Layout, CSS-HTML-Datei,
meinem Nav-Tag, springe , sobald ich es sehe, verwende
derzeit
Navbar-Bindestrichlicht. Okay, also wenn ich
das dunkle Theme wollte oder das sehen
müsste, ist Navbar-Bindestrich dunkel. Oh, nun, das ist die Grundschule, also werde
ich die blaue bekommen. Also, wenn ich dunkel wollte, würde
ich dieses benutzen. Also wenn ich hier rüber gehe und
sie es nur von Navbar
Hyphen Light und BG White
bis Navbar Hyphen
Dark und Biji Dark wusste Hyphen Light und BG White . Und wenn ich mir das
dann ansehe, hat
es mein Terminal
Control Shift und
Apostrophe und dann Dotnet gestartet . Ich sage einfach Dotnet Watch. Nun, sieh dir die Navbar
an, nun, weißt du was? Nein, meine Texte können nicht gesehen werden. Stimmt. Weil Zuhause hier sein sollte
und Privatsphäre hier sein sollte. Aber das ist schwarz auf schwarz, also kannst du es sehen. In Ordnung, lassen Sie uns sehen, was
Bootstrap empfehlen würde. Also würden sie empfehlen, nun ja, sie sagen
mir nicht, wie man den Text
hier weiß schreibt, oder? Aber dann kann ich nach verschiedenen Farben
für Text suchen . In Ordnung? Ich scrolle nur,
weil ich sehe, ich versuche zu sehen, ob sie hier irgendwelche Beispiele
haben, das ist das eine. Das ist in Ordnung. Aber wenn ich ändern
möchte, wie mein Text aussieht, haben
sie einen Abschnitt
namens Topographie. Los geht's, Typografie wird
unter dem Inhalt rot. Und dann erzählen sie uns hier die verschiedenen Stile
, die wir verwenden können. Wenn Sie also einfach Ihr H1-Tag
bootstrappen lassen, sehen
Ihre HDLs automatisch
so aus. Sie können sehen, dass sie wie Displays
aussehen,
indem Sie die Klassenanzeige
eins bis sechs verwenden. Das ist cool, aber ich bin eher auf
verschiedene Farben aus. Und es tut mir leid, das
steht nicht an der Topographie, das sollte nicht an den Farben liegen. Lassen Sie uns also aufspringen, um die Farbe anzupassen
und uns die Farbe anzusehen, oder? Hier sind die verschiedenen Farben. Das Coole
an Bootstrap ist, dass es sehr konsistent ist. Also,
wenn du Primary machst , weißt du, wirst du diesen Blauton
bekommen, sekundäre, diesen Grauton ,
Seide sagt Gefahr usw. usw. usw. Also Licht gibt
uns ein leichtes Grau, allgemein leicht weiße Farbe. Und Sie werden sehen, dass Sie eine ganze Farbpalette
haben. Wenn Sie die
Farben dazwischen haben möchten, können
Sie all
diese Farben erhalten,
ohne die tatsächliche,
ich habe Kopfschmerzen oder die
RGB-Kombination kennen zu müssen . Das macht
es so praktisch. Okay, wenn ich möchte, dass
meine Texte diese
bestimmte Farbe haben, kann
ich in meinem Code zu
den Nav-Elementen wechseln , die Sie hier
einer Klasse sehen, oder im Nav-Element, im Nav-Element und dann
in das Nav-Element von das Ankertag, das tatsächlich das Routing
darstellt, oder? Was das ist,
B, Kontrolle und Aktion
, erkläre ich später. Ich möchte mich jetzt nicht darauf
konzentrieren, aber ich möchte
die Farbe meines Textes ändern. Also werde ich
dieses Ankertag, das
den Klassen-Nav-Link enthält, von
dunklen Textbindestrichen
zu hellen Textbindestrichen ändern den Klassen-Nav-Link enthält, von
dunklen Textbindestrichen . In Ordnung. Jetzt, wo ich diese Datei geändert habe und sie im laufenden Betrieb neu geladen wurde, lassen Sie mich wieder hinüberspringen. Und Bum. Nein, es ist Text, Armaturenbrett. Sehen Sie, dass es so einfach ist, die Farbe zu
ändern, sobald ich mit den
verschiedenen Klassen
und den verschiedenen
Farben, die mir in Bootstrap
zur Verfügung stehen,
vertraut und den verschiedenen
Farben, die mir in Bootstrap
zur Verfügung stehen , Es ist für mich einfach, einfach
zu wechseln zwischen Stylings, wenn ich muss.
15. Die Homepage ändern: In Ordnung, also was
wir tun werden,
ist unsere Homepage zu ändern. Zurück zu unserem
Bootstrap-Dokument kann
ich zwei Beispiele überspringen. Ich öffne
das einfach in einem neuen Tab. Und anhand der Beispiele sehen Sie hier, dass sie
verschiedene Arten von
Abschnitten haben , die Sie zu Ihrer Website hinzufügen
können. Also, wie möchten Sie, dass Ihr Foto die Qualität hat, von der
Sie möchten, dass es aussieht? Anders. Hero Laos,
Features, Nägel usw. Sie haben sogar ganze
Seiten, die du verwenden
könntest und ich kann diese
anwenden. Es hat also eingebaute Steuerungen
wie ein Karussell, oder? Sie könnten diese
Anmeldevorlage für Ihre Website verwenden. Du könntest all
diese Dinge gebrauchen, oder? Es geht nur darum zu wissen,
wo der Code platziert werden muss. Das sind also verschiedene
Filter, die Sie nutzen können. Dies sind verschiedene
Header. Du könntest gebrauchen. Helden, Helden-Sektionen, richtig? Basierend auf der Art der
Website, die Sie erstellen. Ich werde jedoch diese
Karussellvorlage verwenden. Ich denke, das wäre
ein nettes Homepage-Layout für unser
Schulverwaltungssystem. Oder wir können einfach
ein paar Bilder einfügen
und bei Bedarf zusätzliche
Texte einfügen. Um die Quelle, die
ich benötige, von dieser Seite zu erhalten. Ich klicke mit rechten Maustaste und gehe
zu Seitenquelle anzeigen. Und ich denke,
Seitenquelle anzeigen sollte eine Option
sein, die jeder Browser, jeder moderne Browser hat, oder? Von hier aus sehe ich
die vollständige HTML-Seite, wir wissen
, dass wir nicht alles
brauchen, weil wir nur
unsere Homepage modifizieren, also brauche ich nicht alles. Ich brauche diese, du weißt schon, diese Tags nicht. Ich brauche nur diesen Abschnitt, der für die Ansicht
benötigt wird , oder? Wir können den Stil verwenden , weil ich denke, dass diese Stile einzigartig für die PID
sind. Also lasst uns
diese Stile ausleihen, oder? Ich werde sie jedoch nicht
in ein Style-Tag stecken. Stattdessen werde
ich sie in unsere
CSS-Datei für unsere Website einfügen. Ordnung, also diese
Styles können da reingehen. Und was passiert ist, dass, wenn
Sie Bootstrap erweitern
möchten, was hier
passieren würde. Wenn Sie Bootstrap
erweitern möchten, würden
Sie
die Bootstrap-Datei nicht ändern. Sie würden einfach Stile schreiben , die den vorhandenen überschreiben. In Ordnung, also weiter
geht es mit Dash Light. Wenn Sie möchten, dass es eine andere Farbe hat, können
Sie es in Ihre eigene Klasse,
in Ihre eigene CSS-Datei einfügen und sehen,
dass der Punkt Dash Light annimmt. Und dann
nimmt das Einsetzen deiner eigenen vielleicht Farbe an oder was auch
immer du ändern wolltest. Und dann
überschreibt es diese Datei, diese Klasse in der
ursprünglichen Bootstrap-Datei. Ordnung, also ich trage nur diese Styles, weil wir sie
vielleicht brauchen könnten, natürlich. Und dann
scrolle ich nach unten, um zu sehen , wo der Inhalt beginnt. Also der Inhalt, oder, und es gibt tatsächlich auch
benutzerdefinierte Stile für diese Vorlage. Lass mich
das einfach ansehen und ich werde mir die auch
ausleihen. In Ordnung? Weil ich diese gebraucht habe, damit die Seite wie die Demo aussieht. Also leihe ich mir das einfach aus. Sie können natürlich mehrere
CSS-Dateien haben, aber ich werde diese
Seiten-CSS-Datei mit all diesen benutzerdefinierten Stilen erstellen. In Ordnung? Ich ermutige Sie
auch, sich
die verschiedenen Stile durchzulesen ,
denn hier werden Sie sehen, dass es sich um einen Körperstil handelt. Und dieser Körperstil könnte dazu führen, dass wir unseren
bestehenden Körperstil überschreiben. Es könnte also sein, dass
Sie sie zusammenführen. Du könntest
es auch einfach hier belassen, du wirst sehen, dass es eine
Polsterung unten
und eine Polsterung oben hinzufügt. Also unser ursprüngliches,
das einen unteren Rand hinzufügt, aber wir werden sehen, wie sie
zusammenspielen , und dann entsprechende
Anpassungen vornehmen. In Ordnung? Also haben wir das, wir haben das CSS für
unser Eins des pH-Werts. Ordnung, wir kommen langsam aber sicher
dorthin. Als Nächstes möchte ich
diesen Abschnitt verwenden,
der den Inhalt enthält, den ich benötige. Also fange ich mit
dem Karussell an, denn
denken Sie daran, dass wir bereits
einen mittleren Abschnitt in unserem Layout haben . Es ist also wichtig,
diese Dinge zu beachten, oder? Ich habe das Div, das
ist der Container, und dann habe ich diesen Main. Und dann möchte ich den Körper
rendern und der Körper wird mir die Ansichten
zeigen. Was ich also tun möchte, ist den Inhalt in der Ansicht durch
den Inhalt zu
ersetzen , den ich benötige, oder? Also würde der Inhalt, den ich für
die Ansicht benötige , tatsächlich nach diesem
gemeinen Tag
beginnen und so weit gehen,
wie das heißt Todd? Nun, hier ist das Haupt-Tag, aber das ist hinter der Fußzeile. Ich brauche keine Fußzeile. Schon. Habe eine Fußzeile. Stimmt. Also müsste ich den
ganzen Weg bis hierher kommen. Lassen Sie mich das
Kopieren und Einfügen nehmen und ich füge es in
meine Indexpunkt-HTML-Datei ein. Okay, lass mich ein bisschen
herauszoomen, damit wir sehen können es ein bisschen bitterer Winkel ist, oder? Also hier ist unser Karussell. Und wenn Sie noch einmal eine Dokumentation
zum Karussell wünschen , können
Sie die Dokumentation jederzeit auf der Bootstrap-Website
abrufen. Es befindet sich unter Komponenten. Und sobald sich meine Augen
angepasst haben und noch einmal, wenn du das alles nicht
durchgehen willst, kannst
du immer
karussell suchen, was funktioniert. Es war genau dort. Also wie es funktioniert und dann wirst
du hier sehen, dass dies Beispiele dafür sind, wo
du ein Karussell bekommen kannst. In Ordnung? Wenn Sie ein Karussell mit
Bach-Tasten und
Vorwärtstasten wollen , nun, hier ist der Code, der
Ihnen zeigt, was Sie durch Ellipsen ersetzen
müssen, oder? Und das ist eins zu eins
und das ist auch wichtig. Wenn Sie mehr möchten, fügen Sie
einfach mehr Folien
hinzu, fügen Sie weitere Abschnitte wie diesen für jedes gewünschte Karussellelement
oder Bild hinzu. Sie sehen also, es ist
sehr, sehr flexibel. Das Beispiel, das ich kopiert habe,
verwendet also genau das
Beispiel, wo ich es habe, dieses hat tatsächlich Schaltflächen. Dieser hat
Platzhaltertext, sodass ich Bildunterschriften hinzufügen kann. Hier sind meine Bildunterschriften. Und dann
habe ich bei jedem Artikel die Möglichkeit, das Bild
zu ändern. Sehr geehrter Herr, ich
weiß, dass er nur
einige SVGs von Monday Incidents verwendet , die wir irgendwann ändern können. Dann haben wir die
Navigationstasten. Wir haben auch einige Abschnitte,
in denen sie okay,
div class haben und sie nennen
es Marketingkurs. Hier ist Marketing, von
dem ich sicher bin, dass es sich um einen
der Kurse handelt , die
wir uns ausgeliehen haben. Da haben wir's. Marketinginhalte. Hier ist die Klasse des Marketings. Wenn wir es also anpassen, an unsere Bedürfnisse
anpassen müssten , könnten
wir all
das ändern, wenn wir wollten. Es gibt viele
Platzhalter und Bilder, sodass wir
diese natürlich ausfüllen können Dann haben Sie den
Funktionsteiler und wir können hinzufügen, was immer
Sie wollen. Jetzt, wo wir diese Anpassung vorgenommen haben und
ich immer noch
eine Dotnet-Uhr mache, nur für den
Fall,
dass eine Dotnet-Uhr mache, nur für den
Fall Sie die
Dotnet-Uhr seit der letzten Lektion gestoppt haben, können Sie einfach
eine Dotnet-Uhr starten. Aber wenn wir zur Vorschau unserer Seite
springen , bekommen wir genau das. In Ordnung? Jetzt
werden
natürlich ein paar Anpassungen erforderlich sein, denn
hier sehen wir, dass wir oben eine Polsterung
haben, die wir nicht wollen. Wir wollen diese
Polsterung nicht über unserer Navigationsleiste haben. Also springe ich wieder
rüber und
modifiziere das CSS. Deshalb habe ich
gesagt, dass wir auf das CSS
achten und
wissen müssen das CSS
achten und , was wir
hinzufügen und ändern. Also nehme ich das
ganze Polster. Und wenn ich es einmal gesehen habe, ist
das alles was ich weiß. Es sieht normal aus, okay? Und dann
sieht für mich alles andere gut aus, oder? Wir können also eine mittig
ausgerichtete Beschriftung haben. Wir können eine
ausgerichtete Beschriftung überschreiben. Wir können eine
linksbündige Bildunterschrift haben. Und das sind natürlich
Bilder, die wir ändern können. Alles. Dies sind
Textsammlungen, die wir ändern können. Und wir können unsere
Inhalte
nach Bedarf einfügen , wo ich normalerweise
einige Bilder bekomme, ist pixabay.com. Es ist eine hervorragende Quelle für einige nette Bilder, wenn
wir sie nicht
kommerziell verwenden oder
dem Künstler
oder wem auch immer Bildnachweis geben . Also kann ich einige
dieser Bilder machen. Und was ich tun werde ist, dass ich sie
nicht herunterlade. Ich löse sie einfach. Ich werde sie nicht herunterladen, aber wir haben die Möglichkeit, eines herunterzuladen und Ihnen
zu zeigen, wie wir ein
Bild in unser Projekt einfügen. Aber ich werde die anderen
beiden einfach direkt von der
Website einbetten , damit ich sie
kostenlos herunterladen kann , und ich lade das dünne TPR 12 80-Bild herunter. Sie können es auch reduzieren. Also nehmen wir für diesen einen 12
80 mal 853. Blackboard, nein, ich bin kein Roboter. Natürlich durch die Mädels. Laden Sie dann die Datei herunter. Alles. Was ich jetzt gerne mache, ist
die Datei aus dem Browser
in den Visual Studio-Code zu ziehen die Datei aus dem Browser
in den und nichts, was eine sehr, sehr coole Funktion ist, die man
nutzen kann, oder? Sobald diese Datei heruntergeladen ist, kann
ich sie ziehen und dann in
Visual Studio Code
ablegen. Und wo ich will, ist es im echten Root-Ordner von Dub Dub. Und als Erweiterung würde ich es in einem Bilderordner haben
wollen, also habe ich es einfach rübergezogen. Es geht darum, Dub,
Dub Roots zu kennen. In Ordnung. Ich will aber nicht, dass
es dort sitzt, alles ist organisiert.
Ich möchte organisiert bleiben. Also klicke mit der
rechten Maustaste auf Dub, Dub, Dub Root erstellt einen neuen Ordner, ich nenne ihn Images. Und dann kann ich das
Bild da hineinziehen. Dann würde ich das Bild umbenennen. Also vergewissere dich in meinem Webkurs
immer, dass es
am besten ist,
das Bild so bequem
wie möglich umzubenennen . Also Blackboard. Ordnung, das ist der Name des Bildes,
das ich aus meiner Sicht gesehen habe. Ich kann es ändern. Lass mich etwas herauszoomen, damit ich etwas schneller navigieren
kann. Ich kann jetzt das Bild ändern
, das in
einem meiner Karussellelemente verwendet wird , die das erste Auto
aufgeführt haben, sodass Artikel dieses SVG verwendet.
Ich will dieses SVG nicht. Also werde ich mir
eine Kombination ansehen, wie es aussehen
sollte. Also so
sollte das Bild des
Karussellobjekts im Code aussehen. In Ordnung? Wieder einmal
verwendet er in den Beispielen
verständlicherweise nur eine Reihe von Platzhaltern , aber ich werde das verwenden und dieses SVG
ersetzen. Und dann werde
ich für das Bild SRC Tilde dort platzieren. Also bis zum, das ist
das spanische Symbol. Und
informiere dich einfach darüber, woher ich
diese Informationen habe. Wenn ich zurück zu meinem
Layout springe, wirst du hier sehen,
das ist alles, was wir referenzieren,
eine Datei, die sich
im Ordner lib in den
Dub-, Dub-, Dub-Roots befindet , richtig, also live
jQuery, jQuery min, hier ist jQuery, hier ist das, hier ist die Datei. In Ordnung. Wenn ich also ein Bild aus dem
Bilderordner und denselben Dub, Dub, Dub Root haben
möchte, muss ich sagen, es ist Tilde Slash. Und dann gehen wir auf
den, auf den Pfad, also Bilder schlitzen, Schrägstrich. Und dann sage ich
Black Board, Dots, GP. In Ordnung? Und dann mache ich
es zur Alternative, sieh einfach ein Tafelbild an. In Ordnung. Wenn ich nun zu
meiner Ansicht zurückkehre, lassen Sie mich etwas auffrischen. Ordnung, da ist also
unsere Homepage. Wissen Sie, dass wir die
Tafel haben, oder? Einmal, wenn ich die Überschrift
ändern wollte, also für die Überschrift
des Textes hier, Beispiel Überschrift, School
of Management System. In Ordnung, also
repräsentative Texte. Sie sehen also, ich
nehme nur vorhandenen Code, ich modifiziere ihn nach
Hawaii, ich brauche ihn. Und manchmal fangen
wir so an, bis wir immer
kreativer werden und uns immer
wohler fühlen. Das beste
Schulmanagementsystem, das auf ESP,
dotnet, MVC, Alright, b.net,
Core six basiert dotnet, MVC, Alright, b.net, , das sind sieben. Denn was wir tun,
ist wiederverwendbar, in Ordnung, sobald ich mein Wissen
über das Management habe, in
Ordnung, los geht's. Also kein Schulmanagementsystem, Vesikelmanagementsystem. Melden Sie sich noch heute an. Das bringt nichts, aber
ich finde es nett , es dort abzulegen, falls Sie
Ihr Produkt bauen. Das ist also unsere erste Folie. Sie können also tatsächlich dieselben Schritte mit
den
anderen Bildern ausführen, wenn Sie möchten. Als ich sagte, dass ich sie nicht herunterladen
werde, was ich vorhatte, als ich sagte, dass es kopiert wurde, war
der Bild-Link. Sobald ich den Bild-Link kopiert habe, ist
es ein direkter Link
zum gehosteten Bild, sodass ich ihn nicht kopieren muss. Es ist ein CDN, also könnte ich es einfach einbetten, ohne es
herunterzuladen. Also, wenn ich zum nächsten
Karussell-Element gehe und
dieses SVG-Tag durch
dieses Bild-Tag ersetze . Und dann werde
ich für das SRC diesen CDN-Link verwenden. In Ordnung? Und das habe ich dort platziert. In Ordnung? Und dann wird
dieses Bild ein Geometriebild sein. Also, wenn ich zurückgehe
und nachschaue, okay, hier ist unser Blackboard und dann ist
hier unser Geometriebild. Und dieser ist ziemlich laut. Vielleicht möchten Sie mit der Bildunterschrift
abschätzen, wie es mit
der Bildunterschrift spielt , oder? Und dann Kinder in Indien? Ja, Bildlink kopieren. Und wir wollen
eine gewisse Repräsentation
der Kinder, die
an dieser Schule sein werden, oder? Das ist also die letzte
Änderung, die ich
vornehme , und ich
schlachte sie nur ein
bisschen ab , bis ich mich orientieren kann. Stimmt. Also los geht's. Und lass es einfach sein, dass
wir unsere Homepage so
geändert haben , ungefähr so
aussieht, wie wir es wollen. In Ordnung. Ich werde auch einfach
den Untertitelbereich aus
dem Geometriebild entfernen . Ich glaube nicht, dass wir diese
Bildunterschrift brauchen. Das braucht am wenigsten. Also werde ich
die beiden P-Tags entfernen,
die nur die H1- und die P-Tags sind . Und ich lasse
die Schaltfläche mit der Aufschrift „Mehr erfahren“ stehen, oder? Und für die Kinder, eine, intelligente Schüler. In Ordnung? Und aus der
ganzen Welt. In Ordnung. Ich zeige nur, ich weiß,
wir können in der Galerie stöbern. Nett. Also ich denke, das
ist eigentlich die perfekte
Startvorlagenseite für diese Art von System. In Ordnung. Ich muss ein intelligenter
Student mit dieser Schreibweise sein. Ich entschuldige mich bei Lead Chant. Da haben wir's. In Ordnung, also gehe
ich, ich überlasse es Ihnen, den Rest
dieser Abschnitte
anzupassen, oder? Und es geht wirklich
nur darum, den Code
anzusehen und
darauf zu achten. Ordnung, also wenn du einfach durchscrollst
und es dir ansiehst, hier ist der Marketingbereich. Hier sind die Platzhalter, SVG. Sie können diese durch
Ihre eigenen Bilder ersetzen , die
Sie
in diesen kleinen Kreisen haben möchten . Hier ist die Überschrift, hier ist der Text unter der Überschrift und da ist die Schaltfläche „
Details anzeigen“, oder? Abhängig von der Art des
Produkts, das Sie entwickeln, können
Sie diese
Abschnitte modifizieren, um
besser auf Ihre
Bedürfnisse zugeschnitten zu sein . Sie könnten diesen Abschnitt auch einfach
entfernen. Es könnte sein, dass Sie
diesen Abschnitt auf der Website nicht möchten . Ich weiß, dass wir bereits wissen,
wie wir unsere Bilder hinzufügen können. Also für diese 500 mal
500 Platzhalter hier noch einmal
die SVG-Tags
, die wir ersetzen können. Ordnung, also mach weiter und erkunde es und
hab Spaß damit.
16. Eine Über uns Seite hinzufügen: Ordnung Leute, in
dieser Lektion werden
wir uns ansehen, wie wir unsere eigene Seite erstellen
können. Im Moment haben wir also ein
Zuhause, wo ich Privatsphäre habe oder was wäre, wenn wir
eine Seite über uns wollen? Wie fügen wir das hinzu? Lassen Sie uns also zurück
zu Visual Studio Code springen. Und ich werde mit einem Controller
beginnen. Wir haben den
Home-Controller und wir wissen, dass der Home-Controller
es uns ermöglicht, zu navigieren, zu indexieren und den Datenschutz zu gewährleisten. Und wir haben die
dritte Optionstaste. Alles, was wir brauchen,
ist unser eigenes, kein eingebautes, oder? Also werde ich zunächst Ergebnisse für
öffentliche Aktionen erstellen Ergebnisse für
öffentliche Aktionen den Vorlagen
der vorherigen
folge. Und dann nenne
ich es ein Boot. Das heißt, ich will
eine Seite namens Boot. In Ordnung, also der Sauerstoff
braucht man, um ein Boot zu sehen. Und dann muss jede Methode mit
Aktionsergebnissen wieder sichtbar werden. Ich würde das gerne einfach machen. Das ist das Skelett
, das ich zuerst mache. Bevor ich anfange, die Magie zu
schreiben. Garden sagte, das
ist eine einfache Grube, also wird es
in dieser speziellen Grube keine Magie geben. Aber jetzt haben wir die Ansicht, tut mir leid, auf keinen Fall habe ich die
Auktion im Controller. Wissen. Wenn ich versuche, dort zu navigieren. Okay, und ich sehe Slash, Home Slash oder Boats, dann wirst du diese Art von Fehler
bekommen, zumindest während du testest. Es wird also heißen, dass es sich um eine ungültige Operationsausnahme handelt. Die Aussichtsplattform wurde nicht gefunden und es wurden
Orte durchsucht. Es hat in View Slash Home nach
einer Datei namens
Boot gesucht , macht CSS-HTML. Es wurde auch in View Slash,
geteilter Schrägstrich darüber angesehen . Der Fall ist GMO. Das ist im Wesentlichen der Grund, warum Fehler nicht
unbedingt im Home-Ordner liegen muss. Es kann geteilt werden, da dort ein
Fehler gefunden werden kann. Wenn wir also Ansicht zurückgeben sagen, wird an diesen Stellen
automatisch nach der Ansicht
gesucht, zu der
wir zurückkehren, nach einer Datei mit dem Namen
der Ansicht, von der wir
gesagt haben, dass wir sie zurückgeben werden. Da es es also nicht finden kann, wurde
es verrückt. Also lass es uns wissen, geh zurück
und erstelle diese Datei. Also klicke einfach mit der
rechten Maustaste auf Home, oder? Ich gebe diesen Knoten, dass diese Ordner normalerweise eine
Karotte haben und die Dateien dämmern. In Ordnung, das
kann verwirrend werden, besonders wenn Sie Drag & Drop ziehen
, wie zum Beispiel, als wir
das Blackboard
per Drag & Drop gezogen haben . Aber es fängt an,
die verschiedenen Blöcke
und Abschnitte von Dateien hervorzuheben . Und du wirst diese
Linien unterwegs sehen. Achte also genau
auf diese Dinge. Also klicke mit der rechten Maustaste
und sage neue Datei, und ich gebe den Namen
Boat Dot CSS HTML ein. Drücken Sie die Eingabetaste und jetzt
habe ich meine View-Datei. Jetzt ist es eine leere Datei, aber nehmen wir an, ich
wollte einen Hinweis von,
okay, was sind die ersten paar
Dinge, die ich in der Datei benötige? Ich kann mir die Vorlagen
der vorangegangenen Dateien ansehen . Genau hier sehe ich, dass es einen Datenbereich
für den Titel gibt, also kann ich ihn oben hinzufügen. Richtig. Dadurch kann ich den Titel der
Seite
festlegen , die in der Ansicht
erscheinen soll. Denn denk an das Layout, das ist der Titel, oder? Es wird also alles sehen, was zu Zeitpunkt in den Ansichtsdaten enthalten
ist. Drücke durch den Namen der Website, das ist ein Titel, auf
den die Seite kommt, Herr. Ich kann also angeben, dass dies die Seite Über uns
ist. In Ordnung, dann
muss ich nur noch das HTML platzieren. Ich möchte für diese Ansicht,
es ist unwahrscheinlich, dass wir
gesehen haben, dass wir nicht die gesamten HTML-Vorlagen
und alles, wir brauchen nur das spezifische Zeug. Also werde ich zurück zu
unseren Beispielen für
Bootstrap-Websites
springen . Und ich werde nur
ein sehr einfaches Beispiel wählen. Ich werde
dieses Cover benutzen, oder? Also, wenn ich zu
dieser Cava-Vorlage springe, will
ich wirklich nur diesen Text. Ich will nur den
Text, der da ist. Ich sage nur Seitenquelle
anzeigen. Ich werde nicht auf das Ganze eingehen und
alle Stile usw. nehmen. Mich interessiert wirklich nur,
was in diesem Hauptteil steht. Ordnung, also nimm und ich
füge es hier ein. In Ordnung. Dann kann ich den
Text ändern, damit wir dazu in der Lage sind. Bleiben Sie der Entwicklungsgesellschaft von Pebble treu. In Ordnung? Und Sie könnten Sie
in ein beliebiges Absatzspiel
setzen in ein beliebiges Absatzspiel um zu sehen, wie sowohl das Unternehmen als auch dann Sie sehen
können, kontaktieren Sie uns, kontaktieren Sie uns für weitere Informationen. In Ordnung. Ich
konzentriere mich nicht unbedingt auf all das ausgefallene
HTML, das wir einfügen können. Ich zeige dir nur, wie
wir das zusammenfügen können. Eine gut aussehende Website
für MVC-Anwendungen. Wenn wir also dort aktualisieren, sehen
wir unseren Text richtig. Jetzt. Wie komme ich hierher? Richtig, abgesehen von der Eingabe
von Home Slash oder beidem? Wie komme ich auf diese Seite? Weil ich es manuell eingegeben habe, wir
aber nicht erwarten können, dass unsere Benutzer wissen, dass wir eine Schaltfläche eingeben
müssen.
Wir müssen ihnen
eine Möglichkeit geben, verdoppelt zu werden. Es ist also genauso, wie
sie nach
Hause und in die Privatsphäre kommen können . Ordnung, also was wir tun ist den
Navigationsbereich zu modifizieren. Gehen wir also zurück
zu unserem layout.css, HTML. Und hier sind genug Artikel,
also haben wir Artikel für Zuhause,
ich werde genug
Artikel haben, um die Privatsphäre zu schützen. Also brauche ich ein weiteres Nav-Objekt und ich bin bereit, es
dazwischen zu legen, hormonaler Datenschutz. In Ordnung. Bei diesem
habe ich nur kopiert und eingefügt. Also habe ich gerade eines
der Nav-Elemente hervorgehoben: Öffnen, LI, Ankertag, Verbündeter schließen, kopieren und dann einfügen. In Ordnung, nichts Besonderes. Dadurch
behalte ich das bei, ja,
nimmt die Konsistenz von Dash Lights bei, sodass ich es nicht von
Grund auf neu tippe, wenn ich Fehler riskiere, sondern nur kopieren und
einfügen und wiederverwenden. Nein, ich habe nicht gesehen, dass
wir
diese SP-Attribute durchgehen werden. Das sind also keine regulären
HTML-Attribute. Das sind
Razor-Tag-Helfer. In Ordnung? Für das Ankertag haben
wir also einen Helfer, mit dem wir einen Bereich angeben
können. Ein Bereich ist eine besondere, wortwörtlich besonders Ära
und Webapplikation. haben wir nichts
, zumindest noch nicht. musst du dir also
keine Sorgen machen. In Ordnung? Aber wir
haben einen Controller. Zu welchem Controller möchten Sie
navigieren? In normalem HTML müssten
Sie also H ref ist
gleich lesen und dann versuchen, den Schrägstrich
herauszufinden.
Dieser Ordner schneidet diesen Ordner, Dieser Ordner schneidet diesen Ordner, um zu der gewünschten Datei zu gelangen. Fein. In einer dynamischen Umgebung wie dieser hat uns
dotnet Core die
Figur ohne Navigation leicht gemacht , oder? Weil es weiß, dass es
Controller und Views verwendet. Wir können tatsächlich angeben, dass wir zu
diesem Controller gehen möchten. Wir können unser Zuhause sehen, weil wir immer noch
den Home-Controller verwenden. Welche Aktion möchtest du? Wenn Sie also zum Home-Ankertag wechseln,
wenn Sie
auf Home klicken , sollte
es zum
Home-Controller und zur Indexaktion gehen. Wenn Sie auf das
Datenschutz-Ankertag klicken, sollte
es zum
Home-Controller und zur Datenschutzaktion gehen. Denken Sie daran, dass
die Aktion die hier
definierte Methode ist , die die Ansicht zurückgeben
soll. Wenn ich also zur About-Seite gehen möchte, muss ich zu ihrem Home-Controller
und der About-Aktion
gehen. Also kann ich das im
Code ändern und verwende diesen. Die Aktion, die ich ausführen werde, ist also ein Blitz und der Text, den
ich
im Ischium erwarte , ist eine Schraubensoftware,
die diese Änderungen vornimmt. Wenn ich die Website neu
lade, erhalte ich einen 500-Fehler. Oh, mir ist klar, dass
manchmal, wenn man ändert und es neu erstellt wird
und man zum Fenster wechselt, es tatsächlich irgendwie
Frisco wird , bis zu dem Tag man nicht wechseln kann,
während ich umbaue. Lassen Sie es ein wenig neu aufbauen,
bevor Sie wechseln. Okay, habe gerade ja gesagt, starte neu und wisse
, dass es neu gestartet wurde. Ich kann zurückgehen und
die Website neu laden. Da haben wir's. Ich weiß, dass ich meine neue URL sehe, eher
unseren Menü-Link.
Wenn ich darauf klicke, wird
sie
zum Home-Controller
und zur About-Aktion weitergeleitet, wodurch
unsere Seite über uns zurückgegeben wird. Ordnung, so einfach ist
es also,
Ihre Ansichten und Ihre Navigation
zwischen Ihren Ansichten und
den verschiedenen Bereichen
Ihrer Anwendung wirklich zu konfigurieren Ihre Ansichten und Ihre Navigation
zwischen Ihren Ansichten und
den verschiedenen Bereichen .
17. Zu GitHub hinzufügen: In Ordnung Leute, wir haben also einen weiteren Meilenstein erreicht
und jetzt verstehen
wir besser, wie unsere Ansichten und das Layout und
alles zusammenpassen. Wir haben Bilder hinzugefügt, wir haben unsere Startansicht geändert, wir haben neue Ansichten hinzugefügt. Ich kannte die Aktionen
unseres Controllers nicht und
am Ende hatten wir einige neue Dateien
und einige modifizierte Dateien. Jetzt müssen wir also
einchecken oder uns
lieber zu unserem
Quellcodeverwaltungssystem verpflichten lieber zu unserem
Quellcodeverwaltungssystem , was gut ist. Nur als visuelle Hinweise:
Alles, was grün ist, hat eine
UV-Einstellung , was bedeutet, dass
es nicht verfolgt wurde,
was bedeutet, dass es sich um eine neue Datei handelt
, von der nichts bekannt ist. Jedes Mal, wenn Sie eine Datei hinzufügen,
wird sie also in einem
Zustand ohne Tracking angezeigt und sie ist grün. Und sobald die
Datei seit
dem letzten Huhn existiert und Sie Änderungen vorgenommen
haben, dann wird sie orange oder gelb sein
und als geändert angezeigt, oder? Wir können also zu unserem Tab für die Quellcodeverwaltung wechseln, wo sie uns die
verschiedenen Änderungen mitteilen. Und von hier aus können wir
tatsächlich angeben ob es ignoriert werden soll, wir könnten die Änderungen rückgängig machen, wir könnten spezifische hinzufügen. Erstens Gitignore. Manchmal wollen wir
das machen, wenn wir
Konfigurationsdateien haben , für die wir
kein Huhn wollen, oder? Wir könnten es
dem Gitignore hinzufügen. Wir könnten quasi eine Phase machen, als ob du etwas
Null festlegen
möchtest , aber nicht alles. könnten wir sagen. Stufe. Wie gesagt, wenn Sie
Änderungen vorgenommen haben , sie aber nicht mehr
möchten, können
Sie einfach sagen, Änderungen
verwerfen. Und du könntest sogar
einen Vergleich anstellen. Du könntest also sagen, offene Änderungen und es wird dir tatsächlich
einen direkten Vergleich von
Wasservögeln zeigen einen direkten Vergleich von und was nicht, seit du deine
Änderungen vorgenommen hast. sind Tools, die uns helfen
können,
sicherzustellen, dass wir nicht ihr eigenes
Ding
einchecken und dass wir
mit den Änderungen, die
wir hoffentlich vorgenommen haben, auf Kurs sind mit den Änderungen, die
wir hoffentlich vorgenommen haben, auf Kurs . Jetzt können wir hinzugefügte oder
manipulierte
Seitenaufrufe und Layouts sehen , oder? Das ist also unsere Hühnerbotschaft. Jeder, der mitkommt
und unsere Änderungen sieht kann uns einen Überblick darüber geben, was mit diesem Commit
passiert ist. Und wir machen einfach
ein Commit und Push. Okay, jetzt, da wir
diesen Abschnitt abgeschlossen haben, sehe
ich dich in der nächsten Lektion.
18. Mit Azure Data Studio in Datenbank verbinden: Ordnung Leute, in dieser
Lektion werden wir unsere Datenbank
erstellen
, die wir als Rückgrat
unseres School of
Management Systems
verwenden werden als Rückgrat
unseres School of
Management Systems
verwenden . Wissen Sie, lassen Sie uns damit beginnen
, unser Azure Data Studio zu öffnen . Und ich werde
das Docker-Image
für unseren Microsoft
SQL Server verwenden , das wir aus
früheren Aktivitäten
installiert haben. Dort werden wir unsere Datenbank
erstellen. Sie können das also noch einmal überdenken. Hören Sie nur zu, um zu sehen
,
wie Sie dunkler öffnen und
diese Datenbank starten würden . Aber ich habe schon Dunkler und ich werde
dich nur durch ein paar Dinge führen, falls du den Container
von diesem Zeitpunkt an gestoppt hast. Und du musst dich wieder mit Hole
vertraut machen , um zum Laufen zu kommen. In Ordnung. Sie können also weitermachen und Ihren Docker-Desktop öffnen
. Ich werde dieses
Mal nur den Desktop
verwenden und nicht die CLI. Und wir würden unter
dem Bereich Container
alle Container sehen
können , die wir derzeit haben. Sie haben also wahrscheinlich nur einen. Das ist in Ordnung. Ich habe mehrere. In Ordnung, aber hier ist der
, den wir zuvor erstellt haben, nämlich der Microsoft
SQL Server-Container. Stimmt das? Bevor ich nun auf
Ausführen oder Start klicke, wollte
ich nur darauf
hinweisen, dass Sie, falls Sie einige der Einstellungen
vergessen haben, die
Sie dort eingegeben haben, tatsächlich zurückkehren und alle Konfigurationen
überprüfen können . Sie können sich die Inspektion also tatsächlich
ansehen. Wenn Sie darauf doppelklicken, können
Sie zu Inspect wechseln. Und dann sehen Sie in der
Umgebung , dass
die
Umgebungsvariablen, die wir hinzufügen übergeben werden,
wenn wir sie einrichten. Also habe ich wirklich mein Passwort
vergessen. Stimmt das? Das ist die
Haltung, die ich benutzt hatte. Also kann ich das einfach kopieren und
das im
Hinterkopf behalten, weil ich
es brauche, wenn ich eine Verbindung herstelle. Und denken Sie daran, dass
die Berichtsnummer Sie eingegeben haben, diese Support-Nummer ist
, dass Sie versuchen, eine Verbindung zu jemandem herzustellen, um diesen Container zu
starten. Und ich kann mir den
Protokollbildschirm ansehen, um zu sehen, dass er erfolgreich gestartet wird und dass es nirgends
Fehler gibt. Das ist gut. Sobald es sich in
einem laufenden Zustand und ich wieder hinüberspringe, sehen Sie hier, dass es grün ist, also läuft es und
sendet auf Port 1.400. Nein, ich kann weitermachen
und mit Azure Data Studio eine Verbindung herstellen . In Azure Data Studio kann
ich also auf diese neue Verbindung klicken. Möglicherweise haben Sie nicht
so viele Verbindungen wie ich. Das ist in Ordnung. Aber von hier aus werde ich
nur sehen, wie Microsoft SQL
Server-Server vom Typ
Nixon ein lokaler Host ist. Und wenn wir dann Visuals
verwenden, tut mir leid, wenn wir SQL Server
verwenden, verwenden Sie ein Komma für den Port, oder? Also localhost-Komma, dann 1.400. In Ordnung? Der
Authentifizierungstyp ist SQL-Anmeldung. Der Benutzername ist SE, wie wir es standardmäßig konfiguriert haben
oder wie wir es standardmäßig wissen. Und unser Passwort ist das
Passwort, das Sie verwendet haben. Sobald ich
das alles getan habe und auf Verbinden geklickt habe, wird mich gewarnt, dass
ein vertrauenswürdiges Zertifikat erforderlich ist , sodass ich einfach das Trust
Cert-Serverzertifikat aktivieren
kann. Und wenn ich das einmal gemacht habe, nein, ich bin verbunden. Also habe ich Localhost Coma
1.400 als SE verbunden. Und ich kann jetzt
weitermachen und
alle Assets
auf diesem Server manipulieren . Das Coole an
Your Data Studio ist, dass Sie damit sogar Ihre Verbindung kategorisieren
können. Du siehst hier also, dass ich einige meiner Kategorien
aufräumen kann. Ich kann einfach
eine neue Servergruppe erstellen. Und ich sage wie Azure. Und dann kann ich
all meine Augen,
deine Verbindungen,
in diese Gruppe ziehen . In Ordnung, ich habe also weniger Lärm und kann leichter
finden
, was ich will. Ich kann es zusammenbrechen. Und dann kann ich
eine weitere für Local erstellen. In Ordnung? Und dann kann ich den lokalen Gastgeber dort
unterbringen. Ich könnte sogar angeben, dass einer dunkler
ist
als dieser keine Ärzte. Das sind also alle meine
lokalen Instanzen. Wie Sie sehen können, habe ich
mehrere lokale Instanzen und habe versehentlich die
Verbindung zum Dunklen getrennt. Also werde ich einfach in
die Vergangenheit zurückkehren UND mich jetzt dieses Mal an den
Parser erinnern, damit ich es nicht jedes Mal
machen muss. Und Sie werden hier sehen
, dass sie sehen sie
die Verbindung verschlüsseln
sollten. Ich kann wahr oder falsch sagen. Vertraue dem
Serverzertifikat, dieser Klinik. Und ich bin bereit, wieder zu gehen. So stellen wir mithilfe des
Azure Data Studio eine Verbindung zu unserer Datenbank her. Wenn wir jetzt
zurückkommen, werden wir tatsächlich der Erstellung der Datenbank beginnen.
19. Datenbank erstellen: In Ordnung, lassen Sie uns mit der
Erstellung unserer Datenbank beginnen. Also werde ich
eine neue Abfrage öffnen und diese neue Abfrage wird
gegen unsere Verbindung gerichtet sein. Wir können die
Verbindung jederzeit ändern
, indem wir sie nehmen und dann die
andere Verbindung wählen, die wir wollen. Aber das ist in Ordnung. Wir machen
einfach so weiter, wie es jetzt ist. Sie werden feststellen, dass diese
Benutzeroberfläche der Visual
Studio Code-Oberfläche sehr
ähnlich ist . In Ordnung, also viele
Tastenkombinationen zum Arbeiten können wir steuern, eine Nahsteuerung minus. Wir können die Verbindungen andocken , um zu entscheiden, ob
wir uns mehr Platz geben möchten. Es ist also eine sehr vertraute
Benutzeroberfläche und sie ist sehr sauber
und einfach zu bedienen. Jetzt erstellen wir
eine Datenbank namens
School Management DB. In Ordnung? Und diese Datenbank basiert
gewissermaßen auf
der Datenbank, die in meinem SQL-Kurs
verwendet wurde. Du kannst das also überprüfen. Wenn Sie
mit SQL und SQL Server nicht sehr vertraut sind, können
Sie
sich diesen Kurs ansehen. Wenn Sie jedoch bereits
einige Datenbankkenntnisse
haben werden Sie sich wie zu Hause fühlen. Und ich werde es im Laufe
der Zeit erklären , damit
Sie den Überblick behalten. Die erste Anweisung
, die wir
schreiben wollen, ist also eine Datenbank erstellen. Dadurch können
wir den Namen
einer Datenbank angeben , die wir erstellen
möchten. Ordnung, also wollen wir
eine Datenbank namens
School Management DB erstellen . Dann müssen wir ein Ziel spezifizieren. Und dann müssen wir die Datenbank
verwenden , die wir gerade
erstellt haben. Und wenn wir ein Skript schreiben, können
wir jede Zeile ausführen. Also kann ich
das hervorheben und „Run“ sagen, dann
das hervorheben und „Lauf“ sagen. Denn was passiert ist, dass wenn es hier ankommt, nicht mehr existiert, oder? Also solange das nicht Ron ist, gibt es
das nicht. Wir werden also diese rote, verschnörkelte
Linie sehen, die einen Fehler darstellt. Aber das ist in Ordnung, denn
wir können einfach
das gesamte Dokument schreiben und es
wird von Zeile eins,
Zeile zwei, Zeile drei und
dann von allem anderen ausgeführt . Wir müssen uns also keine Sorgen um diese rote, verschnörkelte Linie machen, oder? Nein. Dann sehen wir Tabelle erstellen. Am ersten Tag werde
ich ein Studententeam
erstellen, okay. Erstellen Sie also
Tabellen-Schüler und es werden Klammern
geöffnet und geschlossen. Und dann werden
wir dort einige Spalten spezifizieren. Also sage ich ID INT. Ich empfehle immer, wenn
Sie eine Datenbank erstellen,
immer eine von der
Datenbank generierte
Primärschlüssel-ID-Spalte zu haben . In Ordnung? Also hier sehe ich, dass die
ID eine Ganzzahl ist, es ist ein Primärschlüssel und es
sollte eine Identitätsspalte sein. Identität bedeutet, dass sie Laufe der Zeit
automatisch zunimmt. Dann noch andere Dinge,
die die Schüler haben werden, unseren
Vornamen, Nachnamen, Geburtsdatum. Und ich werde
sie eigentlich einfach anschließen. In Ordnung, ich
langweile dich also nicht mit dem Tippen. Sie können eine Pause einlegen und diese
zusätzlichen Spalten
replizieren. Vorname, wir
verwenden n var char 50, und es darf nicht null
sein, oder? Das Gleiche gilt für
Nachname, Geburtsdatum. Wir werden Deet sehen und wir
werden zulassen, dass es Nase ist. Ich werde keinen Wert
angeben, der nicht Null ist. Das heißt, wenn ich weiß, dass hier
reingeht, ist das in Ordnung. In Ordnung? Dann ist der nächste Tisch, den
wir haben werden, Vorlesungen. Für Vorlesungen werde ich einfach dieselbe Art von
Aussage machen , außer dass wir nur FirstName und LastName
verwenden. Okay, also ich
hätte diesen Raum
einfach kopieren können , dass er die Schüler zu Vorlesungen gemacht
hat,
und den Takt entfernen können. Sie werden sehen, dass sie sich in ihrer Struktur
sehr ähnlich sind. Und dann ist der letzte, den
wir wollen, vier Gänge. Also, wie ich schon sagte, es ist ein
Schulmanagementsystem für eine winzige Schule. Sie wollen nur
verfolgen können, wer die Schüler sind. Sie wollen nachverfolgen
, wer die Vorlesungen sind. Und dann wollten sie nachverfolgen , welche Kurse angeboten werden. Wie heißt der Kurs? Wie lautet der Code für den Kurs? Und dieser Schnee wird eine einzigartige Einschränkung
haben. Das bedeutet also, dass keine zwei Kurse jemals den gleichen Akkord haben
sollten. In Ordnung? Dies könnte wohl
auch für den Namen einzigartig sein, aber Geschäftsregeln werden
diese Entscheidungen bestimmen. Und dann die Anzahl der Credits , die dieser Kurs haben wird. Es ist ein einfaches, sehr, sehr einfaches
Schulverwaltungssystem. Jetzt haben wir also
unser Datenbankskript erstellt. Ich weiß, dass wir die Datenbank tatsächlich
erstellen wollen, denn wenn wir nochmal
hinschauen, sind die Datenbanken leer. Wenn wir also, wie gesagt, auf
Ausführen klicken, wird
das gesamte Skript ausgeführt und unsere Datenbank
erstellt. Wir erhalten also diese visuellen
Hinweise, die
die Ausführung gestartet haben und dann wurde
alles erfolgreich
abgeschlossen. Wenn ich also Datenbanken aktualisiere
, zu meinem
Schulmanagement EB gehe und dann kann ich einen
Drilldown durchführen und mir
die vorhandenen Tabellen ansehen . In Ordnung,
so einfach ist es also, eine Datenbank mit Skripten zu erstellen. Und das Coole an
Skripten, falls Sie mit SQL und
Scripting nicht so
vertraut sind, ist
, dass ich
diese Datei speichern und
zu einem späteren Zeitpunkt wiederverwenden kann , oder? Es ist also nur eine Skriptdatei. Es ist nur eine Textdatei, die Anweisungen
enthält als Loch zum Erstellen einer Datenbank, ich kann sie in meinem
lokalen Dateisystem speichern. Wenn ich diese Datenbank erneut benötige, kann
ich den
Namen entweder hier ändern oder noch einmal, sie durchläuft all diese
Szenarien in meinem SQL-Kurs. Jetzt habe ich die
Datenbank erstellt. Mein nächstes Ziel ist
es, es tatsächlich meiner Anwendung zu
verbinden. Die Datenbank und
sie läuft in Dunkler
Equaled waren also leicht
auf einem anderen Server, oder? Das spielt im
Großen und Ganzen keine Rolle. Was jedoch wichtig
ist, ist, dass ich
meine Anwendung benötige , um
diese Datenbank zu sehen und mit ihr interagieren
zu können. Wir werden uns also ansehen, wie wir eine Bibliothek namens
Entity Framework nutzen können , um
dies mit unserer Webanwendung zu erreichen .
20. Scaffold Database mit Entity Framework Core: In Ordnung Leute, also haben
wir
unsere Datenbank erstellt und alles, was wir brauchen , um über
unsere Anwendung eine Verbindung zu ihr herzustellen. Und es gibt nur wenige
Dinge, die wir
nachrüsten oder anwenden
müssen , um dies zu ermöglichen. Es wird also
Entity Framework verwenden, das in
unserem Flaggschiff von Microsoft integriert ist , oder für Datenbankkonnektivität
und -manipulation. ORM ist also die Abkürzung für
Object Relational Mapper. Sie zu Entity Framework
in unser Projekt, wir können zur CSS-Datei übergehen. Wir könnten sie hier manuell hinzufügen, aber wir
verwenden eigentlich nur die Dotnet-CLI. Und Sie können sehen, was in
dieser CSV-Datei passiert , wenn ich diese Befehle
ausführe. Also der Befehl, den
ich ausführen werde, erhöhe ich einfach
und erhöhe die Realisten sind Immobilien und
die Displaygröße. Der Befehl, den
wir hier ausführen,
ist also dotnet add package. In Ordnung? Und das wird
tun, ist
den Paketmanager
namens New Gets zu kontaktieren. Du wirst dich an
neue Git-Repositorys wenden und das Paket,
die neueste Version
des Pakets, erhalten . Wenn wir
in diesem Fall nicht spezifizieren, werde
ich keine Version
angeben. Und was ich versuchen
werde, ist das Paket für Microsoft dot Entity
Framework Core SQL Server. Dieses Paket können wir einfach in
dotnet hinzufügen Paket Microsoft aber Entity
Framework, Core SQL Server. Dieses Paket enthält alle Konnektoren und
den
gesamten Code, den wir
benötigen, um die Kommunikation mit einer
SQL Server-Datenbank zu erleichtern . Entity Framework ist Open Source, plattformübergreifend
und unterstützt auch
verschiedene Arten von
Datenbanken. Wenn Sie also Sequel
Light oder Postgres oder MySQL verwenden, gibt es Bibliotheken mit
Erweiterungen für Pakete nicht für Entity Framework Core für diese speziellen Datenbanken. In diesem Fall
verwenden wir SQL Server. Also mache ich einfach weiter,
gebe das ein und drücke die Eingabetaste und
gebe dann ein paar Sekunden. Und dann geht er los
und es wird
das Pocket von NuGet herunterladen und
sie sind in der RCS-Bridge-Datei.
Sie sehen einen neuen Knoten, der
besagt, dass wir wissen, dass wir eine Paketreferenz
auf die Bibliothek
haben , die Wir haben
gerade ein Referenztool erstellt, und die Version ist 7.0. In Ordnung, Entity
Framework Core Seven ist mit Dotnet Seeks kompatibel. Selbst wenn Sie
Dotnet Seeks verwenden, können
Sie Version sieben
von Entity Framework Core verwenden. Jetzt würde ein anderes Paket entworfen, das ich installieren
möchte, bevor ich
weitermache . Also drücke ich einfach nach oben, um
die neueste
Lira und den Befehl zu erhalten . Und dann werde ich den SQL Server aus
dem Befehl
entfernen und
ihn durch das Wort Design ersetzen. Und dann drücke ich die Eingabetaste. Und dann wird es dasselbe
tun, Kontakt aufnehmen, das Paket holen und dann
unsere CSV-Datei mit diesem Knoten aktualisieren . Hier werden Sie also sehen,
dass es außerhalb der
Bucket-Referenz noch ein paar Dinge hinzuzufügen gibt,
aber das ist in Ordnung. Jetzt, da wir Entity
Framework in unserem Projekt haben, müssen
wir eine
sogenannte Verbindungszeichenfolge hinzufügen. Verbindungszeichenfolge
ist also wie eine Adresse, oder sie enthält eine Reihe von
Anweisungen, mit denen die Anwendung oder wie sie eine Verbindung zur Datenbank herstellen
kann. Das geht also in unsere up
settings.js, JSON-Datei. Hier. Ich werde das einfach ändern,
und das ist nur eine
normale JSON-Datei, oder? Es ist also die CMG-Syntax. Wir wissen, dass es sich um ein Schlüsselwertpaar handelt. Connection Strings ist ein Abschnitt. Sie könnten also einfach anfangen Verbindungszeichenfolgen
einzugeben und die
Eingabetaste drücken und
es wird für Sie ausgefüllt . Lass
mich das noch einmal machen. Verbindungszeichenfolgen werden eingegeben
und es füllt, es hält. In Ordnung? Dann könnten
Sie innerhalb der
Verbindungszeichenfolgen mehrere Datenbanken haben. Sie können also
so viele Schlüsselwertpaare
von
Verbindungszeichenfolgen haben so viele Schlüsselwertpaare , wie Sie benötigen. Diese erste Verbindungszeichenfolge
, die ich für
diese Anwendung benötige , ist eine, die eine Verbindung zur
Schulverwaltung dB herstellt. Also öffne und schließe
Anführungszeichen. Und dann schreibe ich dort den Namen der
Verbindungszeichenfolge, die School of
Management DB-Verbindung ist. Okay, dann
haben wir die Werte also Doppelpunkt und dann öffnen und
schließen Anführungszeichen. Also hier haben wir tatsächlich die Verbindungszeichenfolge eingegeben. Unsere
Verbindungszeichenfolge lautet also Server gleich und dann die
Adresse des Servers, die in unserem Fall
das
localhost-Komma 1.400 ist, weil wir unsere
dunklere gehostete Datenbank verwenden , die wir konfiguriert. Dies ist jedoch nur die
Adresse der Datenbank. Wenn ich also meine
lokale Host-Instanz verwenden würde, würde
ich Localhost sagen. Wenn ich meine SQL
Express-Instanz verwenden würde, würde
ich SQL Express sagen, oder? Wenn Sie also SQL
Express verwenden und nicht dunkler, dann würde diese
Adresse so aussehen. In Ordnung, also verwende ich
wieder dunkler, localhost 1.400. Und dann spezifizieren wir
die Datenbank. Die Datenbank hier, ich glaube, wir haben sie
Schulmanagement genannt. Eb kann jederzeit zurückgehen und überprüfen,
wie du es nennst. Das ist also eine Datenbank. Und beachten Sie, dass wir Semikolons
verwenden. Und dann müssen wir eine
vertrauenswürdige On-The-Score-Verbindung sehen . Wir müssen also angeben,
ob es sich um eine
vertrauenswürdige Verbindung handelt, was ich an dieser Stelle
einfach falsch sagen werde,
weil die Datenbank nach bestimmten
Sicherheitsanforderungen
sucht , die erfüllt werden und wir können uns das für
mehr Produktionsumgebungen als
vier Entwicklungen pro Sitzung reservieren . Also im Moment werde ich nur sagen
, dass das falsch ist. Und dann haben wir eine weitere Einstellung , die besagt, dass mehrere
aktive Ergebnisse gesetzt wurden. Und das gibt im Grunde an, ob mehrere Verbindungen gleichzeitig
erlaubt sind. Ja. Und dann
ist die letzte Option verschlüsseln gleich falsch. Nun, nicht endlich, aber die
letzte sicherheitsrelevante Frage ist Encrypt Equals Falls, insbesondere in EF Core. Was passiert ist, dass in der neuesten
Version von EF Core dies
standardmäßig auf true gesetzt wird, sodass Sie ausdrücklich
angeben müssen, dass es falsch ist, oder wird davon ausgegangen
, dass es verschlüsselt ist und Wenn es dann nicht richtig konfiguriert ist, Ihre Verbindung
nicht hergestellt. Diese Verbindung wird nur
diese beiden Probleme in unserer
Entwicklungsumgebung mit sich bringen. Dann müssen wir den Benutzernamen und
das Passwort angeben. Jetzt ist dieser Teil optional. Benutzer-ID und Passwort sind
optional, wenn Sie
SQL Express verwenden oder wenn Sie
eine lokal installierte
Instanz von SQL Server verwenden . Das bedeutet, dass standardmäßig
die
Windows-Authentifizierung für Sie verwendet wird die
Windows-Authentifizierung für Sie müssen keine
Benutzer-ID und kein Passwort angeben. In dem Fall, dass Sie einen Benutzer
verwenden müssen , wie Sie SQL Login
verwenden,
unabhängig davon, ob Sie
ihn so konfiguriert haben, oder ob Sie Docker verwenden, wo es keine wirkliche Option gibt, etwas anderes
zu tun, dann Sie müssen
auf jeden Fall die Benutzer-ID angeben. Und dann
musst du
das Passwort angeben und ich habe mein Passwort
vergessen. Lass mich einfach
wieder zu dunkler springen und in mein Bild schauen. Da haben wir's. Klicken Sie weiter auf
die falsche Stelle. Also leihe ich mir diesen
Passwortwert für meine Verbindungszeichenfolge aus, denn immer ich eine Verbindung herstellen würde, wie auch
immer ich eine Verbindung herstellen würde,
so muss
die Anwendung eine Verbindung herstellen. Dann stellen wir mit dieser
Verbindungszeichenfolge tatsächlich eine Verbindung zur Datenbank und rufen die Datenbank ab. In dieser Lektion setzen wir also nicht nur eine
Verbindungszeichenfolge auf, sondern wir werden auch das
sein, was Husten verursacht, die
Datenbank
in unsere Anwendung einbinden. Wir haben einen so genannten
Database-First-Ansatz gewählt, was bedeutet, dass
wir
eine Datenbank erstellt haben und dann die Anwendung damit verbinden werden. Die Alternative
könnte sein, dass wir diese Anwendung haben und Code verwenden,
was bedeutet,
dass wir Code, Klassen
und Modelle schreiben. Und dann verwenden wir das, um die Datenbank darüber
zu
informieren, wie sie aussehen sollte. Das heißt Code First. Andere Kurse, in denen
ich Code für uns
in
diesem Kurs zeige , bin ich mir sicher, zuerst in der Datenbank, damit wir
ein Gefühl dafür bekommen, wie wir eine bestehende
Datenbank einbauen
können, weil die Datenbank oft
schon da und wir müssen entweder die Anwendung aktualisieren oder eine Anwendung
für die Datenbank
erstellen. Wir müssen das
Ganze kennen, um
eine bestehende Datenbank betrachten und in unserer Anwendung
modellieren zu können. Also werde ich einfach CLS machen. Wir haben hier also ein neues
Terminalfenster. Ihr seid Zerstörungen. Und dann
lassen Sie uns ein neues Dotnet schreiben. Stephen. Aber bevor wir das tun, müssen wir
tatsächlich
das EF-Toolset in
unserer Dotnet-CLI installieren . Also muss ich
Dotnet New Install sagen, und dann
installiere ich es einfach global. Also Bindestrich, Bindestrich global. Und dann heißt das Tool, das
ich installiere dotnet high F und E
f. Sobald ich das gemacht habe, können
Sie sehen, dass ich es bereits installiert
habe. Auf meiner Dotnet-CLI
ist das bereits installiert, aber Ihre wird
wahrscheinlich die Bewegungen ausführen und
tatsächlich alle
unterstützenden Bibliotheken
für dieses Tool abrufen . Sobald dies jedoch erledigt ist, können
wir nun mit
unseren Dotnet
EF-Gerüstbauarbeiten fortfahren . Wir können also den Dotnet
EF BB-Kontext sagen. In Ordnung? Und dann sagen wir Gerüst. Ein Gerüst bedeutet, dass ich mir ansehe was existiert, und dann
habe ich es in
der Anwendung modelliert. Und dann brauche ich, um herauszufinden, was ich brauche die Verbindungszeichenfolge. Also werde ich genau diese
Verbindungszeichenfolge kopieren, die wir einfach in die
App-Einstellungen eingefügt haben, diese JSON-Datei. Und ich werde es hier einfügen. In Ordnung, nett und einfach, aber wir haben es schon geschrieben. Und hoffentlich ist es
schon korrekt, oder? Nachdem wir das haben, werden
wir sehen, welcher Treiber oder welche
Art von Datenbank. Also muss ich
den Datenbanktyp
über die Bibliothek,
das Meer und Microsoft
aber Entity Framework,
Core dot SQL Server angeben den Datenbanktyp
über die Bibliothek,
das Meer und Microsoft
aber Entity Framework, . Und haben Sie keine Angst vor dem Kopieren und Einfügen, denn das
ist viel Tippen. Selbst dafür könnten
Sie zurück
zur USCS-Broach-Datei springen, sie
kopieren und dann einfügen Es ist das, was
Sie effizienter macht. Dann gebe ich an
, dass dies in ein
Verzeichnis namens data ausgegeben werden soll. In Ordnung, also kann ich Bindestrich 0 sehen. Und geben Sie dann den Namen des
Ordners an, bei dem es sich um Daten handelt. Also wieder einmal,
Dotnet EFL möchte sich mit dem
DB-Kontext auseinandersetzen. Wo auch immer diese Datenbank ist, entscheiden Sie sich für diese Datenbank. Das ist es, was ich bauen möchte. Dieser DB-Kontext ist aus. Wir verwenden einen SQL-Server. Und wenn Sie bereit sind, Ihre Dateien
zu generieren, laden Sie sie in einen Ordner namens
data hoch. Ich kann die Eingabetaste drücken. Und sobald ich die Eingabetaste drücke, sehen
wir entweder etwas, das gut aussieht, oder
etwas, das schlecht aussieht. Ein nettes ist immer gut. Hier sehen wir also, dass wir
einen Fehler erhalten haben , weil es
sich nicht mit dem Benutzer anmelden konnte. Also die Antworten, dass die
Anmeldung für diesen Benutzer fehlgeschlagen ist, und ich, Sie haben diese Erfahrung wahrscheinlich
nicht gemacht. Aber das liegt daran, dass ich hier die doppelten
Anführungszeichen
verwende. Lassen Sie mich diese in einfache
Anführungszeichen ändern. In Ordnung, beachte,
merke den Unterschied. Aufgrund meiner Passwortwahl habe ich die Dollarzeichen. Wenn ich also
doppelte Anführungszeichen verwende, werden
die Dollarzeichen
codiert, um zu zeigen, dass sie nicht als
buchstäbliche Zeichenketten angesehen werden. Wenn ich ein einzelnes
Anführungszeichen verwende, ist
alles in einer Farbe. Das sind also kleine Kleinigkeiten , die Sie
durch Versuch und Irrtum herausfinden. Also lass mich die Eingabetaste drücken
und das noch einmal versuchen. Dieses Mal. Okay. Wir haben eine
kleine Warnung erhalten und es steht, dass das Potenzial,
empfindliche Entzündungen in
Ihrer Verbindungszeichenfolge zu schützen , Sie sollten es
aus dem Quellcode entfernen. Okay? Wenn ich jetzt zu meinem Explorer gehe, kann
ich nach oben scrollen und hier einen
neuen Ordner namens data sehen. Und wenn ich es erweitere, sehe
ich Klassendateien, die meinen Tabellennamen
entsprechen. Und ich werde diese Datei sehen, die als DB-Kontextdatei
bezeichnet wird. Nun, in diesen DB-Kontexten sind
wir im Grunde
Modellieren oder Datenbanken. Dieser DB-Kontext ist also
die Verkörperung unserer Datenbank. In früheren Versionen vor
dotnet Core und EF Core könnten
wir dieses Diagramm
generieren, etwas, das wie ein
ERD-Entitätsbeziehungsdiagramm aussieht und diese Tabellen tatsächlich so
anzeigen würde
, wie sie sind in der Datenbank vorbei,
wenn das Diagramm nicht vorhanden ist. Und sogar hinter dem
Diagramm befand sich eine Datei namens DB-Kontextdatei, die ungefähr so
aussieht. In dieser DB-Kontextdatei werden also die
verschiedenen Teile
der Konfiguration skizziert , die benötigt werden. Wir sehen hier, wo es in dB-Sätzen
initialisiert ist. Jede dB-Sitlinie
steht also für die Tabelle. Der Name der Tabelle lautet also students, aber das DB-Set
basiert auf den Modellen. Die Schüler haben alle
Eigenschaften aus der Tabelle mit dem
Namen Schüler übernommen und
eine Klasse generiert , die dieser
entspricht. Also die Eigenschaften aus
der Datenbank oder ID, Vorname, Nachname
und Geburtsdatum. Sie entsprechen alle dem was in der
Datenbankdefinition steht. Ordnung, dieses Diagramm
stellt also die
Code-Version unserer Datenbank dar. Beachten Sie nun,
dass wir denselben Fehler oder dieselbe
Warnung sehen ,
die wir in
der CLI direkt über
der Verbindungszeichenfolge erhalten haben . Nun, das ist dieselbe
Koordination und der gleiche Stream, wir hier im Befehl verwendet haben, wir
haben sie
auch schon im Upsetting. Ich möchte wirklich nicht codieren. Also, was ich tun werde, ist
einen weiteren Befehl auszuführen , um die CLI zu
generieren. Habe dieses Diagramm oder eher
diesen Kontext generiert ,
lassen Sie mich einfach ein CLS machen. Ich habe einfach nach oben gedrückt und das
letzte Mal abgerufen, als
wir auf dem einen Schnee waren. Alles was es zu beachten gibt hier. Erstens, ich habe schon Dateien. Wenn ich erneut versuche,
diesen Befehl auszuführen, erhalte
ich eine Fehlermeldung,
weil die Dateien, die ich
zu generieren versuche, bereits existieren. Nun, das kann ein
Problem sein, wenn Sie tatsächlich Änderungen vornehmen
möchten, also die Datenbank ändert, dann möchten Sie, dass der
Code widerspiegelt , dass Sie
diesen Befehl erneut ausführen müssen. Jetzt sagen sie also
, dass wir das Force-Flag verwenden
müssen , um die Dateien zu
überschreiben. Das bedeutet also, dass
ich
im SAM-Befehl einen Bindestrich hinzufügen muss, oder? Oder Bindestrich, Bindestrich. Das bedeutet was auch immer, auch
wenn es schon da ist, ich möchte einen Override. Als Nächstes möchten
wir einen Befehl eingeben,
der Sie
auffordert, dies nicht in die Konfiguration
oder den Konfigurationsabschnitt
aufzunehmen. Das Sexual
mit der Verbindungszeichenfolge brauchen wir nicht. Ich kann also Bindestrich, Bindestrich,
Bindestrich sehen ,
Konfiguration kennen, oder? Wenn ich die Eingabetaste drücke, erhalte
ich eine Fehlermeldung. Und das liegt daran, dass es mehr Konfiguration geht und ich entschuldige mich, es geht nicht um die Konfiguration. Lass uns das noch einmal versuchen. Also nicht zur Konfiguration
und dann wird gebaut und dann ist es fertig. Und wenn wir zu den Werten
unseres Kontextes zurückkehren, stellen Sie sicher, dass wir
diese Methode bei der Konfiguration nicht mehr haben. In Ordnung, wir haben also kein Modell das
erstellt, was wir nicht konfiguriert
haben. Das Teil brauchen wir nicht. Wenn wir also
Änderungen an unserer Datenbank vornehmen, müssen
wir diesen Befehl ausführen. Es wird gehen und jedes Mal einfach alle
Dateien für uns
neu generieren. In Ordnung? Nun die letzte Sache,
um sicherzustellen, dass unsere Anwendung über
die Datenbank Bescheid weiß, denn ja, die Dateien sind da,
aber es gibt immer noch kein wirkliches Wissen über die eigentliche
Datenbank und Anwendung. Wir müssen zu unserer
program.cs gehen und dann müssen
wir das tun, was wir Registrierung
oder Dependency Injection
oder Distribution
nennen . Wir müssen also registrieren
, dass diese Datenbank in der
Anwendung
existiert, damit wir Entity Framework verwenden
und darauf zugreifen
können. Also zunächst
sage ich, var con ist gleich. Und dann gehe ich
in unsere Konfigurationsdatei. So kann ich die Konfiguration von
Builder-Hunden, die
Konfiguration zum Zeitpunkt
der Initialisierung der Anwendung oder die
Behinderung sehen Konfiguration zum Zeitpunkt
der . Es sucht nach allen
App-Einstellungen und
allen anderen Einstellungsdateien und rollt sie
einfach in
dieses eine Objekt, erstellt die Konfiguration. Und dann gibt es eine
Methode mit der Aufschrift get connection string,
nice and clean. Und dann
müssen wir nur noch
den Namen der
Verbindungszeichenfolge kennen . Also, wenn du den
Namen vergessen hast, ist das in Ordnung. Springe rüber, schnapp dir den Namen, kopiere, springe zurück und füge ihn ein. Jetzt haben wir also die
Verbindungszeichenfolge. Wir müssen den DB-Kontext tatsächlich
hinzufügen. Also das Startup, sagen wir,
ein Builder Dot Services. Und es wird Punkt
AD B2B-Kontext heißen. Und wir werden es
in den DB-Kontext stellen. Und ich werde einfach
die Kopie
des Namens durchgehen und ihn hier einfügen. Also fügen wir diesen
DB-Kontext hinzu, oder? Dann müssen wir
die Optionen weitergeben. Also ein Punkt, es ist nur
ein Lambda-Ausdruck. Wenn Sie
mit Lambda-Ausdrücken nicht vertraut
sind, werden wir
viele Türen machen. Aber das ist ein Lambda-Ausdruck. Nirgendwo sagen wir, verwenden Sie SQL Server. Und hier ist die
Verbindungszeichenfolge. Ordnung, jetzt fehlen mir
einige Referenzen. Klicken Sie einfach darauf und
sagen Sie Kontrollkanäle. Dadurch kann ich
diese Nutzungsanweisung hinzufügen. Da haben wir's. Und dann hier wieder
Onshore-Daten, und es ermöglicht mir,
diese mithilfe einer Anweisung hinzuzufügen. Und nein, es gibt keine Pfeile. Im Grunde sehen wir also wann die Anwendung startet und mir die
Verbindungszeichenfolge
gepackt hat. Verwenden Sie dann die
Verbindungszeichenfolge, um
eine tatsächliche Verbindung
zu der Datenbank zu initialisieren eine tatsächliche Verbindung
zu der Datenbank zu die dieser DB-Kontext ein Modell
ist. Und hier ist die
Verbindungszeichenfolge, die Sie verwenden sollten. Ordnung, das
nennen wir jetzt den Optionsbereich. Das wird also
in unseren DB-Kontext weitergegeben ,
wenn wir Optionen sehen. In Ordnung? Also zeige ich Ihnen nur all die kleinen beweglichen Teile, damit Sie verstehen
können, wie
alles zusammenhängt. Jetzt haben wir also tatsächlich
eine Verbindung zwischen unserer
Anwendung und SQL Server hergestellt . Jedes Mal, wenn wir einen
Dotnet-Lauf von nun an
ausführen, wird
diese Verbindung tatsächlich hergestellt, wenn die
Anwendung gestartet wird. Als Nächstes wollen
wir mit der
Erstellung von Funktionen für die Interaktion
mit der Datenbank beginnen Erstellung von Funktionen . Weil wir hier
das haben, was wir
Modelle der Datenbank nennen werden , oder? Was wäre, wenn wir
anfangen würden, Kurse zu erstellen, Vorlesungen zu
erstellen, Studierende zu gründen? Wir brauchen also Controller,
wir brauchen Views, wir brauchen Funktionen
dazwischen, um das weiterzugeben. Lektion schauen wir uns an, wie wir nächsten Lektion schauen wir uns an, wie wir
damit beginnen
können.
21. Scaffolding und -Controller – Teil 1: In dieser Lektion bauen
wir
unseren Controller auf und sehen uns
das Wort gerissen an. Wir haben es schon einmal benutzt und es
bedeutet im Grunde, dass wir Code
generieren,
der auf etwas basiert, oder? So konnten wir
Gerüste für den DB-Kontext erstellen, indem DB-Kontext
und die Klassendateien
generierten, Modelldateien, die auf
unserer Datenbankstruktur basieren. In dieser Situation werden
wir
Gerüststeuerungen und Ansichten entwickeln, die
auf einem dieser Modelle basieren. In Ordnung, denken Sie daran, dass wir den Model View Controller
haben. Jetzt haben wir das Modell.
Also der Datenordner, alles darin
steht für die Modelle. Diese Klassendateien
sind also mündliche Modelle, Vorlesungen und Studierende, sind unsere Modelle. Diese stellen die Daten dar. Jetzt benötigen wir die Ansichten
, die es uns ermöglichen, die Daten
anzusehen und mit den Daten zu
interagieren, die Benutzeroberfläche, die sich auf das Modell
bezieht. Und wir benötigen den
Controller, um den
Datenverkehr und die Anfragen sowie
jegliche Logik im Zusammenhang mit der
Manipulation der Daten
und der Anzeige der Ansicht zu kontrollieren Datenverkehr und die Anfragen sowie jegliche Logik im Zusammenhang mit . diese zu erstellen, haben
wir nun die Möglichkeit,
manuell einen Controller zu erstellen, manuell eine Ansicht zu erstellen und diese zu verkabeln. Und ich denke, dass
es an dieser Stelle, besonders wenn Sie ein Anfänger sind, besonders wenn Sie ein Anfänger sind, besser ist,
den generierten Code zu zeigen und Ihnen das zu
erklären. Und dann werden Sie besser verstehen, was es braucht , um es von
Grund auf neu zu erstellen, oder? Dotnet CLI ermöglicht es uns also, den gesamten Code zu erstellen, der
es uns ermöglichen würde , grundlegende
Crud-Operationen auszuführen, crud, create, read,
update, delete, in Ordnung. Also Ansichten, Controller und Funktionen, die es uns ermöglichen, Datensätze zu erstellen, Datensätze zu lesen, Datensätze zu
aktualisieren oder
Datensätze zu löschen, basierend auf einem
dieser Modelle und dessen, was es in der Datenbank
darstellt. Also genug von meinem Monolog, lassen Sie uns darauf eingehen. Als erstes möchten
wir ein anderes Tool installieren, nämlich den ASP
NET-Codegenerator. Also werde ich
das Seitenteil zusammenklappen und
meine CLI etwas größer machen. Und wir werden auch CLS machen. Werde den ganzen
Lärm los. Da haben wir's. In Ordnung, jetzt müssen wir
den Befehl mit der
Aufschrift dotnet tool ausführen . hast du schon einmal gesehen. Installieren. Und ich werde dafür sorgen, dass Sie Bindestrich, globalen
Bindestrich wie beim
letzten Mal oder Bindestrich g sagen können . Ordnung. Dann wurden im
dotnet.net Hyphen ASP,
NET Hyphen Code Generator Tool installiert . In Ordnung, also lass uns die
Eingabetaste drücken und das laufen lassen. Okay, nun, was würde für dich
laufen? Ich habe es bereits
installiert, in Ordnung, also weil wir es installiert haben, erhalte
ich diese Fehlermeldung. Sie hätten jedoch tatsächlich eine sehr ähnliche Erfahrung wie bei
der Installation des Dotnet EF2. In Ordnung. Nachdem wir das installiert
haben, müssen
wir einen
Befehl ausführen, der es
uns ermöglicht, den Controller auf der
Grundlage des Modells zu erstellen. Und wir wollen die
Sichtweisen vermitteln, die uns helfen
,
Crowd-Operationen durchzuführen. Aber bevor wir das tun, brauchen
wir noch ein paar
Pakete, oder? Also habe ich schon den Entity
Framework SQL Server. Wir haben bereits
Entity Framework. Gestaltung. Was wir brauchen, wissen
dotnet Paket hinzufügen. Und wir wollen die Microsoft Visual Studio Dot Web Dot Cogeneration
dieses Design. Das eine ist also ein Vielfaches. Drücken Sie Pause und stellen Sie
sicher, dass Sie es so
zurückschreiben , wie Sie es auf
dem Bildschirm sehen, oder? Also dotnet Paket hinzufügen, Microsoft Visual Studio Dot
Web Dot Cogeneration
, das entworfen hat. Dieses Paket unterstützt tatsächlich das
Ziel der Kraft-Wärme-Kopplung, dass wir, sobald das läuft und es erfolgreich war, einfach CLS machen
werde. Und was wir dann
tun können, nachdem wir das
aufgenommen haben , ist weiterzumachen
und unser Gerüst zu bauen. Wenn Sie Mac OS
X oder Mac OS oder Linux verwenden, müssen
Sie
diesen Befehl ausführen, wobei Sie sehen, dass der Exportpfad gleich Dollar Sign Home,
Slashdot, Net, Dotnet ist. Richtig. Da haben wir's. Dot.NET- oder
Full-Stop.NET-Schrägstrich-Tools und dann
Doppelpunkt für Dollarzeichen. In Ordnung. Also im Grunde für OS, Mac OS und Linux, wo der Basis-Typ einfach hier sitzt,
und
das sollte Dollar
Sign Home sein, kein Hashtag Home. Ich entschuldige mich. Das heißt also nur, dass
sich das Zuhause der Projektdatei oder der Datei program.cs im Stammverzeichnis
befindet, oder? Die Dotnet-Tools sollten also auf die Wurzel
des Projekts
zeigen. Wenn Sie also
Mac OS oder Linux verwenden, müssen
Sie
diesen Befehl zuerst ausführen. Nachdem Sie diesen
Befehl ausgeführt haben, ist
dieser nächste Teil jedoch für alle, die sagen
, dass dotnet die
B-Net-Dashcode-Generierung ist ,
vier Generationen. Da haben wir's. Steuerung. Stimmt das? Jetzt sehen wir
Dotnet und wir wissen, dass dies der Name des Tools
ist,
weil wir es gerade installiert haben. Und wir wollen einen Controller
erstellen. Dann können wir
Dinge wie den Namen eingeben. Also kann ich den Namen des Bindestrichs sagen. Und lassen Sie uns mit dem
Controller für die Kurse beginnen. Wir wollen einen Controller
für unseren Kursbetrieb erstellen. Also ich werde sehen, dass der Name des Bindestrichs Betrug
ist, ist natürlich, der Kurs stimmt. Natürlich sein Controller, denn das ist die
Namenskonvention. Dann können wir das Modell spezifizieren. Also ich kann Dash m sagen. Und
welches Modell verwenden wir? Nun, das Modell, das wir
verwenden, ist natürlich, okay? Wir sehen also einen Bindestrich m und dann sehen wir Kurs. In Ordnung? Dann müssen wir den
Datenkontext oder den Datenkontext spezifizieren. Und ich möchte nicht alles
manuell ausschreiben, also springe ich einfach da
rüber, kopiere den Namen und füge
ihn in die Befehlszeile ein. Da haben wir's. Dann haben wir noch ein paar andere Dinge. Das wird also tatsächlich diesen Controller
generieren,
aber ich möchte, dass er in
den spezifischen Ordner der Kontrollwarnungen verschoben wird, oder? Also werde ich nur den Bindestrich sehen, relative Ordnerpfad des
Bindestrichs
entspricht Controllern. Nun, es gibt kein Gleichheitszeichen. Ich entschuldige mich, lassen Sie
mich nicht gleich sagen. Dann können wir
Dinge angeben, die wir im Standardlayout
verwenden möchten . Und wenn wir auf
Skriptbibliotheken verweisen wollen, so generiert die Kombination all
dieser Dinge den Controller mit diesem Namen unter Verwendung dieses Modells und
dieses Datenkontextes. Und es öffnet die
Controller für diesen Ordner. Aber dann sehen wir, dass das Standardlayout
verwendet wird,
was bedeutet, dass die Ansichten, die zusammen mit
einem Controller
generiert werden zusammen mit
einem Controller
generiert werden , die Option
annehmen, bei der wir nur die
Standard-Layoutdatei verwenden wollten. In Ordnung, wir könnten auch andere Optionen
haben. Diese anderen Optionen werden
Sie normalerweise in
der Benutzeroberfläche sehen , wenn
Sie Visual Studio verwenden. Also hier können wir
Referenzskriptbibliotheken sehen. Lass mich es zusammenbrechen. Referenzskriptbibliotheken und dann können wir sagen wie falsch. Ordnung, das sind andere
Optionen, die wir uns ansehen können. Wenn Sie alle Optionen sehen möchten, können
Sie natürlich immer dotnet, ASP, NET, Bindestrich,
Cogeneration Dash H
oder Control H sagen Bindestrich,
Cogeneration Dash H , um
alle Ihre Optionen zu sehen. Lassen Sie uns jedoch
damit fortfahren. Ich drücke die Eingabetaste. Oh mein Gott, ich entschuldige mich. Ich habe diesen Befehl
völlig falsch geschrieben. Das sollte keine Kraft-Wärme-Kopplung
sein, das sollte Generator genannt werden. Ordnung, das ist der Wagen. Lassen Sie mich also
zuerst ein CLS machen und den Befehl
erneut von Grund auf lesen. Also ASP
NET-Codegenerator. Da haben wir's. Also drücken wir die Eingabetaste
und lassen es erneut laufen. Ordnung, und dann hätte
es
innerhalb weniger Sekunden hätte
es unser Projekt erstellt und Code
für uns generiert. Lassen Sie uns sehen, was es getan hat. Es hat den Build gemacht,
dann hieß es,
die
Generatorsteuerung zu finden und die
Generatorsteuerung
läuft. Also das ist das. In Ordnung. Und dann sieht es
, dass es die Entity
Framework-Metadaten für
den DB-Kontext und
das
Modell namens Course herausfindet Entity
Framework-Metadaten für
den . Dann wurde der Controller
zum Controller-Schrägstrich hinzugefügt Dieser Verzeichnis-Slash-Dateiname. In Ordnung, und
dann wurden die Ansichten hinzugefügt. Also schau hier, es
wurde für Ansichten,
Indexierung, Löschen, Details,
Bearbeiten und Erstellen hinzugefügt . Und dann wurde uns gesagt,
dass
die Laufzeit 18 s betrug. Wenn wir
nun in
unserer Dateistruktur nachschauen ,
sehen wir tatsächlich einen neuen Controller. Das ist ein bisschen kleiner. In Ordnung, wir
sehen also, dass wir
einen neuen Controller namens Course haben . Natürlich ist es Controller. Und wir sehen hier, dass es den DB-Kontext
injiziert. Und ich werde jetzt nicht zu sehr
ins Detail gehen, ich
werde zurückkommen und alles
erklären, aber ich möchte nur, dass wir
einen Blick darauf werfen, was wir haben. Wir haben unsere Indexseite, wir haben Details
oder Aktionen oder anderes. Es gibt viele Optionen für Details. Wir haben unsere Create-Aktion
, um tatsächlich Aktionen zu erstellen. Also werden wir herausfinden, warum wir müssen, wir haben die Bearbeitung. Wir haben tatsächlich zwei Änderungen. Wieder einmal haben wir gelöscht
und wir haben ein weiteres Löschen. In Ordnung? Und wenn wir dann
in unseren Views-Ordner schauen, sehen
wir, dass wir einen
neuen Ordner namens Courses haben. Denken Sie also daran, dass Sie, sobald
Sie diesen Controller
haben, den entsprechenden
Views-Ordner benötigen. Und wenn wir es erweitern, werden
wir
View-Dateien sehen, die zu jeder Aktion passen ,
die wir in unserem Controller
erhalten haben. Bevor wir also anfangen, den Code zu
untersuchen, sollten wir überprüfen,
ob er läuft. Also werde ich einen Dotnet-Lauf machen. Wenn die Seite dann geladen wird, navigieren
wir einfach manuell. Wir werden das
alles später beheben, aber ich kann nur
Slash-Kurse sagen. Und denken Sie dann daran, dass
es immer zuerst
nach der Indexaktion sucht. Wenn ich das mache
und die Eingabetaste drücke, wird unsere Angebotsseite geladen. Hier würden wir also alle Kurse
im System sehen. Wir können auch mit
der Erstellung neuer fortfahren. Wenn ich also auf
Neu erstellen klicke, komme ich zu einem Formular. Lassen Sie mich weitermachen und einen neuen Kurs
hinzufügen. Sehen wir uns die
Open-Source-Entwicklung an. In Ordnung. Der Kurscode lautet zum Beispiel
CS101. Und dies ist ein
Kurs mit drei Kreditpunkten, mit dem wir
ihn erstellen und uns dann ansehen können. Das alles ist also nicht dynamisch. Ich habe nichts
von diesem Code 12 geschrieben, du weißt, dass alles, was auf einer HTML-Seite
angezeigt wird , entweder statisch geschrieben werden
musste oder es wird dynamisch
geladen. Das kommt jetzt also direkt aus der Datenbank, oder? Wenn wir zur Bearbeitung gehen, werden
wir sehen, dass uns die Entzündung
gekauft wird. Wenn ich okay sage, ist
das eher ein Kurs mit zwei Krediten und
ein Kurs mit drei Krediten. Ich kann sparen. Dort wird es bearbeitet. Ich kann mir die Einzelheiten ansehen. Und das ist im Grunde das, was
wir mit einer Menschenmenge meinen, oder? Das ist also, es zu lesen. Wir können nicht näher darauf eingehen, es zu lesen. Wir können bearbeiten und wir
können auch löschen. Also, wenn ich sage löschen, löschen, los geht's. Genau dort
haben wir die
Crowd-Funktionalität mit einem
einzigen Befehl in r.net CLI generiert . Wenn wir also zurückkommen, werden
wir
den Code aufschlüsseln und uns genau
ansehen, was wir aus dieser
Gerüstbauübung herausgeholt haben.
22. Scaffolded Controller verstehen: Willkommen zurück, Leute.
In dieser Lektion werden
wir uns mit
unserem Kurscontroller befassen, und wir wollen uns nur die Zeit
nehmen, um zu verstehen, was
der Code tut. Ich habe also mein
Terminal
zusammengeklappt und werde im Explorer immer wieder zusammenbrechen während wir den Code untersuchen, oder? Sie können also weitermachen und
den Courses Controller öffnen. Was Sie dann sehen werden nachdem wir
das Ganze mit Block
und Namespace und dem
Public Class Course Controller durchgegangen sind, es von
der Basisklasse des Controllers erbt, was ziemlich normal ist. Wir werden sehen, dass wir
diese Injektion der
Abhängigkeit von der Datenbank haben . Lassen Sie mich nun erklären, was das
bedeutet, wenn ich Injektion sage. Normalerweise, wenn Sie eine Klasse haben und ein
Objekt der Klasse wollen, sehen
Sie tatsächlich
so etwas wie und ich gebe
es einfach hier ein. Sie würden sagen, der Name eines
Datentype-Objekts entspricht einer neuen Instanz
dieses Datentyps. dann wissen, dass Sie das Objekt
haben, können
Sie es verwenden. Dies kann jedoch je nach Art
zu
Problemen führen , insbesondere bei
einer Datenbankverbindung. Denn jedes Mal, wenn du etwas Neues machst, verbindest
du die Klasse
und das Objekt
tatsächlich eng , oder? Also nein, ich habe My Courses
Controller eng an den
Datenbankkontext
gekoppelt . Wenn ich das ändere,
muss es in solchen Kontexten liegen. Zum Beispiel gibt es
mir eine Fehlermeldung, weil
ich jetzt bestimmte Parameter angeben muss und wie ich dafür verantwortlich sein kann, diese Parameter
jedes Mal zu
verhindern , wenn
ich dieses Objekt
verwende, ein Objekt von dieser Typ. Das ist also nicht wirklich nachhaltig und
auf lange Sicht aufrechtzuerhalten. Das Konzept der Abhängigkeitsinjektion bedeutet also
, dass ich den Kurs haben kann. Ich kann diese Klasse so
oft ändern, wie ich brauche,
um DB-Kontexte zu meinen. Es kann sich weiterentwickeln, es braucht möglicherweise
mehr Parameter oder was auch immer. Aber so sehr es sich weiterentwickelt, ich muss nicht
jede einzelne Stelle ändern , auf die
ich Bezug nehme. Ich kann
es einfach in meinen Code einfügen. Und im Hintergrund macht
die Anwendung alles, was sie tun muss. Das nennen wir
Dependency Injection. Wir mussten die
Abhängigkeitsinjektion oder den DB-Kontext einrichten und
ihn für
die
Abhängigkeitsinjektion vorbereiten , als wir unseren DB-Kontext zuvor
erstellt haben . Wenn wir also zu program.cs gehen,
denken Sie daran, dass wir
diese Zeile hier eingegeben haben und dort steht,
Dienste zum Container hinzufügen. Der Container hier,
den IOC-Container außer Betrieb nehmen
oder die Kontrolle umkehren, oder? Das ganze Konzept der
Inversion der Kontrolle und der
Abhängigkeitsinjektion,
diese beiden gehen also Inversion der Kontrolle und der
Abhängigkeitsinjektion, Hand in Hand. Das bedeutet, dass wir die Anwendung so
einrichten , dass sie diese
sogenannten Abhängigkeiten
überall einfügen
können . So sehr wir
die eigentliche Klasse hier ändern können, wenn sie
als Abhängigkeit injiziert wird. Der Empfänger
erhält Unterricht, also muss sich die
Kurssteuerung in diesem Fall nicht
darum kümmern , sie mit
all ihren Abhängigkeiten zu versorgen. Weil der IOC-Container sich um all das
kümmert. Okay, es ist ein
ziemlich cooles Konzept und es führt zu
viel saubererem Code viel effizienteren
Wartbarkeit auf lange Sicht. Dieser vollständige asp.net Core
hat also diesen integrierten IoC-Container. In der Vergangenheit brauchten Sie keine Bibliotheken von Drittanbietern. Und manche Leute greifen immer noch
auf Bibliotheken von Drittanbietern zurück, aber das ist heutzutage nicht unbedingt erforderlich,
wenn man dotnet Core verwendet. Nachdem wir also unsere Abhängigkeit
injiziert haben, was in diesem Fall
RDB-Kontexte sind, und es ist eine
Abhängigkeit, weil wir den
DB-Kontext
benötigen, um mit
der Datenbank oder dem DB-Kontext zu sprechen der Datenbank oder dem DB-Kontext oder Das Objekt vom Typ db
context stellt in diesem Fall die Verbindung
zur Datenbank dar. Wenn wir also auf
die Kursseite klicken und der Index geladen
wird, stellt sie
eine Verbindung zur Datenbank her,
ruft die Daten ab und zeigt sie an. Das bringt uns zu
unserem nächsten Teil
, der Aktion. Was passiert jetzt
in der Aktion? Zuerst überprüfen wir,
ob der Kurs Table,
quote unquote ist, tatsächlich
in der Datenbank existiert, oder? Sobald dies also tatsächlich in der Datenbank
existiert, wir
die Ansicht mit den Daten zurück. Das ist in einer Zeile geschrieben. Ich meine, es ist ein ternärer Operator. Wenn es sich also über
mehrere Zeilen erstreckt, ist
es wirklich eine
einzeilige Aussage. Das könnte also
zu einiger Verwirrung führen. Das wurde natürlich für uns
generiert. Aber das macht
so ziemlich viel, ist Sehen. Und ich werde das einfach in
einem Kommentarblock lesen und versuchen, es in Pseudocode zu
schreiben. Es macht also Sinn. die Datenbanktabelle
existiert, oder? Das ist es also, was diese
erste Zeile macht. Wenn das existiert,
wollen wir die Ansicht zurückgeben. Oder lassen Sie mich Sie tatsächlich sehen
, die eine Abfrage ausführen möchten. Wir sagen also, dass var-Datensätze in einer Tabelle der Abfrage
entsprechen würden. In diesem Fall
ist unsere Abfrage also eine Gewichtung von Kontexten, Punkten, Kursen, und diese
Werkzeugliste ist Sink. Wir verwenden also einen
Sharp-Dialekt namens Link, oder? Link hier ist, was EF Core verwendet. Da ist die Bibliothek, um zur Datenbank zu
gehen und die Datensätze basierend
auf der Abfrage
abzurufen, die aus
unserer Anweisung generieren kann. Hier
heißt
es im Grunde, ich
konvertiere das einfach in eine SQL-Anweisung, die besagt
Wählen Sie einen Stern aus dieser Tabelle aus. Wir müssen
es jedoch nicht in den Code schreiben, da wir den Dialekt verlinken
haben,
um ihn für uns zu übersetzen. Also hier sehen wir im Grunde , dass ich dadurch die
Datensätze in der Tabelle erhalte. Ich warte auf eine Verbindung
zur Datenbank, besorge mir die Tabellen und erhalte alles in
Form einer Liste. Nun, einige Keywords, die
Sie feststellen werden, sind asynchron. Ich warte ab und gebe Aufgaben. Wenn wir
asynchrone Programmierung durchführen, ermöglicht
dies
effizientere Abfragen und effizientere Abläufe. Und syntaktisch müssen wir
nur sicherstellen, dass wir diese Aussagen im Laufe der
Zeit mit
einbeziehen. Ich erkläre sie,
sobald sie auftauchen. Aber ich möchte das jetzt nicht als
Hauptfach studieren. In Ordnung. Also holen wir uns
die Datensätze aus der Tabelle und wissen dann
, dass wir die Datensätze haben. Wir geben
die Ansicht zurück , die Sie zuvor mit
diesem Namen gesehen haben und in der sie mit
den Daten
aus der Datenbank
in View umgewandelt wurde . Das ist es also, was diese beiden
Linien tun, so ziemlich. In Ordnung? Wenn eine Tabelle existiert, ist
das dieser Teil. In Ordnung? Und dann schalte ich keinen
Operator ein, das Fragezeichen. Und was wir dann tun sollten, dann sagen wir im Grunde, geben Sie
die Ansicht mit diesen Daten zurück. Aber alles was ich hier oben gemacht habe, wir teilen das in zwei Zeilen auf, holen die Daten dann
wieder zur Ansicht zurück. Es ist also so ziemlich
dasselbe, oder? Ich denke, dieses Format liest sich auf lange Sicht
vielleicht etwas besser, aber wenn Sie es
hier schätzen, dann ist das in Ordnung. Wenn das dann nicht als wahr bewertet wird
, wir
eine weitere Rückgabeerklärung in der wir dieses Problem zurückgeben. Zu sehen, dass
etwas mit der Datenbank nicht
stimmt, oder? Das Problem ist nur ein spezielles
Objekt, anhand dessen
wir sehen können ,
dass ein Fehler aufgetreten ist. Jedes Mal, wenn ein Fehler auftritt, können
wir das Problem zurückgeben und die Anwendung
zeigt es entsprechend an. Hier heißt es also
, dass die Entität, die im
DB-Kontext
der Schulverwaltung sitzt , nicht richtig eingestellt wurde. Es ist nicht so, dass es nicht existiert oder, weißt
du, etwas
stimmt nicht, es geht darum, es nicht zu finden. Das ist es also, was diese eine Zeile ist. Lassen Sie mich
das, diesen Kommentar hinterlassen. Vielleicht hilft es Ihnen , diese eine
Codezeile besser zu analysieren. Das fasst also zusammen,
was passiert, wenn wir unsere Indexseite geladen haben. In Ordnung, wenn wir uns die Ansichten
ansehen, werden
Sie sehen, wie wir
die Daten vom Backend
an das Frontend binden . Aber das meinte ich mit
der Magie, die der Controller tut, bevor er die Ansicht
ausschaltet. Request Gaming ging
in die Datenbank, hat unsere Daten bekommen, dann haben wir
die Ansicht zurückgegeben, welche die Daten. Wenn wir nun zu den Details gehen, passieren innerhalb der Details noch einige weitere Dinge. Wenn wir versuchen, die Details zu laden, werden
Sie feststellen, dass dies versucht wird
oder dass ein ID-Wert erwartet
wird. So werden die
Wurzeln also aussehen. Kurse, Details,
Schrägstrich und der ID-Wert. Und dieser ID-Wert geht in eine Parametervariable, die
wir id nennen, oder? Als erstes stellen
wir sicher,
dass diese ID nicht Null ist. Es heißt also, ob die ID Null ist oder die Datenbanktabelle auf dasselbe Problem
stößt wie hier oben. Es existiert nicht,
dann kehren wir zurück. Kein Spaß, nicht für sie ist das
Gleiche wie ein Fluorophor. Wenn Sie also auf
Websites gehen und
auf bestimmte Dinge klicken, sehen
Sie möglicherweise eine Vier oder Vier,
weil sie nicht gefunden werden können. Nun, hier ist ein
Live-Beispiel dafür. Wenn das dann, wenn
keiner von beiden erreicht wird, gehen wir zum Abschnitt zum
Abrufen des Kurses , in dem
wir die Datenbank sehen. Geben Sie mir die Tabellenkurse und geben Sie mir dann den ersten Datensatz , der mit der von mir angegebenen ID
übereinstimmt. Das
nennen wir also einen Lambda-Ausdruck. Wir haben das schon einmal gesehen, wir haben das schon einmal gemacht. In Ordnung, aber beim Schreiben von Abfragen sind
sie praktisch, wenn wir bestimmte Bedingungen spezifizieren
möchten . Also hier sehen wir, gib mir den ersten
Stern-Standarddatensatz wo, und dann beginnen wir mit dem
Lambda-Ausdruck mit diesem Token und dann diesem Pfeil. Und dann sagen wir
Tolkien-Punktspalte, dass wir
daran interessiert sind zu vergleichen, ob
sie
gleich, gleich, kleiner als,
größer als,
größer als gleich usw. sein gleich, gleich, kleiner als, wird. Was auch immer der Vergleichstyp ist, der Wert, den wir uns wünschen. Okay, nein, das ist unsere Standardeinstellung, weil zuerst bedeutet, dass es
den ersten Datensatz erhält , der der Bedingung entspricht. Selbst wenn mehrere angezeigt werden, wird die erste zurückgegeben. Oder Standard bedeutet, dass, wenn Sie nichts gesehen haben, Null
zurückgegeben wird. In Ordnung? Deshalb heißt
es danach,
wenn der Kurs Null war,
dann wird wenn der Kurs Null war, Rückgabe nicht gefunden. Weil es sein könnte
, dass ich danach gefragt habe, natürlich mit der ID 50. Wenn es keinen Kurs
mit der Idee von 50 gibt. Also wenn er es danach nicht
finden könnte, wäre das Null. Und wenn bekannt ist, dass
wir nichts gefunden sehen. Sobald dies alles
bestanden hat, geben
wir jedoch die Ansicht mit den Daten, mit dem Objekt,
mit
dem Modell oder einem Objekt
außerhalb des Modelltyps zurück Objekt,
mit
dem . Das ist es also, was
innerhalb der Details passiert. Und so wie es geschrieben ist, ist
es etwas einfacher
als der Einzeiler hier. Ich muss hier
keine Anmerkungen schreiben. Dann gehen wir zu
Create und du wirst sehen , dass die Kreationen ungeschickt sind, hier oben. Ordnung, wir haben
also Create, get, our F erstellt einen Post und GET-Operation
verwenden wir normalerweise , um Entzündungen abzurufen. Also hier
kehrt es einfach zur
Ansicht zurück , denn wenn
wir auf Erstellen klicken, wird nur die Ansicht
zurückgegeben , mit
der
wir erstellen können. Wenn wir jedoch im Formular auf
Senden klicken, empfiehlt es sich,
Daten mit einer Post-Anfrage einzureichen. Und deshalb
haben wir den Beitrag erstellt. Also haben wir das Get Created
und wir haben den Beitrag erstellt. Das Postscript
erhält
hier eine Anmerkung mit der Aufschrift HTTP-Post. Es validiert auch ein Anti-Fälschungs-Token,
um sicherzustellen, dass wir nicht oder wir begrenzen die Anzahl der Einsendungen, die
eingehen falls unser Körper stark
für Spam war oder so. Jedes Mal, wenn Daten eintreffen haben Sie
höchstens dieses Token, das nur dem Server
bekannt ist. Der Server weiß also, wie er dieses Token
validieren kann, das aus dem Formular
kommt. Wenn wir es nicht validieren können, wird es diese Versuchungen zurückweisen. In Ordnung? Dann sehen
wir in der Parameterliste hier, dass
wir eine Bindung durchführen. Die Bindung hier besagt im Grunde, ich an Feldern mit
diesen Namen interessiert bin dass
ich an Feldern mit
diesen Namen interessiert bin, die
möglicherweise in diesem Objekt eingereicht wurden. Ordnung, du kannst diese Liste
erweitern. In Ordnung? Wenn Chorus eine neue Kolumne bekommen würde und
wir darauf eingehen wollten, könnten
wir diese Liste
entsprechend erweitern. Und wir fügen einfach ein Komma hinzu, den nächsten Feldnamen. Wir könnten auch
ein Ansichtsmodell erstellen, aber darauf werden wir an
dieser Stelle nicht eingehen. Sie können jedoch lesen und sagen, dass
Sie zum Schutz vor
Überposting-Angriffen die
Eigenschaften angeben können
, Schutz vor
Überposting-Angriffen die
Eigenschaften angeben können
, damit Sie in diesem Parameter mehr darüber erfahren können, was
passiert. Aber im Grunde sagen
wir nur , dass unabhängig von den Daten, die eingereicht werden, wir alle
an den Daten mit
diesen Namen interessiert sind. Also hat jemand versucht
, mehr Daten zu senden als für
dieses spezielle Formular benötigt wurden, dann wurden diese zusätzlichen Felder automatisch abgelehnt weil sie
diese Wertbedingungen nicht erfüllen. In Ordnung. Dann schauen wir weiter, ob der
Modellstatus gültig ist. Der Modellstatuspunkt ist
gültig. Ziemlich viel. Die Validierung basiert auf unseren eigenen Validierungsregeln
, die wir später erstellen können. Und die Validierungsregeln,
die C-Sharp
auf der Grundlage der verwendeten Datentypen ableitet. Also hier haben wir eine Zeichenfolge. Die Zeichenfolge kann nicht auf Null gesetzt werden. Es würde also im Grunde
heißen, Hey, ich erwarte hier einen Wert, aber in diesem ist dieser Nullwert. Also, wenn ich ein
Objekt vom Typ erhalte, und das sich aus irgendeinem Grund als
Null herausstellt. Und Sie werden hier sehen, dass es so etwas
wie ein altes Huhn oder eine Kontingenz gibt, um
sicherzustellen , dass es immer einen
Wert hat. Aber lass uns einfach sehen. Er kam mit einem
Wert rein, der Null ist, dann würde diese Überprüfung
automatisch feststellen, dass er
nicht gültig ist , weil ich
eine Zeichenfolge erwarte und
Null erhalte, sie ist nicht gültig. Was passiert, wenn
es nicht gültig ist? Dies wird übersprungen, da
dies als falsch
bewertet wurde. Und es wird
nur die Ansicht
mit dem Objekt zurückgegeben , das eingereicht wurde. In Ordnung. Das ist der Grund, warum, wenn Sie
ein Formular abschicken und es einen
Fehler enthält, ja. Tatsächlich wird das Formular mit
den Daten, die
Sie gerade eingereicht haben, neu geladen . Das ist also alles, was hier
passiert. Wenn es jedoch gültig ist, dann sagen wir Datenbank, wir fügen diesen Datensatz hinzu. Ich weiß, dass Sie die Kette
speichern möchten, also das ist es, was sie tatsächlich
in die Datenbank überträgt. Und dann leiten wir zur
Aktion mit dem Namensindex weiter. Lesen Sie Derek, die Auktion ist der Grund,
warum sie zurück
zur Angebotsseite springt und
Ihnen dann einen neu erstellten Datensatz zeigt , der die Datenbank kennt. Das ist also alles, was passiert. Anstelle der Creates. Wenn wir zum Editor gehen, werde ich sehen, dass
es
der Detailseite sehr ähnlich ist, sehr ähnlich ist weil sie
einen ID-Wert empfängt ,
überprüft, ob
es sich um eine gültige ID handelt Wert. Es geht los, um den Kurs zu finden, obwohl diese Abfrage etwas anders
geschrieben ist, aber sie macht dasselbe. Finden Sie den Kurs anhand des Ausweises. Und wenn es dann
Null ist, zeigen wir es dafür. Wenn es nicht Null ist, haben
wir die Seite angezeigt Die Bearbeitungsseite wird
tatsächlich
ein Formular haben , das
der Seite Erstellen ähnelt, aber dieses Mal werden die Daten
tatsächlich abgerufen. Deshalb sehen wir, wenn
wir auf Bearbeiten klicken, die Daten tatsächlich derselben Form, wie ein
Dekret aussieht, aber wir erhalten die Daten tatsächlich. Wenn wir dann einreichen, stellen Sie fest, dass es auch abgelehnt hat. Es führt die gleiche Validierung
des Anti-Fälschungstokens durch. Wir nehmen
die ID und validieren sie und überprüfen die eingehenden Felder
. Ordnung, also das gleiche Konzept wie der Beitrag, den wir uns gerade für den Create
angesehen haben. Dann machen wir noch
ein paar Validierungen,
bei denen wir sagen, okay,
stellen Sie sicher, dass die ID
, die hier im Link eingeht , mit
der ID übereinstimmt, die aus dem Formular
kommt. Andernfalls geben Sie einen Fehler zurück. Dann sagen wir, ob der
Modellstatus gültig ist, werden
wir versuchen, den
Datensatz zu aktualisieren und die Änderungen zu speichern. Jetzt gibt es Fälle
, in denen ich
den Datensatz möglicherweise verwendet habe , um ihn zu aktualisieren, und
Sie haben möglicherweise dasselbe getan. Und dann haben wir versucht, es einzureichen, oder als Sie es einreichen, habe ich es bereits
eingereicht. Sie bearbeiten also eine
ältere Version. Das wird also zu
einer sogenannten DB-Parallelitätsausnahme führen . In Ordnung? Und wenn das passiert,
dann heißt es, ob der Kurs existiert oder ob er
natürlich nicht existiert, dann gib kein Telefon zurück. Andernfalls werfen Sie einfach
die Ausnahme aus, weil wir nicht ganz sicher sind, wie wir
damit umgehen sollen, richtig. Aber das wäre selten, aber es passiert. Es ist also gut, diese
Kontingenz zu haben. Nach all dem lesen
wir Erich auf die Indexseite, genau wie beim Erstellen. Am Ende geben wir auch
die Ansicht mit den Daten zurück ,
falls sie nicht gültig war. Ordnung, Sie werden also anfangen
zu sehen, dass der Code
sehr ähnlich aussieht , weil
dies Code auf diese Weise ist. Dies wird als Neuzuweisung der
Details bezeichnet und alles, was
hier passiert , ähnelt dem, was bei einem Erstellen
passiert. In Ordnung, dann fahren wir mit
dem Löschen fort. Also geben wir
eine ID für das Löschen ein. Er wird dasselbe tun, was
die Details und
die Bearbeitung gerade gemacht haben wo überprüft wird
, ob die ID den Kurs
findet und überprüft, ob er Null ist, wenn es nicht alles ist, werden
wir eine Seite, die uns die
Details des Kurses zeigt. Dann gab es einen Löschknopf. Wenn Sie sich an unseren Test erinnern, wissen Sie
einfach, dass ein Beitrag eingereicht wird, wenn
wir
darauf klicken . Das wissen wir schon, oder? Und dieses Mal heißt es nur , dass es einen anderen
Aktionsnamen verwendet, oder? Die Methode ist also anders, aber wenn wir möchten, dass sie zu einem bestimmten Namen
navigiert, können
wir diese Anmerkung spezifizieren und sagen, dass Sie sich als gelöscht
identifizieren, obwohl Sie als gelöscht bestätigt
bezeichnet werden. In Ordnung, wir validieren immer noch
das Anti-Fälschungstoken. Dann, dieses Mal, wo wir überprüfen, ob die Datenbank
existiert, ist das in Ordnung. Wir gehen und holen uns den Kurs per Ausweis. Und wenn wir den Kurs dann
finden konnten, haben wir versucht,
ihn aus der Datenbank zu entfernen. Sobald es entfernt ist, speichern
wir die Änderungen. Und dann lesen
wir noch einmal Erich, um zu indexieren. Deshalb wird jedes Mal, wenn
wir einen Vorgang abgeschlossen haben, immer
wieder zur
Angebotsseite zurückgeleitet ,
weil jeder Vorgang, einer erfolgreich, wir sagen, dass er zur Indexseite
weiterleitet. Die letzte Methode in
diesem Controller überprüft nur ob der Kurs existiert. Und das wurde wirklich
nur
im Bearbeitungsbereich verwendet , oder? Wo wir sehen, ob es nicht
existiert , dann nicht gefunden. Dies ist also nur eine weitere
Möglichkeit, festzustellen, ob es dort existiert, wo in der Datenbank
wir die Methode any haben. Also Kontexte Punkttabelle, Punkt beliebig. Und dann können wir sagen ,
welchen Zustand wir überprüfen? Gibt es also einen Datensatz
, der diese Bedingung erfüllt
, und in diesem Fall
sieht er, wo die ID mit dem ID-Wert übereinstimmt
, den wir übergeben. Und dann erhalten wir entweder
den Wert, der bis zu unserem Standard
wahr wäre , der Null wäre. Das ist so ziemlich das, was in unserem Controller
passiert. Das war eine schnelle
und dreckige Tour. Wir werden es nicht ändern. Wir werden
den Boilerplate-Code hinterlassen. Und später
werden wir anfangen, unsere eigene benutzerdefinierte Logik zu
schreiben. Aber im Moment ist es
gut,
den Boilerplate-Code zu verstehen und zu
wissen, was er tut. Wenn wir zurückkommen,
werden wir uns die passenden Ansichten
für jede dieser Aktionen
ansehen die passenden Ansichten
für jede dieser Aktionen
ansehen und wie die
Bindung zustande kommt.
23. Gestellte Ansichten verstehen: Ordnung Leute, also
lasst uns weitermachen In Ordnung Leute, also
lasst uns weitermachen
und anfangen, uns unsere Ansichten anzusehen. Also werde ich alle Wannen schließen ,
die für diese Aktivität nicht
unbedingt erforderlich sind . Lassen Sie uns dann
im Ordner Views
suchen und dann nach dem Ordner des Kurses suchen. Und dann fangen wir
mit dem Index an. Also mache ich es in der
Reihenfolge, in der wir die Seiten
wahrscheinlich tatsächlich
besuchen würden . Und natürlich
ist die Indexansicht die erste, die angezeigt wird
, weil die Indexaktion die erste Aktion
ist
, die aufgerufen wird. Und wenn Sie sich erinnern, wird
die Indexaktion tatsächlich
die Datenbank abfragen und diese Daten dann an die Ansicht zurückgeben. Wenn es also
diese
Daten an unseren View-Index zurückgibt, erfolgt hier
die gesamte Bindung. Gehen wir also von Zeile eins aus. Zeile eins gibt das Modell vor. In Ordnung? Bei Sinusmodell ist das also nur ein Schlüsselwort, das
Sie oben
bei Ansichten sehen , die
Datenbindung sind, oder? Und dann wird der
Datentyp angegeben. Hier heißt es also, dass der
Datentyp, dass diese Ansicht gebondet ist, unzählig ist,
was ein Sammlungstyp ist, was Sinn macht,
da wir eine Liste von Objekten
übergeben . Das ist also unsere
Sammlung, oder? Natürlich Objekte. Das ist es also, was es erwartet. Jetzt, da es weiß, dass es an dieses Modell binden
sollte, können
wir jetzt auf
die verschiedenen Teile zugreifen. Wir haben den Abschnitt „Reguläre
Datenansicht“. haben wir schon einmal gesehen. Wir haben
hier ein H1-Tag mit der Aufschrift Index. Wir haben ein P-Tag, das ein
Ankertag enthält, mit dem wir zur
Create-Aktion
navigieren können , oder? Beachten Sie hier also, dass
es sich nur um Aktion handelt. Früher, als wir uns die kleine Seite angesehen haben, die Sie in
ASP sehen werden , ist Controller gleich und Sie hätten Action
und Controller in Peers gesehen. Wenn wir den Controller jedoch nicht
angeben, wird automatisch davon ausgegangen dass er nach der Auktion
in demselben Controller
sucht in demselben Controller , von dem die aktuelle
Ansicht stammt. Der aktuelle View-Index
stammt also vom Controller des
Kurses. Es wird also davon ausgegangen, dass
es zur
Create-Aktion im
selben Controller gehen sollte . Ordnung, dann schauen wir uns einen Tisch an. Denken Sie also daran, dass wir
die Liste der Aufzeichnungen gesehen haben. Und dann
haben wir in dieser Tabelle einige Hilfsmethoden. Und dieser heißt
Anzeigename für. Ordnung, das ist also eine
HTML-Erweiterungsmethode , die sich im Grunde den Namen
der Eigenschaft in der
Modellklasse
ansieht , oder? Sie stellen also fest, dass es einen Lambda-Ausdruck
verwendet. Und es schien, als würde man dieses Knie
modellieren, Modellpunkt-Code,
Modellpunkt-Credits. Und sie weiß
aufgrund des spezifizierten Modells
davon . Wenn ich also diesen Modelltyp ändere nur um ein bisschen provokativ
zu sein, wenn ich ihn auf Student umstelle, dann stelle ich fest, dass dieser Typ aufleuchtet, weil keine
dieser Eigenschaften
zu diesem Modelldatentyp gehört. Es ist also sehr, sehr sensibel, sehr stark
typisiert und
reagiert sehr empfindlich auf den
Datentyp, den sie
hier verwenden , im Vergleich zu den Eigenschaften , auf die Sie
zugreifen. Ich kehre zurück. Du wirst sehen, dass die
Lichter ausgehen. Was wir hier tun, ist, dass wir für die Tabelle
spezifizieren. Der Header. Die erste Zeile sollte Tabellenkopfspalten enthalten, die einen
Namen und Credits
angeben. Dann haben wir ein leeres th und wir werden sehen
, warum das leer ist. Dann gehen wir runter zur
Leiche. Das ist also der Kopf. Nirgends am
Korpus des Tisches. Für den Körper
verwenden wir eine Foreach-Loop. Und denken Sie daran, dass wir jedes Mal, wenn wir C-Sharp im HTML
haben
wollen, nur ein
At-Zeichen benötigen und dann unseren C-Sharp-Code
schreiben können . Also hier sehen wir
für jeden Artikel im Modell. Das Modell hier ist also das eigentliche Objekt, das den hier angegebenen Datentyp
annimmt. Beachten Sie den Unterschied,
dieser ist ein Sinusmodell. Bei diesem Modell handelt es sich um ein Capital M-Modell. In Ordnung? Also hier sage ich, besorgen Sie mir jedes Objekt in
diesem Modell oder in diesem Objekt, das
vom Typ Sammlung ist ,
natürlich Objekte. Jetzt kennen wir diesen
Loop. Also der beste Weg ,
Sammlungen durchzugehen, oder? Gehen Sie also die Sammlung durch und erstellen Sie für jede, die Sie finden
, eine neue TR- oder Tabellenzeile
und erstellen Sie eine Spalte
, die den Namen anzeigt, eine Spalte, die den Code anzeigt, oder eine Spalte, die
zeigt die Credits an. In Wirklichkeit könnte ich
eigentlich einfach bei
Sign Item Punkt Credits sagen , oder? Ich muss also wirklich nicht einmal sagen, dass
die Anzeige, wofür diese Hilfsmethoden tatsächlich uns
diese Hilfsmethoden tatsächlich
helfen,
die Art und Weise ist, wie sie angezeigt wird, denn manchmal möchte man eine spezielle Anzeige
für beispielsweise eine Checkbox. Wenn es ein boolescher Wert ist,
wird ein Kontrollkästchen generiert. Wenn wir es manuell eingeben, würde es tatsächlich das Wort wahr
ausdrucken, oder? Deshalb würden wir das manchmal benutzen
wollen. Als wir tatsächlich
ein Steuerelement
dynamisch anzeigen wollten , das dem
Datentyp der Eigenschaft entspricht. Also zeige ich dir nur
die Optionen, oder? Für diese Zeichenketten
- und numerischen Werte benötigen
wir also wahrscheinlich keine
besonderen Überlegungen. Wir könnten eigentlich
einfach, ich würde sagen Artikelpunktmodell manuell sagen. Aber für Boolean
und einige andere sollten
Sie
ihnen wahrscheinlich erlauben, sollten
Sie
ihnen wahrscheinlich erlauben das für Sie zu generieren. Dann haben wir den td
, der zum MTT H passt, und dieser hat die Aktionen. Wir haben also eine
Optionsschaltfläche zum Bearbeiten
einer Aktionsschaltfläche für Details einer
Aktionsschaltfläche zum Löschen. Ich stelle fest, dass alle von ihnen
an die entsprechenden Aktionen schreiben werden . Okay, aber sie geben
auch weiter,
das ist der P Dash
Root-Dash ID-Wert, was die Item-Punkt-ID ist. Was ist
also die Relevanz davon? Denken Sie daran, dass
wir uns im Controller für die Bearbeitungsmethode ansehen. Wenn wir uns die Bearbeitungsmethode ansehen, das EDI get,
erwartet es diese ID. Das bedeutet also, dass jeder Link, der
diese Bearbeitungsmethode aufrufen
wird , diese ID übergeben
muss. Deshalb müssen wir SP Dutch Root Dash ID
sagen. Denn wieder einmal, es ist ein Ausweis. Wenn sie Welpe sagen würden,
dann müssten wir ASP Dash, Dash Puppy
sehen. So funktioniert es einfach. Die Bindung erfolgt
also automatisch. Und dann ist der Wert, den wir übergeben, der ID-Wert des Elements,
das in dieser bestimmten Rolle verarbeitet
wird . In Ordnung? Das Gleiche gilt
für Details und Löschen. Und das war's für
die Indexseite. Schauen wir uns nun die
Seite Erstellen an, weil sie leer ist. Also wollen wir einen Datensatz erstellen. Das ist wahrscheinlich das Erste
, was wir tun wollen. Jetzt haben wir hier ein Formular. Und es ist ein sehr ähnliches
Konzept, bei dem nein, es wird ein Modell erstellt,
aber beachten Sie, dass wir
unser Modell von oben spezifizieren. Aber im Controller haben wir ihm
eigentlich
keine Daten gegeben, oder? Alles, was wir getan haben, war eine
Ansicht ohne Daten zurückgegeben. Warum spezifizieren wir auf dieser Seite
ein Modell? Nun, weil es ein Forum ist,
in dem ich hier oben
spezifiziere, welche Art von Objekten wir zum
Ausfüllen bilden wollen Objekten wir zum
Ausfüllen bilden wollen, ein Modell spezifiziere, können
wir damit den Ton angeben oder
den Kontext für den
Rest des Formulars festlegen . Also beginnen wir damit,
die
verständlichen Standardteile zu
überspringen verständlichen Standardteile und direkt
auf den Forum-Tab zu gehen. Das Formular hier gibt ASB action equal
creates, equals grades
zurück. Das heißt, sobald das
Formular eingereicht ist, wird
es versuchen,
zum Erstellen zu gehen, und
standardmäßig wird ein
Beitrag eingereicht, oder? Natürlich würden Sie
normalerweise
so etwas wie Methode gleich Beitrag sehen . In Ordnung? Aber dann ist das impliziert. müssen wir also nicht sagen. Und es weiß, dass es, wenn es eingereicht wird, an die Create
geht. Und wir
haben schon gesehen, dass wir das get erstellen müssen, und dann haben wir den Beitrag. In Ordnung? Nachdem es das getan hat, nachdem wir eher ein Formular deklariert haben, gibt es
hier einen Abschnitt, in dem es heißt, sollten wir die Zusammenfassung anzeigen,
die sollten wir die Zusammenfassung anzeigen,
die
Validierungszusammenfassung, die als
nützlich erweist, wenn sie falsch ist, Wenn die Validierung fehlschlägt und wir die
Ansicht mit den Daten zurückgeben, druckt
dieser Abschnitt
tatsächlich aus welche Felder fehlten,
welche Daten, oder? Es ist also praktisch. Schauen wir uns einen Teil
der Steuerung an. Das ist also ein
Standard-Bootstrap-Formular. Wenn Sie mehr
über Bootstrap-Formulare erfahren
möchten, können Sie jederzeit in der
Dokumentation nachschauen wie empfohlen wird,
Ihre Formulare zu gestalten. Also die wichtigsten Teile hier, wir haben das Etikett und stellen fest
, dass dies ASP für Name ist. Wie ist sein Name? Der Name stammt vom Modell. Das ist also ASP oder die Bezeichnung für die Namenseigenschaft aus dem angegebenen
Modell,
was Kursähnlichkeit für
die Eingaben ist , wir haben
den ASP für Nim, was bedeutet, dass wenn Sie welchen
Wert auch immer eingeben wird
es automatisch an die
Namenseigenschaft für das Objekt
gebunden. Wenn wir es einreichen,
wird diese Namenseigenschaft natürlich hier
drüben angezeigt und wir können
über unsere Objekte darauf zugreifen. Das ist also alles, was
fließt, oder? Ich bin so ziemlich der Fall, dass das
bei allen anderen Immobilien der Fall ist. Wir haben den Eingabe-Bone zum Codieren, wir haben den
Eingabe-Bone, zwei Credits. In Ordnung. Jetzt wird auch
die beste Art von Steuerung generiert, HTML-Steuerelement für den Datentyp. Beachten Sie also, dass wir
den Eingabetyp oder
ähnliches
nicht angeben . Wir sehen nur Input
und ESP für das Feld. In Ordnung, also wenn wir einen booleschen Wert
haben, wird automatisch ein Kontrollkästchen
generiert. So mächtig sind
diese HTML-Helfer, sind
diese HTML-Helfer wenn wir es
mit Ariza-Seiten zu tun haben. In Ordnung? Dann haben wir unseren Absenden-Button. Sobald Sie darauf
klicken, wird erneut eine Einreichung
an oder ASP wird tatsächlich erstellt. Und wir wissen, was danach
passiert. Sobald es das getan hat, wenn es gültig ist und so, dann laden wir die Indexseite neu. Jetzt, auf der nächsten Seite
mit mir, habe ich auf Details geklickt. Schauen wir uns also die Detailseite an. Denken Sie also daran, dass das
im Controller ist. Für Details ist ein Ausweis erforderlich. In Ordnung. Es wird den Datensatz
abrufen und dann die Ansicht mit diesen Daten
zurückgeben. Oder die Detailseite
muss wissen,
welcher Datentyp
erwartet wird. Dann wird für
jede der Eigenschaften
dieselbe Art von Anzeige, Name und Anzeige ausgeführt. Aus diesem Grund sehen Sie auf der
Detailseite den Wortnamen und dann den Wert,
der dieser Name
hatte, das Wort Cord, und dann den Wert, der in den Kern eingegeben
wurde, das Wort Credits und den Wert das
wurde in Credits umgewandelt. Das sind also alle Details, die es gibt. Am Ende können
wir wählen, zur Bearbeitungsseite zu gehen , auf
der erneut der Routen-ID-Wert
angegeben
und die Modellpunkt-ID übergeben wird . Oder wir können zum Index zurückkehren und die externen
Dosen zurück zur Liste. Wenn wir nun Bearbeiten wählen, worauf treffen wir
dann? haben auf ein Formular gestoßen
, das tatsächlich mit unserem
Create-Formular
identisch ist, oder? Es ist
wirklich dieselbe Form, es gibt nur ein
paar Unterschiede. Das Modell wird
also dasselbe sein. Noch einmal, Controller. Als wir versucht haben,
es zu bearbeiten , lass mich das schnell
herausfinden. Als wir versucht haben,
zu bearbeiten, wird
der Datensatz abgerufen und dann die Ansicht mit diesem Datensatz zurückgegeben. Deshalb haben
wir Daten
im Formular, wenn die Bearbeitungsseite geladen wird. Sie werden auch feststellen
, dass wir
hier oben im Formular eine Eingabe
für die ID haben , die versteckt ist. Warum ist das so? Nun,
wir müssen die ID wissen, wenn das Formular eingereicht
wird,
da der Beitrag Schecks
enthält, die sicherstellen, dass die
eingereichte ID sicherstellen, dass die
eingereichte ID oder die eingehende
ID,
der Parameter hier mit dem übereinstimmt ob das
auf dem Formular eingereicht wurde, oder? Also hier ist die Bindung für die
ID und natürlich diese ID. In Ordnung, also entspricht sie dem. In der Regel benötigen Sie die ID, wenn Sie ein Update durchführen
können. Denn wenn das
Entity Framework tatsächlich alle Updates durchführt, muss
dieses Objekt
einen ID-Wert haben, damit es weiß, dass es
ein Update und kein Einfügen durchführen soll . Okay, für eine Beilage benötigen
wir die ID wirklich nicht, also ist es sicher,
diese Bindung tatsächlich zu entfernen , da
wir nicht zulassen sollten dass
jemand
eine ID schicken kann , wenn er
einen Datensatz erstellen. Also könnte ich das tatsächlich löschen. Ordnung, aber
für die Änderungen ist
es absolut notwendig, da die Datenbank diese ID
kennen muss , damit sie
das Update einhalten kann , wenn wir die Änderung
erhalten. Okay, nun, innerlich ist
alles andere so
ziemlich
dasselbe wie das, ist
alles andere so
ziemlich
dasselbe wie das was wir
mit dem Create gesehen haben. Die
Aktion ist also natürlich anders , weil sie in
den Beitrag bearbeiten geht. Und aufgrund der Bindung und der Tatsache, dass Daten gesendet
wurden, enthalten die Eingabe-Tags
automatisch die Daten, die Objekt
entsprechen, das während des
Get-Vorgangs gesendet wurde . In Ordnung? Aber abgesehen davon ist
es so ziemlich die gleiche Form
, die wir für den Create gesehen haben. Dann fahren wir mit dem Löschen fort. Nun, das Löschen von
Seiten, ziemlich einfach. Wir wissen schon, welche. Es wird einfach versuchen,
den Datensatz zu
finden , genau wie das, was mit den
Bearbeitungen und den Details
passiert ist. Und dann wird die Ansicht mit
dem Datensatz zurückgegeben. Nein. Nun, wir sind gerade dabei,
Seiten zu löschen und fragen: Bist du sicher? Und dann werden
wirklich nur
die Details des Datensatzes angezeigt , den wir löschen können. Es ist also wirklich fast identisch mit
der ausführlichen Rede. Allerdings gibt es
hier
ein kleines Formular, das es uns ermöglicht, die ID des Datensatzes
, der gelöscht werden soll, zu
binden. Und dann können wir auf
Löschen klicken, um das Formular abzusenden, oder wir können uns anschnallen
und zur Liste zurückkehren. Wenn wir uns also dafür entscheiden, zu senden, was
passiert,
geht dieses Heidi-Tal mit der Daten-Payload
auf unsere Methode zum Löschen von Beiträgen über . Wenn wir also zur Methode
zum Löschen von Beiträgen übergehen, erhält
sie diese ID. Und dann führt es
diesen
Löschvorgang wie erwartet aus diesen
Löschvorgang wie erwartet und kehrt dann
zum Index zurück. Und das ist so ziemlich
alles, was unsere Ansichten tun. Und wir haben gesehen, wir haben
einen kompletten Crud-Test gemacht. Wir sehen, dass alles
verkabelt ist, alles funktioniert, alle Navigationen zwischen
den Seiten funktionieren und das ist
alles sehr wichtig. Wir benötigen jedoch das
Navigationstool, zumindest die Indexseite. Jemand ist ein Jumbo
mit dem Layout und das haben wir schon einmal gemacht. Also werde ich das
einfach nochmal machen. Wir hatten
die About-Seite eingeführt. Ich kopiere einfach die
ganze Paste. Und dann wird die
ASP-Kontrolle diesmal Pferde sein. Die ASB-Aktion ist Index. Und dann wären die Texte, die
wir
hier sehen werden, Kurse. Okay, jetzt haben wir ein neues Element, das, wenn man darauf
klickt,
zur Indexaktion
unserer Kursseite wechselt. In Ordnung, Sie können diese Änderung
vornehmen. Mach weiter und drücke Dotnet Run und nur die Gedanken
und lass mich sehen. Für ein Aldol haben wir bestätigt, dass alles funktioniert und wir sehen,
wie alles verkabelt ist. Wenn wir also zurückkommen,
werden wir weitermachen und
die Gerüstbauaktivitäten für
unsere anderen Modelle
in unserer Datenbank wiederholen die Gerüstbauaktivitäten für .
24. Scaffolding und -Controller – Teil 2: In Ordnung Leute, wir wissen, dass wir sehen wie einfach es ist, Crud-Funktionalität zur
Unterstützung unserer Datenbanktabellen zu
generieren . Lass uns weitermachen und es
für die anderen tun, oder? Also haben wir den Kurs schon gemacht. Lassen Sie uns dasselbe tun. Ich mache einfach
Control Shift und Apostroph, um
das Terminal zu starten. Ich werde
bestimmte Dinge auf dem Bildschirm loswerden, damit ich mehr Platz habe. Und dann wiederholen wir den Befehl,
den wir zuvor ausgeführt haben,
nämlich den dotnet ASP NET Hyphen
Code Generator Controller. Wir können hier einfach
Änderungen vornehmen , weil wir die
gleichen Einstellungen wollen. Der einzige Unterschied wäre
jetzt , dass wir
es nicht mit Kursen zu tun haben. Wir haben es mit, sagen
wir, Dozenten zu tun. Und dann
wäre das Modell hier Dozent. Und wir haben das CMD, es sind alle Kontexte
derselbe relative, fallen auseinander. Alles andere ist so
ziemlich dasselbe. Also, wenn ich das mache, die Eingabetaste drücken
und dann ein paar Sekunden warten, dann werden wir sehen, dass es erfolgreich
gelaufen ist, oder? Jetzt haben wir uns
an den Controllern und Views um unseren
Vortragstisch gekümmert. Und
das mache ich einfach noch einmal. Und dann kannst du
es für unsere Schüler tun. Die Schüler kontrollieren also und die
Schüler sind das Modell. Drücken Sie die Eingabetaste. Und los geht's. Jetzt können wir also zurückgehen und sehen , dass wir zusätzliche
Controller und Views haben. Also natürlich auch
Vorlesungen von Studierenden. Und in unserem Ordner für die Ansichten haben
wir Kurse, wir haben
ganze Webvorlesungen, wir haben geteilt und wir
lassen Studenten schreiben. Der Code ist
so ziemlich derselbe. Der einzige große Unterschied
, den Sie hier
erwarten können, wäre also , dass
Sie statt
eines Tabellennamens einen anderen Tabellennamen sehen, oder? Sie werden dieselbe
Injektion des DB-Kontextes sehen, dieselbe Art von
Boilerplate-Code, außer dass es nach
Vorlesungen statt nach Studierenden sucht, nach Lehrveranstaltungen
statt nach Dozenten usw. Also alles hängt vom tatsächlichen Controller und
dem verwendeten Modell ab. Nun, wenn ich die Navigation
zu jedem von ihnen haben möchte folge diesem Beispiel und stelle
sicher, dass ich das
eingebe, , folge diesem Beispiel und stelle
sicher, dass ich das
eingebe, damit ich die Navigation des
Kurses habe. Ich dupliziere das einfach zweimal. Und ich füge eine Navigation
für die Dozenten ein. Dieser sollte also zur
Indexaktion des
Dozenten-Controllers gehen . Und dann
machen wir das hier unten für die Schüler. Und das war's. Lassen Sie uns Dotnet ausführen
und unsere Anwendung testen. In Ordnung, wenn unsere
Anwendung gestartet wird, werden
wir sehen, dass wir alle
Navigationseigenschaften haben. Wenn ich also auf Kurse klicke, haben
wir die Kurse bereits validiert. Wir können einen neuen
Kurs erstellen, einen Namen angeben. Also Einführung in die
Webentwicklung. Wir können ihm den Code CS101 geben, und das ist ein Kurs mit
drei Kreditpunkten. Und dann erstellen wir,
und dann haben wir unseren ersten Kurs im System, oder zumindest zu diesem Zeitpunkt, den zweiten Kurs
im System, oder? Wenn Sie auf diese
Navigationsschaltflächen klicken, können Sie sich
auch die URL
notieren, die
generiert wird , oder
Kurse hinzufügen,
Schrägstrich zwei, das ist unsere ID. Und dann wissen wir, was hinter den Kulissen
passiert. warum wir die Daten
auf jeder dieser Seiten sehen. Wenn ich versuchen würde, zu den
Details für einen Datensatz 20 zu gehen, dann bekommen
wir das für hundert aus Versehen. In Ordnung? Das ist also der Standard, das
Standardverhalten von Anfang an. In Ordnung? Wir haben also bestätigt, dass der
Kurs bereits überfüllt ist. Lassen Sie uns die
Vorlesungsmenge validieren,
damit ich die erste
Vorlesung im System erstellen kann. Und sein Name ist
Troy for Williams. Beachten Sie nun, dass unsere Labels
hier buchstäblich
wie die Labels in der Klasse aussehen , genau dort der Name
der Klasseneigenschaften. Also werden wir das später ein bisschen verschönern wollen
. Sie
möchten nicht unbedingt das Kamelgehäuse oder Pascal-Gehäuse hier
auf Display-Ebene haben. Aber nein, das ist eine
Bestätigung dafür, dass es funktioniert. Also haben wir nicht gearbeitet. Und natürlich bin ich mir sicher, dass Sie es testen
können. Ordentlich und detailliert. Aber lassen Sie uns zu
den Schülern übergehen. Und die Schüler und
das System wären, sagen
wir, Tyrone Cooper. Und dann notieren Sie Geburtsdatum, wo ein Datumswähler automatisch weiß, dass
ich gesehen habe, dass das Eingabe-Tag anhand des Datentyps die beste Art der Steuerung ableitet. Wenn ich also zur Seite „Für den Schüler
erstellen“ springe, siehst
du, dass sie ihm nicht sagt , dass
es sich um einen Datumstyp handeln
soll. Es werden nur
Eingaben für dieses Feld angezeigt. Nein. ASP.Net Core
weiß beim Rendern der Seite, dass es sich um ein Datumsfeld handelt. Es generiert also automatisch das Eingabe-Tag mit dem
Datumstyp datetime local. Das ist es also, was
hinter den Kulissen passiert. In Ordnung? Wenn ich nun keinen Wert angebe, der benötigt wird, stellen Sie fest, dass mir die
Validierung fast sofort auffällt. Wenn ich versuchen würde, auf Erstellen zu klicken, kann
ich nirgendwohin gehen bis ich einen Wert angegeben habe, oder? Also kann ich einfach noch einmal
Cooper sagen. Und als ich dann das
Geburtsdatum erstellt habe, war das optional. So kann ich Schüler
ohne diesen besonderen Wert hervorbringen. Wenn ich es erneut versuche und dann
auf Erstellen klicke, leuchtet Validierung auf und
mir wird mitgeteilt , dass diese Felder erforderlich
sind. Das ist also quasi die gesamte
Validierung eingebaut. Wir können dies erweitern, aber im Moment denke
ich, dass dies
gut genug ist um die
Integrität unserer Daten zu schützen. Und es reicht für uns, mit der Demoversion dieser Software zu
beginnen. Wir können jetzt zu der
Schule gehen, für
die wir die Software entwickelt haben , und
sagen: Hey, weißt du, das ist ein Machbarkeitsnachweis.
Lass mich wissen, ob das deinen
Bedürfnissen entspricht. Wenn wir also
zurückkommen, werden wir unsere Anwendung noch
etwas
erweitern.
25. Zu GitHub hinzufügen: In Ordnung. Bevor
wir also weitermachen, werden
wir
einchecken oder uns verpflichten. Es ist also immer eine gute
Praxis, dass Sie sich verpflichten, wenn Sie einen
Meilenstein erreichen. Also springe ich einfach
zum Abschnitt zur Verwaltung der
Quellcodeverwaltung und sage Datenbank- und
Gerüstansichten und Controller
hinzugefügt. Das ist die Chicken-Botschaft. Also dann können wir weitermachen und hier
siehst du, dass ich
zu viele Informationen habe und Datenbanken,
Views und Controller
hinzugefügt habe. Die Datenbank befindet sich also auf Controllern. Da haben wir's. Und dann können wir uns verpflichten und pushen. In Ordnung, jetzt können wir mit dem
Verschönern oder Auftragen fortfahren .
26. Ansichten und Elemente anpassen – Übersicht: In dieser Lektion werden
wir uns darauf
konzentrieren, unsere
Anwendung ein wenig zu verschönern. Und wenn ich verschönern sage, wenn wir zu einigen
unserer gerüsteten Seiten springen, werden
wir sehen, dass, ja, es wird wenig
Bootstrap verwendet, aber es kann
Verbesserungspotenzial geben oder die Schaltfläche Erstellen oder Schaltfläche „Bearbeiten“. Diese Knöpfe, die
Axontasten, sie sind einfach Standard. Was wir also tun möchten, ist
wahrscheinlich reingehen und sie ein bisschen
verschönern und einige Formatierungen hier
korrigieren, Abstand zwischen
diesen Abschnitten schaffen. Und selbst für die Tabelle hier ist
dies eine
Standard-Bootstrap-Tabelle, aber wir können sie wahrscheinlich
verschönern. In diesem gesamten Abschnitt werden
wir uns also darauf
konzentrieren, werden
wir uns also darauf
konzentrieren einige Designelemente hinzuzufügen. In der nächsten Lektion fügen
wir den Seiten also etwas
Bootstrap-Styling hinzu und
formatieren sie einfach ein wenig ,
damit wir den Anschein
eines kohärenteren
Benutzers haben Anschein
eines .
Schnittstelle.
27. Boostrap Styling hinzufügen: Okay, lassen Sie uns mit einigen
unserer Schaltflächen auf der
Kursseite
beginnen unserer Schaltflächen auf der
Kursseite Ich werde das Aussehen
dieser Links ändern. Das Coole an Bootstrap
ist, dass ich ein
reguläres Link-Ankertag ganz einfach in
einen Button verwandeln kann . Wenn ich rüberspringe, lass mich einfach alles schließen
, was nötig ist und ich werde mich mit den Kursen
befassen. Erschaffe Schnee. Fangen wir mit dem Index an. Es tut mir leid. In Ordnung, es ist auf der
Indexseite. Was haben wir? Wir haben das H1-Tag mit
der Aufschrift Index. Index, okay? Natürlich
ändere ich das Wort Index der Kurse, weil
der Wortindex für jemanden
viel weniger bedeutet,
als ihn
wissen zu lassen, dass er sich die Seite
mit den Kursen
ansieht. Das sind also kleine Dinge. Aber ich sagte Verschönerung. Für das Anker-Tag
, mit dem wir zum Create
navigieren können, kann
ich dann , mit dem wir zum Create
navigieren können, einige Bootstrap-Klassen hinzufügen. Wenn Sie wissen möchten, dass die
Klasse wieder da ist, können
Sie jederzeit die
Bootstrap-Dokumentation aufrufen und sie können sich die Schaltflächen
ansehen. Aber ich kenne einige von ihnen auswendig , weil sie so konsistent
und so einfach zu bedienen sind. Also zuerst, dass ich btn sehen kann. Übrigens, wir werden das so transformieren
, dass der Link weg aussieht, oder? Dann kann ich angeben, welche Art
von Bt und ich wünsche mir das Haus. Also für unsere Kreationen
hätte ich vielleicht so etwas wie grüne Knöpfe, damit ich
sagen kann BTN, Dash Success. Und wenn Sie sich an
die Farbpalette erinnern, gibt
uns der
Erfolg einen grünen Knopf. In Ordnung? Und dann kann ich das sogar ein bisschen
anpassen. Platziere dort ein Pluszeichen, unternimmt was auch immer es ist. Das liegt an Ihnen
für den Textteil, aber ich zeige Ihnen nur,
wie einfach es ist, einen
unregelmäßig aussehenden Link in
ein nettes visuelles Element zu verwandeln unregelmäßig aussehenden Link in , das wie eine Schaltfläche
aussieht. Und es funktioniert immer noch,
denn wenn ich darauf klicke, gehen
wir immer noch zu dieser Seite. Also lassen Sie uns dasselbe
für die Details tun und löschen. Das Coole daran
ist, dass wir es einmal
machen können , weil sie immer wieder
auf der Grundlage dessen wiederholen. Ich muss das also nicht für
jede Platte machen , ich schleife
nur einmal. Also hier ist plus gleich btn. Das ist Edit verkauft
, gebe dem wahrscheinlich einen Strand auf Niederländisch Warnung. Ich schreibe sie einfach ein
, damit du sie dir danach
nur einmal ansehen kannst. Also BTN Dash Warning, diese, ich gebe ihr eine BTN Primary. Lass mich ein bisschen herauszoomen. Und dann zum Löschen gebe
ich diesem
einen BT und Gefahr. In Ordnung, was bedeuten diese nun? Jede davon steht für eine Farbe in der Palette
von Bootstrap. Sie können also nicht noch einmal
gehen und sich die Farben ansehen, aber es
wird immer sein, tut mir leid, eine Warnung
wird immer eine Art
REM-Schrägstrich Amber Primaries sein , aber um uns diesen
Blauton zu geben und delete wird uns das Rot
geben. In Ordnung? Und dann kann ich
all die Pfeifen
zwischen diesen Bars nehmen . Diese Riegel, die kann ich
rausnehmen. Und ja, das
sieht viel besser aus. Okay, also nein, jeder
Kurs, der erstellt wird. Also, wenn ich hier reingehe und
sage, gib mir einen neuen Kurs, lass uns zurück zur
Open-Source-Entwicklung gehen. Der Code ist CS1 oder zwei, und Credits sind zwei Credits. Und dann klicke ich auf Erstellen, dann siehst du,
dass sie diese Konsistenz haben. Bei all dem Aussehen der Tasten
wird diese
Benutzeroberfläche
umso bunter und ansprechender,
je mehr Tasten hineinkommen diese
Benutzeroberfläche
umso bunter und ansprechender,
je mehr , richtig. Das ist es also für die Indexseite, zumindest für den Moment, oder? Sie können Ihre eigenen
Anpassungen vornehmen, da Sie Meinung sind, dass Sie möglicherweise sogar
andere Farben verwenden , als
ich es hier verwende. Das liegt ganz bei
Ihnen und behalten Sie Ihre Vision für Ihre
Anwendungschromosomen bei. Lass uns rüber
zum Create Beach gehen. Von create ist er
kreativ und natürlich, und dann haben wir die
Textfelder, oder? Lassen Sie uns also rüberspringen, um zu erstellen. Und was ich
zuerst tun werde, ist diese Tools zusammenzuführen. Also erstelle einen Kurs und werde
dieses Alter für Todd los , Leave the HR. Und dann werde
ich für die Eingänge einen kleinen
BR zwischen diese roten legen. Ich will sie nicht so
nah beieinander haben. Also im Formular setze
ich einfach diese Brücke zwischen jedes Formular-Gruppen-Div. Sie ist das Form-Group-Div ,
dann BR und dann wieder Form-Group
Div, BR usw. Danach sieht
das Formular allerdings etwas
geräumiger aus. Wir haben eine Aufstellung
oben, die offensichtlich ist. Kurs erstellen, oder? Und dann für die Schaltflächen werde ich tun,
also was passiert, ist, dass
dies keine Formulargruppe ist. Das ist die Schaltfläche Erstellen. Ich vereinfache die Verwendung von BTN primary. Und dann zurück zu List ist
ein Ankertag für sich. Also nehme ich einfach dieses Ankertag,
füge es in dieselbe Formulargruppe und dann kann ich ihm eine Klasse geben. Und nennen wir es
btn, btn dash, dark. In Ordnung, also wenn ich jetzt darauf
zurückblicke, sieh dir das an. Also nein, ich kann einen Kurs erstellen, das Formular
ausfüllen, okay, und dann kann ich entweder erstellen oder ich kann zur Liste zurückkehren. Damit es für mich für dieses Formular
etwas sauberer aussieht. In Ordnung, und wenn ich zurück zur Liste
klicke, geht
es einfach zurück
zum Bearbeitungsformular, das dem Erstellungsformular sehr ähnlich
ist, oder? Ich denke also, dass wir hier die gleiche
Art von Änderung vornehmen können. Also kopiere ich einfach diese Änderung des Anker-Tags und
gehe zu Bearbeiten. Ich werde diesen
entfernen , weil sie
sowieso in
denselben Bereich gehen , dieselbe URL. Also derselbe Anker. Um diese aufzulisten, werde
ich eine BTN-Warnung machen und ich sage
Änderungen speichern. Das ist also der Schaltflächentext
, den ich im Bearbeitungsformular haben möchte. Und ich möchte, dass du weißt , dass, wenn du bereit
bist, das zu tun, desto kürzer, das ist es,
was du tun willst. Also mache ich diese
Warnung und wir haben denselben schwarzen Knopf
, der zu LR zurückkehrt. Und dann muss
ich das Formular selbst hier bearbeiten. Das heißt also Kurs
bearbeiten in einer Zeile. Und wir können ein paar Break-Tags hinzufügen. Das passiert,
wenn Sie einen Klick verpassen. Lassen Sie uns also einige
BR-Tags zwischen unseren
Formulargruppenabschnitten hinzufügen . In Ordnung, jetzt, nachdem wir
all das gemacht haben, gehen wir los. Kurs bearbeiten, benannt
, noch einmal vor
dem Button-Abschnitt. Okay, los geht's. In Ordnung. Jetzt wissen Sie also, dass
Sie beim Speichern von Änderungen sicherstellen
müssen, dass Sie das
tun möchten , und wir können darauf zurückkommen. In Ordnung, bisher sieht es gut aus. Gehen wir also zurück zur Liste
und dann lassen Sie uns alle Details
auf der Detailseite sprechen, die Interpretation, wie
die Details aussehen sollen. Das ist neuer. Ich werde mich hier wirklich nur auf das Layout
konzentrieren. Also werde ich einfach die
Kursdetails oben sagen. Und wir können das für entfernen, also nennen wir das
eine Datentabelle in HTML. Und du hast im Grunde ein d t und das d, oder d d, oder? Also Datenliste, und dann haben Sie die Datenzeilen und die
Datenspalten. Ziemlich viel. Das wäre
das Etikett und dann wären das
die tatsächlichen Daten. Wenn Sie das
ändern möchten, können Sie. Ihre Interpretation
davon hängt natürlich davon
ab, wie Sie
diese Seite bewerten. Ich werde
das Layout selbst nicht ändern. Ich werde mich einfach auf
die beiden Tasten konzentrieren , die wir hier
sehen und die wir haben. Eddy dreht die Liste zurück. Also werde ich einfach
die Klassen, die wir haben, wiederverwenden. Btn, btn Dash Warnung, wenn du bis zum Ende gehen
willst. Und für Geld aufzulisten
btn, btn dash dark. In Ordnung, und es wird
das Rohr zwischen ihnen entfernen . Und dann sind das die Details. Ich bin also nicht bereit
, hier zu viel zu tun. Wenn wir zur
Liste zurückkehren und dann mehr mit dem Löschen machen
können. Beim Löschen wird uns etwas
wie die Bestätigung angezeigt, die Detailseite, tut mir leid. Und dann bestätigen
oder löschen wir oder kehren zur Liste zurück. Ich werde die Löschseite nicht
ändern da wir
später die
Löschfunktion so
ändern werden, dass wir, wenn
eine Person
von hier aus auf die
Löschfunktion so
ändern werden, dass wir, wenn Löschen klickt, sie dazu auffordern. Bist du sicher? Und dann, wenn sie es bestätigen, und dann machen wir einfach
weiter und machen es. Also diesen Double-Hop, bei dem
du es dir ansiehst und dann löschst, das werde
ich entfernen. Ich werde also keine
Energie darauf verwenden, diese Seite zu ändern. Aber nein, ich denke, dass wir auf unserer
Website ein
besseres Erscheinungsbild haben , sie ist bunter. Und diese Farben erzählen
natürlich eine Geschichte. Die Farbe wird dem Benutzer darüber informiert was er
möglicherweise tut, wenn er
diese spezielle Option wählt. Wenn Sie andere Farben wünschen, können Sie
sich
natürlich die Bootstrap-Paletten
ansehen, sehen, welche anderen Farben es
gibt und welche Schüler einfach zu verwenden sind, und sie
verwenden oder
sie basierend auf Ihre Präferenz oder Ihre
Branding-Bedürfnisse? Nein. In der Zwischenzeit möchte
ich
Sie ermutigen, weiterzumachen und die gleiche Eutrophierung für Dozenten und Studierende wir gerade
gemeinsam für Lehrveranstaltungen durchgemacht haben. Meine Herausforderung an Sie
besteht darin, den Dozenten
und Studierenden
auf der Grundlage unserer Ansichten
Ihre eigenen Gestaltungselemente hinzuzufügen den Dozenten
und Studierenden
auf der Grundlage unserer Ansichten
Ihre eigenen Gestaltungselemente . In der nächsten Lektion
werden wir nun diese dynamischere
Löschfunktion implementieren . Und dann sehe ich dich.
28. Mit jQuery löschen: Willkommen zurück, Leute. In dieser Lektion werden
wir
einen dynamischeren Löschvorgang implementieren . Die Realität ist nun,
dass
wir für das Löschen nicht unbedingt löschen und dann
zu einer anderen Seite wechseln müssen . Andererseits, obwohl es
eine gute Maßnahme ist, sicherzustellen, dass wir sicher sind
, dass wir beide sind
, löscht
den Warenkorb-Datensatz. Aber was wir tun wollen, ist,
dem Benutzer zu ermöglichen , genau hier zu
bestätigen. Sobald sie dies bestätigt
haben, löschen wir im Hintergrund und laden die Seite
erneut. In Ordnung, was
wir also tun werden, ist einen
Bestätigungsbildschirm zu implementieren. Ich werde diese Bibliothek
namens Suites Alerts verwenden. Seats Alert ist eine
sehr nützliche Bibliothek , mit der wir
einige schöne Eingabeaufforderungen erstellen können , die
tatsächlich ein Beispiel enthalten. Und ich gehe direkt
zu dem Beispiel über, das wir verwenden werden ist ein bestätigter Dialog
mit einer Bestätigungsschaltfläche. Wenn wir also „Versuch es mit mir“ sagen, wird es angezeigt
und es fragt nur:
Bist du sicher, dass du das nicht rückgängig machen kannst? Natürlich können wir die Nachrichten anpassen
, die angezeigt werden. Und dann können wir
dem Benutzer ermöglichen,
den Löschvorgang zu bestätigen oder abzubrechen,
was er gerade getan hat. Dann ist hier der
Beispielcode, den wir brauchen, oder? Fangen wir also
mit der Installation an. Also springe
ich einfach zur Installationsseite und sie werden uns
erklären, wie es installiert wird. Wir können npm verwenden, aber wir werden npm nicht verwenden. Wir werden einfach
den CDN-Link verwenden , den
sie uns angeboten haben. Ein CDN ist so ziemlich nur
eine gehostete Version
der Skriptdatei oder der Assets, die Sie benötigen würden, um
die Bibliothek zu verwenden, oder? Wir können also ein CDN verwenden. Andernfalls könnten wir tatsächlich die tatsächlichen Assets,
die J
-, S- usw. Dateien, abrufen und sie in das Projekt einfügen. Aber wie gesagt, wir verwenden einfach das CDN. Wenn wir das kopieren, springen
wir einfach zurück
zu unserem Visual Studio. Kodierung. Projekte, die in den
Ansichten nicht geschert werden, werden in das Layout übernommen. Und wir werden
den CDN-Link genau
hier im Layout platzieren . Ich werde es nach
jQuery setzen , weil es
von jQuery abhängt. Ordnung ist also wichtig. Es muss nach der jQuery kommen. In Ordnung? Also jQuery, dann das und dann die anderen
Skriptdateien, die wir haben. In Ordnung. Also nachdem wir es hinzugefügt haben, einfach durch einfaches
Kopieren und Einfügen, denn diese URL
wird tatsächlich ergeben. Lassen Sie mich Ihnen nur zeigen, dass uns
das Auge tatsächlich dazu bringen
wird , genau dort zu sitzen. Das ist die Skriptdatei, auf die
immer verwiesen wird ,
sobald das CDN da ist. Nein, wir können weitermachen und
das Beispiel auf unseren Websites verwenden. Also bin ich bereit, mir diesen Code
auszuleihen. Ich springe
wieder rüber und lass uns mit Pferden
beginnen, oder? Indexseite. Nun, es gibt mehrere Möglichkeiten,
wie Java-Skript in R in der
Kernanwendung ausgeführt werden soll, oder? Wir können das JavaScript
direkt hier im Layout schreiben. Welcher Punkt ist
globaler, weil die Layoutseite
natürlich für jede einzelne Seite da ist, aber dann
wollen wir nicht unbedingt, dass das JavaScript
ausgelöst wird oder
auf jeder einzelnen Seite verfügbar ist. Wenn wir also wollen, dass es
auf jeder einzelnen Seite verfügbar ist, platzieren
wir es hier
weltweit, oder? Egal, ob wir bereit sind,
unseren eigenen Skriptbereich zu erstellen, oder ob wir auf
eine ganze Skriptdatei verweisen. In diesem Abschnitt können wir das weltweit tun. Sie werden aber auch feststellen, dass
wir
unter all dem dieses Ding
namens Render-Sektion haben. Und dieser Abschnitt wird
Skripte heißen. Was bedeutet das nun? Das bedeutet, dass ich
in jeder Ansicht, ein bestimmter
JavaScript-Code oder ein bestimmtes JavaScript-Skript ausgeführt werden soll, das
Vorhandensein dieses Abschnitts in dieser spezifischen
Ansicht aufrufen und
den JavaScript-Code schreiben kann spezifischen
Ansicht aufrufen und
den JavaScript-Code schreiben , der für diese Ansicht spezifisch
ist . Zum Beispiel, wenn ich nur möchte, dass mein Sweet Alert auf
der Indexseite für Kurse verfügbar ist. Ja, der CDN-Link ist, oder die gesamte Skriptdatei
ist global verfügbar, aber ich rufe ihre
Funktionalität nur in dieser Ansicht auf. Ich kann diesen Abschnitt
am Ende der Datei erstellen. Normalerweise setze ich es an
das Ende der Datei, aber es wird dynamisch in
Slotts generiert. Oder wir sagen, ich wäre wissenschaftlicher Teil. Und dann nennen wir das
Sexuelle beim Namen, der
, wie ich mich erinnere, Skripte
genannt wird. Das sind immer die
Skripte hier, okay? Also kann ich es mit seinem Namen aufrufen. Und dann kann ich dort mein Script-Tag eingeben und dann anfangen die JavaScripts zu
schreiben
, die ich für diesen Abschnitt ausführen möchte. Ordnung, also
werde ich zuerst einen ganzen
jQuery-Abschnitt erstellen. Wir rufen die Funktion auf. Und dann werde ich sehen
, dass das unrein ist. Wenn also auf diese
Schaltfläche zum Löschen geklickt wird
, wollte ich das wirklich tun. Wie identifiziere ich
, dass Knöpfe benötigt werden? Wenn Sie also noch einmal eine Auffrischung
von JavaScript wünschen, schauen Sie in meinem
Webentwicklungskurs in dem JavaScript
verwendet wird. Aber wann immer ich
ein bestimmtes Element
haben möchte, muss
ich es entweder mit einem Namen oder mit einer anderen Klasse referenzieren muss
ich es entweder mit einem Namen oder mit einer anderen Klasse referenzieren, von der ich denke, ich
gebe ihr einfach eine andere Klasse. Ich nenne es einfach Deep Btn. Das ist also meine Klasse. Es wird nicht dem Zweck
dienen, ihm ein Styling zu geben. Ich gebe ihm nur einen
Klassennamen, oder? Dann sage ich, wenn auf
diese Schaltfläche geklickt wird, also Dollarzeichen und ich verwende natürlich
einfach jQuery,
Punkt tut mir leid, Anführungszeichen, aber lösche btn, richtig,
sagt, das Element zu bekommen, das das Kreuz
hat lösche btn. Und dann habe ich mich
registriert, ich habe auf Veranstaltungen geklickt. Also onClick, ich möchte diese Funktion auslösen und verwende
E für das Event-Argument. In Ordnung, also ziemlich
großes jQuery-Objekt. Und dann sind
wir innerhalb dessen eher unsere Funktion. Und dann suchen wir darin Klickereignissen
für jedes Element, das
die Klasse delete btn hat, was in unserem Fall unsere
eigentliche Schaltfläche zum Löschen ist. Wenn das passiert, nein, ich kann den
Beispielcode, den wir gerade von
der Swell-Website entfernt haben, einfügen und ihn einfach so
formatieren, dass der Swell-Website entfernt haben, einfügen und ihn einfach er
etwas sinnvoller aussieht. In Ordnung. Also so ziemlich, lass mich einfach gehen. Ziemlich. Wir sehen
, dass, wenn darauf geklickt wird, diese
Swale-Alarme auslösen, oder? Titel. Bist du sicher,
dass du das nicht rückgängig machen kannst? Und es ist ein Warnsymbol. Dann zeigen wir die Schaltfläche Abbrechen. Dann können wir die
Bestätigungsfarbe
und die Farbe der Schaltfläche „Stornieren“ festlegen . Wir sehen, dass sie hier
zum Hexadex zurückkehren , aber das ist in Ordnung. Und dann kannst du ja
sagen, es löschen. Und wenn sie das bestätigen, also beachte nein, es wird zuerst dieser Teil ausgelöst,
das ist die Aufforderung. Dann heißt es, dann
bewerte die Ergebnisse. Die Ergebnisse
wären das, was sie anklicken, unsere Bestätigung stornieren. Nein. Sie werden sagen, wenn es bestätigt ist, wenn das Ergebnis bestätigt ist,
was bedeutet, dass Sie auf
die Schaltfläche Bestätigen geklickt haben, was machen wir
dann? In Ordnung, also was machen wir,
wird verschiedene Teile haben. Was wir tun wollen, ist den Löschvorgang
tatsächlich zu starten. Wir können die
Bestätigung anzeigen, ja, aber wir möchten
den Löschvorgang auch
im Backend starten . Also für diese Art von Operation tendiere
ich dazu, tendiere
ich dazu ein Formular zu
erstellen, weil wir die Funktionalität bereits haben, oder? Wir haben
die Funktionalität bereits in unseren, wir sind in Kursen. Lassen Sie mich also darüber springen
, dass natürlich
kontrolliert ist und
Ihnen zeigen, was das bedeutet. Wir haben bereits die
Funktionalität, bei der wir die ID
akzeptieren, oder? Und dann geben wir
es gebraucht weiter, und dann wird es Erich zum Index
vorlesen. Ich muss also wirklich nichts Besonderes
schreiben. Stattdessen werde ich ein Formular erstellen, das dem eigentlichen Formular ähnelt
,
das sich hier in der Delete-Methode befindet. In Ordnung, also werde ich
das einfach kopieren, brauche alles drin. Kopiere es einfach. Ich
brauche kein Geld, um es aufzulisten. Ich benötige nicht einmal einen
Absenden-Button, weil ich
eine jQuery verwenden möchte , um die
Einreichung in meinem Namen durchzuführen. Okay, hier wird
es aber aufregend. In Ordnung? Wir haben also unsere
ASB-Option Löschen. Und dann haben wir diese Eingabe
, die eine Bindung für ID hat. Jetzt erhalte ich all diese Fehler nicht hier, weil
es heißt, dass der
Kurs „Unzählige Augen“ keine Definition für ID enthält , oder? Das zahllose Auge hier oben, das ist eine Sammlung,
hat keine ID, weshalb wir forEach machen mussten
, um zum ID-Element zu
gelangen. Also eine Reihe von Anpassungen hier. Erstens muss ich dieses
Ankertag in eine Schaltfläche umwandeln, weil Buttons Formulare einreichen, keine Anker-Tags, oder? Wenn Sie sich
alle Formulare ansehen, werden
Sie feststellen, dass es sich bei all
diesen Formularen entweder um Eingaben
mit Fleischsorten oder um
tatsächliche Button-Tags handelt . Also werde ich einfach
das neue Element erstellen ,
anstatt das , das da
ist, zu zerstören. Ich wollte ein neues erstellen. Also sage ich Button. Wir geben
ihm ein Datenattribut. Dies ist eine coole Methode, die es
ermöglicht, einem Element in
HTML tatsächlich einen Wert
zuzuweisen , sodass der Wert, den
ich zuweise, dem Wert entspricht
, den die Artikel-ID hat. In Ordnung? Ich wollte dir den
gleichen Kurs geben, weil es
natürlich
der Löschen-Button sein muss. Da ich das also
als Löschtaste
habe, werde ich es
aus dem Ankertag entfernen. Und dann werde ich
ihm sagen,
dass sein Typ dem Button entspricht. Es wird also noch nicht versucht, ein Formular
einzureichen. Es sollte einfach
rumsitzen und zuhören, oder? Und dann können wir einfach
Löschtaste, Text sagen. In Ordnung. Ich markiere das einfach. Löschen Sie das alte, damit
wir den Klick nicht verpassen. Jetzt haben wir also eine Schaltfläche mit der Klasse delete btn. Und es wird
unseren süßen Alarm auslösen. Wann immer es angeklickt wird,
wissen Sie, wann es angeklickt wird. Was wollen wir tun? Wir wollen den
ID-Wert von hier nehmen, ihn
in das Formular einfügen
und dann das
Formular abschicken, sodass es nicht möglich ist, zum Controller gehen und tun, was er auf natürliche Weise getan
hätte. Also schneiden wir es einfach
scharf aus. Wir verwenden JavaScript, um uns
bei diesen Abkürzungen zu helfen. Ordnung, also lassen Sie uns
zuerst die Eingaben ändern. Ich möchte also nicht, dass
es vorher ist, sondern ich muss ihm einen Ausweis geben. Was also passiert, ist, dass ASB ich glaube, wir haben es uns schon einmal angesehen, automatisch die ID- und
Namensattribute für das Element einrichtet , von dem es sagt
, dass es zuvor war. In Ordnung? Also können wir das tatsächlich
außer Kraft setzen. Wir können diese manuell eingeben. Ich kann also sehen, dass dies die Kurs-ID
ist. Das ist eher der
Name oder die ID des Elements. Und dann
wäre der Name hier einfach Id. In Ordnung? Id, weil dies hier mit
dem erwarteten Parameter übereinstimmen muss . In Ordnung? Was
wir jetzt tun können, ist, wenn die Person bestätigt, dass sie diese
Löschung durchführt, okay? Ich kann sagen, dass es gelöscht ist. Aber wirklich und wahrhaftig, ich möchte sagen, gib mir den
Button, auf den geklickt wurde. Var-Schaltfläche ist also gleich. Und wenn ich dann nur ein Dollarzeichen verwende, erhalte ich das Objekt
, das das Ereignis ausgelöst hat, nämlich die Schaltfläche, auf
die geklickt wurde. Dann möchte ich mir
die ID über den Button holen. Also sage ich
BTN-Punktdaten und gebe mir die ID. In Ordnung? Also jedes Mal, wenn Sie diese
Datenattribute in Ihrem HTML verwenden und das, was in
diesen Datenattributen enthalten ist,
als Wert erhalten möchten . Dann
können Sie in JavaScript immer sagen, holen Sie sich die Elementpunktdaten und
dann den Schlüssel für diese Daten. Data Dash ID
macht IT also zu diesem Schlüssel. Okay, jetzt, wo ich die Daten von
der Taste
habe, werde ich sehen, wie Feuer dem Öl geht, bevor wir das Formular
abfeuern. Eigentlich muss ich dem den Wert
geben. Es gibt also eine Reihe von Schritten, aber wir werden sie einfach
zurückblättern, um sicherzustellen, dass wir auf
dem richtigen Weg sind. Also Dollarzeichen, öffnen,
erhöhen, Anführungszeichen. Und dann ist das Kurs-ID, Hashtag, Kurs-ID, oder? Dann legen wir den Wert
dieser Hashtag-Kurs-ID
auf den ID-Wert
über die Schaltfläche fest. Ich mache es nur Zeile für Zeile. Das könnte alles
in so ziemlich einer Zeile gemacht werden, aber ich teile es auf, damit wir alles klar sehen
können. Dann wollen wir dieses Formular
einreichen. Also, was ich
tun werde, ist diesem Formular
einen ID-Wert zu geben , damit ich es anhand seiner ID aufrufen
kann. Wir können diesen einen
Kurs Delete Farm nennen. Alles klar? Und dann werde ich sagen
, dass ich eher das Formular oder das
Dollarzeichen einreichen möchte . Und dann Hashtag, den Kurs aus Punkt-Subnetzen
löschen. Ordnung, das ist ein
netter und sauberer Weg und wir nutzen
vorhandenen Code. Lassen Sie uns also genau überprüfen
, was hier passiert. Erstens, ich ändere dieses
Anker-Tag in einen Button. Wenn auf diese Schaltfläche geklickt wird, versucht
sie nicht, irgendwohin zu
navigieren. Stattdessen werden diese
Klickereignisse ausgelöst. Dieses Klickereignis
löst dann
ein Sweet-Alert-Ereignis aus, bei dem
wir den Benutzer dazu auffordern. Bist du sicher? Wenn sie ja sagen, sind
sie sich sicher, dass
dieser Teil optional ist? So können wir später beurteilen, ob wir
wirklich wollten. Aber wir wollen die
Daten bekommen, bekommen die Schaltfläche dann die Daten
von der Schaltfläche,
das ist der ID-Wert
, auf dem sie gedruckt wurden. In Ordnung, also Daten-Dash-ID. Und dann möchten wir
diesen ID-Wert im Formular selbst festlegen diesen ID-Wert im und
das Formular
dann absenden. Das erwartete Verhalten
ist jedoch, dass, sobald wir
diesen ID-Wert hier festgelegt und dann das gesamte Formular
abgeschickt haben, zu der Löschaktion
mit diesem ID-Wert übergeht . Und das wird
diesen Löschvorgang auslösen
, der dann zum Index zurückkehrt. Es wird den Eindruck erwecken, dass es gelöscht
und die Seite aktualisiert wurde. Es ist keine Illusion. Das ist es, was tatsächlich
passieren wird. In Ordnung? Also habe ich die ganze Zeit Dotnet
Watch gemacht. Lass uns einfach rüberspringen
und das Salz testen. Wenn ich also nochmal hinübergehe
und das erstelle, siehe Ich habe gerade
Kauderwelsch-Kurs erstellt, richtig. Und ich erhalte
diesen fiesen Fehler. Ich glaube, das liegt nur
an der Art der eingegebenen Daten. Also lass mich, ich denke, es ist
dieser, weil ich die Anzahl
der Elemente darin
begrenzt habe . Lassen Sie mich einfach sagen, CBS, CW, das wir wieder erstellen. Da haben wir's. In Ordnung. Das sind die Dinge
, auf die wir
achten sollten , wie wir
mit diesen Ausnahmen umgehen, aber lassen Sie uns unsere
neue Löschfunktion ausprobieren. Jetzt haben wir also diesen
Löschknopf. Wenn ich auf Löschen klicke,
erhalte ich diese Aufforderung. In Ordnung, dieser
Teil funktioniert also. Wenn ich auf Abbrechen klicke, passiert
nichts. Lass mich das noch einmal versuchen. Wenn ich lösche und
ja sage, lösche es. Wir haben die Eingabeaufforderungen bekommen. Ja, es wurde gelöscht, aber
wir wurden trotzdem aktualisiert. Und da haben wir es. Nein, es gibt keinen Double Hop. Wir erhalten nur eine einfache
Bestätigung. Und dann
entweder bestätigen oder stornieren. In Ordnung. Jetzt besteht meine Herausforderung
an Sie darin,
die andere Indexseite nachzurüsten die andere Indexseite ein ähnliches
Verhalten
zu haben, oder? Ändern Sie diese Löschtaste so , dass sie eine süße
Warnung verwendet, die Sie in das Formular eingeben müssen, die verschiedenen Schaltflächen platzieren müssen, Dinge, von denen Sie dieses Beispiel haben, von dem Sie dieses
Beispiel zum Auslösen haben. Also kann ich das jetzt entfernen,
dieses Ankertag, und das
ist jetzt mein Löschen-Button. Und Sie sehen, obwohl dies
eine Schaltfläche ist und dies Anker-Tags
sind, es nicht wissen,
wenn ich Ihnen den
Code nicht zeigen würde. Es gibt keine Möglichkeit zu sagen
, welcher welcher ist. Also lass mich einfach wieder aufbauen. Da haben wir's. Es gibt also keine Möglichkeit zu erkennen , welches ein
Ankertag und welches
ein Button ist , es sei denn, Sie untersuchen das Element oder tun etwas
sehr Aufdringliches. Und wenn wir das Element inspizieren, werden
wir hier sehen, dass der
Daten-ID-Wert hier drei ist. Genau wie wow, die URL
hätte eine Drei drin gehabt. Das Daten-ID-Element hat drei, also schnappt es sich das und platziert
es dann in dieser Form, ich weiß
, dass sie leer ist, oder? Es hat keinen Wert darin. Sobald wir jedoch auf Löschen klicken
, wird dieser Wert
dort platziert und dann
gesendet. Und Sie sehen hier, das ist das
Anti-Fälschungs-Token, über das wir zu
Beginn des Kurses gesprochen
hatten. Das ist also sehr wichtig für die Sicherheit, da
Sie nicht möchten dass die
Leute einfach
Löschanfragen für
Elemente mit der ID drei senden können . In Ordnung, das ist also
sehr wichtig für den Schutz, bei dem dieses
Anti-Fälschungstoken zum
Zeitpunkt der Anfrage
validiert wird zum
Zeitpunkt der Anfrage
validiert wird bevor das Löschen durchgeführt
wird. Aus diesem Grund würde ich
empfehlen, dieses Formular für diese
Art von Operation zu verwenden. Jedes Mal, wenn wir Daten erweitern
wollen, sollten
wir immer ein Formular verwenden. Jetzt, da wir mehr
interaktive Löschvorgänge haben, können
wir
mehr interaktive Tabellen erstellen. Wenn wir also zurückkommen,
werden wir uns ansehen, wie wir die Anzeige von
ArrayLists mithilfe von Datentabellen
verbessern können .
29. Datatables hinzufügen: In dieser Lektion
installieren wir Datentabellen
, eine jQuery-basierte Bibliothek , die die Funktionalität
unserer typischen Tabellen erweitert. Nun, hier ist ein Beispiel speziell
für Bootstrap Five optimiert wurde. Ordnung, und Sie können
dorthin gelangen, indem Sie sich mit data tables.net Slash
Beispiel Slush Styling Slash
Bootstrap-Datei Punkt HTML
befassen . Von hier aus werden Sie
sehen, dass unser
Tisch so aussehen
wird. Es verfügt über Paging und
bietet die Möglichkeit, mehr oder weniger Einträge
gleichzeitig
anzuzeigen , sowie eine dynamische Suche. Wenn ich also nach etwas
mit den Buchstaben TR gesucht habe, wird
es sofort mit dem
Filtern beginnen. Das ist eine sehr coole
Möglichkeit,
unsere Tabellen attraktiver
und datengesteuerter aussehen zu lassen . Im Folgenden zeigen sie auch, wie wir
die Integration durchführen können. Also müssen wir diese
Initialisierungszeile in JavaScript machen. Wir haben das Beispiel
der Tabelle in HTML, wir werden dort haben, wo es
mir nicht
an Tabellen mangelt , also das ist in Ordnung. Und dann haben wir die
CSS-Assets, die benötigt werden, oder? Fangen wir also mit
den JavaScript-Teilen an. Sie haben uns ein paar CDN-Links gegeben. Also das erste, was
wir brauchen, ist jQuery. Wir haben bereits jQuery,
weil das bei unseren Projekten sofort einsatzbereit und sie einfach zurück
zum Layout springen. Wir können sehen, dass wir
bereits jQuery haben. Das ist in Ordnung. Was brauchen wir noch?
Wir benötigen den CDN-Link zur jQuery-Datentabellendatei und wir benötigen einen CDN-Link
zur Bootstrap-JS-Datei. Also, was ich mache, ist diese beiden Zeilen zu
duplizieren. Sind die Linien für Süßigkeiten wachsam? Und dann kopiere ich einfach
die neuen CDN-Links hinein. In Ordnung, sie sind also sehr wachsam. Also das nächste, das
erste Duplikat, werde
ich es durch
den CDN-Link ersetzen , zwei
Datentabellen min. Und dann werde ich den zweiten genauso
ersetzen. In Ordnung. Jetzt haben wir die
JavaScript-Dateien für Datentabellen
in unserer Layoutdatei enthalten. Als nächstes brauchen wir das CSS, und sie geben
uns auch die CDN-Links. Und noch einmal, es ist
wichtig, der Reihenfolge zu folgen , in der sie
sie im CSS auflisten. Ich kann ganz nach oben gehen und ich dupliziere einfach
den Bootstrap. Also schmieren Sie den Bootstrap. Und dann nehmen wir
den ersten CDN-Link für die CSS-Datei und ersetzen die erste duplizierte
Bootstrap-CSS-Referenz. Und dann nehmen wir diesen
und machen dasselbe noch einmal. In Ordnung. Da für die Datentabellen natürlich Bootstrap
erforderlich ist, benötigen
wir zuerst das
Bootstrap-Stylesheet. Und dann können wir das Handgelenk
hineinstecken. Und dann kommt unsere eigene
Seite, CSS, an letzter Stelle. Denn wenn wir es dann brauchen, um etwas
unter den ersten drei zu überschreiben, könnten
wir das in
unserer eigenen CSS-Datei tun. Ordnung, und dann liegt dieser sogar unter dieser CSS-Datei. Also das ist in Ordnung. Jetzt, da wir
die Assets enthalten haben, lassen Sie es uns wissen und schauen Sie sich an,
wie wir sie initialisieren. Wenn ich also zurück
zum JavaScript-Beispiel springe und
zeige, dass wir, sobald das
Dokument fertig ist, einfach die Datentabelle
initialisieren können. Also werde ich das
kopieren und zurück
zu Kursen springen, die wie gewachsen 04 oder
innovative Funktionen sind. Und was wir hier haben, ist eine
Tabelle mit der Klassentabelle. Also werde ich die Klassentabelle verwenden, um
die Tabelle zu identifizieren, die sich bereits auf der Seite
befindet. Ordnung, also was
ich tun kann, lassen
Sie diese jQuery-Methode
oder Funktion bereits ausführen. Also werde ich
die Initialisierung für die
Datentabelle genau dort platzieren . Wir haben also das Klickereignis, das heißt, es wird registriert
, wenn die Seite fertig ist. Wir werden hier
dasselbe mit einer Datentabelle machen. Aber das Element, auf das wir
abzielen, ist eine Punkttabelle, also jedes Element, das die Klassentabelle
hat, das wir ein Element
mit einer Klassentabelle haben. Ordnung, also wenn ich das mache, schauen wir uns nach dieser
Änderung
die Kursseite an oder richtig. Wenn du es dir ansiehst, wirst
du nein sehen, ich verstehe
all die visuellen Elemente
, die wir gerade gesehen haben. Und ich kann sortieren. Ich kann nach Namen sortieren, ich kann nach Code sortieren oder ich kann nach der
Anzahl der Credits sortieren. Ich kann. Dieser erfordert keine
Suche , weil diese alle gleich
sind. Wenn ich filtern möchte, kann
ich öffnen sehen und es wird
automatisch gefiltert, oder? Also einfach so,
ich habe das transformiert. Ich meine, es war schon
ein gut aussehender Tisch weil es
ein Bootstrap-Thema war. Aber es war irgendwie einfach. Ordnung, ich habe
diese Plantabelle
in eine Datentabelle umgewandelt , indem nur eine Codezeile nach dem Einfügen
in die Assets
nur eine Codezeile
eingefügt habe. Die Vermögenswerte. Das ist eine einmalige Aktivität
, denn weißt du was? Ich kann das auf jeder Seite tun, ich eine Tabelle habe, die ich
als Datentabelle anzeigen möchte. Nehmen wir also zum Beispiel die Kurse. Schauen wir uns
Literaturvorträge an. Keine Änderung. Lectures läuft immer noch. Wenn ich das ändern möchte, gehe
ich einfach zur
Indexseite mit den vier Vorlesungen über
und ich habe
sie bereits geändert, und ich habe
sie bereits geändert um die süßen Benachrichtigungen zu erledigen. Also füge ich einfach
diesen neuen
Datentabellencode in diesen Abschnitt ein. Und dann voila, lass
es einfach transformiert werden. Nun, der Nachteil der standardmäßig verwendeten Datentabellen ist, dass, nun ja, die Art und Weise, wie unsere Anwendung geschrieben
ist, sie tatsächlich
ständig einen Stern auswählt. Wenn wir also
1500500000 Datensätze haben, egal wie viele Datensätze, werden
sie immer
versuchen, sie
alle einmal auf die
Seite zu laden . Das Gute an
Datentabellen ist, dass wir
damit automatisch blättern und die Anzahl
der Elemente begrenzt wird, die gleichzeitig
angezeigt werden. Am Ende des Tages werden
es jedoch immer noch die
500.000 Datensätze
im Frontend haben . Dann
fangen Sie an, über
serverseitige
Paging-Aktivitäten usw. nachzudenken . Damit es tatsächlich nur X von der Gesamtzahl
der
Datensätze
zurückbringt Gesamtzahl
der , da unser
System so klein ist, werde
ich mir
darüber noch keine Gedanken machen. Aber das ist eine gute
Aktivität, um einfach all unsere Elemente
zu reinigen .
Schau auf unsere Website. Also füge ich das einfach zur Indexseite hinzu und dann
können wir es
bei dieser Aktivität beenden. Sobald wir
diese Transformation validiert haben. In der nächsten Lektion werden
wir uns
ansehen, wie wir die Anzeige unserer Etiketten
aufräumen können .
30. Benutzerdefinierte Etiketten hinzufügen: Willkommen zurück, Leute.
In dieser Lektion werden
wir uns ansehen, wie wir
die Anzeige der
Etiketten ein wenig aufräumen können , oder? Nein, die Labels
zeigen uns Texte, die
mit dem
Namen der Eigenschaft identisch sind , was nicht ideal ist, weil sie für Programmierer nicht wirklich
menschenlesbar uns sieht
es gut aus
, weil alles was wir brauchen
, um den Code zu schreiben. Aber an unsere Kunden und die
tatsächlichen Benutzer des Systems. Das sieht nicht wirklich gut
aus, oder? Was wir also tun wollen, ist sie so zu
reparieren
, dass wir dies nicht auf
jeder einzelnen Seite
manuell tun müssen, da wir
es im Index korrigieren müssen. Wir müssen
sie im Erstellen
und Bearbeiten und in den Details usw. korrigieren , also wollen wir es
einmal korrigieren , damit wir das nicht wiederholen
müssen. Keine einfache Lösung
dafür wäre , zur Datenklasse zu gehen,
richtig, für Schüler. Okay, lass uns mit dem Kurs beginnen , weil wir keine Studenten sind. Studenten, weil sie tatsächlich das Pascal-Gehäuse
haben, oder? Also verwende ich die Klasse des Schülers , um mit diesem Beispiel zu beginnen. Die einfache Lösung
wäre, hier Anmerkungen hinzuzufügen, da wir dieses Spiel leicht
sehen können. Und dann lege den Namen fest. Dann fügen wir einfach die fehlenden
Verweise hinzu, welche
Datenanmerkungen es gibt, zur
Systempunktkomponente , es sind Anmerkungen. Und dann könnten wir
sehen, dass der Name gleich ist , und wir legen den
Wert fest, den wir wollen, was der erste Space-Name wäre. Einfach indem du das tust. Okay, wenn ich das mache, wenn ich die Benutzeroberfläche aktualisiere, siehst
du nein, sie
hat einen Vornamen. Wenn ich einen neuen
ersten Space-Namen erstellen gehe, ist das in Ordnung, also das ist eine Lösung für jede
seltsame Anzeige. Und das liegt daran, dass
diese Datenannotation die tatsächlichen Informationen enthält. Als wir unseren Tisch hatten, hatten
wir einen Anzeigenamen dafür. Da haben wir's. In Ordnung, das sind also Kurse. Lassen Sie mich Ihnen das auf
dem Index für Studierende zeigen. In Ordnung, also
Anzeigename für FirstName anzeigen. Obwohl
das das Element ist, wird
der Anzeigename für
seine Anweisungen aus
dieser Anmerkung stammen. Wisse, dass das funktioniert. Der Nachteil dabei
ist jedoch, dass, wenn sich die
Datenbank ändert und wir Racecar
Fold oder Elemente zusammenklappen müssen, alles zurückgesetzt wird und das dann
nicht mehr gewartet werden kann. Das wäre vergeudete Mühe denn jedes Mal, wenn sich
die Datenbank ändert, müssen
wir erneut
herumschnüffeln
und jedes Mal, wenn wir
überfordert sind , müssten wir das wiederholen. Und das ist buchstäblich
Zeitverschwendung. Die Lösung hierfür besteht nun darin,
eine erweiterte Klasse dieser Klasse zu erstellen . Ordnung, also eins, alle Elemente,
die aus der
Gerüstbauaktivität
generiert wurden, waren partiell, schreibe die Modelle,
sind alle partiell, sogar der DB-Kontext
ist teilweise. In C-Sharp
bedeutet partiell, dass ich mehrere
Blueprints derselben Datei
haben kann . In Ordnung, also hier sind die
Blueprints, die uns EF Core gegeben hat. Aber dann kann ich
einen weiteren Entwurf erstellen , der diesen
ergänzt. Und genau das werden
wir tun, um die Situation
zu verbessern. Also werde ich eine neue Klasse
erstellen und sie
im Model-Ordner erstellen. Und du archivierst, ich möchte es Studentendaten
nennen. Und dann brauche ich meinen Namespace, was auch sein wird, und ich bin sehr faul. Manchmal leihe ich mir
das alles aus und sage Namespace, Namenspunktmodelle. In Ordnung? Dann haben wir unsere Klasse, die aus Schülerdaten besteht. In Ordnung? Nein, das ist natürlich
öffentlich, öffentlich. Stimmt das? Jetzt kann
ich in unserer öffentlichen
Klasse, den Daten der Mentoren unserer Schüler, tatsächlich
Eigenschaften definieren, die dem ursprünglichen
Schüler
entsprechen, oder? Nehmen wir an, ich wollte diese drei Elemente und ich verwende diese
drei, weil
ich mit ID nichts wirklich
überschreiben muss. In Ordnung? Also werde ich diese
drei benutzen und sie hier platzieren. Dann kann ich meine Anmerkungen platzieren,
sodass ich Anzeige sagen kann. Und der Name ist gleichbedeutend mit. Der Name ist gleichbedeutend mit. Und natürlich benötige ich meine
fehlenden User-Statements. Da haben wir's. Und dann wird dies das
Feld für den Vornamen sein. Und dann kopiere ich das einfach
und verwende es für Nachnamen
und Geburtsdatum wieder, korrigiere natürlich die Formatierung und passe dann den
angezeigten Text an. Das Geburtsdatum
erhält also das Geburtsdatum, Lebensmittelart und der Nachname gehen
verloren. In Ordnung. Jetzt haben wir
diese definiert und können auch andere Dinge wie
spezifische Validierungen tun, oder? Also wenn ich wollte. Um das einzugeben, okay, das sollte niemals
mehr als 50 Zeichen sein mehr als 50 Zeichen wenn es auf
der Benutzeroberfläche eingegeben Ich kann eine Zeichenfolge mit einer
Länge von 50 eingeben, oder? könnte ich sagen. Okay, auf der Benutzeroberfläche ist es
vielleicht nicht in der
Datenbank, beide auf der Benutzeroberfläche. Ich möchte diese
Anforderung erfüllen, oder? sind also Dinge
, die wir tun können
, um Validierungen und
Anzeigen auf der Client-Seite
oder auf der Benutzeroberfläche zu erzwingen Anzeigen auf der Client-Seite , oder? Ich werde nicht verlangen,
dass ich es nur
zeige, und ich
brauche keine Zeichenkettenlänge 50, also das ist in Ordnung. Nun, da wir
diese Metadatendatei haben, wie verknüpfen wir sie
mit dem eigentlichen Datenmodell? Nun, direkt darunter, in derselben Datei, werde
ich nur eine Erklärung der Schüler der
öffentlichen Teilklasse
haben . Denken Sie also daran, ein Teil
ermöglicht es mir,
die zu haben , die Implementierungen
sind die Blaupausen eher an mehreren Stellen. Das wird also auf
einem leeren Plan stehen, oder? Aber wenn alles kompiliert ist, wird alles, was ich in
diesen Blueprint
eingebe , mit dem kompiliert, was ich
in diesen Blueprint eingefügt habe. Und dann wird am Ende
des Tages alles nur
ein großer Plan sein . Also nein, ich muss
diesen Blueprint mit
den Metadaten der Schüler verknüpfen . Also werde ich die
partielle Klasse und die Anmerkung geben, das ist sein Modell-Meta-Datentyp. Möglicherweise müssen Sie
eine Benutzungsreferenz angeben. Wenn Sie also einen Fehler bekommen, wenn Sie dieses Modell mit einem
Datentyp verbinden, haben wir nur Punkte kontrolliert haben wir nur Punkte kontrolliert
und bei den
Use-Anweisungen, oder? Dann sehen wir die Art
der Studenten-Metadaten. Das ist also der Associate, diese Metadatenklasse
mit dem teilweisen Wissen wann ich rübergehe und unsere Seiten
aktualisiere, es funktioniert nicht. Es funktioniert nicht. Das liegt daran, dass ich
im falschen Namensraum bin. In Ordnung, also habe ich den
Namespace auf der Grundlage des Ordners platziert. Ich meine, natürlich, aber die eigentliche Teilklasse befindet sich
in einem anderen Namespace. Damit dieser Teil weiß, dass er parteiisch gegenüber dem anderen ist
. Eine einfache Möglichkeit, das zu wissen, ist,
wenn ich bei gedrückter Strg-Taste darauf klicke, es wird angezeigt, dass kein Telefon
referenziert wird, oder? Aber wenn ich dann diese Daten ändere, Namespace in Daten ändere
und dann erlaube, dass sie
aktualisiert werden, wenn ich darauf klicke, ohne Kontrollklick,
wird es wissen, dass, okay, es hier einen
Teil der Schüler gibt, und es gibt hier auch einen
Teilstudenten, oder? Der Namespace
ist also sehr wichtig. Sie könnten diese Metadaten wohl in
den Datenordner
legen . Die
Gerüstbauaktivität überschreibt wirklich nur die
Dateien, ignoriert einen Bolzen. Alles, was schon da ist wird nicht gelöscht,
aber das liegt an dir. Ich lasse es einfach so wie es ist
und lass uns das noch einmal versuchen. Also, wenn ich mich erfrischen, los geht's. Also Vorname,
Nachname, Geburtsdatum. Und das sieht viel
einfacher zu lesen aus. Viel benutzerfreundlicher,
wenn ich auf Details gehe, es ist auch ein fester Thread. Wenn ich zu Bearbeiten gehe, ist
es auch behoben. Ich muss also nicht
jede Seite durchgehen und
diese Änderung in HTML vornehmen, sodass ich einen Ort
habe und er überall sonst einen Wert hat. Das ist also eine nette
und einfache Möglichkeit die Anzeige- und
Labelbereiche unserer,
naja, der Anzeige auf unserer
Benutzeroberfläche von unseren Klassen aus zu
ändern . Sie können also
dasselbe mit der Vorlesung versuchen. Fahren Sie fort und erstellen Sie diese
Vorlesung und den MetaData-Kurs. Der Teil, an den ich mich erinnere, muss mit dem
Namespace übereinstimmen. Und dann können Sie bei Bedarf
Ihre eigenen Anzeigenamen und
Validierungen hinzufügen .
31. Datenbankänderungen verwalten: In Ordnung Leute,
wir haben Feedback zu dem bekommen was wir getan haben,
über die Benutzeroberfläche, Funktionalität, alles,
und wir haben großartiges Feedback erhalten. Sie lieben es. Der Kunde möchte
das System unbedingt benutzen. Aber sie sagten, okay, bevor wir das System vollständig
nutzen können, benötigen
wir zwei weitere Funktionen. In Ordnung? Für die beiden Funktionen
, die sie anfordern
, sind also Datenbankänderungen erforderlich. In diesem Fall möchten sie in der Lage
sein, Klassen zu verfolgen. Und eine Klasse wird durch
einen Dozenten definiert , der zu einer bestimmten Zeit einen
Kurs unterrichtet. Und dann wollen sie in der Lage sein Einschreibungen der Schüler
zu verfolgen, was bedeutet, dass ein Schüler
in eine Klasse eingeschrieben ist. In Ordnung, das bedeutet also, dass wir zwei zusätzliche Tabellen
benötigen. Jetzt habe ich das Data Studio und bin bereits mit
meiner Instance verbunden , die dunkler läuft. Sie können also auf Pause drücken, Ihr Data Studio aufrufen
und bei
Bedarf Ihren Dunkler einschalten. Wenn Sie dazu eine Auffrischung benötigen, sollten
Sie eine dunklere Benutzeroberfläche
haben, auf sollten
Sie eine dunklere Benutzeroberfläche
haben der Sie einfach zur Liste der
Container
gehen und nach
Ihrem Microsoft Container suchen können und den Sie konfiguriert haben, ich kann einfach klicken Sie auf
die Schaltfläche Abspielen. Sobald das eingerichtet
ist, können Sie mit Data Studio
eine Verbindung herstellen. Und Data Studio leistet im Allgemeinen gute Arbeit bei der Beibehaltung
der Verbindungsdetails. Jetzt müssen wir also ein neues Drehbuch schreiben. Also werde ich ein neues Drehbuch
veröffentlichen und
dann kannst du sehen dass
ich hier da weitermache, wo ich das letzte Mal
aufgehört habe. Aber in diesem Skriptfenster werde
ich
mit einer Use-Anweisung beginnen, damit wir wissen, dass wir die Schulverwaltungsdatenbank
verwenden müssen. Das Tolle an
Data Studio ist, dass Sie diese Use-Anweisung ausführen können, aber Sie können
die Datenbank auch aus dieser
Dropdownliste von Top auswählen . Ich tendiere dazu, dies trotzdem weil
Sie manchmal vergessen zu tun,
weil
Sie manchmal vergessen, diesen Teil zu tun, und dann
möglicherweise
ein Skript für die Datenbank ausführen . Fangen Sie also immer mit
Ihren Benutzungsanweisungen an. Nein, ich muss
zwei neue Tabellen erstellen. Also werde ich eine Tabelle erstellen und Sie werden
sehen, wie ich irgendwie die
Disziplin breche , weil SQL
nicht wirklich zwischen Groß- und Kleinschreibung unterscheidet. Also habe ich zunächst mein Bestes
versucht, die Keywords groß zu schreiben. Ich werde dieses
Mal nachlassen und nicht so vorsichtig sein. In Ordnung? Also erstellen wir eine Tabelle
namens classes und sie erhält eine ID, die int ist, Primärschlüssel und Identität , die immer da sein
sollte. Und abgesehen davon, dass ich nur vorschlage, dass es immer da sein
sollte, liebt
Entity Framework es zu sehen,
wenn es einen Primärschlüssel gibt. In Ordnung, das bereitet also große Kopfschmerzen, wenn es um die Verwendung von EF Core
geht. Halte die Kiste auf
sehr mächtige Weise zurück. Also, was hat die Klasse
der Klasse sonst noch , unsere
Referenz, die Vorlesungsnummer. Dies ist also das erste Mal, dass
wir hier einen Fremdschlüssel verwenden. Die Vorlesungs-ID, die Integer ist, ist
ein Fremdschlüssel, der
auf die Vorlesungstabelle und die ID-Spalte verweist. Also noch einmal, wenn Sie mit Fremdschlüsseln
und Beziehungen nicht so vertraut sind, um meinen Kurs zur
Datenbankentwicklung zu beschichten, Microsoft SQL Server
für alle. Wenn Sie es jedoch sind, dann sollte Ihnen das sehr
vertraut vorkommen, da wir
die Klasse
natürlich mit der Vorlesung verknüpfen müssen . Und die Klasse muss auch mit einem Kurs verbunden
sein. Also müssen wir
dasselbe tun und eine Kurs-ID einführen, einführen, die auch eine Ganzzahl
und ein Fremdschlüssel ist, der
auf den Kurs verweist, ist
stabil und die ID-Spalte. Nun, für Nein, sie sagten,
sie wollen nur die Zeit. Gehen wir also davon aus, dass, sobald diese Zeit im System ist, bedeutet
dies, dass diese
Vorlesung diesen Kurs
zu dieser Zeit, an
jedem Tag der Woche,
unterrichtet . Und das wird unsere Klasse
ausmachen. Und was wir hier tun
oder Entscheidungen hier treffen basiert auf den Geschäftsregeln und Geschäftsanforderungen
des Kunden. In Ordnung. Also versuche ich es einfach zu
halten. Es ist vielleicht nicht das
realistischste System
im großen Plan des
Wasserschulmanagementsystems. Aber ich halte
es einfach, damit wir einige
dieser Konzepte durchgehen
können. In Ordnung? Die nächste Tabelle wäre
die Anmeldetabelle, und ich werde
sie einfach hier platzieren. Wir haben Create
Table-Anmeldungen. Wir haben immer noch unsere
Primärschlüssel-ID. Und dann
wird eine Einschreibung von einem Studierenden festgelegt. Wir benötigen also die Studentennummer, Fremdschlüssel, der auf
die ID-Spalte
in der Studententabelle verweist . Und dann die Klasse,
an der der Schüler teilnimmt. Diese Klassen-ID, die auf
die Klasse verweist, ist stabil. Deshalb
müssen wir sicherstellen, dass wir
die Klasse erstellen , bevor wir die Anmeldungen
erstellen, da
genau dort eine Abhängigkeit von der Tabelle, von den Klassikern besteht. Jetzt haben wir das, wir können rennen. Und das wurde
erfolgreich abgeschlossen. Wenn ich also heruntergehe, sehe
ich, dass ich jetzt Kurse
habe und Anmeldung an zwei neuen
Tabellen erstellt wurde. Nun, wie bekommen wir
diese beiden neuen Tabellen in unsere Anwendung, oder? Wir haben
also bereits Dozenten, Studenten wissen, dass wir neue Kurse
brauchen. Also werde ich
meine Dotnet-Uhr beenden. Und lassen Sie uns diese
Terminologie-Bits aufrufen. Also spreche ich es an und lass
mich unsere Schriftgröße erhöhen. Also werde ich denselben Befehl verfassen,
den wir beim ersten Mal
verwenden, um all
diese Elemente zu übernehmen. Also ich habe den Befehl hier und wir können weitermachen, um
Ihr Gedächtnis aufzufrischen , was
jeder Abschnitt erstellt. Aber nur bei ein oder zwei, was ich in der
Vergangenheit gemacht habe, ist tatsächlich
eine Teildatei zu erstellen , in der dieser
Befehl leben würde, weil dieser Befehl ihn niemals davon
abhalten
würde , sich mit einer
Datenbank zu befassen die Zeit, oder? Also anstatt
zu versuchen, es aus dem
Speicher neu zu schreiben oder irgendwo abzulegen
und zu vergessen, wo ich es hingelegt habe. Ich habe es in eine unvollständige Datei gelegt
und hatte es im Projekt. Was ich also tun würde,
ist einfach
die Porsche-Datei auszuführen , die diesen Befehl ausführen
würde. Und das gibt mir einfach das Maß an
Konsistenz, das ich brauche. Das können
wir uns wahrscheinlich
im Bonusbereich
dieses Kurses ansehen . Aber jetzt lassen Sie uns den
Befehl einfach neu anordnen. Wir haben also Dotnet, EF, EV, Context Scuffled und dann
haben wir unsere Verbindungszeichenfolge. Und denken Sie daran, wenn Sie
Sonderzeichen in
Ihrer Verbindungszeichenfolge haben , insbesondere in dem Passwort , das ich für diese
beiden Dollarzeichen hatte, müssen Sie ein einzelnes
Anführungszeichen verwenden. in Ordnung? Um die
Verbindungszeichenfolge abzurufen, können
Sie natürlich einfach
zu den entgegengesetzten Dingen
wie der JSON-Datei übergehen . Sie können es dort kopieren und einfügen. Dann haben wir den Anbieter
, in unserem Fall SQL Server, wir erzwingen, sodass wir das
Gerüst so erzwingen, dass
es alle
Telefondateien im
Ausgabeverzeichnis überschreibt , was Daten sind. Und wir wollen keine zur Konfiguration, weil
wir es nicht wollen,
wir wollen nicht, dass der
DB-Kontext versucht, eine
eigene Kopie der
Verbindungszeichenfolge im Kern zu haben . In Ordnung, nachdem wir all das
getan
haben, drücken wir die Eingabetaste und
lassen es laufen, und es erstellt erfolgreich ein
Projekt. Wenn wir
zu unserem Datei-Explorer zurückkehren, werden
wir feststellen, dass wir jetzt diese neuen Dateien
haben. Lass mich ein bisschen herauszoomen. In Ordnung, jetzt haben wir
Vorlesung I, die Kurs-ID. Du hast Zeit mit den
Navigationseigenschaften, dem Kurs und den
Anmeldungen, oder? Das ist es also, was die Klasse auf den Tisch
bringt. Einschreibung umfasst
Immatrikulation, Studentenausweis, Klassenausweis, Schüler der Klassenklasse. In Ordnung. Jetzt haben wir also einen zusätzlichen Tisch. Also, wozu ich Sie herausfordern würde, ist, die Crowd-Seiten
nach diesen beiden Tischen
durchzugehen und zu durchsuchen. Sie werden auch feststellen, dass beim Testen Ihrer
Benutzeroberfläche unsere
Labels nicht verloren haben, weil
wir die
Metadatenklassen erstellt haben. Das ist gut so. In Ordnung, jetzt
können Sie dieselbe Art von Metadaten-Erweiterung für diese erstellen. Falls erforderlich. Sie können sich
die Benutzeroberfläche ansehen und sehen, wie einfach sie ist, und
sie optimieren , um
die Daten, die erfasst werden müssen, genau
zu erfassen .
32. Syntaxfehler beheben: In Ordnung, Leute. Also war ich gerade
dabei, die Steuerungen für
die neuen,
die neuen Datenmodelle zu bauen. Und ich habe mit dem Unterricht angefangen und bin eine Reihe von Fehlern
gestoßen. Also ich verstecke die Erde nicht
vor euch, denn
wenn ich die Fehler habe, habt ihr Pfeile, ich möchte, dass
wir sie gemeinsam lösen. Ich wollte
dir helfen zu verstehen, warum wir diese Fehler bekommen. Nun, das Wort Klasse ist in C Sharp in den meisten
Sprachklassen
ein Schlüsselwort, oder? Das Problem hier
ist also, dass wir die,
was wir die
Domainsprache nennen,
domänenspezifische Sprache haben was wir die
Domainsprache nennen, ,
was in diesem Fall der Aufbau eines
Schulverwaltungssystems
wäre . Das Wort Klasse bedeutet für eine Schule also
etwas anderes als
für eine Programmiersprache. Es ist einfach ironisch
, dass das
Schlüsselwort in der
Programmiersprache so wichtig ist, dass
es zu Konflikten mit
bestimmten Dingen kommt. Hier im
Klassen-Controller würden
Sie also feststellen, dass die
Elemente, die ich scrolle, für uns fehlerhaft sind, damit wir die unterschiedliche Syntax
verstehen können , die wir möglicherweise sehen. Hier werden Sie im
Zeichenunterricht sehen , dass
Werbeaussage wie ein Keyword-Killer ist . Wenn wir also das
Wort Klasse für sich selbst sagen würden, würde
das zu einem Fehler führen,
da Klasse wiederum ein Schlüsselwort
ist, das bei der Definition
einer tatsächlichen Klasse im Code verwendet wird. Wir können dieses
Schlüsselwort also nicht als Variable verwenden. Wenn Sie am Ende
ein Schlüsselwort als Variable verwenden müssen, können
Sie das
Hinzufügezeichen davor setzen. Und dann wird das irgendwie seinen Keyword-Status
aktivieren. In C-Sharp. Sei dir bewusst, dass die Fehler, die wir bekommen, das auf dem Schild
umgeben. Und es hat versucht zu generieren, ich glaube,
es hat nur versucht, klug zu sein und es ist
dabei verloren gegangen, oder? Also all diese Zeichen hier, statt der
Lambda-Ausdrücke, sind keine illegalen
Zeichen, weil er nicht einfach eine
Oxidschicht haben kann, sodass wir all diese Zeichen
leicht
durch ein Lambda austauschen können Ausdruckstoken. Ich benutze immer Q. Du kannst C verwenden, wenn du willst. nicht wirklich wichtig,
aber ich
wollte nur sichergehen, dass ich
darauf hinweise , was
diese Fehler verursacht, was diese Anzeichen sind. Sie hatten also nicht das Gefühl, etwas falsch gemacht zu haben,
weil es wahrscheinlich
eher meine Schuld ist und
es Ihre,
wenn weil es wahrscheinlich
eher meine Schuld ist und es darum geht, ein solches
Schlüsselwort zu
verwenden ohne auf die Gefahren
hinzuweisen, oder? Sobald wir das alles gemacht haben, sollten
wir in der Lage sein, einen Dotnet-Build durchzuführen. Lassen Sie mich also erneut einen
Dotnet-Build machen. Ordnung, und ich habe ein paar Warnungen, aber nichts, was ich über Boote
nach Hause schreiben könnte. Das ist etwas mit
der Nullreferenz. Wir werden das
etwas später besprechen. Ich war gerade
dabei , die Anmeldungen vorzubereiten. In Ordnung. Das sind ein bisschen winzige Boote. Ich bin mir sicher, ihr seid es schon. Ich habe es im Griff. Aber wenn ich ein CLS mache
und es dann wieder aufrufe, diesen Befehl
für die Anmeldungen. Lassen Sie uns also versuchen, die
Anmeldungen gemeinsam zu organisieren. Und nach ein paar Sekunden haben
wir jetzt den
Registrierungscontroller und die Ansichten eingerichtet. Okay, also ich wollte einfach vorbeikommen und
falls Sie diese Schwierigkeit
teilen,
zeigen Sie Ihnen, dass ich auch Schwierigkeiten hatte und es gibt
eine Auswegstabelle. Also wir sehen uns in der nächsten Lektion.
33. Zu GitHub hinzufügen: Ordnung, dieses
Modul hat uns also
durch einige Aktivitäten geführt . Wir haben uns angesehen, die Benutzeroberfläche
mithilfe von Bootstrap Styling vollständig bereinigen,
um unserem Workflow einige jQuery-Bibliotheken
von Drittanbietern hinzuzufügen . Wie man Labels so anpasst, dass sie nicht jedes Mal
überschrieben wir eine
Gerüstaktion ausführen und wir ein paar Syntaxfehler
stoßen zusammen auf ein paar Syntaxfehler
stoßen und unseren Ausweg
gefunden haben. Das ist es, was
Programmieren wirklich ist. Wir werden auf Fehler eingehen, aber es geht nicht darum, Fehler
zu vermeiden. Es geht darum, die Fehler zu beheben und über
die Bereiche zu triumphieren, oder? An diesem Punkt haben wir
einen weiteren wichtigen Checkpoint erreicht. Und was wir tun werden
, ist
unsere Check-In- oder Commit-Nachricht einzurichten . Nehmen wir an, das
Anpassen von Ansichten und Elementen ist abgeschlossen. Ja, ich finde das gut. könnten Sie
wahrscheinlich auch hinzufügen. Sie haben Unterricht und Anmeldungen hinzugefügt. Das ist in Ordnung, aber
lassen Sie uns einfach weitermachen und das vorantreiben. Wir sehen uns in der nächsten Lektion.
34. Authentifizierung verstehen: Ordnung Leute, in diesem
Abschnitt des Kurses werden
wir uns mit der Authentifizierung
befassen und warum sie wichtig ist und
welche Optionen wir haben. Nein, die Authentifizierung ist wichtig,
wenn wir kontrollieren wollen Zugriff auf unsere Anwendung
Teil unserer Anwendung ist. Nun, hauptsächlich
regelt die Authentifizierung die gesamte Anwendung. Es ist also entweder Teil davon eine Authentifizierung erforderlich ist
oder die Wohnheime. In Ordnung? Also zum Beispiel
könnte vielleicht jeder auf die Homepage kommen, oder? Und schau und sag
ungeöffnet was auch immer. sollten jedoch nur
eingeloggte Benutzer Möglicherweise
sollten jedoch nur
eingeloggte Benutzer diese Links
sehen können. Und selbst wenn sie sich den Link
merken können, weiß
ich, dass sie
Schrägstriche sehen
und dann versuchen können, dort zu navigieren. Sie sollten sich
anmelden oder authentifizieren müssen , bevor
sie weitermachen können. Das sind also Dinge, die die Authentifizierung
mit sich bringt, oder? Die Authentifizierung
erfordert, dass Sie identifizieren, wer Sie sind, und
wir überprüfen, wer Sie sind. Dann gibt es noch einen Teil,
der Autorisierung genannt wird, was bedeutet, dass jemand zwar berechtigt ist, einen Kurs zu
erstellen, aber möglicherweise nicht berechtigt ist, den Kurs
zu löschen. Am Ende
des Kurses sind sie vielleicht nicht autorisiert, aber sie sind
berechtigt, sich die Liste anzusehen und sich
die Details anzusehen, oder? Autorisierung bedeutet, was können
Sie in
meiner Bewerbung tun? In Bezug auf unsere Optionen haben
wir jetzt die Möglichkeit, ein eigenes Authentifizierungssystem zu haben . ASP.net Core verfügt über eine
eigene Bibliothek, Identity Core
, mit der wir
Authentifizierungsdienste einfach und
nahtlos
in unsere Website integrieren können nahtlos
in unsere Website integrieren . Jetzt, mit ein paar Befehlen, könnten
wir tatsächlich
die gesamte oder mindestens 90%
der dafür erforderlichen Funktionen aktivieren. Aber dann wird es
einige Einschränkungen geben, da es sich um eine Webanwendung
handelt. Aber dann möchte der Kunde in
Zukunft vielleicht eine mobile Anwendung
haben. Oder vielleicht hätten sie,
sie hätten gerne mehrere Anwendungen, die denselben Benutzernamen,
dasselbe
Passwort und dieselben Anmeldeinformationen verwenden . An diesem Punkt
muss man also groß denken. Du musst über den
Tellerrand schauen, oder? Erstelle ich verschiedene
Authentifizierungssysteme für all diese verschiedenen Szenarien und versuche dann,
alles zum Laufen zu bringen. Oder versuche ich es zu zentralisieren, muss es
aber trotzdem pflegen? Oder lagere ich das einfach an einen Drittanbieter ,
der all diese Dienste anbietet. Wie auch immer, für diesen Kurs werden
wir
die letzte Option wählen
, also verwenden wir Plattform
eines Drittanbieters, die
das alles sowieso macht. Die Plattform, die wir verwenden
werden, ist also ausgeschaltet. 0.0 bietet
sichere Authentifizierungs- und
Benutzersicherheitsfunktionen. Es ist in Form eines SaaS. Das bedeutet, dass wir
nicht
unsere eigenen Daten hosten müssen , falls unsere
Datenbank abstürzt Wir haben immer noch alle
Benutzerdaten auf
dieser Plattform gehostet . Sie
ist einfach zu integrieren da sie viele
Voreinstellungen haben Integrationen sind viele Überlegungen
, die wir
ergreifen würden , um sie tatsächlich zu
sichern oder zu verbessern. Sie haben bereits darum gekümmert und es ist sehr einfach
, sie zu integrieren. Sie können also weitermachen und sich
mit off zero,
also zero.com, für ein Konto registrieren und
sich dann einfach
mit Ihrem
GitHub-Konto anmelden , weil Sie zu diesem Zeitpunkt bereits ein GitHub-Konto und der Einstieg ist
kostenlos. Und in der nächsten Lektion werden wir
sehen, was der nächste Schritt ist.
35. Registrieren für Auth0: In Ordnung Leute, also ich
gehe davon aus, dass Sie schon weitergemacht
und sich angemeldet haben. Wenn du dein
GitHub-Konto oder eines
der anderen sozialen Icons verwendest , hast du deine Spalten bereits manuell
erstellt. Wir sollten alle
auf einem Bildschirm wie diesem landen. Das fängt noch nicht an. Das Erste
, was sie sehen, ist Integration von Zero
in Ihre Anwendung. Und dann können wir weitermachen
und eine Anwendung erstellen. Jetzt werden sie
fragen, welche Art von Anwendung
werden Sie erstellen? Das
zeigt also nur, wie umfangreich die Unterstützung ist, die sie anbieten, oder? Denn wenn wir nicht unsere eigene Authentifizierung für
all diese Geräte entwickeln
sollten unsere eigene Authentifizierung für ,
könnte das zu einem hohen
Wartungsaufwand führen. Du willst also immer deine Schlachten
wählen. Sie möchten immer
sicherstellen , dass Sie sowohl
für Ihren Kunden als auch für
das vorliegende
Projekt die beste Entscheidung treffen . Aus dieser Perspektive könnten
wir also weitermachen und
sehen, dass wir einen mobilen Desktop oder eine
Befehlszeilenschnittstelle erstellen, wir erstellen
Single-Page-Anwendungen die eines dieser
Spa-Frameworks
verwenden. wir unsere reguläre
Webanwendung mit einem traditionellen
Entwicklungsframework für das Web? Oder machen wir eine CLI oder Dämonen? Also ich denke, für diesen
würden wir auf jeden Fall
reguläres Web verwenden wollen , da wir asp.net in der Liste
sehen. Und dann können wir ihm den Namen
geben. Nennen wir es einfach
Schulleitung. In Ordnung. Und dann können wir
weitermachen und etwas erschaffen. Nun, das nächste, was sie fragen
, ist mir
zu sagen, welche Technologie wir verwenden,
oder? Hier ist eine größere Liste
aller möglichen
Technologien, die auf der Grundlage unserer Auswahl
verwendet werden könnten . Aber natürlich
verwenden wir asp.net Core. Und wir wählen das
Drei-Punkt-Tool der Version, da ab drei alles irgendwie standardisiert
war. Also können wir weitermachen
und diesen auswählen. Und nein, sie geben uns diese Client-ID und
wir können
verschiedene Einstellungen vornehmen
und sie zeigen
uns sogar , wie wir mit der Integration
fortfahren können, okay, und hier ist der Support. 3.1. 565 unterstützt auch 6.7, funktioniert reibungslos zusammen, sodass wir definitiv
mit dem fortfahren können, was wir hier tun. Wenn wir also einfach durchblättern uns
genau durch das führen,
was wir tun müssen, holen Sie sich Ihre Anwendungsschlüssel. Sobald Sie
sich angemeldet haben, müssen Sie zu den Anwendungseinstellungen gehen, und dann können Sie bestimmte Dinge einrichten. Ordnung, lassen Sie uns
zunächst zu
den
Anwendungseinstellungen gehen und wir
müssen einige URLs festlegen, oder? Also werde ich das einfach in einem neuen Tab
öffnen. Und dann
haben
Sie aus der Liste wahrscheinlich bereits eine Standard-App und Ihr Update wurde gerade erstellt,
sodass Sie dieses auswählen können. Und das ist unsere Domain, das ist unsere Kunden-ID. Wir benötigen diese Konfigurationen
für später, aber vorerst
müssen wir unsere URL einrichten. Wir haben eine so genannte
Load-Callback-URL und dann
morgen ein Load-Logo, so weiter. Diese URLs benötigen wir, um die URL
der Anwendung zu verwenden. Lassen Sie mich aus
unserem
Eigenschaftenordner,
lawn settings.js, zu unserem Projekt zurückkehren aus
unserem
Eigenschaftenordner,
lawn settings.js, zu unserem Projekt . Wir
werden uns diese URL ausleihen. Und das URL-Format
muss dieser URL-Schrägstrich für
das Wort Callback sein. Und dann können wir für das Logo morgen einfach die Standard-URL
belassen. Wenn wir nun
mehrere Callback-URLs bereitstellen müssten ,
zeigt dies an, wo wir uns
in der Entwicklung befinden. Und dann haben wir vielleicht
eine Staging-Umgebung, Schärfeumgebung und die eigentliche
Produktionsumgebung. Wir werden mehrere
dieser URLs für dieselbe
Anwendung haben , oder? Wir können also einfach ein Komma machen, sie
trennen und jedes einzelne repräsentiert nur
die URL nach Bedarf. Also solange wir da drin sind, können
wir es so lassen. Nachdem wir diese Werte gesetzt haben, stellen
wir sicher, dass wir
hier nach unten gehen und auf Änderungen speichern klicken. Sobald wir das getan haben, möchten
wir fortfahren und
die Konfigurationsdateien oder
diese spezifischen Schlüsseldateien
zu unserer Anwendung hinzufügen die Konfigurationsdateien oder . Also kehren wir zurück zum Visual Studio-Code, dieses
Mal gehen wir
zu unseren App-Einstellungen und können dann einen neuen Abschnitt erstellen. Und ich mache das einfach auf
einem Load-Hosts und wir nennen das von Null. Und dann
wird dieser Abschnitt zwei Schlüssel haben, wird eine Domain haben. Lass mich meine rote
Domain holen. Da haben wir's. Und das wird
einen Wert haben. Und dann machen wir
mit der Client-ID. Dies sind also Werte
, die dazu beitragen, dass Null weiß, welche Anwendung eine Anfrage
stellt. Diese Werte werden uns also hier
gegeben. In Ordnung, das ist also unsere
Domain, das ist unsere Kunden-ID. Also leihe ich mir
diesen Domainwert und füge ihn dort ein. Und ich leihe mir
diesen Zentralitätswert aus und füge ihn hier ein. Jetzt, wo wir das haben, müssen
wir das
NuGet-Paket integrieren, oder? Lassen Sie mich
die laufende Anwendung
hier beenden und alles löschen. Also brauchen wir ein Dotnet Add
Package und wir fügen hinzu. ASP NET
Core-Punkt-Authentifizierung mit Nullpunktauthentifizierung. Wenn wir das tun, geben
wir ihm ein paar Sekunden und
wissen, dass es installiert ist Wir können mit dem nächsten Schritt fortfahren. Bevor ich
zur nächsten Folie übergehe, wollte
ich nur darauf
hinweisen, dass all das, was ich sehe, genau hier
dokumentiert ist. Zwischen dem, was ich sehe, und dem,
was dieses
Dokument tatsächlich sieht, machen
wir also was dieses
Dokument tatsächlich sieht, dasselbe, oder? Das ist also ein Schritt, den wir gerade gemacht haben. Das installierte Paket
wäre, wenn Sie
Visual Studio verwenden und den
NuGet-Paketmanager verwenden, wo nicht. Also verwenden wir das
Dotnet-Add-Paket, seem, seem old com, oder? Als Nächstes
möchten wir unseren Diensten
die Konfigurationen hinzufügen , von denen
wir wissen, dass
wir sie von Null verwenden werden. Nein. Die Syntax hier ist
etwas anders, und das
liegt hauptsächlich daran, dass dies wirklich für Dotnet Core 3.1 ist, 56.7 haben alle eine anders
aussehende program.cs, aber es ist das gleiche
Konzept, oder? Damit wir uns das ausleihen können, springen Sie zu unserem Projekt goto
in unsere Datei program.cs. Und lass mich ein bisschen herauszoomen, damit
du es ein bisschen besser sehen kannst. Da haben wir's. Lassen Sie mich einfach dieses Terminal
in den
Diensten direkt über den
AD-Controllern mit Ansichten schließen in den
Diensten direkt über den , die ich hinzufügen
möchte und die
aus dem Beispiel stammen. Nun,
hier liegt offensichtlich ein Fehler weil es sich nicht mehr um
Dienste handelt. Es ist jetzt Builder Dot Services, aber das ist der einzige
große Unterschied. Und dann können wir die
Using-Anweisungen für
diese fehlende Bibliothek hinzufügen ,
in der wir eine
Konfiguration haben und
es wird nicht die Builder-Punkt-Konfiguration heißen, also kann ich diese
beiden einfach ersetzen Referenzen zu
Konfigurationszitaten. Da haben wir's. Jetzt schauen
wir uns
die Konfiguration an und suchen,
suchen den Nullbereich und verwenden dann den booleschen Wert. Und dann dasselbe
für den Client-Schlüssel. Schließlich möchten wir die Authentifizierung
hinzufügen. Also wollen wir die hinzufügen,
die Middleware, die die Authentifizierung
unterstützt. Wir haben also bereits eine, die die Autorisierung
unterstützt. Ich werde es einfach
duplizieren und das
oberste verwenden , um zu sagen, dass
Authentifizierung und alles verwendet werden. Das ist sehr wichtig. Reihenfolge ist wichtig, da
wir uns
in der Pipeline authentifizieren müssen,
bevor wir versuchen, eine Autorisierung vorzunehmen. Denk dran, das heißt, mir zu
sagen, wer du bist dann heißt das okay, was kannst und kannst du tun? Wir wollen nicht damit beginnen, herauszufinden, was
Sie
tun können und was nicht , bevor wir feststellen
, wer Sie sind, oder? Das ist also sehr wichtig
für den Boden. In Ordnung, jetzt haben
wir
die Registrierung des Dienstes abgeschlossen die Registrierung des Dienstes und kennen die Konfiguration
der Authentifizierungs-Middleware. Gehen wir zum Login über. Jetzt geben sie uns ein Beispiel für einen Account-Controller, oder? Also
kopiere ich einfach diesen Codeblock und gehe zurück zu unserem
Visual Studio-Code. Und im
Controller-Ordner werde
ich eine neue Datei erstellen
, die sie nicht Cone
Controller Punkt cs
nennen möchte . Und dann werde ich einfach
einfügen. Ordnung, ich gebe
ihm auch einen Namensraum, nur um
sicherzustellen, dass wir gewisse Einheitlichkeit
haben, sagt School of Management App
Punkt MVC-Controller, oder? Und dann Semikolon. Und der Controller benötigt dafür diese
Using-Anweisung. Ordnung, jetzt haben wir also einen Cone-Controller und von
diesem Icon-Controller aus
wird die Anmeldung aufgerufen. Die Rückgabe-URL
bedeutet im Grunde, wann immer Sie sich anmelden, kehren Sie zu den
Schrägstrichen zurück, was die Startseite ist. Aber hier unten sagen wir, dass die
Var-Authentifizierungseigenschaften neuen Anmeldeauthentifizierung
im Properties Builder
entsprechen. Und dann deutet das darauf hin
, dass wir zu
einem klugen Reader-Benutzer gehen, nachdem ich mich
angemeldet habe und so und so, oder? Das ist also die Rückgabe-URL. Wenn du also willst, dass sie
woanders hingehen, könntest du das tun. Oft,
wenn Personen auf
einer bestimmten Seite auf
Anmeldeschaltflächen klicken , wird diese Seite als URL angezeigt. Dies ist also der
Standardwert für den Fall dass keine Rückgabe-URL angegeben wurde, dann wird einfach darauf
umgeleitet. Andernfalls
leiten wir immer zu dieser Rückgabe-URL weiter. Dann werden wir Probleme in UP-Kontexten sehen , die
sich dieser
Herausforderung stellen Async wird mit freundlicher Genehmigung von
oder ohne
Nullpunkt-ASP NET
Core-Punkt-Authentifizierung, Bibliotheksreferenz geliefert . Und dann ist es so ziemlich einfach das
Authentifizierungsschema
einzurichten, das aus
dieser Konstantenklasse stammt, die auch
aus diesem Namespace stammt. Und wir geben die
Immobilien entsprechend weiter. Okay, sobald das passiert, werden
wir tatsächlich zu einem Pfirsich ohne Null weitergeleitet. Es wird also von
unserer Anwendung weg zu
dieser Anwendung
navigieren , die alles Null ist, den Benutzer zur
Authentifizierung
laden und dann zurückgeschickt. Und dann wird es den
Zeitplanleser zu dieser Rückgabe-URL geben. Den nächsten Teil
der Anwendung oder dieses Setups, auf den ich achten
möchte, können
wir das machen, das Benutzerprofil. Ich denke,
das wäre auch nett. Wir können das also kopieren
, weil es sich im selben Icon-Controller befindet. Beachten Sie jedoch, dass es diese
Autorisierung bei der Notation hat. Lassen Sie mich das kopieren und
lassen Sie mich es einfach in
unseren vorhandenen Icon-Controller einfügen . Und dann gehe ich einfach
zum Logout und
kopiere das auch. Und dann können wir
genau das durchmachen, was wir gerade sehen. Hier. Autorisiert eine Anmerkung , die
dieser Aktion grundsätzlich mitteilt,
dass ein
authentifizierter Benutzer erforderlich , um darauf zugreifen zu können. Nein, es fehlt die Verwendung von
Anweisungen seit der Erde, also Kontrollpunkte und dann
erhalten wir diese mithilfe der Anweisung. Für die
3M-Typen fehlt
uns auch eine Using-Anweisung. Also Behauptungen, was sind Ansprüche? Ansprüche sind
Informationen, die in einem sogenannten
Token
enthalten sind . In Ordnung, lass mich
das für dich aufschlüsseln. Wenn wir zu Off
Zero wechseln und uns authentifizieren, senden
sie ein Token zurück. Dieses Token wird
nur ein
codierter Zeichenkettenblock sein ,
der alle Informationen über Sie enthält. Nun, alle relevanten
Informationen , hoffentlich
nichts Sensibles. Und deshalb ist es
wichtig,
diese Autoritäten für das Thema zu nutzen . Auch nur um zu verstehen wie Sie Ihr eigenes
einrichten würden. Denn alles, was Sie nicht in Betracht gezogen haben, haben
sie bereits
getan. All Zeros ist also eine
der führenden Behörden für Benutzersicherheit, oder? Was ich hier sehe,
ist, dass das
zurückgesendete Token von
unserer Anwendung verwendet wird , um anzuzeigen
, dass Sie authentifiziert sind. Das Vorhandensein eines Tokens bedeutet also , dass Sie authentifiziert sind. dass der Inhalt
dieses Tokens
Ihren Namen enthalten würde , basierend auf dem, was Sie bei der Registrierung
Ihrer E-Mail-Adresse
angegeben haben, sogar ein Profilbild, wenn Sie es auf solche Dinge
hochladen. Diese Behauptungen
stammen also alle von den Tolkien, und sie sind alle
Informationen, die
zeigen, wer Sie sind, welchem Zweck Sie dienen, was Sie tun können und was nicht. So
können sogar Rollen und ich selbst in diesem Toolkit zusammengefasst werden. Nein, das Autorisierte bedeutet
wiederum, dass Sie diesen Endpunkt
nur erreichen
können, wenn Sie über ein Token verfügen. Das heißt, wenn ich versuchen würde, zum Login zu
navigieren, ist das in Ordnung. Wenn ich versucht habe, zu
anderen Teilen meines
Sets zu navigieren , ist das in Ordnung. Wenn ich versucht habe, mit aktivierter
Autorisierung hier zu navigieren , kann ich das nicht. Es wird mich zwingen, mich einzuloggen. Das Gleiche gilt für das Abmelden. Es zwingt mich, mich einzuloggen oder angemeldet
zu sein, sodass ich mich
abmelden kann, wenn ich nicht angemeldet bin. Sobald das Logo fertig ist, leiten
wir sie
auf die Startseite weiter . In Ordnung. Das Schild oben
endet also in zwei Teilen. Wir haben die Sandalen asynchron, was wirklich bedeutet, dass der Kontext, in
dem
wir angemeldet sind, durch Null gesendet wird. Deshalb ist das
das Authentifizierungsschema, das mit demselben alten verwendet
wird. Es sieht sehr
ähnlich aus wie die Herausforderung sehen, wo wir dasselbe
Authentifizierungsschema
verwenden, oder? Der nächste Supernode ist
aus dem Cookie raus. Denn was passiert,
ist, dass, wenn das Token von Null
weitergegeben wird, es in einem Cookie
lokal auf unserer Website
gespeichert wird, oder? Dann wird das die etablierte Methode sein , mit
der
die Anwendung weiß, dass
jemand authentifiziert wurde. Aus diesem Grund verwenden wir standardmäßig die
Cookie-Authentifizierung. Wenn du dich also abmeldest, müssen
wir dich als in zuweisen. Überlassen Sie asp.net Core
jede Anmeldung bei Aesop für das
Cookie-Authentifizierungsschema. In Ordnung, das ist also ziemlich was diese beiden Zeilen tun. Die Kombination oder
das kombinierte Ergebnis ist jedoch , dass
Sie kein gültiges Token mehr haben,
eine gültige RBC-Sitzung haben und
ein authentifizierter Benutzer
sind und
zum Anmeldeteil weitergeleitet werden Entschuldigung für die Indexseite. Wenn ich nun zur Dokumentation
zurückkehre, wirst
du sehen, dass wir
jetzt am Ende sind. Es gibt kein Sprichwort:
Okay, was kommt als Nächstes? Sie können also anfangen
, sich Dinge wie das Hinzufügen einer rollenbasierten
Autorisierung anzusehen. Sie werden also viele
Beispiele haben, die Sie sich
ansehen können , um herauszufinden, wie Sie sie in Ihre,
in Ihre Anwendung für Node
integrieren können . Oder wir wollen testen
und sicherstellen, dass wir Benutzer zum Einloggen zwingen
können. Ich werde also sagen, dass
Sie
für den Controller des Kurses autorisiert sein müssen, sagen
wir, den Index zu erstellen. Wir haben die Details, aber ich werde
eine Autorisierungskennzeichnung oder eine Anmerkung
direkt über dem Erstellen platzieren . Sie müssen autorisiert sein. Und dann können wir anhand der Referenz kontrollieren, ob Punkte fehlen. Und in der
nächsten Lektion
werden wir das testen
und sehen, wie es funktioniert.
36. Authentifizierung testen: In Ordnung, jetzt läuft
meine Anwendung. Und was wir tun
wollen, ist zu testen ob unsere Authentifizierung so funktioniert, wie wir es erwarten, und wie die gesamte
Benutzererfahrung aussehen wird. So kann ich
durch die Website navigieren. Ich meine, ich habe nur
ein paar Orte gesperrt und ein
Ort, an dem ich in einer früheren Lektion dafür gesorgt habe, dass das viel getan wird, war der Kurs Create Form Four. Wenn ich also auf Erstellen klicke, wird meine Website nicht verlassen. Das ist also die Domain, die mir gegeben
wurde, oder? Das ist natürlich die Domain, wenn wir bezahlen und einen kostenpflichtigen Tarif
bei osteo weekend
anmelden , um diese Dinge
anzupassen. Aber im Moment ist das in Ordnung. Dadurch kann ein Nutzer nun Ihre E-Mail-Adresse und Ihr
Passwort
angeben oder
mit Google fortfahren. Sie können sich sogar anmelden. Lass mich sehen, wie es
aussieht, wenn sie sich anmelden. Um sich anzumelden. Und noch einmal, all
dies kann individuell angepasst werden. Sie können das Logo ändern, wir können das
Anmeldeformular erweitern. Die meisten dieser Dinge sind jedoch mit der Bezahlung des Dienstes verbunden. Im Allgemeinen
benötigen Sie jedoch nur eine
E-Mail-Adresse und ein Passwort. Und noch einmal, es ist sehr
praktisch, weil es
die soziale Autorisierung oder
soziale Authentifizierung hat die soziale Autorisierung oder , eine
ziemlich große Dose. Oder wir können andere
soziale Plattformen,
Microsoft, LinkedIn,
GitHub usw., alles in diesen Bildschirm einfügen. Und das können wir tun, ohne zu viele Codezeilen
mehr zu
schreiben. Es ist also sehr praktisch. Lassen Sie uns weitermachen und ich werde
einen dieser Tests verwenden,
E-Mail-Adressen, die ich habe. Ich sage einfach SEM. Sem und mein spezielles Passwort, Hier ist Wins, VP,
essence W oder d one. Sie können hier sehen
, dass die gesamte Validierung für mich
erledigt wird. Ich kann auf Weiter klicken, und dann stellen sie
sicher testen und prüfen, ob Sie der App die Zustimmung
zum Zugriff auf Ihr Profil
erteilen möchten . Ich sage ja. Und ich bekomme diese Ausnahme. Ich weiß, du kennst mich,
ich werde die Ausnahmen nicht verstecken, weil es
wichtig ist , dass wir das tun und verstehen, warum wir bestimmte Dinge
bekommen. Was
hier passiert, ist, dass es dieses Korrelationsfeld
sagt. Und ich vermute nur, dass es hauptsächlich daran liegt, dass wir das HTTP-Protokoll
verwenden. Https wird bevorzugt, wenn wir solche
Dinge tun. In Ordnung? Was wir also
tun werden, ist zu
unserer Auth
Zero-Konfiguration für up zurückzukehren . Und nur für den Fall,
dass Sie sich nicht erinnern, wie Sie von Ihrem Getting
Started Panel
hierher gelangen . Sie können tatsächlich, naja, Sie können einfach zu
Anwendungen gehen und dann hier
zu Anwendungen gehen. Da haben wir's. Und dann wählst du dich aus. In Ordnung? Dann fügen
wir die HTTPS-URLs zu unserem
Login hinzu und rufen zurück. Ordnung, also die HTTPS-URL, wenn Sie
zu Ihren Lungeneinstellungen zurückkehren, befindet sich unter dem HTTPS-Profil Sie finden die beiden URLs, Sie finden eine HTTPS-URL und Sie finden die HTTP-URL. Sie können also einfach beide
kopieren und einfügen. Stellen Sie sicher, dass Sie
Slash Call Buck eingeben. Und statt eines Semikolons setzen Sie ein Komma gemäß den
Anweisungen direkt nach der Benutzerauthentifizierung, um
nur eine der URLs zu verwenden. Und sie sehen, dass sie HTTPS
bevorzugen. In Ordnung? Also werde ich beide angeben, aber wirklich und wahrhaftig, wir wollen, dass das HTTP S1 verwendet wird. Und das Gleiche gilt für das Logo. In Ordnung? Und denken Sie daran, sobald Sie
diese Änderungen vorgenommen haben, speichern Sie
die Änderungen, die Benachrichtigung würde ihm
sagen, dass es etwa 30
Sekunden warten soll. Was ich
tun werde, ist in unserem Dotnet, in unserem VS-Code, wir werden mit
das HTTPS-Profil. Also ich denke
, das haben wir vorhin gemacht, wo wir Dotnet Run
gesagt
haben und dann Bindestrich, Bindestrich sagen. Lass mich einfach den Bildschirm löschen
, damit er etwas klarer wird. Wir sehen Dotnet Run,
Hyphen, Startprofil. Ich weiß, dass wir HTTPS verwenden. Sobald wir das getan haben, drücken Sie die Eingabetaste. Jetzt können wir unsere
Anwendung von beiden aus ausführen. Aber die Middleware
, die sich in der program.cs befindet, wird sowieso immer die HTTPS-Umleitung
erzwingen. Lassen Sie uns also weitermachen und denselben Test erneut
mit HTTPS durchführen. Sie werden auch feststellen, dass Sie,
obwohl
Sie diesen Fehler
haben, tatsächlich
bereits
authentifiziert sind . Wenn Sie versuchen, zu dieser Seite zurückzukehren, können
Sie
zu der Seite wechseln. Das heißt, du
sprichst, ist anwesend. Und wenn Sie die Konsole
oder das Terminalfenster
beobachtet haben, werden Sie sehen, dass der
Tolkien Buck kam und ganze OpenID-Handshake. All Zeros bietet also
OpenID Connect-Dienste. Und das ist wie ein Handschlag
zwischen Ihrer Website. Und dann ist das Endergebnis
dieses Handshakes, dass Ihre Anwendung ein
Token erhält und keine Knoten,
sie ist authentifiziert. Leider haben wir
die Abmelde-Schaltfläche noch nicht eingerichtet , sodass wir authentifiziert sind und
keine Möglichkeit haben, uns zu authentifizieren. Also, was ich tun werde, ist diese URL zu
nehmen und erneut zu testen Wir verwenden unser privates Fenster, also technisch gesehen
kommen wir frisch rein, keine Authentifizierung
hat stattgefunden. Wir gehen zu Kursen, wir können die Kurse sehen, die
wir neu erstellen könnten. Und dann sind wir
gezwungen, uns anzumelden oder anzumelden. Ich werde einfach die gleichen
Kegel
verwenden, die wir gerade admin bei
SEM mit einem Passwort
erstellt haben
und auf Weiter klicken. Und siehe da, es gibt keinen Fehler und wir werden authentifiziert und
zu unserem gesicherten pH-Wert weitergeleitet. Es ist also gut zu sehen, was schief gehen
kann, und es zu verstehen denn OpenID Connect kann etwas Finesse erfordern
, um sich daran zu gewöhnen. Aber da Dienste wie
Auth Zero viele der auftretenden
Komplikationen
abstrahieren . Es ist ziemlich einfach, mit der
Authentifizierung loszulegen. Jetzt müssen wir unsere Funktionalität
beenden. Wir werden auf
dieser Profilseite oder in einem kleinen Teil hier drüben ,
dass, wenn
Sie angemeldet sind, also
Ihre E-Mail-Adresse verwenden und eine Logo-Schaltfläche anzeigen. Und die E-Mail-Adresse geht zu der
Profilseite, die wir eingerichtet haben. Das
werden wir als Nächstes tun.
37. Benutzerbezogene Seiten einrichten: Hallo Leute. In dieser Lektion
möchten wir einen anderen
Balken ändern , damit wir
unsere zusätzlichen Schaltflächen haben können. Also wollen wir
hier eine Schaltfläche mit der Aufschrift
Anmelden, Abmelden und eine
, mit der wir
sehen können , welcher Benutzer gerade
angemeldet ist, oder? Lassen Sie uns also
zu unserem Projekt zurückkehren. Und was ich tun werde, ist eine neue Teilansicht zu
erstellen. Und das Coole an
Partials ist, dass sie über mehrere
Thesen
geteilt werden können , die injiziert werden, oder? Also werden wir gemeinsam unser
erstes Teilstück erstellen. Also werde ich mit der rechten Maustaste klicken
und Unterstrich-Anmeldung,
partielles Punkt-CSS-HTML erstellen . Und in dieser Datei werden wir so etwas Einfaches
machen. Also alles, was ich hier habe, ist eine ungeordnete Liste
mit einer Klassen-Navbar, oder? Also mit Bootstrap,
wenn wir eine
Navigationsleiste links und
einen Abschnitt rechts haben wollen , und sie sehen
ganz anders aus. Was passieren kann
, ist, dass wir
eine andere UL einrichten und ihr dann
dieselbe Klasse geben können , navbar-nav. Aber natürlich
mögen nicht alle anderen Klassen
die Filme und
das Grow und so, die die ursprünglichen Sets von
Navbar-Elementen hatten. Dies würde es tatsächlich
ermöglichen, es entlang dieser Navigationsleiste
richtig auszurichten. In dieser
neuen ungeordneten Liste werde
ich also eine if-Anweisung haben. Ich überprüfe, ob die Benutzerpunktidentität, bei der
es sich um einen authentifizierten Benutzer handelt, wie ein Superobjekt ist, das ein
sogenanntes Claim-Prinzip
darstellt. Asp.net Core-Anwendungen
haben also das Konzept
eines Benutzerprinzips oder eines
Claims-Prinzips, das eine Kombination all
dieser Behauptungen ist , die wir besprochen haben. Das Vorhandensein aller von ihnen kann kombiniert
werden, um uns
ein sauberes Sprint-IPL zu geben, und dann lehnt das
Prinzip ab, dass für die verschiedenen
Informationen
aufgeschlüsselt werden kann . Hier sehen wir also die Person das Objekt ist
, das Prinzip beansprucht. Hat es eine
authentifizierte Person? Stellt es eine
authentifizierte Person dar? Es ist immer präsent, aber
ohne angebliche Entzündung wäre
es wie
ein leeres Objekt. Das würde jedoch bedeuten
, dass die Person
wahrscheinlich nicht authentifiziert ist ,
wenn wir keine Informationen haben. Wir können uns also auf
diese if-Anweisung verlassen ,
da all dies
während des Authentifizierungsablaufs eingerichtet wird , den wir bereits
erlebt haben. Wenn die Person authentifiziert ist, möchte
ich nach Objekten suchen. Der erste ist,
und denken Sie natürlich daran, dass
wir einen anderen Link sehen müssen ,
der zuerst das LAs-Nav-Element und
dann die Klasse ist Nav-Link und Text-Bindestrich. Da wir
eine schwarze Navigationsleiste verwenden, müssen wir den Bereich eigentlich nicht einmal angeben. Einfach wirklich kopiert und
eingefügt, aber das ist in Ordnung. Wir werden sehen
, dass wir
zu Konto und Profil gehen . Und was wir zeigen, ist
die Benutzeridentität, der Punktname. Dieser Name ist der
Anspruch, von dem er stammt. Das Tool kann Frauen vor
dem Anspruchsprinzip schützen, das bei unserer Authentifizierung eingeführt worden
wäre. In Ordnung, das ist also eine nette, einfache Möglichkeit, den Benutzernamen zu erfahren. Nun, in diesem Fall verwenden Sie
sie als
dieselbe E-Mail-Adresse
des authentifizierten Benutzers. Wir zeigen das also an
und wenn es angeklickt wird, sollten
wir
zu seiner Profilseite gehen, die wir noch nicht
erstellt haben. Dann haben wir den nächsten,
nämlich den Logo-Button. Also, wenn die Person authentifiziert
ist und wir ihr ermöglichen möchten
, dass sie sich abmelden kann. Andernfalls fahren Sie fort und
zeigen Sie eine Anmeldeschaltfläche an, die zu
ihrem Cone-Controller und zur Anmeldeaktion führt. Und dann
würden sie dadurch natürlich
an den
Authentifizierungsdienst eines Drittanbieters weitergeleitet . Jetzt, da wir diese teilweise Einrichtung für die
Anmeldung haben, müssen wir sie nur noch zur Navigationsleiste
im Layoutpunkt CSS, HTML
hinzufügen . Css. Wir können hinzufügen, dass wir in dieser einen Zeile verwenden und
das macht teilweise aus. So cool. Sie können diesen statischen
Abschnitt der Websites erstellen, die statische, statische Ansicht zu stark und Sie können
ihn einfach an einer beliebigen Stelle
einfügen. Nur diese eine Zeile hier,
wir sehen nur, dass ein teilweiser Name gleichbedeutend mit teilweiser Anmeldung
ist. Diese Verpflichtung wird wissen, dass sie gehen und
versichert nach jeder Datei
mit diesem Namen suchen sollte , und dann wird es gerendert
dieser Abschnitt genau dort. Beachten Sie, dass hier
die ursprüngliche Navigationsleiste endet. Danach beginnen
wir mit unserem
Teilprojekt, in dem wir
einen weiteren Navbar-Abschnitt definiert haben. Lassen Sie uns das überprüfen. So sieht die
Anwendung also aus. Wir haben also alle vier
ursprünglichen URLs. Ich weiß, dass wir uns auf der rechten Seite
angemeldet haben. In Ordnung, das sieht gut aus. Wenn wir auf Anmelden klicken
, werden diese hier angezeigt. Und dann können wir weitermachen und mit dem Benutzer
authentifizieren , mit dem wir uns bereits angemeldet haben. Und dann nein, es wird
mir angezeigt, dass ich als
Administrator bei SCM angemeldet bin und ich mich
abmelden kann, wenn ich auf Abmelden klicke Was macht das? Es loggt mich dort aus. Wir alle wissen es. Was wir tun müssen, ist
diese Profilseite so zu konfigurieren , dass sie
tatsächlich irgendwohin geht. Denn wenn ich auf diese URL klicke, erhalte ich denselben Fehler
, den wir beim ersten Mal
gesehen haben, als
wir keine Ansicht hatten. Also lass uns weitermachen. Und konfiguriere das. Ordnung, also zurück in
unserem Icon-Controller haben
wir unsere Profiloption. Und was wir tun, ist, dass wir die Ansicht
zurückgeben, die irgendwann
existieren sollte irgendwann
existieren mit einem neuen, was wir
als anonymen Typ bezeichnen werden. Das ist also ein anonymer
Typ oder ein anonymes Objekt. Es gibt keine wirkliche Möglichkeit festzustellen, welcher Datentyp gesendet wird. Sie können hier sehen, dass es nur ein, es
ist nur anonym. Was ist ein? Jetzt schauen wir uns
das Konzept eines
Ansichtsmodells an , oder? Ich werde also damit
beginnen, eine Klasse zu erstellen und wir
haben bereits ein weiteres Konzept für
ein Ansichtsmodell
mit dem Error View-Modell Ich werde eine neue Datei erstellen. Ich nenne dieses
Benutzerprofil-View-Modell. In einigen Benennungskonventionen
würden die Leute einfach VM
sagen und es ist eine
neue Klassendatei. Also Punkt cs, wir beginnen
mit unserem Namespace. Und das sind die
MVC-Punktmodelle der
Schulverwaltungs-App , oder? Semikolon. Dann haben wir eine öffentliche Klasse und
wir nennen sie ein User Profile View Model. Nun wird diese Klasse
die verschiedenen Datenpunkte haben , die wir zeigen wollen. Und das Coole an View-Modellen ist, dass
sie wirklich dazu verwendet werden, zu kontrollieren, was wir auf dem Bildschirm zeigen
. Dies ist ein leistungsstarkes Konzept, insbesondere wenn wir nicht mehr
alle Felder unserer
Datenklassen auf diesem Bildschirm anzeigen
möchten , wir würden tatsächlich Ansichtsmodelle
erstellen jede Ansicht
spezifisch sind und dann habe ich eine Logik
,
die vom Ansichtsmodell in die
Datenklasse konvertiert und umgekehrt. Ich werde in diesem Kurs nicht auf all
das eingehen Sie können sich meinen Kurs ansehen, asp.net- und Entity
Framework Core-Entwicklung
abschließen, in dem ich Ihnen all
diese Dynamiken und
Abstraktionen dafür beibringe , wir wollen einfach loslegen und
verstehen, wie wir mit
minimalem Aufwand eine einfache App erstellen
können, oder? Für dieses Benutzerprofilmodell definiere ich Eigenschaften, die wieder dem entsprechen, was ich vom Profil erwarte. Und lass mich das tatsächlich versuchen. Ich wollte versuchen, das System
zu betrügen. Ich sage hier User
Profile View Model. Ordnung, füge die
fehlende Referenz hinzu. Und dann gibt es natürlich
nichts davon. Also werde ich mir das ansehen. Ich kann nur den
Generate-Variablennamen sehen, unseren Eigenschaftsnamen in
der Klasse, in der ich mir wünschte, er wäre enthalten. wollte ich machen. Und dann lass uns gehen
und den Kurs überprüfen. Und los geht's. So betrügt man, oder? Anstatt zu versuchen, sie alle manuell
einzugeben, werde
ich einfach die
Situation
ausnutzen , die sich ergibt. Also möchte ich
ein neues Ansichtsmodell zurückgeben. Es ist also ein starker Typ. Jetzt weiß ich genau, dass der
Datentyp zurückgegeben wird. Und dann sind das die
Eigenschaften, die da drin sind. Sie waren vorher nicht da. Also habe ich Visual Studio
Code erlaubt, sie für mich zu generieren. Ordnung, sobald das erledigt ist, werden
Sie feststellen, dass
sie auch mit diesen internen
Annotationssätzen
generiert werden , was bedeutet, dass
dies
von keinem anderen Ort außerhalb
der Initialisierung festgelegt werden kann . was für mich in Ordnung ist. In Ordnung? An diesem Punkt werden wir dieses
Ansichtsmodell zu dieser Ansicht zurückkehren. Diese Ansicht gibt es nicht und wir
werden kein Gerüst bauen. Wir müssen das manuell machen. Gehen wir also zu den Ansichten über. Und das erste, was
wir brauchen, ist ein Ordner, der unserem
Controller zugeordnet ist, oder? Ansichten klicken also mit der rechten Maustaste,
klicken Sie auf Neue Datei ,
und dann sehen wir leider nicht Neue Datei, Neuer
Ordner, Ordner. Da haben wir's. Und dann nennen wir es einen Kegel ,
weil das der Name
des Controllers ist. Dann können
wir innerhalb eines Kegels,
in diesem Ordner, jetzt eine
neue Datei erstellen und ich nenne sie Profile Dot CSS HTML. Warum Profil? Weil das
Profil wieder der Aktion zugeordnet werden muss
, die als Profil bezeichnet wird. Also wir haben das durchgemacht, wir haben das mit wem gemacht
und ungefähr schon. Das einzige
ist jedoch, dass wir auch
unseren eigenen Ordner erstellen . Nun zum Inhalt
dieser Seite, ich werde nicht versuchen, kreativ
zu werden. Ich werde nur auf die Probe
zurückschauen. Wenn ich also zum
All-Zero-Management-Dashboard zurückkehre, denken Sie daran, dass
wir es zu Beginn hätten
herunterladen können, während Sampler das
Beispiel auf GitHub angesehen hat, oder? Jemand, der dich auf GitHub rettet, das wird
das Projekt auf GitHub starten. Und wenn ich dann nach unten zu
der Woche navigiere , beginnt ein großes
Beispiel für Schrägstrich, Schrägstrich, Home-Slash-Profil
, CSS-HTML. Wir werden uns die Ansicht ansehen
, die sie im Beispiel verwendet haben. Ich denke, das ist gut genug,
um loszulegen. In Ordnung? Also wir wollen dieses sexuelle, ich meine, du kannst das Ganze nehmen, also können
wir einfach den
gesamten Inhalt kopieren. Und dann müssen
wir natürlich
die
Namespace-Referenz hier ändern , da sich das Benutzerprofilansichtsmodell in einem anderen Namespace
befindet, aber dann
kann alles andere gleich bleiben. Also, wenn
diese Operation abgeschlossen ist, ist es das, was wir am Ende
haben, oder? In dieser
Profilpunkt-CSS-HTML-Datei
habe ich also ein Modell und dann einen Namespace relativ zu
dem, wo sich mein View-Modell tatsächlich befindet. Und dann habe ich denselben Titel, dann ist
alles andere gleich. Wenn das alles erledigt ist, aktualisiere
ich
meine Bewerbung und sehe sie mir an
und genau das erhalte ich. Okay, das ist
Benutzerprofil-Admin bei SCM, das ist die
E-Mail-Adresse. Und das wäre
das Profilbild von Auth Zero
kommt. Das
meinen wir also mit Reinigungen. Diese Entzündung
gab es einmal, aber jedes Mal, wenn sich der
Benutzer authentifiziert, wird
diese Entzündung in seinen
Schadensinformationen
enthalten sein . In Ordnung, jetzt können Sie also mit dem
Herunterfahren verschiedener Teile
Ihrer Anwendung experimentieren Herunterfahren verschiedener Teile , weil
es nur um Sicherheit geht. Und es geht darum, wer was
kann und warum.
38. Letzter Schliff: Ordnung Leute, also in dieser
Lektion werden wir unsere Benutzeroberfläche ein wenig
aufräumen . Und ich fange
mit dem Layout an, um zu bezahlen. Also in unserem Layout, das sich im
Shared, There we go befindet, möchte
ich nicht, dass jemand, der
nicht authentifiziert ist , einen dieser Links
sieht. Zuallererst denke ich nicht, dass der Link zum Datenschutz mehr in der Navigationsleiste
sein muss. würde ich wahrscheinlich eher sagen
wollen. Es ist schon
hier in der Fußzeile gemacht. Jemand hat es
aus der oberen Navigationsleiste entfernt. Okay, und es wurde entfernt,
dass ich dann nicht möchte , dass ein authentifizierter Benutzer den Bereich Kurse,
Dozenten und
Studentenverwaltung sehen
kann . Ratet mal, was? Ich kann die
IF-Anweisungen , die wir im
Login-Abschnitt haben, hier verwenden. Ich kann sehen, ob Punkt der
Benutzeridentität authentifiziert
ist. Dann will ich diesen Abschnitt. Also füge ich einfach all diese LI-Tags in diese
if-Anweisung ein. Das zeigt nur,
wie einfach es ist, unsere
Anzeige basierend auf dem
authentifizierten Status
der Person dynamisch zu gestalten Anzeige basierend auf dem
authentifizierten Status
der Person dynamisch . Wir können Menüoptionen ausblenden
und sie
je nachdem, ob
diese Person angemeldet ist oder nicht, manipulieren . Und wir können auch weitermachen und einige
unserer Controller
sperren. Wenn
wir zum Beispiel wirklich nicht wollen, dass es
jemand sieht, sie
aber trotzdem
navigieren könnten wenn sie die
URL genau dort wüssten, könnten sie trotzdem einen
Seiten-Schrägstrich sagen . Kurse
slash-Index und fahren Sie dorthin. Also wollen wir nicht nur das
Ganze sperren, sorry für die Crew, es ist
weiter unten , um alles hier zu sperren. Für den Controller des Kurses können
wir einfach einen Autor angeben. Ich habe oben auf
dem gesamten Controller angefangen. Nein, niemand kann
hier in die Nähe kommen , wenn er nicht autorisiert ist. In Ordnung, also können wir das mit
allen Controllern machen , für die wir diese Art von
Blue-Ball-Beschränkung haben wollen. Also mache ich das für die
Klassenverwaltung, und das kann ich
für die Einschreibung tun. Und natürlich müssen wir hinzufügen
, dass die Verwendung von Statements fehlt. Also lass mich zurück zum
Unterricht gehen und das machen. Los geht's, wir können das Haus verlassen. Und dann möchten Sie manchmal
sehr deutlich machen sehr deutlich , dass dieser spezielle Controller Anonymität zulassen
kann. Es gibt hier also tatsächlich eine Anmerkung mit der
Aufschrift Allow anonymous, was bedeutet, dass
alles, was sich in diesem Controller befindet, oder wenn Sie es
über eine Aktion stellen, bedeutet dies, dass jeder gehen Sie zu dieser bestimmten Adresse,
ohne dass eine Genehmigung erforderlich ist. Das ist die Standardeinstellung, aber manchmal möchten Sie noch expliziter
sein. Ordnung, also werden wir
autorisieren und die Schüler, wir werden auch nein, es ist
kein unbefugter Zugriff auf eine
dieser Routen in
diesen Controllern erlaubt . Und selbst dann, selbst wenn wir den
gesamten Controller sperren, aber wir wollten, dass vielleicht
nur einer
zugänglich ist, könnten wir
einfach darüber hinausgehen und sagen, Hallo, Anonym, ich liebe über
dem Aktion das ist,
und Anonymität zulassen. Diese Künstler sind also
Dinge, die Sie
tun können , um den Zugriff zu kontrollieren? Ich habe die
zusätzlichen Links nicht eingefügt. du wahrscheinlich schon getan, also musst du das nicht tun. Aber ich habe den Kurs nicht besucht. Lassen Sie mich hier einen Blick auf die
Grasbewirtschaftung werfen. Das ist für den
Klassencontroller. In Ordnung. Und ich habe keine Anmeldungen eingegeben, und ich
muss wahrscheinlich nicht einmal Anmeldungen
direkt eingeben, weil wir
einige benutzerdefinierte Methoden für
die
Registrierungstabellen schreiben werden , weil das irgendwie relativ zum
Klassenmanagement. Ich denke also, dass das
eine gute legale Option ist. Und wenn wir zurückkommen, überprüfen
wir einfach , ob wir
einen weiteren Meilenstein erreicht haben.
39. Zu GitHub hinzufügen: Okay Leute, jetzt, da
wir einen anderen Muslim getroffen haben, lasst uns weitermachen und
all unsere Änderungen vornehmen. Wir können sehen, dass
Null und Benutzerschnittstelle hinzugefügt wurden. In Ordnung? Und dann
können wir uns verpflichten und pushen. Und wir sehen uns
im nächsten Abschnitt.