29. september 2009 - 12:56Der er
9 kommentarer og 2 løsninger
ASP.NET WebForms vs MVC
1. Jeg kunne godt tænke mig at vide om fordele og ulemper ved hhv. WebForms og MVC i forbindelse med ASP.NET. 2. Hvornår ville man vælge det ene, og hvornår det andet? 3. Som begynder indenfor ASP.NET, hvad ville I så anbefale? (Kender allerede til C# Apps, og for den sags skyld Java og PHP) 4. Hvad bliver nok den mest udbredte "standard"? (Selvom begge eksisterer side om side).
Jeg har allerede søgt på google og læst en del, men vil gerne høre personlige holdninger herfra.
1) WebForm har du mulighed for grafisk at designe dine websider, hvor MVC kræver at du kender til html osv. (lidt som hvis du skulle lave PHP). MVC hjælper dig (tvinger...) til at holde struktur på din applikation, og understøtter genbrug (du får ikke smasket domain-kode sammen med brugerfladen, som du gør med WebForms (og nej, code-behind filer er ikke at adskille domain-kode fra brugerfladen)).
2) Jeg ville vælge WebForms hvis jeg skulle have noget op at køre hurtigt, eller hvis applikationen mest bestod af brugerflade (masser af sider, ikke så meget bagvedliggende logik). Til gengæld ville jeg vælge MVC hvis jeg vidste det ville blive et stort og kompliceret system, der skulle ændres mange gange i dets levetid.
3) Start med WebForms, for det er ikke "enten-eller", og meget af det du lærer af at lave WebForms-applikationer, kan bruges i MVC.
4) WebForms forsvinder ikke. MS har investeret for meget i dette, så det vil stadig være det mest udbredte, men MVC skal nok blive meget udbredt, og som sagt er det ikke "enten-eller".
Generelt vil jeg anbefale ASP.NET Web Forms til: - sider med kompleks logik - projekter med mange sider - projekter hvor performance ikke er kritisk - projekter hvor kort udviklingstid ikke er krtisk og ASP.NET MVC til: - sider med simpel logik - projekter med faa sider - projekter hvor performance er kritisk - projekter hvor kort udviklingstid er kritisk
Jeg vil nok ogsaa foreslaa at du starter med WinForms - ofte er det en fordel at laere teknologier i kronologisk raekkefoelge, fordi det er raekkefoelgen som forfatterne har laert dem i.
ASP.NET er stoerst idag fordi de var foerst. ASP.NET MVC er ret "hot" for tiden. Saa der bliver nok startet en hel del ASP.NET MVC projekter. Men medmindre ASP.NET MVC udvikler sig meget i de kommende aar, saa tror jeg at ASP.NET Web Forms vil foblive markant stoerre end ASP.NET MVC i fremtiden.
En enkelt kommentar: Hvis du skal bygge noget der er Web-baseret får du ingen fordel af at spilde tid på Winforms. Det er en helt anden ting og jeg tvivler på at Phill Haack og de andre bag MVC.Net har brugt megen tid på Winforms profesionelt.
Så til selve spørgsmålene. Jeg sidder selv med samme problem. Mht. til webforms/MVC. Så jeg kommer med det de begrundelser jeg selv har bruger for at vælge en kombination af MVC/WCF.
Webforms er nemmere at gå til hvis man er ude på at få en løsning i luften hurtigt og gerne vil læne sig op af det framework MS stiller til rådighed. Hvis du har mulighed for at bruge færdige kontroller som f.eks. Teleriks, kan du komme rigtig langt meget hurtigt.
MVC giver bedre kontrol over det output der havner i browseren og sammen med AJAX(Jeg har valgt JQuery, der supporteres af MS) står du med et utroligt kraftfuldt og skalerbart grundlag for en professionel web applikation. Jeg har gode erfaringer med MVC generelt, i andre sammenhænge.
Med hensyn til udbredelsen er Webforms, i sagens natur det mest udbredte indenfor ASP.NET(se arnes svar), mens MVC har 20-30 år på bagen som arkitektur pattern indenfor Java og andre objektorienterede sprog. Selv har jeg brugt det med ASP-Classic og C# med god succés og er derfor glad for at MS har taget det til sig. Så jeg tror at MVC vil blive stort indenfor applikationer hvor skalerbarhed og en stringent opdeling af lag i Database/Foretningslogik/præsentation vigtigt.
Så hvis du har styr på objektorienteret programmering og lagdelt applikationesudvikling, så gå efter MVC, men hvis du leder efter en indgang til mainstream .NET gå efter webforms.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.