Creazione dell'applicazione client .NET Framework (Guida rapida di WCF Data Services)Creating the .NET Framework Client Application (WCF Data Services Quickstart)

Questo è l'attività finale del WCF Data ServicesWCF Data Services avvio rapido.This is the final task of the WCF Data ServicesWCF Data Services quickstart. In questa attività verrà aggiunta un'applicazione console alla soluzione, aggiungere un riferimento al Protocollo OData (Open Data)Open Data Protocol (OData) feed in questa nuova applicazione client e accesso di ODataOData feed dall'applicazione client utilizzando le classi del servizio dati client generate e client librerie.In this task, you will add a console application to the solution, add a reference to the Protocollo OData (Open Data)Open Data Protocol (OData) feed into this new client application, and access the ODataOData feed from the client application by using the generated client data service classes and client libraries.

Nota

Per accedere a un feed di dati non è necessario disporre di un'applicazione client basata su .NET Framework.A .NET Framework-based client application is not required to access a data feed. L'accesso al servizio dati può essere eseguito da qualsiasi componente dell'applicazione che usa un feed ODataOData.The data service can be accessed by any application component that consumes an ODataOData feed. Per ulteriori informazioni, vedere utilizza un servizio dati in un'applicazione Client.For more information, see Using a Data Service in a Client Application.

Per creare l'applicazione client tramite Visual StudioTo create the client application by using Visual Studio

  1. In Esploradestro la soluzione, fare clic su Aggiungi, quindi fare clic su nuovo progetto.In Solution Explorer, right-click the solution, click Add, and then click New Project.

  2. In tipi di progetto, fare clic su Windows, quindi selezionare applicazione WPF nel modelli riquadro.In Project types, click Windows, and then select WPF Application in the Templates pane.

  3. Immettere NorthwindClient per il nome del progetto e quindi fare clic su OK.Enter NorthwindClient for the project name, and then click OK.

  4. Aprire il file MainWindow.xaml e sostituire il codice XAML con il codice seguente:Open the file MainWindow.xaml and replace the XAML code with the following code:

        <Window x:Class="Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Northwind Orders" Height="335" Width="425" 
            Name="OrdersWindow" Loaded="Window1_Loaded">
        <Grid Name="orderItemsGrid">
            <ComboBox DisplayMemberPath="OrderID" ItemsSource="{Binding}"
                      IsSynchronizedWithCurrentItem="true" 
                      Height="23" Margin="92,12,198,0" Name="comboBoxOrder" VerticalAlignment="Top"/>
            <DataGrid ItemsSource="{Binding Path=Order_Details}"  
                      CanUserAddRows="False" CanUserDeleteRows="False"  
                      Name="orderItemsDataGrid" Margin="34,46,34,50"
                      AutoGenerateColumns="False">
                <DataGrid.Columns>
                    <DataGridTextColumn  Header="Product" Binding="{Binding ProductID, Mode=OneWay}" />
                    <DataGridTextColumn  Header="Quantity" Binding="{Binding Quantity, Mode=TwoWay}" />
                    <DataGridTextColumn  Header="Price" Binding="{Binding UnitPrice, Mode=TwoWay}" />
                    <DataGridTextColumn  Header="Discount" Binding="{Binding Discount, Mode=TwoWay}" />                
                </DataGrid.Columns>     
            </DataGrid>
            <Label Height="28" Margin="34,12,0,0" Name="orderLabel" VerticalAlignment="Top" 
                   HorizontalAlignment="Left" Width="65">Order:</Label>
            <StackPanel Name="Buttons" Orientation="Horizontal" HorizontalAlignment="Right" 
                        Height="40" Margin="0,257,22,0">
                <Button Height="23" HorizontalAlignment="Right" Margin="0,0,12,12" 
                    Name="buttonSave" VerticalAlignment="Bottom" Width="75" 
                        Click="buttonSaveChanges_Click">Save Changes
                </Button>
                <Button Height="23" Margin="0,0,12,12" 
                    Name="buttonClose" VerticalAlignment="Bottom" Width="75" 
                        Click="buttonClose_Click">Close</Button>
            </StackPanel>
        </Grid>
    </Window>
    

Per aggiungere un riferimento al servizio dati nel progettoTo add a data service reference to the project

  1. Fare clic sul progetto NorthwindClient, fare clic su Aggiungi riferimento al servizio, quindi fare clic su Discover.Right-click the NorthwindClient project, click Add Service Reference, and then click Discover.

    Verrà visualizzato il servizio dati Northwind creato nella prima attività.This displays the Northwind data service that you created in the first task.

  2. Nel Namespace nella casella di testo Northwind, quindi fare clic su OK.In the Namespace text box, type Northwind, and then click OK.

    Verrà aggiunto un nuovo file di codice al progetto, che contiene le classi di dati usate per accedere e interagire con le risorse del servizio dati come oggetti.This adds a new code file to the project, which contains the data classes that are used to access and interact with data service resources as objects. Le classi di dati vengono create nello spazio dei nomi NorthwindClient.Northwind.The data classes are created in the namespace NorthwindClient.Northwind.

Per accedere ai dati del servizio dati nell'applicazione WPFTo access data service data in the WPF application

  1. In Esplora in NorthwindClient, fare clic sul progetto e fare clic su Aggiungi riferimento.In Solution Explorer under NorthwindClient, right-click the project and click Add Reference.

  2. Nella finestra di dialogo Aggiungi riferimento, fare clic su di .NET scheda, selezionare l'assembly System.Data.Services.Client.dll e quindi fare clic su OK.In the Add Reference dialog box, click the .NET tab, select the System.Data.Services.Client.dll assembly, and then click OK. In Esplora in NorthwindClient, aprire la tabella codici per il file MainWindow. XAML e aggiungere le seguenti using istruzione (Imports in Visual Basic).In Solution Explorer under NorthwindClient, open the code page for the MainWindow.xaml file, and add the following using statement (Imports in Visual Basic).

    using System.Data.Services.Client;
    using NorthwindClient.Northwind;
    
    Imports System.Data.Services.Client
    Imports NorthwindClient.Northwind
    
  3. Inserire il codice seguente che consente di eseguire una query sul servizio dati e di associare il risultato a un oggetto DataServiceCollection<T> nella classe MainWindow:Insert the following code that queries that data service and binds the result to a DataServiceCollection<T> into the MainWindow class:

    Nota

    È necessario sostituire il nome host localhost:12345 con il server e la porta di hosting dell'istanza del servizio dati Northwind.You must replace the host name localhost:12345 with the server and port that is hosting your instance of the Northwind data service.

    private NorthwindEntities context;
    private string customerId = "ALFKI";
    
    // Replace the host server and port number with the values 
    // for the test server hosting your Northwind data service instance.
    private Uri svcUri = new Uri("http://localhost:12345/Northwind.svc");
    
    private void Window1_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {
            // Instantiate the DataServiceContext.
            context = new NorthwindEntities(svcUri);
    
            context.IgnoreMissingProperties = true;
    
            // Define a LINQ query that returns Orders and 
            // Order_Details for a specific customer.
            var ordersQuery = from o in context.Orders.Expand("Order_Details")
                              where o.Customer.CustomerID == customerId
                              select o;
    
            // Create an DataServiceCollection<T> based on 
            // execution of the LINQ query for Orders.
            DataServiceCollection<Order> customerOrders = new
                DataServiceCollection<Order>(ordersQuery);
    
            // Make the DataServiceCollection<T> the binding source for the Grid.
            this.orderItemsGrid.DataContext = customerOrders;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
    Private context As NorthwindEntities
    Private customerId As String = "ALFKI"
    
    ' Replace the host server and port number with the values 
    ' for the test server hosting your Northwind data service instance.
    Private svcUri As Uri = New Uri("http://localhost:12345/Northwind.svc")
    
    Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Try
            ' Instantiate the DataServiceContext.
            context = New NorthwindEntities(svcUri)
    
            ' Define a LINQ query that returns Orders and 
            ' Order_Details for a specific customer.
            Dim ordersQuery = From o In context.Orders.Expand("Order_Details") _
                                  Where o.Customer.CustomerID = customerId _
                                  Select o
    
            ' Create an DataServiceCollection(Of T) based on
            ' execution of the LINQ query for Orders.
            Dim customerOrders As DataServiceCollection(Of Order) = New  _
                DataServiceCollection(Of Order)(ordersQuery)
    
            ' Make the DataServiceCollection<T> the binding source for the Grid.
            Me.orderItemsGrid.DataContext = customerOrders
        Catch ex As Exception
            MessageBox.Show(ex.ToString())
        End Try
    End Sub
    
  4. Inserire il codice seguente che consente di salvare le modifiche nella classe MainWindow:Insert the following code that saves changes into the MainWindow class:

    private void buttonSaveChanges_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            // Save changes made to objects tracked by the context.
            context.SaveChanges();
        }
        catch (DataServiceRequestException ex)
        {
            MessageBox.Show(ex.ToString());
    
        }
    }
    private void buttonClose_Click(object sender, RoutedEventArgs e)
    {
        this.Close();
    }
    
    Private Sub buttonSaveChanges_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Try
            ' Save changes made to objects tracked by the context.
            context.SaveChanges()
        Catch ex As DataServiceRequestException
            MessageBox.Show(ex.ToString())
        End Try
    End Sub
    Private Sub buttonClose_Click(ByVal sender As Object, ByVal a As RoutedEventArgs)
        Me.Close()
    End Sub
    

Per compilare ed eseguire l'applicazione NorthwindClientTo build and run the NorthwindClient application

  1. In Esploradel mouse sul progetto NorthwindClient e scegliere imposta come progetto di avvio.In Solution Explorer, right-click the NorthwindClient project and select Set as startup project.

  2. Premere F5 per avviare l’applicazione.Press F5 to start the application.

    La soluzione viene compilata e l'applicazione client viene avviata.This builds the solution and starts the client application. I dati vengono richiesti dal servizio e visualizzati nella console.Data is requested from the service and displayed in the console.

  3. Modificare un valore di quantità colonna della griglia di dati e quindi fare clic su salvare.Edit a value in the Quantity column of the data grid, and then click Save.

    Le modifiche vengono salvate nel servizio dati.Changes are saved to the data service.

    Nota

    Questa versione dell'applicazione NorthwindClient non supporta l'aggiunta e l'eliminazione di entità.This version of the NorthwindClient application does not support adding and deleting of entities.

Passaggi successiviNext Steps

La creazione dell'applicazione client che accede al feed ODataOData Northwind di esempio è stata completata.You have successfully created the client application that accesses the sample Northwind ODataOData feed. È stata inoltre completata la guida rapida di WCF Data ServicesWCF Data Services.You have also completed the WCF Data ServicesWCF Data Services quickstart. Per ulteriori informazioni sull'accesso a un ODataOData feed da un .NET Framework.NET Framework dell'applicazione, vedere libreria Client di WCF Data Services.For more information about accessing an ODataOData feed from a .NET Framework.NET Framework application, see WCF Data Services Client Library.

Vedere ancheSee Also

IntroduzioneGetting Started
RisorseResources