- C# 55.6%
- HTML 32%
- CSS 11.1%
- JavaScript 1.3%
| bin/Release/net10.0 | ||
| Controllers | ||
| Models | ||
| obj | ||
| Properties | ||
| Published | ||
| Views | ||
| wwwroot | ||
| .gitignore | ||
| appsettings.Development.json | ||
| appsettings.json | ||
| Program.cs | ||
| README.md | ||
| WebApplication1.csproj | ||
| WebApplication1.csproj.user | ||
PUCKO – Del 3: ASP.NET Core MVC
Detta projekt är en webbapplikation för databasen PUCKO, utvecklad i C# med ASP.NET Core MVC och MySQL. Applikationen används för att visa och hantera operationer, hjälpmedel, bokningar och rapporter.
Webbplats
https://wwwlab.webug.se/databaskonstruktion/a24ludka/app/
Projektets uppbyggnad
- Controllers:
HomeController,OperationsController,ToolsControllerochReportsControllertar emot anrop från webbplatsen och väljer vilka funktioner som ska köras. - Models:
Dbhanterar databasanslutning och gemensamma databasoperationer.OperationsModel,ToolsModelochReportsModelinnehåller SQL-frågor och anrop till lagrade procedurer. - Views: Razor-filer (
.cshtml) visar tabeller, formulär, sökfält och resultat för användaren. - Program.cs: Registrerar MVC och modellerna samt konfigurerar routing.
Funktioner
Operationer
Sidan visar operationer i en tabell. Användaren kan söka efter kodnamn och filtrera på gruppledare och region. Det går också att ändra slutdatum för en operation med ett formulär. Ändringen görs med UPDATE i OperationsModel.
Hjälpmedel och bokningar
Sidan visar hjälpmedel och bokningar. Användaren kan boka hjälpmedel genom proceduren BokaHjalpmedel, ta bort en bokning med DELETE och hämta antal hjälpmedel för en operation genom proceduren GETOPTOOLCOUNT. Bokningarna hämtas med en fråga som använder LEFT JOIN mellan Operation och OperationHjalpmedel.
Rapporter
Sidan visar rapporter och låter användaren skapa en ny rapport med INSERT. Rapporttext kan uppdateras med den lagrade proceduren SkrivRapportText. Rapportuppgifterna hämtas bland annat från vyn v_RapportFull.
Exempel på användarflöde
- Användaren öppnar sidan Hjälpmedel och bokningar.
- Användaren väljer en operation och ett hjälpmedel i formuläret.
- Formuläret skickas till
ToolsController.Book. - Controllern kontrollerar inmatningen och anropar
ToolsModel.Book. - Modellen anropar den lagrade proceduren
BokaHjalpmedeli MySQL. - Användaren skickas tillbaka till sidan och får ett resultatmeddelande.
Databas och säkerhet
Applikationen använder MySqlConnector för kommunikation med MySQL. SQL-frågor och proceduranrop använder parametrar. Formulär som ändrar data skickas med POST och skyddas med antiförfalskningstoken. Databasfel hanteras och kan loggas via proceduren LoggaForbjudenAtgard.
Körning
Projektet byggs och publiceras med .NET CLI:
dotnet publish -c Release -o ./Published --self-contained false
Det publicerade innehållet laddas upp till skolans webbserver. Databasanslutningen måste vara konfigurerad för den aktuella miljön. Lägg inte in lösenord eller andra hemligheter i README eller Git.