Hola invitado         31 Jul, 2010 - 07:32
Menú principal
 
Ads
 
Patrocinadores
 
Anuncios
 
© 2009 PortalFox
Exponer desde .NET objetos VFP como Servicios Web lecturas 3669
 Enviado por amby en Jueves, 28 Julio, 2005
General (Ejemplo 3 del artículo Interoperabilidad VFP y .NET) Este escrito tiene como objetivo servir de guía paso a paso sobre cómo realizar la conexión entre estas dos herramientas para desarrollo de aplicaciones que son: Visual FoxPro y VS.NET. En este caso creamos un componente COM en VFP y lo consumimos como un Servicio Web de .NET.

Exponer en VS.NET objetos de VFP como Servicios Web

Por Amby


(Ejemplo 3 del artículo Interoperabilidad VFP y .NET)

Este escrito tiene como objetivo servir de guía paso a paso sobre cómo realizar la conexión entre estas dos herramientas para desarrollo de aplicaciones que son: Visual FoxPro y VS.NET

VFP no tiene una vía nativa para exponer objetos VFP como WS, la mejor manera de hacerlo es a través de los WS ASP.Net.

La idea general es sencilla: primero se crea un objeto VFP y se expone como objeto COM. Puede acceder a este objeto COM desde ASP.Net utilizando un servicio encapsulador (wrapper) para exponer métodos individuales.

Por ejemplo tenemos este código VFP

* Ejemplo de WS desde VFP para ser visto por ASP.Net
DEFINE CLASS WSFecha AS CUSTOM OLEPUBLIC
  FUNCTION DameFecha() AS STRING
    RETURN DTOC(DATE())
  ENDFUNC
ENDDEFINE 

Le llamamos WSVFP y compilamos en VFP como objeto COM.

Desde VS.Net exponemos este objeto como Servicio Web.

Para ello, creamos un Servicio Web, creando un nuevo WS ASP.Net

Agregamos una referencia al objeto COM VFP.

La ventana de diseño tiene la siguiente apariencia.

Hacemos Clic para cambiar a la vista de códigos y tenemos un código preparado que nos instruye sobre dónde hay que colocar la llamada al Servicio Web. El código que muestra de forma predeterminada es el siguiente.

Imports System.Web.Services

<System.Web.Services.WebService(Namespace := "http://tempuri.org/WebService4/Service1")> _
Public Class Service1
  Inherits System.Web.Services.WebService

#Region " Código generado por el Diseñador de servicios Web " 
  
  Public Sub New()
    MyBase.New() 
    
    'El Diseñador de servicios Web requiere esta llamada.
    InitializeComponent() 
    
    'Agregar su propio código de inicialización después de llamar a InitializeComponent() 
    
  End Sub 
  
  'Requerido por el Diseñador de servicios Web
  Private components As System.ComponentModel.IContainer 
  
  'NOTE: el Diseñador de servicios Web requiere el siguiente procedimiento
  'Puede modificarse utilizando el Diseñador de servicios Web. 
  'No lo modifique con el editor de código.
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    components = New System.ComponentModel.Container()
  End Sub 
  
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    'CODEGEN: el Diseñador de servicios Web requiere este procedimiento
    'No lo modifique con el editor de código.
    If disposing Then
      If Not (components Is Nothing) Then
        components.Dispose()
      End If
    End If
    MyBase.Dispose(disposing)
  End Sub 
  
#End Region
  
  ' EJEMPLO DE SERVICIO WEB
  ' El servicio de ejemplo HelloWorld() devuelve la cadena Hello World.
  ' Para generar, quite los comentarios de las siguientes líneas y, a continuación, guarde y genere el proyecto.
  ' Para probar este servicio Web, compruebe que la página de inicio es el archivo .asmx
  ' y presione F5.
  '
  '<WebMethod()> Public Function HelloWorld() As String
  ' HelloWorld = "Hello World"
  ' End Function 
  
End Class

Luego en el WebMethod escribimos el código que se encarga de exponer este servicio. Hacemos pública cada una de las funciones correspondientes a los métodos del WS indicando el valor de retorno, como aparece en VFP.

El atributo WebMethod es quien dice a .NET que ejecute el código siguiente como Servicio Web.

Instanciamos un nuevo objeto basado en el objeto COM y la clase a la que se corresponde esta función. Este WebMethod va a retornar el resultado de la llamada de la clase.metodo de VFP.

<WebMethod()> Public Function DameFecha() As String
  Dim oVFPObject As New wsvfp.wsfecha
  Return oVFPObject.DameFecha()
End Function 

A partir de entonces el comportamiento es igual al descrito para Servicios Web creados en su totalidad desde .NET

Espero haya resultado de utilidad,

Saludos,

Ana María Bisbé York
www.amby.net


 Versión imprimible  
Exponer desde .NET objetos VFP como Servicios Web | Entrar/Crear una cuenta | 0 Comentarios
Los comentarios son propiedad de sus respectivos autores.
No somos responsables de su contenido.



Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2010 PortalFox. Todos los derechos reservados.