Kurse:News Site erstellen
Um ein neues News-Projekt mit ASP.NET Core MVC und individueller Authentifizierung zu erstellen, führe folgenden Befehl in der Kommandozeile aus:
dotnet new mvc --auth Individual -n News
Dadurch wird ein neues ASP.NET Core MVC-Projekt mit individueller Benutzer-Authentifizierung im Ordner `News` erstellt. Wechsle anschließend in das Projektverzeichnis:
cd News code .
Jetzt müssen wir eine Datenbank einrichten:
<!-- Installiere das Entity Framework Core CLI-Tool --> dotnet tool install --global dotnet-ef
Nun erstellen wir die SQLite-Datenbank und führen die Migrationen aus:
dotnet add package Microsoft.EntityFrameworkCore.Sqlite dotnet ef database update
Dadurch wird die SQLite-Datenbank entsprechend der aktuellen Migrationen erstellt.
Jetzt installieren wir das Tool `dotnet aspnet-codegenerator`, das für die Gerüstgenerierung (Scaffolding) benötigt wird:
dotnet tool install --global dotnet-aspnet-codegenerator dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
Diese Tools werden benötigt, um automatisch Code für Controller, Views und andere Komponenten zu generieren. Das erleichtert die Entwicklung und spart Zeit, besonders wenn du die Benutzeroberfläche (z.B. Formulare für die Benutzerverwaltung) anpassen oder übersetzen möchtest. Um die Login-Seite für die Benutzeranmeldung zu generieren und anschließend ins Deutsche zu übersetzen, führe folgenden Befehl aus:
dotnet aspnet-codegenerator identity -dc ApplicationDbContext --files "Account.Login"
Dadurch wird die Datei `Login.cshtml` im Verzeichnis `Areas/Identity/Pages/Account` erstellt. Öffne diese Datei und passe die Texte an, um sie ins Deutsche zu übersetzen, z.B.:
dotnet aspnet-codegenerator identity -dc ApplicationDbContext --files "Account.Register"
Dadurch wird die Datei `Register.cshtml` im Verzeichnis `Areas/Identity/Pages/Account` erstellt. Öffne diese Datei und passe die Texte an, um sie ins Deutsche zu übersetzen, z.B.:
Gehe zu Views/Shared/_Layout.cshtml und Views/Shared/_LoginPartial.cshtml, um diese ins Deutsche zu übersetzen.
Modell für News-Artikel erstellen
Um ein Modell für News-Artikel zu erstellen, füge im Projektordner `Models` eine neue Datei namens `Artikel.cs` hinzu mit folgendem Inhalt:
using System.ComponentModel.DataAnnotations;
namespace News.Models
{
public class Artikel
{
public int Id { get; set; }
[Required(ErrorMessage = "Der Titel ist erforderlich.")]
[StringLength(200, ErrorMessage = "Der Titel darf maximal 200 Zeichen lang sein.")]
[RegularExpression(@"^(?!.*(<|>|script|iframe|object|embed|form|input|button|link|style|svg|on\w+=|javascript:|data:|SELECT |INSERT |UPDATE |DELETE )).*$", ErrorMessage = "Der Titel darf keinen HTML-, JavaScript- oder SQL-Code enthalten.")]
public string Titel { get; set; }
[Required(ErrorMessage = "Der Inhalt ist erforderlich.")]
[DataType(DataType.MultilineText)]
[RegularExpression(@"^(?!.*(<script|<iframe|<object|<embed|<form|<input|<button|<link|<style|<svg|on\w+=|javascript:|data:|SELECT |INSERT |UPDATE |DELETE )).*$",
ErrorMessage = "Der Inhalt darf keinen JavaScript-Code, keine SQL-Befehle und keine gefährlichen HTML-Tags enthalten.")]
public string Inhalt { get; set; }
[DataType(DataType.DateTime)]
public DateTime VeröffentlichtAm { get; set; }
[StringLength(100, ErrorMessage = "Der Autor darf maximal 100 Zeichen lang sein.")]
[RegularExpression(@"^(?!.*(<|>|script|iframe|object|embed|form|input|button|link|style|svg|on\w+=|javascript:|data:|SELECT |INSERT |UPDATE |DELETE )).*$", ErrorMessage = "Der Autor darf keinen HTML-, JavaScript- oder SQL-Code enthalten.")]
public string Autor { get; set; }
}
}