Har alltid haft problem med hur jag skall namnge mina namespaces och klasser, för att göra dem så beskrivande som möjligt.
Har börjat gå mot denna form av namngivning.
[Projektnamn].Core
Mina entitetklasser (kärnan i applikationen) och deras samtliga interfaces.
som nyttjas av dem klasserna utanför kärnan.
[Projektnamn].Core.Repository
En annan del av kärnan som i stort bara säga hur de repositortyklasserna som används vid hämtning av data, vilka metoder dessa MÅSTE innehålla. Består av interfaces.
[Projektnamn].Infrastructure.Services
Här finns diverse olika klasser, metoder etc som inte passar ihop konceptuellt med något specifikt domänobjekt.
[Projektnamn].Infrastructure.Repositories
Mina repository klasser som returnerar objekten med dess data.
[Projektnamn].UI.Win
För Windowsapplikationer
[Projektnamn].UI.Web
För Webapplikationer
[Projektnamn].UI.PDA
För Winapplikationer på PDA's. Dock är de övriga filerna anpassad till Compact .NET framework.
Ex. på nyttjandet av mina repositories kan vara:
OrderRepository orderrepo = new OrderRepository();
// Tycker den är rätt så självbeskrivande.. :)
List<IOrder> orders = orderrepo.GetOrdersByCustomerNumber(customer.Number);
[Projektnamn].UnitTests
Har börjat smaka lite på testdriven developement. Lite småkul faktiskt.. :)
Givetvis återfinns en form av DAL (Data access layer), givetvis återfinns en form av BLL (Business logic layer). Dock används en annan form av namngivning för att försöka ge en beskrivning av vad som händer i koden på ett självbeskrivande sätt. (jag försöker i alla fall, är ju ingen expert) :)
Dock vilja försöka få så att databaser, xml-filer och så vidare inte hamnar i centrum som de alltid har varit för mig. Utan snarare att min Core "domänmodell" hamnar där.