Afgelopen donderdag en vrijdag hebben de technici van A&M ImpacT een cursus NHibernate gevolgd. NHibernate is een Object-relational mapper, dit wil zeggen dat de objecten uit je diagram gemapt worden met een tussenlaag naar de database. Het voordeel is dat men dan de database als een object kan benaderen en op kan slaan zonder SQL te hoeven schrijven.
De configuratie van de mapping wordt opgeslagen in XML bestanden. Hierin geef je eenmalig de mapping aan waaruit vervolgens de database vanuit de mapping files gegenereerd kan worden.
Het voordeel van NHibernate als ORM is dat het model hiermee goed kunt indelen in verschillende lagen. De mapping files worden in een aparte directory gegenereerd. Zodat het ORM los staat van het model. Zo kun je in je model goed een database,reposirtory,service en domein laag definiëren. Dit is ook wel nodig anders loop je al gauw vast met het unittesten van je applicatie.
Met unittesten wil je met data kunnen testen wat niet veranderd, zodat je hier je testen op kan baseren.

Een database is hier eigenlijk niet voor geschikt aangezien deze data steeds kan veranderen. Om deze reden wil je de database laag kunnen vervangen voor statische data. Het vervangen van een class of database voor een fake class die het zelfde gedrag vertoont als de database of class wordt ook wel mocking genoemd.
Met de erg geslaagde cursus kunnen we nu weer verder met het schrijven van unittesten.
Unittesten valt in het begin vaak erg tegen en is dan voor ontwikkelaars best wennen. Het is ook best een hele omschakeling om eerst je testen te schrijven voordat je ook nog maar een regel code geschreven hebt. Maar dat is je er even overheen zetten en je kijkt er al gauw erg positief tegen aan, en zie je zeker de voordelen van testdriven development.
Vandaag kunnen we meteen de kennis uit de NHibernate cursus toepassen, waaruit wel blijkt dat we een boel opgestoken hebben.

9 maart 2010 om 11:23 uur
Hoi Marco,
Kun je me misschien vertellen waar je die cursus gevolgd hebt?
Groet, Teddo