01. april 2005 - 13:10Der 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?
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.
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?
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.
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?
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.
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.
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.
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)
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?
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.
:) 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
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.
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?
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.
Kan jeg instille VS til at smide dll filerne fra "andetprojekt" i hovedprojektets bin mappe. Eks. hvis jeg har "andetprojekt" her hovedprojekt\andetprojekt\bin
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!
Synes godt om
Ny brugerNybegynder
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.