Sin duda alguna este ha sido uno de los temas mas interesantes en el ámbito de la programacion puesto que el simple hecho de que se pueda establecer una "interoperabilidad" entre la plataforma Java y .Net abre un abanico de posibilidades para los programadores de hoy dia.
Esta maravillosa interoperabilidad se hizo posible gracias a una aplicacion Open Source de nombre "IKVM" en su versión 0.46.0.1 que permite generar archivos .DLL partiendo de un .JAR de una manera muy sencilla y rápida.
Sin mas preámbulos daremos un ejemplo de como establecer dicha interoperabilidad.
En esta oportunidad mostraremos un ejemplo de interoperabilidad entre Java y .Net siguiendo los siguientes lineamientos:
- Desarrollo del programa en tres capas (domain, logic, presentation)
- Desarrollo de la capa "domain" en NetBeans 6.9.1 (Java)
- Desarrollo de la capa "logic" y "presentation" en VisualStudios 2010 (C#)
El ejemplo consiste en generar una lista de profesores en la cual cada profesor tendra registrado su nombre, apellido, cedula de identidad y escuelas a las que esta adscrito. Este listado de escuelas debe tener un registro del nombre y numero de identificacion de cada escuela.
Primero construyamos la capa "domain" en Java la cual estara conformada por 4 clases que son:
Primero construyamos la capa "domain" en Java la cual estara conformada por 4 clases que son:
- Profesor
- Escuela
- ListaProfesores
- ListaMaterias
Clase Profesor:
Clase Escuela:
Clase ListaProfesores:
Clase Lista Escuelas:
Seguidamente hacemos un "Build" del proyecto y automaticamente se genera un archivo .JAR
Este archivo es el que necesitaremos para generar el .DLL con las funciones del IKVM.
Ahora nos dedicaremos a desarrollar las dos capas que nos quedan. Comencemos con la de "logic" para ellos necesitaremos añadir a "Referencias" nuestro archivo .DLL generado por el IKVM y eventualmente necesitaremos añadir tambien el .DLL de nombre "IKVM.OpenJDK.Core.dll" que se encuentra en la carpeta Bin del IKVM.
Seguidamente comenzamos a construir las mismas clases del "domain" pero con las caracteristicas propias de la "logic".
Aqui puedes ver como quedarian representadas estas 4 capas:
Clase LogicProfesor:
Clase LogicEscuela:
Clase LogicListaProfesores:
Clase LogicListaEscuelas:
Como pudieron notar, cuando desarrollemos una clase en la cual usemos las clases de "domain" debemos realizar un using domain; de lo contrario nos generaria error al no encontrar la procedencia de dichos procedimientos que quisieramos manipular.
Ahora creamos nuestra capa "presentation" la cual va a contener una pequeña rutina donde se creen 2 profesores, se añadan a una lista de profesores y a cada uno le añadimos una lista de 2 escuelas. Adicionalmente imprimimos para poder visualizar por consola el contenido de nuestras estructuras.
Aqui el diseño de nuestra capa "presentation": si deseas verla con mas detalle dale click sobre ella...
Finalmente corremos nuestro programa en C# y el resultado es el siguiente:
Es muy facil realizar la interoperabilidad, solo es cuestion de practica.
Aqui les dejo un enlace para que descarguen los archivos .dll y .jar y asi puedan realizar pruebas:
http://www.megaupload.com/?d=B7BKZDRJ
Si te ha gustado este post y quieres hacer algun comentario o tienes dudas sobre el proceso no dudes en hacerlo, pero recuerda hacerlo de manera respetuosa :D
No hay comentarios.:
Publicar un comentario