settembre 2007 Blog Posts
Ho notato solo qualche giorno fa che il timido Daniele sta postando tanti piccoli tips molto utili sul mondo .NET. Lui sostiene che si tratta di cose da principianti a me invece sembra che siano cose di cui tutti ogni tanto hanno bisogno.
E' di qualche giorno fa la notizia del rilascio di un nuovo framework per lo unit testing (xUnit).
xUnit è abbastanza innovativo rispetto ai vecchi Fx in circolazione e gli autori ne danno le motivazioni nel loro blog (qui e qui).
La cosa che mi lascia perplesso però è questa. Ad oggi esistono diversi framework per Unit Testing per .NET: NUnit il più vecchio e famoso, mbUnit che introduce alcune interessanti novità tra cui i raw test, Pex ancora in fase di sviluppo ma con ottime premesse, MS Test che praticamente nessuno usa (che senso aveva farlo?) e adesso xUnit.
Non sarebbe stato meglio...
Quasi tutti ormai anche nel mondo .NET hanno sentito parlare di Inversion of Control e Dependency Injection. Molti hanno usato uno dei framework disponibili (Castle, Spring, ecc...) e ne hanno colto i vantaggi.
Però la quasi totalità degli esempi e tutorial che si trovano in rete mostrano esempi in cui la costruzione di un oggetto viene fatta dal Fx di IoC tramite il costruttore.
In questi giorni mi serviva che gli oggetti venissero costruiti dal framework di IoC (in questo caso Castle) utilizzando però una classe factory invece che il loro costruttore.
Dopo un po' di ricerche all'interno del wiki ho trovato una...
In questi giorni lavorando con NH mentre stavo realizzando un metodo di caricamento tramite ICriteria, il fido intellisense di VS2008 mi ha mostrato la classe Example.
Questa permette di filtrare i dati usando un oggetto "semipopolato" per costruire la clausola where.
Ad esempio, supponete di voler caricare tutti gli ordini in stato "accettato" del 09/04/2007. Usando l'oggetto Example potete scrivere:
Ordine ordine = new Ordine();ordine.Stato = StatiOrdine.Accettato;ordine.Data = new DateTime(2007, 04, 09);ICriteria criteria = session.CreateCriteria(typeof(Ordine));criteria.Add(Example.Create(ordine));IList result = criteria.List();
In pratica NH cerca tra le proprietà dell'oggetto ordine quelle che hanno un valore diverso dal default (null, zero, DateTime.MinValue, ecc...) e le usa per costruire...
L'amico didoo mi ha segnalato questo post:
http://www.lullabot.com/blog/why-not-asp-net
che cerca di dare risposta al fatto che nessuna delle famose startup dell'era Web 2.0 faccia uso di ASP.NET.
In effetti la cosa fa riflettere è come se MS non attirasse i bohemien del web. Sarà forse per la sua natura troppo "Corporate"?
ASP.NET