Den gode applikation - teknisk design og lagdeling
Udvikling af applikationer/systemer i STAR skal generelt følge best practice for udvikling af Microsoft webapplikationer. I de følgende er de overordnede krav skitseret.
Generelt
STAR applikationer udvikles som udgangspunkt som webapplikationer, da disse giver en høj grad af fleksibilitet i forhold til at springe mellem flere applikationer og foretage opdateringer uden, at brugerne bliver berørt. Følgende generelle krav forsøges efterlevet:
- Brugergrænseflader skal være webgrænseflader
- Brugergrænsefladen bør udvikles via HTML/CSS suppleret med JavaScript til forbedring af brugerinteraktion og inputvalidering.
- Systemets brugergrænseflade skal anvende webteknologier korrekt
- Systemet skal, i det omfang der eksisterer W3C valideringer af anvendte teknologier, kunne opnå W3C validering for de anvendte teknologier. Se: http://validator.w3.org/
- Applikationer skal kunne integreres med offentlige portaler
Lagdeling
For at sikre bedre mulighed for vedligehold opdeles alle STAR’s skræddersyede applikationer i fire overordnede lag:
- Præsentationslag (Applikationen)
- Servicelag
- Forretningsservicelag
- Datalag
Det er logiske lag, som giver en logisk opdeling af kode og tilhørende ansvar. Der vil dog typisk være mulighed for fysisk adskillelse mellem præsentationslaget og servicelaget.
Hvert af disse overordnede lag kan igen være opdelt i forskellige logiske blokke eller følge et bestemt mønster (eng. ”pattern”). De fire lag er vist på nedenstående, suppleret med tværgående lag med delte datatyper og diverse rammeværk.
Figur: Generel lagdeling af systemer med tværgående lag
For den applikation, der kun behandler data fra DFDG, vil DFDG typisk kunne udgøre de tre nederste lag (servicelag, forretningslag og datalag). For applikationer, der også har egen database, egen avanceret forretningslogik eller henter data fra andre kilder, vil DFDG typisk enten supplere applikationens egne lag, eller i særlige tilfælde blive anvendt som en datakilde på linje med andre datakilder. Keep-it-simple bør være den bærende strategi.
Præsentationslag (Applikationen)
Præsentationslaget udvikles via best practice for webapplikationer på Microsoft Web Platformen. Det betyder pt. for STAR’s webapplikationer, at der skal anvendes MVC framework og forbedring af brugergrænsefladen via javascript frameworket AngularJS. Applikationen opdeles i et passende antal ”Single page applikationer”.
Yderligere er det målet, at der sikres single-sign-on, mellem STAR’s (og om muligt også tredjeparts) applikationer. Det skal være muligt at navigere mellem applikationer uden at skulle logge på flere gange.
Browserunderstøttelse
Se: Krav til browserunderstøttelse
Tilgængelighed
De enkelte applikationers brugergrænseflader skal så vidt muligt kunne anvendes af alle borgere og medarbejdere. Det er derfor vigtigt, at webgrænsefladerne udvikles med brug af gængse webteknologier med anvendelse af gældende W3C standarder. Dette betyder anvendelse af følgende standardformater:
- HTML5
- CSS3
- JavaScript
- PNG
- JPEG
Siderne skal så vidt muligt følge krav til tilgængelighed, som beskrevet i:
- WCAG level AA
Websiderne valideres, så de overholder gældende standarder.
Brugergrænsefladerne er rettet mod sagsbehandlere og holdes simple og intuitive, med fokus på funktionalitet og mindre på grafisk design.
Se også: Krav til tilgængelighed
Svartider
Integrationslag
Kontrakterne udvikles via contract first og udstilles via WSDL og SOAP services. Der tages ved modelleringen udgangspunkt i OIO datatyper, og Dataentiteter skal modelleres med hensyntagen til offentlige krav som Grunddataprogrammets modelregler:
Generelt følges retningslinjerne for den gode web-service, se:
Forretningsservicelag
Forretningsservice laget kan være skræddersyet, eller anvende fx en regelmotor eller en flow-engine. Lager bør have en klar opdeling i de forskellige forretningsdomæner, der behandles, og tværgående logik bør være klart adskilt.
Databaselag
Datalaget er typisk delt i to dele:
- Data Access
- her anvendes typisk Entity Framework med Code First og Migrations. Dette er nemmere for udviklere at gå til end direkte at arbejde i SQL
- Data/Service Agents
- Her anvendes WCF til at kommunikere med eksterne
Database
Data placeres i samme fysiske database.