Oprettet tir. d. 07. august 2012 kl. 20:25:05

mariendalsvej333
mariendalsvej333 (4.105 point. Point ude: 75)

MVC og MVP - front- eller back-end?

Når jeg bliver spurgt om hvilken type udvikler jeg er, eller hvor jeg "ligger" henne af: back-end eller front-end udvikler, så svarer jeg som regel back-end, da jeg anser Presentation laget hvor Views, Models, Presenters/Controllers holder til, i en typisk 3-lags arkitektur. Front-end er vel kontrekt ASP.NET, HTML, CSS og Javascript/AJAX etc.? Er der nogen som er ueninge med mig i det? Det er UI mønstre, for at afkoble UI'en fra konkret forretningslogik og samtidig gøre det test bart.

Håber at høre fra nogen.

Skrevet tir. d. 07. august 2012 kl. 21:46:51| #1

softspot
softspot (106.469 point)
blog.softspot.dk
I min terminologi er en frontendudvilkers opgave at formidle systemets funktioner og muligheder på den mest hensigtsmæssige og effektive måde. Dvs. noget med opsætning og styring af brugergrænsefladen, altså grænsefladen mellem brugeren og systemet. Typisk er det vel så, når man taler en webplatform, noget med at kunne HTML og CSS, samt evt. JavaScript. Alt det der ligger under det niveau (bag ved) er for mig backend, selvom det nok er lidt firkantet anskuet. Der er nok et vis overlap, som frontendudvikleren også kan tage sig af, men jeg ser det ikke som dennes primære opgave. Views ligger i frontendudviklerens domæne, men ikke ViewModels, Controllers og Models.

Backendudvikleren sørger for at modtage, behandle (håndhæve regler) og finde data og servicere bla. frontend med disse. Der kan naturligvis være flere grænseflader ifht. backend, så frontend er blot én abonnent. Models og f.s.v. også controllers ligger, for mig at se, i backendudviklerens domæne. Herunder evt. Viewmodels, der umiddelbart blot er det format (og afgrænsning) data har ifht. frontend.

AJAX er umiddelbart en måde at kommunikere på, så jeg ser det ikke decideret som en specifik frontend eller backend-disciplin.

JavaScript er vel heller ikke udelukkende frontend. Der kan sagtens laves forretningslogik som ligger på klienten og kører i JS. Der findes mange frameworks og biblioteker, der gør understøttelsen af MVC lettere på klienten (AngularJS, Knockout JS, Backbone, Meteor m.fl.)

ASP.NET er et framework som håndterer webapplikationer og deres request-cycles, herunder stiller en masse funktionalitet til rådighed for at facilitere denne process. Jeg synes ikke man udelukkende kan kategorisere ASP.NET som en frontend-teknologi.

Jeg påstår langt fra, at jeg har den endegyldige sandhed om emnet, så ovenstående er bare mine umiddelbare tanker om rollefordelingen.

Skrevet tir. d. 07. august 2012 kl. 23:28:06| #2

arne_v
arne_v (1.048.623 point)
Med en klasisk opdeling:

system = client tier + app tier + database tier

app tier = presentation layer + business logic layer + data access layer

vil jeg kalde:

client tier + app tier presentation layer = frontend

app tier business logic layer + app tier data access layer + database tier = backend

MVC og MVP boer vaere ren presentation layer og dermed frontend. Det kraever naturligvis at M er en proxy for business logic layer.

Skrevet ons. d. 08. august 2012 kl. 09:59:42| #3

softspot
softspot (106.469 point)
blog.softspot.dk
@arne: Vil det så sige at M i MVC, iflg. dig, er lig med ViewModel? Jeg opfatter umiddelbart M'et for forretningslaget...

Skrevet ons. d. 08. august 2012 kl. 14:15:12| #4

arne_v
arne_v (1.048.623 point)
M i MVC er model.

Man kan lave M lig med forretningslaget.

Men i ægte MVC (hvilket MVC web typisk ikke er !) skal M faktisk opdatere V.

Det er ikke business logic at opdatere V.

Derfor ser jeg M som værende en presentation layer del som 1) laver simple passthrough kald til business logic og 2) opdaterer view når C laver opdateringer.

Derudover synes jeg rent praktisk at det giver bedre samling at have en enkelt del af presentation layer M som taler med business logic fremfor to (baade V og C).

Skrevet ons. d. 08. august 2012 kl. 14:17:30| #5

arne_v
arne_v (1.048.623 point)
Hvis man i stedetfor den traditionelle 3 layer:
  presentation
  business logic
  data access
bruger en 4 layer:
  presentation
  control
  business logic
  data access
saa er:
  V = presentation
  C og M = control

Den opdeling synes jeg ofte giver god mening, da V ofte kraever helt andre skill sets end C og M.

Skrevet ons. d. 08. august 2012 kl. 14:28:27| #6

softspot
softspot (106.469 point)
blog.softspot.dk
@arne: jeg synes bare jeg har opfattet at det du så definerer M ved, af andre i .NET-miljøet kaldes for ViewModel (bla. Scott Hanselmann). Jeg er helt enig i at det ikke er BL's ansvar at opdatere presentationslaget og din inddeling giver i øvrigt fin mening i men verden.

Skrevet ons. d. 08. august 2012 kl. 14:43:07| #7

arne_v
arne_v (1.048.623 point)
Der er nok korrekt.

MVVM V = MVC V
MVVM C = MVC C
MVVM VM = MVC M proxy to business logic
MVVM M = business logic

saa hvis vi taler MVVM og ikke MVC, saa er det anderledes.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Undgå duplikeret kode i en asp.net web form applikation

Oprettet den 15. maj 2013 kl. 00.36
jan_h giver 100 point for svar | Giv et svar »

Perfect Full Page Background Image

Oprettet den 9. maj 2013 kl. 14.09
koppelgaard giver 200 point for svar | Giv et svar »

web form application , create read update delete

Oprettet den 8. maj 2013 kl. 12.30
jan_h giver 60 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

Galleri: Her er Googles nyeste værktøj og legetøj

Google har i denne uge afholdt udviklerkonferencen I/O i San Francisco. Se her hvad søgegiganten kunne præsentere af nyskabelser.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger