19. august 2005 - 15:06Der 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?
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..
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?
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
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
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 :-)
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.
Kan du ikk eligge et svar i 659835 så brian kan få afsluttet ?
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.