Uncategorized

Versioning degli Assemblies con ASP.net 2.0

L’avvento di .NET 2.0 ha portato innegabili benefici, ma una delle poche cose che mi ha lasciato un po’ perplesso è il sistema di versioning usato in ASP.net 2.0.
E’ un po’ macchinoso e, a mio avviso, non è spiegato in maniera appropriata nelle pagine del MSDN, per capire come farlo funzionare bene ho dovuto fare un po’ ricerche.
Adesso che è in funzione a dovere, vorrei condividere con voi il risultato della mia analisi.

Come sa bene chi di voi è già pratico della piattaforma .NET e del Visual Studio in particolare, tutte le informazioni sull’assembly, comprese quelle sua a versione, sono sempre state contenute nel file AssemblyInfo.[vb|cs], un file che era creato in maniera assistita da Visual Studio.
Bene, dalla versione 2.0, questo meccanismo funziona in una maniera un po’ diversa, e a mio avviso meno lineare.

In pratica si tratta di nuovo di usare le stesse meta informazioni che prima erano nel AssemblyInfo, ma di organizzarle in maniera diversa. Come esempio, questa volta vi faccio vedere le informazioni sull’assembly del xCMS, il CMS che sta facendo girare questo sito.

 #Region "AssemblyInfo"

<Assembly: AssemblyTitle("xCMS")>
 <Assembly: AssemblyDescription("xCMS running lucamauri.com")>
 <Assembly: AssemblyCompany("Luca Mauri")>
 <Assembly: AssemblyProduct("eXperimental Content Management System")>
 <Assembly: AssemblyCopyright("Copyright (C) 2005-2006, Luca Mauri")>
 <Assembly: AssemblyTrademark("")>
 <Assembly: CLSCompliant(True)>

<Assembly: Guid("18677A5B-1EB1-4D66-A5D8-55A1353AFAEB")>

<Assembly: AssemblyVersion("1.1.0.*")>
 #End Region

Ho inserito questo blocco di codice (notate la #Region impostata per separare questo codice dal resto della classe) in una delle classi del Core del xCMS. In questa maniera, queste informazioni caratterizzano la classe appena citata e, per mia convenzione, tutto il xCMS, quindi ora è sufficiente richiamare queste informazioni per utilizzarle all’interno del codice della Master Page che sottende all’interfaccia del xCMS.

</pre>
<blockquote>
<p class="inlinecode">xcmsVersion = GetType(<i><b>NomeClasse</b></i>).Assembly.GetName.Version.ToString</p>
<p class="inlinecode">

Sostituendo al segnaposto NomeClasse il nome della classe (non il nome di una sua istanza!), si possono ottenere le sue diverse proprietà e, nell’esempio appena mostrato, ho estratto la versione e poi l’ho trasformata in una stringa.
Questa stringa viene poi passata alla pagina Master e integrata in tutte le pagine del sito: si tratta del testo nel piedino di ogni pagina che recita eXperimental Content Management System version 1.1.0.23499.

Annunci
Standard

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...