15. marts 2006 - 09:22Der er
17 kommentarer og 1 løsning
Generelt opbygning af kodestruktur
Det jeg gerne vil komme ind på her er hvordan man opbygger en stor hjemmeside med Login, Forums, Database osv, rent kode messigt.. Jeg har allerede programmeret alt hvad der skal programmeres i ASP, men jeg vil gerne gøre kode- og filstrukturen mere simpel og ren. Det skal blandt andet indebærer at det kode som går igen mere end én gang skal være et sted for sig selv som de forskellige sider bruger. Kunne man evt. lave et skabelon til den typiske måde alle sider starter på med html, head og body tags osv. og derudover gøre det til standard at alle nye filer som bliver oprettet starter ud fra skabelonen..? 'Skabelons-koden' skal så ikke være synlig i de forskellige sider, som bruger skabelonen.
Jeg har ikke noget specifik spørgsmål, men kort sagt har jeg en masse masse filer som jeg syntes virker rodet og meget kode som bliver brugt flere steder, f.eks kode hvor den åbner og lukker databasen.. Hvad jeg så gerne vil er generelt at have et godt system til koden så den bliver mere overskuelig og nemmere at rette..
Hvordan ville i bygge en kompliceret sides grundliggende struktur? Er der nogen artikler og tutorials som ville være gode at læse? Har i generelt nogen gode tips?
Start.asp sætter alle mulige variabler (et par sessions og opretter DB forbindelse) MyFunctions.asp indeholder en masse af mine ejne funktioner. header.asp inderholder kun HTML kode, men det er hele start koden (<!DOCTYPE...><HTML><HEAD>... )
Helt rigtig ligger MyFunctions og header som include i Start, så jeg kun includere den fil på mine sider, men så får jeg de andre med også :o)
du har et spørgsmål - men alligevel ikke... og så alligevel ;)
Der er mange måder at gøre dette på - langt hen ad vejen er det nok et spørgsmål om smag og behag. Generelt kan et fåtal af mapper samt meget strukturerede regler for filnavne gøre det.
mappestrukturen kan være de muligheder der er i et projekt fx; admin, constants (fx databaseconnections), css, javascript, actions (udførende filer, fx login.asp og logout.asp), includes (filer der vises for brugeren) etc etc
Generelt vil include-filer - som fennec foreslår det - derefter kunne gøre utrolig meget arbejde for en netop i forbindelse med genbrugelig funktioner, databaseconnections etc.
Designmæssigt er der flere muligheder - generelt lægger jeg designet i nogle functioner jeg så kan kalde med eventuelle parametre fx;
head("title","keywords","description","javascript") ' almindeligt html/asp kode bottom()
Jeg har prøvet mig lidt frem med Functions.. Men jeg gør nok noget forkert, for det virker ikke.. Har lavet en 'Functions.asp' fil..: <% Function BeginPage(Title) Response.Write "<html>" Response.Write "<head>" Response.Write "<title>" & Title & "</title>" Response.Write "</head>"
Response.Write "<body bgcolor='#ffffff'>" End Function
Function EndPage() Response.Write "</body>" Response.Write "</html>" End Function
Function OpenDB() Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=CENSURERET:)" Conn.Open DSN End Function
Function CloseDB() Conn.Close Set Conn = Nothing End Function %>
News.asp:
<%
<!--#include virtual="/Functions.asp"-->
Response.Write BeginPage("News")
Response.Write OpenDB()
(EN MASSE ANDET KODE)
Response.Write CloseDB() Response.Write EndPage()
%>
Kunne forestille mig det nok er fordi en function kun retunere et resultat, og ikke skriver hvad jeg skriver indefor functionen... Er jeg så tvunget til at bruge include her istedet for functioner, eller kan funktionen virke ligesom jeg har forsøgt i 'Functions.asp' filen?
Har jeg prøvet.. Men tror jeg ved hvad der er galt.. <!--#include file="Functions.asp"--> Skal være udenfor <% %> tegnene.. Det virkede ved første test.. Så tror det virker
Havde jeg ikke set, men ja include skal være uden for <% %>
Og bare så du ved det, så bliver alle include filer hentet ind på siden INDEN noget kode bliver afviklet. Du kan derfor ikke gøre noget i denne stil:
<!--#include file="<%= dynamiskInclude %>.asp"-->
Hvis du vil lave include dynamisk. Men det er heller ikke aktuelt i dette tilfælde, men det kunne være du fik ideen senere, også ved du nu at det ikke kan lade sig gøre :o)
Der er dog visse tilfælde, hvor man kan bruge: if noget=noget then %> <!--#include file="inc1.asp"--> <% else %> <!--#include file="inc2.asp"--> <% end if
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.