Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

.NET Framework 3.5 SP 1: Client Profile

In questo post desidero introdurre una fenomenale funzionalità apportata dal Service Pack 1 di .NET Framework 3.5, denominata .NET Framework Client Profile. Premetto che ci saranno altre cose da dire oltre a quelle che illustrerò, ma intanto facciamo un'overview della caratteristica citata per poi eventualmente riprenderla successivamente.

Come ben sapete, .NET Framework è il prerequisito imprescindibile per l'esecuzione di applicazioni .NET e dev'essere incluso nelle procedure di distribuzione (o scaricato da Internet) affinchè i nostri utenti possano utilizzare le nostre applicazioni. Il problema di base è che .NET Framework 3.5 full package ha delle dimensioni effettivamente notevoli, rispetto ai suoi predecessori.

Partendo da questo presupposto, il team di sviluppo di .NET Framework ha introdotto la possibilità di distribuire una versione ridotta del run-time (il Client Profile) dedicata esclusivamente alle applicazioni client. Tale versione ridotta (circa 28 Megabyte contro gli oltre 300 della versione completa) è costituita da un sub-set di assembly appartenenti al più completo .NET 3.5, assembly in tutto e per tutto identici a quelli del fratello maggiore. In sostanza, il Client Profile integra gli assembly inerenti le seguenti tecnologie:

  • Common Language Runtime
  • Windows Forms
  • Windows Presentation Foundation
  • Windows Communication Foundation
  • ClickOnce

La logica di base è: se la mia è un'applicazione per Windows, perchè devo distribuire anche gli assembly dedicati ad ASP.NET occupando spazio inutilizzato? In questo modo le proprie applicazioni .NET per Windows potranno funzionare normalmente, risparmiando spazio. Inoltre, questo tipo di approccio è senza dubbio molto utile in ambienti Windows XP SP 2 o Windows Server 2003 (che non integrano, per default, .NET 2.0 o superiore).

Fatta questa premessa discorsiva, andiamo ora a vedere come il tutto si realizza attraverso Visual Studio 2008 in ambito Visual Basic. E' evidente come il Client Profile sia applicabile nei confronti delle tipologie di applicazioni sopra descritte. Per attivare il nostro sub-set all'interno di un'applicazione, dobbiamo innanzitutto aprire la finestra My Project, selezionare la scheda Compilazione e fare clic sul pulsante Opzioni di compilazione avanzate. Quando compare la finestra, è necessario fare clic sul segno di spunta riferito alla voce Sottoinsieme .NET Framework solo client, come nella seguente figura:

Il passaggio successivo è quello di compilare il progetto. Questo farà sì che Visual Studio 2008 sia in grado di determinare se effettivamente la nostra applicazione potrà girare sotto il Client Profile o se, invece, richiederà la presenza della versione full di .NET Framework 3.5. Nel caso in cui siano necessari assembly non compresi nel Client Profile, verranno visualizzati dei messaggi di avviso nella finestra di Output.

Il Client Profile funziona sia nelle distribuzioni ClickOnce che in quelle per Windows Installer (progetti di distribuzione). Nel momento in cui compiliamo il progetto (vedi passaggio precedente), il Client Profile diventa il prerequisito principale ed esclude il fratello maggiore, come si evince dalla seguente figura:

Nel momento in cui la procedura di distribuzione (ClickOnce o Windows Installer) viene assemblata, come di consueto viene prodotto un bootstrapper chiamato Setup.exe. Tale bootstrapper è stato specificamente migliorato per questo tipo di scenario e il suo "peso" è di circa 200 Kb. Quando avviato, Setup.exe verifica la presenza di .NET Framework 3.5 completo e, qualora non rilevato, installa la versione Client.

Un ultimo elemento da notare è che, sfruttando il client profile, al progetto viene aggiunto un file App.config, contenente un nuovo elemento Xml, che indica all'applicazione che il run-time da utilizzare è quello ridotto:

<startup>

    <supportedRuntime version="v2.0.50727" sku="Client"/>

</startup>

L'elemento sku indica proprio che il runtime dev'essere il Client Profile. In questo post abbiamo fatto un'introduzione del Client Profile, sebbene gli improvement introdotti dal Service Pack 1 per .NET Framework 3.5 riguardino anche altri fattori che vedremo prossimamente. Ad ogni buon conto, oltre a saperne qualcosa in più, è importante il fatto che il team di prodotto abbia cercato di migliorare lo scenario di deployment delle applicazioni Windows.

Alessandro

Print | posted on mercoledì 1 ottobre 2008 00:36 | Filed Under [ .NET Framework Visual Basic Setup & Deployment Visual Studio 2008 ]

Powered by:
Powered By Subtext Powered By ASP.NET