Sempre in riferimento al meeting XEDotNet: NetTiers & CodeGeneration, che si terrà Venerdì 8 Maggio 2009 a Mestre presso l’Hotel Novotel, elenco alcuni dei pro e contro riscontrati durante l’utilizzo di .netTiers.
PRO:
- genera tutti i componenti DAL (provider e entities)
- genera tutte le relazioni tra entità (one-to-many, one-to-one, many-to-many)
- il codice generato è molto intuitivo (ovvero per caricare un cliente sarà stato generato il metodo GetCustomerById(), assieme a tutti i metodi per effettuare caricamenti per chiavi esterne ed indici). Tutti questi metodi permettono un accesso paginato ai dati.
- viene generato automaticamente anche uno strato di webServices e proxy che consentono di utilizzare il Framework anche in scenari 3-Tier
- supporta il DeepLoading/DeepSaving delle entità, ovvero specificando una entità e la lista delle entità relazionate, viene caricato sotto forma di oggetti e collections tutto il grafo degli oggetti collegati all'entità "radice". Tale entità potrà poi essere salvata unitamente a tutte le entità "figlie"
- le classi generate permettono l'utilizzo di campi BLOB
- i constraint del database sono incorporati nel codice, attraverso l'uso dei nullable types
- integrazione con Enterprise Library (2, 3, 3.1, 4), che significa poter usare i meccanismi di caching, exception handling ed instrumentation di Enterprise Library
- consente l'utilizzo di Stored Procedures Custom
- genera automaticamente una serie di Unit Test (compatibili con nUnit o Visual Studio) che permettono di testare tutto il Framework generato
- non utilizza librerie esterne, per cui qualunque aspetto è modificabile liberamente
- il codice generato è scalabile, si rifà alle Best Practices promosse da Microsoft ed è completamente basato su patterns
CONTRO:
- non supporta le tecnologie più recenti del Framework 3.5 (WCF, LINQ, EF)
- genera molto codice, per cui si può incorrere nel temuto "code bloat", ovvero la generazione di molto codice che non verrà di fatto mai utilizzato
- è necessario rigenerare il codice ad ogni modifica del database, anche se grazie all'uso delle partial classes le personalizzazione sulle entities e nelle altre classi non verranno sovrascritte
- le eventuali modifiche dei templates non sono semplici
Tutti i pro ed i contro riportati verranno ampiamente discussi nel meeting di venerdì, per cui se siete interessati ad approfondire questi aspetti, cosa aspettate a registrarvi? Vi aspetto!