Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

LightSwitch come origine dati

Oltre a utilizzare LightSwitch per creare applicazioni, è anche possibile utilizzarlo come livello intermedio per fornire dati alle altre applicazioni. Quando si pubblicano i dati dell'applicazione da LightSwitch a un server web o Windows Azure, tali dati sono esposti come servizio di apertura del protocollo dati (OData). OData fornisce uno standard per la comunicazione con i servizi di dati sul web. Molte aziende oggi utilizzano OData per lo scambio di dati tra sistemi e partner, oltre a fornire accesso ai relativi archivi dati. Poiché OData è un protocollo standard, altre applicazioni client in quasi qualsiasi piattaforma o dispositivo può accedere ai dati creati o espone tramite LightSwitch.

Un servizio di OData viene creato automaticamente per ogni origine dati dell'applicazione, con un endpoint separato per ogni origine dati. Questa funzionalità si applica sia alle tabelle definite nel database intrinseco ma anche a qualsiasi origine dati associata, ad esempio un database SQL Server, un elenco di SharePoint, o addirittura altro servizio di OData.

LightSwitch espone più endpoint OData

Qualsiasi logica di business e autorizzazioni utente definite per le entità, verrà eseguita quando si accede all'endpoint, indipendentemente dal client che accede ai servizi. Anziché scrivere la business logic e definire le autorizzazioni utente per ogni applicazione client, è possibile utilizzare LightSwitch di livello intermedio come luogo in cui centralizzare il codice.

Quando si distribuisce un'applicazione LightSwitch di configurazione a tre livelli (che ospita il livello intermedio in Internet Information Services o in Windows Azure), gli endpoint di servizi sono esposti. I nomi dei servizi corrispondono ai nomi degli origini dati. Ad esempio, la stessa applicazione in Procedura dettagliata: creazione dell'applicazione di Vision Clinic in LightSwitch espone due endpoint di servizi, perché dispone di due origini dati: il database di ApplicationData, intrinseco, e il database SQL PrescriptionContoso, associato. Se l'applicazione è stata distribuita a un sito Web denominato “www.contoso.com„, gli endpoint di servizi sono http://www.contoso.com/ApplicationData.svc e http://www.contoso.com/PrescriptionContoso.svc.

All'interno di ogni servizio, è possibile passare tutti i set di entità che vengono modellati nella finestra di progettazione dei dati. OData definisce un set di operazioni di query che è possibile eseguire sui dati mediante un set di convenzioni URI. È possibile eseguire un' interrogazione su un servizio con una richiesta di HTTP-GET e il servizio restituirà un feed con i risultati nella risposta. Ad esempio, è possibile eseguire una query sulla Visione Clinica del servizio di PrescriptionContoso con l'uri http://www.contoso.com/PrescriptionContoso.svc/Products per restituire un set di risultati che contiene tutti i record dall'entità di prodotti.

Nota Nota

Per visualizzare i dati feed da esaminare in Internet Explorer, è necessario disabilitare la casella di controllo Attiva visualizzazione di lettura feed.

Le query di OData sono case sensitive; se si specifica prodotti anziché Prodotti, la query non restituisce alcun risultato. È possibile ridefinire ulteriormente le query di OData in diversi modi. Ad esempio, è possibile utilizzare la query http://www.contoso.com/PrescriptionContoso.svc/Products(1) per restituire solo i prodotti che presentano un ProductID di 1. Per restituire tutti i prodotti della categoria Lens Care, è possibile utilizzare la query http://www.contoso.com/PrescriptionContoso.svc/Products?Category='Lens Care. Tutte le regole business o autorizzazioni che definisco in LightSwitch vengono applicate. Di conseguenza, gli utenti che desiderano eseguire le query precedenti richiedono l'autorizzazione per visualizzare i prodotti.

Analogamente, il protocollo di OData definisce una modalità standard per esplorare le relazioni tra le proprietà di navigazione. Ad esempio, è possibile utilizzare la query http://www.contoso.com/PrescriptionContoso/Products(1)/ProductRebates per trovare gli sconti per un prodotto che dispone di un ProductID di 1 nella tabella correlata di ProductRebates. OData supporta molte altre operazioni di query come OrderBy, Top, Skipe Sort.

Nella maggior parte dei casi, sarà necessario controllare chi può accedere e aggiornare i dati del servizio di OData. È possibile controllare l'accesso a un'applicazione LightSwitch utilizzando le impostazioni. LightSwitch supporta tre impostazioni di autenticazione: Nessuna, form e finestre.

Se si sceglie l'autenticazione basata su form, LightSwitch consente due modalità di autenticazione. Una modalità è un protocollo personalizzato che la finestra di dialogo di accesso utilizza,essa utilizza anche un oggetto API personalizzato per un servizio web,che consente di passare le credenziali per ottenere il cookie di autenticazione basata su form. Se una richiesta di dati è un cookie valido di autenticazione basata su form, LightSwitch risponde a una richiesta di base HTTP. Questa funzione consente ai client che non sono stati compilati in LightSwitchdi passare le credenziali ad un protocollo HTTP standard. Se si sceglie l'autenticazione di Windows, LightSwitch richiede a un utente di Windows autenticato di fornire le credenziali. Per ulteriori informazioni, vedere Procedura: abilitare l'autenticazione in un'app client Silverlight.

Qualsiasi meccanismo di autenticazione sia utilizzato, è necessario per la sicurezza a livello di trasporto su HTTPS per fornire le credenziali, i token e dati. Senza HTTPS, i form, le credenziali di base e i token di autenticazione basati sui form, sono trasportati come testo normale. L'autenticazione di Windows è più sicura, ma, senza HTTPS, tutti i dati passati tra il client e il server,saranno ancora di testo. Per ovviare a questo inconveniente, LightSwitch ha HTTPS nella pubblicazione guidata,che causa all'applicazione di richiedere una connessione protetta. Con questa impostazione abilitata, le richieste verranno reindirizzate da HTTP a HTTPS, ma è comunque necessario ottenere e configurare un certificato di HTTPS sul sito Web. Per ulteriori informazioni, vedere Considerazioni sulla sicurezza per LightSwitch.

Oltre a proteggere l'accesso all'applicazione, è inoltre possibile utilizzare la sicurezza basata sui ruoli in LightSwitch per limitare l'accesso alle entità specifiche. Ad esempio, è possibile consentire a tutti gli utenti autenticati di visualizzare l'ordine dei dati, ma solo i supervisori possono visualizzare i dati della lista del personale . Per ulteriori informazioni, vedere Procedura: abilitare l'autenticazione in un'app client Silverlight.

LightSwitch non fornisce un meccanismo diretto per nascondere o escludere i set di entità o le proprietà dell'endpoint di OData. Qualsiasi si connetta al livello dati sarà visibile nell'endpoint del servizio. È possibile controllare l'accesso alle risorse utilizzando i metodi incorporati di controllo di accesso nel codice di servizio dati. Per ulteriori informazioni, vedere Esecuzione delle attività relative ai dati tramite codice.

Nell' esempio seguente viene mostrato il codice che impedisce ad un utente di aggiornare o eliminare i dati in un'entità dei prodotti:

namespace LightSwitchApplication
{
   public partial class PrescriptionContosoService
   {
      partial void Product_CanUpdate(ref bool result)
      {
         result = false;
      }
      partial void Product_CanDelete(ref bool result)
      {
         result = false;
      }
      partial void Product_CanInsert(ref bool result)
      {
         result = false;
      }
   }
}

LightSwitch fornisce inoltre un filtro a livello di riga con il metodo EntitySet_Filter. Utilizzando questo metodo, è possibile restituire un set di record da un'entità. Nell'esempio seguente vengono restituiti solo i record cliente con un TerritoryID di 5:

private void Customers_Filter(ref Expression<Func<Customer, bool>> filter)
{
filter = e => e.TerritoryId == 5;
}

Qualsiasi applicazione che supporti OData su ogni piattaforma può utilizzare i feed di OData da LightSwitch. I metodi per connettersi a un feed di OData variano in base all'applicazione, ma in genere viene fornito solo l'endpoint del servizio LightSwitch.

La documentazione LightSwitch contiene molti esempi di applicazioni che utilizzano OData.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft