January 2006 Blog Posts

ClickOnce e numero versione

Oggi ho usato per la prima volta ClickOnce e mi sono subito scontrato con una sottigliezza nell'utilizzo delle versioni.Erroneamente pensavo che ClickOnce modificasse il valore della proprietà Application.ProductVersion quando si pubblica un'applicazione indicando il numero di versione.   Cercando maggiori dettagli in rete ho scoperto che mi sbagliavo perchè l'engine di ClickOnce valorizza la proprietàSystem.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion per mantenere la versione e quindi se l'applicazione è distribuita via ClickOnce è più corretto indicare questo valore come numero di versione.   Di seguito un esempio di come controllarne il valore a runtime:   private void helpToolStripButton_Click(object sender, EventArgs e)        {            String msg = "Help not available at the moment";            if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)                msg += string.Format("\nApplication Version {0}", System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion);            MessageBox.Show(msg, "Help", MessageBoxButtons.OK, MessageBoxIcon.Information);        }  Da non dimenticare di controllare la proprietà System.Deployment.Application.ApplicationDeployment.IsNetworkDeployedaltrimenti vi beccate subito una bella eccezione!

Pattern per eseguire unit testing

Leggendo il blog di Martin Fowler ho scoperto questo sito in cui si trovano raccolti molti pattern per la creazione di test automatici. Penso che tutti una volta capito come funziona lo unit test si siano imbattuti sul come scrivere i test.Qui c'è parecchio materiale per l'approfondimento della materia. Un'altra interessante lettura dal taglio molto più pratico invece la trovate qui updated:aggiornato l'url del sito

Create tabelle con NHibernate

Provando un po' NHibernate ho notato una classe molto utile ovvero SchemaExport.csQuesta contiene dei metodi per generare (ma anche "droppare") al volo le tabelle all'interno del database. Nella classe BloggerFixture.cs del progetto NHibernate.Examples viene usata in questo modo public void ExportTables(){    Configuration cfg = new Configuration();    cfg.AddClass(typeof(Blog));    cfg.AddClass(typeof(BlogItem));    new SchemaExport (cfg).Create(true,true);}In questo caso genera al volo prendendo le info nei relativi file di mapping.Da usare con cautela ma in alcuni casi può tornare utile.

Ci provo anch'io

Anno nuovo e nuovo progetto: un blog tecnico.Speriamo bene.