11. januar 2008 - 10:58Der er
13 kommentarer og 1 løsning
best practice vedr. modulært design og genbrug
Jeg søger lidt info om, hvordan man smartest genbruger sin kode:
Situationen: Vi har en halvfærdig regnskabs-webapplikation. Nu skal vi have nogle forskellige administrations-webapplikationer som alle skal have en eller anden grad af regnskab tilknyttet/indbygget.
Jeg ser for mig et potentielt vedligeholdelses-helvede... medmindre man kan finde på noget smart mht. fælles login til de forskellige aplikationer, og udveksling af data mellem dem. Ellers skal man lave forskellige versioner, og så vedligeholde dem hver for sig - men de dele som er fælles, kunne det jo være smart ikke at skulle vedligeholde separat.
Nogen links til diskussioner, patterns, best practice eller lignende?
Jo, det må det vel være? Jeg har i forvejen lavet regnskabssystemet i med DAL, BLL og (PL=?) GUI, men i samme projekt. Jeg har ikke den store erfaring med at jonglere med DLL'er, men jeg skal vel så have splittet min eksisterende app op i 3 projekter? Hvis jeg så putter klasserne ind i et namespace (det har jeg heller ikke gjort...)?
Og mht databasestrukturen som ligger under DAL, så sørger man bare for noget disciplin i at have samme struktur i de 37 forskellige projekter?
Eller? Jeg kan godt mærke jeg mangler lidt erfaring i at have flere projekter og applikationer...
Du boer ogsaa bruge namespace omend det principielt ikke har noget med opslitning at goere (men det er dog almindeligt at lade assembly navne afspejle de namespaces den indeholder).
Jo... jeg er ikke helt afklaret, om hver web-app skal køre på samme db-instans eller have hver sin - måske endda forskellige servere... så modellen må være at vedligeholde ét projekt med regnskab-BLL og -DAL, og så kompilere det i en dll, som så kan bruges i andre web-apps (som derudover har deres egen dll med ikke.regnsakbslogikken)? Og så er man nødt til at programmere PL forfra for hver web-app?
Kender du nogle links til nogle diskussioner / tutorials ?
ok, tak for tutorials - det var der sådan set ikke ret meget nyt i - jeg mangler noget konkret vejledning i, hvordan man gør rent praktisk. Starter en ny solution, tilføjer nye projekter, eksisterende projekter ...?
regnskab DAL skal buildes til en DLL regnskab BLL skal buildes til en DLL og have en ref til regnskab DAL app PL skal deployes som web app og have en ref til regnskab BLL og anden BLL
strukturen i VS er vel mindre vigtig
til en større løsning vil man normalt builde udenfor VS (msbuild, nant, cruisecontrol whatever)
ok, så har jeg ikke været helt galt på den... jeg har pt et "Web Site" (ikke en "Web Application" - vil det være en fordel?) med separate DAL og BLL klassefiler. Så har jeg derudover referencer til nogle underprojekter som f.eks. SQLPRoviders og MyGeneralClasses, som jeg vedligeholder separat. Så det er vel bare at få omstruktureret, så jeg får lavet separate projekter til BLL og DAL...
Er det bedst (eller bare en smagssag) at have én solution med tre projekter (DAL, BLL, PL), eller køre projekterne sideløbende og refreshe dll-referencerne i PL?
... og så er det vel også ved at være tid til at dele points ud?
Rent praktisk er der nok flere måder at adskille dem på.
Jeg vil mene at total separation vil være det bedste.
Forestil dig nu f.eks. at I skal igang med en 2.0/2005 -> 3.5/2008 opgradering.
I konverterer så først PL'erne en af gangen og først når de alle er ovre så konverteres BLL og DAL.
(teknisk set kunne de godt alle konverteres samtidigt - der bør ikke være det store arbejde med det, men af organisatoriske/forretnings mæssige grunde er det måske ikke sikkert at alle applikationerne kan opdateres samtidigt)
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.