Procedura dettagliata: creazione e accesso a un servizio dati WCF in Visual Studio

In questa procedura dettagliata viene illustrato come creare un semplice servizio WCF Data Services 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 Services.

  • Creazione di un modello Entity Data Model che rappresenta la tabella Customers nel database Northwind.

  • Creare un oggetto WCF Data Services.

  • Creare un'applicazione client e aggiungere un riferimento al servizio WCF Data Services.

  • Abilitazione dell'associazione dati 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:

Creazione del servizio

Per creare un servizio WCF Data Services, è 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]

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Per creare il progetto Web

  1. Scegliere Nuovo progetto dal menu File di Visual Studio.

  2. Nella finestra di dialogo Nuovo progetto, espandere il nodo Visual C# o Visual Basic e fare clic Webquindi selezionare Applicazione Web Forms ASP.NET.

  3. Nel campo Nome digitare NorthwindWeb, quindi scegliere OK per creare il progetto.

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

  1. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  2. Nella finestra di dialogo Aggiungi nuovo elemento, Datiquindi selezionare ADO.NET Entity Data Model.

  3. Nel campo Nome, digitare NorthwindModel, quindi scegliere Aggiungi.

    Viene visualizzata la procedura guidata Entity Data Model.

  4. Nella procedura guidata Entity Data Model, selezionare Genera da database, quindi scegliere Avanti.

  5. Nella pagina Seleziona connessione dati, effettuare una delle seguenti operazioni:

    • Selezionare la connessione dati al database di esempio Northwind nell'elenco a discesa, se presente.

      In alternativa

    • Per configurare una nuova connessione dati, scegliere Nuova connessione.Per ulteriori informazioni, vedere How to: Create Connections to SQL Server Databases.

  6. Se il database richiede una password, selezionare l'opzione che consente di includere dati riservati, quindi scegliere Avanti.

    [!NOTA]

    Se viene visualizzata una finestra di dialogo, scegliere per salvare il file nel progetto.

  7. Nella pagina Seleziona oggetti di database, espandere il nodo Tabelle, selezionare la casella di controllo accanto a Customers, 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

  1. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  2. Nella finestra di dialogo Aggiungi nuovo elemento, Web quindi selezionare Servizio dati WCF.

  3. Nel campo Nome, digitare NorthwindCustomers, quindi scegliere Aggiungi.

    Il file NorthwindCustomers.svc verrà visualizzato nell'editor di codice.

  4. Nell'editor di codice, individuare il primo commento TODO: e sostituire il codice con il seguente:

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    

    [!NOTA]

    A seconda della versione del database Northwind utilizzata, è possibile che sia necessario modificare "NORTHWIND" in "NORTHWND".Per individuare il nome corretto è possibile utilizzare anche IntelliSense.

  5. Sostituire i commenti nel gestore eventi InitializeService con il codice seguente:

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. Premere CTRL+F5 per eseguire il servizio.Verrà aperta una finestra del browser e visualizzato lo schema XML per il servizio.

  7. Nella barra Indirizzo, digitare 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 ulteriori informazioni, vedere Risoluzione dei problemi relativi ai riferimenti al servizio.

  8. Chiudere la finestra del browser.

Nei passaggi successivi, verrà creta un'applicazione client Windows Form che consente di utilizzare 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

  1. Dal menu File di Visual Studio, scegliere Aggiungi, quindi Nuovo progetto.

  2. Nella finestra di dialogo Nuovo progetto, espandere il nodo Visual Basic o Visual C# e fare clic su Windows, quindi selezionare Applicazione Windows Form.

  3. Nel campo Nome, digitare NorthwindClient, quindi scegliere OK per aprire il progetto.

  4. In Esplora soluzioni selezionare il progetto NorthwindClient.

  5. Scegliere Imposta come progetto di avvio dal menu Progetto.

In questo passaggio, verrà aggiunto un riferimento al servizio WCF Data Services nel progetto Web.

Per aggiungere un riferimento al servizio

  1. Scegliere Aggiungi riferimento al servizio dal menu Progetto.

  2. Nella finestra di dialogo Aggiungi riferimento a servizio fare clic sul Individua.

    L'URL per il servizio NorthwindCustomers verrà visualizzato nel campo Indirizzo.

  3. Per aggiungere il riferimento al servizio, scegliere OK.

In questo passaggio, verrà configurata un'origine dati per consentire l'associazione dati al servizio.

Per abilitare l'associazione dati al servizio

  1. Scegliere Mostra origini dati dal menu Dati.

  2. Nella finestra Origini dati fare clic su Aggiungi nuova origine dati.

  3. Nella pagina Seleziona un tipo di origine dati di Configurazione guidata origine dati, scegliere Oggetto, quindi Avanti.

  4. Nella pagina Seleziona l'oggetto da associare, espandere il nodo NorthwindClient, quindi il nodo NorthwindClient.ServiceReference1.

  5. Selezionare Customers, quindi scegliere Fine.

In questo passaggio, verrà creata l'interfaccia utente che consente di visualizzare i dati del servizio.

Per creare l'interfaccia utente

  1. Trascinare il nodo Customers dalla finestra Origini dati al form.

    Al form vengono aggiunti un controllo DataGridView, un componente BindingSource e un componente BindingNavigator.

  2. Fare doppio clic sul form per aprire l'editor di codice e aggiungere il codice seguente al gestore eventi Form1_Load:

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc/"))
           Me.CustomersBindingSource.DataSource = proxy.Customers
    
               ServiceReference1.northwindModel.northwindEntities proxy = new
    ServiceReference1.northwindModel.northwindEntities(new
    Uri("https://localhost:53397/NorthwindCustomers.svc/"));
               this.customersBindingSource.DataSource = proxy.Customers;
    

    [!NOTA]

    A seconda della versione del database Northwind utilizzata, è possibile che sia necessario modificare "NORTHWIND" in "NORTHWND".Per individuare il nome corretto è possibile utilizzare anche IntelliSense.

  3. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul file NorthwindCustomers.svc, quindi scegliere Visualizza nel browser.Verrà aperto Internet Explorer e visualizzato lo schema XML per il servizio.

  4. Copiare l'URL dalla barra degli indirizzi di Internet Explorer.

  5. Nel codice aggiunto nel passaggio 2, selezionare https://localhost:14735/NorthwindCustomers.svc e sostituirlo con l'URL appena copiato.

  6. Premere F5 per eseguire l'applicazione.Verranno visualizzate le informazioni sul cliente.

Si dispone ora di un'applicazione in cui verrà 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à

  1. In Esplora soluzioni, fare doppio clic su Form1.vb o Form1.cs per visualizzare la finestra di progettazione Windows Form.

  2. Trascinare un controllo TextBox e un controllo Button dalla Casella degli strumenti al form.

  3. Fare doppio clic sul controllo Button e aggiungere il codice seguente nel gestore eventi Button1_Click:

           Dim proxy As New ServiceReference1.northwindModel.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
    
            ServiceReference1.northwindModel.northwindEntities proxy = new
     ServiceReference1.northwindModel.northwindEntities(new
     Uri("https://localhost:53397/NorthwindCustomers.svc/"));
        string city = textBox1.Text;
    
    if (city != "")
    {
        this.customersBindingSource.DataSource = from c in
     proxy.Customers where c.City == city select c;   
    
  4. Nel codice precedente, sostituire https://localhost:14735/NorthwindCustomers.svc con l'URL del gestore eventi Form1_Load.

  5. Premere F5 per eseguire l'applicazione.

  6. Nella casella di testo, digitare London, quindi fare clic sul pulsante.Verranno visualizzati solo i clienti di Londra.

Vedere anche

Attività

Procedura: aggiungere, aggiornare o rimuovere un riferimento al servizio dati WCF