Jag sitter här på ett tomt kontor och gräver i en en applikation jag jobbade med för några månader sen. Applikationen är en klassisk CRUD lösning och ett ännu mer klassiskt Presentation -> Business -> Data tre lagers lösning (egentligen 4 lager med stored procedures). Jag brukar designa det hela med ett grafiskt presentationslager på toppen som mappar mot ett deklarationslager som i sin tur mappar mot ett logiskt eventlager som i sin tur mappar mot ett datalager som antingen mappar mot stored procedures eller mot datakällan direkt. Det finns egentligen inget "optimalt" sätt att konstruera en lösning, det beror helt på vad du har för krav på lösningen.Rekomendationer för lager arkitektur
Jag förstår egentligen inte själv hur jag har placerat olika metoder osv när jag skrev det förra gången. Jag har nog mappat typ så jag ungefär har en business lager klass för varje sektion på sidan. Jag har t.ex en UserBS där jag har metoder som GetUser, UpdateUser, GetUserSecurityGroups osv osv. Det är ju helt ok.
Men jag ser oxå att jag har metoder som GetLanguages där jag hämtar alla språk som man kan välja att ha på en användare (alltså inte det valda språket för en användare). Jag tycker det känns lite skevt såhär i efterhand att ha en sån metod här. Kanske hade varit mer naturligt att ha den i en metod i klass som ja, heter LanguagesBS där man då kanske i framtiden även kan lägga till och ta bort språk osv.
Fan vilken flummig fråga det här blir men jag är mest intresserad av att få igång nån diskussion om hur ni designar era olika lager och hur ni tänker kring klasser ni skapar och var ni lägger vilka metoder osv. Både i datalager och businesslager.
Skapar ni en "Manager" klass för varje entitet ni jobbar med kanske? Hur gör ni isåfall i datalagret? Jaa .. lite olika teorier och kanske lite tips på bra sätt att tänka?
Hehe, om detta var för flummigt så får gärna nån moderator plocka bort det :)Sv: Rekomendationer för lager arkitektur
Beror på själva datakällan i det sista alternativet.
PeterSv: Rekomendationer för lager arkitektur
Ett sätt som inspirerat mig mycket är Microsofts implementation av PetShop-applikationen.
Där har de ett "Business Domain object-layer " som innehåller objektmodellen.
Kolla in, du kan säkert hitta något av intresse:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/petshop3x.asp