Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con : Enterprise Service ( COM+)

Estas en el tema de Ayuda con : Enterprise Service ( COM+) en el foro de .NET en Foros del Web. Saludos cordiales señores, tengo un problemita que quisiera consultarles. Instale un servidor de Componentes en el cual Registré con el "regsvcs" mi DLL (regladenegocio.dll) a ...
  #1 (permalink)  
Antiguo 20/07/2009, 10:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 0
Ayuda con : Enterprise Service ( COM+)

Saludos cordiales señores, tengo un problemita que quisiera consultarles.

Instale un servidor de Componentes en el cual Registré con el "regsvcs" mi DLL (regladenegocio.dll) a la cual acceden mis clientes mediante Enterprise Services lo que seria COM+ ..... desde mi aplicacion escritorio para poder utilizar las clases de mi "regladenegocio.dll" utilizo

Código:
dim obj as object
obj = createobject("regladenegocio.clsEmpresa")

obj.listar()
' FORMA CORRECTA
de esta forma puedo utilizar los metodos de la clase clsEmpresa.
la arquitectura del proyecto implica que algunos metodos del clsEmpresa devuelvan una coleccion de otra clase por ejemplo "clsProducto" como se ve en el codigo siguiente

Código:
***************************************************
********************** REGLADENEGOCIO.DLL***********
***************************************************
Public Class clsProducto
    Inherits ServicedComponent
------------------------------propiedades y metodos
End class
***************************************************
ambas clases estan dentro de un mismo archivo de clase clsEmpresa
*************************************************
Public Class clsEmpresa
    Inherits ServicedComponent

   Public Function Listar() As System.Collections.Generic.List(Of clsProducto)

       Dim a_Producto As New System.Collections.Generic.List(Of clsProducto)

------- lleno con datos el a_producto
------------------------------ codigo
       return a_Producto
   End function
End Class      
*******************************************************
Como vera el metodo listar de clsEmpresa me devuelve una coleccion de clsProducto definido en Dim a_Producto As New System.Collections.Generic.List(Of clsProducto) dentro del metodo listar, desde mi aplicacion cliente debo de recibir esos datos creando una coleccion del mismo tipo y asignarle el metodo listar algo parecido a esto

Código:
LINEA1:    dim obj as object
LINEA2:    obj = createobject("regladenegocio.clsEmpresa")
LINEA3:    Dim a_Empresa As New List(Of clsProducto)
LINEA4:    a_Empresa.AddRange(obj.listar())
OBJ1:
En la linea 2 instancio mi clsEmpresa de la dll que esta instalada en mi servidor de componentes,, esto si funciona.
OBJ2: En la linea 3 intento definir una coleccion de la clase clsProducto para asi poder recibir loq ue me devuelva obj.listar de la linea 4, pero da la casualidad que con esa linea de codigo (LINEA 3) me sale un error ya que clsProducto esta definido en regladenegocio.dll que dicho sea de paso esta instalada en mi servidor y accedo a ella solo por COM+.

MI PREGUNTA....

como podria corregir la linea 3 para poder crear una coleccion del tipo clsProducto usando algo asi como CREATEOBJECT de la linea2.....

MI PREGUNTA 2....
podria evitar usar el CREATEOBJECT ¿? osea simplemente declarar DIM OBJ AS NEW regladenegocio.clsEmpresa porque en todos los ejemplos de COM+ que he visto lo hacen de esa forma pero a mi no me funciona de esa forma. y tengo q hacerlo usando el createobject sino no funciona.

Recuerden que la dll REGLADENEGOCIO no esta en la misma carpeta de la APLICACION ni en la misma pc. ya que esta esta instalada en un servidor de componentes remoto y los clientes solo se instala el EXE de mi aplicacion.


Espero haberme dado a entender... muchas gracias.
cualquier cosa pregunten.
  #2 (permalink)  
Antiguo 20/07/2009, 21:02
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: Ayuda con : Enterprise Service ( COM+)

No tengo las respuestas a tu pregunta debido a que el uso de COM+ ya se quedo atras despues de las muchas facilidades de objetos remotos que te brinda Visual Studio.

El desarrollo, mantenimiento y uso de los COM+ es algo muy complejo cosa que lo dejo atras en comparacion a los Remote Objects, Web Services y por ultimo el Window Comunication Foundation.

Yo tenia aplicaciones que todo lo brindaba por TCP en binario por asunto de seguridad usando Remote Object de .NET pero con la aparicion de Windows Comunication Foundation igual mantengo todo pero lo mejor es que la misma libreria la puedes poner en Windows Services ó en IIS.

De verdad te aconsejo avanzar un poco y quitarte lo complejo que es el uso de COM+.

Saludos,
  #3 (permalink)  
Antiguo 21/07/2009, 10:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 0
Mensaje Respuesta: Ayuda con : Enterprise Service ( COM+)

Te comento....

En la aplicacion se esta usando Web Services. pasa que quisimos comparar cual de las tecnologias era la mas eficiente. ya que contamos con u na sucursal que mediante la vpn se pone muy lento.

Podrias ayudarme q arquitectura seria la mas eficiente para poder aplicarla en mi sistema..

app win + web services
app web (asp.net) + web services
app win + com+ (Enterprice services)

todo lo manejamos dentro de una vpn. y el problema es con una sucursal que tiene un acceso muy lento.

thx
  #4 (permalink)  
Antiguo 21/07/2009, 11:23
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: Ayuda con : Enterprise Service ( COM+)

Cuando el problema son sucursales con acceso dial-up que es muy muy lento lo mejor es App Win porque controlas más la carga de informacion mostrandolo por parte de forma async con mensajes de espera estamos cargando la información.

En tu caso el uso de Web Services no es solucion porque el SOAP que es XML es mas pesado que mandar solo binarios.

Si usas Visual Studio 2008 podrás hacer uso de Window Comunication Foundation (WCF) para hacer uso de servicios por TCP que son binarios a traves de la red.

Si usas Visual Studio 2005 podrías hacer uso de Remote Objects con TCP tambien y tener el mismo resultado de WCF.

De verdad tienes ya lo más importante de lo que implica el desarrollo de software y es que sabes las limitantes ahora solo deberás probar con buenos modos de uso y practicas estas tegnologia que te menciono.

Al hacer uso de estas tegnologia deberas olvidarte de tratar de pasar DataTable, DataSet, List, Dictionarys a traves de el servicio, lo que deberas es hacer uso de objetos tuyos (clases) que son las que seran serializadas y pasadas a traves de la red por TCP.

Ejemplo:
- Si tienes que mandar la informacion de clientes como ID, Dinero lo mejor es hacer un objeto Cliente que tenga parametros como ClientID y DineroDisponible y cargarlos para entonces mandarlos como respuesta de el servicio ya sea en Cliente[] array ó solo el Cliente.

Espero te ayude la información si necesitas algo más no dudes en preguntarnos que la comunidad te ayudará.

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:46.