Exportar (0) Imprimir
Expandir todo

Tutorial: crear aplicaciones de Visual C++ que consumen datos de componentes de .NET Framework

Visual Studio .NET 2003

En este tutorial, un componente de .NET Framework como un conjunto de datos ADO.NET obtiene acceso a datos desde un origen de datos. La aplicación de Visual C++ (por ejemplo, servidor ATL) consume datos XML de un servicio Web XML que publica el conjunto de datos.

Tenga en cuenta que el ejemplo DataSetConsumer también muestra el modo en que una aplicación de Visual C++ no administrada puede consumir un conjunto de datos desde una aplicación de .NET Framework. Del mismo modo que en este tutorial, DataSetConsumer utiliza el servidor ATL para consumir un conjunto de datos expuesto a través de un servicio Web XML.

Aplicaciones de Visual C++ que consumen datos de .NET Framework

En este tutorial, se crea en primer lugar un conjunto de datos con declaración de tipos expuesto en un servicio Web XML con Visual C#. A continuación, se crea una aplicación de servidor ATL para consumir el conjunto de datos.

Nota   Tenga en cuenta que debe ser un miembro del grupo Administradores local para generar esta aplicación. Haga clic con el botón secundario del mouse en Mi PC y a continuación seleccione Administrar. En Herramientas del sistema, seleccione Usuarios locales y grupos y, a continuación, seleccione Grupos. En el panel derecho, haga doble clic en Administradores. En el cuadro de diálogo Propiedades de administrador, haga clic en Agregar, y a continuación, utilice el cuadro de diálogo Seleccionar usuarios o grupos para comprobar y agregar su propio DOMINIO\nombreDeUsuario al grupo Administradores.

Exponer un conjunto de datos con declaración de tipos

En este procedimiento, creará un servicio Web XML con extensiones administradas de C++ para obtener acceso a información del producto y establecer una conexión de base de datos antes de crear y establecer el conjunto de datos. Observe que se puede realizar también con Visual C# o un proyecto de Visual Basic, pero el código de implementación puede ser diferente al que se ofrece aquí.

Para crear un proyecto de servicio Web ASP.NET para el acceso a un conjunto de datos

  1. Cree un nuevo servicio Web XML con ASP.NET.
    1. En el menú Archivo, haga clic en Nuevo y, a continuación, haga clic en Proyecto.

      Aparecerá el cuadro de diálogo Nuevo proyecto.

    2. En el panel Tipos de proyecto, seleccione Proyectos de Visual C++, y después la carpeta .NET. En el panel Plantillas, seleccione Servicio Web ASP.NET.
    3. Asigne un nombre a DataSupplier cambiando la dirección URL del cuadro Ubicación a:
      http://localhost/DataSupplier
      
    4. Haga clic en Aceptar.

      DataSupplierClass.h aparece en el panel de diseño.

  2. Cree una conexión de datos.
    1. En el Explorador de servidores, haga clic con el botón secundario del mouse (ratón) en Conexiones de datos y, a continuación, haga clic en Agregar conexión en el menú contextual.

      Aparece el cuadro de diálogo Propiedades de vínculo de datos.

    2. Rellene el cuadro de diálogo para crear una conexión de datos con una base de datos, como la base de datos Northwind. Seleccione Usar la seguridad integrada de Windows NT.
  3. Agregue una tabla a la superficie de diseño.
    • Abra el nodo Tablas de la nueva conexión de datos y arrastre una tabla (por ejemplo, Products) del Explorador de servidores al Diseñador de componentes.

      Aparecerán un DataAdapter y una conexión de datos en el Diseñador de componentes.

  4. Genere un conjunto de datos.
    1. En el menú Datos, seleccione Generar conjunto de datos.

      Aparecerá el cuadro de diálogo Generar conjunto de datos.

    2. Haga clic en Nuevo y seleccione DataSet1 (opción predeterminada).
    3. Seleccione la casilla de verificación Agregar este conjunto de datos al diseñador.
    4. Haga clic en Aceptar para crear el conjunto de datos.

      El conjunto de datos dataSet11 aparecerá en el Diseñador de componentes.

  5. Implemente un método Web denominado GetDataSet para recuperar datos. Al llamar a este método Web, el conjunto de datos con declaración de tipos se publicará mediante el servicio Web XML.
    1. Haga clic con el botón secundario de mouse en la superficie de diseño de DataSupplierClass.h y seleccione Ver Código.

      El código de DataSupplierClass.h aparece en el panel de edición.

    2. Sitúese al final del archivo, en el ejemplo de método Web HelloWorld:
      [System::Web::Services::WebMethod]
      String __gc* HelloWorld();
      
    3. En lugar del código del ejemplo HelloWorld, declare un nuevo método Web denominado GetDataSet de este modo:
      [System::Web::Services::WebMethod]
      DataSet1 __gc* GetDataSet();
      
    4. En el Explorador de soluciones, haga doble clic en DataSupplierClass.cpp.

      El código de DataSupplierClass.cpp aparece en el panel de edición.

      Reemplace la implementación del método Web del ejemplo HelloWorld por la implementación de GetDataSet siguiente:

      DataSet1 __gc* DataSupplierClass::GetDataSet()
      {
         this->dataSet11->Clear();
         this->sqlDataAdapter1->Fill(this->dataSet11);
         return this->dataSet11;
      }
      
  6. Genere el proyecto. En el menú Generar, haga clic en Generar solución.
  7. Configure el proyecto para desactivar el acceso anónimo y el uso de la autenticación de Windows integrada.

    Para desactivar el acceso anónimo

    En el Explorador de Windows haga clic con el botón secundario del mouse en Mi PC y a continuación seleccione Administrar. En Administración del equipo (local), abra el nodo Servicios y Aplicaciones, luego Servicios de Internet Information Server, después Sitios Web y finalmente Sitio Web predeterminado. Haga clic con el botón secundario en el proyecto DataSupplier y seleccione Propiedades.

    En el cuadro de diálogo Propiedades de la ficha Seguridad de directorios de Control de autenticación y acceso anónimo, seleccione el botón Modificar. En el cuadro de diálogo Métodos de autenticación, elimine Acceso anónimo y asegúrese de que la opción Autenticación de Windows integrada está marcada.

    Para obtener más información sobre la suplantación, vea Suplantación en ASP.NET.

    Para obtener más información sobre la autenticación, vea Autenticación en ASP.NET.

Consumir el conjunto de datos en un proyecto de servidor ATL

En este procedimiento creará un proyecto de servidor ATL que funcione como un proveedor de datos de alto rendimiento que muestra información del producto, además de su funcionalidad normal, y editará el archivo de respuesta del servidor. A continuación, agregará una referencia Web y publicará los datos.

Para crear el proyecto de servidor ATL

  1. En el menú Archivo, seleccione Nuevo y elija Proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  2. En el panel Tipos de proyecto, abra el nodo Proyectos de Visual C++ y luego el nodo ATL. En el panel Plantillas, haga clic en Proyecto de servidor ATL.
  3. Asigne al proyecto el nombre Inventory y haga clic en Aceptar.

    Aparecerá el Asistente para proyectos de servidor ATL.

  4. Acepte la configuración predeterminada y haga clic en Finalizar.

Para agregar una referencia Web

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el nodo del proyecto Inventory y elija Agregar referencia Web en el menú contextual.

    Aparecerá el cuadro de diálogo Agregar referencia Web.

  2. En Vaya a, seleccione Servicios Web del equipo local.

    El explorador buscacará todos los servicios Web XML que estén en el equipo local y muestra una lista de los vínculos a ellos.

  3. Haga clic en el vínculo del servicio Web XML DataSupplier. Aparecerá una página de descripción del servicio Web XML en el panel principal y su dirección URL aparecerá en el cuadro Dirección URL:
    http://localhost/DataSupplier/DataSupplier.asmx
    

    En Nombre de referencia Web, reemplace el localhost predeterminado con DataSupplierWS.

    Haga clic en Agregar referencia. De esta forma se agregará la clase de proxy DataSupplierClass al proyecto Inventory.

Para llamar al servicio Web XML y mostrar el conjunto de datos

  1. Abra el archivo de respuesta de servidor Inventory.srf, cambie a la vista HTML haciendo clic en HTML en la parte baja del panel y agregue la siguiente etiqueta {{Products}} al final del cuerpo del código HTML:
    This is a test: {{Hello}}<br>{{Products}}
    
  2. Haga clic con el botón secundario del mouse en la etiqueta {{Products}} y seleccione Agregar controlador de etiquetas. De este modo se agregará el método OnProducts a Inventory.h.
  3. En Inventory.h agregue el código siguiente a OnProducts:
    // OnProducts method
    [ tag_name(name="Products") ]
    HTTP_CODE OnProducts(void)
    {
       // TODO: Add your tag code here
       CComBSTR bstrXMLDataSet;
       DataSupplierClass::CDataSupplierClassT<CSoapSocketClientT<> > *WebService = 
          new DataSupplierClass::CDataSupplierClassT<CSoapSocketClientT<> > ();
       HRESULT hr = WebService->GetDataSet (&bstrXMLDataSet);
       if (!SUCCEEDED (hr)) {
          delete WebService;
          m_HttpResponse << "Failed to get the data from the WebService";
          return hr;
       }
    
       m_HttpResponse << bstrXMLDataSet;
    
       delete WebService;
    
       return HTTP_SUCCESS;
    }
    
  4. En Inventory.h, agregue la siguiente directiva #include detrás de la directiva #pragma:
    #include "WebService.h"
    
  5. Genere el proyecto. En el menú Generar, haga clic en Generar solución.

    Tenga en cuenta que debe ser un miembro del grupo Administradores local para generar esta aplicación.

  6. Ejecute la aplicación cliente.

    En el menú Depurar, haga clic en Iniciar sin depurar.

    Si se le pide una dirección URL; escriba la siguiente:

    http://localhost/Inventory/Inventory.srf
    

    Haga clic en Aceptar. Aparecerá el explorador Web con los datos de Northwind mostrados a través del servicio Web XML.

Vea también

Proporcionar interoperabilidad de datos entre aplicaciones de Visual C++ y .NET Framework | Ejemplo DataSetConsumer

Mostrar:
© 2014 Microsoft