Questo è il terzo 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

Terminiamo la nostra carrellata sulle caratteristiche più interessanti di Visual Studio LightSwitch facendo una breve overview delle modalità di deploy e funzionalità di autenticazione disponibili attualmente nella Beta 1.

Modalità di deploy

Come accennato nel primo post, le applicazioni LightSwitch possono essere eseguite sia come desktop che all’interno di un browser Web. Queste possibilità influenzano anche il modo in cui l’applicazione viene distribuita. LightSwitch offre infatti tre possibilità di deployment:

  • Applicazione desktop 2-tier, tipico scenario client/server in cui l’interfaccia dialoga con i dati
  • Applicazione destkop 3-tier, in cui lo strato intermedio è costituito da Internet Information Services, che si occupa di ospitare i WCF RIA Services che elaborano i dati
  • Applicazione 3-tier per il browser, che funziona come la precedente ma il lato client è fruibile da un browser Web

Come regola generale il deploy di un’applicazione LightSwitch viene effettuato mediante strumenti di one-click deployment, filosofia nota a coloro che utilizzano Visual Studio sin dalla versione 2005 (grazie a ClickOnce) che è stata estesa in Visual Studio 2010 anche alle applicazioni Web mediante il tool MSDeploy. E’ facile impostare la tipologia di applicazione, poiché è sufficiente fare un semplice click sulla modalità di deploy desiderata nelle proprietà dell’applicazione –> scheda Application Type come si può vedere in figura:

DelSOle_LightSwitch3_1

Indipendentemente dalla tipologia di applicazione, il deploy si effettua semplicemente selezionando il comando Publish nel menu Build. Questo attiverà una procedura guidata, che inizia effettivamente con la seguente schermata, mostrata dopo un messaggio di benvenuto:

DelSole_LightSwitch3_2.jpg

DelSole_LightSwitch3_2

Nel corso della procedura guidata sarà possibile:

  • Specificare la destinazione del deploy (installer per desktop o package zip nel caso di IIS)
  • Specificare la modalità di deploy del database (nuovo o esistente, più stringa di connessione)
  • Specificare le credenziali di accesso al server, nel caso di deploy su server Web

Con questi pochi passaggi è possibile pubblicare l’applicazione LightSwitch e renderla fruibile agli utenti. Maggiori e più dettagliate informazioni sul procedimento di deploy di applicazioni LightSwitch possono essere reperite in questo post di Beth Massi.

Autenticazione

Poiché le applicazioni LightSwitch sono pensate per essere eseguite prevalentemente all’interno di reti aziendali, ma anche attraverso servizi di cloud computing via Internet, l’accesso ai dati può essere consentito previa autenticazione. Visual Studio LightSwitch permette di impostare delle regole di autenticazione in modo molto semplice: accesso anonimo (default), autenticazione Windows o autenticazione Forms. Una volta stabilita la modalità di autenticazione, si definiscono delle regole che permettano l’accesso a determinate risorse solo quando l’utente risulta autenticato. Ipotizzando di avere una semplice applicazione che gestisca un elenco di contatti, e che quindi permetta l’inserimento di nuovi contatti attraverso uno screen chiamato CreateNewContact, si va nelle proprietà del progetto e attraverso la scheda Access Control si definisce la modalità di autenticazione, come rappresentato in figura:

DelSole_LightSwitch3_3

Dalla figura si vede anche un esempio di definizione di una regola, il cui nome va a rappresentare idealmente un metodo (CreateNewContact_Permission). DisplayName e Description descrivono in modo più compiuto la regola. Poiché la regola viene applicata all’applicazione già dalla fase di debug (e le applicazioni LightSwitch, quando lanciate dall’IDE, sono esclusivamente sotto debugger) è possibile garantire i permessi previsti dalla regola, in deroga alla regola stessa, affinché sia possibile testare il corretto funzionamento della risorsa soggetta a permesso (casella Granted for debug). La regola viene definita tramite codice. Supponendo di voler scrivere una regola che consenta solo agli utenti autenticati di poter aggiungere un nuovo elemento al database mediante apposita maschera, si va nel designer dello screen di interesse e nel menu a tendina denominato Write Code si seleziona il metodo appropriato nella categoria Security Methods. Il nome dei metodi relativi alla security iniziano generalmente con CanRun. Il seguente codice dimostrativo permette solo agli utenti ai quali siano stati attribuiti i permessi stabiliti dalla precedente regola di creare un’istanza dello screen che consente l’aggiunta di elementi:

DelSole_LightSwitch3_4

Nel momento in cui vengono specificate delle regole, quando viene eseguito il deploy dell’applicazione, secondo le modalità indicate nella precedente sezione, viene richiesto di specificare un utente che sia amministratore dell’applicazione. Questo perché successivamente al deploy, l’applicazione LightSwitch includerà degli Screen di amministrazione. In particolare, il primo, chiamato Roles, permette di specificare ruoli di utenti che accederanno al programma e, soprattutto, consente di specificare quali regole debbano essere garantite per lo specifico Role. Nella seguente figura viene creato un ruolo chiamato User, che avrà la possibilità di creare nuovi elementi grazie alla permission garantita relativamente alla regola che abbiamo definito precedentemente:

DelSole_LightSwitch3_5

L’altro screen di amministrazione si chiama Users e permette di assegnare gli utenti interessati dall’autenticazione ai vari ruoli, in modo che ciascun utente abbia specifici permessi:

DelSole_LightSwitch3_6

Il sistema di autenticazione nelle applicazioni LightSwitch è basato su ASP.NET. La cosa veramente interessante è che si possono definire regole di autenticazione anche molto complesse con pochi passaggi e dotare l’applicazione di comode schermate di amministrazione senza dover scrivere una sola riga di codice.