Walkthrough: Creating and Accessing a WCF Data Service in Visual Studio
Data di pubblicazione: aprile 2016
In questa procedura dettagliata viene illustrato come creare un semplice servizio WCF Data Service incluso in un'applicazione Web ASP.NET e come accedervi da un'applicazione Windows Form.
In questa procedura dettagliata vengono illustrate le seguenti operazioni:
Creare un'applicazione Web per ospitare un servizio WCF Data Service.
Creazione di un modello Entity Data Model che rappresenta la tabella Customers nel database Northwind.
Creare un oggetto WCF Data Service.
Creare un'applicazione client e aggiungere un riferimento al servizio WCF Data Service.
Abilitazione del data binding al servizio e generazione dell'interfaccia utente.
Aggiunta facoltativa di funzionalità di filtraggio all'applicazione.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
Il database di esempio Northwind.
Se questo database non è presente nel computer di sviluppo, è possibile scaricarlo dall'Area download Microsoft. Per istruzioni, vedere Download dei database di esempio.
Creazione del servizio
Per creare un servizio WCF Data Service, è necessario aggiungere un progetto Web, creare un modello Entity Data Model, quindi creare il servizio dal modello.
Nel primo passaggio, verrà aggiunto un progetto Web in cui includere il servizio.
Nota
Nomi o percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzazione dell'IDE.
Per creare il progetto Web
Nella barra dei menu scegliere File, Nuovo, Progetto.
Nella finestra di dialogo Nuovo progetto espandere i nodi Visual Basic o Visual C# e Web, quindi scegliere il modello Applicazione Web ASP.NET.
Nella casella di testo Nome immettere NorthwindWeb, quindi scegliere OK.
Nella finestra di dialogo Nuovo progetto ASP.NET, nell'elenco Seleziona modello scegliere Vuoto e quindi fare clic su OK.
In questo passaggio, verrà creato un modello Entity Data Model che rappresenta la tabella Customers nel database Northwind.
Per creare il modello Entity Data Model
Nella barra dei menu scegliere Progetto, Aggiungi nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento scegliere il nodo Dati, quindi scegliere la voce ADO.NET Entity Data Model.
Nella casella di testo Nome immettere
NorthwindModel
, quindi scegliere il pulsante Aggiungi.Verrà visualizzata la procedura guidata Entity Data Model.
Nella pagina Scegli contenuto Model della procedura guidata Entity Data Model scegliere l'elemento Entity Framework Designer da database, quindi fare clic sul pulsante Avanti.
Nella pagina Seleziona connessione dati, eseguire una delle operazioni seguenti:
Nell'elenco a discesa scegliere una connessione dati al database di esempio Northwind, se disponibile.
-oppure-
Scegliere il pulsante Nuova connessione per configurare una nuova connessione dati. Per altre informazioni, vedere Procedura: Creare connessioni a database di SQL Server.
Se il database richiede una password, scegliere il pulsante di opzione Sì, includi i dati sensibili nella stringa di connessione, quindi scegliere Avanti.
Nota
Se viene visualizzata una finestra di dialogo, scegliere Sì per salvare il file nel progetto.
Nella pagina Scegli versione elemento scegliere il pulsante di opzione Entity Framework 5.0 e quindi fare clic su Avanti.
Nota
Per usare l'ultima versione di Entity Framework 6 con i servizi WCF, sarà necessario installare il pacchetto NuGet WCF Data Services Entity Framework Provider. Vedere Using WCF Data Services 5.6.0 with Entity Framework 6+.
Nella pagina Seleziona oggetti di database espandere il nodo Tabelle, selezionare la casella di controllo Clienti, quindi scegliere Fine.
Viene visualizzato il diagramma del modello di entità e viene aggiunto un file NorthwindModel.edmx al progetto.
In questo passaggio, verrà creato e verificato il servizio dati.
Per creare il servizio dati
Nella barra dei menu scegliere Progetto, Aggiungi nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento scegliere il nodo Web, quindi scegliere la voce WCF Data Service 5.6.
Nella casella di testo Nome immettere
NorthwindCustomers
, quindi scegliere il pulsante Aggiungi.Il file NorthwindCustomers.svc verrà visualizzato nell'editor di codice.
Nell'editor di codice, individuare il primo commento
TODO:
e sostituire il codice con il seguente:public class NorthwindCustomers : DataService<northwindEntities>
Inherits DataService(Of northwindEntities)
Sostituire i commenti nel gestore eventi
InitializeService
con il codice seguente:config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetEntitySetAccessRule("*", EntitySetRights.All)
Per eseguire il servizio, nella barra dei menu scegliere Debug, Avvia senza eseguire debug. Verrà aperta una finestra del browser nella quale sarà visualizzato l'XML Schema per il servizio.
Nella barra Indirizzo immettere
Customers
alla fine dell'URL per NorthwindCustomers.svc, quindi premere INVIO.Verrà visualizzata una rappresentazione XML dei dati della tabella Customers.
Nota
In alcuni casi, Internet Explorer interpreterà erroneamente i dati come feed RSS. È necessario assicurarsi che l'opzione per visualizzare feed RSS sia disabilitata. Per altre informazioni, vedere Troubleshooting Service References.
Chiudere la finestra del browser.
Nei passaggi successivi, verrà creata un'applicazione client Windows Form che consente di usare il servizio.
Creazione dell'applicazione client
Per creare l'applicazione client, sarà necessario aggiungere un secondo progetto, aggiungere un riferimento al servizio per il progetto, configurare un'origine dati e creare un'interfaccia utente per visualizzare i dati del servizio.
Nel primo passaggio, alla soluzione verrà aggiunto un progetto Windows Form che sarà impostato come progetto di avvio.
Per creare l'applicazione client
Nella barra dei menu scegliere File, Aggiungi, Nuovo progetto.
Nella finestra di dialogo Nuovo progetto espandere il nodo Visual Basic o Visual C# e il nodo Windows, quindi scegliere Applicazione Windows Form.
Nella casella di testo Nome immettere
NorthwindClient
, quindi scegliere OK.In Esplora soluzioni scegliere il nodo del progetto NorthwindClient.
Nella barra dei menu scegliere Progetto, Imposta come progetto di avvio.
In questo passaggio, verrà aggiunto un riferimento al servizio WCF Data Service nel progetto Web.
Per aggiungere un riferimento al servizio
Nella barra dei menu scegliere Progetto, Aggiungi riferimento al servizio.
Nella finestra di dialogo Aggiungi riferimento al servizio scegliere il pulsante Individua.
L'URL per il servizio NorthwindCustomers verrà visualizzato nel campo Indirizzo.
Scegliere OK per aggiungere il riferimento al servizio.
In questo passaggio, verrà configurata un'origine dati per consentire il data binding al servizio.
Per abilitare il data binding al servizio
Nella barra dei menu scegliere Visualizza, Altre finestre, Origini dati.
Nella finestra Origini dati scegliere il pulsante Aggiungi nuova origine dati.
Nella pagina Seleziona un tipo di origine dati di Configurazione guidata origine dati, scegliere Oggetto, quindi Avanti.
Nella pagina Selezionare gli oggetti dati espandere il nodo NorthwindClient e il nodo NorthwindClient.ServiceReference1.
Selezionare la casella di controllo Customer, quindi scegliere Fine.
In questo passaggio, verrà creata l'interfaccia utente che consente di visualizzare i dati del servizio.
Per creare l'interfaccia utente
Nella finestra Origini dati aprire il menu di scelta rapida per il nodo Customers e scegliere Copia.
Nella finestra di progettazione form Form1.vb o Form1.cs aprire il menu di scelta rapida e scegliere Incolla.
Al form vengono aggiunti un controllo DataGridView, un componente BindingSource e un componente BindingNavigator.
Scegliere il controllo CustomersDataGridView e, nella finestra Proprietà, impostare la proprietà Ancora su Riempimento.
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Form1 e scegliere Visualizza codice per aprire l'editor di codice, quindi aggiungere la seguente istruzione imports o using all'inizio del file:
Imports NorthwindClient.ServiceReference1
using NorthwindClient.ServiceReference1;
Aggiungere il codice seguente al gestore eventi
Form1_Load
:Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim proxy As New NorthwindEntities _ (New Uri("https://localhost:53161/NorthwindCustomers.svc/")) Me.CustomersBindingSource.DataSource = proxy.Customers End Sub
private void Form1_Load(object sender, EventArgs e) { NorthwindEntities proxy = new NorthwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc/")); this.CustomersBindingSource.DataSource = proxy.Customers; }
In Esplora soluzioni aprire il menu di scelta rapida per il file NorthwindCustomers.svc e scegliere Visualizza nel browser. Verrà aperto Internet Explorer e verrà visualizzato l'XML Schema per il servizio.
Copiare l'URL dalla barra degli indirizzi di Internet Explorer.
Nel codice aggiunto nel passaggio 4, selezionare
https://localhost:53161/NorthwindCustomers.svc/
e sostituirlo con l'URL appena copiato.Nella barra dei menu scegliere Debug, Avvia debug per eseguire l'applicazione. Verranno visualizzate le informazioni sul cliente.
A questo punto si disporrà di un'applicazione nella quale sarà visualizzato un elenco di clienti del servizio NorthwindCustomers. Se si desidera esporre altri dati tramite il servizio, è possibile modificare Entity Data Model per includere tabelle aggiuntive dal database Northwind.
Nel prossimo passaggio facoltativo, verrà illustrato come filtrare i dati restituiti dal servizio.
Aggiunta di funzionalità di filtraggio
In questo passaggio, verrà personalizzata l'applicazione per filtrare i dati in base alla città del cliente.
Per aggiungere il filtraggio in base alla città
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Form1.vb o Form1.cs e scegliere Apri.
Aggiungere al form un controllo TextBox e un controllo Button dalla Casella degli strumenti.
Aprire il menu di scelta rapida per il controllo Button e scegliere Visualizza codice, quindi aggiungere il seguente codice nel gestore eventi
Button1_Click
:Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim proxy As New northwindEntities _ (New Uri("https://localhost:53161/NorthwindCustomers.svc")) Dim city As String = TextBox1.Text If city <> "" Then Me.CustomersBindingSource.DataSource = From c In _ proxy.Customers Where c.City = city End If End Sub
private void Button1_Click(object sender, EventArgs e) { ServiceReference1.northwindModel.northwindEntities proxy = new northwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc")); string city = TextBox1.Text; if (!string.IsNullOrEmpty(city)) { this.CustomersBindingSource.DataSource = from c in proxy.Customers where c.City == city; } }
Nel codice precedente, sostituire
https://localhost:53161/NorthwindCustomers.svc
con l'URL del gestore eventiForm1_Load
.Nella barra dei menu scegliere Debug, Avvia debug per eseguire l'applicazione.
Nella casella di testo immettere London, quindi scegliere il pulsante. Verranno visualizzati solo i clienti di Londra.