Hans Dorrestijn: "Want, de worstjes van de Hema zijn niet te hard of slap...De Hemaworst, hoera hoera, zit barstens vol met sap.Baby's die nu juichen aan de moederborst...Zouden harder zuigen aan de Hemaworst"
Methode 1 werkt gewoon met een DataReader en methode 2 werkt echt met domain entities/business objects.
Het voordeel van methode 2 is dat je echt werkt met je eigen objecten, een Klant object representeerd ook echt een klant. Een klant object heeft misschien method's als SendMail oig. Dit kun je met DataReader's of DataSets niet.
Het is vaak veel makkelijker om te werken met eigen objecten alleen de ontwikkeling neemt vaak meer tijd in beslag. Maar gebruikers van jou ontwikkelde framework kunnen verder zonder enige kennis van de database werken, willen ze een klant wijzigen hoeven ze alleen maar even zo iets als dit te doen:
Je hoeft dus helemaal geen kennis te hebben van de database structuur oid. Wat je wel moet hebben als je alleen maar werkt met DataReader's of DataSets.
Ook word met je eigen objecten IntelliSence gesupport, ook een klein bijkoment voordeel.
Je zou is wat kunnen lezen over design pattern's, Domain Driven Development oid.
Het voordeel van methode 2 is dat je echt werkt met je eigen objecten, een Klant object representeerd ook echt een klant. Een klant object heeft misschien method's als SendMail oig. Dit kun je met DataReader's of DataSets niet.
Het is vaak veel makkelijker om te werken met eigen objecten alleen de ontwikkeling neemt vaak meer tijd in beslag. Maar gebruikers van jou ontwikkelde framework kunnen verder zonder enige kennis van de database werken, willen ze een klant wijzigen hoeven ze alleen maar even zo iets als dit te doen:
C#:
1
2
3
4
| KlantRepository repos = new KlantRepository(); Klant klant = repos.FindById( 5 ); klant.Naam = "pietjes"; repos.Save( klant ); |
Je hoeft dus helemaal geen kennis te hebben van de database structuur oid. Wat je wel moet hebben als je alleen maar werkt met DataReader's of DataSets.
Ook word met je eigen objecten IntelliSence gesupport, ook een klein bijkoment voordeel.
Je zou is wat kunnen lezen over design pattern's, Domain Driven Development oid.
Het werken met domein objecten zorgt ervoor dat je data / business en presentatie logica makkelijk kunt scheiden.
Het zorgt ervoor dat je je business logica centraal kunt houden; evenals je data access logica. Als je bv ergens iets wijzigt in je datamodel, hoef je dan niet alle aspx files en andere source files te moeten scannen of je daar ook iets moet wijzigen in een sql statement bv.
Je weet dan waar al je data-access code staat, je weet waar je business logica staat, je hoeft je Business logica niet te gaan dupliceren, etc...
Het zorgt ervoor dat je je business logica centraal kunt houden; evenals je data access logica. Als je bv ergens iets wijzigt in je datamodel, hoef je dan niet alle aspx files en andere source files te moeten scannen of je daar ook iets moet wijzigen in een sql statement bv.
Je weet dan waar al je data-access code staat, je weet waar je business logica staat, je hoeft je Business logica niet te gaan dupliceren, etc...
https://fgheysels.github.io/
ok,
maar is methode 2 niet veel langzamer/duurder?
Nu moeten er per record in de dataset een object gemaakt worden.
Dat kost dan toch 2x zoveel geheugen?
maar is methode 2 niet veel langzamer/duurder?
Nu moeten er per record in de dataset een object gemaakt worden.
Dat kost dan toch 2x zoveel geheugen?
Hans Dorrestijn: "Want, de worstjes van de Hema zijn niet te hard of slap...De Hemaworst, hoera hoera, zit barstens vol met sap.Baby's die nu juichen aan de moederborst...Zouden harder zuigen aan de Hemaworst"
Kwa geheugen scheelt het niets, je gooit de DataReader of DataSet immers weg daarna. Het kost je inderdaad wel iets, hoewel een DataSet ook niet echt ligt is, maar die paar bytes of extra cycles van je CPU maken niet echt veel uit. Daar merk jij niets van hoor.hemaworst schreef op maandag 05 december 2005 @ 15:06:
ok,
maar is methode 2 niet veel langzamer/duurder?
Nu moeten er per record in de dataset een object gemaakt worden.
Dat kost dan toch 2x zoveel geheugen?