Compartir a través de


Crear el servicio de datos Northwind (Tutorial rápido de WCF Data Services)

En esta tarea, creará una versión local del servicio de datos de ejemplo Northwind que usa Servicios de datos de Microsoft WCF para exponer una fuente de Open Data Protocol (OData) basada en la base de datos de ejemplo Northwind. Esta versión admitirá la actualización de datos en la base de datos Northwind mediante OData. Esta tarea supone la realización de los siguientes pasos básicos:

  1. Crear una aplicación web de ASP.NET.

  2. Definir el modelo de datos usando las herramientas de Entity Data Model.

  3. Agregar el servicio de datos a la aplicación web.

  4. Habilitar el acceso al servicio de datos.

Nota

La aplicación web ASP.NET que crea al completar esta tarea se ejecuta en el servidor de desarrollo de ASP.NET proporcionado por Visual Studio.El servidor de desarrollo de ASP.NET solo admite el acceso desde el equipo local.Para facilitar también la comprobación y solución de problemas del servicio de datos durante el desarrollo, puede ejecutar la aplicación que hospeda el servicio de datos mediante Internet Information Services (IIS).Para obtener más información, vea Cómo: Desarrollar un servicio de datos WCF que se ejecuta en IIS.

Para crear la aplicación web ASP.NET

  1. En Visual Studio, en el menú Archivo, seleccione Nuevo y, a continuación, seleccione Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, bajo Visual Basic o Visual C#, seleccione la plantilla Web y, a continuación, seleccione Aplicación web ASP.NET.

    Nota

    Si usa Visual Studio Web Developer, debe crear un nuevo sitio web en lugar de una nueva aplicación web.

  3. Escriba NorthwindService como nombre del proyecto.

  4. Haga clic en Aceptar.

  5. (Opcional) Especifique un número de puerto específico para la aplicación web. Nota: en el resto del tutorial rápido se usa el número de puerto 12345.

    1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de ASP.NET que acaba de crear y, a continuación, haga clic en Propiedades.

    2. Seleccione la pestaña Web y, a continuación, establezca el valor del cuadro de texto Puerto específico en 12345.

Para definir el modelo de datos

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de ASP.NET y, a continuación, haga clic en Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento , haga clic en la plantilla Datos y, a continuación, seleccione Entity Data Model de ADO.NET.

  3. Como nombre del modelo de datos, escriba Northwind.edmx.

  4. En el Asistente para Entity Data Model, seleccione Generar desde la base de datos y, a continuación, haga clic en Siguiente.

  5. Para conectar el modelo de datos a la base de datos efectúe uno de los pasos siguientes y después haga clic en Siguiente:

    • Si no tiene una conexión de base de datos ya configurada, haga clic en Nueva conexión y cree una conexión nueva. Para obtener más información, vea Cómo: Crear conexiones a bases de datos de SQL Server. Esta instancia de SQL Server debe tener adjuntada la base de datos de ejemplo Northwind.

      o bien

    • Si tiene una conexión de base de datos ya configurada para conectarse a la base de datos Northwind, seleccione esa conexión en la lista de conexiones.

  6. En la página final del asistente, seleccione las casillas de todas las tablas de la base de datos y desactive las casillas correspondientes a las vistas y los procedimientos almacenados.

  7. Haga clic en Finalizar para cerrar el asistente.

    Nota

    Este modelo de datos generado expone las propiedades de clave externa en los tipos de entidad.Los modelos de datos creados en Visual Studio 2008 no incluyen estas propiedades de clave externa.Debido a esto, debe actualizar las clases del servicio de datos de cliente de cualquier aplicación cliente que se haya creado para tener acceso al servicio de datos de Northwind que se creó con Visual Studio 2008 antes de intentar tener acceso a esta versión del servicio de datos de Northwind.

Para crear el servicio de datos

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de ASP.NET y, a continuación, haga clic en Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, seleccione Servicio de datos de WCF.

  3. Como nombre del servicio, escriba Northwind.

    Visual StudioVisual Studio crea los archivos de código y marcado XML para el nuevo servicio. De forma predeterminada, se abre la ventana del editor de código. En el Explorador de soluciones, el servicio tendrá el nombre Northwind, con la extensión .svc.cs o .svc.vb.

  4. En el código para el servicio de datos, reemplace el comentario /* TODO: put your data source class name here */ de la definición de la clase que define el servicio de datos por el tipo que es el contenedor de entidades del modelo de datos, que en este caso es NorthwindEntities. La definición de la clase debería ser como la siguiente:

    Public Class Northwind
        Inherits DataService(Of NorthwindEntities)
    
    public class Northwind : DataService<NorthwindEntities>
    

Para habilitar el acceso a los recursos del servicio de datos

  • En el código del servicio de datos, reemplace el código de marcador de posición de la función InitializeService por el siguiente:

    ' Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead _
         Or EntitySetRights.WriteMerge _
         Or EntitySetRights.WriteReplace)
    config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead _
        Or EntitySetRights.AllWrite)
    config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
    
    // Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead
         | EntitySetRights.WriteMerge
         | EntitySetRights.WriteReplace);
    config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead
        | EntitySetRights.AllWrite);
    config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
    

    De esta forma, los clientes autorizados pueden tener acceso de lectura y escritura a los recursos para los conjuntos de entidades especificados.

    Nota

    Cualquier cliente que pueda tener acceso a la aplicación ASP.NET también puede tener acceso a los recursos expuestos por el servicio de datos.En un servicio de datos de producción, para evitar el acceso no autorizado a los recursos también debería proteger la aplicación.Para obtener más información, vea Proteger WCF Data Services.

Pasos siguientes

Ha creado correctamente una versión local grabable de un servicio OData basada en la base de datos de ejemplo Northwind. También ha habilitado el acceso a la fuente a los clientes que dispongan de permisos en la aplicación web ASP.NET. Después, creará una segunda aplicación cliente que enlaza estos datos de Northwind a controles de Windows y envía las actualizaciones a este nuevo servicio OData grabable:

Enlazar fuentes de OData a controles en una aplicación cliente

Vea también

Otros recursos

ADO.NET Entity Data Model Tools