webForumDet fria alternativet

Planering av webbplats

.NETur .NET

13 svar · 896 visningar · startad av Web-Tor

Web-TorMedlem sedan nov. 200013 890 inlägg
#1

Tjena!
Jag ska bygga en ny webbplats. Det är en enkel sida med meny, text, bild o.s.v. (se även denna tråd) där all information lagras i en databas. Till sidan ska det även kopplas ett mycket enkelt CMS där man kan redigera innehållet på webbplatsen.

Mina kunskaper i ASP.NET är fortfarande ganska begränsande men jag är inte rädd för att lära mig mer. ;)

Grejen är att jag utan problem skulle kunna bygga sidan med ASP.NET på samma sätt som jag skulle ha gjort om jag använt ASP eller PHP, men jag vill ju använda alla nya sköna funktioner i ASP.NET. Så även om sida i fråga är liten så vill jag bygga den med "stora tankar". Kan man bygga även en så här enkel sida efter "objektorienterad modell"?

Jag gillar ju verkligen ASP.NET:s möjligheter med att dela upp koden i återanvändbara delar (code-behind, klasser, UserController m.m).

Alltså, hur ska jag lägga upp projektet?

Jag vet att det är en luddig fråga men alla tankar är välkomna.

renholmMedlem sedan apr. 20012 266 inlägg
#2

https://www.ibuyspyportal.com är en bra sida som visar hur du relativt lätt kan bygga upp en form av CMS.

Web-TorMedlem sedan nov. 200013 890 inlägg
#3

Ingen som har fler tankar?
När ska jag använda User Controller, vilka klasser ska jag bygga o.s.v.

PatrikBMedlem sedan mars 20002 836 inlägg
#4

Om controllen ska återanvändas i flera olika applikationer så bör man göra en Server Control av den istället. Är den mer specifik för just en enda applikation kan den göras som en user control.

Hur classerna ska se ut beror ju på vad för funktioner/applikationer som din webbplats ska innehålla.

Finns ju ingen generell regel som säger att "dessa classer" måste finnas med i varje applikation .....

[redigerat]
Säg att du ska ha en gästbok.
Du kan säkert bryta om den gästboken i olika objekt som tex Inlägg, Lista av inlägg (en collection av många Inlägg) och så har du själva gästboken som innehåller både objektet inlägg och lista av inlägg.

Classer:
- Guestbook
- EntryInfo
- EntryInfoCollection
- m.m

ska du ha en annan applikation så blir det andra typer av object(classer)
[/redigerat]

cya,
PatrikB

Web-TorMedlem sedan nov. 200013 890 inlägg
#5

Innehållet på sidan ska kunna presenteras på två sätt: Enspalt eller tvåspalt.
Sedan finns det finns det vissa sidor som skiljer sig som t.ex. förstasidan, nyhetssidan o.s.v...

Jag hade tänkt att bygga menyn som en User Control som inkluderas på alla sidor.
Jag har en nyhetsfunktion också. Tänker jag rätt om jag resonerar på följande sätt:
Jag skapar en klass som heter nyheter.cs
Denna klass innehåller följande metoder:
• Visa_alla_rubriker
• Visa_en_nyhet
• Skapa_ny_nyhet
o.s.v...

NETworkMedlem sedan juni 20011 732 inlägg
#6

Oj, en stor fråga. :) Ämnet innehåller hur många vinklar som helst, vet inte om jag kan ge dig några "rätt och fel" men ett par punkter och fallgropar som jag har på min lista kan jag ju slänga upp.

Ett bra förarbete är viktigare än allt annat. Tänk igenom hela applikationen, syfte, innehåll, upplägg, målsättning, struktur. Många missar den här biten (som kanske inte är riktigt lika skoj) men det lönar sig rejält i slutändan, oavsett du pysslar med .net, php (eller om du ska renovera ett kök). Visst, det är kanske inte lika viktigt om du gör en liten hemsida, men det är väl investerad tid.

Måla inte in dig i hörn. De allra flesta har säkert hamnat i situationer då varje sida har en massa super-special-kod som i princip måste raderas när man gör en liten ändring. Och i stridens hetta blir man ibland så nöjd att man kopierar den där super-special-koden lite här och där och modifierar den på ena stället och på det andra stället... och sen upptäcker man att "oj, det var visst en bugg här, nu måste jag ändra i koden på 200 ställen och all modifierad kod genererar följdfel på följdfel...". Och så börjar man om från början. :) Lärorikt, javisst... men när man jobbar mot en kund på ett företag så är det inte lika kul att göra den här typen av fel. Helt plötsligt drog kostnaden iväg ett par hundra tusen... aj. Dessutom tenderar det att bli jäkligt rörigt MINST sagt.

När vi utvecklar idag så försöker vi att överhuvudtaget inte ha någon kod längst ut i affärslagret mer än några anrop till våra klasser. Allt är OO. Utveckling, felsökning, användbarhet, allt blir otroligt mycket mer lätthanterligt och strukturerat. Vi skulle ha drunknat i kod och varje nytt projekt skulle behöva sina egna nyhetsklasser med en massa specialkod. Alltså, bygg upp ett eget klassbibliotek där du känner dig lika hemma som i ditt eget vardagsrum. Sedan exakt hur detta ska göras är en annan fråga...

Usercontrols använder jag hela tiden, det är hur bra som helst. Vi har också börjat göra egna asp.net-kontroller, exempelvis har vi gjort kontroller för menyer (kontrollen genererar både html och javascript) och sitemaps (vilka laddas med ett xml-dokument och som går att få att se ut precis hur som helst med css). Mycket smidigt! Ha hela tiden fokus på "uppfinn inte hjulet två gånger".

Något som gör skillnad är naturligtvis hur du programmerar. Personligen är jag inte precis någon lysande stjärna på programmeringshimlen, har däremot två kollegor som är hur bra som helst på c#. Även om jag kanske skulle klara av att göra samma funktionalitet som mina jobbarkompisar där det synliga resultatet och funktionen såg lika ut, så skulle programmeringen bakom antagligen vara helt olika. Så länge sidan rullar som den är så kanske det inte gör någon större skillnad (eller jo, prestandaskillnader kan det säkert finnas), men om man kommer tillbaka ett år senare med nya planer för sidan så blir klasskillnaden hur tydlig som helst. Medan deras kod är OO, dynamisk och fin och hur lätt som helst att bygga vidare på, så skulle antagligen min kod behövas skrivas om helt. Med andra ord, bli en jävel på programmering.

Några punkter:

- Använd visual.studio.net
- Code-behind
- Objektorienterad programmering
- Träna, läs och lär, gör många exempel, trial and error
- Utnyttja asp.net-kontrollerna till fullo, när de inte räcker, gör egna
- Bygg egna klasser som är så generella och öppna som möjligt så att du inte bygger in dig för mycket på bara en sida eller en applikation. Finns ett par bra trådar om affärslager och hur du ska bygga dem här på webforum
- Ät mycket godis

NETworkMedlem sedan juni 20011 732 inlägg
#7

Web-Tor skrev:

Jag har en nyhetsfunktion också. Tänker jag rätt om jag resonerar på följande sätt:
Jag skapar en klass som heter nyheter.cs
Denna klass innehåller följande metoder:
• Visa_alla_rubriker
• Visa_en_nyhet
• Skapa_ny_nyhet
o.s.v...

Du kommer antagligen att behöva en nyhetsfunktion även i andra projekt i framtiden, eller hur? Lägg dina klasser i ett eget namespace så du inte knyter samma dem med bara den applikation du arbetar med just nu.

Web-TorMedlem sedan nov. 200013 890 inlägg
#8

Tack NETwork
Mycket bra svar – mer sånt!
Visst är det en stor fråga (utan ETT rätt svar). Jag har flera ASP.NET böcker och dom förklarar det mesta som är nytt i ASP.NET. MEN - de tar inte upp den här frågan.

Jag har byggt en hel den sidor med ASP och PHP men det känns som att ASP.NET erbjuder en hel den nya finesser och att det kan vara värt att lära sig dessa ordentligt.

Av dina avslutande punkter uppfyller jag (nästan) alla. :)

KlauzMedlem sedan jan. 2005133 inlägg
#9

Vad betyder CMS?

Jag har länge hållt på med ASP och mindre administrationssystem men har inte orkat titta åt ASP.net-hållet än..
Det verkar ju som att ASP.net verkligen är nåt att satsa på..

Nån som kan berätta om allt bra med ASP.net och göra mig lite mer kåt? :) Inbyggda komponenter t.ex.
Och hur funkar det med att anpassa sina gamla ASP-sidor till asp.net?

erkaMedlem sedan dec. 19996 522 inlägg
#10

Content Managment System.

Sök i detta forum och du kommer hitta massa saker som finns i asp.net jämfört med klassisk asp, går inte riktigt att jämgöra. Att anpassa finns inte, gör om från grunden är det som gäller. Om du inte har byggt dina asp sidor med com+ komponenter, då kan du säkerligen återvinna en hel del

asmodieMedlem sedan jan. 2004501 inlägg
#11

Här kommer lite små tankar från min sida som just satt mig in i .NET ordentligt.

Först och främst så delar ASP.NET upp data/logik och struktur automatiskt, rättare sagt man ska programmera så att den gör det. Med andra ord det man programmerar och utseendet på HTMLn som genereras ligger i skilda filer. Detta ska man försöka utnyta i största möjliga mån. Därför ska man försöka använda repeaters, datalists när man ska presentera data.

Man ska försöka sätta sig in i hur PostBack fungerar och vad det innebär, kan man detta bra sparar man mycket tid och möda. Man ska försöka hålla en funktion på en sida och inte redirecta så mycket. För att kunna göra detta på ett smidigt sätt kan jag rekomendera att använda Panels för att lägga upp sidan.

Ska du göra en userkontroll är det viktigt att den klarar sig helt ensamståde. Den ska inte vara beroende av annan sida. Annars kommer du få problem. Detta betyder inte att andra funktioner ska kunna skicka och hämta data till den.

JavaScript kan lösa en jälva massa problem åt en. Mer än vad man kan tro.

När man skickar data ska man helst skicka typad data. Helst i form av typade objekt och typade collections. Detta får både koden att se bra ut och det lätt för andra att förstå hur den fungerar. Man spara även en massa konverteringar fram och tillbaks.

Användfärdiga komponeneter. Finns mycket som mer eller mindre är gratis att använda. Dessa kan jag varmt rekomendera:
1. Wilson ORMapper - https://www.ormapper.net
2. Freetextbox - https://www.freetextbox.com

Kom ihåg att inte bygga för avancerade modeller för mindre system bara för att modellen ska använda till sitt yttersta.

Web-TorMedlem sedan nov. 200013 890 inlägg
#12

Vill bara inflika att tråden är närmare två år gammal så jag behöver inte hjälp med detta längre.

asmodieMedlem sedan jan. 2004501 inlägg
#13

Vill svära en massa. Men man ska väll alltid kolla när posten är skapad.

echoSweMedlem sedan nov. 20041 189 inlägg
#14

Nej, det är bra. Tråden uppskattades av mig!

139 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)