Condividi tramite


Il presente articolo è stato tradotto automaticamente.

Visual Studio LightSwitch

Creazione di applicazioni aziendali con Visual Studio LightSwitch

Robert Green

Scaricare il codice di esempio

Prendere in considerazione la spia di due persone molto sfruttati. Antonio è uno sviluppatore senior del reparto IT di una grande banca con centinaia di filiali. Dalia è il manager di un ramo. Intende ottimizzare il rilevamento delle risorse del computer. Chi ha il computer e quanti hanno avessero? Quando è stato acquistato e servito ogni macchina stampanti e fax? La quantità il ramo investire su periferiche e forniture ogni mese?

Dalia Antonio i messaggi e-mail e chiede di lui per creare un'applicazione di registrazione dei cespiti. Antonio accetta questa è necessaria e in grado di salvare la banca significative somme di denaro, ma ha già completamente dedicato ad altri progetti e non abbia la possibilità di Guida in linea di Dalia. Egli è in grado di Dalia sta per generare l'applicazione se stesso in Excel o un'altra applicazione con l'utente finale, e ciò worries lui perché probabilmente sceglierà per creare un'applicazione a livello singolo e autonoma che non può essere scalato. Ma cosa può egli fare?

L'avanzamento rapido di sei mesi. Dalia è un eroe. Ha creato proprio app e dispone di taglio computer della succursale proprio spese del 25%, aumentando al tempo stesso la produttività a causa di un utilizzo più efficiente delle risorse. Gestione banche decide che tutte le filiali dovrebbe adottare questo sistema e che i dati devono essere centralizzati. Antonio è far sparire perché questo avvenga entro la fine del mese e ora è proprio incubo per convertire l'applicazione in un formato simile a ciò che egli avrebbe creato se egli aveva avuto il tempo. Buona fortuna, Ezio!

Introduzione a Visual Studio LightSwitch

LightSwitch di Visual Studio è progettato per risolvere questo scenario tutti i comuni. LightSwitch è un nuovo prodotto della famiglia Visual Studio rivolge agli sviluppatori di tutti i livelli di competenza che desiderano creare rapidamente applicazioni di business incentrato sui dati per il desktop, Web e cloud. LightSwitch semplifica il processo di sviluppo perché esegue automaticamente la maggior parte del lavoro di sviluppo. Non è necessario scrivere codice per interagire con i database e non è necessario disporre manualmente le schermate. È possibile concentrarsi sulla logica di business.

Le applicazioni di LightSwitch sono basate su Silverlight. Utilizzare dimostrato n-modelli di architettura a livelli basano sul modello di visualizzazione Visualizza (MVVM), come pure noti di Microsoft.NET Framework principali, ad esempio l'Entity Framework e i servizi WCF RIA. Applicazioni LightSwitch possono essere distribuite come desktop (out browser) o applicazioni basate su browser. Applicazioni desktop possono sfruttare le risorse hardware locale e lavorare con applicazioni quali Microsoft Word ed Excel. Desktop e applicazioni basate su browser di LightSwitch possono essere ospitate su IIS e Windows Azure.

Gli sviluppatori con l'utente finale, ad esempio Dalia è rivolta principalmente per LightSwitch. Che siano gli information worker, IT professionisti, analisti aziendali e così via che alcuni lo sviluppo come parte del loro lavoro. Non sono sviluppatori professionisti e che desiderano una buon su-rampa per lo sviluppo, incorporato idraulici che gestisce i requisiti dell'applicazione più comuni e le opzioni di distribuzione semplice e flessibile. In breve, che desiderano realizzare rapidamente applicazioni integrate, incentrate sui dati che possono essere facilmente distribuite e in scala.

Gli sviluppatori di Visual Studio esistenti troveranno spesso LightSwitch un'interessante aggiunta per i set di strumenti. LightSwitch installa di Visual Studio 2010 Professional e versioni successive. Gli sviluppatori di Visual Studio possono creare applicazioni di LightSwitch da zero oppure aprire un'applicazione di LightSwitch in Visual Studio ed estenderlo. Dalia aveva utilizzato LightSwitch per generare la domanda, Ezio Impossibile aprirla e migliorarla. O Ezio potrebbe generare l'applicazione in LightSwitch in potenzialmente notevolmente meno tempo se ha iniziato da zero.

In questo articolo esaminerò quindi un'applicazione LightSwitch utilizzata per il braccio di società di costruzione del dominio corp. Contoso onnipresente La società desidera gestire i clienti e i loro progetti. You can download the sample application I’ll be discussing here: code.msdn.microsoft.com/Contoso-Construction-9f944948.

Entità

Creazione di un'applicazione di LightSwitch, dopo aver scelto se si desidera codice in Visual Basic o Visual C#, il primo passaggio consiste nel definire i dati. È possibile creare nuove tabelle o collegarsi a origini dati esterne. Se si creano tabelle partendo da zero, aggiunti al database dell'applicazione, ovvero un database SQL Server Express. Si noti che al momento di distribuire l'applicazione, è possibile scegliere qualsiasi edizione di SQL Server per ospitare i dati. Per lavorare con dati esterni, è possibile connettersi a un database esterno, ad esempio SQL Server o SQL Azure o a qualsiasi database per il quale si dispone di un provider di Entity Framework. È anche possibile connettersi a elenchi di SharePoint o i servizi WCF RIA.

L'applicazione di esempio contiene un'entità cliente (tabella), come illustrato nella nella figura 1.

The Customer Entity
(fare clic per ingrandire)

Figura 1 l'entità cliente

Per ogni proprietà di entità, è possibile definire non solo il tipo di dati, ma anche se la proprietà è obbligatorio, unique, ricercabili e visualizzato sugli schermi per impostazione predefinita. È inoltre possibile specificare la visualizzazione alternativa etichette e valori di lunghezza massime. Per le proprietà di tipo numerico e data, è possibile specificare i valori minimi e massimi.

Piuttosto rispetto a lasciare alcune proprietà come stringhe o i tipi predefiniti, è possibile utilizzare tipi di dati incorporati, noti anche come tipi di business personalizzate. Le proprietà dell'entità cliente telefono e fax utilizzano il tipo di dati del numero di telefono e la proprietà di posta elettronica utilizza il tipo di dati di indirizzo di posta elettronica. I tipi di dati incorporati forniscono la convalida e generano un errore di runtime di facile utilizzo. Non è necessario convalidare che consentono di scrivere codice in un numero di telefono o indirizzo di posta elettronica è valido. Inoltre, il tipo di dati del numero di telefono include formattazione incorporati, come illustrato nella nella figura 2.

The Built-In Phone Number Data Type Provides Validation and Formatting

Figura 2 il tipo di dati numero di telefono incorporato fornisce la convalida e formattazione

Esistono inoltre data, tipi di dati di immagine e di denaro che provengono tutti con editor incorporato, la formattazione e convalida.

Dopo aver aggiunto le proprietà a un'entità, è opportuno esaminare proprietà riepilogo dell'entità, che descrive l'entità. Inoltre, diventa un collegamento ipertestuale su schermi di ricerca.

La schermata Visualizza tutti i clienti in una griglia. Si noti che la colonna nome e cognome contiene i collegamenti ipertestuali. Quando l'utente sceglie un nome completo, LightSwitch Visualizza la schermata di dettaglio per quel cliente. Lo sviluppatore di LightSwitch non è necessario scrivere alcun codice a tale scopo. Figura 3 Mostra la schermata di ricerca clienti.

An Entity’s Summary Property Is a Hyperlink in Search Screens

Figura 3 proprietà riepilogo dell'entità è un collegamento ipertestuale nelle finestre di dialogo di ricerca

Per impostazione predefinita, LightSwitch utilizza la prima stringa di proprietà come proprietà di riepilogo dell'entità. Se non le stringhe, utilizzerà la prima proprietà non di tipo stringa. Nell'applicazione di esempio, i clienti sono persone e la prima stringa l'entità Customer è LastName. Invece di utilizzare come la proprietà di riepilogo, l'entità cliente ha una proprietà FullName. Si tratta di una proprietà calcolata. Per rendere una proprietà calcolata, controllare Viene calcolata nella finestra proprietà o fate clic su un pulsante nella parte superiore della finestra di progettazione, metodo Edit e quindi scrivere codice che segue per calcolare il valore della proprietà (si possono utilizzare Visual Basic):

Private Sub FullName_Compute(ByRef result As String)
  result = Me.LastName + ", " + Me.FirstName
End Sub

Per rendere FullName la proprietà di riepilogo, selezionare l'entità cliente e impostare la proprietà riepilogo FullName.

Proprietà calcolate non vengono memorizzate in un database. Sono state calcolate in fase di esecuzione come proprietà di un'entità. È possibile utilizzare le proprietà calcolate per concatenazioni semplici di nomi e indirizzi e anche per i valori calcolati quali ricavi per l'anno o il valore totale delle fatture in sospeso.

Per creare una relazione tra entità, fare clic sul pulsante di relazione nella finestra di progettazione dei dati. Nella finestra di dialogo Aggiungi nuova relazione, selezionare le due entità, il tipo di relazione e il comportamento dell'eliminazione. L'entità cliente ha relazioni uno-a-molti definite con l'entità di progetto e appuntamento. Pertanto, il cliente ha una proprietà di progetti e una proprietà di appuntamenti. Queste due proprietà sono insiemi.

Non è possibile solo creare relazioni tra entità in una singola origine dati, ma anche tra entità in più origini dati. LightSwitch consente di gestire il recupero di tutti i dati, di presentare agli utenti e salvare le modifiche. La possibilità di creare relazioni federate è una funzionalità unico e interessante di LightSwitch.

Regole di convalida personalizzate

Oltre a utilizzare le convalide fornite dai tipi incorporati business, è possibile aggiungere il codice della logica aziendale personalizzata, sia a livello di schermo ed entità. Codice di convalida dello schermo viene eseguito solo sul client e convalida dei dati e le proprietà dello schermo. Codice di convalida proprietà entità viene eseguito sul client primo e quindi sul livello intermedio. Gli utenti ottenere un feedback immediato e possono correggere gli errori prima di inviare dati a livello intermedio. La logica di convalida viene eseguita anche nel livello intermedio per gestire le situazioni in cui i dati vengono modificati da altri utenti. Si tratta di una procedura consigliata in n-a livello di progettazione.

Per scrivere codice di convalida per una proprietà di entità, selezionare la proprietà nella finestra di progettazione delle entità e quindi selezionare il metodo appropriato nell'elenco a discesa del pulsante scrivere codice: Address1_Validate, ad esempio (illustrato nella figura 4).

Figura 4 il metodo Address1_Validate

Private Sub Address1_Validate(results As EntityValidationResultsBuilder)
  'Warn the user if the Address is empty
  If Me.Address1 = "" Then
    results.AddPropertyResult(
      "Address should not be empty. "
& 
      "Construction project cannot begin unless an address is supplied.", 
      ValidationSeverity.Warning)
  End If
End Sub

EntityValidationResultsBuilder è un contenitore per i risultati di convalida. Può contenere errori, avvisi e informazioni di convalida. Avvisi e informazioni di convalida di presentare informazioni all'utente ma non impediscano all'utente di salvare i dati. Se l'insieme contiene gli errori di convalida, l'utente non è possibile salvare i dati.

Nell'applicazione di esempio, l'utente viene avvisato se l'indirizzo è vuoto. L'utente può ancora salvare i dati. Tuttavia, il codice per convalidare il CAP (illustrato nella nella figura 5) non è come impensabili.

Figura 5 il metodo ZIP_Validate

Private Sub ZIP_Validate(results As EntityValidationResultsBuilder)
  If Me.ZIP <> "" Then
    'Enter the dash if not supplied and is 9 digits long
    If Me.ZIP.Length = 9 Then
      Me.ZIP = Me.ZIP.Substring(0, 5) + "-" + Me.ZIP.Substring(5)
    End If
    'Make sure valid zip code (5 or 5+4 format)
    If Not System.Text.RegularExpressions.Regex.IsMatch(
      Me.ZIP, "^\d{5}$|^\d{5}-\d{4}$") Then
      results.AddPropertyError(
        "Please enter a valid US ZIP code.
(ex.
98052 or 98052-1234)")
    End If
  End If
End Sub

Se il CAP non è nel formato corretto, il codice aggiunge un errore di convalida. Ciò impedirà all'utente di salvare i dati non validi. Figura 6 sono riportati i risultati di lasciare vuoto l'indirizzo e immettere un CAP valido. L'indirizzo vuoto genera un avviso e il CAP non valido genera un errore.

The Empty Address Generates a Warning While the Invalid ZIP Code Generates an Error

Figura 6 indirizzo vuoto genera un avviso durante il CAP non valido genera un errore

Schermate

Dopo aver definito le entità, generazione di un'applicazione di LightSwitch al passaggio successivo consiste nel progettare le schermate. LightSwitch include i seguenti modelli predefiniti dello schermo:

  • I dettagli dello schermo questo consente di visualizzare una singola entità e possono includere dati correlati in una griglia.
  • Schermata griglia modificabile in questo modo, la modifica di uno o più elementi in una griglia.
  • Elenco e la schermata Dettagli consente di visualizzare un insieme di elementi in un elenco. Selezione di un elemento nell'elenco vengono visualizzati i dettagli di quell'elemento.
  • Nuova schermata di dati si tratta di una schermata per la creazione di un nuovo elemento. Lo schermo è in grado di fornire anche una griglia per abilitare la possibilità di aggiungere i dati correlati nello stesso momento.
  • Schermata di dati di ricerca consente di visualizzare i dati restituiti da una query. Ogni elemento include un collegamento per visualizzare la schermata Dettagli dell'entità.

Questi modelli rappresentano un buon punto di partenza per il layout dello schermo. Per creare una schermata, è possibile destro la soluzione o il nodo di schermate in Esplora soluzioni e selezionare "Aggiungi schermo". È inoltre possibile fare clic sul pulsante schermo nella finestra di progettazione dei dati. Quando si crea una schermata, è possibile selezionare il tipo di schermo e i dati dello schermo principale. È possibile selezionare un'entità o una query basata su un'entità. È quindi possibile specificare i dati correlati che si desidera visualizzare sullo schermo.

Quando si apre una schermata di Silverlight in Visual Studio, è possibile visualizzare un'area di progettazione e XAML. Quando si apre una schermata in LightSwitch, vedere la finestra di progettazione dello schermo, come illustrato nella nella figura 7.

The Screen Designer Shows a Hierarchical View of the Controls on a Screen

Figura 7 la finestra di progettazione dello schermo Mostra una vista gerarchica dei controlli su schermo

Sulla sinistra è presente nell'elenco dei membri dello schermo. Questo file contiene gli elementi che sono disponibili sullo schermo. Include gli elementi di dati di tutte le entità incluse nella schermata. Contiene inoltre metodi quali Close, Aggiorna e Salva. Sulla destra è la struttura del contenuto dello schermo. Si tratta di una visualizzazione gerarchica dei controlli su schermo e i dati a cui è associati. È possibile aggiungere elementi di dati sullo schermo in base alle esigenze. È possibile ridisporre i controlli a schermo, nonché modificare il layout dello schermo. È possibile, ad esempio, l'elenco di clienti a sinistra e a ordini a destra piuttosto che i clienti nella parte superiore e orders sotto. È inoltre possibile impostare diverse proprietà dei controlli, ad esempio il testo dell'etichetta, se viene visualizzata un'etichetta, allineamento orizzontale e verticale, altezza e larghezza.

Dopo aver creato almeno una schermata, è possibile premere F5 ed eseguire l'applicazione. La prima schermata che creerete è la schermata dell'applicazione predefinito. È possibile modificare questa impostazione della scheda di navigazione della finestra di progettazione dell'applicazione. Applicazioni LightSwitch automaticamente includono una shell di applicazione, un menu di navigazione, una barra multifunzione, un'area a schede per le schermate e l'associazione dati, come illustrato nella Figura 8.

LightSwitch Applications Automatically Include an Application Shell, Menu and Ribbon

Figura 8 LightSwitch applicazioni includono automaticamente un'applicazione Shell, Menu e barra multifunzione

L'applicazione offre inoltre il controllo dirty incorporata e la gestione della concorrenza. LightSwitch gestisce tutti plumbing di una tipica applicazione incentrata sui dati in modo da evitare di dover scrivere tale codice.

I modelli di LightSwitch schermo forniscono funzionalità specifiche. Ad esempio, una schermata di ricerca contiene una griglia per visualizzare gli elementi e un pulsante per esportare tali elementi in Excel. È possibile aggiungere ulteriori elementi, se necessario. The SearchCustomers screen (shown in Figure 8) has two additional buttons: an Add Customer button in the ribbon and an Add button in the grid’s header.

Per aggiungere un pulsante della barra multifunzione, è possibile destro dello schermo sulla barra di comando nella finestra di progettazione dello schermo e fare clic sul pulsante Aggiungi. Oppure è possibile espandere la barra dei comandi dello schermo e selezionare il pulsante nuovo dall'elenco a discesa del pulsante Aggiungi, come illustrato nella nella figura 9. Per aggiungere un pulsante la griglia, utilizzare la barra dei comandi contenuti nella griglia.

The Screen Command Bar Contains the Buttons in the Application’s Ribbon

Figura 9 la barra dei comandi di schermata contiene i pulsanti della barra multifunzione dell'applicazione

Quando si aggiunge un pulsante, LightSwitch richiede il nome del metodo che viene eseguita quando l'utente fa clic sul pulsante. Potete destro del mouse sul pulsante e selezionare Modifica codice da eseguire e quindi scrivere il codice viene eseguito. Entrambi i pulsanti Aggiungi sullo schermo SearchCustomers chiamano il metodo gridAddAndEditNew_Execute, che chiama il metodo ShowCreateNewCustomer. Si tratta di un metodo incorporato LightSwitch che viene visualizzata la schermata di CreateNewCustomer, come illustrato di seguito:

Private Sub gridAddAndEditNew_Execute()
  Me.Application.ShowCreateNewCustomer()
End Sub

Come entità, schermi hanno un numero di eventi è possibile gestire, come illustrato nella nella figura 10.

Access Screen Event Handlers via the Write Code Button

Figura 10 i gestori di eventi schermata di accesso tramite il pulsante del codice di scrittura

L'esecuzione si verifica quando viene effettuata una richiesta per visualizzare una schermata. Il gestore di eventi di esecuzione include un gestiti argomento. Se è impostato su true, è possibile impedire la schermata di continuare. Appena prima del recupero di dati visualizzati sullo schermo, si verifica l'evento InitializeDataWorkspace. Si tratta di un'ottima soluzione per il codice di inizializzazione dello schermo. Gli altri eventi sono di chiara interpretazione. Si potrebbe pensare che gli eventi, ad esempio Esegui o il salvataggio possono essere utilizzate per inserire il codice verifica se l'utente può eseguire azioni, ad esempio aprire la schermata o salvano i dati. Tuttavia, è consigliabile inserire tale codice nei metodi di controllo di accesso appropriati, ad esempio CanRun a livello di schermo o CanUpdate a livello di entità. Controllo di accesso è una grande funzionalità delle applicazioni di LightSwitch che esamineremo più avanti.

Sviluppo di LightSwitch è progettato per essere incrementandone. Gli sviluppatori possano modificare le schermate in fase di esecuzione durante l'esecuzione in modalità Debug facendo clic sul pulsante Struttura schermo nella barra multifunzione. Consente di passare alla modalità di personalizzazione della schermata, come illustrato nella Figura 11.

Users Can Edit Screens at Run Time and View Their Changes Immediately
(fare clic per ingrandire)

Figura 11 gli utenti possono modificare le schermate in fase di esecuzione e visualizzare immediatamente le modifiche

Gli utenti possono ridisporre i controlli e impostare le proprietà, fare clic su Salva e vedere immediatamente le modifiche apportate.

Sapendo che un'applicazione di LightSwitch è un'applicazione Silverlight, ci si potrebbe chiedere, "dove si trova il codice XAML?" Degli obiettivi principali di LightSwitch consiste nel semplificare notevolmente la creazione di applicazioni. Pertanto non espone XAML in fase di progettazione. Piuttosto, LightSwitch genera XAML in fase di esecuzione in base alla progettazione dello schermo. Ciò rende notevolmente più semplice per gli utenti di creare applicazioni. Se sei un esperto sviluppatore di Silverlight, si potrebbe pensare che questo limita inoltre la possibilità di generare le schermate che si desidera ricevere.

Ciò può essere true se solo si utilizza Visual Studio LightSwitch, si dispone di una flessibilità decisamente maggiore se si dispone di LightSwitch di Visual Studio 2010 Professional o superiore. È possibile creare controlli utente Silverlight e aggiungerli alle schermate LightSwitch, nonché utilizzare controlli che non sono disponibili in LightSwitch. È possibile creare controlli compositi o anche intere schermate che includono logica personalizzata, oltre alle entità di schermo è possibile associare facilmente questi controlli utente.

Un altro modo per aggiungere funzionalità a un'applicazione di LightSwitch consiste nell'utilizzare un'estensione. There are six types of LightSwitch extensions: controls, screen templates, business types, shells (application look and feel), themes (colors and brushes for a shell) and custom data sources. È necessario Visual Studio 2010 Professional o versione successiva e il 2010 SDK di Visual Studio per creare un'estensione di LightSwitch, ma chiunque può utilizzare nel proprio progetto LightSwitch, indipendentemente dall'edizione installata.

Le estensioni vengono distribuite tramite pacchetti VSIX. Se si desidera rendere ampiamente disponibile un'estensione, è possibile caricarlo nella raccolta di Visual Studio. Verrà quindi visualizzato in Extension Manager all'interno di LightSwitch. Dopo aver installato un'estensione, è possibile attivare nella scheda estensioni del progettista dell'applicazione. L'applicazione di esempio di costruzione di Contoso utilizza un'estensione di controllo mappa Bing per mostrare la posizione dei clienti, come illustrato nella nella figura 12.

You Can Use LightSwitch Extensions, Such as the Bing Map Control Extension, to Provide Additional Functionality in Your Applications

Figura 12 È possibile utilizzare le estensioni di LightSwitch, ad esempio l'estensione di controllo di Bing mappa, per offrire funzionalità aggiuntive nelle applicazioni

Query

Tutti gli screening basati su query. La query per una schermata Dettagli restituisce una riga. La query per un elenco e i dettagli dello schermo restituisce il padre di una riga e tutte le righe figlio correlate. La query per una schermata di ricerca o una griglia modificabile restituirà tutte le righe per impostazione predefinita. Si noti che le query che restituiscono un numero di righe non letteralmente restituiscano tutte le righe alla volta. Per impostazione predefinita, le query supportano il paging. Per configurare il paging, selezionare la query nella schermata o in Progettazione Query e modificare le proprietà correlate al paging.

È possibile filtrare i dati restituiti da una query di schermo che restituisce un insieme di entità. A tale scopo, fare clic su Modifica Query nella finestra di progettazione dello schermo. Nella finestra di progettazione Query, è possibile quindi aggiungere Where e ordinare le clausole. È inoltre possibile aggiungere parametri alle query.

Le query di schermo sono specifiche per un determinato screen. Benché sia veloce e facile da modificare query della schermata, una pratica migliore consiste nel creare una query riutilizzabile. È possibile, ad esempio, i clienti ordinati in base al nome della società nella schermata di ricerca del cliente. Tuttavia, i clienti potrebbero apparire anche in un selettore modale finestra sullo schermo in cui è possibile creare nuovi appuntamenti e in una casella di testo di completamento automatico sullo schermo vengono visualizzati i clienti e i propri progetti. Anziché aggiungere lo stesso tipo a tre query su tre schermi diversi, è possibile creare una query e utilizzare nelle tre schermate.

Per creare una query, è possibile pulsante destro del mouse su un'entità nella finestra di progettazione di soluzioni e selezionare Aggiungi Query. È possibile denominare la query e quindi aggiungere il filtro, ordinamento e i parametri. La query CurrentAppointments, illustrata nella Figura 13, restituisce tutti gli appuntamenti, ordinati per ora di inizio, in cui l'ora iniziale è adesso o in un secondo momento.

You Can Filter the Results of a Query and Specify the Sort Order

Figura 13 È possibile filtrare i risultati di una Query e specificare il tipo di ordinamento

Dopo avere creato una query, può utilizzare come base per le schermate. Anche utilizzarlo come base per altre query. Ad esempio, nell'applicazione di esempio, la query CurrentAppointmentsByEmployee inizia con la query CurrentAppointments e quindi viene filtrato i risultati da restituire solo gli appuntamenti per un determinato dipendente.

Controllo dell'accesso

Controllo dell'accesso offre la possibilità di controllare in un'applicazione possono richiedere azioni gli utenti. LightSwitch utilizza i controlli server ASP.NET provider di appartenenza e ruolo per abilitare l'autenticazione di Windows e moduli. È possibile autorizzare gli utenti di eseguire operazioni tramite la creazione di autorizzazioni, assegnandoli a utenti e quindi archivia codice se l'utente dispone di una particolare autorizzazione.

Per impostazione predefinita, tutti gli utenti possono eseguire tutte le azioni in un'applicazione di LightSwitch. Per modificare questa impostazione, aprire la finestra di progettazione di applicazioni e selezionare la scheda controllo d'accesso, come illustrato nella Figura 14. Selezionare quindi l'autenticazione di Windows o moduli. L'autorizzazione SecurityAdministration incorporato controlla se un utente può visualizzare le schermate di amministrazione della protezione in fase di esecuzione. È possibile utilizzare le schermate per assegnare autorizzazioni agli utenti e se necessario, aggiungere gli utenti. Se lo si desidera, è possibile creare ulteriori autorizzazioni. Durante lo sviluppo, è possibile disattivare le autorizzazioni deselezionando consentito per il debug. Ciò consente di testare l'applicazione utilizzando varie combinazioni di autorizzazioni.

Specify Windows or Forms Authentication and Then Specify Additional Permissions

Figura 14 specificare Windows o autenticazione basata su form e impostare autorizzazioni aggiuntive

È possibile controllare le autorizzazioni nel codice a livello di entità, schermo e query. Entità forniscono metodi CanDelete, CanInsert, proprietà CanRead e CanUpdate che eseguito sul server. È possibile accedere a questi dall'elenco a discesa pulsante scrivere codice nella finestra di progettazione dei dati. È possibile controllare le autorizzazioni appropriate e restituisce false se l'utente non è autorizzato a eseguire l'azione associata. Ad esempio, nell'applicazione di esempio, solo gli amministratori possono modificare i dati dei dipendenti. Il codice riportato di seguito garantisce questo:

Private Sub Employees_CanDelete(ByRef result As Boolean)
  result = Me.Application.User.HasPermission(
    Permissions.SecurityAdministration)
End Sub
Private Sub Employees_CanInsert(ByRef result As Boolean)
  result = Me.Application.User.HasPermission(
    Permissions.SecurityAdministration)
End Sub
Private Sub Employees_CanUpdate(ByRef result As Boolean)
  result = Me.Application.User.HasPermission(
    Permissions.SecurityAdministration)
End Sub

Schermate forniscono un metodo CanRun, che viene eseguito sul client. È possibile utilizzare questo metodo per non aprire uno schermo se l'utente non può visualizzare o modificare i dati della schermata. Il codice riportato di seguito garantisce che solo gli amministratori possono visualizzare la schermata di ManageEmployees:

Private Sub ManageEmployees_CanRun(ByRef result As Boolean)
  result = Me.User.HasPermission(Permissions.SecurityAdministration)
End Sub

Durante il processo di distribuzione, si specificherà il nome utente e la password dell'amministratore. In fase di esecuzione, l'amministratore crea i ruoli e li assegna gli utenti. L'amministratore assegna quindi le autorizzazioni ai ruoli.

Distribuzione

LightSwitch sono disponibili tre modelli per la distribuzione di applicazioni: applicazione desktop a due livelli, a tre livelli di applicazioni desktop e applicazioni Web a tre livelli.

Un'applicazione desktop a due livelli viene eseguita interamente sul computer dell'utente finale come un'applicazione Silverlight in uscita del browser. L'interfaccia utente e i componenti di livello intermedio dell'applicazione eseguita localmente. L'applicazione si connette al database direttamente in modalità tipica client-server. Ciò evita la necessità di un server Web. L'applicazione ha accesso alle risorse locali, ad esempio COM o file locali. Supporto COM fornisce la possibilità di controllare le applicazioni, ad esempio Word o Excel. Si noti che le applicazioni desktop richiedano Windows.

Un'applicazione desktop a tre livelli viene eseguito come un'applicazione Silverlight in uscita del browser ospitata su IIS o Windows Azure. L'interfaccia utente viene eseguito sul computer dell'utente finale, mentre i componenti di livello intermedio vengono eseguite sul server host.

Un'applicazione Web a tre livelli viene eseguito come un'applicazione Silverlight nel browser ospitata su IIS o Windows Azure. L'interfaccia utente è basata su browser e i componenti di livello intermedio eseguiti sul server host. Le applicazioni Web non dispongono dell'accesso a risorse locali o COM, ma offrono la portata della maggior parte dei tra più browser e sistemi operativi Windows e Mac.

Per distribuire un'applicazione, è necessario pubblicarlo. Per pubblicare l'applicazione, fare clic sul pulsante pubblica nella scheda tipo di applicazione in Progettazione applicazioni, come illustrato nella Figura 15.

Specify Whether the Application Is a Two-Tier Desktop Application, Three-Tier Desktop  Application or Three-Tier Web Application

Figura 15 specificare se l'applicazione è un'applicazione Desktop a due livelli, applicazione Desktop a tre livelli o applicazione Web a tre livelli

LightSwitch pubblicazione applicazione guidata quindi guiderà il processo di pubblicazione.

Se si pubblica l'applicazione come applicazione desktop a due livelli, si creerà un pacchetto ClickOnce. Si creerà un database di SQL Server che contiene tutte le tabelle locali che è stato creato, come pure le tabelle di sistema. È inoltre possibile specificare dove si trova il database. Se l'applicazione viene utilizzato da una sola persona, è possibile individuare il database sul computer dell'utente e utilizzare SQL Server Express. Se l'applicazione verrà utilizzato da più persone, che conterrà probabilmente il database su un computer che esegue SQL Server.

Se si pubblica l'applicazione come desktop a tre livelli o applicazione Web ospitata su IIS, è possibile pubblicare direttamente in IIS se il server è in esecuzione il servizio Strumento di distribuzione Web Microsoft. In caso contrario, è possibile creare un pacchetto di MSDeploy e importare manualmente in IIS. Se si pubblica l'applicazione per Windows Azure, la procedura guidata richiederà per l'ID di abbonamento di account, gli account di servizio e di archiviazione che si utilizzerà e un certificato SSL da utilizzare. Per ulteriori informazioni sulla distribuzione e la pubblicazione di Windows Azure, vedere la sezione relativa alla distribuzione di LightSwitch Developer Center su MSDN (bit.ly/jiYov5).

Il modo più semplice

Disposizione testo, i principali destinatari di LightSwitch siano agli sviluppatori con l'utente finale. Si tratta di persone che creano applicazioni per il supporto di funzioni aziendali. Non sono sviluppatori professionisti. Che siano IT Pro, gli information worker o altre persone eseguire alcuni sviluppo come parte del loro lavoro. Sono spesso hanno l'esigenza di creare applicazioni che gestiscono "elementi", ad esempio risorse del computer di reparto o flotte Auto. Potrebbe essere necessario un'applicazione per gestire un evento, ad esempio un inaugurazione trimestrali.

LightSwitch fornisce agli utenti con un buon su-rampa per lo sviluppo. Crea automaticamente il "idraulico" per eseguire attività comuni di applicazione, ad esempio l'utilizzo dei dati, generazione di schermate, esportazione dei dati in Excel e così via. Fornisce inoltre un modello di distribuzione semplice e flessibile.

LightSwitch è il modo più semplice per creare applicazioni di dati per il desktop e la nuvola. Dalias del mondo possono creare le applicazioni necessarie e quindi girare a Antonios del mondo per essere estesa e distribuito. Per ulteriori informazioni su come creare applicazioni con LightSwitch, visitare la sezione LightSwitch Developer Center su MSDN (msdn.com/lightswitch).

Robert Green è un technical evangelist nel gruppo di piattaforma per sviluppatori ed Evangelism in Microsoft. Si tratta di suo secondo stint presso Microsoft. Dal 2005 al 2010, egli è stato consulente senior in MCW Technologies incentrate sulla formazione degli sviluppatori. Ha creato ed è coautore di un numero di Visual Studio e.NET corsi di formazione per AppDev (appdev.com). Prima che, nel suo primo stint di Microsoft, ha ricoperto in marketing Developer Tools e quindi community lead del team di Visual Basic.

Grazie all'esperto tecnico riportato di seguito per la revisione di questo articolo: Beth Massi