Articolo originale pubblicato venerdì 7 dicembre 2012

Un ottimo miglioramento apportato nel mondo dei BCS in SharePoint 2013 consiste nel fatto che SharePoint può ora servirsi degli OData nelle applicazioni BDC (Catalogo dati business). Ci sono un paio di problemi che ho dovuto affrontare di recente in questo processo, e ho pensato di parlarne qui, in caso qualcuno avesse incontrato problemi simili. Per iniziare, consiglio di leggere questo documento, che spiega le basi delle creazione di un'applicazione per OData: http://msdn.microsoft.com/en-us/library/sharepoint/jj163967.aspx. L'aspetto principale da considerare è che NON è possibile creare un'applicazione BDC in SharePoint Designer che si collega a una fonte OData; per farlo è necessario creare un tipo di contenuto esterno usando uno strumento come Visual Studio.

Il documento che ho linkato sopra rappresenta una guida attraverso il processo di creazione di un tipo di contenuto esterno. Mostra inoltre l'utilizzo dei tipi di contenuto esterno in un'app di SharePoint e la relativa distribuzione, ma NON indica cosa fare per aggiungerlo al catalogo BDC e utilizzarlo in molte raccolte siti. Ed ecco che entra in gioco questo post. Per prima cosa, è importante capire che quando si segue il processo descritto nell'articolo, viene creato un tipo di contenuto esterno per ciascuna entità (ad esempio, una tabella). È importante comprendere questo aspetto perché nel file del tipo di contenuto esterno sarà usato un nome condiviso, che impedisce di caricare più di un file nel catalogo BDC. Ecco cosa fare per usare ciascuna di queste entità in SharePoint:

  1. Fare clic con il pulsante destro del mouse sul file del tipo di contenuto esterno in Visual Studio e selezionare Apri con... selezionare quindi l'Editor XML (editor di testo). Nella parte alta del documento, nell'elemento Model, viene visualizzato un attributo Name. Questo valore deve essere univoco per ciascun tipo di contenuto esterno da caricare nel catalogo BDC, perciò è importante cambiare ciascun nome con un valore descrittivo per l'entità, ad esempio "Tabella clienti".
  2. È possibile, ma non obbligatorio, modificare il Namespace dell'elemento Entity, circa 20 righe più un basso nel documento. Ho modificato il mio per coerenza con il nome del modello, ma è solo una scelta di stile non obbligatoria.
  3. Una volta apportata la modifica e salvato il file, è possibile salvare il file .ect direttamente nel BDC. È sufficiente usare le opzioni predefinite (è un modello) e fare clic su OK.
  4. Una volta importati i modelli, non dimenticare di concedere le autorizzazioni a coloro che ne hanno bisogno, altrimenti non ha senso.

Un'ultima cosa da notare è che gli endpoint dei metadati OData su elementi come database SQL, Azure Table Storage, ecc. non sono già pronti Fortunatamente, aggiungerli per SQL è abbastanza semplice. In poche parole, si deve:

  1. Creare un'applicazione Web ASP.NET vuota
  2. Aggiungere un Entity Data Model ADO.NET
  3. Aggiungere un servizio dati WCF
  4. Nel servizio dati WCF è necessario configurare il "Tipo" nel costruttore della classe; questa operazione potrebbe risultare un po' ambigua. È necessario cercare un file (che dovrebbe trovarsi nella cartella App_Code) il cui nome è qualcosa come myDataConnection.Context.tt. Espandendolo, dovrebbe apparire la classe myDataConnection.Context.cs. Se si apre la classe si visualizzano le due informazioni di cui abbiamo bisogno per il servizio dati WCF: 1) il nome della classe, che useremo come "Tipo" per il costruttore della classe del servizio dati WCF. 2) I nomi delle entità che supporta, implementate come get; set; properties. I nomi delle entità saranno necessari anche nel servizio dati WCF poiché dovrà essere creato almeno un "SetEntitySetAccessRules" per ciascuna entità da esporre. Ciò è spiegato in maggior dettaglio nei commenti quando si aggiunge un servizio dati WCF. Ecco dove andare a trovare in nome dell'entità quando si crea una di queste regole.

 

Questo è un post di blog localizzato. L'articolo originale è disponibile in Using OData and ECTs in SharePoint 2013