Questo è il primo post della serie “Guest post” che ospita autori esterni al team di MSDN Italia.

Questo post è stato scritto da Alessandro Del Sole, MVP Visual Basic e fondatore della prima community italiana su LightSwitch. Se volete proporre post per questa sezione, scriveteci.

Introduzione

Microsoft Visual Studio LightSwitch è un nuovo strumento di sviluppo della famiglia Visual Studio, attualmente rilasciato in Beta 1, per lo sviluppo rapido di applicazioni Line Of Business per il desktop e per il cloud. Per sviluppo rapido si intende la possibilità di creare applicazioni orientate ai dati in modo particolarmente semplice, poiché è sufficiente definire delle origini dati, partendo da database esistenti o da tabelle create ex-novo, per poi definire una serie di maschere sfruttando una serie di modelli predefiniti messi a disposizione dal tool stesso. Il risultato finale è un’applicazione perfettamente funzionante, di tipo gestionale, che in molti casi può addirittura essere completata senza scrivere una sola riga di codice. E’ possibile scaricare Visual Studio LightSwitch Beta 1 da questo indirizzo.

Target di sviluppatori

Visual Studio LightSwitch è essenzialmente dedicato a:

· Piccole/medie imprese che hanno la necessità di sviluppare applicazioni sostanzialmente semplici, a livello di architettura e gestione dei dati

· Sviluppatori anche con poca esperienza che devono sviluppare applicazioni business

· Sviluppatori esperti che però necessitano di essere produttivi in pochissimo tempo

Tecnologie utilizzate

Visual Studio LightSwitch sfrutta tutte le più recenti tecnologie Microsoft, rendendo le applicazioni generate particolarmente moderne e performanti, oltre ad offrire semplificazioni in molte fasi del ciclo di vita dello sviluppo. In particolare LightSwitch:

· Richiede .NET Framework 4

· Genera applicazioni Silverlight 4, disponibili sia tramite browser Web che come applicazioni desktop attraverso la caratteristica “Out-of-browser

· Consente lo sviluppo di applicazioni 2-tier o 3-tier, in quest’ultimo caso sfruttando IIS per le comunicazioni

· Consente di aggregare dati provenienti da più fonti, come SQL Server, SharePoint 2010 e WCF RIA Services, all’interno di un’unico database SQL Server che va a diventare parte integrante della distribuzione

· Permette di distribuire l’applicazione attraverso ClickOnce (lato desktop) o MSDeploy (lato web), secondo la logica del one-click deployment

· A partire dalla Beta 2 (stando a quanto comunicato dal team), offrirà il supporto integrato per il deploy verso SQL Azure

· Offre funzionalità integrate di validazione dei dati e autenticazione, in grado di lavorare anche senza alcun intervento in termini di codice

· Le applicazioni generate sfruttano il pattern architetturale Model-View-ViewModel

· In futuri rilasci permetterà la personalizzazione dell’ambiente, mediante shell extensions, e dell’interfaccia grafica tramite temi personalizzati mentre attualmente già consente l’utilizzo di controlli utente in Silverlight per estendere la nutrita toolbox già disponibile.

Sviluppare applicazioni con LightSwitch

Visual Studio LightSwitch, almeno in questa prima beta, è disponibile come ambiente stand-alone o, se già presente un’edizione di Visual Studio 2010 (dalla Professional in su), come add-on. All’avvio, LightSwitch si presenta in modo assolutamente familiare, poiché riprende la shell di Visual Studio 2010:

DelSole_LightSwitch1_1

Per creare un nuovo progetto, è sufficiente fare click su New Project per accedere all’omonima finestra che consente due semplici scelte: Visual Basic o Visual C#:

DelSole_LightSwitch1_2

Quando si crea un nuovo progetto, LightSwitch richiede che venga definita un’origine dati a partire da una nuova tabella o da una fonte dati esistente:

DelSole_LightSwitch1_3

Supponendo di voler creare una tabella da zero, si seleziona la voce Create New Table grazie alla quale verrà attivato il designer delle tabelle. All’interno di questo designer è possibile definire la nuova origine dati, specificando un nome per la tabella, le varie colonne e i tipi di dato per ciascuna colonna, come evidenziato in figura:

DelSole_LightSwitch1_4

Si può osservare che:

· LightSwitch genera automaticamente una colonna chiamata Id, di tipo Int32, che funge da chiave primaria e da contatore

· E’ possibile specificare che la colonna sia obbligatoria, apponendo un segno di spunta sulle caselle Required

· Vengono introdotti dei nuovi tipi di dato: EmailAddress, PhoneNumber e Money (non utilizzato in questo caso). Viene così introdotto il concetto di tipo di dato business, piuttosto che tipo di dato .NET e questo ha un senso, poiché si hanno dei tipi specifici per rappresentare delle esigenze di business. Inoltre, come si vedrà, questi speciali tipi di dato implementano delle regole di validazione in modo nativo che evitano molto lavoro allo sviluppatore

Si può poi creare un’altra tabella da voler collegare alla prima tramite relazione master-details, come ad esempio la rappresentazione di ipotetici ordini da collegare a ciascun cliente. La seguente figura mostra la definizione della tabella Order:

DelSole_LightSwitch1_5

Per stabilire una relazione tra le due tabelle, si può utilizzare il pulsante Add Relationship. Questo attiverà una comoda finestra di dialogo dalla quale sarà possibile stabilire la relazione; nel nostro caso, un’istanza di Customer può avere molte istanze di Order:

DelSole_LightSwitch1_6

Una volta definite le sorgenti dati, si può passare a realizzare l’interfaccia grafica, costituita da maschere o, per utilizzare i termini di LightSwitch, da Screen. Per creare un nuovo Screen si utilizza il pulsante Add Screen che mostrerà la seguente finestra di selezione:

DelSole_LightSwitch1_7

Come si può vedere, c’è una nutrita serie di modelli di maschere predefinite e, per ciascuna di esse, è possibile selezionare la sorgente dati da associare mediante una comoda casella combinata. Nel nostro caso può essere conveniente creare una maschera per l’aggiunta di Customer e una per l’aggiunta di Order. La figura precedente mostra come creare lo Screen per l’aggiunta di Customer, operazione da ripetere, poi, per l’altra tabella. Ogni qualvolta si aggiunge un nuovo Screen, LightSwitch mostra lo specifico designer. Tale designer non ha un’impostazione visuale (cosa che invece accade in Visual Studio), piuttosto mostra una serie di controlli utente aggiunti automaticamente all’interfaccia e tutti collegati ai dati, riepilogati nella parte sinistra dell’IDE. Fra l’altro, è bene evidenziare che LightSwitch associa il controllo utente appropriato a seconda del tipo di dato (es. controllo DatePicker per dati di tipo Date). La figura seguente rappresenta il designer in questione:

DelSole_LightSwitch1_8

Successivamente è possibile aggiungere degli Screen di ricerca dati, che permettano di elencare i dati esistenti sfruttando il template Search Data Screen. Ipotizzando di averne aggiunti due, uno per Customers e uno per Orders, possiamo definire completata la nostra applicazione pertanto è sufficiente premere F5 per mandarla in esecuzione. L’interfaccia dell’applicazione è costituita da un controllo di tipo Ribbon, in alto, che consente di accedere alle funzionalità comuni mentre sulla sinistra è disponibile una barra per la navigazione tra Screen. La seguente figura mostra l’applicazione di esempio all’avvio:

DelSole_LightSwitch1_9

Si noti come gli Screen di ricerca ed elencazione dei dati mettano a disposizione un pulsante per l’esportazione dei dati all’interno di una cartella di lavoro di Microsoft Excel. In questo modo le applicazioni LightSwitch offrono un livello di base di integrazione con Office. Se invece si prova a creare un nuovo elemento, ad esempio un nuovo Customer in cui venga sbagliato l’indirizzo e-mail, LightSwitch solleva automaticamente un errore di validazione comunicandolo tramite l’interfaccia grafica:

DelSole_LightSwitch1_10

Tutto questo lavoro è stato svolto senza scrivere una sola riga di codice! Per personalizzare i nomi degli elementi che vengono visualizzati sull’interfaccia, è possibile utilizzare il designer per gli Screen, selezionare gli elementi da modificare e, all’interno della Finestra delle Proprietà, sostituire il valore della proprietà Display Name con un uno che abbia più significato nel proprio scenario.

Risorse utili

Sul Visual Studio LightSwitch Developer Center è possibile reperire molto materiale introduttivo a LightSwitch tra cui:

Visual Studio LightSwitch Training Kit

Visual Studio LightSwitch “How-do-I” videos

Tutorial introduttivi

Inoltre è possibile visitare il blog del Team di prodotto dove si possono trovare numerosi articoli.