Exportar (0) Imprimir
Expandir todo

Procedimiento: Conectar con Base de datos SQL de Azure mediante WCF Data Services

Actualizado: febrero de 2015

Servicios de datos de Microsoft WCF (anteriormente conocido como ADO.NET Data Services) permite crear servicios de datos que implementan Open Data Protocol (OData), que se basa en la transferencia de estado de representación Representational State Transfer (REST). Puesto que OData se basa en protocolos estándar de Internet, cualquier aplicación cliente que pueda enviar y recibir mensajes HTTP y analizar XML puede tener acceso a los servicios de datos. Además, hay muchas bibliotecas de cliente que simplifican el consumo de fuentes OData en diversas plataformas de aplicaciones.

Servicios de datos de Microsoft WCF necesita una implementación de proveedor de servicios de datos para definir el modelo de datos y proporcionar acceso al origen de datos subyacente. Usando el proveedor Entity Framework, puede crear servicios de datos para una Base de datos SQL de Azure. Para obtener más información sobre cómo usar Servicios de datos de Microsoft WCF, vea la documentación de WCF Data Services.

noteNota
Cuando abra una conexión con Base de datos SQL de Azure, establezca el tiempo de espera de conexión en 30 segundos.

En este tema se muestra cómo crear un servicio de datos sencillo basado en una Base de datos SQL de Azure y una aplicación Azure que tiene acceso al servicio de datos.

Para seguir este ejemplo, debe instalar Azure SDK y Azure Tools for Microsoft Visual Studio. Para obtener más información sobre Azure, vea Azure SDK. También debe inicializar el servicio de almacenamiento de desarrollo instalado con las herramientas de Azure mediante la utilidad DSInit. Almacenamiento de desarrollo se debe inicializar solo una vez. Para obtener más información, vea el artículo acerca del almacenamiento de desarrollo.

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

    WarningAdvertencia
    Debe ejecutar Visual Studio como administrador para poder utilizar el entramado de desarrollo de Azure.

  2. En el panel Tipos de proyecto, seleccione Web. En el panel Plantillas, seleccione Proyecto de aplicación web ASP.NET. Escriba SchoolApplication como Nombre y, a continuación, haga clic en Aceptar.

  3. En el Explorador de soluciones, haga clic con el botón secundario en SchoolApplication, seleccione Agregar y, a continuación, seleccione Nuevo elemento.

  4. Seleccione ADO.NET Entity Data Model, escriba SchoolDataModel.edmx como Nombre y, a continuación, haga clic en Agregar.

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

  6. Haga clic en Nueva conexión y escriba la información para la base de datos School en su servidor Base de datos SQL de Azure; a continuación, haga clic en Aceptar. Elija la opción No, excluir datos confidenciales de la cadena de conexión. Los estableceré en el código de mi aplicación. A continuación, haga clic en Siguiente.

  7. Seleccione Tablas y, a continuación, haga clic en Finalizar. Esto crea un archivo .edmx que define un tipo de entidad para cada tabla de la base de datos.

    CautionAdvertencia
    Para seguir este ejemplo en Visual Studio 2010 o posterior, desactive la casilla Poner en plural o en singular los nombres de objeto generados. Cuando se ejecuta este ejemplo en Visual Studio 2008, Entity Framework no puede crear el archivo .edmx ni las clases cliente relacionadas a partir de una Base de datos SQL de Azure. Debe conectarse a una instancia local de SQL Server para generar los archivos de asignación y de modelo. Sin embargo, Entity Framework se conectará a Base de datos SQL de Microsoft Azure cuando se hayan creado los archivos de asignación y de modelo.

  1. En el Exploradorde soluciones, haga clic con el botón secundario en SchoolApplication, seleccione Agregar y, a continuación, seleccione Nuevoelemento.

  2. Seleccione Servicio de datos de WCF, escriba SchoolDataService.svc como Nombre y, a continuación, haga clic en Agregar.

  3. En SchoolDataService.svc.cs o en SchoolDataService.svc.vb, reemplace el comentario /* TODO: put your data source class name here */ de la definición de la clase que define el servicio de datos con el tipo que es el contenedor de entidad del modelo de datos (en este caso, SchoolEntities). La definición de clase debe ser similar a la siguiente:

  4. Reemplace el código del marcador de posición en la función InitializeService con el código siguiente, que concede acceso a las entidades Course, Department y Person:

  1. En el Explorador de soluciones, haga clic con el botón secundario en la solución, seleccione Agregar y, a continuación, haga clic en Nuevo proyecto.

  2. En el cuadro de diálogo Agregar nuevo proyecto, en el panel Tipos de proyecto, seleccione Servicio en la nube. Escriba SchoolSite como Nombre y, a continuación, haga clic en Aceptar.

  3. En el cuadro de diálogo Nuevo proyecto de servicio en la nube, agregue un Rol web de ASP.NET al panel Solución de servicio en la nube y, a continuación, haga clic en Aceptar.

  4. Reemplace el código fuente de Default.aspx con el código siguiente:

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1">
        <div>
        
            <asp:DropDownList ID="peopleList" runat="server" 
                onselectedindexchanged="peopleList_SelectedIndexChanged"
        AutoPostBack="True">
            </asp:DropDownList>
            <br />
            <br />
            <asp:Label ID="infoLabel" runat="server"></asp:Label>
            <br />
            
        
        </div>
        </form>
    </body>
    </html>
    

    Esto crea una lista desplegable denominada peopleList y un control Label denominado infoLabel.

  5. Presione F6 para compilar la aplicación.

  6. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de rol web y, a continuación, haga clic en Agregar referencia de servicio.

  7. En el cuadro de diálogo Agregar referencia de servicio, haga clic en Detectar. SchoolDataService.svc aparecerá en el panel Servicios. Escriba SchoolServiceReference como Nombre y, a continuación, haga clic en Aceptar. Esto agrega el archivo que contiene las clases de datos que tienen acceso a los recursos del servicio de datos.

  1. En Default.aspx.cs o en Default.aspx.vb, agregue las siguientes instrucciones using (Imports en Visual Basic):

  2. En la clase parcial, agregue las siguientes declaraciones para DataServiceContext y URI al servicio de datos (el identificador URI que aparecía anteriormente en el campo Dirección del cuadro de diálogo Agregar referencia de servicio):

  3. En el método Page_Load, cree instancias del contexto del servicio de datos y cargue la lista desplegable con información del servicio de datos agregando el código siguiente:

  4. En la vista Diseño de Default.aspx, haga doble clic en la lista desplegable para agregar el evento peopleList_SelectedIndexChanged.

  5. En el evento peopleList_SelectedIndexChanged, rellene el control Label basándose en la persona seleccionada agregando el código siguiente:

  1. Migre la base de datos School a Base de datos SQL de Azure.

  2. En el proyecto SchoolApplication, abra el archivo Web.config. Cambie la cadena de conexión para que se conecte a su Base de datos SQL de Azure.

  3. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto WebRole1 y seleccione Establecer como proyecto de inicio.

  4. Presione F5 para ejecutar la aplicación.

Vea también

Mostrar:
© 2015 Microsoft