Jag spenderade förra veckan på en .NET kurs i London. Förutom just Webservices som var huvudämnet så pratades det allmänt om .NET-programmering, tillvägagångssätt m.m.
Läraren (och många deltagare) var verkligen superduktig och hade koll på det mesta i .NET inklusive nya ändringar för Whidbey m.m.
MEN...när det då gällde att bygga klasser och vilken arkitektur/struktur man har på sitt kodande så blev jag nerpratad.
Exempel:
Själva jobbar jag nästan alltid med egna Collection-klasser (som ärver av BaseCollection och implementerar IList för att stödja bindning) som fylls på med Property-Klasser. I dessa klasserna styr jag sedan olika beteenden med egna attributklasser och CustomAttributes. Jag använder även XMLAttribute för att kunna styra hur Listor och Data kan Serialiseras. Klienten kan dels:
- Binda data mot div. kontroller
- Ändra data i en Property-Klass och skicka tillbaka den till BL, som då med automatik uppdaterar data baserat på CustomAttributes.
- m.m m.m.
Det känns för mig som ett väldigt bra sätt, då man har full dynamik och flexibilitet på sitt data.
De däremot hävdade att man i princip alltid ska använda ett Dataset för att returnera data från BL. Sen kan klienten fixa till det som den vill, posta tillbaka ändringar m.m.
Läraren sa iof inte att mitt sätt är fel, men däremot för "avancerat". Då han själv haft kontakter i skandinavien innan sa han bla:
"Ni skandinaver ägnar massa tid åt att bygga avancerade klasser och kontroller, när det mesta redan finns klart i .NET, varför? För mina kunder är min tid pengar, och det är snabbare att använda ett Dataset..."
Visst kan det ta lite mera tid att ägna några tankar åt bra struktur, men har man väl gjort det en gång, så har man en bra uppsättninge med basklasser för återanvändning.
Så...kommentarer på det? Nån som har erfarenhet av hur man bygger i andra länder? Hur gör Ni?
Jag håller annars helt klart med om att tex. ett Dataset kan vara det bästa i vissa situationer. MS har ju ändå lagt en helt del resurser på att få det bra, särskilt gällande relationer, mapping m.m...Men återigen föredrar jag mina egna klasser....