Oplæg til mindre systemer (programmerings-opgaver).

 

Løsnings strategi

Start med at løse opgaver uden at tænke på persistens (at data skal gemmes og ikke kun ligge i memory - du skal ikke bruge database)

Adskil "kernen" / modelklasser og UI - de første i et selvstændig ClassLibrary og det sidste som WebForm i tom Web Application projekt.

Start med "kernen" - skitser en domain model og tilføj øvrige programklasser og fordel basis-metoder på disse - lave SD diagram hvor der en smule kompleksitet som støtte - evt. også en operationskontrakt.
Afprøv metoder med faste data fra knapper på en webform - en knap for hver afprøvning

Tilføj DataContract for på klasser, hvis objekter gemmes på disk og DataMember på felter / properties der skal gemmes.

Brug tricket med en klasse GlobaleData og static data til at "holde" på objekter mens programmet afvikles (denne klasse kan også bruges til at indlæse og gemme modellens objekter - husk det er nemt hvis der er eet der "samler").

Du kan nu starte med at tilføje noget brugergrænseflade, der kan nyttiggøre din model/kerne - brug et tomt web-projekt og webforms.
Du får undervejs også mulighed for at skitsere diverse use-cases og skitser til brugergrænseflade (evt. SSD'er) idet du selv afgør behov for detaljeringsgrad.

Tænk i små simple skærmbilleder med enkel funktionalitet - en god indgangsvinkel er de skal kunne ses i browseren på en telefon (fx 400x600 punkter)
Udbyg din "kerne" med funktionalitet efterhånden som du for behov i forhold til funktioner i brugergrænsefladen - skitser gerne SD'er beskriv med lidt korte operationskontrakter hvor det er en smule kompliceret
Det er centralt af have fokus på hvordan man fordeler opgaven på metoder på de enkelte klasser.

Du kan enten selv agere bruger eller finde nogen i omgangskredsen der kan, da det er hverdags opgaver de fleste kan have glæde af.

Alle opgaverne tænkes som enkeltbruger løsninger - der skal tages højde for flere bruger systemet samtidigt.

 

Benzinregnskab:

Der ønskes et lille system, hvor man kan registrere hver gang man tanker benzin og så få diverse oversigter over forbrug for en periode, hvor meget man kører pr. liter osv.

Som udgangspunkt kan man have en enkelt bil objekt, der kan fungere som "kartotek" for de enkelte registreringer.

Opgaven kan evt. udvides så man har flere biler og således et kartotek med biler, der hver især har deres egne registreringer.

Tips. man kan enten udnytte at man kan få at vide hvor mange elementer der er i en liste og bruge index (position) for at hente et bestemt element og hermed få fat på sidst aflæste km-tæller, eller man kan gemme den sidste aflæsning i selve bil objektet. Hvis man for hver registrering gemmer både sidste km-tæller og den nye er det let at beregne, men fylder lidt mere - hvis man ikke gør skal man have fat på 2 registreringer (aktuel og foregående) for at kunne beregne km-tal.

 

Diætregnskab:

Der ønskes et lille system, hvor man kan registrere hver gang man indtager et måltid (mad/drikke) og herunder et kalorietal.
Det skal være muligt at få en oversigt over måltider inden for en periode, herunder det samlede kalorietal.
Systemet kan udvides så der også registreres motion med kalorieforbrug og regnskab for dette.
Systemet kan så også udvides med beregning for det samlede resultat af plus- og minus-siden.

 

Dosmer-sedlen:

Der ønskes et lille system, hvor man kan registrere opgaver der skal laves med en prioritet.
Det skal være muligt at få en oversigt over opgaverne og markere når de er udført.
 

Ønskesedlen:

Der ønskes et lille system, hvor man kan registrere sine familiemedlemmer, venner mfl. (personer) og for hver af disse kan registrere et antal ønsker (data om hver af disse - ønske-objekter).
Det skal være muligt at registre de gaver man så ender med at give. Det skal også være muligt at redigere og fjerne ønskerne, så de ikke bare hobes op.
Det skal være muligt at få en oversigt over gaver og ønsker for en udvalgt person.
Det skal også være muligt at få en oversigt over personerne.

 

Timeregnskab:

Der ønskes et lille system, hvor man kan registrere sit tidsforbrug samt en lille note om hvad der er lavet.
Det skal være muligt at få en oversigt over de registreringer der er for en angiven periode, samt det akkumulerede tidsforbrug.

Systemet kan udvides med at brugeren kan oprette kategorier og så tilknytte sin tids registrering til en kategori. Det skal så være muligt at få registreringer for en periode for en bestemt kategori og det akkumulerede forbrug for denne. 
 

Boglisten:

Der ønskes et lille system, hvor man kan registrere bøger. Man skal kunne registrere om man har købt bogen (ejer den), typen (papir/ebog/lydbog) og man skal kunne registre om man har læst den - evt. kommentar.
Det skal være muligt at få forskellige oversigter over bøgerne - fx. dem man ejer men ikke har læst.
Det skal være muligt at søge efter en bog, så man kan se om man allerede ejer den / har læst den, hvis man fx ser et godt tilbud og ikke kan huske det.

 

Filmlisten:

Samme problemstilling som boglisten men i stedet for film.
 

Indkøbslisten:

Der ønskes et lille system, hvor man kan registrere det man skal købe ind.
Det skal være muligt at man kan gemme informationer om varer, så man ikke skal indtaste data om dem hver gang man laver indkøbslisten, men at man kan udvælge disse.
Under indkøbsturen skal man dels kunne se de indkøb, der skal foretages samt også kunne markere når de er gjort - så man kan se både dem der mangler og dem der er foretaget (behøver ikke være samme skærmbillede).
Man skal efterfølgende kunne få en oversigt over indkøbsture og de indkøb der blev foretaget på denne.