Il secondo talk che seguiamo, sempre di Andrea Saltarello, parla di metodologie di sviluppo ed in particolare degli strumenti per la suddivisione del lavoro in Code Contracts (e relativi test). Il pretesto è la creazione di un Repository.
La prima informazione utile da sapere è che Visual Studio non è completamente “ready" al per il code contract e oltre a scaricare il Code Contract toolkit bisogna utilizzare alcune estensioni Code Contract. Fatto questo possiamo utilizzare tranquillamente VS2010.
Subito Andrea continua mostrando le impostazioni per abilitare il compilatore a verificare che tutti i contratti siano rispettati, poi arriva sul codice di test e suggerisce due toolkit che definisce indispensabili per il testing: SharpTextEx e Moq.
Saltarello si sofferma poi ad introdurre il Repository, consiglia una serie di testi utili per conoscere e realizzare i Domain Model e poi mette a fuoco alcuni concetti di DDD, come la domain logic ed i principi basilari dei modelli di dominio (interessanti le considerazioni sull’utilizzo di Factory per generare entità ed aggregati).
Fatte queste premesse si passa al codice e a mostrare come definire ed implementare i contratti su tipi astratti e generics, utilizzando inversion of control e permettendo una molteplicità di ORM (Entity Framework e NHibernate)
Interessante soprattutto per vedere come mettere insieme molte tecnologie (ORM, Code Contract, IOC, etc..)