Avatar billede jensen2005 Nybegynder
05. august 2005 - 19:23 Der er 9 kommentarer og
1 løsning

Flatfile CMS VS. Database CMS?

Hej eksperter

Jeg er i gang med at lave et flatfile baseret CMS-system i asp.net C#, hvor jeg gør brug af System.IO.File klassen til at oprette nye sider, omdøbe og slette. Det vil sige at når backend-brugeren redigere i sin hjemmeside sidder han og og arbejder med filer i stedet for at skrive til en database. Menu/Links bliver dynamisk generet udfra et XML-document(Det document bliver ligeledes opdateret).

Jeg kunne godt tænke mig at høre, om der evt. kunne være nogle problemer, ved at lave et cms på denne lidt anderledes måde!.

Er der nogle eksperter, der har en mening om /erfaringer med  flatfile VS. Database?.
Avatar billede arne_v Ekspert
05. august 2005 - 19:42 #1
Flat file vil normalt betyde mere kode end database (hvis det skal gøres
rigtigt).

Flat file vil reducere skalerbarheden sammenlignet med databasse.

Flat file kan give mindst lige så god performance som database, hvis
du er dygtig nok til at kode.

Flat file er nok nemmest at overskue.

Min konklusion er at til en lille hjemmestrikket løsning er flat file nemmest
men til et professionelt system vil en database være at foretrække.
Avatar billede arne_v Ekspert
05. august 2005 - 19:42 #2
(og jeg har iøvrigt aldrig lavet et CMS system, så tag mine meninger med et gran salt)
Avatar billede jensen2005 Nybegynder
05. august 2005 - 20:04 #3
Tak for svaret..

Det var lige netop performance jeg bekymrede mig om!.

Du siger : ”Flat file kan give mindst lige så god performance som database, hvis
du er dygtig nok til at kode.”  => har du evt. nogle foreslag til noget jeg skal være særlig opmærksom på i koden?. Hvilke problemer kunne der opstå?
Avatar billede jensen2005 Nybegynder
05. august 2005 - 20:07 #4
Man burde jo nok gøre brug af et af de mange open-source tilbud. Men det lære man jo ik så meget kode af :-)
Avatar billede arne_v Ekspert
05. august 2005 - 20:27 #5
potentielle problemer jeg lige umiddelbart kan se:

1)  samtidigheds problemer - hvordan undgår du at 2 brugere redigerer i samme
    indhold og den der gemmer sidst bare overskriver den der gemme først uden
    advarsel ? (locking)

2)  hvordan søger i flade filer efter titel, dato etc. ? (index)

3)  hvordan genererer du id'er til indholdet ?

De fleste problemer kan løses ved at oprette hjælpe filer, men skal du pludselig
opdatere i 10 filer når du skal gemme en fil begynder det at kunne mærkes
på performance.
Avatar billede jensen2005 Nybegynder
05. august 2005 - 21:05 #6
Alt fra WYSIWYG-editoren bliver sat ind mellem <Body> og der bliver opret en fil(.aspx) og navnet på filen bliver skrevet til XML document som bruget til at danne menu. Hvis backend-bruger vil ændre menu titel skrives der til XML-doc + der sker en omdøbning af filnavn. Meget kort fortalt!. 

Cms systemet er tiltænkt max en bruger!

Desuden forestilles det at der er en overordnet menu og, at der kun under disse menupunkter kan oprettes undermenuer!

Ja det er lidt omfattende at forklare – men det kunne være at, du ville være ”interesseret” i at evaluere en beta-version på et tidspunkt?
Avatar billede arne_v Ekspert
05. august 2005 - 21:11 #7
Hvis du tillader at der creates .aspx filer, så skal du nok have rimeligt
godt styr på sikkerheden (det er noget farligere end nogle XML data filer).

Jeg er næppe den rette til at teste, idet udover at jeg aldrig har lavet
et CMS system, så har jeg heller aldrig brugt et !
Avatar billede jensen2005 Nybegynder
06. august 2005 - 08:36 #8
Tak for dine ”synspunkter” – jeg har fået lidt at tænke over.

Kan du ikke lige poste et svar så du kan få dine point.
Avatar billede arne_v Ekspert
06. august 2005 - 08:42 #9
svar
Avatar billede arne_v Ekspert
03. september 2005 - 18:31 #10
så mangler du bare at acceptere
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
Kurser inden for grundlæggende programmering

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