You are on page 1of 198

UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD DE INGENIERIA

Evaluacin Comparativa de aplicaciones Web entre J2EE y Microsoft.NET

por

MIGUEL ANGEL GARRIDO PINO

Trabajo de Ttulo presentado a la Facultad de Ingeniera de la Universidad Catlica de Temuco Para Optar al Ttulo de Ingeniero de Ejecucin en Informtica Temuco, 2006

UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD DE INGENIERIA

COMISIN EXAMEN DE TITULO

Este Examen de Ttulo ha sido realizado en la Escuela de Informtica.

Presidente Comisin :

............................................................................... Sr. Oriel Herrera Gamboa Ingeniero Civil Industrial M / Informtica Doctor (c) En Ciencias de la Computacin

Profesor Gua:

............................................................................... Sr. Gustavo Donoso Montoya Ingeniero Civil Informtico

Profesor Informante :

............................................................................... Sr. Alejandro Mellado Gatica Ingeniero de Ejecucin en Informtica Magster en Telecomunicaciones

Secretario Acadmico: Escuela de Informtica

............................................................................... Sr. Lus Alberto Caro Saldivia Ingeniero Civil en Informtica

Temuco Enero 2006.

FACULTAD DE INGENIERA ESCUELA DE INGENIERA INFORMTICA

INFORME TRABAJO DE TTULO


TTULO ALUMNO : EVALUACION COMPARATIVA DE APLICACIONES WEB ENTRE J2EE
Y MICROSOFT.NET

: MIGUEL ANGEL GARRIDO PINO

En mi condicin de profesor gua de este trabajo puedo efectuar las siguientes observaciones: El alumno Miguel Garrido, en el transcurso del desarrollo del proyecto, mostr una buena disposicin al trabajo, fue constante en el desarrollo del mismo y obtuvo resultados. Tambin, como profesor gua pienso que los temas podran haberse trabajado desde una perspectiva ms tcnica y con mayor profundidad, en algunos aspectos. Por ejemplo, en las bsquedas de conceptos sobre motores es dbil ya que no considera explcitamente los problemas de la sinonimia lo que pone en duda la rigurocidad de las pruebas realizadas en el estudio, haciendo que ste sea menos creible en su totalidad. Del mismo modo, las pruebas de rendimiento no presentan bases estadsticas explcitas lo que, de igual forma que en el caso de la sinonimia, le resta peso a los resultados. Los dos aspectos anteriores le restan mritos al esfuerzo desplegado y evidencian falencias en esta rea especfica, que pueden no ser relevantes en su vida profesional pero que en el marco del presente trabajo si lo son. Por ltimo, el extenso informe es, en general, de buena calidad, pese a que presenta algunos problemas en cuanto a la sntesis, el uso de lenguaje tcnico y la precisin de las referencias bibliogrficas, en algunos casos. En general pienso que si bien Miguel Garrido tiene los merecimientos necesarios para ser considerado Ingeniero de Ejecucin podra haber obtenido logros mayores desde la perspectiva de focalizar y profundizar los aspectos relevantes del presente trabajo.

De acuerdo a estas consideraciones califico el desarrollo de ste Trabajo de Ttulo con nota 6,0 (seis coma cero). ________________________________ Gustavo Andrs Donoso Montoya Profesor Gua Temuco, 17 de enero del 2006

UNIVERSIDAD CATLICA DE TEMUCO FACULTAD DE INGENIERA

INFORME TRABAJO DE TTULO

TTULO
ALUMNO

: Evaluacin Comparativa de aplicaciones WEB entre J2EE y Microsoft.NET


: Miguel Angel Garrido Pino

En mi condicin de profesor informante de este trabajo puedo efectuar las siguientes observaciones:

El trabajo esta bien estructurado, detallado y se han usado las herramientas metodolgicas de manera adecuada. Se han cumplido los objetivos. Esta investigacin comparativa ha sido rigurosa tanto en el estudio terico como el prctico.

De acuerdo a estas consideraciones califico este trabajo con nota 7,0 (Siete coma cero)

________________________________ Alejandro Mauricio Mellado Gatica Profesor Informante Temuco, 17 de Enero de 2006

Dedicatoria.

Dedico este trabajo a mis padres y hermano, adems mencionar en especial a mi abuelo, quien siempre estuvo atento a que su nieto fuese Ingeniero.

Agradecimientos

Agradezco a Dios y mi familia por la oportunidad de estudiar lo que siempre quise, a mis amigos ms cercanos, quienes estuvieron a mi lado durante todo este tiempo, gracias por su compaa. Adems a todas las personas que de una u otra forma estuvieron relacionadas en el cumplimiento de este sueo.

Tambin mensionar a la persona a la cual siempre quise, gracias por compartir conmigo muchos de stos momentos.

Para todos ustedes mis agradecimientos.

NDICE
ndice...i ndice de Figuras..................................................................................................................ix ndice de Tablas...xi ndice de Anexos....xiii Sntesis..............xv

1. Introduccin...........1

2. Objetivos del Proyecto..5 2.1. Objetivo General..........6 2.2. Objetivos Especficos...............6 2.3. Descripcin del Problema........7

3. Estudios de apoyo al proyecto......8 3.1. Estudios Realizados por Ricardo Chamorro Villar..............9 3.2. Estudio realizado por La Pontifcia Universidad Catlica de Chile...10

4. Introduccin a la Plataforma JAVA......12 4.1. Introduccin............13 4.2. La Mquina Virtual de JAVA................................14 4.3. Herramientas de Desarrollo................................14

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

4.3.1 Tipos de Herramientas de Aplicacin.............15 4.4. Arquitecturas JAVA.......................................16 4.4.1. J2EE (Java 2 Enterprise Edition).........................16 4.4.2. J2SE (Java 2 Standard Edition)...........16 4.4.3. J2ME (Java 2 Micro Edition)..........16 4.5. Definicin de JAVA2 EE...17 4.5.2. Componentes de Arquitectura J2EE............19 4.5.2. Principales APIs de Arquitectura J2EE..........20 4.5.3. Caractersticas de J2EE...........22 4.5.4. Tipos de Aplicaciones J2EE....23 4.5.5. Acceso a Datos en J2EE..........26

5. Introduccin a La Plataforma Microsoft .NET27 5.1. Introduccin....28 5.2. Desarrollo de Aplicaciones en .NET..29 5.3. Programacin WEB con Microsoft.Net.31 5.4. Introduccin a .NET Framework............32 5.4.2. Descripcin de la Arquitectura .NET Framework.......33 5.4.2.1. CLR, Common Language Runtime..34 5.4.3. Implementacin WEB con la Arquitectura Framework.NET.35 5.5. Acceso a datos en Microsoft .NET.....36

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

ii

6. Introduccin a la Comparacin de las plataformas J2EE y .NET.........37 6.1. Introduccin38 6.2. Anlisis de las Compaas..39 6.4. Delimitacin de la Comparacin Web...41 6.5. Pginas dinmicas en J2EE....42 6.5.1. Requisitos de JSP.........43 6.6. Pginas dinmicas en .NET....44 6.6.1. Web Forms..44

7. Programas de Desarrollo para las Plataformas J2EE y .NET46 7.1. Introduccin. ..47 7.2. Principales IDEs de Desarrollo en J2EE. .........48 7.2.1. Netbeans. .....49 7.3. Desarrollo en Microsoft.NET con Visual Studio...50

8. Eleccin de IDEs de Desarrollo para las Plataformas J2EE y .NET...51 8.1. Introduccin. ..52 8.2. Eleccin de IDE de Desarrollo para J2EE. 53 8.3. Eleccin de IDE de Desarrollo para .NET.........53 8.4. Principales Caractersticas de IDEs Seleccionados. ........54

9. reas de Evaluacin de las Plataformas J2EE y .NET............................55 9.1. Introduccin. ......56

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

iii

9.2. Definicin de reas de Evaluacin. ..57 9.2.1. Definicin de reas de Evaluacin 1: Aprendizaje....57 9.2.1.1. Criterios de Aprendizaje. .....57 9.2.2. Definicin de reas de Evaluacin 2: Rendimiento...58 9.2.2.1. Criterios de Rendimiento. 58 9.2.3. Definicin de reas de Evaluacin 3: Explotacin y Uso......59 9.2.3.1. Criterios de Explotacin. .59 9.2.4. Definicin de reas de Evaluacin 4: Desarrollo. .60 9.2.4.1. Criterios de Desarrollo. ....60 9.2.5. Definicin de reas de Evaluacin 5: Uso de Licencias.........61 9.2.5.1. Criterios de Licencia Libre...61 9.2.6. Definicin de reas de Evaluacin 6: Compatibilidad...62 9.2.6.1. Criterios de Compatibilidad..........62 9.3. Definicin de Criterios...63 9.3.1 Definicin de Criterios de Aprendizaje............63 9.3.1.1. Informacin Disponible63 9.3.1.2. Informacin Disponible en Espaol. ...........63 9.3.1.3. Curva de Aprendizaje...63 9.3.2. Definicin de Criterios de Rendimiento. 64 9.3.2.1. Rendimiento Independiente. 64 9.3.2.1.1. Uso de Recursos. ...........64 9.3.2.1.2. Capacidad de Respuesta. ..........64 9.3.2.1.3. Requerimientos Mnimos. ....64

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

iv

9.3.2.1.4. Escalabilidad..65 9.3.2.2. Rendimiento con Base de Datos. .65 9.3.2.2.1. Uso de Recursos. ...65 9.3.2.2.2. Capacidad de Respuesta.65 9.3.2.2.3. Requerimientos Mnimos. .....65 9.3.2.2.4. Escalabilidad......65 9.3.2.2.5. Componentes Necesarios. .....65 9.3.3. Definicin de Criterios de Explotacin y Uso.65 9.3.3.1. Curva de Explotacin66 9.3.3.2. Uso de la Tecnologa....66 9.3.3.3. Distribucin..66 9.3.4. Definicin de Criterios de Desarrollo..67 9.3.4.1. Interfaz de Usuario....67 9.3.4.2. Accesibilidad....67 9.3.5. Definicin de Criterios de Uso de Licencias...67 9.3.5.1. Licencia Libre. .....68 9.3.5.2. Cdigo Abierto. ...68 9.3.5.3. Costos...68 9.3.6. Definicin de Criterios de Compatibilidad. ...68 9.3.6.1. Portabilidad...69 9.3.6.2. Navegadores Web.69

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

10. Postulados de Comparacin de las Plataformas J2EE y .NET.........70 10.1. Introduccin. 71 10.2. Ventajas y Desventajas.72 10.3. Postulados de Comparacin.72 10.2.2.1. Postulado de Comparacin 1..72 10.2.2.2. Postulado de Comparacin 2..74 10.2.2.3. Postulado de Comparacin 3..74 10.2.2.4. Postulado de Comparacin 4..75 10.2.2.5. Postulado de Comparacin 5..76 10.2.2.6. Postulado de Comparacin 6..78 10.2.2.7. Postulado de Comparacin 7..79 10.2.2.8. Postulado de Comparacin 8..80 10.4. Resumen de Postulados................81

11. Sistemas Web con Base de Datos en J2EE y .NET.....82 11.1. Introduccin..83 11.2. Motores de Bases de Datos a utilizar. .84 11.2.1. Mysql. ...84 11.2.2. Postgres..86 11.2.3. Ms Access..87 11.3. Aplicaciones Web con Base de Datos en J2EE...88 11.3.1. Introduccin...88 11.3.2. Conexin a base de datos con JDBC. ...........89

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

vi

11.3.3. Sistema de Base de Datos con Mysql y Netbeans.....90 11.3.4. Sistema de Base de Datos con Microsoft Access y Netbeans......91 11.3.5. Sistemas de Base de Datos con PostgresSql y Netbeans...........92 11.3.6. Informacin Adicional.......93 11.4. Aplicaciones Web con base de datos en .NET.....94 11.4.1. Introduccin...........94 11.4.2. Sistema de Base de Datos MySQL y Visual Studio..95 11.4.3. Sistema de Base de Datos MS Access y Visual Studio.....97 11.4.4. Sistema de Base de Datos PostgreSQL y Visual Studio...99 11.4.5. Informacin Adicional. ...101

12. Desarrollo de Pruebas de Comparacin entre las plataformas..102 12.1. Introduccin....103 12.2. Diseo de Pruebas Comparativas ..........104 12.2.1. Diseo de Pruebas de Aprendizaje..104 12.2.2. Diseo de Pruebas de Rendimiento. ...105 12.2.3. Diseo de Pruebas de Explotacin y Uso106 12.2.4. Diseo de Pruebas de Desarrollo. ...106 12.2.5. Diseo de Pruebas de Uso de Licencias. ....106 12.2.6. Diseo de Pruebas de Compatibilidad. .......107 12.3. Creacin Tablas de Evaluacin y Resultados. ..107 12.4. Ejecucin y Resultados de Pruebas Comparativas....109 12.4.1. Ejecucin y Resultados Pruebas de Aprendizaje109

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

vii

12.4.1.3. Informacin adicional a la tabla. ..112 12.4.2. Ejecucin y Resultados Pruebas de Rendimiento...112 12.4.2.4. Automatizacin de Prueba....118 12.4.3. Ejecucin y Resultados Pruebas de Explotacin y Uso.120 12.4.3.2. Automatizacin de Prueba....122 12.4.4. Ejecucin y Resultados Pruebas de Desarrollo..124 12.4.5. Ejecucin y Resultados Pruebas de Uso de Licencias...126 12.4.6. Ejecucin y Resultados Pruebas de Compatibilidad..127

13. Conclusiones Finales de Pruebas Realizadas130 13.1. Introduccin....131 13.2. Conclusiones de Pruebas de Aprendizaje...132 13.3. Conclusiones de Pruebas de Rendimiento..134 13.4. Conclusiones de Pruebas de Explotacin y Uso....137 13.5. Conclusiones de Pruebas de Desarrollo.139 13.6. Conclusiones de Pruebas de Uso de Licencias..142 13.7. Conclusiones de Pruebas de Compatibilidad.144

14. Conclusin....147

15. Bibliografa..152

Anexos....155

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

viii

NDICE DE FIGURAS.

3. Estudios de Apoyo al Proyecto. 3.2.1. Figura 1: Estudio CetiUC....11

4. Introduccin a la Plataforma JAVA. 4.2.1. Figura 2: Esquema Mquina Virtual JAVA....14 4.5.1. Figura 3: Esquema de Aplicacin en Capas....18 4.5.2.1. Figura 4: Conjunto de API's J2EE........19 4.5.4.1. Figura 5: Estructura archivo JAR.....24 4.5.4.2. Figura 6: Estructura archivo WAR...24 4.5.4.3. Figura 7: Estructura archivo EAR....25 4.5.4.4. Figura 8: Estructura archivo RAR....25

5. Introduccin a la Plataforma Microsoft.NET 5.2.1. Figura 9: Modelo de arquitectura de aplicaciones .NET.........29 5.4.1. Figura 10: Esquema .NET Framework....32

11. Sistemas Web con Base de Datos en J2EE y .NET. 11.2. Figura 11: Modelo de Aplicacin Web con Base de Datos.84 11.3.2.2 Figura 12: Vista de programacin en Netbeans..89 11.4.1.1. Figura 13: Vista de programacin en Visual Studio.NET..95

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

ix

12. Desarrollo de Pruebas de Comparacin entre las plataformas. 12.4.1.1. Figura 14: Curva de Aprendizaje.111 12.4.2.1. Figura 15: Grfica rendimiento normal........113 12.4.2.2. Figura 16: Grfica ejecucin Netbeans....113 12.4.2.3. Figura 17: Grfica ejecucin Visual Studio.NET....114 12.4.2.4.1. Figura 18: Automatizacin Rendimiento primera instancia..118 12.4.2.4.2. Figura 19: Automatizacin Rendimiento segunda instancia.....119 12.4.2.4.3. Figura 20: Automatizacin Rendimiento resultados.....119 12.4.3.1. Figura 21: Grfica Explotacin Estudio U. de Chile 2004...122 12.4.3.2.1. Figura 22: Automatizacin Explotacin....123

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

NDICE DE TABLAS

6. Comparaciones Principales 6.3. Tabla 1: Tabla Comparativa 1: Primeras Comparaciones......40 6.5.1. Tabla 2: Ejemplo JSP..42 6.7. Tabla 3 : Ejemplo ASPx.............45

7. Programas de Desarrollo para las Plataformas .Net y J2EE 7.2.1. Tabla 4: Tabla Explicativa 1: IDEs Desarrollo J2EE....48

8. Eleccin de IDEs de desarrollo para las Plataformas .NET y J2EE. 8.4.1. Tabla 5: Tabla Comparativa 2: Principales Caractersticas.54

11. Sistemas Web con Base de Datos en J2EE y .NET. 11.3.2.1. Tabla 6: Ejemplo Conexin Base de Datos Postgres.89 11.3.3.1. Tabla 7: Cdigo cargar.jsp de proyecto JSPMysql....90 11.3.4.1. Tabla 8: Cdigo eliminar.jsp de proyecto BaseWeb..91 11.3.5.1. Tabla 9: Cdigo insertar.jsp de proyecto JSPpost..........92 11.4.2.1. Tabla 10: Parte cdigo inicio.aspx de proyecto ASPxMysql.96 11.4.2.2. Tabla 11: Parte cdigo inicio.vb de proyecto ASPxMysql....96 11.4.3.1. Tabla 12: Parte cdigo insertar.aspx de proyecto ASPAccess..........98 11.4.4.1. Tabla 13: Parte cdigo insertar.vb de proyecto ASPpost.100

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

xi

12. Desarrollo de Pruebas de Comparacin entre las Plataformas J2EE y .NET. 12.3.1. Tabla 14: Tabla de Evaluacin de Criterios........108 12.3.2. Tabla 15: Tabla de Resultados........108 12.4.1.2. Tabla 16: Tabla de Evaluacin 1: Pruebas de Aprendizaje..111 12.4.2.5. Tabla 17: Tabla de Evaluacin 2: Pruebas de Rendimiento.....120 12.4.3.3. Tabla 18: Tabla de Evaluacin 3: Pruebas de Explotacin y Uso....124 12.4.4.1. Tabla 19: Tabla Explicativa 2: Requerimientos J2EE..125 12.4.4.2. Tabla 20: Tabla Explicativa 3: Requerimientos .NET.125 12.4.4.3. Tabla 21: Tabla de Evaluacin 4: Pruebas de Desarrollo126 12.4.5.1. Tabla 22: Tabla de Evaluacin 5: Pruebas de Uso de Licencias.127 12.4.6.1. Tabla 23: Tabla de Evaluacin 6: Pruebas de Compatibilidad....129

13. Conclusiones Finales de Pruebas Realizadas. 13.2.1. Tabla 24: Tabla Resultados 1: Aprendizaje J2EE v/s .NET133 13.3.1. Tabla 25: Tabla Resultados 2: Rendimiento J2EE v/s .NET..136 13.4.1. Tabla 26: Tabla Resultados 3: Explotacin y Uso J2EE v/s .NET.139 13.5.1. Tabla 27: Tabla Resultados 4: Desarrollo J2EE v/s .NET..141 13.6.1. Tabla 28: Tabla Resultados 5: Uso de licencias J2EE v/s .NET.........143 13.7.1. Tabla 29: Tabla Resultados 6: Compatibilidad J2EE v/s .NET..146

14. Conclusin. 14.1. Tabla 30: Conclusiones Finales..149 14.2. Tabla 31: Ventajas y Desventajas J2EE150 14.3. Tabla 32: Ventajas y Desventajas .NET.151
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

xii

INDICE DE ANEXOS

Anexo A. Cdigos J2EE. a.1.1. cargar.jsp de JspMysql.157 a.1.2. ingresar.jsp de JspMysql..157 a.1.3. index.jsp de JspMysql..158 a.2.1. buscar.jsp de JspPost....159 a.2.2. buscado.jsp de JspPost..160 a.2.3. buscado2.jsp de JspPost....161 a.3.1. modificar.jsp de JspAccess...162 a.3.2. modificado.jsp de JspAccess....163

Anexo B. Cdigos .NET. b.1.1. cargar.vb de ASPxMysql...166 b.1.2. cargar.aspx de Aspx Mysql.......167 b.2.1. insertar.aspx de AspxPost..169 b.2.2. buscar.vb de Aspx Post.171

Anexo C. Realizacin de Pruebas Anexas. c.1. Pruebas anexas de Aprendizaje....172

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

xiii

Anexo D. Estudio de la Web Chilena Universidad de Chile 2004. d. Estudio de la Web Chilena......173

Anexo E. Modelo Estadistico de Rendimiento e. Consideraciones Estadsticas de Rendimiento....176

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

xiv

Sntesis
El presente trabajo tiene como objetivo informar al lector que aspectos y conocimientos se necesitan para seleccionar la tecnologa que se debe utilizar, para implementar de mejor manera el desarrollo de aplicaciones Web, obteniendo los mejores resultados con la optimizacin de los recursos necesarios para desarrollar dicha tarea.

Para esto, en un principio se contempl la investigacin y estudio en profundidad de las dos plataformas de desarrollo ms utilizadas en el mercado, J2EE y Microsoft.NET. Con esta informacin, adquirida por medio de la bsqueda y estudio a travs de distintos manuales y sitios dedicados al tema, podrn familiarizar al usuario con estas tecnologas. As, se distinguirn las necesidades, requerimientos y aspectos importantes que se deben conocer para dedicarse por completo a una de estas plataformas de desarrollo en la realizacin de este tipo de aplicaciones.

Posteriormente se crearn reas de evaluacin, dentro de las cuales se definen ciertos criterios de comparacin adquiridos en el proceso de este trabajo. Esto se plasma en tablas comparativas, las cuales permiten dar un componente de certeza sobre esta investigacin. Esto, junto a la realizacin de pruebas definidas, ayuda a obtener conclusiones sobre el comportamiento y funcionalidad de aplicaciones de ambiente Web en estas tecnologas, que permitan dilucidar ventajas y desventajas sobres stas. Luego se desarrollan prototipos de aplicaciones Web, que van desde simples aplicaciones a sistemas con conexiones a distintos motores de bases de datos que permitirn reflejar de manera prctica aspectos que permitan resolver la eleccin de que tecnologa ocupar.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

xv

1. Introduccin.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-1-

El avance informtico a travs del tiempo es cada vez ms vertiginoso y catico. Mientras ocurren los hechos, la tecnologa, las plataformas de trabajo y los lenguajes de programacin avanzan a velocidades que difcilmente se lograra estar al tanto de todo. En esta carrera, se debe estar atento a tales cambios y avances para no quedar atrs para as poder competir y mantenerse dentro de este ambiente. En la utilizacin de tecnologas de informacin, el uso del Web es primordial. El poder tener aplicaciones que puedan mantener procesos difcilmente llevados por otro medio y, que estn actualizados y

disponibles para todo el mundo, hace que sea necesario el desarrollo de stas por las mismas empresas, proceso que difiere a otro tipo de problemas, los cuales pueden ser solventados por softwares ya desarrollados.

En esta rea de la programacin, son dos las plataformas que destacan sobre el resto, siendo las ms utilizadas y aprobadas por los usuarios. J2EE, una mejora importante del lenguaje de programacin Java, y .NET, la nueva tecnologa de Microsoft, que implementa de mejor manera aplicaciones desarrolladas en el pasado por esta empresa, se imponen fuertemente en el mercado de desarrollo ocupando ms de la mitad de ste por sobre otras plataformas de diseo.

Tanto las empresas como los usuarios relacionados con el desarrollo de aplicaciones Web, ocupan estas tecnologas, las familiarizadas con tecnologa open source y de sistemas operativos Linux utilizan la tecnologa JAVA, que no presenta problemas con sus

aplicaciones y sistemas desarrollados, teniendo el mismo rendimiento en Sistemas Microsoft.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-2-

Por su parte sta ltima, con el lanzamiento de la tecnologa .NET ha absorbido la mayor parte del desarrollo de aplicaciones de la mediana y pequea empresa sin menospreciar las grandes corporaciones que han hecho suya esta norma.

Pues bien, a la hora de abordar algn problema Web, Qu tecnologa se debe adoptar?, Qu plataforma de trabajo es mejor? Y por qu?, Por qu elegir una, y no la otra?, Qu plataforma requiere ms recursos, tanto humanos como tcnicos?, Qu costos debe considerar el usuario, al acceder a una de estas plataformas? Este estudio explicar y dar respuestas, a cada una de las preguntas planteadas, dando justificaciones tcnicas, tericas y prcticas. Ponindose en lugar del usuario y partiendo desde el inicio con cada una de las tecnologas, entregando una orientacin comparativa entre ambas, analizando diferencias y parecidos en cada rea de aplicacin, para ser utilizado de manera especfica en la toma de decisiones y el conocimiento previo que se necesita antes de dedicarse por completo a una de estas plataformas de trabajo.

Para comentar el contenido de este documento se puede decir, en el captulo 2 se presentan los objetivos de este trabajo. En el captulo 3 se mencionan estudios de apoyo a este proyecto. En los captulos 4 y 5 se entrega la informacin necesaria para el conocimiento e interiorizacin sobre cada plataforma de desarrollo, tanto J2EE como .NET. En el captulo 6 se hace una comparacin preliminar de las tecnologas. En los captulos 7 y 8 se hace referencia a los programas de desarrollo de aplicaciones sobre estas plataformas y la eleccin de stos para seguir con el proceso de evaluacin comparativa.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-3-

En el captulo 9 se detallan las reas de evaluacin en las cuales se basar la comparacin de ambas plataformas. En el captulo 10 se describen postulados de comparacin que demuestran ventajas y desventajas sobre estas tecnologas de desarrollo. Posteriormente en el captulo 11, se explica el desarrollo Web de aplicaciones con manejo de bases de datos y la creacin de este tipo de sistemas tanto para J2EE como .NET.

En el captulo 12 se crean y detallan las pruebas de comparacin a realizar basadas en los criterios definidos anteriormente. En el captulo 13 se definen las conclusiones sobre los criterios en base a los resultados obtenidos en la fase de pruebas, para luego describir los aspectos ms importantes de este proyecto. Dejando para el captulo 14 la conclusin final de este trabajo.

En los anexos a esta investigacin se tiene. Para los Anexos A y B, se encuentran algunos de los cdigos ms representativos de los sistemas Web desarrollados en las distintas etapas de esta evaluacin comparativa-prctica. Para la plataforma J2EE, Anexo A, y para Microsoft .NET el Anexo B. Dentro del Anexo C se encuentran pruebas anexas no incluas en la etapa de pruebas comparativas. Y para concluir el Anexo D hace referencia al Estudio de la Web Chilena desarrollada por la Universidad de Chile el ao 2004 y para la documentcin final, el Anexo D, las Consideraciones Estadsticas de Rendimiento.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-4-

2. Objetivos Del Proyecto.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-5-

En el trabajo que se presenta a continuacin se contemplan los siguientes objetivos. Estos se desarrollaran a travs del avance de la investigacin, para lo cual se han definido en los captulos de esta investigacin, lo necesario para poder establecer las pautas de comparacin necesarias para ambas plataformas de desarrollo.

Estos objetivos son:

2.1. Objetivo General.


El Objetivo principal de este proyecto es realizar un anlisis comparativo-prctico de las plataformas de desarrollo J2EE y .NET en Aplicaciones Web.

2.2. Objetivos Especficos.


A partir del Objetivo General establecido se pueden definir ciertos objetivos especficos los cuales permitan un buen desarrollo de la investigacin. Estos son:

Investigar, documentar y clasificar informacin relacionada con el tema. Establecer un diseo de comparacin en cada rea, que permita identificar ventajas y desventajas de estos lenguajes.

Realizar un anlisis comparativo, desarrollando mdulos de comparacin y aplicaciones entre las 2 plataformas.

Definir y Realizar pruebas comparativas las cuales permitan realizar tablas explicativas sobre ventajas y desventajas sobre estas plataformas.

Dar conclusiones puntuales a cada punto desarrollado, para que ste documento sirva como una herramienta en la toma de decisiones.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-6-

Mediante estos puntos se quiere dar respuesta al planteamiento propuesto, lo cual conlleva a poner en prctica la informacin recolectada en la primera etapa del proyecto para luego ir desarrollando los temas posteriores definiendo una metodologa de comparacin y estableciendo los criterios que se implementarn en la etapa de pruebas.

2.3. Descripcin del Problema.

En la actualidad, muchos han abordado el tema de explicar la mejor alternativa de desarrollo entre J2EE y .NET. Algunos desarrollando ideas y comentarios a base de su propia experiencia con cada una de estas plataformas, otros, tratando de explicar al usuario lo que a su modo de ver es mejor, (muchas veces cayendo en fanatismos), lo cual nubla el juicio al basarse en las tecnologas en las cuales trabajan o prestan servicio.

Adems cabe sealar que estudios hechos y sitios dedicados al tema no detallan en profundidad las ventajas y desventajas mencionadas para cada plataforma, haciendo de estas conclusiones bastante subjetivas a la hora de desarrollar aplicaciones Web.

Tomando esto en consideracin, se determin ser un medio de respuesta a la interrogante de decisin de desarrollo, la cual fuese posible demostrar mediante el estudio y posterior creacin de reas de evaluacin y criterios que permitan demostrar en base a pruebas, que tecnologa tiene un mejor evaluacin frente a la otra en aspectos de diseo, desarrollo y ejecucin de aplicaciones Web.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-7-

3. Estudios de Apoyo al Proyecto.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-8-

3.1. Estudio Realizado por Ricardo Chamorro Villar.

En estudios realizados con anterioridad, destac el realizado por Don Ricardo Chamorro Villar, el cual logr dar luces a una investigacin personal en la cual desarrolla mdulos de comparacin a grandes rasgos en los cuales defina algunos tems a considerar.

En la pgina http://www.ciberteca.NET/articulos/programacion/net/ se encuentran algunos aspectos de su experiencia en mbitos de: apoyo de compaas, analogas y diferencias, madurez de la plataforma y otras. En breves captulos ofrece una orientacin, de, lo que a su parecer, cree que son aspectos importantes a la hora de comparar a ambas plataformas de desarrollo.

En su investigacin ahonda en aspectos tcnicos como en el tipo de compilacin utilizada y bajo que arquitectura se escriben los cdigos, no necesariamente definidos para alguna aplicacin de tipo Web, sino ms bien en caractersticas generales. Considerando este estudio para ser llevado por grandes empresas que cuenten con presupuestos notorios a la hora de montar alguna aplicacin bajo estas tecnologas.

Por esto, este documento sirvi de orientacin y gua para algunos aspectos de la investigacin realizada, con la exclusin del componente personal ya que este pareciese no ser totalmente objetivo, para lo cual solo se consider los aspectos comparativos y no sus conclusiones.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

-9-

3.2 Estudio realizado por La Pontificia Universidad Catlica de Chile.

La Pontificia Universidad Catlica de Chile realiz un estudio llamado Estudio Nacional sobre Tecnologas de la Informacin en el ao 2004 a travs de Cetiuc, (Centro de estudios de tecnologas de informacin de la Universidad Catlica), el cual determin las tecnologas utilizadas por las empresas nacionales, las en expansin y las que estn en algn proceso de utilizacin.

En ella se analizaron distintas empresas a lo largo del pas comprendiendo 481 empresas nacionales y multinacionales con presencia en el pas, cuya facturacin anual fuese igual o superior a MMUS$ 2.5, e instituciones pertenecientes al Gobierno. Estas compaas corresponden al ranking de empresas publicado en el diario Estrategia el 31 de marzo del ao 2004, un conjunto de firmas de facturacin acorde a la definicin del universo de estudio, y organismos de Gobierno, excluyendo a Ministerios, Subsecretaras y Municipalidades.

En su seccin Qu tecnologas se pretenden incorporar?, arroj los resultados mostrados en la Figura 1.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 10 -

3.2.1. Figura 1: Estudio CetiUC

Este estudio de la Universidad Catlica sirve de apoyo a este trabajo de investigacin, considerando a ambas plataformas como las ms utilizadas y con mayor viabilidad a futuro, lo que en s es un aporte para decir el porqu de la comparacin de estas plataformas y no de otras.

Indica: J2EE: Se utiliza 30.8 % Planes a concretarse 2006: 11,3 .NET: Se utiliza 26,5% Planes a concretarse 2006: 22,8

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 11 -

4. Introduccin a la Plataforma JAVA.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 12 -

4.1. Introduccin.

JAVA fue desarrollado a finales de los aos ochenta por Sun Microsystems, su objetivo principal nace en sus primeras versiones, como un lenguaje familiar, con similitudes a C++. Este concepto se puede definir como un estndar de desarrollo a nivel informtico que proporciona las herramientas necesarias para la creacin de aplicaciones de todo tipo. Adems es un lenguaje orientado a objetos, que soporta caractersticas como: la encapsulacin, la herencia, el polimorfismo y el enlace dinmico.

Por otra parte JAVA es una de las plataformas que cuenta con mayor acogida para la construccin de aplicaciones Web multinivel. Su Arquitectura J2EE (Java 2 Platform, Enterprise Edition) ofrece conceptos bsicos de componentes, herramientas y ambientes de desarrollo que permiten generar programas o pginas dinmicas desplegables en los distintos browsers de la Web.

La principal caracterstica de JAVA es la capacidad de ejecutarse en cualquier mquina y sobre cualquier sistema operativo o arquitectura, manteniendo las facilidades bsicas del lenguaje. En el mbito Web, JAVA da la capacidad de desplazar el control de la interactividad de los servidores hacia las mquinas de los usuarios, permitiendo la utilizacin de distintos componentes que son interpretados por los navegadores Web y en los casos correspondientes por la mquina virtual de JAVA. Un ejemplo de esto es la carga de "applets", programas compactos y precompilados que generan animaciones y sonidos sobre pginas Web. Otra caracterstica propia de JAVA es el acceso a herramientas de desarrollo de licencia libre que permite a los usuarios un fcil acceso a esta tecnologa.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 13 -

4.2. La Mquina Virtual de JAVA.


La mquina virtual de JAVA, es una capa lgica que hace creer al programa Java que se ejecuta en un computador (con registros, memoria y procesador), cuando en realidad slo ve una reconstruccin lgica de ste. Para ejecutar un programa Java compilado, es preciso tambin que se cuente con una implementacin de la mquina virtual especfica donde se desea ejecutar, la cual efecta la transformacin del p-code en un programa comprensible para la mquina.

4.2.1. Figura 2: Esquema Mquina Virtual Java.

4.3. Herramientas de Desarrollo.


Para desarrollar en Java, se necesita instalar el paquete JDK de Sun, libre de distribucin y se puede descargar en varios sitios Web. En el sitio de Sun, se encuentra toda clase de informacin relacionada con Java como: ejemplos de programas, tutoriales, documentacin, bugs junto a su solucin, lo que proporciona una ayuda extra para desarrollar todo tipo de aplicaciones en este lenguaje. La ltima versin disponible, Java 2 Standard Edition 5.0 y Java 2Enterprise Edition 1.4, las cuales incluyen JDK 5.0 (Java Developer Kit), como se conocen estos paquetes de instalacin descargables desde la Web.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 14 -

4.3.1. Tipos de Herramientas de Aplicacin.


En Java de pueden realizar todo tipo de software, estos pueden ser:

- Aplicaciones: programas fuentes desarrollados en cualquier editor Java y guardados con extensin .java, que en su compilacin pasan a ser ficheros .class, y al ser ejecutados se interpreta el byte-code, generando estas aplicaciones.

- Applets: cdigos fuentes desarrollados en cualquier editor Java (pudiendo ser de extensin .java), compilados de forma que sean parte de una pgina Web que lo contenga, ejecutndolo dentro del sitio con extensin .html

- Servlet: conocido como el CGI de Java, ste un programa independiente de la plataforma que aporta funcionalidad a la programacin en el lado del servidor. Este es cdigo java que puede llegar a contener tags HTML.

- Java Bean: es una arquitectura que permite una manera de re-utilizar componentes de software que pueden ser manipulados en herramientas de desarrollo ("Builder Tools"). Estos "Beans" pueden ser tan sencillos como un botn, o complejos como el acceso a una base de datos; una caracterstica primordial de un JavaBean son los mtodos (funciones) get|set.

- JSP: "Java Server Pages", Este es un tipo de programa Java que contiene HTML, para ejecutarlo se requiere de un servlet engine como Tomcat o bien un Java Application Server como Websphere de IBM que son capaces de ejecutar este tipo de aplicaciones.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 15 -

4.4. Arquitecturas JAVA.


JAVA presenta tres tipos de arquitecturas desarrolladas por Sun Microsystems estas son:

4.4.1. J2EE. (Java 2 Enterprise Edition).

Se refiere a la plataforma de tecnologa Java ms avanzada, la cual provee un rango completo de funcionalidades empresariales para el desarrollo de aplicaciones tanto de computadores como de servidores. Esta plataforma ha sido diseada con el fin de proporcionar un ambiente integrado para la creacin de programas Java en todos niveles requeridos por los usuarios.

4.4.2. J2SE. (Java 2 Standard Edition).

Se refiere a la plataforma de desarrollo JAVA que provee el pack bsico de utilidades necesarias para el desarrollo de aplicaciones en este lenguaje. Este es normalmente, la versin que debemos descargar desde Internet para poder trabajar.

4.4.3. J2ME (Java 2 Micro Edition).

Se refiere a la plataforma de desarrollo para la implementacin de aplicaciones para dispositivos mviles, tanto equipos celulares como Palm y equipos de bolsillo (Poquet PC). sta contiene las herramientas especficas para desarrollar aplicaciones, programas y juegos, para este tipo de dispositivos.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 16 -

4.5. Definicin de JAVA2 EE.

El concepto J2EE, Java 2 Enterprise Edition es la arquitectura creada por Sun para el desarrollo de todo tipo de aplicaciones para empresas y usuarios en general facilitando las herramientas necesarias para la programacin en el lenguaje Java, las cuales facilitan el manejo de los conceptos necesarios para el desarrollo de aplicaciones ms avanzadas de desarrollo, implementacin y administracin de software empresarial. SUN lo define como un estndar para el desarrollo de aplicaciones empresariales multicapa, simplificando las aplicaciones empresariales basndolas en componentes modulares y estandarizados, proveyendo un completo conjunto de servicios a estos componentes, y manejando muchas de las funciones de la aplicacin de forma automtica, sin necesidad de una programacin compleja.

Adems la plataforma J2EE incluye un amplio rango de API's y esquemas de programacin como JSP y Servlets, entre otros, los cuales pueden ejecutarse dentro del servidor Web Tomcat incluido dentro de esta arquitectura.

J2EE contiene cuatro grandes reas de la ejecucin de este tipo de aplicaciones, stas son:

Presentacin del lado del Cliente (Cient - Side Presentation): dentro de esta rea se encuentra el rango de funcionalidades que J2EE hace ejecutar en la mquina en la cual el cliente accede a las distintas herramientas. Dentro de este grupo se encuentran pginas Web estticas (HTML), los Applets y aplicaciones de escritorio descritas en el lenguaje JAVA.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 17 -

Presentacin del lado del Servidor (Server - Side Presentation): esta rea incluye las aplicaciones las cuales JAVA desliga del cliente al ejecutarlas en el servidor, lo que agiliza de manera importante el despliegue de stas. En esta rea se encuentran mayormente el tipo de aplicacin Web de J2EE, Java Server Pages, Java Servlet, cdigos XML y los servicios Web J2EE.

Logica de Negocios del lado del Servidor (Server Side Business Logia): este grupo de componentes J2EE contiene aquellos conceptos que no necesariamente son aplicaciones, sino dispositivos encargados de generar procesos de modo no visible para el usuario, como lo son los EJB, y los JavaBeans, los cuales permiten la interaccin de componentes Web Services entre las distintas capas SOAP y WDSL. Los EJB container manejan la ejecucin de los Enterprise Beans para las aplicaciones J2EE que se ejecutan del lado del servidor.

Informacin de Sistema de Empresa (Enterprise Information System): dentro de sta rea se incluyen los datos guardados necesarios para la correcta ejecucin de los distintos componentes J2EE. Por ejemplo las bases de datos que incluyen informacin de software ejecutados del lado del servidor. En este modelo se encuentran los distintos componentes de una aplicacin J2EE y la ubicacin en la correspondiente capa del modelo de ejecucin.
4.5.1. Figura 3: Esquema de Aplicacin en Capas.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 18 -

4.5.2. Componentes de Arquitectura J2EE.

Adems del mdelo de ejecucin en capas, J2EE contiene un completo conjunto de APIS, algunas de las cuales estn insertas dentro de la arquitectura J2SE que se agregan a la arquitectura. stas permiten la ejecucin anterioridad. entre las distintas capas definidas con

4.5.2.1. Figura 4: Conjunto de API's J2EE.

J2EE presenta distintas reas de containers los cuales contienen API's de funcionamiento, stas son: Web Containers los cuales almacenan los Servlet y pginas JSP que corren del lado del servidor y EJB Containers que manejan la ejecucin de lo beans de aplicaciones J2EE que tambin correr del lado del servidor. Por su parte el Applicattion Client Container maneja la ejecucin de todos los componentes de servidor y a su vez el Applet Container la ejecucin de dichos applets en el cliente.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 19 -

4.5.2. Principales API's de la Arquitectura J2EE.

Dentro de las principales APIS para el desarrollo de la tecnologa Java, se encuentran algunas que permiten ciertas caractersticas, por ejemplo a los Java servlet le permiten extender la capacidad de los servidores en aplicaciones http y utilizarlos como respuestas sobre servicios Web. Tambin permiten a los JSP agregar elementos que determinen como est compuesto el contenido dinmico de la pgina, estn dentro de los EJB y hacen correr Applets de manera correcta en la mquina del cliente.

Las API son interfaces de programacin de aplicaciones (Application Programmet Interface) las cuales constituyen un conjunto de funciones o mandatos que en un entorno concreto (sistema operativo) permiten al usuario poder actuar con ste. Algunas de las principales API's de la arquitectura son:

JMS (Java Message Service API): es un mensaje estndar que permite a componentes de aplicaciones J2EE crear, enviar, recibir y leer mensajes, habilitando comunicaciones distribuidas (asincrnicas).

JTA (Java Transaction API): provee una interfaz estndar para transacciones demarcadas. Maneja un auto commit por defecto para transacciones commits y rollbacks (una aplicacin con manejo de datos que puede actualizarlos luego de cada operacin de escritura o lectura).

JavaMail API: API para envo de notificaciones email en Internet. JAF (JavaBeans Activation Framework): provee servicios para determinar tipos de datos dentro de JavaMail API.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 20 -

JAXP (Java API for XML Processing): procesamiento de documentos XML usando Document Object Model (DOM), Simple API for XML (SAX) y Extensible Stylesheet Language Transformations (XSLT).

JAX-RPC (Java API for XML-Based RPC): Esta API usa el estndar SOAP y HTTP para que el cliente pueda programar procedimientos en XML llamados RPCs sobre Internet.

SAAJ (SOAP with Attachments API for Java): API de bajo nivel que habilita la produccin y consumo de mensajes SOAP 1.1.

JAXR (Java API for XML Registries): registra el acceso de negocio y propsito general de aplicaciones sobre la red.

JDBC (Java Data Base Connection): Quizs el API de J2EE ms conocida, permite el trabajo con base de datos permitiendo comandos SQL para la programacin de mtodos de acceso a distintas base de datos. Posee dos partes: una de nivel de aplicacin usada por el componente que accede a los datos y adems un servicio que provee una interfaz que se agrega al driver JDBC dentro de la plataforma J2EE.

JNDI (Java Naming and Directory Interface): provee funcionalidad de nombres y directorios a los mtodos que realicen operaciones de este tipo. JAAS (Java Authentication and Authorization Service): esta API entrega una va para autentificar y autorizar la ejecucin de aplicaciones por un usuario o grupo en particular.

JSTL (Java Server Pages Standard Tag Library): este API encapsula la funcionalidad de los JSP.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 21 -

4.5.3. Caractersticas de J2EE.


La tecnologa Java 2 Enterprise Edition (J2EE) proporciona una completa y potente plataforma orientada al desarrollo de aplicaciones corporativas distribuidas y a los servicios Web. Este tipo de aplicaciones suelen tener una arquitectura en capas: una capa de cliente o de presentacin que proporciona el interfaz de usuario, una o ms capas intermedias que proporcionan la lgica de negocio de la aplicacin y una capa final con los sistemas de informacin que mantienen aplicaciones y bases de datos corporativas. Entre las caractersticas de este tipo de aplicaciones se encuentran las siguientes:

Posibilidad de altas productividades en el desarrollo de las distintas tecnologas J2EE para la integracin de aplicaciones corporativa e integracin de sistemas existentes.

Mayor Escalabilidad al describir las caractersticas bsicas de transacciones y desarrollando distintos tipos de componentes de aplicacin J2EE con modelos flexibles de seguridad.

Libertad de eleccin de plataformas de desarrollo y produccin, lo que define los aspectos necesarios que puedan solucionar una determinada problemtica.

El desarrollo de aplicaciones Web utilizando conceptos de la arquitectura J2EE que permiten la construccin de este tipo de aplicaciones.

La utilizacin de herramientas libres que agilizan el desarrollo de software con J2EE y que permiten el funcionamiento en los distintos mdulos de ejecucin.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 22 -

4.5.4. Tipos de Aplicaciones J2EE.


La plataforma J2EE aade a Java la funcionalidad necesaria para convertirse en un lenguaje orientado al desarrollo de servicios y pginas en Internet, realizando aplicaciones igual de poderosas que cualquier otro tipo de programa desarrollado en Java. stos pueden ser de uso comn por diferentes organizaciones que implementan software en la red, tanto para medios publicitarios, como software de manejo de informacin en Internet.

Java tiene varios tipos de aplicaciones Web, que pueden implementarse a la hora de enfrentarse a problemas de desarrollo que ocupen la red. Mediante pginas dinmicas llamadas JSP (Java Servlet Page, un lenguaje de programacin de pginas Web dinmicas como lo son cdigos en PHP o ASP), Sun proporciona mejoras y nuevos conceptos al desarrollo Web, sumando funcionalidades a las conocidas Paginas Web, cdigos HTML, las cuales hacen que pginas ya creadas puedan ser actualizadas con implementacin JSP. De misma manera los Servlets, scripts CGI en el servidor que se ejecutan como script de Perl, los cuales pueden desarrollar mejoras especficas para agregar a sitios Web tecnologa JAVA.

Adems de los tipos de aplicaciones J2EE, servlets y JSP, esta arquitectura presenta otro tipo de componentes o archivos, estos vienen a ser los Packaging Applications (paquetes de aplicaciones), los cuales son una encapsulacin de aplicaciones con distinta orientacin.

Algunas de estas aplicaciones J2EEE son:

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 23 -

JAR (Java archive): es un formato de archivo independiente de la plataforma que permite que varios archivos puedan ser encapsulados dentro de uno, permitiendo que ste pueda ser una aplicacin completa de fcil movilidad y ejecucin.

4.5.4.1. Figura 5: Estructura archivo JAR. WAR (Web Application archive): este componente es un archivo que contiene un archivo JAR que posee uno o ms mdulos WEB. Pudiendo ser desde un simple sistema JSP a un servicio Web.

4.5.4.2. Figura 6: Estructura archivo WAR.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 24 -

EAR (Enterprise Archive file): un archivo EAR es un archivo JAR que contiene una aplicacin J2EE. Utilizando archivos EAR es posible unir un nmero de diferentes aplicaciones J2EE usando los mismos componentes sin necesidad de cdigos extra solo incluyndolos dentro de este mdulo.

4.5.4.3. Figura 7: Estructura archivo EAR.

RAR (Resource Adapter Archive): Un archivo RAR es un archivo JAR que contiene un adaptador de recursos que puede ser desplegado en un servidor J2EE. Es bastante similar a un archivo EAR e incluso un RAR puede estar contenido dentro de ste.

4.5.4.4. Figura 8: Estructura archivo RAR.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 25 -

4.5.5. Acceso a Datos en J2EE.


Para poder acceder a las bases de datos en J2EE se debe hacer referencia a la ya mencionada API JDBC, pues es sta el mtodo por el cual Java se puede conectar a los distintos motores de base de datos.

JDBC, son las siglas de Java Data Base Connection, el cual es un mtodo de interconexin el cual consta de un paquete de instalacin comprimido .JAR, el que contiene la libreras que hacen posible un puente entre la aplicacin y el motor de base de datos, generalmente esto es conocido como Driver de base de datos.

Este es un mtodo bastante simple y de buen desempeo, por lo que es posible conectar distintas bases de datos, con distintos motores, con solo cambiar el paquete JDBC por el correspondiente que sea necesitado.

Para este mtodo se pueden definir caractersticas como:

Define ocho interfaces para operaciones con bases de datos, de las que se derivan clases para su utilizacin.

Contiene una clase que se encarga de cargar inicialmente todos los drivers JDBC disponibles DriverManager.

Con la clase Connection, se realiza la conexin con la base de datos. La conexin se especifica siguiendo una sintaxis basada en la especificacin ms amplia de los URL.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 26 -

5. Introduccin a la Plataforma Microsoft.NET

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 27 -

5.1 Introduccin.
La Plataforma .NET se refiere a la tecnologa creada por Microsoft para sus productos de programacin en la lnea de .NET Framework y especficamente al producto de programacin Visual Basic .NET, el cual se presenta como una herramienta completa para la creacin de aplicaciones con esta tecnologa. Para esto Microsoft, propuso una herramienta de diseo y programacin que cuenta con un nmero mayor de funcionalidades que la ubica como una tecnologa de punta en el desarrollo de aplicaciones, como lo son la programacin orientada a objetos y el podero de JAVA con su arquitectura J2EE.

Con esto Microsoft, agrego el apellido .NET a la mayora de sus software comerciales creados bajo este nuevo enfoque de desarrollo, productos como Visual Basic .NET incorporan estas nuevas herramientas no incluidas en versiones anteriores, as se aade un conjunto de cambios para los programadores que deben afrontar con garantas el desarrollo de la nueva generacin de aplicaciones en general, especial el mbito Web, objetivo perseguido por todas las herramientas de desarrollo actuales.

Dentro de estas nuevas caractersticas se encuentran mejoras sobre ciertos componentes del lenguaje en s, con la eliminacin de aspectos obsoletos que han ido cambiando dentro de los modos y hbitos de programar. De esta forma se debe estar familiarizado con programacin de un cierto nivel y con las herramientas que proporcionan lo necesario para la creacin de aplicaciones sobre la plataforma .NET con su arquitectura NET Framework.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 28 -

5.2. Desarrollo de Aplicaciones en .NET.

Adems de programar en .NET, se pueden incluir dentro de esta tecnologa, el anlisis y el diseo, permitiendo entender como hacer uso de mejores tcnicas para el desarrollo de aplicaciones. De esta forma se integran todas las etapas del ciclo de desarrollo dentro de .NET, definiendo las especificaciones y modelado del problema para llegar al resultado final reflejado en el cdigo obtenido.

La integracin de Visual Basic con el resto de lenguajes del entorno de .NET, agrega mejoras al interactuar con productos de la misma plataforma, facilitando el trabajo y alcanzando ptimas soluciones en menores plazos con cdigos ms mantenibles y reusables, los cuales se reflejan en los distintos niveles de desarrollo de aplicaciones .NET.

5.2.1. Figura 9: Modelo de Arquitectura de Aplicaciones .NET.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 29 -

Haciendo referencia a la figura anterior la arquitectura .NET presenta distintos niveles de aplicaciones y componentes ofreciendo distintas capacidades y servicios apoyndose en los distintos sistemas operativos Windows y sistemas compatibles. De esta forma poder presentar a los usuarios incluidos dentro del nivel superior de la arquitectura los siguientes aspectos divididos en 3 capas:

1. La capa de presentacin: formada por los Componentes de IU, y los componentes de proceso de IU. Los componentes de IU son los cuales interactan con el usuario (por ejemplo ventanas o pginas Web). Los componentes de proceso de IU distinto tipo de clases del tipo controladora en UML, lo cuales encapsulan la lgica de navegacin y control de eventos de la interfase.

2. La capa de negocios: es la cual encapsula la lgica de negocios Las entidades empresariales representan objetos que van a ser manejados por la aplicacin (modelo de objetos, xml, datasets con tipo, estructuras de datos), las cuales permiten representar objetos que han sido identificados durante el modelamiento. Los componentes empresariales contienen lgica de negocios y en algunos casos pueden ser los objetos raz que inician las transacciones.

3. La capa de acceso a datos: capa que contiene las clases que interactan con las base de datos. stas surgen con la necesidad de mantener la cohesin o clases altamente especializadas que ayuden a reducir la dependencia entre las clases y capas. Aqu se encuentra la clase de mtodos estticos que permite uniformizar las operaciones de acceso a datos a travs de un nico conjunto de mtodos, esta es la clase SQLHelper.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 30 -

5.3. Programacin WEB con Microsoft.NET


Despus de conocer los conceptos presentados anteriormente como solucin a problemas Web, se definirn las principales caractersticas y funcionalidades de la plataforma .NET en la programacin de sitios, portales y paginas WEB o ASPx, las cuales, presentan un sin nmero de ventajas sobre conocimientos HTML y pginas con lenguajes interpretados por ejemplo PHP. Para esto se define:

Frontal Web principal: ste es accesible desde un navegador de Internet y permite a los clientes consultar, acceder, informarse. Todo esto dentro de pginas dinmicas ASPx.

Para esto la tecnologa ASP.NET presentan los siguientes conceptos:

Modelo de ASP.NET e IIS (Internet Information Server). Web Forms: permiten disear pginas Web dinmicas basadas en componentes .NET.

Controles de usuario: implementados por el desarrollador para ser reutilizados en distintas pginas o proyectos.

Sesin y cach: usados para el mantenimiento del estado y la optimizacin del rendimiento.

Configuracin e instalacin de sitios Web. Seguridad: tcnicas disponibles en ASP.NET para la autenticacin y autorizacin de usuarios.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 31 -

5.4. Introduccin a .NET Framework.


Al mencionar a .NET Framework, se dice que constituye la plataforma y elemento

principal sobre el que se asienta Microsoft .NET. Para los programadores, es la pieza fundamental de todo este nuevo modelo de trabajo que brinda Microsoft, ya que proporciona las herramientas y servicios que se necesitan en las labores habituales de desarrollo. .NET Framework, permite el desarrollo de aplicaciones a travs del uso de un conjunto de herramientas y servicios que pueden agruparse en tres bloques principales: El Entorno de Ejecucin Comn o Common Language Runtime (CLR), la jerarqua de clases bsicas de la plataforma o .NET Framework Base Classes y el motor de generacin de interfaz de usuario, que permite crear interfaces para la Web o para el tradicional entorno Windows. Se puede definir a .NET Framework como Una plataforma independiente del lenguaje para el desarrollo de Aplicaciones Web, la cual tiene como objetivo el modelo de programacin basado en aplicaciones y servicios, permitiendo a los desarrolladores centrarse en escribir la lgica especfica a desarrollar con esta arquitectura compuesta por una serie de libreras y un entorno de ejecucin comn.

5.4.1. Figura 10: Esquema .NET Framework.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 32 -

5.4.2. Descripcin de la Arquitectura .NET Framework.


De acuerdo al esquema anterior se puede diferenciar claramente los 3 niveles presentados por el Framework de .NET. En la base del entorno de ejecucin se encuentra el CLR, que constituye el ncleo de .NET Framework, este se encarga de la gestin del cdigo en cuanto a su carga, ejecucin, manipulacin de memoria, seguridad, etc., todas funciones propias en cuanto al Sistema Operativo y la aplicacin.

En el nivel intermedio, se sita la jerarqua de clases bsicas del entorno de ejecucin, que constituyen un slido API de servicios a disposicin del programador, para realizar mltiples tareas como, gestin del sistema de ficheros, manipulacin multihebra, acceso a datos, etc.

Finalmente, en el nivel superior, se encuentran las clases que permiten el diseo del interfaz de usuario de las aplicaciones. Si se necesita desarrollar aplicaciones para Internet, se utiliza ASP.NET, la cual provee todo lo necesario para crear aplicaciones para la Red, (Web forms, Web services, etc.). Este modelo no solo se aplica para programacin Web, sino tambin para aplicaciones de ambiente Windows.

Esta arquitectura presenta 2 nuevos tems que son: Un modelo de programacin consistente y sencillo, completamente orientado a objetos. Eliminacin del problema de compatibilidad entre DLLs, conocido como Hells DLLs o "infierno de las DLLs".

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 33 -

5.4.2.1. CLR, Common Language Runtime.

El Entorno de Ejecucin Comn de Lenguajes o CLR (Common Language Runtime), representa el alma de .NET Framework. Es la parte encargada de la ejecucin del cdigo de aplicaciones. Se puede considerar como un soporte que permite ejecutar los servicios y aplicaciones .NET en cualquier mquina que lo disponga. Est basado en la idea de Java, que tambin tiene un mdulo de ejecucin independiente del sistema operativo donde se vaya a ejecutar. La gran diferencia con Java es que este lenguaje es multilenguaje, no est limitado a un nico lenguaje como Java. Esto permite al desarrollador utilizar una amplia variedad de lenguajes como C++, Visual Basic y C# entre otros. Algunas de las caractersticas que ofrece este componente son:

Proporciona un desarrollo de aplicaciones sencillo y rpido gracias a que gran parte de las funcionalidades que tradicionalmente deba crear el programador, vienen implementadas en el entorno de ejecucin.

Administra el cdigo en tiempo de ejecucin, en todo lo referente a su carga, disposicin en memoria, recuperacin de memoria no utilizada a travs de un recolector de memoria, adems de caractersticas de gestin a bajo nivel (administracin de memoria, por ejemplo), que en ciertos lenguajes, eran labor del programador.

Proporciona un sistema comn de tipos para todos los lenguajes del entorno, gestionando la seguridad del cdigo que es ejecutado. Adems dispone de un diseo abierto a lenguajes y herramientas de desarrollo creadas por otros fabricantes.

Facilita la distribucin e instalacin de aplicaciones, ya que en teora, es posible instalar una aplicacin simplemente copiando los ficheros que la componen en uno de los directorios del equipo en el que se vaya a ejecutar.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 34 -

Todas estas caractersticas hacen que las aplicaciones aumenten en capacidad y tiempos de respuesta al haber separado varias funciones del programador y hacerlas parte del lenguaje. Por otra parte las libreras bsicas proporcionan una serie de funcionalidades que son necesarias a la hora de desarrollar tanto aplicaciones como servicios Web. Las clases bsicas gestionan operaciones como las de entrada y salida, seguridad, etc. Las Web Forms permiten desarrollar la parte grfica de una aplicacin para la Web, mientras las Windows Forms estn orientadas a implementar la parte grfica de las aplicaciones clsicas para Windows. Los compiladores producen cdigo MSIL (Microsoft Intermediate Language).

5.4.3. Implementacin Web con la arquitectura Framework .NET.


Al crearse la arquitectura Framework.NET, la empresa Microsoft pretenda imponer un cambio en la forma de desarrollar y utilizar las aplicaciones en la Red Internet. El propsito fundamental era cambiar el concepto de aplicaciones Web a Servicios Web, y que stas pudieran utilizarse tanto por compaas relacionadas con el negocio, como por quienes puedan requerir dichos servicios e incluso realizarlos. Todo esto se quera conseguir por medio de la creacin de herramientas bajo este estndar para crear dichos servicios.

Para esto, se utilizaron una serie de tecnologas y estndares, junto a un IDE unificado de desarrollo para los distintos lenguajes que forman parte de la suite de framework.NET (Visual Basic, C#, Asp.NET) con lo cual se pretenda aumentar la productividad de desarrollo. Basndose en una propuesta orientada a objetos y apuntando fuertemente en la capa middelware se podra convertir en un competidor real para soluciones de este mismo tipo, realizadas por otras tecnologas en el mercado como J2EE (Java Enterprise Edition 2).

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 35 -

5.5. Acceso a datos en Microsoft .NET.


Para acceder a datos en la arquitectura Microsoft .NET se debe hacer referencia a ADO .NET que es la nueva versin del modelo de objetos ADO (ActiveX Data Objects), una estrategia ofrecida por Microsoft para el acceso a datos. ADO .NET ha sido ampliado para cubrir todas las necesidades que ADO no ofreca, y est diseado para trabajar con conjuntos de datos desconectados, lo que permite reducir el trfico de red. Otra buena caracterstica de este modelo es que utiliza XML como formato universal de transmisin de los datos. Posee una serie de objetos que son los mismos que aparecen en la versin anterior, que permiten de mejor manera acceder a informacin de bases de datos, as como el objeto Connection o Command, y la introduccin de nuevos objetos tales como el objeto DataReader, DataSet o DataView.

ADO .NET se puede definir como:

Un conjunto de interfaces, clases, estructuras y enumeraciones que permiten el acceso a datos desde la plataforma .NET.

La evolucin lgica del API ADO de Microsoft a la nueva ADO.NET. Permite un modo de acceso desconectado a los datos, los cuales pueden provenir de mltiples fuentes de datos, de diferente arquitectura de almacenamiento

Soporta un completo modelo de programacin y adaptacin, basado en el estndar XML

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 36 -

6. Introduccin a la Comparacin de las Plataformas J2EE y .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 37 -

6.1. Introduccin.
Hasta esta parte ya se pueden diferenciar ciertos puntos sobre estas 2 plataformas de desarrollo Web. Luego de haber introducido los conceptos sobre ambas tecnologas, en ellas se hacen notar ciertas caractersticas propias, y, en ciertos casos, similitudes que hacen notar que ambas no son tan incompatibles y diferentes como se muestran en una primera etapa.

Para realizar una comparacin preliminar, antes de abordar completamente el tema de la comparacin dentro de las reas de evaluacin, efectuando juicios a partir de pruebas desarrolladas para demostrar que cierta plataforma puede presentar mejoras o deficiencias por sobre la otra., se puede comenzar a diferenciar caractersticas con el material analizado hasta este punto de la investigacin.

En esta primera etapa se mencionar algunos tems de comparacin que no necesitan pruebas especficas para sealar diferencias. stas se pueden efectuar mediante el estudio previo de las plataformas, y por medio de la informacin recolectada hasta esta parte. En ella se puede notar analogas propias de diseo, desarrollo y ejecucin de aplicaciones Web, arquitectura de ejecucin, compaas que las apoyan e informacin disponible. Tambin se puede diferenciar en una pre-etapa la complejidad en cuanto a la ejecucin de cdigos y la realizacin de procesos no vistos por el usuario.

En este captulo de la investigacin se definen las primeras reas a considerar y la primera tabla de comparacin previa de las plataformas de desarrollo, considerando la informacin hasta este punto.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 38 -

6.2 Anlisis de las Compaas.


Tan importante como la propia arquitectura que plantean estas dos plataformas de desarrollo, son las empresas que las apoyan, ya que contribuirn de forma decisiva en su xito o fracaso
(Ricardo Chamorro, Anlisis comparativo entre Microsoft.NET y SUN J2EE).

Independiente de lo que se opine de cada una de las empresas que patrocinan y auspician a estas dos tecnologas, es importante conocer que soporte presentan a los usuarios y que ventajas y desventajas presentan los apoyos de determinadas empresas. Por una parte J2EE tiene el soporte de grandes empresas de software que realizan su propia implementacin de ste estndar. Empresas como IBM, BEA, Oracle o la misma Sun, ofrecen productos para el desarrollo de aplicaciones en esta plataforma, que al juntarse con otros productos como bases datos, cach, y firewalls pueden entregar soluciones completas a sus clientes.

Por su parte, Microsoft, y su equipo de marketing han realizado polticas importantes para conseguir que .NET sea la plataforma de desarrollo de aplicaciones eBusiness preferida por los usuarios. Para darle apoyo, algunas empresas de renombre ya han comenzado a desarrollar soluciones usando .NET como: Accenture, Arthur Andersen, Compaq o Deutsche Bank. Algunos estudios concuerdan que en el futuro las dos plataformas convivirn y competirn por alcanzar un mayor mercado, pero que una no reemplazara a la otra, que, realizaciones en el presente hacen entender que ambas plataformas incluso podran fusionarse o funcionar juntas para lograr mejores objetivos.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 39 -

En otro mbito J2EE parte con la ventaja de haber llegado antes al mercado y de ser apoyada por empresas consideradas importantes las cuales ya utilizan esta tecnologa. Por otro lado Microsoft es la mayor empresa de software que con estratgicas de reduccin de precios y de marketing ha conseguido llegar a una importante masa de empresas y desarrolladores, los cuales estn conformes con los resultados obtenidos con esta plataforma de desarrollo.

Muchos apoyan, como norma general, que J2EE se impone en las grandes compaas mientras que Microsoft lo hace en las pequeas y medianas empresas las cuales prefieren pagar licencias en trminos de productos compatibles con sus sistemas operativos Windows utilizados, teniendo plena seguridad en el funcionamiento de stos. (Texto basado en el Estudio de
Ricardo Chamorro Anlisis Comparativo entre Microsoft.NET y SUN J2EE).

Caracterstica
Tipo de Tecnologa Empresas que lo ofrecen Librera de Desarrollo Interprete Paginas Dinmicas Componentes Acceso a Base de Datos Servicios WEB Interfaces Graficas Herramientas de Programacin Transacciones Distribuidas Servicios de Directorios Librera de Mensajes Lenguajes Utilizados Lenguaje Intermedio

.NET
Producto Microsoft .NET Framework SDK CLR ASP.NET .NET Framework SDK ADO .NET SOAP, WDSL, UDDI WIN Forms y WEB Forms Visual Studio.NET MS-DTC ADSI MSMQ C#, Visual Basic, C IL

Java 2EE
Estndar Mas de 30 Java core API JRE Servlets, JSP JRE JDBC, SQL/J SOAP, WDSL, UDDI Java Swing Depende del Fabricante JTC JNDI JMS 1.0 JAVA Bytecodes

6.3. Tabla 1: Tabla Comparativa 1: Primeras Comparaciones.


(Analogas y diferencias entre J2EE y .NET por Ricardo Chamorro)

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 40 -

6.4. Limitacin de la Comparacin Web.


Para poder determinar que aspectos de amplio rango de aplicaciones Web ofrecidas por las arquitecturas J2EE y Microsoft.NET se deben considerar, y que aspectos y funcionalidades comunes dentro de Internet se manifiestan en la utilizacin de pginas de tipo dinmicas. Ambas tecnologas presentan su tecnologa para este desarrollo, JSP por J2EE y ASP con los nuevos ASPx de .NET, esto da condiciones que en este punto se pueden sealar como similitudes entre estos 2 tipos de aplicaciones y los distintos requerimientos necesarios para su correcta ejecucin.

A pesar de que ambas plataformas presentan un nmero considerado de posibilidades de desarrollo WEB, las que mejor representan el desarrollo de las aplicaciones de este tipo son aquellas con las cuales el usuario interacta directamente al navegar por Internet. Aspectos como el tipo de componentes de ejecucin utilizado, las libreras incluidas o las analogas y diferencias que pueden presentar las arquitecturas J2EE con su maquina virtual y .NET con .NET Framework difieren de una comparacin dentro de un mbito Web sealando otros aspectos de estas tecnologas. Por su parte aspectos como el dinamismo, el tipo de conexin utilizada para acceder a bases de datos, la utilizacin de Servidores Web para el despliegue de las aplicaciones y, aspectos comparativos relevantes como el rendimiento y escalabilidad, apuntan directamente a una lnea de desarrollo Web de pginas dinmicas.

De esta forma aspectos ya definidos como las aplicaciones de ndole Web de J2EE y la descripcin de componentes de la arquitectura .NET quedan establecidos para poder emitir juicios posteriores dentro de la generalidad de las plataformas en comparacin para, de esta forma dar paso a una comparacin directa entre pginas JSP con ASPx.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 41 -

6.5. Pginas dinmicas en J2EE.

La tecnologa J2EE para la creacin de pginas Web desarrollada en el lenguaje Java, es conocida como pginas JSP (Pginas de Servidor Java o Java Server Pages), stas poseen la capacidad de ejecutarse en variados servidores Web y en mltiples plataformas, su sintaxis est compuesta de cdigos HTML/XML mezclados con etiquetas especiales que generan estas pginas. stas son desarrolladas de manera similar a como se crean las pginas ASP o PHP, las cuales se guardan como archivos de extensin .jsp que incluyen, dentro de la estructura de etiquetas HTML, las sentencias JAVA a ejecutar en el servidor.

Las pginas JSP son ejecutados por un motor basado en los servlets de Java (programas en Java ejecutados en el servidor) y antes de que sean funcionales, el motor JSP lleva a cabo una fase de traduccin de la pgina a un servlet, implementado en un archivo class (Byte codes de Java) que es llevada a cabo habitualmente cuando se recibe la primera solicitud de la pgina .jsp, tambin existe la opcin de precompilar el cdigo para evitar estos tiempos de espera al acceder por primera vez un cliente a la pgina JSP solicitada.

<%@ page language="java" %> <html> <head> <title>Bienvenida</title> </head> <body> <jsp:usebean id="clock" class=="calendar.jspCalendar"> <h1>Tiempo Inicio: <%= new java.util.Date() %></h1> <% String mensaje="Bienvenido "; out.println("<font color=blue size=7 >"+ mensaje + " </font><br>"); %> </body> </html>

6.5.1. Tabla 2: Ejemplo JSP

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 42 -

6.5.1. Requisitos de JSP.


Para poder desarrollar pginas JSP se debe tener conocimientos sobre paginas Web

HTML, las cuales en s, son la base de cualquier sitio de este tipo, adems ser necesario comprender la programacin en JAVA, lo que brindar un mejor manejo de conceptos de programacin y funcionamiento de ste tipo de pginas Web dinmicas.

Adems se necesitar descargar e instalar Tomcat, el contenedor de servlets usado en la referencia oficial de implementacin de JSP. Esto referencia el aprendizaje de otra rea dentro de la programacin de pginas dinmicas de JAVA, la configuracin del Servidor Web Tomcat, para as poder acceder directamente desde el equipo, como se estuviese conectado a la Internet. Este Servidor Web es uno de los ms potentes y reconocidos servidores gratuitos de Servlet y JSP del mercado. Pertenece a la familia de Apache (otro servidor Web) y es parte del Proyecto Apache Jakarta Project. ste puede ser instalado externamente, como un paquete o servicio dentro del Sistema Operativo, como tambin de forma interna al ejecutarse dentro del IDE de desarrollo de aplicaciones Web en JAVA.

La instalacin y configuracin varia dependiendo del Sistema Operativo que se utilice, ya que ste se desempea correctamente en sistemas Linux a base de comandos y, para sistemas Windows la instalacin viene siendo simple con respecto a los servicios que se quieren activar. En la instalacin del motor de programacin Java, Netbeans, se incluyen todos los servicios necesarios para poder levantar y ejecutar pginas JSP y que stas puedan funcionar correctamente.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 43 -

6.6. Pginas Dinmicas en .NET.


Para el desarrollo Web Microsoft .NET est diseado para la construccin de estos sistemas, manejados con la extensin .ASPx (Active Server Pages x), que permiten desarrollar pginas Web con contenido dinmico con la funcionalidad .NET. Anteriormente, aplicaciones como ActiveX y las Web Classes de Visual Basic fueron la base de llevar este tipo de programacin a Internet, pero su rendimiento en ejecucin y complejidad en algunos casos, distaban mucho de ser la solucin idnea a este problema. Al crear aplicaciones Web con programacin de pginas ASPx, junto a componentes de conexin con los distintos motores de bases de datos, hacen a las pginas ASPx junto con ADO, una solucin ptima para este tipo de aplicacin

6.6.1. Web Forms.


Con Visual Studio.NET, la creacin de Paginas ASPx, se realizan a travs de Web Forms o tipo de pginas de servidor activas (ASP+, Active Server Pages+). Estos permiten crear pginas Web programables como parte de una aplicacin Web global, lo que simplifica el desarrollo de grandes aplicaciones de este tipo, stas proporcionan un modelo de

programacin basado en eventos en el servidor. Los formularios estn basados en herramientas de desarrollo de Microsoft Win32 que entre sus ventajas se permite una completa separacin entre el formato HTML y la lgica de la aplicacin (.NET). La lgica, o cdigo asociado a la pgina, se compila y proporciona un rendimiento mucho mejor, definiendo reas de diseo y especificando algn tipo de error si ste se encontrase. Adems, este cdigo se puede escribir en cualquier lenguaje de Microsoft.NET, por lo que permite al usuario aprovechar mejor sus habilidades.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 44 -

En el rea de diseo los Web Forms proporcionan una interfaz de desarrollo rpido de aplicaciones (RAD, rapid application development) para crear y administrar stos formularios Web, los cuales son compatibles con un conjunto de controles y componentes .NET que ofrecen un modelo coherente de interconexin con cada una de estas herramientas obteniendo resultados seguros. Adems, el marco de trabajo se presta de manera natural de mayor accesibilidad, mediante las herramientas desarrolladas por otros fabricantes.

Existen otros aspectos igualmente importantes de los Web Forms, tales como la cach, seguridad, configuracin y personalizacin. Estos controles del servidor se usan para crear la interfaz del usuario y as generar cualquier salida adecuada para el dispositivo o explorador al que se dirigen. Hay dos conjuntos de controles de servidor en el marco de trabajo ASP+: los controles HTML y los controles Web, que procesan el HTML que reciben los exploradores Web. Adems del procesamiento, estos controles encapsulan el mecanismo para conservar el estado durante los recorridos completos y activar eventos del servidor para varios eventos cliente. Todas estas ventajas ofrecen a desarrolladores que no estn familiarizados con la creacin de sitios Web poder desarrollar dichas aplicaciones.
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="inicio.aspx.vb" Inherits="AspxPostgres.inicio"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"> <meta name="CODE_LANGUAGE" content="Visual Basic 7.0"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout" bgColor="#ccff00"> <asp:label id="Label1"> Pgina Inicio </asp:label> </body> </HTML>

6.7. Tabla 3: Ejemplo ASPx


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 45 -

7. Programas de Desarrollo para las plataformas J2EE y .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 46 -

7.1 Introduccin.
Para comenzar a programar en ambas plataformas, se debe considerar que IDE (Integrated Development Environment) de desarrollo se utilizarn y saber el por qu de esta eleccin. Al ya limitar el universo de posibilidades de arquitecturas de desarrollo Web, y enfocarse solo en la propuestas por Sun Microsystems y Microsoft. Se debe conocer que IDEs, o programas de desarrollo, definen las funcionalidades y procedimientos necesarios para crear aplicaciones bajo los estndar de J2EE y .NET.

En el mercado existen varias alternativas para el desarrollo de aplicaciones de estas plataformas. En el caso de J2EE, varan desde poderosos entornos operativos para la creacin de portales Web, a las ms sencillas y bsicas con las cuales se pueden crear sitios propios. Tambin el uso de licencias esta denotado bajo esta tecnologa, desde soluciones libre de pago hasta IDEs comerciales de precios elevados. En el mbito de .NET,

Microsoft, aunque parti con un nico lenguaje-software de desarrollo, Visual Studio.NET, de a poco el mercado ha ido lanzando nuevos productos los cuales se pueden utilizar para el desarrollo de aplicaciones de alto nivel con esta plataforma

En el presente captulo se analizar los principales IDEs de desarrollo sobre estas tecnologas, denotando las mayores caractersticas que stos presentan para posteriormente poder decidir cual de ellos presenta lo necesario para el desarrollo de aplicaciones Web y demuestra el podero de las plataformas de desarrollo evaluadas.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 47 -

7.2. Principales IDEs de Desarrollo de J2EE.


Al querer nombrar o especificar IDEs de Desarrollo o programas para la ejecucin de programas JAVA con la plataforma J2EE, se pueden mencionar una variada gama de productos, stos, al presentar la principal diferencia, el tema de licencias, se separan en 2 grandes reas: los IDEs de licencia libre u open source y los IDES comerciales. En estas reas se encuentran distintos programas de desarrollo que destacan la compatibilidad necesaria para no encontrarse con problemas de desarrollo, al realizar aplicaciones en un IDE y luego querer llevar estos cdigos a ejecutarse en otro.
Producto
Eclipse (IBM)

Sitio
http://www.eclipse.org

Licencia
Opensource

Plataforma
Windows, Linux, OSX

JBuilder (Borland)

La versin de Evaluacin y la http://www.borland.com/jbuilder/ Personal son gratis, las avanzadas, Profesional y Enterprise son comerciales.

Windows, Linux, Solaris

Sun ONE Studio (Sun Microsystems) http://www.sun.com/forte/ffj/

Esta basado en el IDE opensource Netbeans pero las versiones existentes son todas comerciales. Todas con JVM.

Netbeans (SunMicrosystem) http://www.NETbeans.org

Opensource

Todas con JVM.

Rational Application Developer (IBM) WebSphere Developer Application (IBM)

http://www306.ibm.com/software/awdtools/ developer/application/ http://www306.ibm.com/software/awdtools/s tudioappdev/

Basado en el framework de Eclipse 3.0. Windows, Linux.

Basado en el SDK versin 3.0 de Eclipse. Desarrollo de WebServices.

Windows, Linux.

7.2.1. Tabla 4: Tabla Explicativa 1: IDEs de Desarrollo J2EE.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 48 -

7.2.1. NETBEANS

NetBeans es el programa de desarrollo para aplicaciones Java de licencia libre ms utilizado por los usuarios. Este cuenta con las funcionalidades necesarias para el desarrollo de todos los tipos soportados bajo este estndar.

Este IDE de desarrollo creado por Sun, el cual mantiene una licencia Open Source sobre Netbeans, ofrece ventajas extras sobre otros IDE's y llega a ser considerado el mejor editor de programas JAVA. Este software consta por el momento de dos partes, el IDE (entorno de desarrollo) NetBeans, y NetBeans Tools Platform (Plataforma de herramientas). Adems de lo gratuito de la herramienta, esta posee un poderoso trasfondo de ejecucin que permite ejecutar sin problemas aplicaciones de escritorio con la mquina virtual de Java y en aplicaciones Web, el servidor JSP Tomcat

A pesar de que la principal caracterstica del IDE de desarrollo es su gratuidad, Sun planea empaquetar algunos componentes con una serie de mdulos propios y un contrato de mantenimiento para poder convertirlo en ediciones de lujo por la cual se pagara una licencia. De este modo Sun pagara los recursos utilizados para que continuase el desarrollo Open Source, para que usuarios e ingenieros, puedan obtener resultados esperados en este entorno de desarrollo verdaderamente potente. Con el transcurso del tiempo, Netbeans ha ido mejorando e incorporando nuevas utilidades que lo han hecho un IDE mas completo, el hecho de que desde la versin 3.2 pueda funcionar en Mac OS X, ha hecho que no solo los usuarios de PC posean esta arquitectura y ha ampliando notablemente el desarrollo de aplicaciones JAVA. - 49 -

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

7.3. Desarrollo en Microsoft .NET con Visual Studio.


La empresa Microsoft al crear la plataforma de desarrollo .NET, cre toda una nueva gama de productos y nuevas versiones para su conjunto de herramientas de desarrollo de software, naturalmente orientadas a .NET Framework su nuevo entorno de programacin.

Si bien es posible la escritura de programas empleando slo el SDK de .NET Framework, este ltimo, al estar compuesto de herramientas independientes, constituye un medio ms incmodo de trabajo.

Visual Studio .NET fue creado como un entorno de desarrollo integrado (IDE) el cual contiene todas las herramientas del SDK: compiladores, editores, ayuda, etc., facilitando en gran medida la creacin de programas, tanto aplicaciones de escritorio, como aplicaciones Web. Este entorno de desarrollo contiene nuevas funcionalidades que facilitan la creacin de sitios Web con contenidos programables de manera importante. Presentando herramientas graficas, las cuales pueden desplegarse para su utilizacin de manera modular, lo cual representa una ventaja a la hora de compararlo con otros IDEs del mercado.

Adems este editor trabaja directamente con las capas del modelo .NET Framework, la Base Class Framework que contiene las clases necesarias para general los aspectos bsicos de programacin, que se interpretan desde el lenguaje CLR, el lenguaje bsico de este modelo de programacin.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 50 -

8. Eleccin de IDEs de Desarrollo para las Plataformas J2EE y .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 51 -

8.1. Introduccin
Despus de analizar los principales IDEs de desarrollo para las plataformas Microsoft .NET y J2EE, conocer sus funcionalidades, capacidades y herramientas, se debe empezar a definir que IDEs se utilizarn para comparar ambas plataformas y, posteriormente en una etapa de pruebas, desarrollar mdulos de comparacin para la evaluacin de stas.

Para sto se deben analizar las principales caractersticas de las respectivas plataformas de desarrollo, cerciorarse de que las IDEs a utilizar son fieles a conceptos y lneas de desarrollo de estas arquitecturas, darse cuenta de que en estas se puede demostrar el podero de programas desarrollados en dichas tecnologas y, poder ejecutar sin errores,

aplicaciones en un ambiente Web para cada una de stas. Por esto antes de emitir juicios sobre que IDEs son mejores para cada tecnologa, se deben considerar las caractersticas principales de J2EE y .NET. Para el caso de J2EE en base a estudios y entrevistas de la razn principal de su utilizacin, se marco el hecho de: La disponibilidad de libre licencia para algunos de sus IDEs de desarrollo. Adems, JAVA, por caracterstica propia no esta sujeta a pago de licencias. Esto hace que este atributo sea de importancia en la eleccin del software de desarrollo para aplicaciones en J2EE. Por su parte, Microsoft .NET, por los estudios previos y consulta hacia personas que utilizan esta tecnologa, se menciona como su principal caracterstica: La facilidad de creacin de aplicaciones WEB, y en un mismo nivel, refirindose a Visual Studio.NET como un potente y fcil programa de desarrollo de este tipo de aplicaciones.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 52 -

8.2. Eleccin de IDE de Desarrollo para J2EE.


Al basarse en las caractersticas definidas para la eleccin del IDE de desarrollo para la plataforma J2EE, el aspecto de la licencia libre, limit el conjunto de posibilidades, quedando solo dos IDEs de desarrollo con las caractersticas necesarias: Netbeans y Eclipse. Por ser un IDE de desarrollo de estudio, y utilizado en la misma universidad, se defini a NETBEANS como el IDE de Desarrollo.

En la eleccin de Netbeans

destac por sobre otros programas de desarrollo por su

caracterstica de open source, principal atributo de JAVA, desechando las alternativas comerciales como se coment con anterioridad. Pues para determinar que IDE utilizar para la plataforma J2EE, ste debera presentar las siguientes caractersticas: IDE de Licencia Libre y Fcil utilizacin, aspectos considerados por Netbeans. Adems ste maneja el conjunto de APIs y proceso de servlets para la ejecucin de software Web.

8.3. Eleccin de IDE de Desarrollo para .NET.


Para poder decidir que Plataforma de Diseo utilizar para el ambiente .NET predomin el hecho de que la mayora de los criterios a considerar concluan en el producto, Visual Studio .NET, pues ste presenta toda la funcionalidad ofrecida por la arquitectura

Framework.NET. Dejando de lado el tema relacionado con el manejo de licencias y costos, Visual Studio.NET, presenta caractersticas propias, y, junto a la Tecnologa .NET, proporciona todo lo necesario para el desarrollo bajo esta arquitectura.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 53 -

Visual Studio se presenta como la mejor herramienta de diseo de aplicaciones .NET por funcionalidades propias del lenguaje, facilidad del manejo de herramientas, un editor grfico de aplicaciones, fcil instalacin y ejecucin de componentes que lo hacen el IDE de Desarrollo para Microsoft.NET.

8.4. Principales Caractersticas de IDEs Seleccionados.


En esta parte del captulo se sealarn algunas caractersticas entre ambos programas de desarrollo, NetBeans y Visual Studio. NET.

Caracterstica
Manejo de Licencia Componentes de funcionamiento

NetBeans
Licencia Libre JVM (Maquina

Visual Studio .NET


Comercial

Ninguno. Virtual) Especifico para Orientacin de Desarrollo. Aplicaciones Java. Componentes de Tomcat Funcionamiento Web Ms menos 1 hr 40 Duracin de Instalacin Ms menos 15 min. min. Tamao del IDE 90 MB (ms JDK) 1.751 MB IIS Aplicacin Win32. Tanto Web con

8.4.1. Tabla 5: Tabla Comparativa 2: Principales Caractersticas.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 54 -

9. reas de Evaluacin de las Plataformas J2EE y .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 55 -

9.1. Introduccin.
Para poder determinar que aspectos se necesitan desarrollar en una comparacin de tecnologas en el mbito Web, se debe describir que tems son importantes evaluar para poder realizar pruebas que determinen superioridades e inferioridades entre ambas plataformas. Para esto se definen ciertas reas de Evaluacin, las cuales contienen algunos criterios que representan los aspectos comparativos ms importantes que puedan ser la base de pruebas posteriores que podrn evaluarn a las plataformas J2EE y .NET en el mbito WEB.

La importancia de este punto radica en condicionar que reas del diseo, desarrollo y posterior ejecucin de pruebas y aplicaciones, permiten sacar conclusiones sobre ambas tecnologas determinando grados de efectividad, debilidades y aciertos para cada aspecto. Para esto se consult manuales y sitios relacionados con el tema, los cuales guiasen en las reas revelantes de comparacin en particular mtodos de evaluacin de software, como Medida de Rendimiento de Aplicacativos Web, por Roberto Canales quien menciona aspectos generales al igual que sitios como JavaHispano, donde usuarios en general sealan que aspectos ms relevantes se deben considerar para que una plataforma se destaque sobre la otra, sto junto a la experiencia de desarrollar aplicaciones bajo estas plataformas permitieron sealar las reas de comparacin establecidas en este documento.

Los criterios mencionados son los principales a los cuales sitios dedicados a la evaluacin de software Web consideran. (Estudio
de Interoperatividad .NET/J2EE, por Leonardo Rodrguez, Andrs

Vignaga y Felipe Zipra de La Universidad de la Repblica, Uruguay y por Lus Sancho en su estudio .NET vs J2EE, Consultar Anexo E ).

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 56 -

9.2. Definicin de reas de Evaluacin.

9.2.1. Definicin de rea de Evaluacin 1: Aprendizaje. Al empezar a definir las reas de evaluacin se considerar al concepto Aprendizaje, a la capacidad que tiene el usuario comn de acceder a la tecnologa, la facilidad hacia el conocimiento y posterior capacitacin en una de estas plataformas, que medios se utilizan para llegar a sta, que informacin debe ser considerada y cuantos profesionales estn dedicados a sto. Con esto se quiere determinar que tecnologa puede ser ms fcil y simple de abordar en una primera lnea o etapa, que podra denominarse de conocimiento previo o bien aprendizaje.

Dentro de la investigacin recopilada en etapas anteriores, muchos documentos se referan a este concepto de forma personal, midiendo variables y evaluando productos por separado, refirindose a la plataforma de comparacin opuesta de forma negativa, lo que no llegaba a algn tipo de conclusin o aspecto factible a considerar. Por esto y ms dentro de esta rea del documento y particularmente en el rea de evaluacin Aprendizaje, plantea en simples conceptos algunas caractersticas bsicas a considerar para poder emitir juicios con respecto a un tema tan subjetivo como lo es el aprendizaje.

Esto involucra los siguientes criterios a considerar:

9.2.1.1. Criterios de Aprendizaje: Informacin Disponible. Informacin Disponible en Espaol. Calidad de la Informacin. Curva de Aprendizaje
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 57 -

9.2.2. Definicin de rea de Evaluacin 2: Rendimiento Al referirse al rea de evaluacin Rendimiento, sta se refiere al conjunto de necesidades para el manejo de hardware por la tecnologa. Que costos involucran el relacionarse con una de estas plataformas y, si el equipo computacional utilizado por el usuario, esta capacitado para albergar dicha tecnologa de desarrollo.

Con esto se desea considerar, hasta que punto el Hardware limita el accionar de las plataformas, tanto como prerrequisitos de instalacin del software, que permita realizar aplicaciones Web propias, como tambin el costo de recursos que se utiliza al ejecutar dichas aplicaciones.

A su vez en esta etapa, se debe dejar descrito, cuales aspectos propios del rendimiento deben considerarse y cuales no, que aspectos externos a las plataformas de desarrollo deberan considerarse y no ser tomados a la ligera, o bien en que se basan las empresas para poder definir los requerimientos mnimos de usabilidad para la instalacin de productos que realicen software y aplicaciones Web bajo los estndares J2EE y .NET. Este criterio ser de vital importancia en futuras etapas de pruebas y podr ser clave en la decisin de elegir una tecnologa por sobre la otra.

Para esto se considera los siguientes criterios: 9.2.2.1. Criterios de Rendimiento: Uso de Recursos. Capacidad de Respuesta. Requerimientos Mnimos. Componentes Necesarios Escalabilidad.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 58 -

9.2.3. Definicin de rea de Evaluacin 3: Explotacin y Uso. Con Explotacin y Uso, se referir a todos los componentes externos a la plataforma, que tan utilizados son estos estndar, que empresas los utilizan y que sistemas conocidos son creados bajo estas arquitecturas.

Mediante los criterios definidos para esta rea de evaluacin se quiere dejar constancia, por ejemplo, sobre que porcentaje de Internet est constituido por pginas ASP o Aspx, frente a JSP. Esto dar un indicador sobre que tanto se pueden encontrar fuera, en la Internet, este tipo de aplicaciones y si mediante la construccin de un nmero mayor de aplicaciones Web a travs de estas plataformas de desarrollo, se pueden elaborar modelos de diseo y desarrollo para futuro proyectos de este mismo tipo.

La importancia de esta rea de evaluacin radica en el hecho de encontrar si la plataforma que se debe dedicar el usuario es utilizada por otros, y si sta ofrece un campo tanto laboral, como de conocimiento, las cuales permitan una continua capacitacin sobre la plataforma. Tambin el poder determinar por ejemplo una grfica sobre desarrollo de este tipo de tecnologas Web, tanto en un medio global como el total de Internet, o de manera local refirindose solo a los dominios .cl, podran dar las bases sobre en que nivel de aplicacin Web (Asp, Jsp, php, etc.) esta sustento el medio nacional.

Para esto, se consideraron los siguientes criterios: 9.2.3.1. Criterios de Explotacin y Uso: Curva de Desarrollo. Uso de la Tecnologa. Distribucin.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 59 -

9.2.4. Definicin de rea de Evaluacin 4: Desarrollo. El rea de evaluacin de Desarrollo hace alusin al usuario frente al editor de programas o IDE de desarrollo de la arquitectura establecida. En esta rea se quiere dejar en claro que tan importante hace a una tecnologa como .NET o J2EE un buen IDE. Si su aspecto genera mayor confianza, accesibilidad, un mejor entorno operativo que haga que el desarrollar aplicaciones de cualquier tipo no sea un proceso engorroso, y si el software permite realizar conforme se crean dichas pginas, un aprendizaje frente a errores y/o el mejor manejo de las herramientas de diseo y ejecucin propuestas por el IDE de desarrollo.

Esta rea describe aspectos que pueden considerarse subjetivos, pero al ser tratados desde un punto de vista crtico, basado en funcionalidades mnimas y un aspecto atractivo que incentive el hecho de desarrollar aplicaciones en el respectivo IDE, hacen que el componente personal no sea considerado, ya que sta rea de evaluacin, al igual que el Aprendizaje contiene muchos aspectos que son considerados personales y poco objetivos al querer dejar en claro alguna caracterstica en cuanto a la ejecucin de aplicaciones que pueda demostrar alguna ventaja a considerar que pueda ser totalmente imparcial.

Para esto se concibieron los siguientes criterios a considerar:

9.2.4.1. Criterios de Desarrollo: Interfaz de usuario. Accesibilidad.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 60 -

9.2.5. Definicin de rea de Evaluacin 5: Uso de Licencias.

Dentro del rea de Uso de Licencias, se consideran los aspectos que involucran el acceder a los distintos IDEs de desarrollo de ambas plataformas. El como se presentan al usuario, el ver con que fines se manejan estos programas y, si se considera el hecho de desarrollo comercial y el acadmico. Aspecto importante y limitante al enfrentarse a una eleccin de productos de este tipo o la adquisicin de los mismos. Para esto, se cuenta con las respectivas licencias de cada arquitecturas y sus IDEs de desarrollo, lo que permitira a grandes rasgos saber a que tipo de producto el usuario se esta enfrentando y que consecuencia podra tener la posterior evaluacin de desarrollo comercial a travs de estas herramientas. Otro aspecto a considerar en esta rea de evaluacin, es el manejo de los cdigos generados por cada aplicacin Web, si su accesibilidad est permitida en todo momento y si la generacin de archivos sin uso es clara, o no se est al tanto de que funcin realiza dentro de la aplicacin general.

Otros aspecto importante dentro de esta rea de evaluacin, es el delicado tema de costos sobre las licencias y las adquisiciones de productos, IDEs y todo lo relacionado con ambas plataformas de desarrollo. Si dentro del mbito comercial que puedan presentar cada una de estas tecnologas, se considera la realizacin de distintos paquetes y precios, dependiendo del nivel del usuario que quiere comenzar a desarrollar aplicaciones propias en estos estndares. Para esto se defini los siguientes criterios:

9.2.5.1. Criterios de Uso de Licencias: Licencia Libre Cdigo Abierto Costos.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 61 -

9.2.6. Definicin de rea de Evaluacin 6: Compatibilidad. Al realizar un rea de evaluacin relacionada con la Compatibilidad, se definen criterios como: el donde poder ejecutar este tipo de aplicaciones, desde el sistema operativo soportado hasta el servidor Web que permita el correcto despliegue de la aplicacin en algn tipo Browser o Navegador Web.

La compatibilidad tiene que ver con la interaccin entre los distintos componentes que hacen posible la ejecucin del cdigo durante las diferentes capas de ejecucin. La relacin entre el Sistema Operativo y el lenguaje de mquina que interpreta el respectivo lenguaje, hacen que la compatibilidad sea uno de los puntos ms discordantes entre estas 2 tecnologas, ya que no todas cuentas con lo necesario para este tipo de funcionamiento.

Esto genera conflictos entre ambos estndares de desarrollo que buscan vulnerabilidades sobre la otra para encontrar ventajas. Tambin considerar aspectos, por ejemplo la portabilidad, el poder analizar y determinar hasta que punto son positivos y realmente provechosos a los usuarios este tipo de caractersticas.

Para esto de defini los siguientes criterios de comparacin:

9.2.6.1. Criterios de Compatibilidad: Portabilidad Navegadores Web. Servidores Web.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 62 -

9.3. Definicin de Criterios.


9.3.1 Definicin de Criterios de Aprendizaje. Para el rea de Evaluacin 1: Aprendizaje se definieron los siguientes criterios los cuales encierran la idea principal de cmo el usuario accede a cada tecnologa y tiene la capacidad de informarse sobre stas. Para esto se describe:

9.3.1.1. Informacin Disponible: se refiere a la disposicin de informacin y conocimiento que se puede conseguir por medios asequibles, como Internet, libros y revistas especializadas. Implcitamente en la Web, cuantos sitios manejan informacin del tema, cursos, manuales y bugs, que permitan una mejor y ms rpida integracin a la plataforma. Adems se puede considerar que tipo de demanda tiene en Internet.

9.3.1.2. Informacin Disponible en Espaol: se refiere al poder conseguir informacin en nuestro idioma. Con informacin relacionada sobre cada plataforma, Cunta de sta de encuentra disponible en el idioma espaol?, pues al encontrarse en el idioma del usuario, el proceso de aprendizaje se acelera y se torna gil, al no tener que dedicar tiempo a traducir, sino solo a aprender.

9.3.1.3. Curva de Aprendizaje: se refiere a la asimilacin entre las variables de tiempo y aprendizaje con respecto al desarrollo en la plataforma seleccionada. El comparar estas variables grficamente demostrar una curva ms elevada y corta para la plataforma con mayor facilidad de instruccin.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 63 -

9.3.2. Definicin de Criterios de Rendimiento.

Para el rea de Evaluacin 2: Rendimiento, se definieron criterios que especificarn la utilizacin de hardware, la necesidad de componentes externos que limiten de alguna forma el acceso a las aplicaciones Web desarrolladas. Estos se dividieron en Rendimiento Independiente y Rendimiento Base de Datos.

9.3.2.1. Rendimiento Independiente. 9.3.2.1.1. Uso de Recursos: se refiere a la utilizacin y consumo de componentes de hardware como lo son Tiempo Cpu o tambin considerado tiempo de ejecucin, y el espacio de disco duro utilizado por la aplicacin y la cantidad de archivos generados.

9.3.2.1.2. Capacidad de Respuesta: se refiere al criterio encargado de considerar la duracin sobre una peticin y obtener resultados de dicha operacin, como por ejemplo, el presionar un botn y que este ejecute la accin, o la bsqueda de un dato sobre un servidor de base de datos va Web. Esto brindar una orientacin sobre tipo de pgina o aplicacin es ms gil en tiempos de despliegue y de actualizacin.

9.3.2.1.3. Requerimientos Mnimos: Para este criterio se consider aspectos mencionados en captulos anteriores al referirse independientemente a cada Plataforma y a sus productos de desarrollo. En stos se puede dar cuenta los requerimientos operativos que necesitan para poderse ejecutarse, los requerimientos de hardware para los IDEs de desarrollo de ambas plataformas, y as poder demostrar que tecnologa necesita un mayor avance tecnolgico para poder ejecutar correctamente sus aplicaciones.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 64 -

9.3.2.1.4. Escalabilidad: Este criterio hace referencia sobre un sitio Web determinado, tanto ASPx para la tecnologa .NET y JSP en J2EE, tenga la capacidad de funcionar correctamente en funcin del nmero de usuarios simultneos que lo utilizan. Dicho de otro modo, la propiedad de acceso a mltiples usuarios a una misma aplicacin, manteniendo la misma funcionalidad sin presentar mayores dificultades.

9.3.2.2. Rendimiento Base de Datos: 9.3.2.2.1.Uso de Recursos, 9.3.2.2.2. Capacidad de Respuesta, 9.3.2.2.3. Requerimientos Mnimos, 9.3.2.2.4. Escalabilidad.
(Estos criterios hacen referencia a los mismos definidos para rendimiento independiente, ahora con la salvedad de ser orientados al trabajo y desempeo de aplicaciones Web con Base de Datos, tanto de forma local y remota.)

9.3.2.2.5. Componentes Necesarios: Este criterio hace referencia a todo componente, elemento o herramienta ajena al IDE de desarrollo que permita trabajar correctamente con aplicaciones Web con operaciones de bases de datos. Este criterio permitir ver que IDE est mejor preparado para el desarrollo de aplicaciones de este tipo.

9.3.3. Definicin de Criterios de Explotacin y Uso.

Dentro del rea de Evaluacin Explotacin, se definieron criterios que explicarn de buena manera la relevancia y utilizacin de estas plataformas dentro del ambiente de Internet. Para estos criterios se hizo una investigacin en la cual se quera reflejar la utilizacin de las paginas web ASPx y JSP en cuanto a cantidad y calidad, las empresas realizan sus sitios bajo estos estndares, en claro apoyo a una de estas arquitecturas, tambin se consider el

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 65 -

navegar por distintos sitios en Internet y si estos reflejaban que tipo de aplicacin Web utilizaban. Adems dentro de esta rea se pudo tener acceso a un documento el cual contrastar con el estudio realizado en este documento, para as poder tener ms de una referencia sobre algunos de los temas tratados en ste. Los criterios descritos para esta rea de evaluacin son los siguientes:

9.3.3.1. Curva de Explotacin: para este criterio se consider el cotejo entre el desarrollo de la tecnologa en funcin del tiempo, si a pesar del tiempo una tecnologa se mantiene vigente o si la utilizacin de sta decrece, considerando la evoluciona a una tecnologa de mejor rendimiento. Por otro lado, el incremento del desarrollo de aplicaciones Web en una de estas plataformas, se determinar a travs de distintos sitios y aplicaciones creadas bajo estos estndares.

9.3.3.2. Uso de la Tecnologa: este criterio hace referencia a la cantidad numrica de sitios desarrollados bajo estas plataformas. En el simple hecho de navegar por Internet el usuario se encontrar con pginas con distinta orientacin, informacin, entretenimiento, de foros, etc., las cuales poco tienen que ver directamente con conceptos ASPx o JSP, pero si determinar el hecho de saber en que tecnologa estn desarrolladas .

9.3.3.3. Distribucin: Bajo este criterio se encuentran las empresas que albergan sus sitios, tanto corporativos, de informacin y sistemas Web bajo estas tecnologas. Considerar ms que la cantidad de sitios de este tipo, ver la calidad y el nivel de importancia de la empresa o institucin que apoya a estas plataformas con la inclusin implementaciones propias bajo estas tecnologas.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 66 -

9.3.4. Definicin de Criterios de Desarrollo.

Para el rea de Evaluacin de Desarrollo se definieron criterios directamente relacionados sobre la programacin de sitios Web. Adems la visualizacin de estos sitios sobre un Browser, definiendo la facilidad de los distintos IDEs para la realizacin de pginas dinmicas. Para sto se definen los criterios descritos a continuacin.

9.3.4.1. Interfaz de usuario: Este criterio hace directa referencia a la apariencia presentada por el IDE de desarrollo, tanto desde un punto de vista de atractivo, como de funcionabilidad. Los aspectos que se fueron: un grato ambiente para desarrollar, interfaces y apariencias llamativas y congruentes, que no lleven a error, con utilizacin de objetos (mens, iconos) que no hagan a la programacin una tediosa escritura de cdigos.

9.3.4.2. Accesibilidad: esto se refiere a la posibilidad que ofrece tanto la plataforma como los mismos IDEs de desarrollo de ofrecer funciones, procesos y atributos de forma acertada a la hora de programar. Una pgina o sitio Web es accesible cuando est diseada para que sus contenidos estn disponibles a los usuarios.

9.3.5. Definicin de Criterios de Uso de Licencias. Para el rea de Evaluacin, Uso de Licencias, se describieron criterios que sealarn facilidades en cuanto al cdigo y a las licencias ofrecidas por ambas plataformas. Definir que posibilidades hay de acceder a herramientas de libre costo, y si la creacin de aplicaciones bajo estas plataformas genera algn tipo de incongruencia al generar licencias personales.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 67 -

Esto se describe a continuacin:

9.3.5.1. Licencia Libre: Este criterio se refiere a la facilidad proporcionada por la plataforma al acceder a sus productos, la consideracin de versiones independientes del uso, pudiendo separar en comerciales y de conocimiento o aprendizaje. Este criterio muestra la orientacin de cada plataforma y si su objetivo es solo comercial o si se considera el mbito educacional. Tambin se define el hecho que, al desarrollar productos en una plataforma con facilidad de licencias, no se depende de nadie para realizar aplicaciones propias.

9.3.5.2. Cdigo Abierto: Este criterio hace referencia a la permisividad de acceder a los cdigos generados en el proceso de creacin de una aplicacin Web. Si stos contienen algn tipo de encapsulacin o encriptacin que no permitan la interaccin entre el cdigo y el usuario o con los componentes del Sistema Operativo y del Hardware en si.

9.3.5.3. Costos: Este criterio hace referencia directa al precio de las licencias que debe pagar el usuario por la utilizacin de las herramientas de desarrollo, para la creacin de aplicaciones bajo los estndares J2EE y .NET. Si se considera la realizacin de paquetes independientes para el nivel del usuario.

9.3.6. Definicin de Criterios de Compatibilidad.

Para el rea de Evaluacin de Compatibilidad se definieron dos criterios en los cuales se describe la posibilidad de crear una misma aplicacin independiente de la mquina,

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 68 -

programa o Browser para poder ejecutarse. Al referirse a Compatibilidad se entra en el terreno de pugnas de empresas de software, las cuales no va en beneficio de esta investigacin por lo que no son consideradas. Para esto se defini:

9.3.6.1. Portabilidad: al definir el criterio de portabilidad se refiere a la posibilidad de migrar una aplicacin Web realizada bajo un Sistema Operativo y, que sta pueda ser ejecutada en otro donde no fue concebida, de ser viable una operacin de este tipo que nivel de depuracin o correccin debe hacerse para que pueda funcionar correctamente. Tambin este criterio hace relacin al IDE seleccionado el cual contenga distintas versiones para los distintos sistemas operativos ofreciendo una alta productividad para desarrollar aplicaciones multiplataforma para Linux, Solaris o Windows.

9.3.6.2. Navegadores Web: Este criterio hace referencia a la posibilidad de encontrarse con errores al momento del despliegue de aplicaciones en algn Browser o Navegador Web, que, aunque estos visualicen cdigos HTML, estas pginas dinmicas tanto JSP como ASP o ASPx con sus respectivos tags agregados a los cdigos HTML, a veces generan pequeas diferencias al acceder a una aplicacin desde un visor a otro, arrojando algn tipo de faltas como: tipos de letras, alineaciones, imgenes, etc.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 69 -

10.- Postulados de Comparacin de las plataformas J2EE y .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 70 -

10.1. Introduccin.
La industria del software empieza a tomar una postura crtica hacia las plataformas de desarrollo: .NET o J2EE?
(Carlos Del Collado Editor Windows 2000 Magazine),

a futuro se menciona

la posibilidad de que .NET y Java sern compatibles, que ambas tecnologas se comunicarn y el desarrollo ser aceptado por sus clientes los cuales podrn interconectar sus aplicaciones hechas en ambas tecnologas, pero, por el momento, no queda otra alternativa aceptable que la de decidirse por una de stas, teniendo en claro el porque de dicha eleccin y sabiendo que es la mejor alternativa.

En el presente captulo, luego de definir los criterios de comparacin, se describe el comportamiento de ambas plataformas de desarrollo frente a frente, se acenta en detalles tcnicos y prcticos que demuestren ventajas y vulnerabilidades de estas tecnologas, el poder acabar con mitos, tanto positivos como negativos y decidir con fundamentes cuales de estos son reales y cuales no.

Cada uno de estos postulados se generan luego del anlisis de los distintos sitios y documentacin recolectada sobre estas dos plataformas, en los cuales muchas veces convergen en aseveraciones mencionadas en ms de una oportunidad, de ah la necesidad de analizarlos y presentar estos postulados los cuales indican ventajas y desventajas

presentadas por las plataformas J2EE y .NET.

Algunos de los postulados han sido elaborados de temas descritos en los sitios de apoyo a la investigacin y los documentos base mencionados en la bibliografa de este trabajo.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 71 -

10.2. Ventajas y Desventajas de las Plataformas.


En el presente captulo se presentan algunos postulados que afirman caractersticas de ambas plataformas las cuales se desmienten o afirman analizando tales reas corroborando tales enunciados

Conforme avanza el captulo, se va introduciendo en conceptos, caractersticas y teoras que muchos afirman sin un sustento o base que los corroboren o por otra parte, que se presenten con una descripcin detallada que los haga ser vlidos. En alrededor de diez postulados, se resume la mayor cantidad de informacin que ha sido encontrada en los sitios mencionados, analizando conceptos, mitos y aseveraciones que abordados desde una perspectiva objetiva logren establecer ventajas de una plataformas sobre la otra.

10.3. Postulados de Comparacin.


10.3.1. Postulados de Comparacin 1. Java corre en cualquier ambiente, mientras .NET es exclusivamente para entornos Microsoft
(Especial: Java Versus .NET por Rodrigo Bustos)

Este postulado se refiere a la plataforma o sistema operativo utilizada por los usuarios, el poder saber realmente, cual de ambas plataformas permitir a stos una mejor explotacin de sus sistemas, aprovechamiento de recursos, etc., aspectos importantes a la hora de determinar a que tecnologa se dar uso, e incluso el poder adoptar nuevos sistemas operativos dentro de la empresa, tanto en pequeas y medianas empresas. corporaciones internacionales, como en

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 72 -

Algunos Informticos piensan en Java no slo como un lenguaje de programacin, sino que afirman que sta es una poderosa tecnologa con algunos objetivos fundamentales como: el entregar un entorno estndar de desarrollo y una produccin independiente de la plataforma, proveyendo de escalabilidad para que la explotacin de sistemas sea ms eficiente, robusta, flexible, integrada y segura.

Esto quiere decir que con Java se pude construir aplicaciones sobre mquinas Intel con sistema operativo Linux, y despus migrarlas fcilmente a ambientes Windows, llevarlas a telfonos celulares, PDAs, mainframes IBM, servidores corporativos Sun o cualquier otra plataforma con soporte en Java, sin tener que recompilar o modificar los cdigos generados.

Lo mencionado anteriormente, aunque es real, no se cumple a cabalidad, luego de la investigacin desarrollada, se puede afirmar que la portabilidad no se realiza de manera tan fcil como se deseara, el pensar en la posibilidad de migrar aplicaciones JAVA

desarrolladas en un sistema operativo a otro como algo simple es algo totalmente errneo. Hechos como el simple manejo de archivos, directorios y permisos, hacen que el proceso de depuracin sea algo engorroso y complicado para cierto tipo de aplicaciones, que sin ser imposible, en muchos casos genera ms problemas adaptarlos que realizarlos completamente desde cero en el nuevo entorno operativo. Adems la utilizacin de componentes Java desarrollados para un sistema operativo en particular, no siempre funcionan correctamente en el sistema operativo migrado, se debe tener un conocimiento sobre el manejo de estos componentes y la ubicacin correcta de stos dentro de la aplicacin o proyecto.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 73 -

10.3.2. Postulado de Comparacin 2: Para J2EE existen ms empresas que apoyan a esta tecnologa que a .NET Este postulado es real, luego de lo investigado se puede afirmar que la plataforma J2EE cuenta con una amplia gama de productos con soporte para mquinas Intel o AMD con Linux, Windows, FreeBSD, OpenBSD y NetBSD, computadores Mac, sistemas Sun, sistemas IBM, sistemas HP, celulares Nokia y Ericsson, PDAs, todo tipo de Laptops, sistemas de bases de datos Oracle, Sybase, Informix, MySQL, PostgreSQL e incluso MSSQL Server tiene JDBC disponible. Tambin se pueden mencionar las herramientas de desarrollo de Sun, Borland, IBM, Oracle, Sybase, Rational, Macromedia y Apache Group, application servers de Sun, Oracle, BEA, IBM, JBoss Group, servlet containers WebSphere, con software de clase mundial como SAP, JD Edwards, y BAAN, entre otros
(Ricardo Chamorro, Anlisis comparativo entre Microsoft.NET y SUN J2EE).

Esto hace que J2EE tenga un soporte importante a la hora de contar con apoyos tecnolgicos dentro del medio. Por su parte .NET, desarrollado por Microsoft, es vista como una arma de doble filo por los usuarios, ya que muchos de estos son fervientes seguidores o grandes detractores. Esto hace al postulado en cuestin cierto en lo que presenta.

10.3.3. Postulado de Comparacin 3: .NET restringe a los usuarios en cambio J2EE no Este postulado se refiere al restringimiento que realiza la empresa Microsoft, al limitar a sus plataformas de desarrollo que solo pueden utilizar sistemas operativos Windows, por un tema netamente comercial y de negocios, que la hace un entorno totalmente cerrado. A su
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 74 -

vez Java, al ser un cross-plataform, facilidad de correr en cualquier ambiente, le da una ventaja por sobre .NET al no restringir a los usuarios en la utilizacin de un Sistema Operativo para desarrollar algn tipo de aplicaciones. Por esto J2EE ventaja a .NET, ya que ste es un punto en contra hacia la tendencia de hoy en da, la heterogeneidad de plataformas al interior de las organizaciones, pues, al restringir las herramientas utilizadas por los usuarios, hace que stos pierdan el inters y no se trabaje correctamente bajo un mismo estndar.

En cuanto a la estandarizacin, accin realizada en ms de una oportunidad por Microsoft, que realizan cambios en estndares conforme a su conveniencia y de manera arbitraria, lo que imposibilita al usuario de .NET de elegir libremente.. Esta problemtica no existe por el lado de Java debido a que es una tecnologa completamente estndar y abierta, caractersticas que se aprecian en el gran nmero de proveedores de soluciones y productos para la tecnologa, hechos que hacen cierto al ste postulado en su mayora con respecto a limitar el ambiente de trabajo.

10.3.4. Postulado de Comparacin 4: Existen ms profesionales J2EE que de .NET Dentro de este postulado se puede mencionar que Java es la plataforma que cuenta con ms tiempo en el mercado y siendo probada, aceptada y adoptada por los usuarios es considerada una tecnologa madura, la cual cuenta con miles de proyectos en ejecucin. Microsoft .NET, la cual lleva menos aos en el mercado, hace que se marque esta

tendencia sobre la relevancia en la cantidad de profesionales especializado en Java que en .NET, lo que la hace superior en parte en el recurso humano capacitado.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 75 -

Este hecho es considerado y quiere ser solventado por las nuevas polticas de Microsoft, que quieren hacer un realce en la capacitacin a profesionales en el amplio mundo de la programacin de .NET. Con dicha capacitacin se quiere formar una lnea de profesionales, capaces de formar y poder capacitar a otros. Tambin se desea por parte de esta empresa, el aumento de comunidades que faciliten el compartimiento de conocimientos que an no supera a otras como lo es en el mbito de cooperacin Web, donde existen muchos portales de comunicacin y colaboracin en aplicaciones en J2EE, los que llevan tiempo funcionando.

Este postulado se puede considerar como cierto, en parte, desde una perspectiva de tiempo bastante subjetiva, ya que ste hecho no debera afectar a una superioridad de una

plataforma sobre otra (por haber llegado antes al mercado). Aunque este hecho fue cierto hace un par de aos atrs, el fuerte potencial que ha experimentado .NET con las nuevas funcionalidades y facilidades otorgadas dentro de sus herramientas de desarrollo, han hecho que el componente de tiempo en el mercado sea menos marcado.

10.3.5. Postulado de Comparacin 5: J2EE es ms difcil de aprender que .NET Al abordar temas como la dificultad, algo tan subjetivo, se debe considerar y describir algunos mitos que relacionan a Java o J2EE, como algo mucho mas difcil de aprender que la tecnologa .NET. Esto varia dependiendo del nivel en que la empresa o usuario se encuentre. El hecho de slo conocer HTML como estructura de desarrollo Web, hace que la tecnologa ASP de Visual Studio.NET sea mucho menos compleja dado que el proceso de programacin es similar. JSP de J2EE, vendra a caber dentro de esta misma caracterstica, con la salvedad de la programacin JAVA.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 76 -

Tomando una posicin imparcial, se puede afirmar que la supuesta complejidad de Java, tiene que ver con un mito producido por el alto grado de sofisticacin de J2EE y por el gran nmero de caractersticas con que cuenta la plataforma. Por este lado los defensores de J2EE y acrrimos detractores de .NET afirman que J2EE no realiza "funcionalidades oscuras, patrones intrincados o APIs poco entendibles, lo que hace referencia al manejo de procesos en Windows y al desarrollo de programar en formularios o Web Forms con arrastre de objetos.

Tomando este hecho de facilidad de desarrollo, llevado a un nivel de conocimiento se podra acentuar que para realizar una aplicacin Web en .NET no se necesitara ser un experto, en cambio en J2EE tendra que tener o mantener un conocimiento de programacin sobre la tecnologa, o sea, solo se podra hacer aplicaciones Web en J2EE, si se supiera programar en Java. Por el lado de .NET, los conocedores de esta tecnologa, concuerdan en que Microsoft realiz, luego de mucho tiempo, una herramienta certera en el desarrollo de todo tipo de aplicaciones, y que brinda lo necesario para un rpido aprendizaje y conocimiento de todas las funcionalidades insertas en los productos .NET. Para considerar a este postulado como cierto o como errado, se debe recomendar al menos, conocer la programacin en ambas plataformas, lo que es aconsejable, es informarse antes de emitir juicios sobre dificultad o facilidad y no caer en fanatismos para no dar conclusiones errneas.

Aunque no se puede decir que .NET es ms fcil que J2EE, si se puede comentar que .NET presenta un curva de aprendizaje ms favorable que J2EE, y que sus herramientas son de una rpida adaptabilidad hacia el usuario, ventajas que si son superiores al estndar creado por Sun.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 77 -

10.3.6. Postulado de Comparacin 6: J2EE requiere ms lneas de cdigos respecto de las herramientas de .NET
(Rodrigo Bustos: Especial Java Versus .Net)

Al analizar este postulado se debe considerar para qu tipo de funcionalidad .NET presenta menos lneas de cdigo que J2EE. Se debe considerar si es el resultado es el mismo con menos lneas de cdigo, si tiene la misma funcionalidad y simplicidad. Si esto se concretara para ambas plataformas y una presentara menos lneas de cdigo, podra considerarse como un avance.

Con estos aspectos a considerar se podra separa conceptos, pues Java como .NET tienen ciertas caractersticas ms desarrolladas que otras, por lo que presentan una mayor cantidad y uso de funciones para tareas determinadas, lo que presentara a los cdigos fuente con un mayor nmero de lneas para la plataforma destacada.

Se debe entender que al asociar menor cantidad de lneas de cdigo con mayor eficiencia, no tiene un real sustento para ser considerada de ese modo. Esta caracterstica no

necesariamente apunta a que algo tan sencillo ser ptimo, ni tampoco, que algo con mayor complejidad ser mejor, las cosas deben hacerse bien, independiente del nmero de lneas que estn rutinas contengan.

Lo que se debe perseguir es cmo hacer mejores aplicaciones, ms robustas, ms poderosas, ms escalables, ms integrables, ms mantenibles y no slo si ms fciles de escribir. Entonces, el punto realmente importante radica en determinar cul es la plataforma que me va a permitir explotar de mejor manera estos aspectos. Por lo que hacen a este postulado como algo sin una mayor relevancia, adems para los cdigos .VB se presenta un nmero mayor de lneas que las aplicaciones en J2EE.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 78 -

10.3.7. Postulado de Comparacin 7: .NET se aprende ms en la prctica que J2EE.


(Especial: Java Versus .NET Oscar Ascensio)

Los seguidores y partidarios de .NET aseguran que esta plataforma de desarrollo realiza una demanda de mucha menor inversin tecnolgica, de hardware y software que J2EE, que esta ofrece mucho mayor reutilizacin de componentes y requiere menores costos de desarrollo. Otras ventajas seran la facilidad de utilizacin de las herramientas, que las hacen mucho ms veloces y potentes para el desarrollo de produccin de software y soportar diversas capas tecnolgicas de ambientes de explotacin para aplicaciones Web.

.NET ofrece programas de desarrollo como Visual Studio.NET, que proponen una interfaz de usuario mucho mas amigable que el resto de IDEs de desarrollo para otras plataformas. sta presenta un ambiente de objetos y herramientas arrastrables dentro de Formularios Web que pueden programarse de distintas maneras: se puede migrar componentes con arrastre, al hacer clic dentro de alguno de estos componentes, se despliega el cdigo contenido por detrs, y se puede acceder a cdigos .vb o el cdigo de programacin que se este utilizando, adems para la creacin de sitios ASPx, se puede programar en ellos como si se estuviera realizando una pgina HTML y realizar cambios en este mismo lenguaje de programacin. Esto hara que entre ms se realizar un tipo de aplicacin con este mtodo, la creacin de sitios sea ms sencilla y fcil en la reutilizacin de cdigos ya desarrollados, mbito no manejado de la misma manera por J2EE. Considerando esto, este postulado es cierto.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 79 -

10.3.8. Postulado de Comparacin 8 (compuesto). en Java existe un maquina Virtual que facilita el trabajo en cambio en .NET no. En .NET se pueden realizar sistemas en ms de un lenguaje, en cambio en J2EE solo JAVA.
(Postulados expresados por sitios relacionados)

Ambos postulados se refieren al trabajo que se realiza en las capas inferiores de la programacin, el lenguaje y la forma que este se ejecuta. Por un lado J2EE, ofrece la maquina Virtual Java, siendo una capa lgica que hace creer al programa que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad slo ve una reconstruccin lgica de un ordenador, y aunque le quita la tarea al Computador en s, sta consume una cantidad de recursos importantes.

Por otro lado .NET, maneja el Common Language Runtime (CLR) del Framework .NET que es un cdigo a nivel de mquina que a diferencia de la mquina virtual de Java, sta se presenta en las capas superiores del software, teniendo un desempeo diferente sin la excesiva necesidad de recursos por parte el computador donde se estn desarrollando y ejecutando las aplicaciones.

Adems en la utilizacin de lenguajes de programacin, .NET lleva la ventaja, al manejar ms de diez leguajes compatibles dentro de la misma aplicacin, Visual Studio .NET, para comodidad de los desarrolladores los cuales pueden adaptar la herramienta en la forma que se quiera utilizar. Algunos de estos lenguajes son: C#, VB.NET, J#, C++, DELPHI, COBOL y otros, mientras que en J2EE Java vendra a ser el nico leguaje de J2EE. Esto podra tomarse como una versatilidad mayor de .NET hacia con J2EE.

Estos postulados favoreceran en parte a la plataforma ofrecida por Microsoft.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 80 -

10.4. Resumen de los Postulados.


Luego de leer y analizar cada uno de los principales postulados presentados, se puede dar un nfasis en las empresas que patrocinan ambas tecnologas, las cuales mantienen una pugna por determinar cual ambiente de desarrollo es superior al otro. Ambos bandos, Microsoft con su Sistema Operativo Windows y las herramientas de desarrollo basadas en .NET, y Java 2 Platform Enterprise Edition con su lenguaje Java con productos como WebSphere y los productos Linux de IBM, hacen referencia a una propuesta Microsoft v/s IBM ms que a .NET v/s J2EE.

Para poder derribar mitos y corroborar los aciertos que muestran estos postulados, las empresas como IBM, que apoyan firmemente la plaforma J2EE, tienen que explotar sus ventajas ms all de lo cotidiano seguir desarrollando el podero de manejar ms de un ambiente operativo y hacer que su software sea an ms fcil de usar, de modo que pueda crecer en el mercado de las pequeas y medianas empresas. Por su lado Microsoft debe saltar de sus herramientas de desarrollo y profundizar en servicios de sistema operativo, demostrando que posee la seguridad, escalabilidad y rendimiento necesario para soportar aplicaciones empresariales.

.NET ofrece a los clientes un manejo amigable en la construccin de aplicaciones Web con utilizacin de herramientas bsicas como el Internet Information Server incluido en los Sistemas Operativos Windows para el despliegue de este tipo de programas. Por otra parte J2EE, con la posibilidad de instalarlo en diversos sistemas operativos posee programas de desarrollo como Netbeans, IBM WebSphere, para cada una lo que proporciona la capacidad de poder ofrecer servicios y funcionalidades Web como JSP y Servlets, entre otras

herramientas para diferentes arquitecturas.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 81 -

11. Sistemas Web con Base de Datos en J2EE y .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 82 -

11.1. Introduccin.
Al acceder a una pgina Web al navegar por Internet, el principal servicio que ofrecen estos sitios, adems de la capacidad de informacin, es el poder acceder a datos alojados en algn computador habilitado como servidor. Estas tecnologas a travs de JDBC en J2EE, y ADO.NET en Microsoft.NET manejan la de conexin de sistemas Web con base de datos. Este tipo de sistema es el principal realizado por las pginas dinmicas JSP y ASPx las cuales crean tipos de conexiones confiables y utilizables por los usuarios deseosos de acceder a estos datos donde la seguridad y el rendimiento son las variables importantes a la hora de considerar con que lenguaje se desarrollarn dichas aplicaciones.

En este captulo se entra en la etapa de programacin de aplicaciones Web con acceso a base de datos, las cuales presentan las principales caractersticas a considerar para desarrollar un marco de trabajo basado en aspectos que consideren la conexin, despliegue, y todas las operaciones bsicas al manejar datos, describiendo un modelo de programacin basado en la arquitectura cliente servidor motor de base de datos, apareciendo as un modelo de aspectos como: el tipo de conexin y el motor de base de datos establecido.

Para este captulo solo se utiliz motores de libre licencia como lo son: Mysql, PostgresSQL y la inclusin de la herramienta de Microsoft Office, Microsoft Access, descartando motores de mayor potencial como Oracle o SQL Server, los cuales presentaran un detalle mayor lo cual desviara del tema principal, la comparacin entre J2EE y .NET y se entrara a comparar el funcionamiento de estas plataformas con los distintos motores de bases de datos.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 83 -

Para estas aplicaciones se consider el siguiente modelo:

11.2 Figura 11: Modelo de Aplicacin Web con Base de Datos.

11.3. Motores de Bases de Datos a utilizar.

11.3.1 Mysql MySQL es uno de los sistemas gestores de bases de datos ms populares desarrolladas bajo la filosofa de cdigo abierto, ste fue desarrollado y es mantenido por la empresa de software MySQL AB, la cual mantiene disponible el cdigo fuente para su revisin.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 84 -

Inicialmente, MySQL careca de los elementos considerados esenciales para poder manejar bases de datos relacionales, elementos como: integridad referencial y transacciones, a pesar de ello, desarrolladores de pginas Web preferan este motor para acceder a datos, por su simplicidad y buen funcionamiento para este tipo de aplicaciones. En la actualidad los elementos faltantes en MySQL han siendo incorporados por los desarrolladores, los cuales hacen que este motor de base de datos progrese a pasos agigantados frente a otros creados por corporaciones de Software de este tipo. Entre las caractersticas disponibles en las ltimas versiones se puede mencionar:

Amplio subconjunto del lenguaje SQL. Disponibilidad en gran cantidad de plataformas y sistemas. Diferentes opciones de almacenamiento segn, si se desea velocidad en las operaciones o un mayor nmero de operaciones disponibles.

Transacciones y claves forneas. Conectividad segura. Replicacin. Bsqueda e indexacin de campos de texto.

Adems de esto, MySQL se posiciona como el motor de base de datos ms utilizado por los usuarios con cifras de mas menos seis millones de copias funcionando en la actualidad, hecho que supera a cualquier otra herramienta de bases de datos y, desde la versin 5.0, se han integrado: Procedimientos Almacenados, Triggers y Vistas. Este motor de base de datos con licencia GPL obliga a distribuir cualquier producto derivado, a que permanezca bajo esta misma licencia, al necesitar incorporar MySQL en algn producto pero no desea distribuirlo bajo licencia GPL, se debe adquirir una licencia comercial que permite poder utilizar a MySQL de esta manera.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 85 -

11.2.2. PostgreSQL.
PostgreSQL es un servidor de base de datos relacional libre, liberado bajo la licencia BSD. Es una alternativa a otros sistemas de bases de datos de cdigo abierto como MySQL, Firebird y MaxDB, as como sistemas propietarios como Oracle o DB2. Algunas de sus principales caractersticas son:

Claves ajenas tambin denominadas Llaves ajenas o Llaves Forneas Disparadores (triggers) Vistas Integridad transaccional Acceso concurrente multiversin (no se bloquean las tablas, ni filas, cuando un proceso escribe)

Capacidad de albergar programas en el servidor en varios lenguajes. Herencia de tablas Tipos de datos y operaciones geomtricas

PostgreSQL se desarroll principalmente para resolver los problemas con el modelo de base de datos relacional y al manejo de objetos. Tambin este motor presenta una licencia BSD orientada a desarrolladores de cdigo abierto para continuar su desarrollo. Por el lado comercial, la empresa Pervasive comercializa el motor PervasiveSQL, basado en Postgres, que tambin distribuye la versin libre PostgresSQL, actualmente la versin PostgreSQL 8.0.x

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 86 -

11.2.3. Microsoft Access.

Aunque Microsoft Access no es reconocido como un motor de base de datos, por ser una aplicacin incluida en el paquete de utilitarios Microsoft Office, ste es ampliamente utilizado por pequeas y medianas empresas, las cuales, al no contar con recursos monetarios importantes, no invierten grandes cantidades de dinero en software de este tipo y lo consideran de manejo simple y que cumple sus necesidades con este tipo de programas. Este software es principalmente utilizado para el almacenamiento comn de datos de todo tipo, mayormente para manejo de inventarios, bodega, o para la utilizacin de datos que no requieran un uso continuo, sino ser, un medio de respaldo al cual se pueda acceder en tiempos variados para cotejar algn tipo de informacin o rescatar datos.

Microsoft Access proporciona las herramientas necesarias para el almacenamiento de los datos y las consultas SQL necesarias para el trabajo con stos. La integracin de este utilitario con aplicaciones del mbito Microsoft, lo hacen an ms valioso en las pequeas empresas que utilizan aplicaciones ASP con servidor Web IIS (Internet Information Server), ya que estas herramientas presentan una interconexin sumamente simple de realizar por cualquier usuario, sin que ste tenga que ser un programador en este tipo de software, lo que lo hace una herramienta valiosa sobre otros software administradores de bases de datos.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 87 -

11.3. Aplicaciones Web con Base de Datos en J2EE.

11.3.1. Introduccin.

En este punto de la investigacin, se recolecta informacin detallada en captulos anteriores, en los cuales se hizo referencia al tipo de conexin que maneja la plataforma J2EE con los distintos motores de bases de datos. En ellos se puede observar que el tipo conexin JDBC, conexin basada en un cierto tipo de archivo, por lo general de extensin .jar, los cuales proveen las funcionalidades necesarias para el correcto trabajo con este tipo de aplicaciones.

Para los siguientes sistemas desarrollados en Netbeans para la plataforma J2EE, se necesit descargar de la red los distintos conectores JDBC que permiten conectarse con los motores seleccionados y que seguirn siendo utilizados en una posterior etapa de pruebas.

Estos distintos tipo de conexiones (.JAR) no son incluidos en la mayora de los IDEs de desarrollo para J2EE, lo que hace que el funcionamiento y el tipo de conexin con el servidor no sea una procedimiento directamente manejado por el IDE sino que delega todo este tipo de trabajo al conector utilizado.

Dentro del mundo de los servidores de bases de datos, se encuentra una larga lista de distintos motores que proporcionan lo necesario para el manejo de informacin, en especial para este tipo de estudio y dentro de una evaluacin comparativa se opt por seleccionar motores de licencia libre como se coment con anterioridad, reflejando los sistemas que se apreciarn posteriormente.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 88 -

11.3.2. Conexin a Bases de Datos con JDBC.

Estos conectores .jar funcionan de forma parecida, al mantener la misma estructura. Con el Driver correspondiente en la rutina de conexin a la base de datos se incluye: La Clase del Driver a utilizar (.class). El nombre de la base de datos, incluyendo el servidor donde esta alojada y el puerto de conexin manejado como String. El respectivo UserName y su clave. Manejado como String. El objeto conexin que incluye los datos anteriores.

<% Class.forName("org.postgresql.Driver"); String database = "jdbc:postgresql://localhost:5432/BD2"; String username="root"; String password="robotech"; Connection con = DriverManager.getConnection(database,username,password); %>

11.3.2.1. Tabla 6: Ejemplo Conexin a Base de Datos Postgres.

11.3.2.2. Figura 12: Vista de programacin en Netbeans.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 89 -

11.3.3. Sistema de Base de Datos con MySQL y Netbeans. Para el desarrollo de un sistema desarrollado con el motor de base de datos MYSQL, se necesit de un conector JDBC para poder realizar dicha conexin, para esto se descarg de Internet el paquete de instalacin correspondiente, ste fue mysql-connector-java-3.1.7, el cual permiti conectar el IDE de desarrollo Netbeans con la base de datos. Esta conexin se agrega en proyecto Web de Netbeans haciendo clic derecho en ste y agregando la clase para que sea reconocida en los cdigos JSP que hagan referencia a sta.
<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver"); String database = "jdbc:mysql://localhost:3306/peliculas"; String username="root"; String password=""; Connection con =DriverManager.getConnection(database,username,password); %> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Contenido de la Base de Datos </font> <TABLE border="10" cellspacing="10" cellpadding="10" align="center"> <tr><td bgcolor="#78705A">Clave</td><td bgcolor="#78705A">Pelicula</td><td bgcolor="#78705A">Actor</td><td bgcolor="#78705A">Director</td> <td bgcolor="#78705A">Descripcion</td><td bgcolor="#78705A">Clasificacion</td></tr> <% If (con != null) { Statement stmt = con.createStatement(); ResultSet res = stmt.executeQuery("SELECT * FROM movies order by Nombre"); while(res.next()) { String clave = res.getString("Clave"); String pelicula = res.getString("Nombre"); String actor = res.getString("Actor"); String director = res.getString("Director"); String descripcion = res.getString("Descripcion"); String clasificacion = res.getString("Clasificacion"); out.println("<tr><td bgcolor=blue>"+ clave +"</td>" + "<td bgcolor=blue>" + pelicula + "</td>" + "<td bgcolor=blue>" + actor + "</td>"); out.println("<td bgcolor=blue>"+ director +"</td>" + "<td bgcolor=blue>" + descripcion + "</td>" + "<td bgcolor=blue>" + clasificacion + "</td></tr>"); } res.close();stmt.close(); con.close(); } %> </table> <br> <a href="http://localhost:8084/JSPmysql/" ><h1>Volver a Pagina Principal </a> </center> </BODY> </html>

11.3.3.1. Tabla 7: Cdigo cargar.jsp del proyecto JSPMysql. - 90 -

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

11.3.4. Sistema de Base de Datos con Microsoft Access y Netbeans. Para poder interconectar el software Microsoft Access con Netbeans se necesit de una utilidad que permitiera esto, al no existir un conector JDBC por no considerarse a Access como motor de base de datos. En esta situacin se necesito buscar una utilidad que simulara este funcionamiento y/o ofreciera este servicio, en esta bsqueda se encontr un conector que se despliega como un servicio ms el cual debe estar funcionando para poder realizar la conexin, este fue Atinav-JTA2N11R un conector externo tipo JDBC, proporcionado por la empresa Atinav aveConnect, los cuales realizan distintos tipos de conectores para J2EE y otros sistemas de desarrollo.

Con este software instalado se pudo realizar la conexin y realizar una aplicacin Web con acceso a Base de Datos en Microsoft Access.

<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% String clavex = request.getParameter( "clave" );%> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <h1>Eliminacion de Datos con JSP<BR><BR><BR> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" td=> <tr><td><h1>Datos Eliminados Exitosamente</td></tr> <% Class.forName("acs.jdbc.Driver"); String database = "jdbc:atinav:localhost:7227:d:\\mibase.mdb"; String username="Admin"; String password=""; Connection con = DriverManager.getConnection(database,username,password); String consulta ="delete from mitabla where clave="" + clavex + "" "; PreparedStatement ps = con.prepareStatement(consulta); ps.executeUpdate(); ps.close(); %> <Form method=post action=cargar.jsp> <tr><td align=center><input type=submit value="Cargar Datos"></td></td> </form> </table> <br> <a href="http://localhost:8084/baseweb" ><h1>Volver a Pagina Principal </a> </center> </BODY> </html>

11.3.4.1. Tabla 8: Cdigo eliminar.jsp del proyecto baseweb.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 91 -

11.3.5. Sistema de Base de Datos con PostgresSQL y Netbeans. Para el sistema desarrollado para el motor de base de datos Postgres, se realizaron las mismas acciones que para los sistemas anteriores, con la salvedad de utilizar un nuevo conector JDBC realizado para este motor. A pesar de mantener la sintaxis y mismas funcionalidades en cdigo, stos presentaron alguna dificultad al presentar errores de ingreso y conexin, generalmente por falta de informacin y conocimiento sobre el motor de base de datos PostGresSQL. Posteriormente al ser corregidas funcionaron a la perfeccin. A continuacin se muestra en detalle la pgina JSP de ingreso de datos.
<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% String clavex = request.getParameter( "clave" ); String peliculax = request.getParameter( "pelicula" ); String actorx= request.getParameter( "actor" ); String directorx= request.getParameter( "director" ); String descripcionx= request.getParameter( "descripcion" ); String clasificacionx= request.getParameter( "clasificacion" ); session.setAttribute( "laclave", clavex ); session.setAttribute( "elnombre", peliculax ); session.setAttribute( "elactor", actorx ); session.setAttribute( "eldirector", directorx ); session.setAttribute( "ladescri", descripcionx ); session.setAttribute( "laclasi", clasificacionx ); %> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Acceso a Datos con JSP </font><br><br><br> <h1> Datos Ingresados a la Base de Datos:<BR><BR><BR> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" > <Form method=post action=cargar.jsp> <tr><td><h1>Clave: </td> <td><%= session.getAttribute( "laclave" ) %></td></tr> <tr><td><h1>Pelicula: </td> <td><%= session.getAttribute( "elnombre" ) %></td></tr> <tr><td><h1>Actor: </td> <td><%= session.getAttribute( "elactor" ) %></td></tr> <tr><td><h1>Director: </td> <td><%= session.getAttribute( "eldirector" ) %></td></tr> <tr><td><h1>Descripcion: </td> <td><%= session.getAttribute( "ladescri" ) %></td></tr> <tr><td><h1>Clasificacion: </td> <td><%= session.getAttribute( "laclasi")%></td></tr> <% Class.forName("org.postgresql.Driver"); String database = "jdbc:postgresql://localhost:5432/BD2"; String username="root"; String password="robotech"; Connection con = DriverManager.getConnection(database,username,password); String query="insert into prueba values ("" + clavex + "","" + Pelculas +"",""+ actorx +"",""+ directorx + "","" + descripcionx + "",""+ clasificacionx + "")"; PreparedStatement ps = con.prepareStatement(query); ps.executeUpdate(); ps.close(); %> </table><input type=submit value="Cargar Datos"> </form> <br><br><br> <a href="http://localhost:8084/JSPpost" ><h1>Volver a Pagina Principal </a> </center> </BODY> </html>

11.3.5.1. Tabla 9: Cdigo insertar.jsp del proyecto JSPpost.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 92 -

11.3.6. Informacin adicional.

Todas las aplicaciones Web en Netbeans para J2EE al ejecutarse de modo local (localhost) utilizan el puerto 8084.

En Netbeans el tipo de conexin para todos los motores de bases de datos es similar y mantiene el mismo formato.

La conexin y el manejo con la base de datos, sin importar el motor son tareas propias del conector JDBC (.jar) y el IDE solo se encarga de entrelazar la aplicacin con dicho conector.

JSP no maneja algn objeto el cual pueda manejar contenidos de bases de datos completos, solo maneja variables de sesin dentro de las cuales se pueden almacenar esta informacin.

JSP dentro del manejo de base de datos no incluye nuevos objetos, la mayora de los componentes utilizados son solo comandos HTML, los cuales dentro de los eventos se genera cdigo java que permite realizar todas las operaciones necesarias.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 93 -

11.4. Aplicaciones Web con Base de Datos en .NET.

11.4.1. Introduccin.
Microsoft .NET con su producto de desarrollo Visual Studio.NET, facilita el trabajo con bases de datos con motores de la familia Microsoft, pero sin descuidar otros motores de uso mundial y comn, para los cuales realiza herramientas apartes, las cuales pueden integrarse al desarrollar en Visual Studio, el cual esta diseado para la inclusin de stas nuevas funcionalidades para la interconexin de nuevos motores como Postgres, MySql, Oracle etc., diferentes a motores Microsoft como SQL SERVER, MS ACCESS y otros.

Como se defini en el Captulo 6, .NET, maneja el modelo de datos ADO.NET el cual permite trabajar con conjuntos de datos desconectados, lo cual ayuda a reducir el trfico de red e interconectar distintos administradores de bases de datos.

Para acceder a los datos ADO .NET utiliza un objeto llamado DATASET, que encapsula lo que sera la base de datos a un nivel lgico: tablas, vistas, relaciones, integridad entre todos ellos, etc., pero siempre con independencia del tipo de fabricante que la dise.

En el presente captulo se pone en prctica este modelo de acceso a datos reflejando en los distintos sistemas Web de base de datos tipo ASPx la interconexin realizada para esta herramienta.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 94 -

11.4.1.1. Figura 13: Vista de programacin en Visual Studio.NET.

11.4.2. Sistema de Base de Datos con MySQL y Visual Studio.


Para este sistema, al igual que para las aplicaciones Web desarrolladas en Netbeans en J2EE, se necesit de componentes extras, los cuales permitiesen a la aplicacin, el poder realizar las tareas de insercin, despliegue, eliminacin, etc., para el motor de base de datos Mysql.

En la bsqueda de componentes a utilizar, se encontr y utiliz el conector mysqlconnector-net-1.0.4, una utilidad MSI (.msi) que al ejecutarse es integrada a las herramientas proporcionadas por Visual Studio.NET. Esta aplicacin es desarrollada por CoreLab empresa que realiza este tipo de utilidades.

Al instalar esta aplicacin, Visual Studio .NET, proporciona una utilidad de objetos y funciones agregadas en el Toolbox del editor, en la parte izquierda del IDE de desarrollo, lo cual facilita el uso de dichas herramientas y permite un uso transparente de conexin. Algunas partes del cdigo se ilustran a continuacin:
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 95 -

<%@ Page CodeBehind="index.aspx.vb" Language="vb" AutoEventWireup="false" Inherits="Web.index" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>Manejo Base de Datos Microsoft Access en .NET</title> <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR"> <meta content="Visual Basic 7.0" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content=http://schemas.microsoft.com/intellisense/ie5 name="vs_targetSchema"> </HEAD> <body background="D:\\backblue.gif" MS_POSITIONING="GridLayout" bgColor="#99ffff"> <center> <form id="Form1" method="post" runat="server"> <asp:button id="Button1" OnClick="ir1" runat="server" Text="Cargar"></asp:button> <asp:button id="Button6" onclick="ir6" runat="server" Text="Modificar"></asp:button> <asp:button id="Button5" onclick="ir5" runat="server" Text="Buscar "></asp:button> <asp:button id="Button2" OnClick="ir2" runat="server" Text="Insertar"></asp:button> <asp:button id="Button3" onClick="ir3" runat="server" Text="Eliminar"></asp:button> <asp:button id="Button4" OnClick="ir4" runat="server" Text="Script""></asp:button> <BR><asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="http://localhost/Proyecto/1.aspx"> Volver a menu Principal</asp:HyperLink> <asp:Image id="Image2" runat="server" ImageUrl="file:///net.gif"></asp:Image> <asp:Image id="Image1" runat="server" Width="157px" Height="130px" ImageUrl="mysql2.JPG"></asp:Image> </form></center> </body> </HTML>

11.4.2.1. Tabla 10: Parte cdigo inicio.aspx de proyecto ASPxMysql.


Public Class index Inherits System.Web.UI.Page Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents HyperLink1 As System.Web.UI.WebControls.HyperLink Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents Button2 As System.Web.UI.WebControls.Button Protected WithEvents Button3 As System.Web.UI.WebControls.Button Protected WithEvents Button4 As System.Web.UI.WebControls.Button Protected WithEvents Image1 As System.Web.UI.WebControls.Image Protected WithEvents Button5 As System.Web.UI.WebControls.Button Protected WithEvents Button6 As System.Web.UI.WebControls.Button Protected WithEvents Image2 As System.Web.UI.WebControls.Image Protected WithEvents Form1 As System.Web.UI.HtmlControls.HtmlForm #Region " Web Form Designer Generated Code " <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End Sub End Class

11.4.2.2. Tabla 11: Parte cdigo inicio.vb de Proyecto AspxMysql.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 96 -

11.4.3. Sistema de Base de Datos con Microsoft Access y Visual Studio.


Para el sistema desarrollado para Microsoft Access, herramienta desarrollada por la misma empresa que el entorno de desarrollo, posibilita al usuario la realizacin de cdigos de conexiones a bases de datos alojadas en este software que las opciones, funcionalidad y conexin se realizan dentro de la misma pgina Aspx en el proyecto. Esto hace que no se necesite otro tipo de archivo adicional, o cdigos .vb extras, solo las instrucciones necesarias para dicha conexin.

A diferencia con otros sistemas .NET, con manejo de base de datos MySql o Postgres que necesitan algn tipo de utilidad anexada a Visual Studio .NET tiene dentro de s funcionalidades propias para aplicaciones Microsoft. En el ejemplo presentado para esta parte del captulo, se presenta el cdigo que carga los datos recolectados de la base de datos en el Dataset, para posteriormente ser desplegados por pantalla.

Esta no necesita de algn componente extra, facilita al usuario a realizar aplicaciones de este tipo. Dentro de Visual Studio, en el objeto de conexin directa a la base de datos, OLEDBCONNECTION, se especifica el proveedor de servicio OleDB para que pueda entender a que tipo de aplicacin u archivo se refiere. Esto referenciado a la base de datos Microsoft Access (.mdb), almacenada de formal local o remota, queda instantneamente conectada y ofrece los objetos necesarios para realizar cualquier tipo de operacin con sta, en otras palabras queda lista para poder ser utilizada.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 97 -

<script runat="SERVER"> DIM coneccion AS OLEDBCONNECTION DIM canal AS OLEDBDATAADAPTER DIM tabla AS DATASET SUB Page_Load(Sender As Object, E As EventArgs) coneccion = NEW OLEDBCONNECTION ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\mibase.mdb") canal = NEW OLEDBDATAADAPTER("select * from mitabla", coneccion) tabla = NEW DATASET() canal.FILL(tabla, "mitabla") TABLAGRID.DATASOURCE = tabla TABLAGRID.DATAMEMBER = "mitabla" TABLAGRID.DATABIND() DIM cren, nvaclave AS INTEGER cren = tabla.Tables("mitabla").Rows.Count nvaclave = tabla.Tables("mitabla").Rows(cren-1)(0) + 1 CLAVE.Text=nvaclave END SUB SUB INSERTAR(Sender As Object, E As EventArgs) DIM q AS STRING DIM orden as OLEDBCommand DIM coneccion2 AS OLEDBCONNECTION coneccion2 = NEW OLEDBCONNECTION ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\mibase.mdb") q = "insert into mitabla(clave,nombre,edad) values(@clave, @nombre,@edad)" orden = NEW OLEDBCOMMAND(q, coneccion2) orden.Parameters.Add(new OleDbParameter("@CLAVE", OleDbType.Integer)) orden.Parameters("@CLAVE").Value = CLAVE.Text orden.Parameters.Add(new OleDbParameter("@NOMBRE", OleDbType.VarWChar, 20)) orden.Parameters("@NOMBRE").Value = NOMBRE.Text orden.Parameters.Add(new OleDbParameter("@EDAD", OleDbType.Integer)) orden.Parameters("@EDAD").Value = EDAD.Text orden.Connection.Open() orden.ExecuteNonQuery() orden.Connection.Close() canal=new OleDbDataAdapter("select * from mitabla", coneccion) tabla= new DataSet() canal.Fill(tabla, "mitabla") TABLAGRID.DataSource=tabla.Tables("mitabla").DefaultView TABLAGRID.DataBind() DIM cren, nvaclave AS INTEGER cren = tabla.Tables("mitabla").Rows.Count nvaclave =tabla.Tables("mitabla").Rows(cren-1)(0)+ 1 CLAVE.Text=nvaclave NOMBRE.Text="" EDAD.Text="" coneccion.Close() END SUB </script>

11.4.3.1. Tabla 12: Parte cdigo insertar.aspx del Proyecto AspxAccess.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 98 -

11.4.4. Sistema de Base de Datos con PostgresSQL y Visual Studio.


Para poder desarrollar este sistema, con un motor ajeno a la empresa Microsoft, se tuvo que realizar lo mismos pasos que se llevaron a cabos con el motor MySQL. Lo que hace que para cada aplicacin desarrollada por empresas u organizaciones ajenas a sta, se deba buscar en la Internet cualquier tipo de utilidades necesarias para realizar la conexin entre el IDE de desarrollo, en este caso Visual Studio.NET, seleccionado. y el motor de base de datos

Para sto, se deben encontrar utilidades compatibles con dicho programa para que se puedan incluir en su paquete de utilidades y herramientas que trae por defecto al ejecutar la instalacin. As, para poder conectar PostGres con el programa se necesit instalar el paquete pgsqlnet.msi, el cual es una utilidad nuevamente desarrollado por la empresa Core Lab, que en su versin PostGreSQLDirect.NET 2.11 posee lo necesario para realizar dichas operaciones.

De mismo modo que para Mysql, este instalador crea una funcionalidad extra al Toolbox ofrecido por Visual Studio.NET, en el cual contiene los objetos necesarios para realizar todo tipo de operaciones hacia las bases de datos de tipo Postgres.

A continuacin se presenta extractos de cdigos generados en el proyecto PostgresAspx, el cual contiene los cdigos de apariencia (.ASPx), como las funciones necesarias (.vb) de la aplicacin.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 99 -

Public Class guardar Inherits System.Web.UI.Page # Declaracin de Variables. #Region " Web Form Designer Generated Code " <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.DataSet = New System.Data.DataSet() Me.PgSqlConnection = New CoreLab.PostgreSql.PgSqlConnection() Me.PgSqlDataAdapter = New CoreLab.PostgreSql.PgSqlDataAdapter() Me.PgSqlCommand = New CoreLab.PostgreSql.PgSqlCommand() Me.PgSqlCommandBuilder = New CoreLab.PostgreSql.PgSqlCommandBuilder() CType(Me.DataSet, System.ComponentModel.ISupportInitialize).BeginInit() Me.DataSet.DataSetName = "NewDataSet" Me.DataSet.Locale = New System.Globalization.CultureInfo("ru-RU") Me.PgSqlConnection.ConnectionString = "UserId=root;Database=BD2; Host=localhost; Password=robotech;" Me.PgSqlConnection.Name = "PgSqlConnection" Me.PgSqlDataAdapter.SelectCommand = Me.PgSqlCommand Me.PgSqlCommand.CommandText = "SELECT * FROM prueba" Me.PgSqlCommand.Connection = Me.PgSqlConnection Me.PgSqlCommand.Name = "PgSqlCommand" Me.PgSqlCommandBuilder.DataAdapter = Me.PgSqlDataAdapter Me.PgSqlCommandBuilder.UpdatingFields = "" CType(Me.DataSet, System.ComponentModel.ISupportInitialize).EndInit() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub btExecute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btExecute.Click Dim snombre, sclave, sactor, sdirector, sdescrip, sclasifi As String sclave = clave.Text snombre = pelicula.Text sactor = actor.Text sdirector = director.Text sdescrip = descripcion.Text sclasifi = clasifi.Text Try PgSqlConnection.UserId = tbUser.Text PgSqlConnection.Password = tbPassword.Text PgSqlConnection.Host = tbHost.Text PgSqlConnection.Port = CInt(tbPort.Text) PgSqlConnection.Database = tbDatabase.Text PgSqlCommand.CommandText = " insert into prueba values('" & sclave & "','" & snombre & "','" & sactor & "','" & sdirector & "','" & sdescrip & "','" & sclasifi & "')" BindGrid() mensaje.Text = "Datos" mensaje.Visible = True Catch exception As Exception mensaje.Text = "Datos Ingresados Correctamente" End Try End Sub Private Sub BindGrid() DataSet.Clear() PgSqlDataAdapter.Fill(DataSet, "Table") dataGrid.DataSource = DataSet.Tables.Item("Table").DefaultView dataGrid.DataBind() End Sub Private Sub cargar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cargar.Click Try PgSqlConnection.UserId = tbUser.Text PgSqlConnection.Password = tbPassword.Text PgSqlConnection.Host = tbHost.Text PgSqlConnection.Port = CInt(tbPort.Text) PgSqlConnection.Database = tbDatabase.Text PgSqlCommand.CommandText = "select * from prueba" BindGrid() mensaje.Visible = True Catch exception As Exception mensaje.Text = "Datos de Base de Datos" End Try End Sub End Class

11.4.4.1. Tabla 13: Parte cdigo insertar.vb del Proyecto AspxPost.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 100 -

11.4.5. Informacin Adicional


Los componentes utilizados para la interconexin entre MySQL y Postgres, se agregan al toolbox de Visual Studio como los nombres MySQLDirect y PostgreSQLDirect respectivamente.

El puerto de conexin utilizado por Visual Studio es el 8081, configurable al momento de la instalacin, el cual no se especifica en la barra de direccin, al ser incluido automticamente por el Internet Information Server.

Las utilidades de conexin utilizadas en esta parte del estudio pueden ser descargados desde http://www.crlab.com/download.html en donde se encuentran los paquetes de instalacin necesarios para conectar a Visual Studio y herramientas .NET con los distintos motores de base de datos, no solo los incluidos en este estudio.

En Visual Studio.NET, los cdigos que generan acciones pueden ser separados de los que generan las apariencias, para esto dentro del proyecto se crean: las apariencias, archivos (.ASPx), los cdigos de accin (.vb) y Archivos de respuesta (.resx)

Los archivos de respuesta (.resx), son cdigos interpretados XML los cuales contienen los objetos SQL insertos en el cdigo generado (.ASPx), este contiene 2 objetos: data y resheader.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 101 -

12. Desarrollo de Pruebas de Comparacin entre las Plataformas J2EE y .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 102 -

12.1. Introduccin
Para comenzar a sacar conclusiones serias sobre ambas plataformas de desarrollo, habiendo estudiado los conocimientos necesarios para la creacin de aplicaciones Web que, junto a las reas de evaluacin y criterios definidos, se pueden empezar a disear pruebas que puedan certificar las aseveraciones mencionadas con anterioridad por los fabricantes y empresas que apoyan a estas tecnologas y tambin poder realizar comentarios propios sobre estas plataformas de desarrollo los cuales se presentarn posteriormente.

En el presente captulo se mencionarn que criterios son los ms aptos para una etapa de pruebas y si stos, pueden corroborar dentro de algn tipo de aplicacin Web o cdigo, alguna ventaja que ofrezcan las tecnologas en cuestin y que lleven a una comparacin prctica entre las pginas dinmicas propuestas por J2EE y .NET.

Con este diseo y posterior desarrollo, se evaluar y se definir las conclusiones que podrn ser consideradas como fuente de eleccin para una toma de decisiones acertada y con fundamentos que permitan a los interesados, conocer los por que de dicha eleccin y poder ejemplificar de mejor manera a sus propios usuarios o mismos desarrolladores sobre que tecnologa es mejor de utilizar para cada tarea. Para seleccionar que criterios podran llevarse acabo en esta etapa, se consider que aspectos de la programacin podran reflejarse en aplicaciones Web. Conceptos como rendimiento, atractivo de la pgina, rapidez, etc., son nociones bsicas que pueden llevarse acabo realizando pequeas pruebas o sistemas que determinen alguna superioridad entre las plataformas de desarrollo.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 103 -

12.2. Diseo de Pruebas Comparativas.


En esta parte del captulo se quiere constatar en palabras como sern llevadas a cabo cada una de las pruebas comparativas a desarrollar, para luego realizarlas de forma prctica y posteriormente concluir a partir de los resultados obtenidos. En cada una de estas pruebas se quiere dejar en claro alguna superioridad por parte de una de las plataformas, o si se encuentran en igualdad de condiciones. Para esto se definieron pruebas por separado para cada rea de evaluacin, estas son:

12.2.1. Diseo de Pruebas de Aprendizaje. Para esta rea de evaluacin se reflejar la simplicidad o complejidad de acceder a los conocimientos necesarios para acceder a una de las tecnologas en cuestin, se defini: Prueba nmero 1: La prueba se define como la simple bsqueda de informacin disponible sobre los conceptos J2EE y .NET en el buscador Web ms utilizado, Google. En una primera instancia el concepto sin importar el origen de la pgina y, posteriormente delimitando a pginas solo en espaol.

Prueba nmero 2: Realizar una bsqueda sobre: Libros, Software y temas afines, en Amazon.com (pgina nmero 1 de ventas a travs de Internet), sobre las plataformas de desarrollo .NET y J2EE.

Prueba nmero 3: Detallar la curva de Aprendizaje por medio de las entrevistas realizadas, informacin recolectada y experiencias propias con ambas tecnologas.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 104 -

12.2.2. Diseo de Pruebas de Rendimiento. Para medir el rendimiento en todas las reas de las aplicaciones Web para las dos plataformas y que stas quedaran detalladas con informacin real se defini lo siguiente: Para rendimiento independiente:

Prueba nmero 4: Realizar una aplicacin Web sencilla en la cual solo se de un mensaje de Bienvenida para desde ah sealar aspectos a considerar dentro de la comparacin. (Rendimiento, Capacidad de respuesta, Estabilidad, etc.)

Prueba nmero 5: Realizar la ejecucin de un mensaje desplegado 100.000 veces y medir el tiempo utilizado para realizar esta accin

Prueba nmero 6: Demostrar de forma grfica el uso de tiempos y recursos de CPU al utilizar los distintos IDEs de Desarrollo, tanto Netbeans para J2EE, como para Visual Studio en .NET

Prueba nmero 7: Acceder remotamente por ms de un usuario al mismo sitio en el mismo tiempo y considerar la escalabilidad ofrecida por la pgina dinmica comparando los tiempos arrojados

Para Rendimiento Base de Datos se defini: Prueba nmero 8: Realizar 2 Sistemas de Base de Datos va Web los cuales permitan hacer todas las acciones relacionadas con el manejo de datos, para considerar tiempos de respuesta y despliegue de los datos desde el servidor hacia el cliente

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 105 -

Prueba nmero 9: Realizar el mismo sistema de base de datos en un motor de base de datos diferente para medir el comportamiento de la plataforma con otras aplicaciones de este tipo

12.2.3. Diseo de Pruebas para Explotacin y Uso.

Prueba nmero 10: Detallar una grfica de explotacin o tabla de porcentajes a travs de la informacin recolectada sobre ambas plataformas.

Prueba nmero 11. Detallar la cantidad de sitios realizados bajo una de estas 2 tecnologas durante la navegacin de distintos sitios durante un periodo de prueba y

destacar los sitios de empresas importantes realizados bajo estas tecnologas

12.2.4. Diseo de Pruebas para Desarrollo.

Prueba nmero 12: Determinar cantidad de lneas de cdigo para una misma aplicacin, determinando la facilidad de desarrollo en ambas plataformas

Prueba nmero 13: Determinar el nmero de funciones, tareas y procesos proporcionados por ambos IDEs de desarrollo, detallando semejanzas en cuanto a su

funcionamiento.

12.2.5. Diseo de Pruebas de Uso de Licencias.

Prueba nmero 14:

Analizar las licencias entregadas con cada IDE de desarrollo, tanto para Netbeans, como para Visual Studio.NET, considerando y detallando los costos de stos productos
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 106 -

12.2.6. Diseo de Pruebas de Compatibilidad.

Prueba nmero 15: Llevar alguna aplicacin, en el caso que corresponda, a algn sistema operativo Linux, y demostrar que esta aplicacin puede ejecutarse en ambientes diferentes. operativos

Prueba nmero 16: Llevar a cabo una observacin detallada del funcionamiento de las aplicaciones JSP y ASPx en distintos navegadores Web o Browser.

12.3. Creacin Tablas de Evaluacin y Resultados.


Dentro de esta parte del captulo se definirn una serie de pasos, los cuales servirn para evaluar a las plataformas de forma comparativa, lo cual permitir reflejar en datos estadsticos y de forma clara los resultados obtenidos por cada plataforma en las respectivas pruebas y reas de evaluacin.

Con la creacin de tablas se quiere ilustrar y dejar de forma ms explicita lo asertiva y minuciosa de la comparacin entre las 2 plataformas de desarrollo. Las distintas clasificaciones de stas sern un reflejo del trabajo tanto de investigacin de las

tecnologas como del proceso de desarrollo de cada una de las aplicaciones creadas en ellas lo que darn respuestas y resultados obtenidos de stas. Con esto se podr comparar cada uno de los tipos de cumplimiento observados y poder ser clasificados. Este tipo de Tabla ser ocupada en la seccin de ejecucin y resultados de prueba. As tambin para el caso en que una plataforma destaque frente a la otra se creo una tabla de certificacin donde queda esto de manifiesto, las cuales sern utilizadas en las conclusiones a las pruebas.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 107 -

Para esto se crearon las siguientes tablas, de resultados posibles y de certificacin, las cuales reflejan el nivel de cumplimiento ofrecido por las plataformas, y la supremaca de alguna sobre la otra, estas son:

Resultado

Descripcin La plataforma cumple todas las

Forma Grfica

Cumple a Totalidad

expectativas presentadas en el rea de Evaluacin ventajas adicionales. y posee

Cumple Satisfactoriamente

La

plataforma del

cumple rea

las de

expectativas evaluacin. La

plataforma

cumple

las

Cumple

expectativas del rea de evaluacin sin destacar ventajar adicionales.

Cumple Insatisfactoriamente

La

plataforma

cumple

las

expectativas presentadas con cierta dificultad en el rea de evaluacin. La plataforma no presenta a rea las de

respuestas No Cumple expectativas evaluacin, desventaja.

positivas en el

poseyendo

cierta

12.3.1. Tabla 14: Tabla de Evaluacin de Criterios.

Plataforma Igualdad de Condiciones

Logo Plataforma Sobresaliente

J2EE

.NET

12.3.2. Tabla 15: Tabla de Resultados.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 108 -

12.4. Ejecucin y Resultados de Pruebas Comparativas.


En esta seccin se dar a conocer el detalle de la puesta en marcha de las pruebas diseadas con anterioridad y los resultados obtenidos en stas, tanto pruebas de programacin, como de simple observacin y ejecucin. Estas pruebas estn realizadas correctamente sin afanes personales de favorecer a alguna de las plataformas en evaluacin, pues, uno de los objetivos principales de este estudio es el de no caer en favoritismos, o afirmar mitos generados por estas plataformas, sino ser un medio vlido a considerar al querer evaluar ambas plataformas para su utilizacin. Estas pruebas se realizaron en un tiempo prolongado, desde Diciembre de 2004 a Diciembre de 2005, para algunas de ellas, tiempo suficiente para poder llevar a cabo algunas de las conclusiones tomadas a finales del proyecto.

12.4.1. Ejecucin y Resultados Pruebas de Aprendizaje.

Ejecucin y Resultados Prueba 1. - Para poder limitar de alguna manera el concepto J2EE, se realiz una bsqueda avanzada en el buscador Web Google, la nueva bsqueda de plataforma J2EE arroj 1.400.000 sitios en 0,3 segundos, un nmero elevado que cuesta creer que trate de slo pginas relacionados con esta tecnologa, el buscador arroja dicha cantidad, restringiendo posibles conceptos errados a la bsqueda. Limitando el idioma J2EE arroj 450.000 pginas en espaol aproximadamente en 0,33 segundos. - Para el concepto plataforma .NET este buscador encontr 1.190.000 de sitios

relacionados en 0,23 segundos aproximadamente. Al limitar el idioma .NET arroj 930.000 pginas en espaol aproximadamente en 0,72 segundos.
(Ms que mostrar una ventaja de una plataforma sobre informacin disponible, esta prueba quiere demostrar que el acceso a informacin es ms que posible a travs de la red, lo que hace que ste no sea un aspecto para determinar en que tecnologa especializarse.)

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 109 -

Ejecucin y Resultados Prueba 2. Se realiz una bsqueda sobre manuales J2EE y .NET en www.amazon.com limitando similitudes del idioma u otros aspectos que no reflejasen de manera correcta la documentacin presentada. Esto arroj:

En la bsqueda de manuales y documentos J2EE se logr en sus distintas categoras: Book (223), Software (12), Tools and Hardware (131), Software (8), de la misma manera para la plataforma .NET se logr para la misma bsquedas: Book (181), Software (41), Computers (22).

En la seccin de Top Sellers, para los primeros 50 puestos, se busc material relacionado con las plataformas en comparacin, las mejores posiciones fueron:

En: Computers e Internet.


18 Profesional Asp.NET 2.0. 23 Heat First Java 2.0 Edition. 25 Profesional Asp.NET in C#. 27 Pro C# 2005 y .NET 2.0 Plataform. 2 Third Guide. 30 Sun Certified Programmer Developer for JAVA 2 Third Guide.

En: Programming.
8 Profesional Asp.NET 2.0. 10 Heat First Java 2.0 Edition. 12 Profesional Asp.NET in C#. 17 Sun Certified Programmer Developer for JAVA 20 .NET. 35 Head First Servlet in JSP. 37 Profesional JAVA Developer With Framework. Spring

En: Software Programming

1 Microsoft Visual Basic.NET Standar 2003. .NET 3 Microsoft C++ .NET Standar 2003. .NET 20 Microsoft Visual Studio .NET 2003 Professional Special Edition. 23 Visual Basic.NET Training - Training A Partners. .NET
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 110 -

Ejecucin y Resultados Prueba 3. - Para la prueba de curva de aprendizaje se consult a alumnos y profesionales que desarrollaran aplicaciones o que estuviesen familiarizados con alguna de las plataformas. Tambin accediendo a sitios de capacitacin o de informacin sobre ambas plataformas, as se pudo modelar un grfico como se muestra a continuacin:

12.4.1.1. Figura 14: Curva de Aprendizaje.


(Para la grfica se defini 4 etapas bsicas en el desarrollo de aplicaciones Web. Un nivel bajo de Inicio Hola Mundo. La etapa de Diseo en la cual ya se comienza a incluir otro tipo de objetos en la aplicacin. La etapa Base de Datos, en la cual se agregan utilidades para el manejo de informacin con los distintos motores. Y Aplicacin Empresarial, la que se refiere a realizar productos concisos y robustos realizados bajo estas tecnologas, como los son programas y portales de ejecucin Web.)(Definicin por estudio .NET v/s J2EE por Lus Sancho)

Prueba Sitios Relacionados. Sitios en Espaol. Calidad de la Informacin. Bsqueda y consumo de Material Relacionado. Curva de Aprendizaje.

J2EE

.NET

12.4.1.2. Tabla 16: Tabla de Evaluacin 1: Pruebas de aprendizaje.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 111 -

12.4.1.3. Informacin adicional a la tabla: Dentro de sta rea de evaluacin no se presentan grandes ventajas de una plataforma frente a la otra, o sea, ambas se encuentran en un mismo nivel de aprendizaje de nivel inicial, con la salvedad que .NET ofrece una curva de aprendizaje mayor en menos tiempo que J2EE y que el consumo de material relacionado con .NET en mayor al ofrecido para J2EE.

12.4.2. Ejecucin y Resultados Pruebas de Rendimiento

(Considerar Apndice E).

Resultados Prueba 4: - En cuanto a Capacidad de respuesta se observ: Tiempo de respuesta de una simple aplicacin JSP que desplegar un mensaje de bienvenida, esta fue: De manera local: instantneo. De manera remota: instantneo. Lo mismo realizado para una aplicacin ASPx reflej: De manera local: instantneo. De manera remota: instantneo
(Estos datos son promedios de pruebas reflejadas contra reloj interno de cada uno de los IDEs, lo cual indica una tendencia para cada pgina)

Resultados Prueba 5:

- Al ejecutar saludo.jsp dentro de un ciclo de 100.000 repeticiones. El tiempo de respuesta fue de: 6 m 01 sg.

- Al ejecutar saludo.jsp dentro de un ciclo de 100.000 repeticiones. El tiempo de respuesta fue de: 6m 37 sg.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 112 -

Resultados Prueba 6:

12.4.2.1. Figura 15: Grafica rendimiento normal.

12.4.2.2. Figura 16: Grfica de Ejecucin Netbeans.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 113 -

La grfica marca su mximo al cargar la aplicacin. Posteriormente presenta un promedio que varia de 47 a 52% en el desarrollo de aplicaciones. Ver Figura 16).

12.4.2.3. Figura 17: Grfica de Ejecucin de Visual Studio.NET. La grfica marca su mximo al cargar la aplicacin. Posteriormente presenta un promedio que varia de 43 a 49% en el desarrollo de aplicaciones. (Ver figura 17).
(Para poder medir de forma grfica el uso de recursos por parte de cada IDE de desarrollo se recurri a la herramienta PROCExp, la cual permite el despliegue de todos los procesos y aplicaciones de forma detallada para poder medir el consumo de CPU.Estas pruebas se realizaron en un computador de caractersticas, procesador Pentium 4 3,33 Mhz, y memoria RAM de 512MB.)

Resultados Prueba 7: - En cuanto a Estabilidad: Las respuestas para Saludo.jsp al acceder 3 usuarios a la misma pgina en segundos fue de: retardo 2 segundos aprox.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 114 -

Las respuestas para Saludo.aspx al acceder 3 usuarios simultneamente en segundos fue de: retardo de 2 segundos aprox.

Para rendimiento de Base de Datos se obtuvo:

Resultados Prueba 8 y 9: Estas pruebas se obtuvieron sobre una base de datos de 6 campos con 1000 registros, para ambos motores de Base de Datos, se considero el siguiente modelo para medir los tiempos de respuesta:

Al realizar un Sistema de Base de Datos con los motores MySQL con J2EE se obtuvo: Tiempo de respuesta al cargar datos de una base de datos: 1,9 segundos promedio, de manera local. 2,1 segundos promedio, de manera remota. Tiempo de respuesta al ingresar datos a una base de datos: 1,2 segundos promedio, de manera local. 3,5 segundos promedio, de manera remota Tiempo de respuesta al eliminar datos de una base de datos: 0,8 segundos promedio, de manera local. 3,8 segundos promedio, de manera remota Tiempo de respuesta al modificar datos de una base de datos: 0,7 segundos promedio, de manera local. 3,2 segundos promedio, de manera remota. Tiempo de respuesta al buscar datos de una base de datos: 0,7 segundos promedio, de manera local. 3,7 segundos promedio, de manera remota. Tamao del Proyecto: 956 KB. Cantidad de Archivos generados en el Proyecto: 43 archivos. Tiempo de acceso con ms de un usuario: ms menos 3 segundos.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 115 -

Al realizar un Sistema de Base de Datos con los motores MySQL con .NET se obtuvo: Tiempo de respuesta al cargar datos de una base de datos: 2,7 segundos promedio, de manera local. 3,4 segundos promedio, de manera remota. Tiempo de respuesta al ingresar datos a una base de datos: 1,8 segundos promedio, de manera local. 2,2 segundos promedio, de manera remota. Tiempo de respuesta al eliminar datos de una base de datos: 1,1 segundos promedio, de manera local. 4,3 segundos promedio, de manera remota. Tiempo de respuesta al modificar datos de una base de datos: 0,8 segundos promedio, de manera local. 4,1 segundos promedio, de manera remota. Tiempo de respuesta al buscar datos de una base de datos: 1,1 segundos promedio, de manera local. 3,2 segundos promedio, de manera remota. Tamao del Proyecto: 119 KB. Cantidad de Archivos generados en el Proyecto: 31 archivos. Tiempo de acceso con ms de un usuario: ms menos 4 segundos.

Al realizar un Sistema de Base de Datos con los motores PostgreSQL con J2EE se obtuvo: Tiempo de respuesta al cargar datos de una base de datos: 1,6 segundos promedio, de manera local. 2,1 segundos promedio, de manera remota. Tiempo de respuesta al ingresar datos a una base de datos: 2,1 segundos promedio, de manera local. 2,8 segundos promedio, de manera remota. Tiempo de respuesta al eliminar datos de una base de datos: 0,7 segundos promedio, de manera local. 3,3 segundos promedio, de manera remota.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 116 -

Tiempo de respuesta al modificar datos de una base de datos: 0,7 segundos promedio, de manera local. 4,1 segundos promedio, de manera remota. Tiempo de respuesta al buscar datos de una base de datos: 0,9 segundos promedio, de manera local. 3,2 segundos promedio, de manera remota.

Tamao del Proyecto: 520 KB. Cantidad de Archivos generados en el Proyecto: 34 archivos. Tiempo de acceso con ms de un usuario: ms menos 3 segundos.

Al realizar un Sistema de Base de Datos con los motores PostgreSQL con .NET se obtuvo: Tiempo de respuesta al cargar datos de una base de datos: 2,0 segundos promedio, de manera local. 2,8 segundos promedio, de manera remota. Tiempo de respuesta al ingresar datos de una base de datos: 1,1 segundos promedio, de manera local. 1,8 segundos promedio, de manera remota. Tiempo de respuesta al eliminar datos de una base de datos: 0,7 segundos promedio, de manera local. 1,4 segundos promedio, de manera remota. Tiempo de respuesta al modificar datos de una base de datos: 1,9 segundos promedio, de manera local. 2,6 segundos promedio, de manera remota. Tiempo de respuesta al buscar datos de una base de datos: 0,8 segundos promedio, de manera local. 1,6 segundos promedio, de manera remota. Tamao del Proyecto: 159 KB. Cantidad de Archivos generados en el Proyecto: 39 archivos. Tiempo de acceso con ms de un usuario: ms menos 4 segundos.
(Para cada una de las pruebas se realizo un promedio de ejecuciones, la cual di los resultados obtenidos.)

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 117 -

12.4.2.4. Automatizacin de Prueba. Adems de considerar los sistemas de base de datos anteriores junto a sus respectivos tiempos de respuesta para cada operacin, se realiz un programa para poder automatizar y darle una mayor certificacin a los tiempos arrojados luego de las pruebas anteriores, para sto, se defini realizarlo en una de las plataformas, para aprovechar alguna de las ventajas ofrecidas por stas, contemplando la conexin a una base de datos MySql alojada en algn servidor, adems una variable cantidad para determinar el nmero de veces que se ejecutaran dichas operaciones incluyendo tiempos de duracin de las sentencias SQL para as considerar la capacidad de respuesta mostrada por la plataforma de desarrollo.

Este sistema se aprecia en las imgenes siguientes, en primera instancia el sistema sin ejecutar, en segunda instancia luego de la ejecucin y posteriormente la tabla de resultados:

12.4.2.4.1. Figura 18: Automatizacin Rendimiento primera instancia.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 118 -

12.4.2.4.2. Figura 19: Automatizacin Rendimiento segunda instancia.

12.4.2.4.3. Figura 20: Automatizacin Rendimiento, resultados (ejecucin de 120 veces).

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 119 -

Prueba Mensaje Bienvenida Despliegues repetitivos Base de Datos Mysql de manera local. Base de Datos Mysql de manera remota. Base de Datos Postgresql de manera local. Base de Datos Postgresql de manera remota. Cantidad de archivos Tamao del Proyecto Uso CPU

J2EE

.NET

12.4.2.5. Tabla 17: Tabla de Evaluacin 2: Pruebas de Rendimiento.

12.4.3. Ejecucin y Resultados Pruebas de Explotacin y Uso

Resultados Prueba 10.

Grfica de Explotacin JSP y ASP (aspx). Para esta prueba en particular se considero un documento realizado por Ricardo BaezaYates y Don Carlos Castillo del Centro de Investigacin de la Web dentro del Departamento de Ciencias de la Computacin de la Universidad de Chile, en el cual se realiz un Estudio de la Web chilena. Realizado en Diciembre del ao 2004 esta investigacin analizo mas de 50.000 sitios con dominio en Chile arrojando un crecimiento

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 120 -

del 25% solo en ese ao, para esto se utilizo crawler WIRE un programa para poder descargar sitios completos as tambin arroj otro tipo de informacin como edad, profundidad, tamao, largo del url, etc., para cada pgina. De informacin relacionada con el tema se puede nombrar por ejemplo:

Del total de 50.000 sitios, de alrededor de 3.254.137, el 61,7% pertenecan a pginas estticas y el 38,3% pginas dinmicas.

Alrededor del 14% de los sitios de chile son hechos con tecnologa Flash y/o JavaScript, lo que impide que algn buscador pueda acceder al sitio.

En el plano de pginas Web arrojo: Del 38% de pginas dinmicas: o 77.65% de sitios realizados en PHP, primer lugar. o 15,83% de sitios realizados en ASP, segundo lugar. o 3,57% de sitios realizados en JSP u Jhtml, segundo lugar. o 2,95% de sitios realizados en otras tecnologas.

Otro elemento a considerar es el uso de un servidor Web, esto arrojo: Apache 57,33% Microsoft IIS 28.63% Otro 14.05%

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 121 -

12.4.3.1. Imagen 21: Grfica Explotacin Estudio Universidad de Chile 2004.

12.4.3.2. Automatizacin de Prueba. Para poder contrastar tales resultados, dentro de esta prueba de evaluacin se desarrollo una aplicacin en la cual se analizara el tipo de pgina dinmica utilizada. Adems incluira un mdulo en el cual se pudieran analizar la mayora de los dominios .CL, para as hacer estimaciones que corroboraran los estudios realizados por la Universidad de Chile en el ao

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 122 -

2004. Dicho programa se implement en la Plataforma J2EE con su IDE de desarrollo Netbeans, el cual por resultado arroja la URL del sitio, su cantidad de referencias a pginas dinmicas y su tipo.

12.4.3.2.1. Figura 22: Automatizacin Explotacin.

Resultados Prueba 11.

Cantidad de Pginas JSP observadas en un periodo de tiempo de 3 meses: 37 sitios con contenido JSP

Cantidad de Pginas ASP o ASPx observadas en un periodo de tiempo de 3 meses: 63 sitios con contenido ASP o ASPx

Lista de Empresas importantes con sitios desarrollados en JSP: - Internacionales: www.nokia.es, www.antena3.es, www.eagames.com. - Nacionales:

Lista de Empresas importantes con sitios desarrollados en ASP o ASPx: - Internacionales: www.toshiba.com, www.dell.com. -Nacionales: www.gobiernodechile.cl, www.lun.com.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 123 -

Prueba Explotacin Actual Importancia de Sitios Internacionales Importancia de Sitios Nacionales Proyeccin a futuro

J2EE

.NET

12.4.3.3. Tabla 18: Tabla de Evaluacin 3: Explotacin y Uso.

12.4.4. Ejecucin y Resultados Pruebas de Desarrollo.

Resultados prueba 12: Para limitar de alguna manera la comparacin del nmero de lneas, se dejo 2 tipos de aplicaciones Web, por una parte ver simplicidad con pginas de saludo en ambas plataformas, y complejidad al desplegar datos desde una base de datos. Estas fueron:

Para las lneas de cdigo se tiene: Saludo.jsp:8 lneas. 3 Tag JSP. Saludo.aspx:16 lneas.7 Tag ASPx. Cargar.jsp:45 lneas .Mayor Cantidad TAG JSP. Cargar.aspx: 33 lneas. Menor Cantidad TAG ASPx.

Resultados Prueba 13:

Para Netbeans se tiene: - 11 Mens Generales (texto) - 150 Submens a partir del men principal. - Ofrece impresin HTML del Cdigo. - Manejo de errores nivel medio. - 26 objetos (ejecucin). - Toolbox grfico para aplicaciones de escritorio, no para Web. - JSP trabaja en ambientes XML perfectamente.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 124 -

Para Visual Studio.NET se tiene:

- 10 Mens Generales. Texto) - 138 Submens a partir del men principal.

- 50 objetos. (Ejecucin) - 6 Toolbox de herramientas.

- Toolbox grfico para aplicaciones de escritorio - Facilidad de uso de objetos. y Web. - Manejo de errores nivel medio.

Aunque no se defini una prueba puntual para los requerimientos mnimos de cada plataforma para la instalacin de sus respectivos IDEs y la ejecucin de los cdigos generados, a continuacin se presentan 2 tablas de requerimientos mnimos considerados en esta etapa de desarrollo.

Hardware.
Procesador Memoria Ram Espacio en Disco Duro

Funcionalidad Mnima.
Pentium III 500 MHz 256 MB 350 MB

Funcionalidad Recomendada.
Cualquiera Superior 512 MB 350 MB

12.4.4.1. Tabla 19: Tabla Explicativa 2: Requerimientos J2EE.

Hardware.
Procesador Memoria Ram Espacio en Disco Duro

Funcionalidad Mnima.
Pentium II 450 MHz 128 MB 3GB

Funcionalidad Recomendada.
Pentium III 733 MHz 256 MB 3GB

12.4.4.2. Tabla 20: Tabla Explicativa 3: Requerimientos de .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 125 -

Prueba Lneas de cdigo Simple. Lneas de Cdigo Complejo. Interfaz de Usuario Ambiente XML Accesibilidad Cdigo Fuente Manejo de Errores Facilidad de Diseo Herramientas Extras Funcionalidad Mens Requerimientos Mnimos

J2EE

.NET

12.4.4.3. Tabla 21: Tabla de Evaluacin 4: Pruebas de Desarrollo.

12.4.5. Ejecucin y Resultados Pruebas de Uso de Licencias.

Resultados Prueba 14. Luego de la lectura de ambas licencias sobre los IDEs de desarrollo Netbeans y Visual Studio, adems de su tipo de licencias y sus costos, se agregaron los costos de otros programas e IDEs relacionados. Para esto se obtuvo:

Para costos de J2EE, se tiene:

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 126 -

Netbeans: IDE de desarrollo licencia libre, costo 0 uso educacional. Para poder desarrollar aplicaciones comerciales, se debe acceder a otro tipo de licencia. JBuilder: IDE de desarrollo licencia comercial, costo Borland JBuiler 7: licencia

educacional $ 313.200 aprox (promedio). Licencia Profesional $2.213.200 aprox. WebSphere Application Developer: IDE de Desarrollo Global, licencia comercial, versiones Trial de prueba. Costo de producto $ 4.462.200 sin impuestos. Costos del producto $5.138.600 con impuestos aproximadamente.

Para costos de .NET se tiene:

Visual Studio.NET: IDE de licencia comercial, costo Versin 2002 $915.000 aprox. Visual Studio.NET Arquitect Edition, costo $1.962.985 aprox. Visual Studio.NET Enterprise Architect 2003 $ 2.130.600 Visual Studio .NET Enterprise Developer 2003 $ 1.532.400 Visual Studio .NET Professional 2003 $ 676.800

Prueba Claridad de la Licencia Productos Licencia Libre Costos Productos Comerciales Nuevas Polticas de Costos Tendencia de los precios

J2EE

.NET

12.4.5.1. Tabla 22: Tabla de Evaluacin 5: Pruebas de Uso de Licencias.

12.4.6. Ejecucin y Resultados Pruebas de Compatibilidad.

Resultados Prueba 17. Para la migracin del sistema JSPMysql a ambiente Linux se tiene:

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 127 -

La migracin del sistema de conexin a base de datos Mysql desarrollado en un ambiente Windows para ser llevado a algn tipo de ambiente Linux present: Ms que llevar la aplicacin Web a un sistema operativo Linux, se acord llevar esta aplicacin a un Servidor Web con ambiente Linux, en este caso los servidores de la universidad con sistema operativo OpenBSD.

La migracin consisti en copiar el proyecto generado en ambiente Windows en el IDE de desarrollo Netbeans y ver que resultados se obtenan en primera instancia, estos fueron: No visualizacin de imgenes de la aplicacin. No generar las operaciones ofrecidas por la aplicacin. Problemas con conector JDBC.

Para esto se tuvo que realizar un proceso de investigacin para poder corregir dichos errores. En el proceso de depuracin, para el caso puntual de las fotos solo se tuvo que redireccionarlas a un directorio que pudiera acceder el Servidor Web con esto corregido se pudo acceder sin problemas. Para poder correr el conector JDBC MySql este tuvo que copiarse dentro de la carpeta lib dentro del espacio del servidor, desde ah el Servidor Web Apache- Tomcat puede acceder al conector para ejecutar las tareas asignadas.

Para .NET: Por el momento se es imposible migrar aplicaciones .NET a ambientes Linux. Cabe mencionar el proyecto Mono, una iniciativa de desarrollo abierto, que esta trabajando en desarrollar una versin basada en Linux de cdigo abierto de la plataforma de desarrollo de Microsoft .NET. Su objetivo es permitir a los desarrolladores de Linux

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 128 -

construir e implementar aplicaciones .NET multiplataforma. Este proyecto implementar varias tecnologas desarrolladas por Microsoft que han sido enviadas al ECMA para su estandarizacin".

Resultados Prueba 18.

En la ejecucin de pginas JSP, en los distintos Browser o Navegadores de Internet se observo lo siguiente: Para Internet Explorer: no se presentan mayores notoriedades. Para Mozilla:- se observa problemas con imgenes. - Algunas diferencias en cuanto a formatos utilizados, - Leve cambio en tonalidades. - TAG <jsp> sin mismo formato.

En la ejecucin de pginas ASPx, en los distintos Browser o Navegadores de Internet se observo lo siguiente: Para Internet Explorer: no se presentan mayores notoriedades. Para Mozilla: formato botones distintos. Problemas de alineacin. No ejecucin de acciones (no reconocera aspx).

Prueba Migracin del Sistema Compatibilidad con Browser Formato nico (botones, alineacin, etc.). Ejecucin de Cdigos Despliegue de Imgenes

J2EE

.NET

12.4.6.1. Tabla 23: Tabla de Evaluacin 6: Pruebas de Compatibilidad.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 129 -

13. Conclusiones de Pruebas Realizadas.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 130 -

13.1. Introduccin.

En este captulo se presentan las conclusiones obtenidas durante la etapa de pruebas desarrolladas para esta evaluacin terico prctica que junto con la investigacin realizada y el estudio personal de ambas tecnologas, se puede dejar ciertos aspectos ms claros que en un principio del trabajo. En este punto del proyecto, se pueden notar las verdaderas ventajas y desventajas de estas plataformas de desarrollo las cuales se han ido explicando conforme el trabajo ha ido avanzando.

Al ya haber finalizado esta etapa de evaluar a J2EE y .NET en aplicaciones Web en las distintas reas definidas, teniendo los resultados claros y explicados, se puede empezar a nombrar superioridades e inferioridades, ventajas y desventajas de ambas tecnologas, tanto considerndolas individualmente, como tambin desde una postura comparativa.

Dentro de estas conclusiones se har hincapi en las claras ventajas aportadas por cada tecnologa y que aspectos se deberan considerar antes de emitir juicios sobre cada una de stas. Dentro de esta misma parte de la evaluacin de las plataformas se definen los logros obtenidos a la problemtica que se plante desde un principio para fundamentar este trabajo. As se podr separar y mencionar correctamente cuales son las superioridades presentadas por cada tecnologa con fundamento y sin caer en fanatismos o preferencias. De este modo, al realizar una comparacin y querer manifestar los atributos de cierta tecnologa, que para opinar, al menos se debe conocerla para poder dar fundamentos vlidos a considerar, sin este conocimiento, cualquier comentario realizado no pasar de ser solo una opinin y no podra ser considerado como un medio vlido de referencia. - 131 -

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

13.2. Conclusiones de Pruebas de Aprendizaje.


Luego de concluir las pruebas relacionadas con el rea de Aprendizaje y especialmente en el rea de inicializacin a las plataformas, por medio de la bsqueda de sitios en Internet relacionados tanto en el rea de J2EE y .NET, podemos concluir que estos criterios no influyen bastante en una primera etapa de conocimiento de las plataformas. Teniendo Internet como recurso, difcilmente un tema no habr sido evaluado o considerado por alguien que manifieste algn tipo de inters y haya documentado informacin que permita a otros usuarios poder interiorizarse en los temas propuestos.

Otro tema es que estas plataformas, al ser mundialmente conocidas y utilizadas, la disponibilidad de informacin es en grandes cantidades, que con sitios de diferente orientacin, realizando una buena bsqueda, se puede encontrar lo necesario para suplir las necesidades en cuestin.

Al querer acceder a informacin en idioma espaol, esto no vara mucho con la semejante en ingls. Aunque como suele suceder en la mayora de los casos, la mejor informacin se encuentra en este idioma, existe la intensin de mantener estos conocimientos en otros lo que en si es una ventaja a considerar.

En cuanto a la curva de aprendizaje, por un lado J2EE, presenta una curva de aprendizaje menos alentadora, lo que hace que realizar una aplicacin Web simple y rpida sera inapropiado bajo este estndar. Por su parte .NET ofrece una curva de aprendizaje mucho ms agradable, lo que hace que el usuario pueda desarrollar aplicaciones de diferentes tipos

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 132 -

en cortos periodos de tiempo. Dentro del consumo de informacin referida sobe estos temas, como lo son libros, revistas, software, suscripciones en foros y todo lo relacionado con ambas plataformas de desarrollo demuestran el mayor inters sobre la tecnologa planteada por Microsoft que por el estndar J2EE. Por una parte los software .NET ofrecidos, en la mayora de las listas consultadas, las ponen en primer lugar. La documentacin de manuales y guas de referencia hace ver un mayor nivel de

perfeccionamiento en esta plataforma lo que en s da una orientacin al usuario en general que an no sabe que especializacin ser mejor para ste, J2EE o .NET.

Para finalizar esta rea se puede destacar que el hecho de que una plataforma supere en un millar de sitios a la otra no necesariamente indica que esta plataforma lleve alguna ventaja, esto podra considerarse posteriormente en el rea de evaluacin Explotacin y Uso.

Evaluacin Informacin Disponible Informacin Disponible en Espaol Curva de Aprendizaje Consumo de Material Relacionado Acceso a Software Relacionado

Explicacin
En igualdad de Condiciones, no se observa alguna ventaja por parte de una de las plataformas. En igualdad de Condiciones, no se observa alguna ventaja por parte de una de las plataformas. .NET sobresale tmidamente por el hecho de presentar aplicaciones funcionales en menor tiempo que el presentado por J2EE. .NET supera con creces a J2EE en cuanto al material buscado, descargado y pagado por l. Los Software en los primeros lugares de ventas en la Web y tiendas investigadas dan a .NET como una de las ms accedidas por los usuarios.

Plataforma Sobresaliente

13.2.1. Tabla 24: Tabla de Resultados Aprendizaje J2EE v/s .NET

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 133 -

13.3. Conclusiones de Pruebas de Rendimiento.


Luego de desarrollar las pruebas de rendimiento, al cotejar los datos obtenidos, se puede concluir que para cada plataforma esta rea de evaluacin es un factor importante y valioso a la hora de compararlas. Cada una se ha preocupado de desarrollar tecnologas que permitan llevar esto de mejor manera, considerando los avances de la competencia para no quedarse atrs.

Para el despliegue de aplicaciones ninguna plataforma mostr una ventaja sobresaliente sobre la otra. La estabilidad para pginas Aspx de .NET y JSP para J2EE no presentaron grandes retardos al incrementarse el nmero de usuarios que acceden a este tipo de pginas con contenidos simples, con la salvedad de leves superioridades de JSP por la simpleza de los cdigos generados.

Para poder presentar tiempos semejantes cabe destacar el funcionamiento de los servidores Web correspondientes a cada tecnologa, Apache-Tomcat para J2EE e IIS para .NET, los cuales presentan lo necesario para el correcto funcionamiento de este tipo de aplicaciones. Estos Servidores Web proporcionan mtodos de estabilidad que permiten distribuir la carga de los sitios en funcin del hardware utilizado, lo que hace un mejor funcionamiento en cuanto a tiempos de respuesta.

Para el manejo de operaciones de bases de datos, tanto la tecnologa JDBC como ADO.NET, presentan funciones que permiten acceder correctamente a los datos en tiempos considerados normales. Al llevar estos funcionamientos de manera local a remota, a pesar

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 134 -

que los tiempos de respuesta aumentan, stos no presentan mayores ventajas una sobre la otra. Con salvedades como que Mysql funcion de forma ms expedita con J2EE que con .NET y, de la misma forma, Postgres present mejores tiempos con .NET esta rea no deja claro algn tipo de conclusin radical.

Otras conclusiones:
Estudio realizado por el sitio objectwatch.com, afirma que la plataforma .NET puede escalar desde 16.000 transacciones por minuto a ms de 500.000, mientras que IBM WebSphere, usando tecnologa J2EE/UNIX, puede pasar de 17 mil a 110.000 transacciones por minuto, con un coste monetario mucho mayor por transaccin, ayudara a decir que con .NET se obtendra mayor posibilidad de escalado a un mejor precio.

Para el Rendimiento se consider este esquema presentado con anterioridad:

En este esquema se muestra los tiempos a considerar en una aplicacin de este tipo. De este modo los tiempos de la conexin a la base de datos no dependera solo del IDE de desarrollo ni del motor de base de datos seleccionado, tambin influiran en aspectos como: el tipo de conexin, el tipo de conector utilizado, el ancho de banda, etc.
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 135 -

Luego de ser analizado esto se puede concluir que al referirse a las variables tipos de conector y ancho de banda, se puede argumentar que stos son intrascendentes en algn tipo de aporte en los tiempos establecidos. Primero los tipos de conexin estn insertos dentro de los cdigos generados por cada aplicacin, lo que hace que el tiempo que se compilan los programas, la conexin tanto JDBC como ADO.NET quedan insertas, lo que no aportara algn porcentaje de tiempo de respuesta. Lo mismo vendra a ser para el ancho de banda, pues es muy difcil corroborar que siempre este presente los canales de comunicacin abiertos para la generacin de respuestas exactas al ancho establecido.

Evaluacin

Explicacin
Para ambas plataformas se observan los mismos retardos al

Plataforma Sobresaliente

Retardo de Aplicaciones

acceder una mayor cantidad de usuarios. En repeticin de mensajes presentan mismos tiempos de ejecucin. Para el manejo de base de datos ambas plataformas presentan buenas funcionalidades. Tiempos de respuesta

Manejo de Base de Datos local

mejores por J2EE y simpleza de cdigo, aunque ms complicado. .NET ms simple el desarrollo de estas aplicaciones pero de manera local se presenta de mejor forma J2EE. Mysql se comporta mejor con J2EE y Postgres con .NET Para los sistemas anteriores ejecutados de forma remota estos presentan semejantes funcionamientos que de manera

Manejo de Base de Datos remota

local, con salvedades que al cargar datos por 1era vez .NET mostr pequeas demoras con respecto a J2EE. Luego de ejecutados ambos sistemas .NET presento un mejor funcionamiento. Para obtener resultados ptimos, J2EE necesita ocupar mas

Uso de Recursos

recursos tanto CPU, memoria Ram como espacio fsico. Para esto mismo .NET ofrece resultados ptimos con menos utilizacin de recursos.

13.3.1. Tabla 25: Tabla de Resultados 2: Rendimiento J2EE v/s .NET

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 136 -

13.4. Conclusiones Pruebas de Explotacin y Uso.


Luego de concluir las pruebas sobre esta rea de evaluacin se puede decir que en cuanto a la explotacin y uso de estas dos tecnologas, si se observan algunas diferencias marcadas. Por un lado, luego de estar presente por muchos aos en el mercado, el tipo de aplicacin Web de J2EE, JSP, se ha ido degradando en su uso, obteniendo menos resultados con respecto a su similar ASP o ASPx.

Algunas de las razones de esto, es el nivel que debe presentar tanto el desarrollador Web, como el hardware necesario para la creacin de estos sitios, razones que para muchos influyen en cambiar de aplicacin o implementar soluciones ms baratas. Por otra parte el estndar J2EE ha ido evolucionando vertiginosamente en el mercado de aplicaciones Web, con la aparicin de los Web Services, ofreciendo a un nivel ms elevado de usuarios y organizaciones sus macro-productos de desarrollo, como la lnea WebSphere en la cual se pueden crear portales de aplicacin y mltiples servicios en los cuales las pginas JSP vendran a ser solo una pequea parte del grupo de funciones y aplicaciones incluidas en este tipo de software de desarrollo, eso si a costos tanto econmicos como de equipamiento bastante elevados, lo que hace que el usuario comn este lejos de poder adquirirlos. Por otro lado .NET y sus pginas dinmicas ASPx, se pueden apreciar continuamente al navegar por Internet y notar el tipo de pantalla que esta desplegando el navegador, en stas se pueden apreciar que el uso de estas extensiones es comn y ms presente que para las pginas dinmicas J2EE. Dentro de los estudios analizados como el de la Universidad de Chile el ao 2004, junto a las pruebas desarrolladas, en especial la automatizacin de la prueba de Explotacin y Uso

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 137 -

desarrollada para esta rea. Se pueden sacar ciertas caractersticas sobre estos criterios, pues, por ejemplo, el hecho de que los Servidores Web manejen dominios y no las direccin IP de los sitios hace que no se pueda acceder directamente al sitio por la direccin IP de sta, sino solamente con su dominio o URL, lo que hace que se necesite conocer el dominio para poder saber en que tecnologa esta desarrollado.

Otro hecho a considerar es que muchos estudios realizados sobre la explotabilidad de pginas dinmicas no suele ser objetivo, por ejemplo el hecho de que un sitio Web este desarrollado bajo tecnologa J2EE en pginas JSP con link a 30 pginas del mismo tipo, y otro sitio corresponda a ser realizado bajo ASPx de Microsoft y estos hagan referencia a 50 links de pginas desarrolladas de la misma manera, no debera contabilizarse el hecho de que existan 50 pginas ASPx y 30 JSP, pues lo que realmente interesa es saber cuantos sitios utilizan estas tecnologas, y no la cantidad de pginas sobre stas, al corregir esto se podr saber exactamente cuantos sitios manejan un tipo de tecnologa en particular. Adems de estas conclusiones se menciona el hecho de la nula interaccin de los sitios accedidos para con contenidos ASP con JSP, o sea, el existir una pgina tipo JSP que enve datos a una ASP, pues ambas no cuentan con el mismo Servidor Web que las pueda desplegar, sto en ambientes Windows con Servidores Web realizados por esta empresa hace difcil que sea cierto, no ocurre lo mismo con otros software de este tipo comerciales realizados por otras empresas que si ofrecen esta capacidad. En ambiente Linux esto se podra simular accediendo a la instalacin de todos los paquetes de Catalina-ApacheTomcat para la ejecucin de pginas dinmicas JSP y ASP, incluso con el soporte a pginas PHP.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 138 -

Evaluacin

Explicacin
Ambas plataformas presentaron un nivel de explotacin semejante al momento de salir al mercado. Actualmente

Plataforma Sobresaliente

Curva de Explotacin

sobresale la utilizacin de pginas ASP y su semejantes Web Forms ASPx, dejando a JSP de J2EE ms atrs en el presente. El nivel de Explotacin es aparentemente superior en la

Explotacin

actualidad por la tecnologa .NET. Dejando a J2EE en un mercado global de aplicaciones robustas de servicios Web. Aunque las pginas JSP presentan un nmero menor de

Distribucin

apariciones en la Web. Se observa la utilizacin de ambas tecnologas por sitios de importancia y relevancia en el medio.

Cantidad Servidores Web

Para esta caracterstica no se presenta algn tipo de variable que haga que alguna plataforma destaque sobre la otra. A travs de los distintos Servidores Web, Tomcat

Capacidad Servidores Web

instalado en un sistema operativo Linux, da a J2EE una ventaja clara por sobre .NET al poder ejecutar correctamente un mayor tipo de pginas dinmicas (ASP, JSP y PHP).

13.4.1. Tabla 26: Tabla de Resultados Explotacin y Uso J2EE v/s .NET

13.5. Conclusiones Pruebas de Desarrollo.


Para realizar conclusiones dentro del rea de evaluacin Desarrollo, se debe notar el hecho que algunas consecuencias se generan a partir de los resultados obtenidos en las pruebas definidas en esta rea, y a la experiencia propia desarrollando aplicaciones Web bajo ambas tecnologas. El considerar las lneas de cdigo como un factor influyente se debe a que en el ambiente de programacin, este es un punto analizado y considerado (revisar bibliografa). Los resultados obtenidos reflejan que la utilizacin de TAG tanto JSP como

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 139 -

ASP, hacen ver que a mayor utilizacin de funciones en ambas tecnologas, los cdigos HTML son mnimos, y que ste solo debe darle la interpretacin al Browser para que pueda desplegar la informacin, de lo dems se encargar el Servidor Web. Para las aplicaciones de saludo y cargar datos de una base de datos, las lneas de cdigo arrojadas no devuelven datos concluyentes para hacer de este cotejo o una caracterstica que marque superioridad. Ambas plataformas presentan un nivel aceptado y semejante a la hora de comparar aplicaciones smiles en ambos IDEs de desarrollo.

Con respecto a los IDEs analizados puntualmente se puede concluir que Netbeans a pesar de ser un entorno de desarrollo excelente para aplicaciones JAVA, dista mucho de su semejante Visual Studio.NET, para el desarrollo de aplicaciones Web. Otras herramientas J2EE ms parecidas a Visual Studio.NET, distan en precios y objetividad. A pesar de esto, ambos IDEs presentan las funcionalidades necesarias para el desarrollo de aplicaciones Web, aunque para .NET se presenta de una mejor manera, lo que hace que la creacin y desarrollo de stas puedan ser realizadas por un usuario comn y no necesariamente un programador o desarrollador Web. Directamente en el desarrollo de aplicaciones, el manejo de errores es llevado con mayor objetividad por J2EE, que por .NET, las respuestas a estos errores se presentan de manera ms clara y concisa lo que posibilita una mejor y ms rpida correccin de los cdigos. La accesibilidad del cdigo fuente para ambas tipos de pginas dinmicas Web, se diferencia por el hecho de al acceder a pginas ASP, estas presentan un mayor nivel de informacin indeseada que JSP. Otro hecho a considerar como conclusin son las ventajas extras que estos IDEs de desarrollo ofrecen, como el hecho particular de presentar los cdigos en otros formatos como Netbeans, el cual presenta los cdigos JSP como pginas HTML, lo que brinda un buen elemento extra de desarrollo
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 140 -

Para terminar se puede decir que ambas plataformas presentan funcionalidades extras superiores a la otra en el rea de evaluacin de Desarrollo, por un lado J2EE destaca por su simplicidad de cdigos y herramientas extras, .NET sobresale por la facilidad de diseo y desarrollo de aplicaciones Web. Evaluacin Explicacin
Ambas tecnologas arrojan un nmero semejante y considerado para el distinto tipo de aplicacin Web

Plataforma Sobresaliente

Lneas de Cdigo

presentada. Ambos tipos de TAG se consideran a un nivel mayor por parte de .NET en cuanto a diseo. Y mayor nmero de lneas de cdigo ms que TAG por parte de JSP. Aunque Visual Studio.NET facilita de mayormente el

Herramientas Extras

diseo y desarrollo de aplicaciones WEB. J2EE presenta un nmero de herramientas extras que facilitan el trabajo del programador. En el anlisis de los IDEs seleccionados, .NET presenta

Facilidad de desarrollo

uno de mejor diseo para la facilidad de aplicaciones Web que J2EE, facilitando el desarrollo, mejorando tiempos de creacin y ejecucin. Al acceder a los cdigos J2EE da menos informacin a personas ajenas a ste. Se puede considerar a J2EE con su IDE de desarrollo

Claridad en los cdigos

Manejo de Errores

Netbeans como un mejor manejo de error, al indicar claramente cual vendra a ser ste. Visual Studio .NET ofrece lo mejor de ambos mundos de

Atractivo del IDE de Desarrollo

programas de desarrollo, principalmente un atrayente atractivo visual, y por detrs un poderoso lenguaje de codificacin. Para el desarrollo de aplicaciones Web con manejo de

Necesidad de Componentes

base de datos, ambas plataformas necesitaron de componentes extras, tanto J2EE con JDBC como .NET con las utilidades de conexin.

13.5.1. Tabla 27: Tabla de Resultados 4: Desarrollo J2EE v/s .NET

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 141 -

13.6. Conclusiones Pruebas de Uso de Licencias.


Al comenzar a definir las conclusiones obtenidas bajo esta rea de evaluacin, se debe hacer notoriedad en los dos hechos ms fundamentales abarcados bajo estos criterios de evaluacin. Primero separar el uso de productos libres de licencias, incluyendo los permisos otorgados sobre los cdigos y claridad de estas licencias. Posteriormente el hecho de los costos de acceso a herramientas profesionales bajo estos dos estndares de desarrollo.

Al referirse a las licencias otorgadas tanto sobre las tecnologas J2EE y .NET y sus respectivos IDEs de desarrollo utilizados en este estudio, se puede mencionar que para la mayora de los productos de licencia libre para J2EE tienen clusulas sobre que pasa con programas desarrollados bajo sus herramientas, que al ser estos comerciales, e incluir a Netbeans, por ejemplo, como herramienta de desarrollo, debe accederse a un tipo especial de licencia, hecho parecido a lo que ocurre con el motor de base de datos MySql. Lo que hace que al querer lucrar con herramientas de licencia libre, stas pongan sus restricciones para evitar el uso indebido de la tecnologa. Por parte de .NET el adquirir una licencia pagada sobre sus productos, no impide que con stas herramientas pueda generarse nuevas aplicaciones con nuevas licencias, un hecho a favor para la tecnologa .NET.

El otro punto fundamental dentro de esta rea de evaluacin es, la consideracin de los costos monetarios adquiridos al acceder a herramientas profesionales de desarrollo. Para J2EE, a pesar de presentar IDEs libres de costo con Netbeans mencionado anteriormente, al querer acceder a herramientas visuales, semejantes a entornos de desarrollo ofrecidos por Microsoft u otras empresas que realizan software de este tipo, los precios se disparan,

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 142 -

elevndose a cifras que difcilmente un usuario normal o mediana o pequea empresa pueda acceder, lo que hace que la orientacin este claramente hacia empresas y corporaciones importantes las cuales estn dispuestas a otorgar todas las funcionalidades necesarias para que el usuario potencial pueda acceder sin problemas a todo lo soportado por dichos productos. Sin embargo .NET, pese a ser un producto pagado en todas sus lneas, ste al ser comparado con herramientas semejantes J2EE lo posicionan como una mejor alternativa para el usuario comn.

Evaluacin Claridad de Uso de licencias. Consideracin paquetes educacionales.


Ambas licencias

Explicacin
no presentan consideraciones

Plataforma Sobresaliente

engorrosas que generen algn tipo de interpretacin ajena a la que stas presentan. Solo J2EE considera la descarga gratuita de muchos de sus productos e IDEs de desarrollo e incluso la maquina virtual es libre de acceso. Refirindose al enunciado anterior por contar con

Costos de herramientas simples.

paquetes educacionales o considerados de licencia libre J2EE ofrece sus productos gratis, incluso se pueden acceder a travs de Internet y llegaran al hogar del cliente. La licencia de .NET permite al usuario desarrollar sus propias aplicaciones comerciales sin necesidad de

Costos por aplicaciones Creadas.

acceder a una licencia especial. Este hecho contrasta con J2EE que para cierto tipo de aplicaciones se debe acceder a licencias extras para incluir a sus productos que puedan formar parte de otra aplicacin comercial.

13.6.1. Tabla 28: Tabla de Resultados 5: Uso de Licencias J2EE v/s .NET

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 143 -

13.7. Conclusiones de Pruebas de Compatibilidad.

Para dar conclusiones en cuanto a las pruebas desarrolladas para evaluar la compatibilidad se comentar sobre una de las reas de evaluacin ms analizadas el hecho de poder migrar aplicaciones, la Portabilidad.

En cuanto a la portabilidad, un concepto importante dentro de las aplicaciones Web, en J2EE se considera el lema de "escrbelo una vez, ejectalo en cualquier parte" (Portabilidad
por Ricardo Chamorro),

haciendo referencia a lo independiente del lenguaje en cuanto a la

plataforma de hardware o sistema operativo utilizado, se puede comentar que esto es particularmente cierto, luego de poder migrar una aplicacin de un sistema operativo Windows con el servidor Web Internet Information Server y ser migrado a OpenBSD con Apache Tomcat como servidor Web y, que sta, siguiera ejecutando correctamente luego de pequeas modificaciones hace que en este sentido J2EE supere en este mbito a la plataforma de desarrollo de Microsoft. En cuanto a sta, continua con su voluntad de apoyar solo a Windows, por lo que, por el momento Microsoft .NET funcionar nicamente en plataformas basadas en Win32.

Apoyndose en el estudio de Ricardo Chamorro, se concluye adems que a pesar de la gran portabilidad de J2EE, existe el problema ste es un estndar y no un producto en s. Este hecho, que facilita la adopcin de esta tecnologa por parte de varios fabricantes, tambin conlleva que las implementaciones de J2EE no son 100% compatibles entre s, ya que cada vendedor ha realizado su propia interpretacin del estndar y ha aadido nuevas

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 144 -

caractersticas que no tienen por qu incluir el resto de competidores. A su vez este documento entrega 3 posturas en cuanto a dicha portabilidad: Primero: Si el software o aplicacin Web a desarrollar que una empresa madura, especialmente en una de mbitos de negocios o desarrolladora de software de este tipo, no puede cerrarse solo a una arquitectura, restringiendo a los usuarios a desarrollar aplicaciones J2EE en ambientes Linux/Unix o pensar que los clientes solo acepten a Windows y .NET como solucin.

Segundo: Si los interesados en desarrollar y/o utilizar aplicaciones Web utilizan sistemas operativos Windows, estos tienen la ventaja de que pueden desarrollar tanto en J2EE como .NET, ya que ambas soluciones se ejecutan en estos sistemas operativos sin problemas.

Tercero: si la empresa, cliente u usuario dispone de los recursos, tanto tcnicos, econmicos, de entorno y capacidades, la eleccin de una de estas plataformas de desarrollo no debera generar algn problema ya que ellos manejan sus necesidades y sabrn tomar una desicin adecuada.

Tambin se puede incluir dentro de la Compatibilidad, que ms que ser un problema de migracin, puede ser considerado un problema monetario, por el amplio costo que genera el dedicarse por completo a una de estas plataformas, es por esto que J2EE siempre ser discriminada a pesar de su ventaja de portabilidad, por sus muchas veces excesiva necesidad de recursos, tanto de hardware como humanos, y en mbitos comparativos de empresas grandes, el coste monetario se hace presente con fuerza. Por el lado de Microsoft a pesar de que puede consumir menos recursos que J2EE su incapacidad de migracin la
Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 145 -

hacen inferior en creces en el mbito de la compatibilidad. A su vez debe considerarse este hecho como importante dependiendo del cliente que este manejando dicha tecnologa, pues si sus intereses son otros, esta ventaja sera tomada con menos importancia.

A pesar de esto se debe mencionar el proyecto de grandes proporciones y bastante ambicioso de .NET, que pretende generar MSIL o IL "Microsoft Intermediate Language" (un nuevo cdigo Intermedio), para todo tipo de lenguaje (inclusive JAVA). Esto posibilitara el poder desarrollar una aplicacin en varios lenguajes y, todos estos, nter operar juntos una vez convertidos a MSIL. Obviamente el poder mezclar varios lenguajes en un solo programa y/o aplicacin sera algo sin precedente, con esto Microsoft pretende lograr la interoperabilidad ofrecida por Java y llevarla acabo para a travs de MSIL a todo lenguaje.

Evaluacin

Explicacin
Ambas plataformas no presentan grandes problemas con

Plataforma Sobresaliente

Visualizacin

respecto a la visualizacin de las distintas pginas dinmicas. J2EE presenta la tan valiosa portabilidad, dependiendo del tipo de usuario considerado

Portabilidad

13.7.1. Tabla 29: Tabla de Resultados 6: Compatibilidad J2EE v/s .NET

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 146 -

14. Conclusin.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 147 -

Durante el transcurso de la investigacin de las tecnologas J2EE y .NET en el desarrollo de aplicaciones Web, junto con la bsqueda de definiciones claras para cada producto, que consideren a un usuario de nivel bsico el poder entender este documento, el hecho de considerar investigaciones realizadas por personas conocedoras del tema, que junto a la creacin de las reas de evaluacin con sus criterios y sus respectivas pruebas de

comparacin, se pudo realizar las siguientes conclusiones con respecto a la evaluacin comparativa entre stas tecnologas en el mbito de las aplicaciones Web.

Con sto se puede considerar al estudio como una herramienta vlida de consideracin para futuros usuarios y personas en general, quienes deseen introducirse en una de estas dos tecnologas de desarrollo para cualquier tipo de aplicaciones que el usuario este interesado, y no solo en el mbito Web. Con sto se concluye que una buena eleccin debe estar acompaada de un conocimiento previo, para no tomar cualquier decisin acelerada que pueda generar conflictos a futuro, detenindose en los pequeos detalles, los cuales permitirn un mejor desenvolvimiento con las herramientas de desarrollo, o el lenguaje de programacin llevado por cada tecnologa.

Aparte de las caractersticas mencionadas con anterioridad, se necesita tener una mente abierta y consiente de que cualquier abanderamiento o una postura cerrada en el mbito informtico, hace que cualquier nuevo producto o nuevas caractersticas presentadas por las distintas empresas o grupos de desarrollo sean recibidas con cierto rechazo, hecho que muchas veces hace permanecer estancado con el avance de la tecnologa.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 148 -

Este trabajo tambin pretende que futuros iniciados y no tan iniciados en estas plataformas, puedan ampliar y mejorar su conocimientos en el mbito Web presentado en este proyecto.

Por ltimo considerar que este documento da por manifiesto el cumplimiento a la problemtica presentada en los inicios de este estudio terico-prctico, manifestando las ventajas y desventajas presentadas por las tecnologas. Tambin considerar este documento como abierto para posteriores estudios que puedan aportar o basarse en ste para mejorar la toma de decisiones de este nivel. De la misma forma para la utilizacin como manual para la creacin de aplicaciones Web bajo las plataformas J2EE o Microsoft.NET.

Caracterstica a Comparar

Plataforma en Ventaja

Aprendizaje Rendimiento Explotacin y Uso Desarrollo Uso de Licencias Compatibilidad


14.1. Tabla 30: Tabla de Conclusiones Finales

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 149 -

Ventajas El nmero de Empresas que apoyan a la Plataforma.

Desventajas Uso excesivo de recursos para algunos software de desarrollo. Java como nico lenguaje de programacin para aplicaciones de todo tipo. La no integracin de conectores JDBC bsicos en los IDEs de desarrollo. Incompatibilidad J2EE dependiendo de la interpretacin del fabricante. Costos de licencias sobre productos de desarrollo de nivel superior. Costos sobre el aprendizaje de software comercial orientado a empresas. Curva de Aprendizaje elevada para usuarios iniciales.

Capacidad de Migracin de Sistemas Desarrollados. Accesibilidad de Cdigos en los diferentes IDEs de desarrollo. Acceso a datos para distintos motores con la utilizacin de JDBC. Capacidad de acceder a herramientas de licencia libre. Potencial de los Web Services desarrollados con manejo de XML. Proyeccin a Futuro de ciertos proyectos de desarrollo de software. Podero Servidor Web Tomcat, con capacidad de despliegue de distinto tipos de pginas dinmicas. Deteccin y Manejo de errores por parte del usuario.

Consumo de recursos en la ejecucin de Aplicaciones.

Baja del desarrollo de pginas JSP en la red.

14.2. Tabla 31: Tabla Ventajas y Desventajas J2EE.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 150 -

Ventajas Facilidad de Diseo de Aplicaciones de todo tipo. Capacidad de eleccin del lenguaje en el cual se quiere disear y programar. Proyeccin a Futuro de las distintas herramientas presentadas por .NET Proyectos de Integracin a futuro (MSL y Mono). Desarrollo de Web Services con manejo XML

Desventajas Incapacidad de la portabilidad de Aplicaciones. Costos Elevados para el acceso a herramientas de desarrollo de este tipo. Inexistencia de productos de licencia libre para el desarrollo educacional. Orientacin comercial. La orientacin nica sobre sistemas operativos Windows. No consideracin de herramienta de conexin a BD incluidas en sus IDEs de desarrollo. Incapacidad de trabajo con otro tipo de pginas dinmicas por la tecnologa .NET Instalacin excesiva de la herramienta de desarrollo Visual Studio.NET Interoperatividad de IIS durante la ejecucin del Servidor Web Apache.

ADO.NET como herramienta de conexin sobre Bases de Datos.

Curva de Aprendizaje favorable para usuarios iniciales. Los Requerimientos mnimos y consumo de recursos por las aplicaciones creadas bajo este estndar. Explotacin en la red del tipo de pginas dinmicas ASPx

14.3. Tabla 32: Tabla Ventajas y Desventajas .NET.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 151 -

16. Bibliografa.
Pginas Web:

Anlisis Comparativo entre Microsoft.NET y SUN J2EE. http://www. ciberteca.NET\articulos\programacion\net\index.html

Proyecto Mono http://www.mono-project.com/Main_Page

Especial Java v/s .NET. http://www.comunidadjava.cl

Anlisis Cimientos de las Aplicaciones Web. http://www.cientec.com

Diseo de Aplicaciones Web con J2EE. http://java.ciberaula.com/articulo/diseno_patrones_j2ee/

Foro Java v/s .NET JavaHispano. http://www.javaHispano.com

Aplicaciones .NET usando ADO. http://www.elguille.info/vb

Programacin Fcil http://www.programacionfacil.com/vbnetl http://www.programacionfacil.com/javajsp/l

Programacin JSP http://www.jsptut.com/index.html

Que es JSP? http://www.desarrolloweb.com/manuales/27

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 152 -

Documentos:

Especial: Java Versus .NET, (publicado Martes 8 de Abril del 2003 por Rodrigo Bustos).

Comentarios generales sobre J2EE y .NET y anlisis sobre Implementing Sun Microsystems Java Pet Store J2EE Blueprint Applications using Microsoft .NET, White Paper desarrollado por Microsoft, (por Carlos Del Collado) J2EE v/s .NET, (por Lus Sancho) ww.deltablog.com/2005/06/08/net-vs-j2ee. Especial: Ventajas .NET sobre Java, (por Oscar Ascensio) Microsoft Framework.NET y los Servicios Web, (por Francisco Gamboa)

Desarrollo de una Aplicacin en tres Capas con VS .NET, (por Joel Francia H) Gua de Tesis: Visualizador de Datos Geogrficos sobre Internet, (por Freddy Lara Gonzlez) Estudio de Interoperatividad .NET/J2EE, (por Leonardo Rodrguez, Andrs Vignaga, Felipe Zipitra.)

Documentos J2EE. The J2EE 1.4 Tutorial for Sun. Sun Microsystems. Aprende Java como si estuvieses en primero Escuela Superior de Ingenieros. Universidad de Navarra. The J2EE1.4 Tutorial Eric Armstrong, Jennifer Ball, Stephanie Bodoff, Debbie Bode Carson, Ian Evans, Dale Green, Kim Haase, Eric Jendrock.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 153 -

Documentos .NET

Programacin con Visual Basic.NET Francisco Charte. Programacin en Visual Basic.NET Lus Miguel Blanco Grupo EIDOS. VB .NET Language in a Nutshell Steven Roman, Ron Petrusha, Paul Lomax. Profesional ASP.NET 1.0 Richard Anderson, Brian Francis, Alex Homer, Rob Howard Grupo Wrox

Sobre los autores:


- Rodrigo Bustos Molina, ingeniero informtico, consultor Java y relator en tecnologas de informacin, co-fundador de Comunidad Java (http://www.comunidadjava.cl), profesor de la Escuela de Ingeniera del DuocUC, instructor de CIISA Golden Training y columnista de las revistas ComputerWorld y PCWorld. - Oscar Ascencio Alarcn, ingeniero civil en informtica de la Universidad Tcnica Federico Santa Mara, ha desempeado varios cargos gerenciales y ha dirigido proyectos relacionados con Tecnologas de la Informacin en Chile y otros pases de Latinoamrica. Posee una intensa experiencia docente en importantes universidades chilenas. Actualmente, se desempea en la gerencia general de Argentis, empresa especializada en el desarrollo de productos basados en .NET para proveer soluciones de negocios en ambientes Internet. - Francisco Gamboa A, instructor de CIISA Goleen Training. - Carlos Del Collado, Editor Windows 2000 Magazine - Joel Francia H, docente Universitario, instructor, consultor y desarrollador de aplicaciones .NET. con certificaciones MCAD, MCSD, MCT, y es adems MVP en C# .NET, experto en el desarrollo de aplicaciones distribuidas, implementaciones de Servicios Web, .NET Remoting, XML y la implementacin y el uso de patrones UML para el desarrollo de aplicaciones .NET usando Building Blocasy UML.

- Leonardo Rodrguez, Andrs Vignaga, Felipe Zipitra, docentes Universi de la Repblica, Facultad de Ingeniera, Instituto de Computacin Montevideo Uruguay.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 154 -

Anexos

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 155 -

Anexo A.
a. Cdigos J2EE. Dentro de este anexo se incluirn solo los cdigos ms representativos de cdigos JSP desarrollados en la creacin de los distintos sistemas y pruebas realizados dentro de esta plataforma. Para esto se tiene:

a.1. Sistema J2EE con Mysql en Netbeans.


<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver"); String database = "jdbc:mysql://localhost:3306/peliculas"; String username="root"; String password=""; Connection con = DriverManager.getConnection(database,username,password); %> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Contenido de la Base de Datos </font> <TABLE border="10" cellspacing="10" cellpadding="10" align="center"> <tr><td bgcolor="#78705A">Clave</td><td bgcolor="#78705A">Pelicula</td> <td bgcolor="#78705A">Actor</td><td bgcolor="#78705A">Director</td> <td bgcolor="#78705A">Descripcion</td><td bgcolor="#78705A">Clasificacion</td></tr> <% if (con != null) { Statement stmt = con.createStatement(); ResultSet res = stmt.executeQuery("SELECT * FROM movies order by Nombre"); while(res.next()) { String clave = res.getString("Clave"); String pelicula = res.getString("Nombre"); String actor= res.getString("Actor"); String director = res.getString("Director"); String descripcion= res.getString("Descripcion"); String clasificacion = res.getString("Clasificacion"); out.println("<tr><td bgcolor=blue>"+ clave +"</td>" + "<td bgcolor=blue>" + pelicula + "</td>" + "<td bgcolor=blue>" + actor + "</td>"); out.println("<td bgcolor=blue>"+ director +"</td>" + "<td bgcolor=blue>" + descripcion + "</td>" + "<td bgcolor=blue>" + clasificacion + "</td></tr>"); } res.close();

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 156 -

stmt.close(); con.close(); } %> </table> <center> <br> <a href="http://localhost:8084/JSPmysql" ><h1>Volver a Pagina Principal </a> </center> </BODY>

Tabla a.1.1. cargar.jsp de JSPMysql.


<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver"); String database = "jdbc:mysql://localhost:3306/peliculas"; String username="root"; String password=""; Connection con = DriverManager.getConnection(database,username,password); %> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Ingreso de Datos... </font> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" td=> <form method=post action="index3.jsp"> <tr><td bgcolor="#78705A"><h1>Clave</td><td> <input type="text" name="clave" size="25"></td></tr> <tr><td bgcolor="#78705A"><h1>Pelicula</td><td> <input type="text" name="pelicula" size="25"></td></tr> <tr><td bgcolor="#78705A"><h1>Actor</td><td> <input type="text" name="actor" size="25"></td></tr> <tr><td bgcolor="#78705A"><h1>Director</td><td> <input type="text" name="director" size="25"></td></tr> <tr><td bgcolor="#78705A"><h1>Descripcion</td><td> <input type="text" name="descripcion" size="25"></td></tr> <tr><td bgcolor="#78705A"><h1>Clasificacion</td><td> <input type="text" name="clasificacion" size="25"></td></tr> </table><br><br><br><br> <tr><td> <input type="submit" value="Ingresar Datos"></td><td><input type="reset" value="Borrar Datos"></td> </tr> </form> </table> <br> <a href="http://localhost:8084/JSPmysql" ><h1>Volver a Pagina Principal </a> </center> </BODY>

Tabla a.1.2. ingresar.jsp de JSPMysql.


<%@ page language="java" %> <%@ page import ="java.sql.*" %>

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 157 -

<% String clavex = request.getParameter( "clave" ); String peliculax = request.getParameter( "pelicula" ); String actorx= request.getParameter( "actor" ); String directorx= request.getParameter( "director" ); String descripcionx= request.getParameter( "descripcion" ); String clasificacionx= request.getParameter( "clasificacion" ); session.setAttribute( "laclave", clavex ); session.setAttribute( "elnombre", peliculax ); session.setAttribute( "elactor", actorx ); session.setAttribute( "eldirector", directorx ); session.setAttribute( "ladescri", descripcionx ); session.setAttribute( "laclasi", clasificacionx ); %> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Acceso a Datos con JSP </font> <br><br><br> <h1> Datos Ingresados a la Base de Datos:<BR><BR><BR> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" td=> <Form method=post action=cargar.jsp> <tr><td><h1>Clave: </td> <td><%= session.getAttribute( "laclave" ) %></td></tr> <tr><td><h1>Pelicula: </td> <td><%= session.getAttribute( "elnombre" ) %></td></tr> <tr><td><h1>Actor: </td> <td><%= session.getAttribute( "elactor" ) %></td></tr> <tr><td><h1>Director: </td> <td><%= session.getAttribute( "eldirector" ) %></td></tr> <tr><td><h1>Descripcion: </td> <td><%= session.getAttribute( "ladescri" ) %></td></tr> <tr><td><h1>Clasificacion: </td> <td><%= session.getAttribute( "laclasi" ) %></td></tr> <% Class.forName("com.mysql.jdbc.Driver"); String database = "jdbc:mysql://localhost:3306/peliculas"; String username="root"; String password=""; Connection con = DriverManager.getConnection(database,username,password); String query=" insert into movies(Clave,Nombre,Actor,Director,Descripcion,Clasificacion) values ('" + clavex + "','" + peliculax + "','"+ actorx + "','"+ directorx + "','"+ descripcionx + "','"+ clasificacionx + "')"; PreparedStatement ps = con.prepareStatement(query); ps.executeUpdate(); ps.close(); %> </table> <input type=submit value="Cargar Datos"> </form> <br><br><br> <a href="http://localhost:8084/JSPmysql" ><h1>Volver a Pagina Principal </a> </center> </BODY>

Tabla a.1.3. index.jsp de JSPMysql.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 158 -

a.2. Sistema J2EE con PostgresMysql en Netbeans.


<%@ page language="java" %> <%@ page import ="java.sql.*" %> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Busqueda de Datos... </font> <form method=post action="buscado.jsp"> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" td=> <tr><td bgcolor="#78705A"><h1>Por Clave</td><td> <input type="text" name="clave" size="25"></td></tr> <br><br> <tr><td> Datos"></td></tr> </table> </form> <form method=post action="buscado2.jsp"> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" td=> <tr><td bgcolor="#78705A"><h1>Por Pelicula</td><td> <input type="text" name="pelicula" size="25"></td></tr> <br><br><br><br> <center> <tr><td> Datos"></td> </tr> </table> </form> </BODY> <br> <a href="http://localhost:8084/JSPmysql" ><h1>Volver a Pagina Principal </a> <input type="submit" value="Buscar Datos"></td><td><input type="reset" value="Borrar <input type="submit" value="Buscar Datos"></td><td><input type="reset" value="Borrar

</html> Tabla a.2.1. buscar.jsp de JSPpost.


<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% Class.forName("org.postgresql.Driver"); String database = "jdbc:postgresql://localhost:5432/BD2"; String username="root"; String password="robotech"; Connection con = DriverManager.getConnection(database,username,password); %> <% String clavemo= request.getParameter( "clave" ); String pelimo= request.getParameter( "pelicula" ); session.setAttribute( "clavex", clavemo ); session.setAttribute( "nombrex", pelimo );

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 159 -

%> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Datos Encontrados </font> <br> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" td=> <tr><td bgcolor="#78705A">Clave</td><td bgcolor="#78705A">Pelicula</td> <td bgcolor="#78705A">Actor</td><td bgcolor="#78705A">Director</td> <td bgcolor="#78705A">Descripcion</td><td bgcolor="#78705A">Clasificacion</td></tr> <% if (con != null) { Statement stmt = con.createStatement(); ResultSet res = stmt.executeQuery("SELECT * FROM prueba WHERE prueba.\"Clave\"='" + clavemo + "' "); while(res.next()) { String clave = res.getString("Clave"); String pelicula = res.getString("Nombre"); String actor= res.getString("Actor"); String director = res.getString("Director"); String descripcion= res.getString("Descripcion"); String clasificacion = res.getString("Clasificacion"); out.println("<tr><td bgcolor=blue>"+ clave +"</td>" + "<td bgcolor=blue>" + pelicula + "</td>" + "<td bgcolor=blue>" + actor + "</td>"); out.println("<td bgcolor=blue>"+ director +"</td>" + "<td bgcolor=blue>" + descripcion + "</td>" + "<td bgcolor=blue>" + clasificacion + "</td></tr>"); } res.close(); stmt.close(); con.close(); } %> </table> <form method=post action="cargar.jsp"> <input type=submit value="Ver Datos Ingresados"> </form> <br> <a href="http://localhost:8084/JSPpost" >Volver a Pagina Principal </a> </center> </BODY> </html>

Tabla a.2.2.buscado.jsp de JSPpost.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 160 -

<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% Class.forName("org.postgresql.Driver"); String database = "jdbc:postgresql://localhost:5432/BD2"; String username="root"; String password="robotech"; Connection con = DriverManager.getConnection(database,username,password); %> <% String clavemo= request.getParameter( "clave" ); String pelimo= request.getParameter( "pelicula" ); session.setAttribute( "clavex", clavemo ); session.setAttribute( "nombrex", pelimo ); %> <HTML> <BODY background="d:\fotos\fondo.gif"> <center> <Font color=blue size=10>Datos Encontrados </font> <br> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" td=> <tr><td bgcolor="#78705A">Clave</td><td bgcolor="#78705A">Pelicula</td> <td bgcolor="#78705A">Actor</td><td bgcolor="#78705A">Director</td> <td bgcolor="#78705A">Descripcion</td><td bgcolor="#78705A">Clasificacion</td></tr> <% { Statement stmt = con.createStatement(); ResultSet res = stmt.executeQuery("SELECT * FROM prueba WHERE prueba.\"Nombre\"='" + pelimo + "' "); while(res.next()) { String clave = res.getString("Clave"); String pelicula = res.getString("Nombre"); String actor= res.getString("Actor"); String director = res.getString("Director"); String descripcion= res.getString("Descripcion"); String clasificacion = res.getString("Clasificacion"); out.println("<tr><td bgcolor=blue>"+ clave +"</td>" + "<td bgcolor=blue>" + pelicula + "</td>" + "<td bgcolor=blue>" + actor + "</td>"); out.println("<td bgcolor=blue>"+ director +"</td>" + "<td bgcolor=blue>" + descripcion + "</td>" + "<td bgcolor=blue>" + clasificacion + "</td></tr>"); } res.close(); } %> </table> <form method=post action="cargar.jsp"> </center> </body> </html> <input type=submit value="Ver Datos Ingresados"> </form> <a href="http://localhost:8084/JSPpost" >Volver a Pagina Principal </a> stmt.close(); con.close(); if (con != null)

Tabla a.2.3.buscado2.jsp de JSPpost.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 161 -

a.3. Sistema J2EE con Microsoft Access en Netbeans.


<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% String clavex = request.getParameter( "clave" );%> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Modificacin de Datos... </font> <br><br><br> <TABLE border="10" cellspacing="10" cellpadding="10" align="center" > <form method=post action="modificado.jsp"> <tr><td bgcolor="#78705A"><h1>Ingrese Clave a Modificar</td><br> <tr><td bgcolor="#78705A"><h1>Clave a Modificar</td><td> <input type="text" name="clave" size="25"></td></tr> </table><br> <h1>Nuevos Datos... <table border="5"> <tr><td <tr><td bgcolor="#78705A"><h1>Nueva bgcolor="#78705A"><h1>Nuevo Clave </td><td> <input <input type="text" type="text" name="clave2" name="nombre" size="25"></td></tr> Nombre</td><td> size="25"></td></tr> <tr><td bgcolor="#78705A"><h1>Nueva Edad</td><td> <input type="text" name="edad" size="25"></td></tr> </table><br> <center> <tr><td> Datos"></td> </tr> </center> </form> </table> </form> <br> <a href="http://localhost:8084/baseweb" >Volver a Pagina Principal </a> </center> </BODY> </html> <input type="submit" value="Modificar Datos"></td><td><input type="reset" value="Borrar

Tabla a.3.1. modificar.jsp de JSPAccess.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 162 -

<%@ page language="java" %> <%@ page import ="java.sql.*" %> <% String clavemo= request.getParameter( "clave" ); String clavex = request.getParameter( "clave2" ); String nombrex = request.getParameter( "nombre" ); String edadx= request.getParameter( "edad" ); session.setAttribute( "laclave", clavex ); session.setAttribute( "elnombre", nombrex ); session.setAttribute( "laedad", edadx ); session.setAttribute( "clavexx", clavemo ); %> <HTML> <BODY background="d:\Paginas Web\Pagina Taller\fotos\fondo.gif"> <center> <Font color=blue size=10>Datos Modificados Exitosamente con JSP </font> <% out.println("<h1>Nuevos Datos Ingresados</H1>"); out.println("<table border=10 cellspacing=10 cellpadding=10><tr><td><h1>Clave: " + clavex + "</td></tr>"); out.println("<tr><td><h1>Nombre: " + nombrex + "</td></tr>"); out.println("<tr><td><h1>Edad: " + edadx + "</td></tr></table>"); Class.forName("acs.jdbc.Driver"); String database = "jdbc:atinav:localhost:7227:d:\\mibase.mdb"; String username="Admin"; String password=""; Connection con = DriverManager.getConnection(database,username,password); String query="update mitabla set clave='" + clavex + "', nombre= '"+ nombrex + "', edad='" + edadx + "'where clave='"+ clavemo + "'"; PreparedStatement ps = con.prepareStatement(query); ps.executeUpdate(); ps.close(); %> </table> <form method=post action="cargar.jsp"> <input type=submit value="Ver Datos Modificados"> </form> <br> <a href="http://localhost:8084/baseweb" >Volver a Pagina Principal </a> </center> </BODY>

Tabla a.3.2. modificado.jsp de JSPAccess.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 163 -

Anexo B.
b. Cdigos .NET.

Dentro de este anexo, se incluirn solo los cdigos ms representativos ASPx y .VB desarrollados en los distintos sistemas y pruebas realizados para esta plataforma.

b.1. Sistema .NET con MySql en Visual Studio.


Imports CoreLab.MySql Public Class cargar Inherits System.Web.UI.Page Protected WithEvents dataGrid As System.Web.UI.WebControls.DataGrid Protected WithEvents btTest As System.Web.UI.WebControls.Button Protected WithEvents lbState As System.Web.UI.WebControls.Label Protected WithEvents tbServer As System.Web.UI.WebControls.TextBox Protected WithEvents tbPassword As System.Web.UI.WebControls.TextBox Protected WithEvents tbUsername As System.Web.UI.WebControls.TextBox Protected WithEvents lbError As System.Web.UI.WebControls.Label Protected WithEvents lbResult As System.Web.UI.WebControls.Label Protected WithEvents tbSQL As System.Web.UI.WebControls.TextBox Protected WithEvents btExecute As System.Web.UI.WebControls.Button Protected WithEvents Label2 As System.Web.UI.WebControls.Label Protected WithEvents lbTitle As System.Web.UI.WebControls.Label Protected WithEvents MySqlConnection As CoreLab.MySql.MySqlConnection Protected WithEvents MySqlCommand As CoreLab.MySql.MySqlCommand Protected WithEvents MySqlDataAdapter As CoreLab.MySql.MySqlDataAdapter Protected WithEvents MySqlCommandBuilder As CoreLab.MySql.MySqlCommandBuilder Protected WithEvents DataSet As System.Data.DataSet Protected WithEvents tbPort As System.Web.UI.WebControls.TextBox Protected WithEvents tbDatabase As System.Web.UI.WebControls.TextBox Protected WithEvents HyperLink1 As System.Web.UI.WebControls.HyperLink Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents tbSQL2 As System.Web.UI.WebControls.TextBox Protected WithEvents Image1 As System.Web.UI.WebControls.Image Protected WithEvents Form1 As System.Web.UI.HtmlControls.HtmlForm #Region " Web Form Designer Generated Code " <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.MySqlConnection = New CoreLab.MySql.MySqlConnection() Me.MySqlCommand = New CoreLab.MySql.MySqlCommand() Me.MySqlDataAdapter = New CoreLab.MySql.MySqlDataAdapter() Me.MySqlCommandBuilder = New CoreLab.MySql.MySqlCommandBuilder() Me.DataSet = New System.Data.DataSet() CType(Me.DataSet, System.ComponentModel.ISupportInitialize).BeginInit() Me.MySqlConnection.ConnectionString = "User Id=root;Database=peliculas;Host=localhost;" Me.MySqlConnection.Name = "MySqlConnection" Me.MySqlCommand.CommandText = "SELECT * FROM movies order by nombre" Me.MySqlCommand.Connection = Me.MySqlConnection Me.MySqlCommand.Name = "MySqlCommand" Me.MySqlDataAdapter.SelectCommand = Me.MySqlCommand Me.MySqlCommandBuilder.DataAdapter = Me.MySqlDataAdapter Me.DataSet.DataSetName = "NewDataSet" Me.DataSet.Locale = New System.Globalization.CultureInfo("ru-RU") CType(Me.DataSet, System.ComponentModel.ISupportInitialize).EndInit() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init InitializeComponent() tbUsername.Text = MySqlConnection.UserId tbPassword.Text = MySqlConnection.Password tbServer.Text = MySqlConnection.Host tbPort.Text = MySqlConnection.Port.ToString

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 164 -

tbDatabase.Text = MySqlConnection.Database tbSQL.Text = MySqlCommand.CommandText End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub btTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btTest.Click Try MySqlConnection.UserId = tbUsername.Text MySqlConnection.Password = tbPassword.Text MySqlConnection.Host = tbServer.Text MySqlConnection.Port = CInt(tbPort.Text) MySqlConnection.Database = tbDatabase.Text MySqlConnection.Open() lbState.Text = "Success" lbState.ForeColor = Color.Blue MySqlConnection.Close() Catch exception As Exception lbState.Text = "Failed" lbState.ForeColor = Color.Red lbError.Text = exception.Message End Try End Sub Private Sub btExecute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btExecute.Click Try MySqlConnection.UserId = tbUsername.Text MySqlConnection.Password = tbPassword.Text MySqlConnection.Host = tbServer.Text MySqlConnection.Port = CInt(tbPort.Text) MySqlConnection.Database = tbDatabase.Text MySqlCommand.CommandText = tbSQL.Text BindGrid() lbResult.Visible = True Catch exception As Exception lbError.Text = exception.Message End Try End Sub Private Sub dataGrid_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid.EditCommand MySqlConnection.UserId = tbUsername.Text MySqlConnection.Password = tbPassword.Text MySqlConnection.Host = tbServer.Text MySqlConnection.Port = CInt(tbPort.Text) MySqlConnection.Database = tbDatabase.Text MySqlCommand.CommandText = tbSQL.Text dataGrid.EditItemIndex = e.Item.ItemIndex BindGrid() End Sub Private Sub dataGrid_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid.UpdateCommand MySqlConnection.UserId = tbUsername.Text MySqlConnection.Password = tbPassword.Text MySqlConnection.Host = tbServer.Text MySqlConnection.Port = CInt(tbPort.Text) MySqlConnection.Database = tbDatabase.Text MySqlCommand.CommandText = tbSQL.Text Dim UpdateCmd As MySqlCommand = Nothing Dim CloseConnection As Boolean = False Try UpdateCmd = MySqlCommandBuilder.GetUpdateCommand() Dim KeyValue As String = String.Empty Dim NumCols As Integer = e.Item.Cells.Count Dim I As Integer For I = 1 To NumCols - 1 Dim ColValue As String = CType(e.Item.Cells.Item(I).Controls.Item(0), TextBox).Text UpdateCmd.Parameters.Item(I - 1).Value = ColValue If I = 1 Then KeyValue = ColValue End If

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 165 -

Next I UpdateCmd.Parameters.Item(I - 1).Value = KeyValue If MySqlConnection.State <> ConnectionState.Open Then MySqlConnection.Open() CloseConnection = True End If UpdateCmd.ExecuteNonQuery() dataGrid.EditItemIndex = -1 BindGrid() lbState.Text = "Success" lbState.ForeColor = Color.Blue Catch exception As Exception lbError.Text = exception.Message Finally dataGrid.EditItemIndex = -1 UpdateCmd.Dispose() If CloseConnection Then MySqlConnection.Close() End If End Try End Sub Private Sub dataGrid_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid.CancelCommand MySqlConnection.UserId = tbUsername.Text MySqlConnection.Password = tbPassword.Text MySqlConnection.Host = tbServer.Text MySqlConnection.Port = CInt(tbPort.Text) MySqlConnection.Database = tbDatabase.Text MySqlCommand.CommandText = tbSQL.Text dataGrid.EditItemIndex = -1 BindGrid() End Sub Private Sub BindGrid() DataSet.Clear() MySqlDataAdapter.Fill(DataSet, "Table") dataGrid.DataSource = DataSet.Tables.Item("Table").DefaultView dataGrid.DataBind() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try MySqlConnection.UserId = tbUsername.Text MySqlConnection.Password = tbPassword.Text MySqlConnection.Host = tbServer.Text MySqlConnection.Port = CInt(tbPort.Text) MySqlConnection.Database = tbDatabase.Text MySqlCommand.CommandText = tbSQL2.Text BindGrid() lbResult.Visible = True Catch exception As Exception lbError.Text = exception.Message End Try End Sub End Class

Tabla b.1.1. cargar.vb de ASPxMysql.

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="cargar.aspx.vb" Inherits="Web.cargar" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD><title>cargar</title> <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR"> <meta content="Visual Basic 7.0" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD>

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 166 -

<body MS_POSITIONING="GridLayout" rightMargin="20" bgColor="#ccffff"> <DIV style="Z-INDEX: 100; LEFT: 8px; WIDTH: 10px; POSITION: absolute; TOP: 8px; HEIGHT: 10px" ms_positioning="text2D"> <FORM id="Form1" method="post" runat="server"> <TABLE id="Table1" style="Z-INDEX: 104; LEFT: 10px; WIDTH: 332px; POSITION: absolute; TOP: 17px; HEIGHT: 28px" cellSpacing="5" cellPadding="0" bgColor="#ccccff"> <TR> <TD><asp:label id="lbTitle" runat="server" ForeColor="Navy" Font-Bold="True" EnableViewState="False" Font-Size="12pt" Font-Names="Verdana">Cargar Base de Datos Mysql en .NET </asp:label></TD> </TR></TABLE> <asp:label id="lbResult" style="Z-INDEX: 105; LEFT: 11px; POSITION: absolute; TOP: 348px" runat="server" ForeColor="Navy" Font-Bold="True" EnableViewState="False" Font-Size="10pt" Font-Names="Verdana" Visible="False" Width="377px">Datos Ingresados en la Base de Datos Mysql</asp:label> <asp:label id="lbError" style="Z-INDEX: 104; LEFT: 11px; POSITION: absolute; TOP: 323px" runat="server" ForeColor="Red" Font-Bold="True" EnableViewState="False" Font-Size="10pt" Font-Names="Verdana" Width="693px"></asp:label> <BR><BR> <asp:datagrid id=dataGrid style="Z-INDEX: 101; LEFT: 10px; POSITION: absolute; TOP: 369px" runat="server" Font-Size="8pt" Font-Names="Verdana" Width="700px" BackColor="Teal" BorderColor="Black" CellPadding="3" DataSource="<%# DataSet %>"> <HeaderStyle BackColor="#AAAADD"></HeaderStyle> </asp:datagrid> </DIV><asp:Image id="Image1" style="Z-INDEX: 112; LEFT: 633px; POSITION: absolute; TOP: 252px" runat="server" Width="157px" Height="130px" ImageUrl="../mysql2.JPG"></asp:Image> <asp:textbox id="tbSQL2" style="Z-INDEX: 111; LEFT: 652px; POSITION: absolute; TOP: 275px" runat="server" Font-Names="Courier New" Width="263px" Visible="False" Height="48px" textmode="MultiLine" wrap="False">select * from movies order by clave</asp:textbox> <asp:textbox id="tbSQL" style="Z-INDEX: 101; LEFT: 649px; POSITION: absolute; TOP: 55px" runat="server" Font-Names="Courier New" Visible="False" wrap="False" textmode="MultiLine" Height="48px" Width="263px">select * from movies order by nombre</asp:textbox> <asp:textbox id="tbUsername" style="Z-INDEX: 102; LEFT: 654px; POSITION: absolute; TOP: 119px" runat="server" Visible="False">root</asp:textbox> <asp:textbox id="tbPassword" style="Z-INDEX: 103; LEFT: 656px; POSITION: absolute; TOP: 144px" runat="server" Visible="False"></asp:textbox> <asp:textbox id="tbServer" style="Z-INDEX: 104; LEFT: 658px; POSITION: absolute; TOP: 174px" runat="server" Visible="False">localhost</asp:textbox> <asp:textbox id="tbPort" style="Z-INDEX: 105; LEFT: 658px; POSITION: absolute; TOP: 207px" runat="server" Visible="False">3306</asp:textbox> <asp:textbox id="tbDatabase" style="Z-INDEX: 106; LEFT: 657px; POSITION: absolute; TOP: 237px" runat="server" Visible="False">peliculas</asp:textbox> <asp:button id="Button1" style="Z-INDEX: 108; LEFT: 216px; POSITION: absolute; TOP: 142px" runat="server" Font-Size="Large" Text="Cargar Datos x Clave" Width="289px"></asp:button><asp:button id="btExecute" style="Z-INDEX: 109; LEFT: 220px; POSITION: absolute; TOP: 201px" runat="server" Text="Cargar Datos x Nombre" Font-Size="Large" Width="288px"></asp:button><asp:HyperLink id="HyperLink1" style="ZINDEX: 110; LEFT: 241px; POSITION: absolute; TOP: 266px" runat="server" Font-Size="Large" NavigateUrl="index.aspx" Width="256px">Volver a Pagina Principal</asp:HyperLink></FORM> </body> </HTML>

Tabla b.1.2. cargar.aspx de ASPxMysql.


Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 167 -

b.3. Sistema .NET con Postgres en Visual Studio.


<%@ Page Language="vb" AutoEventWireup="false" Codebehind="guardar.aspx.vb" Inherits="AspxPostgres.guardar"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <title>guardar</title> <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR"> <meta content="Visual Basic 7.0" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body bgColor="#ccff00" MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:hyperlink id="HyperLink1" style="Z-INDEX: 103; LEFT: 209px; POSITION: absolute; TOP: 512px" runat="server" NavigateUrl="inicio.aspx" Font-Size="XLarge" Width="349px">Volver a Pagina Principal</asp:hyperlink> <asp:textbox id="tbUser" style="Z-INDEX: 109; LEFT: 671px; POSITION: absolute; TOP: 113px" runat="server" Visible="False">root</asp:textbox><asp:textbox id="tbSQL" style="Z-INDEX: 100; LEFT: 673px; POSITION: absolute; TOP: 63px" runat="server" Width="274px" Visible="False" wrap="False" textmode="MultiLine" Font-Names="Courier New" Height="43px"> select * from prueba</asp:textbox> <asp:textbox id="tbPassword" style="Z-INDEX: 105; LEFT: 678px; POSITION: absolute; TOP: 147px" runat="server" Visible="False" TextMode="Password"> robotech</asp:textbox> <asp:textbox id="tbHost" style="Z-INDEX: 106; LEFT: 678px; POSITION: absolute; TOP: 187px" runat="server" Visible="False" ToolTip="localhost">localhost</asp:textbox> <asp:textbox id="tbPort" style="Z-INDEX: 107; LEFT: 674px; POSITION: absolute; TOP: 232px" runat="server" Visible="False">5432</asp:textbox> <asp:textbox id="tbDatabase" style="Z-INDEX: 108; LEFT: 671px; POSITION: absolute; TOP: 264px" runat="server" Visible="False">BD2</asp:textbox> <asp:datagrid id=dataGrid style="Z-INDEX: 101; LEFT: 109px; POSITION: absolute; TOP: 603px" runat="server" Font-Size="8pt" Width="700px" FontNames="Verdana" DataSource="<%# DataSet %>" CellPadding="3" BorderColor="Black" BackColor="Teal"> <HeaderStyle BackColor="#AAAADD"></HeaderStyle> </asp:datagrid> <DIV style="Z-INDEX: 102; LEFT: 25px; WIDTH: 10px; POSITION: absolute; TOP: 20px; HEIGHT: 10px" ms_positioning="FlowLayout"> <TABLE id="Table1" style="Z-INDEX: 102; LEFT: 10px; WIDTH: 700px; POSITION: absolute; TOP: 17px" cellSpacing="5" cellPadding="0" bgColor="#ccccff"> <TR><TD><asp:label id="lbTitle" runat="server" Font-Size="12pt" FontNames="Verdana" EnableViewState="False" Font-Bold="True" ForeColor="Navy"> Ingresar Peliculas Vistas</asp:label> </TD></TR>

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 168 -

</TABLE> <TABLE id="Table2" style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; Z-INDEX: 101; LEFT: 10px; FONT: 10pt verdana; BORDER-LEFT: black 1px solid; WIDTH: 611px; BORDER-BOTTOM: black 1px solid; POSITION: absolute; TOP: 65px; HEIGHT: 420px; BACKGROUND-COLOR: lemonchiffon" cellSpacing="15" cellPadding="0" bgColor="#cccc00"> <TR><TD style="WIDTH: 198px"><asp:label id="Label7" runat="server" FontSize="Medium" Width="71px" Font-Bold="True">Clave:</asp:label></TD> <TD><asp:textbox id="clave" runat="server"></asp:textbox></TD> </TR> <TR><TD style="WIDTH: 198px"><asp:label id="Label4" runat="server" FontSize="Medium" Width="198px" Font-Bold="True">Nombre Pelicula</asp:label> </TD> <TD><asp:textbox id="pelicula" runat="server"></asp:textbox></TD> </TR> <TR> <TD style="WIDTH: 198px"><asp:label id="Label3" runat="server" FontSize="Medium" Width="71px" Font-Bold="True">Actores</asp:label></TD> <TD><asp:textbox id="actor" runat="server"></asp:textbox></TD> </TR> <TR><TD style="WIDTH: 198px"><asp:label id="Label2" runat="server" FontSize="Medium" Width="71px" Font-Bold="True">Director</asp:label></TD> <TD><asp:textbox id="director" runat="server"></asp:textbox></TD></TR> <TR> <TD style="WIDTH: 198px"><asp:label id="Label5" runat="server" FontSize="Medium" Width="71px" Font-Bold="True">Descripcin</asp:label></TD> <TD><asp:textbox id="descripcion" runat="server" width="339px"> </asp:textbox></TD></TR> <TR><TD style="WIDTH: 198px"><asp:label id="Label6" runat="server" FontSize="Medium" Width="71px" Font-Bold="True"> Clasificacion </asp:label> </TD> <TD><asp:textbox id="clasifi" runat="server" Width="73px"></asp:textbox> </TD></TR> TR> <TD style="WIDTH: 198px"><asp:button id="btExecute" runat="server" FontSize="Large" Width="201px" Text="Insertar Pelicula"></asp:button></TD> <TD><asp:label id="mensaje" runat="server" Width="355px" Height="24px" EnableViewState="False" Font-Bold="True"></asp:label></TD></TR> <TR><TD style="WIDTH: 198px; HEIGHT: 2px"></TD> </TR> <TR><TD style="WIDTH: 198px"><asp:button id="cargar" runat="server" FontSize="Medium" Width="204px" Text="Peliculas Ingresadas"></asp:button> </TD></TR> </TABLE> <asp:image id="Image1" style="Z-INDEX: 103; LEFT: 1044px; POSITION: absolute; TOP: 28px" runat="server" Width="224px" Height="153px" ImageUrl="file:///D:\post.gif"></asp:image> </form> </DIV> </body> </HTML>

Tabla b.2.1. insertar.aspx de AspxPost.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 169 -

Public Class buscar Inherits System.Web.UI.Page Protected WithEvents lbResult As System.Web.UI.WebControls.Label Protected WithEvents tbSQL As System.Web.UI.WebControls.TextBox Protected WithEvents tbUser As System.Web.UI.WebControls.TextBox Protected WithEvents tbPassword As System.Web.UI.WebControls.TextBox Protected WithEvents tbHost As System.Web.UI.WebControls.TextBox Protected WithEvents tbPort As System.Web.UI.WebControls.TextBox Protected WithEvents tbDatabase As System.Web.UI.WebControls.TextBox Protected WithEvents Image1 As System.Web.UI.WebControls.Image Protected WithEvents dataGrid As System.Web.UI.WebControls.DataGrid Protected WithEvents HyperLink1 As System.Web.UI.WebControls.HyperLink Protected WithEvents PgSqlCommand As CoreLab.PostgreSql.PgSqlCommand Protected WithEvents PgSqlConnection As CoreLab.PostgreSql.PgSqlConnection Protected WithEvents PgSqlDataAdapter As CoreLab.PostgreSql.PgSqlDataAdapter Protected WithEvents PgSqlCommandBuilder As CoreLab.PostgreSql.PgSqlCommandBuilder Protected WithEvents DataSet As System.Data.DataSet Protected WithEvents Label2 As System.Web.UI.WebControls.Label Protected WithEvents boton2 As System.Web.UI.WebControls.Button Protected WithEvents pelicula As System.Web.UI.WebControls.TextBox Protected WithEvents Label3 As System.Web.UI.WebControls.Label Protected WithEvents clave As System.Web.UI.WebControls.TextBox Protected WithEvents Label7 As System.Web.UI.WebControls.Label Protected WithEvents boton1 As System.Web.UI.WebControls.Button #Region " Web Form Designer Generated Code " <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.PgSqlCommand = New CoreLab.PostgreSql.PgSqlCommand() Me.PgSqlConnection = New CoreLab.PostgreSql.PgSqlConnection() Me.PgSqlDataAdapter = New CoreLab.PostgreSql.PgSqlDataAdapter() Me.PgSqlCommandBuilder = New CoreLab.PostgreSql.PgSqlCommandBuilder() Me.DataSet = New System.Data.DataSet() CType(Me.DataSet, System.ComponentModel.ISupportInitialize).BeginInit() Me.PgSqlCommand.CommandText = "SELECT * FROM prueba" Me.PgSqlCommand.Connection = Me.PgSqlConnection Me.PgSqlCommand.Name = "PgSqlCommand" Me.PgSqlConnection.ConnectionString = "User Id=root;Database=BD2;Host=localhost;Password=robotech;" Me.PgSqlConnection.Name = "PgSqlConnection" Me.PgSqlDataAdapter.SelectCommand = Me.PgSqlCommand Me.PgSqlCommandBuilder.DataAdapter = Me.PgSqlDataAdapter Me.PgSqlCommandBuilder.UpdatingFields = "" Me.DataSet.DataSetName = "NewDataSet" Me.DataSet.Locale = New System.Globalization.CultureInfo("ru-RU") CType(Me.DataSet, System.ComponentModel.ISupportInitialize).EndInit() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub BindGrid() DataSet.Clear() PgSqlDataAdapter.Fill(DataSet, "Table") dataGrid.DataSource = DataSet.Tables.Item("Table").DefaultView dataGrid.DataBind() End Sub Private Sub boton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles boton1.Click Dim sclave, mensaje As String sclave = clave.Text lbResult.Visible = True Try PgSqlConnection.UserId = tbUser.Text PgSqlConnection.Password = tbPassword.Text PgSqlConnection.Host = tbHost.Text PgSqlConnection.Port = CInt(tbPort.Text) PgSqlConnection.Database = tbDatabase.Text PgSqlCommand.CommandText = " select * from prueba where (prueba.""Clave"" = '" & sclave & "')" BindGrid() lbResult.Text = "Pelicula Encontrada"

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 170 -

lbResult.Visible = True Catch exception As Exception lbResult.Visible = True lbResult.Text = "Pelicula a no Existente o no Ingresada" lbResult.Text = exception.Message End Try End Sub Private Sub boton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles boton2.Click Dim spelicula As String spelicula = pelicula.Text lbResult.Visible = True Try PgSqlConnection.UserId = tbUser.Text PgSqlConnection.Password = tbPassword.Text PgSqlConnection.Host = tbHost.Text PgSqlConnection.Port = CInt(tbPort.Text) PgSqlConnection.Database = tbDatabase.Text PgSqlCommand.CommandText = " select * from prueba where (prueba.""Nombre"" = '" & spelicula & "')" BindGrid() lbResult.Text = "Pelicula Encontrada" lbResult.Visible = True Catch exception As Exception lbResult.Text = "Pelicula no Existente o no Ingresada" lbResult.Text = exception.Message End Try End Sub End Class

Tabla b.2.2. buscar.vb de AspxPost.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 171 -

Anexo C.
c. Realizacin de Pruebas Anexas.

c.1. Prueba Anexa Aprendizaje. Adems de las pruebas detalladas en el captulo 12

Desarrollo de Pruebas de

Comparacin entre las Plataformas J2EE y .NET. Se realiz la bsqueda de material afn a las plataformas en estudio, en el se destac la orientacin dada por la Universidad Catlica de Temuco a la programacin.

Esta bsqueda arroj:

Material relacionado con J2EE: directamente un documento: Programacin JAVA Server con J2EE. Para informacin relacionada con el concepto java la biblioteca arroj 43 documentos relacionados.

Documentos relacionados con Microsoft .NET solo arroj documento afn: Microsoft Visual Studio.NET Step by Step, de Michael Halvorson.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 172 -

Anexo D.
d. Estudio de la Web Chilena.

La Web Chilena 2004


Ricardo Baeza-Yates Carlos Castillo Centro de Investigacin de la Web Departamento de Ciencias de la Computacin Universidad de Chile

Resumen Ejecutivo. En Diciembre del 2004 recorrimos la Web chilena usando el sistema WIRE, desarrollado en el CIW. Los siguientes puntos resumen algunos de los principales hallazgos de este estudio: La Web chilena est compuesta de ms de 50.000 sitios, y estos sitios contienen ms de 3 millones de pginas.

Cerca de 1/4 de las pginas chilenas fue creada o actualizada en el ltimo ao, lo que implica un alto grado de crecimiento y dinamicidad.

Los pases ms referenciados desde Chile son Estados Unidos, Brasil, Argentina, Espaa, Reino Unido y Alemania, y el nmero de referencias a pases extranjeros est relacionado con el volumen de exportaciones. Las excepciones ms importantes a esta regla son tres pases con los cuales el

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 173 -

intercambio comercial supera al nmero de enlaces predicho: China, Corea y Japn.

Los sitios con ms referencias son el Servicio de Impuestos Internos, la Universidad de Chile, el Ministerio de Educacin, el Servicio de Meteorologa y la Universidad Catlica.

Los proveedores de hosting con mayor nmero de sitios son Tie, VirtuaByte, Entel, TChile, Lycos, Tecnoera, PuntoWeb y Netline.

Respecto a la calidad de las pginas y sitios:

El 10% de los sitios ms grandes contienen el 95% de la informacin en la Web chilena (medida en el nmero de bytes contenidos en sus pginas).

Casi el 13% de los sitios de Chile no son fciles de encontrar ya que estn hechos con Flash o Javascript, lo que no permite que los buscadores entren a esos sitios, con lo que parecen tener slo una pgina.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 174 -

En su seccin 2.6.

2.6. Pginas dinmicas.

Cerca del 38% de las pginas descargadas eran pginas dinmicas. La aplicacin ms usada para generarlas es PHP, seguida de ASP y pginas generadas usando Java (.jhtml y .jsp).

PHP, una tecnologa de cdigo abierto, claramente domina el mercado. Las pginas dinmicas son construidas principalmente usando tcnicas de pre-procesamiento de hipertextos (PHP, ASP, JHTML, ColdFusion), en que los comandos para generar el contenido dinmico, como accesos a bases de datos, estn incrustados en documentos que son principalmente cdigo HTML. Debe ser considerado tambin que algunas de las pginas que se ven como pginas estticas, incluso con terminacin .html, son en realidad generadas automticamente usando procesamiento por lotes, con sistemas de

administracin de contenidos, as que hay otras tecnologas de contenido dinmico que pueden estar faltando en este anlisis.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 175 -

Anexo E.
e. Consideraciones Estadsticas de Rendimiento. Para poder determinar que pruebas pueden demostrar ciertos aspectos dentro del rendimiento de aplicaciones se considerar el modelo estadstico para el anlisis de sitios Web ofrecidos por Jos Emilio Gondar Nores de DataMining Institute y otros de anlisis en general como los ofrecidos en www.deltablog.com.

Para Rendimiento de capacidad de respuesta: Se necesitan pruebas que determinen los tiempos entre la peticin cliente y la respuesta servidor. Lo cual debe mantener un promedio considerando ciertos aspectos como:

Algunos estudios estadsticos dejan algunos datos i acerca de la cantidad de cdigo necesario para realizar una misma tarea en cada plataforma. Segn los datos del siguiente estudio del Software Productivity Research

(http://www.gotdotnet.com/team/compare/petshop.aspx), J2EE necesita ms lneas de cdigo que .NET para realizar la misma funcionalidad. A la hora de codificar un determinado punto de funcin en Java necesitaron unas 53 lneas de cdigo, mientras que en .NET slo hicieron falta 16 lneas, del mismo modo para la implementacin de una aplicacin seleccionada se necesitaron 3.484 lneas en .NET y 14.273 en Java. (Fte DeltaBlog)

Considerando estos aspectos las pruebas de rendimiento deberan considerar:

- Capacidad de respuesta del servidor utilizado.

- Capacidad de respuesta de acceso al servidor que aloja datos en algn motor de BD.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 176 -

- Capacidad de respuesta sobre ejecucin de objetos presentados por las distintas arquitecturas.

- Considerar el promedio de consumo de recursos sobre el hardware donde se ejecutan las pruebas.

- Considerar margenes de error con respecto a la cantidad de pruebas definidads

- Son adecuadas las pruebas definidas para demostrar las conclusiones demostradas.

- Se dispone de datos adicionales que corroboren los resultados obtenidos.

Cometarios Las Pruebas definidas en este estudio estn basadas en cuanto al estudio definido sobre las plataformas de desarrollo Sun J2EE y Microsft .NET. Haciendo referencia a la bibliografa y documentos que apoyaron esta investigacin, se puede comentar que stas pruebas son las pruebas bsicas que se pueden considerar para medir de manera correcta las capacidades de las plataformas en cuestin.

Cada prueba definida se bas en el modelo de ejecucin de una misma mquina habilitada como servidor, con la utilizacin de distintos servidores WEB para el despliegue de estas aplicaciones, los distitntos IDEs analizados para ambas plataformas y el diseo y desarrollo de aplicaciones que pueden demostrar superioridades con respecto a las reas de comparacin definidas. Puede que stas no sean suficientes para un mbito general de comparacin, pero si cubre los aspectos importantes en un anlisis Web.

Evaluacin Comparativa entre J2EE y .NET en Aplicaciones Web

- 177 -

You might also like