Avatar billede brian0905 Nybegynder
19. august 2005 - 15:06 Der er 23 kommentarer og
1 løsning

Arkitektur i forhold til php/asp

Hej,

Efter endnu en ophedes diskution på arbejde om hvorfor ASP.NET er så bøvlet at bruge til store sider, er jeg ved at komme til kort. Jeg synes det er lækkert at bruge, men jeg kan også se de andres argumenter. Eks.: i php 0g asp kan du nøjes med een side (default.php) hvor du så includer forskellige sider alt efter hvilken sideid der kommer i din request stream. Typisk når jeg kode ASP.NET laver jeg een side pr. funktionalitet. Dvs. news.aspx, forum.aspx, default.aspx...osv. i php ville koderen have een side og kun eet sted at rette hvis eksempelvis designes ændrede sig (en række mere i tabellen), mens jeg skal rette i samtlige 42 sider i min løsning.

Er der en smart måde at lave flere sider på i ASP.NET, således det efterfølgende vedligeholdelsesarbejde bliver så nemt som muligt? og jeg ikke skal rette i 42 sider hver gang min tabel ændrer sig?
Avatar billede madschristensen Nybegynder
19. august 2005 - 15:12 #1
Det kan du jo også i .net ??

Jeg har da en application med kun 2 .aspx sider - mens resten er styret i user-controller. Det er der intet problem i.
Avatar billede jokkejensen Novice
19. august 2005 - 15:13 #2
ja selvfølgelig..

Den lette er via SSI, men den kan ikke anbefales...

Vi bruger en usercontrol der alt efter requestet loader en anden usercontrol.. og derved har vi så adskildt frontend (layoutet) for hvert "modul".. ala forside, forum, news, mm, og disse skal kun rettes et sted, og kun for selve "content" af dem, selve grundstrukturen ligger i default, sammen med den usercontrol der loader de andre..
Avatar billede brian0905 Nybegynder
19. august 2005 - 15:22 #3
Kan i give et simpelt eksempel på dette, med kun to sider, eller med kontroller der loader kontroller?
Avatar billede arne_v Ekspert
19. august 2005 - 15:24 #4
Umiddelbart ville jeg da formode at ASP.NET netop var nemmere end ASP og PHP
til store sites.

Jeg tror ikke på den der en side og så includer vi er nem at vedligeholde.

Det er sikkert hurtigt at kode, men ...

I bør kunne lave en løsning i ASP.NET som er nemmere at vedligeholde, men ikke
nødvendigvis hurtigere at kode.

user controls må være et værktøj

et andet værktøj må være master pages
Avatar billede brian0905 Nybegynder
19. august 2005 - 20:28 #5
Jeg kan godt se at UserCOntrols kan bruges til dette, men jeg har svært ved at se hvordan jeg kan sikre at mit design forbliver det samme på tværs af alle mine sider, hvis ikke jeg laver noget switch/if hurlumhej... Det problem jeg bliver ved med at vende tilbage til er at jeg har en side der har en tabel opbygning (standard halo med venstre menu). Hvis jeg så efterfølgende vil ændre min tabelstruktur til at have en ekstra kolonne, skal jeg nu ændre i alle mine sider... det gider jeg ikke...

|-------------------|
|-------------------|
|    |            |
|    |            |
|    |            |
---------------------

Hvordan sikrer jeg at mine sider alle sammen overholder dette design uden at skulle copy/paste min tabel kode ind i den nye .aspx side og så placere mine usercontrols på den nye side?
Avatar billede -psycho- Nybegynder
19. august 2005 - 22:47 #6
Hvis du kun bruger 1 side som loader alle de usercontrols som skal bruges alt efter link så vil du jo kun have en side at ændre det på.

Men der fortrækker jeg nu selv .NET 2 med masterpages.
Avatar billede brian0905 Nybegynder
19. august 2005 - 22:52 #7
Ok, msterpages løser problemet... men mens vi venter på 2.0, hvad så? er det blot usercontrols der loader hinanden indtil da?
Avatar billede brian0905 Nybegynder
19. august 2005 - 22:53 #8
Jeg kunne godt tænke mig at se noget af det kode i snakker om...med controller der loader hinanden
Avatar billede arne_v Ekspert
19. august 2005 - 22:54 #9
så vidt jeg har forstået så er master pages indbygget i .NET 2.0 men der er
flere master page løsninger tilgængelig for .NET 1.1
Avatar billede lifo Nybegynder
20. august 2005 - 00:11 #10
Ok  prøver at forklare hvordan jeg har gjordt det nogle gange

på start siden (nok Default.aspx)
nu tager vi et eksempel med et content og et menu
jeg lave mit layout med tabeller  og placerer et System.Web.UI.WebControls.PlaceHolder controll der hvor jeg vil have mine ting at være

altså et hvor jeg vil have mit content lad os kalde det plhContent og det til menuen for plhMenu

i min page load på Default.aspx laver jeg en check på querystring om hvilket user controll jeg skal lode hvor  noget ala

private void Page_Load(object sender, System.EventArgs e)
        {
            string userControl = Request.QueryString["controll"];
            int sted = Convert.ToInt32(Request.QueryString["sted"]);
            Control cont = LoadControl(userControl);
            switch(sted)
            {
                case 1:
                    plhContent.Controls.Add(cont);
                    break;
                case 2:
                    plhMenu.Controls.Add(cont);
                    break;
            }
        }

så det eneste man skal gøre er så at lave en menu tingedangle hvor man kalder default.aspx med hvilken userControl man vil se noget ala
Response.Redirect(“Default.aspx?control=login.aspx&sted=1”);
så får man loadet sin login user controll midt på siden

mere skal du så ikke pille med dit layout
Avatar billede lifo Nybegynder
20. august 2005 - 00:13 #11
tja tænker ikke helt efter så mange øl
Response.Redirect(“Default.aspx?control=login.aspx&sted=1”);
skal nok være
Response.Redirect(“Default.aspx?control=login.ascx&sted=1”);
da det er et user Control
Avatar billede brian0905 Nybegynder
20. august 2005 - 00:14 #12
takker for eksemplet... det giver fint mening :-)
Avatar billede lifo Nybegynder
20. august 2005 - 00:14 #13
har også glemt at checke at der er noget i query stringen
men du forstår nok hvad jeg mener
Avatar billede brian0905 Nybegynder
20. august 2005 - 00:15 #14
Jepsen... øl plejer også at have den indvirkning på mig.. men underligt nok lærer jeg ikke af mine fejltagelser og forsøger mig gang på gang at kode - med en lille fjer på :-) det bliver altid noget værre bras :-)
Avatar billede websam Nybegynder
20. august 2005 - 08:52 #15
Og hvis du har mod på at læse nedenstående link får du en ide til hvordan du kan lave master pages :

http://www.codeproject.com/aspnet/Frame_Work_Design.asp

så er det lidt til de sene timer :o)

/Websam
Avatar billede christian Nybegynder
22. august 2005 - 14:00 #16
Jeg bruger med stor glæde Wilson MasterPages
http://authors.aspalliance.com/PaulWilson/Articles/?id=14
Avatar billede brian0905 Nybegynder
23. august 2005 - 07:51 #17
Jeg faldt ved et tilfælde over disse eksempler på www.asp.net, under kategorien starter kits. Deres arkitektur kan jeg godt lidt, da den er meget moduliseret og vedligeholdbar. Det er ikke direkte at arve design m.v. men det går an.
Avatar billede brian0905 Nybegynder
27. oktober 2005 - 15:06 #18
Lukker, tråden
Avatar billede arne_v Ekspert
27. oktober 2005 - 15:54 #19
skulle der ikke have været uddelt nogle point ?
Avatar billede brian0905 Nybegynder
28. oktober 2005 - 08:37 #20
Jo, der skulle naturligvis. Kan jeg tildele points efter tråden er lukket (overføre points, eller genåbne tråden)? Jeg giver points til Arne og lifo.
Avatar billede arne_v Ekspert
28. oktober 2005 - 09:46 #21
kræver at du opretter et nyt spørgsmål

ligesom beskrevet i http://expfaq.1go.dk/?id=30#giv_flere_point

(dte er en anden problem stilling men løsningen kan godt bruges)
Avatar billede brian0905 Nybegynder
28. oktober 2005 - 10:04 #22
Done! lifo og arne_v besvar venligst den nye tråd, og jeg fordeler points
Avatar billede arne_v Ekspert
24. december 2005 - 18:57 #23
lifo>

det er her http://exp.dk/spm/659835
Avatar billede arne_v Ekspert
05. oktober 2006 - 03:25 #24
lifo>

Kan du ikk eligge et svar i 659835 så brian kan få afsluttet ?
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