Introducción

Un subprograma de Java migrado a .NET Framework mediante Visual J# .NET se conoce como un control J# Browser Control. Gracias a los controles J# Browser Controls, los clientes podrán migrar sus subprogramas de Java existentes a .NET Framework.

Un control J# Browser Control tiene un comportamiento en tiempo de ejecución similar al subprograma de Java del que se migró y conserva la semántica del lenguaje Java. Si el motor en tiempo de ejecución de J# Browser Controls está instalado en el equipo, es posible que un usuario ni siquiera se dé cuenta de que un sitio Web determinado ha actualizado sus subprogramas de Java a J# Browser Controls.

Para migrar los subprogramas de Java a J# Browser Controls, es necesario instalar Visual J# .NET Redistributable Package v1.1, así como .NET Framework SDK versión 1.1 o Visual Studio .NET 2003. Del mismo modo, los usuarios que deseen ejecutar los controles J# Browser Controls alojados en un sitio Web deben tener .NET Framework 1.1 Redistributable y el motor en tiempo de ejecución de J# Browser Controls instalados en el equipo. J# Browser Controls no está pensado para ejecutarse en Java Virtual Machine. Sólo es posible ejecutar J# Browser Controls en Microsoft Internet Explorer (versión 5.1 y posteriores).

La migración de un subprograma de Java a un control J# Browser Control conlleva tres pasos:

Compilar el subprograma de Java en un control J# Browser Control utilizando el compilador de Visual J#. Actualizar la página HTML para que utilice el control J# Browser Control en lugar del subprograma de Java. Copiar el control J# Browser Control y la página HTML en el servidor Web.

Compilar un subprograma de Java en un control J# Browser Control

Es posible migrar un subprograma de Java a un control J# Browser Control compilándolo en una biblioteca administrada mediante el compilador de Visual J# (vjc.exe). El código fuente del subprograma de Java se puede compilar en un control J# Browser Control desde el símbolo del sistema o desde Visual Studio .NET. Si el subprograma de Java se desarrolló mediante Microsoft Visual J++ 6.0, simplemente implicará la actualización del proyecto a Visual J# .NET con Visual Studio .NET.

La compilación de un subprograma de Java en una biblioteca administrada es similar a la compilación de cualquier otra biblioteca de Visual J#. En la mayoría de los casos, la compilación de un subprograma de Java en una biblioteca administrada no requiere cambios en el código fuente del subprograma de Java, ya que el motor de tiempo de ejecución de J# Browser Controls admite gran parte de la funcionalidad de Microsoft Java Virtual Machine. Aquí se incluye la funcionalidad de los paquetes de nivel JDK 1.1.4 y el paquete java.applet.

Las bibliotecas administradas que contienen J# Browser Controls no son distintas de otras bibliotecas administradas de .NET Framework. Cuando un usuario visita un sitio Web que aloja un control J# Browser Control, el motor en tiempo de ejecución de J# Browser Controls descarga la biblioteca administrada y la ejecuta en Internet Explorer.

Crear un control J# Browser Control mediante los archivos Class del subprograma

Si sólo existen los archivos de código de bytes (archivos .class) para el subprograma de Java, se puede utilizar el Conversor binario de Visual J# (Jb Imp?.exe) para convertir el subprograma de Java en una biblioteca administrada.

Compilar un subprograma de Java desde el símbolo del sistema

Es posible compilar un subprograma de Java desde la línea de comandos mediante el compilador de Visual J# (vjc.exe). Por ejemplo:

C:\Applet Sources?>vjc.exe /target:library /out:My Applet?.dll *.java Este comando compilará los archivos de código fuente del subprograma de Java (con la extensión .java) en un archivo DLL de .NET Framework nuevo denominado My Applet.dll.

También se puede utilizar el Conversor binario de Visual J#:

C:\Applet Sources>jbimp.exe /target:library /out:My Applet.dll *.class Si tiene instalado Visual Studio .NET, podrá tener acceso al compilador de Visual J#(vjc.exe) y al Conversor binario de Visual J# (Jb Imp.exe) desde la ventana de comandos de Visual Studio .NET. Si no tiene instalado Visual Studio .NET, deberá asegurarse de que estas herramientas se encuentran en la ruta de acceso del símbolo del sistema.

Al migrar subprogramas de Java que utilizan recursos, deberá seguir los pasos descritos en Actualizar aplicaciones de Visual J++ 6.0 que utilizan recursos y How To?:Resources in Visual J# .NET.

Migrar un subprograma de Java mediante Visual Studio .NET

Si el subprograma de Java es un proyecto de Visual J++ 6.0, también se puede migrar mediante Visual Studio .NET.

Para actualizar un proyecto de Visual J++ 6.0 mediante Visual Studio .NET

Abra el proyecto de Visual J++ 6.0 en Visual Studio .NET. De este modo, se inicia el asistente para actualización de proyectos de Visual J# .NET. Haga clic en Siguiente en todos los pasos del asistente para actualización. El asistente para actualización convierte el proyecto de Visual J++ en un proyecto de la Biblioteca de clases de Visual J# .NET. Abra el informe de actualización para ver si el asistente detectó algún problema durante el proceso. Nota: El informe dirá No se admiten proyectos de subprograma. Puede pasar por alto este error. Deberá solucionar cualquier otro problema que aparezca en el informe de actualización antes de generar el proyecto. Genere el proyecto. Así, se compila el subprograma de Java en una biblioteca administrada. No podrá iniciar J# Browser Controls en Internet Explorer desde Visual Studio haciendo clic en Depurar y, después, en Iniciar o presionando F5. Deberá copiar el control en un directorio virtual del servidor Web para ejecutarlo. Para obtener más información, vea Implementar Controles de explorador de J# y Cómo: Depurar Controles de explorador de J#.

Para obtener más información sobre cómo actualizar los proyectos de Visual J++ 6.0 a Visual J# .NET, vea Actualizar proyectos de Visual J++ 6.0.

Actualizar la página HTML para que utilice J# Browser Controls

Después de compilar un subprograma de Java en un control J# Browser Control, el siguiente paso es actualizar las páginas HTML para que utilicen el control migrado. Es necesario convertir la etiqueta <APPLET> o la etiqueta <OBJECT> de Java de la página HTML a una etiqueta <OBJECT> que haga referencia al control J# Browser Control.

En este documento se incluye una herramienta de ejemplo denominada HTML Applet to Object Tag Converter (Tag Convert?.exe) que actualiza automáticamente las páginas HTML para que utilicen J# Browser Controls. El vínculo para descargar esta herramienta de ejemplo se encuentra al principio del documento. Descargue y ejecute Tag Convert Setup?.exe para instalar HTML Applet to Object Tag Converter (Tag Convert.exe).

La herramienta se puede utilizar del siguiente modo:

Tag Convert [options] <source files>

Por ejemplo: Tag Convert.exe My Applet Page?.html

Se puede introducir en la herramienta cualquier archivo de texto y archivos con extensión .html, .htm, .asp y .aspx. La herramienta reemplaza la etiqueta <APPLET> o la etiqueta <OBJECT> del subprograma de Java por código HTML que contiene la siguiente etiqueta <OBJECT> de J# Browser Controls:

<OBJECT

	CLASSID=“clsid:a399591c-0fd0–41f8–9d25-bd76f632415f”
	WIDTH= pixels
	HEIGHT= pixels
	ID=browserControlName
	ALIGN= alignment
	HSPACE= pixels
	VSPACE= pixels
	VJSCODEBASE = codebaseURL

>

	<PARAM NAME = parameter1 VALUE = value>	
	<PARAM NAME = parameter2 VALUE = value>	
	. . .	
	alternateHTML	

</OBJECT>

donde: CLASSID CLASSID del control Active X que descarga y ejecuta J# Browser Controls. Este mismo CLASSID se debe utilizar en la etiqueta <OBJECT> de J# Browser Controls. VJSCODEBASE Dirección URL de la clase del control J# Browser Control y de la biblioteca administrada que contiene esta clase. El símbolo ‘#’ separa el nombre de la biblioteca administrada y el nombre de la clase del control J# Browser Control. El valor del VJSCODEBASE deberá ir entre comillas si el nombre del archivo incluye un carácter de espacio. El nombre del archivo también debe incluir la extensión del mismo. Por ejemplo: VJSCODEBASE = http://www.microsoft.com/MyApplet/MyAppletClass.dll#MyAppletClass Si decide actualizar las páginas HTML manualmente, puede hacerlo reemplazando la etiqueta <APPLET> o la etiqueta <OBJECT> del subprograma de Java por la etiqueta <OBJECT> de J# Browser Controls anterior. No obstante, es recomendable utilizar la herramienta de ejemplo, ya que genera código HTML adicional que mejora la exploración.

Proceso de conversión Al convertir páginas HTML, la herramienta elimina la etiqueta <APPLET> original o la etiqueta <OBJECT> del subprograma de Java, y la reemplaza por código HTML que también incluye la etiqueta <OBJECT> de J# Browser Controls descrita anteriormente. Asimismo, la herramienta genera un archivo Java Script denominado jbctagconvert.js en cada uno de los directorios en los que se ejecuta. Cuando se carga la página HTML actualizada en un explorador, el código HTML actualizado y el archivo Java Script procesan el control J# Browser Control en la ventana del explorador. La herramienta genera el archivo Java Script para mejorar la capacidad de exploración de los controles J# Browser Controls en una futura actualización de Internet Explorer. Para obtener más detalles al respecto, vea Information for Developers about Changes to Internet Explorer

Nota: La etiqueta <APPLET> o la etiqueta <OBJECT> del subprograma de Java se reemplaza por la etiqueta <OBJECT> de J# Browser Controls comprendida entre comentarios y precedida de la etiqueta <SPAN>. No se debe eliminar este bloque de comentarios ni la etiqueta <SPAN> asociada, ya que son necesarios para que aparezca el control J# Browser Control. Tampoco se debe eliminar el archivo Java Script, jbctagconvert.js, que genera la herramienta y éste debe estar presente en todos los directorios que tengan una página HTML con un control J# Browser Control.

La herramienta crea una copia de seguridad de los archivos originales antes de convertir las etiquetas. Las copias de seguridad de los archivos tienen la extensión .vjsbak. Por ejemplo, el archivo de copia de seguridad de index.htm será index.htm.vjsbak. El archivo de copia de seguridad se crea en el directorio del archivo original. La herramienta utiliza los valores de los atributos CODE y CODEBASE de la etiqueta <APPLET> original (o la etiqueta <OBJECT> del subprograma de Java) para crear el valor del atributo VJSCODEBASE. Por ejemplo:

CODE = “My Applet Class?” CODEBASE = http://www.microsoft.com/MyApplet se convierte en: VJSCODEBASE = http://www.microsoft.com/MyApplet/MyAppletClass.dll#MyAppletClass De manera predeterminada, la herramienta asume que el nombre de la clase del control J# Browser Control (en este caso, My Applet Class) es igual que el nombre del archivo DLL (My Applet Class.dll). Si los nombres de la clase del control J# Browser Control y el archivo DLL son distintos, tendrá que modificar el valor del atributo VJSCODEBASE adecuadamente. Por tanto, cuando se utiliza esta herramienta, es recomendable compilar el subprograma de Java en una biblioteca administrada con el mismo nombre que la clase del subprograma. Por ejemplo: C:\My Applet Class Sources?>vjc /target:library /out:My Applet Class.dll *.java El motor en tiempo de ejecución de J# Browser Controls sólo admite los protocolos HTTP y HTTPS en el atributo VJSCODEBASE. Todas las rutas de acceso absolutas de VJSCODEBASE deben comenzar por http:// o https://. Cuando se especifica una ruta relativa, el control J# Browser Control se carga utilizando el protocolo HTTP. J# Browser Controls no admite la carga de controles desde una ubicación distinta de DOCBASE. El valor de VJSCODEBASE debe ser igual que el de DOCBASE o uno de los subdirectorios de DOCBASE. DOCBASE hace referencia a la ubicación desde la que se carga la página HTML. Muchos atributos de OBJECT quedan intactos durante la conversión. Los detalles referentes a los atributos convertidos por Tag Convert se especifican en la siguiente sección. Muchos de los parámetros de la etiqueta <OBJECT> de J# Browser Controls son iguales que los parámetros correspondientes de la etiqueta <APPLET> o de la etiqueta <OBJECT> del subprograma de Java.

Opciones de línea de comandos Las opciones de línea de comandos que se admiten son:

/recurse:<wildcard> Hace que la herramienta busque los archivos que convertirá en el directorio actual y todos los subdirectorios de acuerdo con las especificaciones de comodines. Por ejemplo: Tag Convert /recurse *.htm *.html actualiza todos los archivos con extensión .htm y .html del directorio actual y sus subdirectorios. /verbose Hace que la herramienta imprima el nombre de los archivos que cambiaron durante la ejecución de la conversión. El nombre de archivo incluye la ruta de acceso completa al archivo. Asimismo, la herramienta imprime el número total de archivos analizados y el número total de archivos convertidos. Por ejemplo: Tag Convert /verbose \Applet Sources\Pages\*.htm > changedfiles.txt actualiza todos los archivos con extensión .htm del directorio especificado. Además, vuelca el nombre de los archivos modificados en el archivo changedfiles.txt. /nologo Impide que aparezca el mensaje de copyright. Por ejemplo: Tag Convert /nologo \Applet Sources\Pages\*.htm actualiza todos los archivos con extensión .htm del directorio especificado y elimina el mensaje de copyright.

Asignación de atributos entre la etiqueta <APPLET> y la etiqueta <OBJECT> de J# Browser Controls

La tabla siguiente muestra la asignación entre los atributos de la etiqueta <APPLET> y los de la etiqueta <OBJECT> de J# Browser Control.

Sintaxis de la etiqueta <APPLET> (incluye extensiones de Internet Explorer)

 Sintaxis de la etiqueta <OBJECT> de J# Browser Controls

CODEBASE

 VJSCODEBASE

CODE

 VJSCODEBASE

WIDTH

 WIDTH

HEIGHT

 HEIGHT

NAME

 ID

ID

 ID

ALIGN

 ALIGN

VSPACE

 VSPACE

HSPACE

 HSPACE

ARCHIVE

 Eliminado y no compatible con la versión actual

ALT

 ALT

<PARAM>

 <PARAM>

<PARAM NAME = Fire Script Events? VALUE = True>

 Queda intacto, pero no se admite en la versión actual

<PARAM NAME = cabbase VALUE = cabFileName> <PARAM NAME = cabinets VALUE = cabFileNames>

 Queda intacto, pero no se admite en la versión actual

<PARAM NAME = useslibrary VALUE = DU Friendly Name?> <PARAM NAME = useslibrarycodebase VALUE = DU File Name?> <PARAM NAME = useslibraryversion VALUE= DU Version Number?>

 Queda intacto, pero no se admite en la versión actual

<PARAM NAME = namespace VALUE = applicationNamespace>

 Queda intacto, pero no se admite en la versión actual

En la versión actual, no se admiten los siguientes atributos de la etiqueta <APPLET> y no existen atributos equivalentes en la etiqueta <OBJECT> de J# Browser Controls:

Los atributos archive, cabbase y cabinets. En la versión actual, no es posible empaquetar los controles J# Browser Controls en archivos .cab, .zip, o .jar. J# Browser Controls debe implementarse en el servidor Web como archivos .dll independientes. El atributo Fire Script Events. En la versión actual, no es posible recibir los eventos desencadenados por J# Browser Controls en las secuencias de comandos de la página HTML. Los atributos useslibrary, useslibrarycodebase, useslibraryversion y namespace. El motor en tiempo de ejecución de J# Browser Controls no es compatible con la semántica de Java Package Manager de MSJVM.

Los atributos de la etiqueta <APPLET> que tienen equivalentes directos en la etiqueta <OBJECT> se copian tal cual. Tienen el mismo significado en la etiqueta <OBJECT> de J# Browser Controls que en la etiqueta <APPLET> original. Cuando la etiqueta <APPLET> u <OBJECT> del subprograma de Java tiene tanto el atributo NAME como el atributo ID, se elimina el atributo NAME y se utiliza el valor del atributo ID.

Implementar J# Browser Controls

Implementar un control J# Browser Control es tan fácil como copiar la biblioteca administrada y la página HTML actualizada en el directorio adecuado del servidor Web. Hay que copiar la biblioteca administrada en el mismo directorio que la página HTML o en un subdirectorio de éste. Si se utiliza la herramienta Tag Convert para actualizar la página HTML, será necesario copiar el archivo de secuencias de comandos generado, jbctagconvert.js, en el mismo directorio que la página HTML. Cuando se utiliza un servidor Web IIS, el campo Permisos de ejecución del directorio virtual debe establecerse en Sólo secuencias de comandos, el nivel de permisos predeterminado de un directorio virtual de IIS.

Implementar un control de explorador de varias DLL Es posible dividir un control J# Browser Control en varios archivos DLL. En ese caso, es necesario que se haga referencia al archivo DLL que contiene la clase principal del control J# Browser Control en la página HTML. El motor en tiempo de ejecución de J# Browser Controls descargará los archivos DLL adicionales según las necesidades en tiempo de ejecución. Cuando se implementa un control de varias DLL en un servidor Web, es necesario copiar todos los archivos relacionados con el mismo control J# Browser Control en el mismo directorio. Hay que copiar los archivos como archivos independientes y estos no pueden estar empaquetados en archivos .cab, .zip o .jar.

Empaquetar varios controles J# Browser Controls en la misma biblioteca También es posible empaquetar varios controles J# Browser Controls en la misma biblioteca administrada. En ese caso, la etiqueta <OBJECT> de todos los controles J# Browser Controls deben apuntar a la misma biblioteca administrada, pero a nombres de clase diferentes. Por ejemplo, si My Applets.dll del directorio virtual denominado Applet Dir? contiene controles J# Browser Controls denominados My Applet 1? y My Applet 2?, es posible hacer referencia a los dos controles J# Browser

Controls tal y como se indica en el siguiente ejemplo:

VJSCODEBASE=“http://www.microsoft.com/AppletDir/MyApplets.dll#MyApplet1” VJSCODEBASE=“http://www.microsoft.com/AppletDir/MyApplets.dll#MyApplet2” Dado que los controles J# Browser Controls sólo se puede descargar desde la misma ubicación que la página HTML o uno de sus subdirectorios, quizá sea necesario copiar la biblioteca administrada en varias ubicaciones si los directorios de las páginas HTML son diferentes.

Ejecutar J# Browser Controls en equipos de usuario

Lo único que los usuarios finales necesitan saber sobre J# Browser Controls es cómo instalar el motor en tiempo de ejecución de J# Browser Controls en su equipo.

Instalar el motor en tiempo de ejecución de J# Browser Controls en los equipos de usuario

Para que los usuarios vean y utilicen J# Browser Controls en Internet Explorer, es necesario que tengan el motor en tiempo de ejecución de J# Browser Controls instalado en el equipo. Usted y el administrador del sitio deberán proporcionar a los usuarios una forma de descargar e instalar J# Browser Controls. El motor en tiempo de ejecución de J# Browser Controls también admite la instalación mediante SMS o Directiva de grupo. Para obtener información sobre cómo implementar J# Browser Controls mediante SMS o Directiva de grupo, vea http://www.microsoft.com/smserver/techinfo/deployment/20/default.asp o http://www.microsoft.com/windows2000/techinfo/reskit/dpg/default.asp.

Comportamiento de seguridad de J# Browser Controls

De manera predeterminada, el motor en tiempo de ejecución de J# Browser Controls pide confirmación al usuario final antes de ejecutar los controles alojados en las páginas Web de Internet. Cuando un usuario visita un sitio Web de Internet que contiene un control J# Browser Control, aparece el siguiente cuadro de diálogo:

Si el usuario hace clic en Sí, el control J# Browser Control se descargará y se ejecutará. Si hace clic en No, impedirá que se ejecute el control J# Browser Control. Si activa la casilla de verificación Agregar este sitio a la lista de sitios donde se puede ejecutar J# Browser Controls y no volver a preguntar y hace clic en Sí, se agregará el sitio Web a la lista de sitios en los que se puede ejecutar J# Browser Controls y no se pedirá confirmación al usuario en ninguna otra página del sitio Web. De manera predeterminada, esta casilla de verificación está activada. El motor en tiempo de ejecución de J# Browser Controls no pide confirmación al usuario cuando se ejecuta desde sitios Web de la intranet. El usuario también puede utilizar el cuadro de diálogo de opciones de seguridad de J# Browser Controls que se encuentra disponible en Herramientas administrativas, en el Panel de control, para administrar la lista de sitios en los que se permite ejecutar J# Browser Controls. En Windows XP, se puede obtener acceso a este cuadro de diálogo desde Rendimiento y mantenimiento, en el Panel de control. En Windows 98 y Windows Me, puede obtener acceso a este cuadro de diálogo desde el menú Herramientas administrativas del menú Inicio. Haga doble clic en Seguridad de J# Browser Control para abrir el siguiente cuadro de diálogo:

Las opciones son: Deshabilitar J# Browser Controls Impide que se ejecute en el equipo J# Browser Controls desde cualquier sitio Web. Sólo desde los sitios Web de esta lista Sólo es posible ejecutar J# Browser Controls desde los sitios Web de la lista. Sólo en la intranet y desde los sitios Web de esta lista Sólo es posible ejecutar J# Browser Controls en el equipo desde la intranet o desde los sitios Web de la lista. Ésta es la configuración predeterminada. En cualquier sitio Web Se puede ejecutar J# Browser Controls en el equipo desde cualquier sitio Web. Esta opción no se recomienda y debe seleccionarse con cautela. Si escribe la dirección de un sitio Web en el cuadro de texto Agregar sitio Web y hace clic en Agregar, el sitio Web se agrega a la lista de sitios en los que se permite ejecutar J# Browser Controls. Del mismo modo, si selecciona un sitio Web de la lista Sitios Web donde se puede ejecutar J# Browser Controls y hace clic en Quitar, el sitio se quita de la lista. Cuando se agrega un sitio Web a la lista de sitios en los que se permite ejecutar J# Browser Controls, no se pedirá confirmación al usuario antes de ejecutar J# Browser Controls en ese sitio Web. De manera predeterminada, la casilla de verificación Pedir confirmación para agregar nuevos sitios Web a la lista en el futuro se encuentra activada, lo que hace que el motor en tiempo de ejecución de J# Browser Controls pida confirmación al usuario antes de ejecutar J# Browser Controls desde los sitios Web que no están en la lista. Cuando esta casilla de verificación está desactivada, no se ejecuta J# Browser Controls desde los sitios Web que no están en la lista y no se pide confirmación al usuario.

Características no compatibles con la versión actual

No se admiten las siguientes características en la versión actual de J# Browser Controls:

Acceso a J# Browser Controls desde las secuencias de comandos de las páginas HTML No se admite el acceso a los métodos y variables públicos de un control J# Browser Control desde las secuencias de comandos de las páginas HTML. Tampoco se admite la recepción de eventos desencadenados por J# Browser Controls en las secuencias de comandos mediante el atributo <param name=Fire Script Events value=True>. Seguridad basada en las relaciones de confianza No se admite la semántica de seguridad basada en las relaciones de confianza, al contrario que en MSJVM. Cuando se migran los subprogramas de Java a J# Browser Controls, utilizan la semántica de seguridad descrita en Semántica de seguridad para J# Browser Controls. Java Package Manager En J# Browser Controls, no se admite la funcionalidad Java Package Manager compatible con MSJVM. J# Browser Controls no admite memorias caché de objetos que se puedan utilizar para instalar clases de manera local y, después, ejecutarlas con un conjunto restringido de permisos mediante la firma de permisos. Por tanto, tampoco es posible instalar y ejecutar Unidades de distribución. Archivos de almacenamiento No se admiten los archivos de almacenamiento. Es posible dividir un control J# Browser Control en varias bibliotecas administradas. Sin embargo, cuando se implementa un control de varias bibliotecas en un servidor Web, es necesario copiar los archivos como archivos independientes y estos no pueden estar empaquetados en archivos .cab, .zip, o .jar. Incompatibilidad con el diseñador No existe la compatibilidad con el diseñador en Visual Studio .NET para J# Browser Controls.

Conclusión

Gracias a J# Browser Controls, los desarrolladores pueden migrar sus subprogramas de Java para ejecutarlos en .NET Framework. Los controles J# Browser Controls poseen el mismo comportamiento de motor en tiempo de ejecución que los subprogramas de Java desde los que se migraron y conservan la semántica del lenguaje Java. Asimismo, los controles J# Browser Controls tienen acceso total a.NET Framework, incluyendo la capacidad de acceso a la compatibilidad nativa de los servicios Web XML. También permiten a los desarrolladores de J# habilitar la funcionalidad enriquecida del cliente en una aplicación basada en Web. Vea también Artículos sobre Visual J# .NET | Clases a las que un control J# Browser Control puede tener acceso | Cómo: Depurar J# Browser Controls | Semántica de seguridad para J# Browser Controls | Admitir controles J# Browser Controls y subprogramas de Java en la misma página

Clases a las que un control J# Browser Control puede tener acceso

En general, los controles J# Browser Controls tienen acceso a todas las clases admitidas en el motor en tiempo de ejecución de J# Browser Controls. Para obtener más información, vea Compatibilidad con la Biblioteca de clases. Si Supplemental UI Library for Visual J# .NET está instalado, los controles J# Browser Controls también tendrán acceso a las clases de esta biblioteca. Los controles J# Browser Controls también tienen acceso a todas las clases de .NET Framework. Sin embargo, es importante observar que, cuando los controles J# Browser Controls se ejecutan desde Internet o la intranet, no tiene acceso a determinadas clases que requieren que sus llamadores sean de plena confianza. Entre los ejemplos de estas clases se encuentran las clases de Windows Foundation Classes (WFC), las clases com.ms.* o las de Supplemental UI Library. De manera predeterminada, los controles J# Browser Controls que se ejecutan desde Internet o la intranet se consideran código de confianza parcial. Los pasos para ejecutar un control J# Browser Control como un control de plena confianza se describen en Semántica de seguridad para J# Browser Controls. Vea también Migrar subprogramas de Java a Microsoft J# Browser Controls | Cómo: Depurar J# Browser Controls | Semántica de seguridad para J# Browser Controls | Admitir controles J# Browser Controls y subprogramas de Java en la misma página

Cómo: Depurar J# Browser Controls

Para depurar J# Browser Controls

Haga clic con el botón secundario del mouse (ratón) en la solución y seleccione Propiedades en el menú contextual. Aparece el cuadro de diálogo Páginas de propiedades. Haga clic en la ficha Depurar archivos de código fuente y establezca la ruta de acceso de símbolos en la ubicación del archivo .pdb file correspondiente a la biblioteca administrada. Para obtener más información, vea Depurar. Ya puede depurar la biblioteca del control J# Browser Control estableciendo Internet Explorer como el programa ejecutable que se utilizará y pasando la dirección URL al control J# Browser Control como parámetro.

Para establecer las opciones adecuadas Haga clic con el botón secundario del mouse en el proyecto y seleccione Propiedades en el menú contextual. Aparece el cuadro de diálogo Páginas de propiedades. Haga clic en la ficha Propiedades de configuración y, a continuación, haga clic en Depurar. Establezca el Modo de depuración en Programa. En Aplicación de inicio, establezca la ruta de acceso al archivo IEXPLORE.EXE (por ejemplo, C:\Archivos de programa\Internet Explorer\IEXPLORE.EXE). En Argumentos de la línea de comandos, establezca la dirección URL del archivo .htm en el que se aloja el control J# Browser Control. Haga clic en Aceptar. Establezca los puntos de interrupción habituales en el código del control J# Browser Control. En el menú Depurar, haga clic en Iniciar. Nota: En lugar de utilizar IEXPLORE.EXE como archivo ejecutable para depurar, también es posible asociarse a la instancia de una ventana de Internet Explorer que esté en ejecución y depurar.

Vea también Migrar subprogramas de Java a Microsoft J# Browser Controls | Clases a las que un control J# Browser Control puede tener acceso | Semántica de seguridad para J# Browser Controls | Admitir controles J# Browser Controls y subprogramas de Java en la misma página

Semántica de seguridad para J# Browser Controls

En los equipos de usuario, J# Browser Controls se ejecuta mediante el acceso a las clases del motor en tiempo de ejecución de J# Browser Controls y .NET Framework. Muchas de estas clases solicitan los permisos adecuados a sus llamadores antes de realizar operaciones delicadas, como obtener acceso a los archivos o eliminarlos. Las operaciones que puede realizar un control J# Browser Control dependen de dónde se descargue éste y de la directiva de seguridad de .NET Framework del equipo. Por ejemplo, los controles J# Browser Controls que se descargan de Internet o de la intranet no tienen acceso a los archivos del equipo en el que se ejecutan. Existen otros aspectos de seguridad que los desarrolladores deben conocer:

Los métodos java.applet.Applet.getAudioClip y java.applet.Applet.getImage únicamente permiten el acceso a los recursos situados en el mismo servidor Web desde el que se descarga el control J# Browser Control. Los controles J# Browser Controls sólo pueden crear sockets que utilicen el protocolo TCP. No es posible crear sockets que utilicen el protocolo UDP.

Implementar controles J# Browser Controls de plena confianza MSJVM permite a los desarrolladores empaquetar las clases del subprograma de Java en un archivo .cab, firmar el archivo .cab con un certificado Authenticode y asociar permisos de Java a ese archivo .cab. Cuando se descarga un archivo .cab firmado desde una página, la firma se examina para comprobar que contiene información sobre los permisos. Si es así, Internet Explorer y Microsoft Virtual Machine trabajan conjuntamente para determinar qué podrá hacer el subprograma. Esta determinación se basa en el nivel de seguridad de la zona desde la que se descarga el archivo .cab, de los permisos solicitados en la firma de dicho archivo y de la respuesta del usuario en caso necesario. Este mecanismo se denominaba seguridad basada en relaciones de confianza. El motor en tiempo de ejecución de J# Browser Controls no admite la seguridad basada en relaciones de confianza. Para ejecutar un control J# Browser Control con plena confianza, debe estar firmado con un archivo de par de claves. Es necesario modificar la directiva de seguridad de .NET Framework de los equipos de usuario para que confíe plenamente en el código firmado con ese par de claves concreto. El compilador de Visual J# admite la firma de archivos DLL con archivos de par de claves. Se puede utilizar la herramienta sn.exe de .NET Framework SDK para generar archivos de par de claves. Para obtener más información sobre cómo generar archivos de par de claves, vea Ensamblados con nombre seguro. Para que los controles J# Browser Controls firmados puedan realizar operaciones tales como operaciones de E/S de archivos, es necesario actualizar la directiva de seguridad de .NET Framework de los equipos de los usuarios finales para otorgar permisos adicionales al código firmado con el par de claves. Esta directiva de seguridad de los equipos de los usuarios finales se puede actualizar mediante archivos de directiva. El documento .NET Framework Enterprise Security Policy Administration and Deployment contiene información sobre distintos métodos para crear e implementar archivos de directiva de seguridad de .NET Framework. Vea también Migrar subprogramas de Java a Microsoft J# Browser Controls | Clases a las que un control J# Browser Control puede tener acceso | Cómo: Depurar J# Browser Controls | Admitir controles J# Browser Controls y subprogramas de Java en la misma página

Admitir controles J# Browser Controls y subprogramas de Java en la misma página

Los visitantes de muchos sitios Web de Internet probablemente sean una mezcla de usuarios de Internet Explorer y de usuarios de otros exploradores que no son de Microsoft. Del mismo modo, muchos de estos visitantes serán una mezcla de aquellos que tengan J# Browsers Controls instalado y aquellos que sólo tengan Java Virtual Machine. Los sitios Web que tienen que admitir subprogramas de Java y controles J# Browser Controls pueden especificar tanto la etiqueta <OBJECT> de J# Browser Controls como la etiqueta del subprograma de Java, y pueden hacer que se ejecute la etiqueta adecuada basándose en la versión del explorador y en si está instalado J# Browser Controls. Existen varias posibilidades de admitir controles J# Browser Controls y subprogramas de Java en la misma página HTML. Una posible solución es utilizar las extensiones HTML+TIME compatibles a partir de Internet Explorer 5.0. HTML+TIME (Timed Interactive Multimedia Extensions) permiten la aparición selectiva de elementos en una página HTML, dependiendo de la capacidad del explorador. HTML+TIME no se basa en secuencias de comandos. El siguiente fragmento de código muestra cómo se puede utilizar HTML+TIME para ejecutar de forma selectiva controles J# Browser Controls o subprogramas de Java. En muchos casos, podrá copiar y pegar el siguiente fragmento de código en la página HTML y hacer que funcione después de cambiar los valores de los atributos adecuados.

<HTML xmlns:t =“urn:schemas-microsoft-com:time”> <HEAD>

  <STYLE>
     .time { behavior: url(#default#TIME2); }
  </STYLE>
  <?IMPORT namespace=“t” implementation=“#default#time2″>

</HEAD> <!--[if gte IE 5.1]> <t:excl> <OBJECT class=“time”

  id=“JVM” 
  begin=“0;” 
  dur=“indefinite” 
  timeAction=“display” 
        codetype=“application/java” 
        height=100 width=500 
        classid=“java:My Applet.class”>
   <br>
   <object class=“time” 
  id=“JBC” 
  begin=“0;” 
  dur=“indefinite”  
  timeAction=“display” 
  height=100 width=500 
  CLASSID=“clsid:a399591c-0fd0- 41f8–9d25-bd76f632415f”
  VJSCODEBASE=“My Applet Library?.dll#My Applet”>
   <br>
   </OBJECT>

</OBJECT> </t:excl> <![endif]→

<![if lt IE 5.1]> <APPLET class=“time”

     id=“JVM” 
     begin=“0;” 
     dur=“indefinite” 
     timeAction=“display” 
     height=300 width=965 
     code=My Applet.class>

</APPLET> <![endif]> </HTML>

Las etiquetas HTML+TIME son extensiones de Internet Explorer que se admiten en la versión 5.0 y posteriores. Dado que las etiquetas aparecen entre bloques de comentarios, los exploradores que no son de Microsoft y las versiones anteriores de Internet Explorer las pasan por alto. Por tanto, las páginas HTML que utilizan estas extensiones también se pueden procesar en exploradores anteriores o que no son de Microsoft. El fragmento de código anterior tiene el siguiente comportamiento cuando se ejecuta en Internet Explorer 5.0 y posterior:

Si están instalados el motor en tiempo de ejecución de J# Browser Controls y Java Virtual Machine, se ejecuta el control J# Browser Control. Si sólo está instalado el motor en tiempo de ejecución de J# Browser Controls, se ejecuta el control J# Browser Control. Si sólo está instalado Java Virtual Machine, se ejecuta el subprograma de Java. Si no está instalado ninguno de los dos, se muestra una página en blanco. Cuando se ejecuta en una versión anterior de Internet Explorer o en un explorador que no sea de Microsoft, se ejecuta el subprograma de Java. El fragmento de código consta de dos secciones: una empieza por <!--[if gte IE 5.1]> y la otra por <![if lt IE 5.1]>. El código que aparece a continuación de <!--[if gte IE 5.1]> sólo se ejecuta cuando el explorador es Internet Explorer versión 5.1 o posterior. El código que aparece debajo de <![if lt IE 5.1]> se ejecuta cuando el explorador no es de Microsoft o es una versión anterior de Internet Explorer. La etiqueta <t:excl> de HTML+TIME garantiza que no se procese ninguna otra etiqueta si ya se ha procesado una. La etiqueta <OBJECT> que se procesa es la que el explorador sea capaz de procesar; esto depende de si está instalado J# Browser Controls o Java Virtual Machine en el equipo. Para ver una descripción detallada de los atributos que se utilizan, vea http://msdn.microsoft.com/library/default.asp?url=/workshop/author/behaviors/time.asp. Vea también Migrar subprogramas de Java a Microsoft J# Browser Controls | Clases a las que un control J# Browser Control puede tener acceso | Cómo: Depurar J# Browser Controls | Admitir controles J# Browser Controls y subprogramas de Java en la misma página link textAttach:file.ext

vealo en la pagina: http://www.microsoft.com/spanish/msdn/articulos/archivo/101003/voices/vjtskmigratingjavaappletstomicrosoftjbrowsercontrols.asp


Google