Avatar billede c-sharp Nybegynder
01. april 2005 - 13:10 Der er 32 kommentarer og
2 løsninger

Opdele et større projekt i mindre dele

Jeg har lavet et CMS system i ASP.NET, det består af en masse moduler eks. Nyhedsmodul, medarbejdermodul OSV. Det hele er lavet som et projekt i Visual Studio. Der er et fælles login til alle moduler.

Mit problem er at hvis jeg eksempelvis eksperimentere med noget i nyhedsmodulet også lige pludselig er der en fejl der skal rettes i medarbejdermodult, så har jeg et problem, for så skal jeg have nyhedsmodulet til at kunne compilere før jeg kan få rettet fejlen i medarbejdermodulet.

Kan man ikke opdele sit projekt så eks. hver ccs klasse have sin egen dll, eller hvordan styrre man det på større projekter?
Avatar billede arne_v Ekspert
01. april 2005 - 13:21 #1
Selvfølgelig kan du det.

Men jeg gætter på at du vil vide hvordan du laver det i Visual Studio.

Hvilket jeg ikke kan hjælpe med.
Avatar billede c-sharp Nybegynder
01. april 2005 - 13:26 #2
Er det den måde man gør på større projekter, eller?
Avatar billede arne_v Ekspert
01. april 2005 - 14:53 #3
Ja - det vil jeg mene.

Visual Studio har så vidt jeg ved også en feature så man kan lade
et Visual Studio projekt bygge under projekter.

Men da jeg ikke selv bruger Visual Studio kan jeg ikke være mere præcis.

Du skal have fat på en som kender Visual Studio.
Avatar billede burningice Nybegynder
01. april 2005 - 17:16 #4
det er ikke sværere end at tilføje flere projects til sin solution. Hvis man derefter har brug for at en project skal være afhængig af et andet, kan man tilføje et project under references, så sørger vs for at kompilere det hele i den rigtige rækkefølge.
Avatar billede c-sharp Nybegynder
01. april 2005 - 23:06 #5
Vil det sige at de forskellige projekter kan dele sesion'er? og hvad hvis jeg bruger ASP.NET authorization kan det så også bruges på tværs af disse projekter?
Avatar billede arne_v Ekspert
01. april 2005 - 23:43 #6
session må relatere sig til din web applikation altså hvordan du deployer oversat kode m.v.

projekter er strengt taget kun en organisering af din source code og builds

principielt behøver de ikke hænge sammen

jeg vil ikke udelukke at hvis du bruger Visual Studio til at deploye med så
laver den nogle restriktioner
Avatar billede arne_v Ekspert
01. april 2005 - 23:47 #7
Og jeg tænker nok anderledes end de fleste ASP.NET / Visual Studio developere.

[læs f.eks. min NAnt artikel for at få et indblik i hvad man kan gøre hvis man vil
adskille sit kode udviklings værktøj fra sin build & deploy]
Avatar billede burningice Nybegynder
02. april 2005 - 08:07 #8
som arne siger, så har f.eks. session ikke direkte noget med din kode at gøre. Det er noget asp.net runtimen håndterer for dig, og så længe din kode bliver udført som en del af en HttpContext kan du altid få fat i den pågældende Session, og hvad der nu ellers er af ting og sager.
Avatar billede c-sharp Nybegynder
04. april 2005 - 15:05 #9
Jeg takker mange gange for jeres hjælp! Smid nogle svar så er der point påvej på følgende måde:

arne_v:      10 point
cyberfessor: 20 point

Hvis det er ok med jer?
Avatar billede emberwild Nybegynder
04. april 2005 - 15:25 #10
fint med mig
Avatar billede burningice Nybegynder
04. april 2005 - 15:28 #11
hm... det var vist ikke mig der havde brugt den her computer sidst... træls auto-login funktion :S
Avatar billede c-sharp Nybegynder
04. april 2005 - 15:51 #12
Lige et hurtigt spørgsmål mere.

Hvis jeg nu har "hovedprojektet" til at ligge her: wwwroot\projekt
og så det andet projekt her: wwwroot\projekt\andetprojekt

kan jeg så bare lave en reference fra "andetprojekt" til hovedprojektet også bruge nogle at de statiske medtoder, samt de usercontrol's der ligge i hovedprojektet?

i hovedprojekteter der et login som også gerne skulle gælde for "andetprojekt" hvordan kommer det til at virke?

Jeg har smidt nogle flere point.
Avatar billede burningice Nybegynder
04. april 2005 - 15:58 #13
det kommer an på om du konfigurer \andetproject som et virtual directory. For i så fald, vil de to sider kører i hver sin applikation og ikke have adgang til hinandens Session og Applicaktion-data.

Men hvis det ikke gør noget er du ikke noget problem i at dele kode mellem applikationer på den måde. Dog ville det bedste nok være at oprette et tredie project som indeholdt delt kode som de to andre så havde en reference til.
Avatar billede arne_v Ekspert
04. april 2005 - 16:03 #14
svar
Avatar billede c-sharp Nybegynder
05. april 2005 - 05:58 #15
Jeg har nogle problemer med at få mit "andetprojekt" til at virke når jeg bare smider det i en under mappe i hovedprojektet. Jeg får følgende fejl:

Beskrivelse: Der opstod en fejl under behandling af en konfigurationsfil, der er nødvendig for at behandle denne anmodning. Se detaljerne om fejlen nedenfor, og foretag de nødvendige ændringer af konfigurationsfilen.

Meddelelse om parsefejl: Det er ikke tilladt at bruge et afsnit, der er registreret som allowDefinition='MachineToApplication', uden for programniveau. Fejlen kan være forårsaget af, at der er en virtuel mappe, der ikke er konfigureret som et program i IIS.
Avatar billede burningice Nybegynder
05. april 2005 - 08:34 #16
ja... som der så fint står i fejlbeskrivelsen, har du skrevet noget i web.config-filen der ligger i >andetprojekt<-mappen som kun er tilladt når filen ligger i roden af en applikation. :) Det var netop det scenario jeg beskrev i 04/04-2005 15:58:05.
Avatar billede c-sharp Nybegynder
05. april 2005 - 08:40 #17
Jeg har jo ikke oprettet en virtuel mappe til "andetprojekt"
Avatar billede burningice Nybegynder
05. april 2005 - 08:54 #18
nej.. men du har nogle ting i web-config-filen der kræver at du har. Så enten må du slette dem, eller også må du lave en virtuel mappe.

Hvis du forresten ikke laver en virtuel mappe, skal dll-filerne til >andetprojekt< ikke ligger under projekt\andetprojekt\bin men projekt\bin
Avatar billede c-sharp Nybegynder
05. april 2005 - 09:01 #19
Jeg kan vel ikke bare flytte mine bin filer, så kan det "andetprojekt" vel ikke finde dem?

Har du evt. et link til en guide i hvordan man sætter det hele op når man sammensætter flere projekter?
Avatar billede burningice Nybegynder
05. april 2005 - 09:17 #20
dll-filerne skal ALTID ligge i RODEN af din APPLIKATION. Specielt orde applikation er der mange der har svært ved at forstår i forbindelse med en hjemmeside, men du skal tænke på det som om at en hjemmeside er et program der kører, nøgagtig som havde det været et windows eller console-program.

Så nå du opretter en ny mappe i din applikation og lægger en aspx-fil ind i den, så vil denne mappe IKKE være RODEN på en ny APPLIKATION.

Eks.

wwwroot                    (her er der lavet applikation)
wwwroot\bin                (her skal dll-filerne ligge)
wwwroot\hej                (dette er en almindelig mappe)
wwwroot\hej\bin            (dll-filer her bliver ignoreret)
wwwroot\smart              (i denne mappe er der lavet en applikation)
wwwroot\smart\bin          (dllfiler her vil blive brugt af sider der ligger i smart-mappen)
Avatar billede burningice Nybegynder
05. april 2005 - 09:19 #21
en guide til sammensætning af projekter... det kommer helt an på hvordan dit scenario hænger sammen. Der er jo ikke nogen endegyldig guide til alt her i verden :) Prøv at forklar hvad det hele gerne skal ende ud med. Er det så websitet der er uafhængige af hinanden, men skal dele noget fælles kode, eller er det et stort website du bare vil have delt op i flere projekter, eller hvordan og hvorledes?
Avatar billede c-sharp Nybegynder
05. april 2005 - 09:33 #22
Det er et stort projekt jeg gerne vil dele op så jeg ikke er afhænig af at alt kan compileres, for at jeg kan lave en rettelse i noget af projektet og publicere dette.

Som jeg har det nu kan det være at jeg leger lidt med at udbygge en funktion på en side, så er der lige pludeslig en fejl på en anden side der skal rettes. Så skal jeg have den side hvor jeg leger med en udbyggelse til at virke, før jeg kan compilere hele projektet og få rettet fejlen på web-hotellet.
Avatar billede burningice Nybegynder
05. april 2005 - 09:47 #23
:) oki... jammen, så skal du kun have een applikation, og alle dine dll-filer for alle projekterne skal ligge i \root\bin hvor root peger på rod-mappen af din applikation.

Dernæst skal du ikke lægge en web.config-fil i alle dine mapper. Den skulle gerne kun være nødvendig i dine undermapper hvis du har brug for at beskytte den pågældende mappe eller filer. Resten skal stå i \root\web.config
Avatar billede burningice Nybegynder
05. april 2005 - 09:51 #24
dog er det aldrig, jeg gentager, aldrig en god ide at sidde og eksperimentere på et produktionssite. Du bør ALTID have et test-site du kan sidde og lege på. Jeg har normalt to eller fle reekstra sites når jeg udvikler et større projekt. Et til de helt nye ting man sidder og roder med. Når det så virker kommer det videre over på et andet site hvor det kan testes af en masse folk, og hvis det viser sig at være okay kommer det så helt ud på produktionssitet.
Avatar billede c-sharp Nybegynder
05. april 2005 - 13:29 #25
Problemet med at have flere af sites med samme kode er at holde dem alle opdateret med den sidste nye kode. Opdeler du dine større projekter i flere små projekter, eller har du det bare i et projekt?
Avatar billede burningice Nybegynder
05. april 2005 - 14:04 #26
det er efterhånden blevet til en del dll-filer efterhånden, men det er fordi at jeg deler codebase til ting som Database, Userlogin, Billedmanipulation m.m. mellem mange forskellige sites. Dog er den specifikke kode til et enkelt site samlet i et projekt, så det kun er en dll-fil der skal uploades.

Det er da rigtig nok at det kan være svært at holde koden ajour, men hvis man bare holder tungen lige i munden kan det godt lade sig gøre.

Du kan også lave noget CVS, hvor det er nemt at arbejde med flere versioner af sin kode. På den måde kan du, hvis du er ved at rode med noget, altid hente en fungerende version ind igen, lave rettelse, compile, uploade og hente den version ind igen du sad og rodede med.
Avatar billede c-sharp Nybegynder
06. april 2005 - 14:22 #27
Kan jeg instille VS til at smide dll filerne fra "andetprojekt" i hovedprojektets bin mappe. Eks. hvis jeg har "andetprojekt" her hovedprojekt\andetprojekt\bin
Avatar billede burningice Nybegynder
06. april 2005 - 15:05 #28
det kan du sagtens... under egenskaber for dit project > configuration properties > Build > Output Path
Avatar billede c-sharp Nybegynder
06. april 2005 - 15:14 #29
Det har jeg prøvet men hvis jeg indsætter stien til projektet i "hovedmappen" så retter den stien til bin\ når jeg trykker anvend
Avatar billede burningice Nybegynder
06. april 2005 - 15:21 #30
jeg mener det skal være en relativ sti...

så hvis du f.eks. har

root\bin
root\andet\

skal stien være

..\bin
Avatar billede burningice Nybegynder
06. april 2005 - 15:22 #31
..\ = en mappe op
bin = den mappe vi skal ind i

..\bin = gå end mappe op og ind i bin
Avatar billede c-sharp Nybegynder
06. april 2005 - 15:29 #32
Jeg kan ikke få lov til at angive en mappe der ligger længere oppe, jeg kan godt angive en under mappe.

..\bin\ dur ikke
..\bin  dur ikke
images\bin\ virker
Avatar billede burningice Nybegynder
06. april 2005 - 15:39 #33
hm... højst besynderligt... mine ouput-stier i et program jeg er ved at lave ser sådan her ud

..\Build\Debug\
og
..\Build\Release\
Avatar billede c-sharp Nybegynder
11. april 2005 - 08:17 #34
Jeg har stadig ikke fået det til at virke, men jeg må rode lidt videre med det.

I skal begge have tusind tak for hjælpen!
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