webForumDet fria alternativet

ASP.NET MVC arkitektur

.NET

6 svar · 1 016 visningar · startad av thevice

Medlem sedan dec. 2005198 inlägg
Frågan#1

Hejsan!
Jag har börjat kolla på ASP.NET MVC och måste säga att det ser riktigt lovande ut. Jag har startat många trådar här på forumet angående hur man ska bygga upp sina sidor och nu så kommer än till.

Det känns som om att jag har kollat runt överallt för att hitta en arkitektur som passar mig i smaken men jag har haft väldigt svårt med det. S#arp är något som jag har kollat på men det var för svårt för mig och jag förstod inte riktigt hur de tänker.
Jag började kolla på open source projektet KiGG och det var något som jag förstod till en början men det vart sen för svårt / jobbigt då jag inte riktigt förstår hur Unit är eller hur det fungerar. I KiGG så är det en massa rader i Web.Config som gjorde att jag tappade lusten att kolla på det (jag vet dock inte varför man måste ha de raderna, men de hade med unit att göra).
I KiGG så tycker jag även att strukturen på hela projektet verkade konstigt och irriterande då t.ex en class kan ligga i ett projekt som heter KiGG.Core och sen i en undermapp som heter DomainObjects men namespacet på classen är enbart KiGG.DomainObjects.

Efter lite googlande så hittade jag http://russelleast.wordpress.com/2009/04/04/aspnet-mvc-defining-an-application-architecture/ och det verkar lovande och inte allt för svårt. Dock så är inte artikel serien klar och man vet aldrig när nästa artikel kommer.

Så, någon som vet någon bra artikel / open source projekt som visar hur arkitekturen kan vara i ASP.NET MVC. Jag lär mig bäst genom att kolla på projekt som redan fanns. Jag tycker även om när projektet är uppdelat, som att t.ex ha alla controllers i ett annat projekt.

En annan fråga som jag även skulle vilja ha svar på. Vilken O/R Mapper är bäst att använda? Linq To SQL är lätt och jag förstår mig på det, Entity Mapper verkar mycket bra men det fungerar inte på min dator av någon konstig anledning. Nhibernate verkar mycket lovande men även svårast.
Jag vill inte vara fast vid MSSQL utan jag vill att man ska kunna byta om det behövs.

Diskutera vad ni anser är bäst, ge gärna länkar till open source projekt eller liknande för att hjälpa mig på traven.

Vänligen,
Timmie

Medlem sedan dec. 19995 874 inlägg
#2

Jag är inte riktigt med på vad du är ute efter.

Jag tycker inte att det finns någon arkitektur som alltid är rätt i alla projekt.
Det varierar. Ibland har man inga som helst krav eller förstå hur saker och ting fungerar och då kan man i princip slänga in vad som helst av färdiga mallar och annat. Ibland behöver man kunna kontrollera allt.

MVC är ett arkitekturpattern, men du pratar om annan arkitektur?
Läs mer om MVC pattern här http://en.wikipedia.org/wiki/Model-view-controller

För att komma igång med microsofts MVC så tycker jag att deras egna sidor är riktigt bra.
http://www.asp.net/mvc/
http://www.asp.net/mvc/learn/

Medlem sedan apr. 2004778 inlägg
#3

Precis som Brimba säger så är MVC ett arkitekturpattern och det är med andra ord en beskrivning på hur arkitekturen ser ut i ett ASP.NET MVC-projekt. Däremot så handlar det om Presentationslagret vilket gör att när man går längre ner i arkitekturen och bygger sin domänmodell så kommer den också att ha en arkitektur.
Om vi utgår från Russels artikel så ligger MVC i UI och Presentation Tier. När du kommer ner i Business Tier så kommer vi till den nivå där du kan bestämma vilken arkitektur du vill ha. Det valet beror dock inte på MVC utan av behovet.

När det gäller O/R mapper så är det helt individuellt. Om du har en du använt tidigare så fortsätt med den, eller lär dig en ny vilket inte är helt fel. Personligen så använder jag Entity Framework nu när jag lär mig MVC, främst för att jag behöver lära mig EF också. Det viktiga är dock att när du modellerar ditt affärslager så ska du kunna göra det utan att bestämma vilken mapper eller annan typ av dataläsning du ska använda. Den ska kunna hakas på när du bestämt dig. Samma sak med MVC, när du modellerat ditt datalager så kan du haka på MVC och snabbt generera gränssnittet.

Om du vill lära dig ASP.NET MVC så är min rekommendation att du inte funderar på dataåtkomst eller arkitektur. Koncentrera dig på att lära dig MVC. Börja med de tutorials som Brimba hänvisar till på asp.net och använd det som används i dem. Då kommer du förhoppningsvis att få beröra flera olika sätt och när du börjar bygga en egen applikation så har du lite att välja på.

Ett annat bra ställe att börja på är med demo-applikationen i kapitel 1 i boken Professional ASP.NET MVC 1.0. Det kapitlet kan laddas ner på http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx. Då får du prova på hur alla MVCs delar fungerar i en riktig applikation.

Medlem sedan dec. 2005198 inlägg
#4

Tack för era svar.
Att MVC är en arkitektur i sig vet jag men jag söker ett sätt att dela upp allting på. Jag skulle kunna göra så som de gör i alla exempel med att använda Controlles och Models mappen men jag vill gå djupare än så.
S#arp är något som jag gillar och tror nog att jag ska försöka läsa mig in mer i det. De har delat upp allting så som jag vill ha det. är det någon som har använt S#arp?

Medlem sedan apr. 2004778 inlägg
#5

Uppdelning med Model, Views och Controllers är vad ASP.NET MVC är. Var du placerar dessa är ju upp till dig. Arkitekturen är densamma även om du placerar Model i ett annat VS-projekt eller i Model-mappen. Det jag menar är att koncentrera dig på att lära dig MVC först oavsett hur du placerar saker.
S#arp är ett bra exempel på Domain-Driven Design samt hur man kan använda ASP.NET MVC med NHibernate.

Nu vet jag ju dock inte hur långt du har kommit med ASP.NET MVC. :)

Medlem sedan dec. 2005198 inlägg
#6

Jag har läst allt som finns att hitta på https://www.asp.net så det är de grunderna jag har :)
Jag har aldrig vågat använda NHibermate men antar att det är dags att börja göra det nu. Jag vill kunna använda MySQL också så då är väl NHibernate det lättaste alternativet istället för att använda något utav de som Microsoft erbjuder.
Jag ska kolla igenom S#arp igen och verkligen försöka och se om jag förstår det, återkommer!

Glad midsommar!

Medlem sedan apr. 2004778 inlägg
#7

Eftersom NHibernate är en så mogen O/R mapper så är det inte fel att lära sig att använda den. Entity Framework funkar dock också mot mySql. Här är en bra artikel om det, http://pattersonc.com/blog/index.php/2009/04/01/using-mysql-with-entity-framework-and-aspnet-mvc-–-part-i/
Entity Framework är dock inte så komplett med version 1.0 men med Visual Studio 2010 och .NET 4.0 som kommer innan årskiftet så har de förbättrat mycket.

281 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
149 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
148 ms — ändringar (db)