Jag har programmerat en sida i asp 3 innan. Nu tänkte jag att det kunde vara dags att göra om den i asp.net 2.0 istället. Jag tänkte dock ändra en hel del, och vill ha den "rätt" från början. Därför frågar jag er som kan lite mer:
Det rör sig om en hyfsat omfattande sida med en access-databas (för att det är vad hostingen har stöd för).
Hur bör jag göra för att maximera återanvändbarhet och för att förenkla underhållsarbete (programmeringsmässigt) så mycket som möjligt?
Finns det något bra sätt att fixa O/R-mapping automatiskt? Inbyggt i visual studio / .net 2.0 eller måste jag använda något externt för det?
Bör jag använda sånt som är inbyggt i .net (data reader, grids, datasets etc) eller finns det bättre alternativ? Jag vet att det i .net 1 inte var speciellt kul att använda de inbyggda grejerna, men har ingen koll på om de har ändrat något med dem i 2.0.
Har haft ungefär samma problem. Men efter några timmar med Visual Studio Express, så har en del löst sig...
Rent allmänt så använder jag klasser när det finns en uppenbar fördel att ha detta, tex varukorg, användarhantering osv. Inmatning av data kör jag med formulär och codebehind. Datapresentation med inbyggda funktioner typ datagrid, osv.
Grejen är att de fördefinierade dataobjekten i Visual Studio är kraftfulla, men man måste laborera med dom för att förstå dom fullt ut. Rent allmänt så är min erfarenhet att ska man presentera data så funkar dessa inbyggda dataobjekt mycket bra, men för att hantera indata så är det mycket codebehind som gäller.
Visual Studio Express har imponerat stort på mig, jämfört med tidigare utvecklingsmiljöer.
Jag har programmerat lite Ruby on Rails i skolprojekt den här terminen, och har vant mig vid smidigheten med ActiveRecord (ORM). Det är rätt intressant med monorail och activerecord för .net 2.0:
nhibernate börjar ta sig, https://www.hibernate.org, lite hög tröskel i början men när man väl förstått hur nhibernate "tänker" ser sig det mesta man varit förbannad på under inlärningskurvan rätt naturligt, som vanligt ;) Annars om du bara vill ha ett dal eller liknande kan du kolla in enterprise library och dess data application block från killarna (och tjejerna?) bakom .net ramverket. Du klarar dig väldigt långt med de inbyggda kontrollerna för presentera data, passar inte de bygger du exempelvis en egen kompositkontroll. Vill du lattja med Ajax kan du ju testa Atlas som kommit i en lite stabilare version (men ingen final)
nhibernate kollade jag på. Det verkar vara precis vad jag vill ha, men jag fattar inte riktigt hur man använder det än. Det torde funka på samma sätt kodmässigt som activerecord för rails, så DEN biten har jag inga problem med... det som är problemet är hur man använder det med visual studio.
Atlas tänker jag definitivt använda. Har kollat in deras demovideos, verkar smidigt. Annars skriver jag egna ajax-grejer om Atlas inte räcker till.
Jag rekommenderar också NHibernate. Vill du lära dig det relativt snabbt och se hur det fungerar i praktiken så kolla in http://www.cuyahoga-project.org/ . Lärde mig NHibernate (övergripande) hyffsat snabbt genom att ha den som referens när jag kodade. Väntar bara på generics-stödet i NHibernate nu, sen kommer NHibernate att vara om än mer underbart att ha att göra med.
Castle ActiveRecord låter intressant, mycket intressant. Blir allt att testa det.
Iaf, summa summarum. Använd NHibernate och log4net(http://logging.apache.org/log4net/) tillsammans med en schysst ddd (Domain Driven Design) och n-tier arkitektur.
Vill du läsa på lite om ddd så kolla in "Domain-Driven Design: Tackling Complexity in the Heart of Software" (http://www.flazx.com/ebook4007.php) eller "Applying Domain-Driven Design and Patterns : With Examples in C# and .NET" om du kan få tag på den.
Lite ot:
Så O/R-mapping finns till rails med? Har planer på att lära mig lite ror nu under sommaren och just möjligheterna till o/r-mapping är det första jag kom att fundera över.
Det var precis sådana kommentarer och tips jag ville ha!
Tack allihop! (jag tar gärna emot fler synpunkter och kommentarer, naturligtvis)
Angående Rails så ÄR det i princip ORM. ActiveRecord är vad rails bygger på från början.
Det har stora likheter med NHibernate. Kolla in Castle för .NET. Det ger en bas som liknar den i Rails. Det innehåller logging också, men jag har som sagt inte kommit igång med det riktigt än.