Webbserverprogrammering 1 · område 5 · lektion 34
Fem områden, en kedja
Höstterminen har lärt ut. Vårterminen bygger. Den här sidan säger hur de fem områdena hänger ihop – inte som fem separata moment utan som en kedja där varje länk gjorde nästa möjlig – och vad som väntar i januari.
Lektion 34 var eget arbete med inlämningen, och sedan två genomgångar: den här sidan är de två genomgångarna. Läs den på tio minuter. Det viktiga att ta med sig står i avsnitt 5: du börjar aldrig om.
Inlämning 5 gick ut samma kväll. Har du inte lämnat in: gör de tre kontrollerna och lämna in så snart du kan – och säg till, så vet jag att den kommer.
1. Fem områden, en kedja
Läs tabellen med pilar bakåt. Varje rad var möjlig bara för att raden ovanför redan var gjord.
| Område | Vad du byggde | Vad det gjorde möjligt |
|---|---|---|
| 1 | En sajt som svarar på en förfrågan | Att veta vad servern faktiskt gör |
| 2 | C# på serversidan, en lista renderad | Att ha data att visa |
| 3 | Komponenter, routing, layout | Att listan kunde visas på två ställen |
| 4 | Tjänster bakom gränssnitt | Att datan kunde bytas ut |
| 5 | Databas och formulär | Att datan blev verklig |
Frågan som ställdes i salen: vilket av de fem områdena var jobbigast att se poängen med? Svaret blir område 4, varje år. Applikationen såg likadan ut när det var slut, och allt arbete låg i var koden hamnade.
Och det är precis det området som gjorde att område 5 tog tjugo minuter i stället för en dag.
2. Kursens viktigaste mening
Det var inte tur. Det var det ni gjorde i november.
Öppna ditt projekt och titta på det själv: IDittService ser likadant
ut som i område 4, bortsett från metoden som sparar. Komponenterna som visar listan
och detaljsidan är orörda. Det enda som ändrades var en klass – och den låg bakom
ett gränssnitt just för att kunna ändras.
Den meningen bär hela vårterminen. Varje projekt i vår lägger till något bakom samma gränssnitt, och varje gång kommer komponenterna att klara sig.
3. Vårens fyra projekt
Terminen har varit genomgångar och mängdträning. Våren är projekt: samma applikation, större steg, längre deadlines. Alla deadlines går ut kl 23:59.
- 8 mars Projekt 1 – Datadriven webbapplikation Område 6. Prov 4 dagen efter.
- 12 april Projekt 2 – Säkerhetsgranskning och härdning Område 7. Prov 5 dagen efter.
- 2 maj Projekt 3 – Driftsatt applikation med API-funktion Område 8. Redovisning live den 28 april.
- 7 juni Slutprojekt – Webbapplikation åt en kund Område 9. Delinlämning 12 maj. Slutprov 8 juni.
| Projekt | Område | Vad som byggs |
|---|---|---|
| 1 | 6. Datadriven applikation | Kategorientitet och relation, full CRUD, sökning och sortering med LINQ, inloggning och adminsidor |
| 2 | 7. Säkerhet och kvalitetssäkring | Granska och härda det du själv byggt |
| 3 | 8. Driftsättning, API och externa data | Applikationen läggs upp så att andra kan nå den. Hämtar data från ett öppet API |
| 4 | 9. Slutprojekt | Ett nytt projekt från grunden, åt en kund |
Två prov ligger dagen efter projekt 1 och 2. Ett slutprov över hela kursen i juni. Vårterminen börjar onsdag 13 januari.
4. Vad som händer med det du har
Attributen i område 6. [Range] fångade inte det som skrevs
rakt in i databasen – i område 6 skriver du ett eget valideringsattribut,
och kopplar ihop din kategorientitet med din huvudentitet så att varje post hör
till en kategori. Det du har nu är halva datamodellen.
Valideringen i område 7. Attributen fångar slarv. De fångar inte någon som medvetet försöker. Det området handlar om skillnaden – och du granskar det du själv byggt, inte något färdigt exempel.
Anslutningssträngen i område 8. Den ligger i appsettings.json
och inte i koden av ett skäl: när applikationen driftsätts byts den ut utan att
en enda kodrad ändras.
5. Regeln från och med nu
Projektet du har i dag är det du lämnar in i mars, granskar i april och driftsätter i maj. Varje projekt bygger på det förra. Det finns ingen punkt där du får ett nytt, tomt projekt och slipper det gamla.
Det gäller inte slutprojektet, som är ett nytt bygge från grunden – och det är avsiktligt. I juni ska du kunna göra hela resan själv: från tomt projekt till driftsatt applikation med databas, validering och inloggning. Det är det de fem områdena har tränat.
Två saker att göra över lovet, om du vill ligga före:
- Titta på din datamodell. Vilken kategorientitet passar din domän? Frågan ställdes redan i domänkraven från område 3, och den ska besvaras i januari.
- Se till att projektet startar från noll: klona ditt eget repo i en ny mapp och
kör
dotnet ef database updateochdotnet run. Fungerar det där fungerar det i januari.