Avatar billede johny Nybegynder
21. august 2008 - 09:58 Der er 7 kommentarer

Behøver hjælp til god kodestruktur.

Jeg skal igang med et 2 måneders projekt nu her, hvor jeg skal lave en database driven hjemmeside, hvilket jeg aldrig har prøvet før. Derudover vil jeg også gerne forsøge at lave så fleksibel og solid en løsning som muligt, så ændringer i databasen ikke får indflydelse på code behind filerne.

Med andre ord, så det jeg søger er information/råd til følgende:
*) Hvordan man bedst laver en Database Driven hjemmeside?
*) Hvordan man sikrer en så løs kobling mellem hjemmesiden og databasen i form af et facade mønster af en eller anden slags?

Links til gode artikler er mere end velkomne. Problemet for mig pt. er, at jeg ikke ved nok om det, til at jeg kan sortere de gode råd fra de dårlige, altså de råd hvor man i første omgang tænker "ahh, det var smart!", og når man så når halvvejs i projektet, finder ud af at nu er der pludselig en masse ting man ikke kan pga. det råd.

På forhånd tak! :)
Avatar billede johny Nybegynder
21. august 2008 - 10:59 #1
NB: Det skal forresten fungerer uden brug af Query Strings. Jeg skal med andre ord have fundet en metode til at fange alle URL input, og tjekke efter om den eksisterer i databasen. Det er noget jeg er nød til i forhold til SEO (søgemaskine optimering), som jeg også har ind over dette projekt.
Avatar billede arne_v Ekspert
24. august 2008 - 01:32 #2
re løs kobling)

Din applikation er vel ikke anderledes end enhver anden applikation.

Opdeling i 3-5 lag.

Data Access lag som exposer et rent interface (rent=kun dine interfaces ikke noget
som er knyttet til implementation).

DataAccess lag kodet således (evt. ved brug af standard ORM software) at skift af
database er et konfigurations spørgsmål.
Avatar billede johny Nybegynder
24. august 2008 - 17:58 #3
Ja, men tænkte bare på om der var måder folk har udvidet den løse kobling yderligere, så f.eks. hvis der bliver tilføjet flere kolonner (man finder nye attributter man gerne vil have tilføjet), at man så kan nøjes med at ændre i programmet et centralt sted, istedet for at skulle ændre hele vejen op gennem applikationen.

Har selv rodet lidt med idéen om at man kan lave et kald til facaden, der returnerer kollonne navne til de forskellige views, og data transfer objekter der selv kan ligge sig ind i de samme views. På den måde skal de attributter kun ændres et centralt sted, og gør dermed opdateringer meget lettere senere hen. Er som sagt ikke noget jeg har testet særlig meget endnu, og jeg ved stadig ikke hvor godt det skalerer, og hvilke andre problemer det giver.

Er der nogen der er kommet med gode løsninger til sådanne problemstillinger (at det er uvist hvad fremtiden vil bringe af ændringer, men at man ved at der skal tilføjes flere attributter undervejs)?

Deruodver, så tænkte jeg også på at lave al kontakt til DB'en gennem LINQ, netop for at det bliver et konfigurationsspørgsmål at skifte database. Kan det anbefales, eller?
Avatar billede arne_v Ekspert
24. august 2008 - 18:33 #4
Hvis data fra en tabel præsenteres rimeligt råt eller ihvertfald i 2D matrix form, så
kan det godt lade sig gøre via forskellige dynamiske data strukturer. Alt fra DataSet/DataTable
til en kombination af Dictionary<> og List<>.

Men men men. Den form for data præsentation er vel forholdsvis sjælden. Og metoden
er ikke god for type sikkerheden. Jeg vil fraråde at bruge det.
Avatar billede johny Nybegynder
25. august 2008 - 08:07 #5
Tak for det svar Arne. Beklager at jeg ikke gjorde det mere tydeligt, men det er netop ting ud over "standarden", jeg også er interesseret i, for at finde ud af, hvilke skridt man ellers kan tage for at sikre et framework for hjemmesiden der både er solidt og fleksibelt. Men ja, jeg kan godt se, at det er begrænset hvor mange steder sådan en struktur som jeg foreslår, vil være behjælpelig, og derfor heller ikke brugbar.

Ang. det andet spørgsmål, er der så noget læsning du kan anbefale om det? Altså en hjemmeside hvore siderne skal ligge i en database?
Avatar billede arne_v Ekspert
26. august 2008 - 01:24 #6
Det er jo sådan noget CMS agtigt noget - den slags har jeg ikke forstand på.
Avatar billede arne_v Ekspert
19. januar 2009 - 02:22 #7
Tid at få afsluttet her ?
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

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