Foros del Web » Programando para Internet » ASP Clásico »

Componentes en VB

Estas en el tema de Componentes en VB en el foro de ASP Clásico en Foros del Web. Amigos! Alguno de ustedes ha creado componentes en Visual Basic, para despues usarlos con paginas de ASP, la verdad no tengo idea de como sea ...
  #1 (permalink)  
Antiguo 08/01/2002, 15:20
 
Fecha de Ingreso: enero-2002
Ubicación: Veracruz
Mensajes: 67
Antigüedad: 22 años, 5 meses
Puntos: 0
Componentes en VB

Amigos!
Alguno de ustedes ha creado componentes en Visual Basic, para despues usarlos con paginas de ASP, la verdad no tengo idea de como sea esto, si me pueden ayudar se los agradeceré mucho
Salu2

(V)
('.')
(") (")
Gracias
  #2 (permalink)  
Antiguo 08/01/2002, 17:03
 
Fecha de Ingreso: octubre-2000
Ubicación: Juarez, Chih.
Mensajes: 161
Antigüedad: 23 años, 8 meses
Puntos: 0
Re: Componentes en VB

Saludos.

Muy bien, esperaba desde hace mucho que alguien hiciera esa pregunta.

Dejame te doy un resumén sobre componentes creado con Visual Basic.

Beneficios de usar Componentes de Servidor...

Reusabilidad (un mismo componente puede ser usado por diferentes aplicaciones).
Protección de la propiedad intelectual (se crean programas ejecutables compilados DLL).
Escabilidad (te permite distribuir tu aplicación entre servidores).
La flexibilidad de configuración y arranque.
Acceso al sistema, como podrián ser llamadas al Win32 API.
Separar la lógica de programación del tu empresa de la interface del usuario, ó separar al diseñador de la Web del desarrollador de la Web.
Un componente puede ser usado desde otro componente.
Los componentes de servidor son archivo ejecutables compilados (.DLL)

En contra...

Tienes que tener IIS para poder usar esto componentes.
Para poder registrar el componente en el servidor, tienes que tener acceso total a él.
Una vez instalado el componente y deseas hacerle una actualización, tienes que detener el servicio Web con el IIS para poder reemplazar el archivo (.DLL)

Que es exactamente lo que deseas hacer?


---------------------
Espero que esto ayude...
  #3 (permalink)  
Antiguo 09/01/2002, 14:47
 
Fecha de Ingreso: diciembre-2001
Mensajes: 29
Antigüedad: 22 años, 6 meses
Puntos: 0
Re: Componentes en VB

Sólo agregar dos cosas:

<BLOCKQUOTE><font size=1 face=arial>Citando:<hr height=1 noshade>Tienes que tener IIS para poder usar esto componentes [/QUOTE]

También puedes usar los famosos COM (DLLs u OCXs) utilizando el PWS (Personal Web Server).

<BLOCKQUOTE><font size=1 face=arial>Citando:<hr height=1 noshade>(se crean programas ejecutables compilados DLL). [/QUOTE]

Todo programa Ejecutable (.EXE) es compilado. Las DLLs son librerías de acceso dinámico, es decir, funciones compiladas que al ser llamadas desde una aplicación, se cargan en memoria y luego se descargan cuando ya no las requieres.

Para crear una DLL u OCX ve en la página del Guille <a href='ir.asp?http://guille.costasol.net/' target='_blank'>http://guille.costasol.net/...</a> hay un Tutorial...

Las DLLs u OCX que creaste y registraste apropiadamente pueden ser llamadas de la siguiente forma:
&lt;%
dim nomdll
set nomdll = createobject(&quot;userdll.usuario&quot;)
nomdll.mensaje(&quot;hola&quot;)
set nomdll = Nothing
%&gt;

Saludos :)

Elfhelm
"Los cuatro puntos cardinales son tres, el Norte y el Sur"
  #4 (permalink)  
Antiguo 09/01/2002, 14:51
 
Fecha de Ingreso: enero-2002
Ubicación: Veracruz
Mensajes: 67
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Componentes en VB

Excelente amigos, si cuento con IIS, y puedo tener control absoluto del servidor, lo que no se es como hacerlo, se hace en visual basic?, bueno mientras me voy a leer el manual que mencionan a ver que tal esta, pero si pueden ayudarme de otra forma (ejemplos de codigo o algo asi)se los agradecere mucho.
Muchisimas gracias nuevamente
Salu2

(V)
('.')
(") (")
Gracias
  #5 (permalink)  
Antiguo 09/01/2002, 17:32
 
Fecha de Ingreso: diciembre-2001
Mensajes: 29
Antigüedad: 22 años, 6 meses
Puntos: 0
Re: Componentes en VB

Ivan:
A ver si te sirve esto:

¿Como creo una DLL utilizando Visual Basic?

1.- Crear un proyecto Nuevo. (VB 32 Bits, en este Ejemplo use VB 4.0 32 Bits)

2.- Agregar un Módulo de Clase (Menú Insertar -&gt; Módulo de Clase)

3.- Editar las Propiedades del Módulo de Clase y modificarlas de la siguiente forma:

Instancing 2 - Creatable Multiuse
Name miclase
Public True

4.- Ahora Creo un &quot;Método&quot; (o Procedimiento) de Ejemplo en el Módulo de Clase (miclase)

<pre>Public Sub ShowMsg(ByVal Msg As String)
MsgBox Msg
End Sub </pre>

5.- Ahora Creo una &quot;Propiedad&quot; (o Función) de Ejemplo en el Módulo de Clase (miclase)

<pre>Public Function GetMsg() As String
GetMsg = &quot;ESTE MENSAJE SE RECUPERO DE LA DLL&quot;
End Function </pre>

6.- Agregar un Módulo .BAS (Menú Insertar -&gt; Módulo)

7.- Editar las Propiedades del Módulo .BAS y modificarlas de la siguiente forma:

Name mibas

8.-Crear Función Principal como Entrada al Servidor OLE en el Módulo .BAS (mibas)

<pre>Public Sub Main()
'Entrada al Servidor OLE
End Sub </pre>

10.- Guardo mi Módulo de Clase como MIDLL.CLS, mi módulo .BAS como MIDLL.BAS y mi Proyecto como MIDLL.VBP

9.- Chequeo que mi Formulario Incial sea la función Main
Menú Herramientas -&gt; Opciones -&gt; Etiqueta Proyecto -&gt; Formulario Inicial debe ser Sub Main y Nombre del Proyecto debe ser midll

11.- Ahora Creo mi DLL
Menú Archivo -&gt; Crear Archivo DLL de OLE
La guardo como MIDLL.DLL en el directorio c:\Windows\System

12.- Salgo de VB (Salvando todo Obviamente)

Ya tengo Lista mi DLL!!! :)

No te pierdas el próximo mensaje de como registrar y llamar a mi DLL !! (a esta hora y en este canal) ;)

Elfhelm
"Los cuatro puntos cardinales son tres, el Norte y el Sur"
  #6 (permalink)  
Antiguo 09/01/2002, 17:38
 
Fecha de Ingreso: diciembre-2001
Mensajes: 29
Antigüedad: 22 años, 6 meses
Puntos: 0
Re: Componentes en VB

Aquí está la tan esperada segunda parte y final ... ;)

¿Como Registro mi DLL ?

1.- Barra de Inicio -&gt; Ejecutar y digito en la línea de comandos:

regsvr32 c:\windows\system\midll.dll

y Aceptar... me debiese salir el mensaje: &quot;DLLREGISTERSERVER IN C:\WINDOWS\SYSTEM\MIDLL.DLL SUCCEEDED&quot;

Ya tengo Registrada mi DLL!!!:)


¿Como llamo mi DLL desde ASP?

Fácil... a través del siguiente código en mi página .ASP:

<pre>
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;LLAMADA A DLL &lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;%
dim nomdll
dim mensaje

' Creo el Objeto que hace referencia mi DLL
set nomdll = Server.Createobject(&quot;midll.miclase&quot;)

' Recupero un Mensaje llamando a la Propiedad de mi DLL
mensaje = nomdll.GetMsg()

' Muestro el Mensaje recuperado en mi página
response.write(mensaje)

' Llamo al Método de mi DLL que despliega el Mensaje
nomdll.ShowMsg(mensaje)

' Destruyo el Objeto asociado a mi DLL
set nomdll = Nothing
%&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>

Espero que te corra bien :)

Saludos y Suerte!!:)

Elfhelm
"Los cuatro puntos cardinales son tres, el Norte y el Sur"
  #7 (permalink)  
Antiguo 09/01/2002, 18:26
 
Fecha de Ingreso: enero-2002
Ubicación: Veracruz
Mensajes: 67
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Componentes en VB

Muchisimas Gracias, lo voy a aplicar, si tengo algun problema te puedo escribir a tu mail?
Gracias
Salu2

(V)
('.')
(") (")
Gracias
  #8 (permalink)  
Antiguo 09/01/2002, 18:49
 
Fecha de Ingreso: octubre-2000
Ubicación: Juarez, Chih.
Mensajes: 161
Antigüedad: 23 años, 8 meses
Puntos: 0
Re: Componentes en VB

Saludos.

Ivan, ahora que ya sabes como crear y utilizar las DLLs desde tus ASPs; que aplicación en espécifico necesitas desarrollar?

Elfhelm: Muy bien tu ayuda, lo único en que no estoy de acuerdo es en... &quot;funciones compiladas que al ser llamadas desde una aplicación, se cargan en memoria y luego se descargan cuando ya no las requieres.&quot;....

Las DLLs siempre son cargadas en memoria cuando prendes tu computadora (o servidor en cada caso) y ahi estarán siempre para que desde cualquier aplicación, quien quiera las use. El ejemplo más común de esto son las API.

Las DLLs no se 'descargan' más bien se elimina el registro de la misma... ( regsvr32 /u c:\windows\system\midll.dll ), para que la próxima vez que inicies el servidor, esta (la DLL), no se intente cargar; aún cuando el archivo de la DLL continue ubicado en c:\windows\system\midll.dll

Nota: Je, un poco de polémica para variar.



---------------------
Espero que esto ayude...
  #9 (permalink)  
Antiguo 09/01/2002, 19:26
 
Fecha de Ingreso: enero-2002
Ubicación: Veracruz
Mensajes: 67
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Componentes en VB

Muchas Gracias por su atuda
Saludos a Todos y espero poderlos ayudar en algo que necesiten tambien.

Nos vemos pronto
Salu2

(V)
('.')
(") (")
Gracias
  #10 (permalink)  
Antiguo 10/01/2002, 08:28
 
Fecha de Ingreso: diciembre-2001
Mensajes: 29
Antigüedad: 22 años, 6 meses
Puntos: 0
Re: Componentes en VB

Estimado Vgaray:

Estás completa y absolutamente equivocado <img src='images/tongue.gif' width=15 height=15 align=middle>. Las DLL son librerías de acceso dinámico (D yamic L ink L ibrery) y la &quot;gracia&quot; que tienen es que efectivamente se cargan y descargan de memoria (RAM) en forma dinámica, es decir, en la medida en que la aplicación que las utilice las requiera. Algunas API se mantienen cargadas en Memoria mientras estás en Windows debido a que, obviamente, Windows las utiliza (Kernel, User, etc.), descargándose en el momento que cierres Windows o lo reinicialices en modo DOS. Lo anterior no tiene nada que ver con el Registro de Windows, de hecho, no todas las DLLS requieren ser registradas.

Existe un programa llamado WPS (creo que venía en el VB 3.0)que te permite ver los módulos .EXE y .DLL que se encuentran cargados en memoria, con esto puedes chequear que DLLs son cargadas y posteriormente descargadas al llamar una u otra Aplicación (Ej: Excel, Word, Notepad, etc.)

En la Red existe mucha Documentación respecto a la finalidad y funcionamiento de las famosas DLLs, APIs, COM, OCXs, etc.:)

Ivan: No problem, mi e-mail es [email protected]

Espero haber aportado un poquito a vuestros conocimientos...;)

Saludos


Elfhelm
"Los cuatro puntos cardinales son tres, el Norte y el Sur"
  #11 (permalink)  
Antiguo 10/01/2002, 15:13
 
Fecha de Ingreso: enero-2002
Mensajes: 10
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Componentes en VB

Hola a todos...

Elfhelm quiero aprovechar la oportunidad para ver si tú me puedes ayudar con un problema que tengo...verás tengo un componente (*.dll) que uso en una página ASP, donde el componente tiene que hacer uso de un documento que reside en una subcarpeta del sitio pero me esta marcando un error sobre el uso de dicho documento (&quot;no puede abrirlo&quot;); sin embargo esto funciona perfectamente en un servidor nt no así en el w2000 server, supongo puede ser provocado por la seguridad impuesta en el w2000 pero no he logrado solucionarlo...:(

Espero puedas ayudarme, o cualquier otra persona...gracias de antemano :)
  #12 (permalink)  
Antiguo 11/01/2002, 19:07
 
Fecha de Ingreso: octubre-2000
Ubicación: Juarez, Chih.
Mensajes: 161
Antigüedad: 23 años, 8 meses
Puntos: 0
Re: Componentes en VB

Saludos.

Epa Elfhelm, en que estoy completa y absolutamente equivocado?

A ver, regresemos al inicio de esta conversación (Ivan:Amigos!
Alguno de ustedes ha creado componentes en Visual Basic, para despues usarlos con paginas de ASP...)

Están mal los beneficios de usar Componentes de Servidor que le comenté a Ivan?

Cuando comenté que tienes que tener IIS para poder usar estos componentes tienes que ejecutarlos bajo el Internet Information Server de Windows, tal vez me falto agregar... ó algún otro servidor compatible con el API (Aplication Program Interface) del IIS.

&quot;(se crean programas ejecutables compilados DLL)&quot;. Aquí si fallé, pero creo que es entendible lo que quise decir verdad?

Otro punto, yo dijo que las DLLs tienen que registrarse (para ser usadas desde alguna pagina ASP). En tu esperada segunda parte y final ofreces los pasos para registrar una dll para ser usada desde una asp (la idea inicial de mensaje de Ivan). Entonces tienes que registrarlas en este caso ó no?

Yo dijo,(Las DLLs no se 'descargan' más bien se elimina el registro de la misma... ( regsvr32 /u c:\windows\system\midll.dll ), para que la próxima vez que inicies el servidor, esta (la DLL), no se intente cargar; aún cuando el archivo de la DLL continue ubicado en c:\windows\system\midll.dll)... Si creas una DLL para ser usada en una ASP y ya no la deseas usar o quieres liberar recursos ó quieres reemplazarla con una nueva versión de la misma DLL, como lo haces entonces?


En lo referente a que desde una aplicación ''carges'' o ''descarges'' DLLs; estoy de acuerdo contigo.

Una pregunta, puedes ''descargar'' del servidor web desde una ASP la libreria CDONTS?

Tu dices...&quot;Espero haber aportado un poquito a vuestros conocimientos..&quot;. Estoy de acuerdo contigo.

Espero respuesta.

Ivan, disculpa por llenar tu buzón de correo. Pero necesito aclarar mis equivocaciones.

&quot;Tengo más miedo no saber que miedo a preguntar&quot;
  #13 (permalink)  
Antiguo 10/02/2002, 14:09
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Componentes en VB

Hola amigos:

He estado leyendo sus comentarios acerca de componetes y me parecio interesante la discusión. He estado desarrollando componentes hace un buen tiempo y queria aportar algo.

Las dlls siempre se registran en el sistema operativo para que puedan ser usadas por los clientes y no necesariamente por una página web, podria ser una application visual basic, power builder.. etc, por lo tanto no se necesita IIS para usarla.

Se registra para que puedan ser accesibles por algun cliente, pero eso no significa que se cargue en memoria. Es como declarar un variable pero no instanciarla.
  #14 (permalink)  
Antiguo 10/02/2002, 14:25
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Componentes en VB

Continuación..

En el código ejemplo que alguno de uds brindo se estan definiendo un modulo .bas. Si NO estas usando Microsoft Transactión Server del windows NT o COM+ de windows 2000, no habria problemas, porque el manejo de los componentes por el s.o siempre es ineficiente.

Pero SI estan usando MTS o COM+ eso SI SERÍA UN ERROR GRAVE porque sus componentes estan manteniendo estados (uso de variables globales o módulos .bas) de una llamada a otra, por lo que desperdician las funcionalidades para las que fue creada el mts, (manejor efeciente de los componentes).

Es decir, estarian usando mts o com+ pero trabajando como si no lo tuvieran.

Otro detalle es el seteo de las propiedades del componentes, existe muchisimos mas si es que quieres trabajar con MTS o COM+ pero esa ya es otra historia.

Cualquier consulta no duden en comunicarse conmigo.

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 01:47.