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