Arkitektur på hemsida - sista koll

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Arkitektur på hemsida - sista koll

Tjenare,

gjorde en hemsida som projektarbete. Arkitekturen på den var obefintlig. Nu ska jag dock göra en ny hemsida, som är mycket mer seriös, och tänker den här gången ha en ordentlig plan innan jag drar igång på riktigt. Har läst på rätt så mycket på msdn (projektet skrivs i C# asp.Net i visual studio) och vill kolla vad ni tycker om min plan än så länge.

Så här ser de olika lagrerna ut:
ASPX-sidorna som blir "view"
asp.NET som är model med sin eventhantering
aspx.cs-filerna som är då controllern
Klasserna jag skriver
Databashanteringen som sköts via Stored procedures i MSSQL...

Alla anropningar går neråt i lagrerna ovan... Jag kommer att använda den inbyggda roll och användarhanteringen som finns. För att definiera vilka sidor som får ses av vem kommer jag att ha mappar som är restriktade via en XML-fil med funktionen som finns i aspnet som definierar vilka roller som får se vilka mappar.

Vad tycker ni om planen än så länge? Det är alltså bara arkitekturen som jag jobbar med den... Ge gärna synpunkter på vad som är bra, dåligt och nya förslag!

Tacksam för svar

Ha de bra!

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Laholm
Registrerad
Okt 2005

Hehe... Mitt nuvarande projekt ser ut såhär:

ASP.NET MVC (Application)

C#,FluentValidation (Domain)

NHibernate (Infrastructure)

Lite mer...

Webbläsare <-> {name}.aspx (View) + Model <-> Controller <-> Domain <-> Infrastructure

Jag använder mig av StructureMap för att tillåta saker att arbeta med varandra utan att dom finns. T.ex. så vet inte Domain lagret att Infrastructure lagret finns, men använder det hela tiden. Detta gör jag med hjälp av IRepository<TEntity> som är definierad i mitt Domain lager. Implementationen finns i Infrastructure lagret. Allt detta sätts sedan ihop av StructureMap i mitt Application lager. Detta gör att jag kan utan att skriva om EN enda rad kod i Domain/Application lagrena byta ut hela Infrastructure lagret om jag nu skulle vilja det. Smidigt värre.

Nyckelord: "Domain Driven Design", "Test Driven Design", "Separation of Concerns", "Dependency Injection", "Inversion of Control"

Bra litteratur är "Domain-Driven Design: Tackling the Complexity in the Heart of Software" av Eric Evans och "Professional ASP.NET MVC 1.0" av Rob Conery, Scott Hanselmann, Scott Guthrie och Phil Haack.

Har du mer frågor, fråga på!

ASP.NET programmerare i C#
Twitter: http://www.twitter.com/hagbarddenstore

Trädvy Permalänk
Medlem
Plats
Laholm
Registrerad
Okt 2005

Åh just ja, försök undika att använda ASP.NET's säkerhetssystem som är filbaserat. (<location> i Web.config) då det kan ställa till *ruskigt* mycket problem och till och med sluta fungera i vissa tillfällen. Bättre är att använda ASP.NET MVC som skyddar metoder och inte filer. Vilket gör att du *alltid* är skyddad, eftersom det spelar ingen roll hur man kom åt metoden (URL), den är ändå skyddad. Jag använder det inbyggda roll/autentisieringssystemet som finns och det fungerar kalas. Dock med lite modifieringar såklart, men sånt får man alltid stå ut med.

ASP.NET programmerare i C#
Twitter: http://www.twitter.com/hagbarddenstore

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Oj, du kunde det här väldigt bra... Förstår inte så mycket men ska såklart lägga ner tid på att lära mig. Men hur tycker du att jag ska börja? Hittade "Domain-Driven Design: Tackling the Complexity in the Heart of Software" som bok på internet... Borde jag använda MVC 1.0?

Vill som sagt få till strukturen innan jag har gått för långt. Var ska jag börja läsa? Känner mig lite överrumplad

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Tack för svaren:) Känns som du var the go to guy i det här fallet!

Du skriver att ASP.NET MVC skyddar metoder och inte filer, hur menar du då? Är det att man kontrollorar identiten innan man utför? Är som sagt inte så jättebra på själva strukturen av hemsidor så kan förstå lite dåligt ibland!

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase