24. maj 2005 - 10:22Der er
11 kommentarer og 2 løsninger
Adskillelse af ASP.NET-applikation
Jeg har en stor ASP.NET-applikation som består af en enkelt dll. Jeg laver løbende meget store ændringer til denne dll, men undervejs vil jeg gerne have muligheden for at udgive smårettelser i andre dele af programmet, uden at skulle udgive den store ændring.
Hvordan ordner jeg lige det på den bedste måde?
Jeg frygter en idé om at dele min applikation op i 500 små dll'er. Jeg frygter også en idé om at lægge alting ned i aspx'er.
Hvorfor er det du frygter at benytte flere dll'er i dit program? Kompilerer du fra kommandolinie eller bruger du Visual Studio?
Jeg tror - ud fra de bøger/artikler jeg har læst om emnet - at måden microsoft anbefaler er at man skifter en hel dll ud ad gangen. Da en dll er kompileret (i en eller anden grad) bliver det nok svært (umuligt?) at skifte dele af dll'en ud.
I det specifikke tilfælde er der faktisk kun én side. Det er til gengæld en gigantisk side med en stor bagvedliggende objektmodel og en masse logik. Men det kan godt grupperes, regnestykket skal bare se lidt anderledes ud tror jeg:
1 < N < antal klasser
Da 'antal sider' = 1
Men det er faktisk den rent praktiske del af problemet der er det værste, så vidt jeg kan se. Der er så vidt jeg kan se, ingen property på en klassefil der hedder "Compile as independent dll" eller sådan noget.
Man kan altid lave et stort projekt som en stor klasse eller som en stor fil med flere klasser. Men du kan også vælge at dele det op i flere filer, som du så "kompilerer" til libraries.
Jeg kan ikke sige dig konkret hvordan det skal laves fordi det kan laves på mange måder. Men som arne_v siger, du kan have flere projekter i samme solution. Så opret et projekt pr. dll og kompiler så alle projekter til libraries.
Efter at du har fået alt spilettet op arbejder du fuldstændig som normalt. Dvs. du skal til daglig ikki sørge for at importere filer eller lave specielle kompileringer. Det opsætter du én gang for hvert projekt.
Ja, du har ret. Et projekt per dll og så et gigantisk dependency-helvede som skal vedligeholdes. Det er måske den eneste løsning.
Men det ville måske være endnu bedre hvis man kunne udvikle som normalt i Visual Studio, og så trykke på en bat-fil som kompilerer alting til forskellige dll'er, evt. ved hjælp af NAnt.
arne_v, jeg har prøvet at kigge på NAnt, men det lader ikke til den har den funktionalitet. Har du indsigt i hvad den kan?
Nu har jeg to gode alternativer til at skulle vedligeholder flere versioner af min kode parallelt. - Opdel min solution i mange projekter - Opsæt og vedligehold en NAnt-konfigurationsfil.
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.