Avatar billede Syska Mester
18. oktober 2004 - 22:31 Der er 6 kommentarer og
3 løsninger

Opdeling af program, i filer/Dll

Hej,

Jeg har så småt været ved at undesøge hvordan det ville være bedst at dele mit program op, jeg kan forstå der selvfølgelig er Dll's men kan man bestemme hvad der må bruge dem eller er det anvendelige for alle der ved hvad der ligger af classes, functions etc. i dem???

der er selvf nogle ting jeg vil genbruge som standard class', functions jeg bruger.... der ville det jo være rigtig smart bare at kunne include den dll fil...

Flere filer i samme projekt er jo også være en stor fordel da det stadig bliver compilet som en fil, men er meget nemmere at overskue, er der nogle ulemper i det?

Men hvordan deler de professionelle det op?

Og hvad er så forskellen på de obj og bin mapper der bliver oprettet, nogle der kan give en forklaring på det?
Avatar billede Syska Mester
18. oktober 2004 - 22:33 #1
Ups, glemte lige at sige, at jeg har added et class projekt til min solutiuon, og den opretter så en Dll fil, når det bliver compilet, er det den rigtige måde, eller er der andre smarte måder???

Og hvis man lige har Rebuilded sin Dll, hvordan opdatere man så info i sit main projekt, så den kender det nye der er blevet skrevet/compilet???
Avatar billede arne_v Ekspert
18. oktober 2004 - 22:43 #2
Du skal skelne mellem:
a)  opdelingen i pakker (namespaces i C#) og klasser [UML class digram]
b)  opdelingen i source code filer
c)  opdelingen i DLL og EXE filer [UML deployment diagram]

De opdelinger er næsten men ikke helt uafhængige.

#a får du ud af dit objektorienterede design.

#b bestemmer du udfra mere praktiske betragtninger om projekt process
(hvad skal altid buildes sammen, hvad skal kun en person arbejde
på samtidigt, hvad giver mening kun at have en version på i source control).

#c bstemmer du primært udfra en analyse af, hvad der kan/skal opdateres sammen.
Underlagt visse restriktioner fra #a og #b.

[og hvis du snakker sådan lidt mere nede på jorden brug af Visual Studio, så
har jeg ingen anelse]
Avatar billede casualty Nybegynder
20. oktober 2004 - 21:29 #3
1#
Jeg forstår desværre ikke helt dit spørgsmål

2#
Flere filer (xxx.cs) i samme assembly er for mig meget forvirrende, ydermere ville du kunne opdatere dine applikationer meget lettere hvis du sørger for at dele dem op i nogle assemblys(DLL´er) som du forudser skal opdateres på et tidspunkt. Derved kan du bare kompilere og opdatere en DLL der varetager XML-parsing fremfor at skulle kompilere hele applikatione igen. Jeg synes også at det er rart, når jeg udvikler, at lave applikationer i etaper (hvilket jo i stor grad også afhænger af hvilke udviklingsmetode(r) man anvender). Således kan jeg, hver gang jeg har nået en etape, fjerne den enkelte assembly fra mit projekt, så det ikke ligger og forvirrer.

Generelt sørger jeg for at dele mine applikationer op i enkelte DLL´er der har en konkret logik som jeg forudser at jeg kan gøre brug af i andre applikationer. Jeg deler også ofte op således at mine applikationer er lette at vedligeholde.

3#
Som eksempel kan man have en applikation der anvender en database til at holde styr på et firmas kunder. Selve database delen ville jeg adskille i en DLL. På den måde er det let at skifte den database/persistenstype som applikationen skal anvende.

Når du udvikler meget, kan du også efterhånden selv mærke hvis der er noget kode du altid skriver igen og igen på tværs af projekter og i projekter. Disse kodestumper ville heller ikke være dumme at flytte ud i en DLL for sig selv...

4#
Ved det ikke endu selv :)

5#
Hvis du benytter Visual Studio (som jeg formoder) kan du i samme solution have både EXE assembly samt DLL assembly åben samtidig. I din EXE assembly er der oprettet en reference til din DLL assembly. I dine egenskaber for projektet kan du således angive hvilke assemblies der er afhængige af hinanden, således at du altid får kompileret i den rigtige rækkefølge. Hvis du gør det på ovenstående måde vil du altid have den sidst opdaterede DLL sammen med din EXE.

Håber at du kan bruge det til noget... :)
Mvh Casualty
Avatar billede Syska Mester
20. oktober 2004 - 22:51 #4
går ud fra at det du ikke ved også er det med obj og bin mapperne.....

Men ellers meget godt forklaret på hvad jeg sprugte om, kunne næsten ikke være meget klart.
Avatar billede burningice Nybegynder
21. oktober 2004 - 10:28 #5
obj-mappen er præcompilerede filer visual studio bruger, primært til sin intellisense. bin-mappen er hvor dine compilerede dll'er/exe-filer ryger hen (med mindre du har valgt et andet sted under egenskaber for din projekt.
Avatar billede casualty Nybegynder
21. oktober 2004 - 19:50 #6
Et svar, hvis det skulle være... :)
Avatar billede Syska Mester
21. oktober 2004 - 23:31 #7
vil fessor og arne oxo have lidt point?
Avatar billede arne_v Ekspert
22. oktober 2004 - 07:40 #8
jo tak
Avatar billede burningice Nybegynder
22. oktober 2004 - 11:33 #9
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