Avatar billede speedpete Nybegynder
11. januar 2008 - 10:58 Der 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?
Avatar billede arne_v Ekspert
11. januar 2008 - 15:39 #1
Er er en klassisk 3 lags model ikke lige til hoejrebenet ?

et projekt med DAL
et projekt med BLL som referer DAL
37 projekter med hver sit PL som alle referer BLL

Og login maa kunne loeses med samme membership provider.
Avatar billede speedpete Nybegynder
11. januar 2008 - 21:39 #2
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...
Avatar billede speedpete Nybegynder
11. januar 2008 - 22:00 #3
Hvad er PL? Public Layer? Er der en smart måde at genbruge aspx-filerne?
Avatar billede arne_v Ekspert
11. januar 2008 - 22:00 #4
PL = Presentation Layer

Du boer splitte op.

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).
Avatar billede arne_v Ekspert
11. januar 2008 - 22:01 #5
Hele ideen er vel at du har en faelles database struktur som bruges af flere forskellige
frontends.
Avatar billede arne_v Ekspert
11. januar 2008 - 22:03 #6
NB: Jeg antager at de 37 forskellige web apps udover den faelles regnskabs BLL ogsaa
    har sin egen BLL assembly med ikke-regnskabs logikken.
Avatar billede speedpete Nybegynder
12. januar 2008 - 10:18 #7
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 ?
Avatar billede arne_v Ekspert
12. januar 2008 - 18:26 #8
Avatar billede speedpete Nybegynder
13. januar 2008 - 10:10 #9
:-) tak for opmuntringen... jeg er bare en datamatiker med 3 år på bagen...
Avatar billede speedpete Nybegynder
14. januar 2008 - 12:16 #10
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 ...?
Avatar billede arne_v Ekspert
15. januar 2008 - 03:20 #11
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)
Avatar billede speedpete Nybegynder
15. januar 2008 - 08:09 #12
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?
Avatar billede arne_v Ekspert
21. januar 2008 - 00:14 #13
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)
Avatar billede arne_v Ekspert
21. januar 2008 - 00:14 #14
Og et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester