“Evaluación Comparativa de aplicaciones Web entre … · UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD...

198
UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD DE INGENIERIA “Evaluación Comparativa de aplicaciones Web entre J2EE y Microsoft.NET” por MIGUEL ANGEL GARRIDO PINO Trabajo de Título presentado a la Facultad de Ingeniería de la Universidad Católica de Temuco Para Optar al Título de Ingeniero de Ejecución en Informática - Temuco, 2006 –

Transcript of “Evaluación Comparativa de aplicaciones Web entre … · UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD...

UNIVERSIDAD CATOLICA DE TEMUCO

FACULTAD DE INGENIERIA

“Evaluación Comparativa de aplicaciones Web

entre J2EE y Microsoft.NET”

por

MIGUEL ANGEL GARRIDO PINO

Trabajo de Título presentado a la

Facultad de Ingeniería de la Universidad Católica de Temuco

Para Optar al Título de Ingeniero de Ejecución en Informática

- Temuco, 2006 –

UNIVERSIDAD CATOLICA DE TEMUCO

FACULTAD DE INGENIERIA

COMISIÓN EXAMEN DE TITULO

Este Examen de Título ha sido realizado en la Escuela de Informática. Presidente Comisión : ............................................................................... Sr. Oriel Herrera Gamboa

Ingeniero Civil Industrial M / Informática Doctor (c) En Ciencias de la Computación

Profesor Guía: ...............................................................................

Sr. Gustavo Donoso Montoya Ingeniero Civil Informático

Profesor Informante : ...............................................................................

Sr. Alejandro Mellado Gatica Ingeniero de Ejecución en Informática

Magíster en Telecomunicaciones Secretario Académico: ............................................................................... Escuela de Informática Sr. Luís Alberto Caro Saldivia

Ingeniero Civil en Informática

Temuco Enero 2006.

FACULTAD DE INGENIERÍA

ESCUELA DE INGENIERÍA INFORMÁTICA

INFORME TRABAJO DE TÍTULO

TÍTULO : EVALUACION COMPARATIVA DE APLICACIONES WEB ENTRE J2EE

Y MICROSOFT.NET

ALUMNO : MIGUEL ANGEL GARRIDO PINO

En mi condición de profesor guía de este trabajo puedo efectuar las siguientes observaciones:

• El alumno Miguel Garrido, en el transcurso del desarrollo del proyecto, mostró una buena disposición al trabajo, fue constante en el desarrollo del mismo y obtuvo resultados.

• También, como profesor guía pienso que los temas podrían haberse trabajado desde una perspectiva más técnica y con mayor profundidad, en algunos aspectos. Por ejemplo, en las búsquedas de conceptos sobre motores es débil ya que no considera explícitamente 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 estadísticas explícitas lo que, de igual forma que en el caso de la sinonimia, le resta peso a los resultados.

• Los dos aspectos anteriores le restan méritos al esfuerzo desplegado y evidencian falencias en esta área específica, 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 síntesis, el uso de lenguaje técnico y la precisión de las referencias bibliográficas, en algunos casos.

• En general pienso que si bien Miguel Garrido tiene los merecimientos necesarios para ser considerado Ingeniero de Ejecución podría 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 Título con nota 6,0 (seis coma cero). ________________________________ Gustavo Andrés Donoso Montoya

Profesor Guía Temuco, 17 de enero del 2006

UNIVERSIDAD CATÓLICA DE TEMUCO

FACULTAD DE INGENIERÍA

INFORME TRABAJO DE TÍTULO

TÍTULO : “Evaluación Comparativa de aplicaciones WEB entre J2EE y Microsoft.NET”

ALUMNO : Miguel Angel Garrido Pino En mi condición de profesor informante de este trabajo puedo efectuar las siguientes observaciones:

• El trabajo esta bien estructurado, detallado y se han usado las herramientas metodológicas de manera adecuada.

• Se han cumplido los objetivos.

• Esta investigación comparativa ha sido rigurosa tanto en el estudio teórico como el

práctico.

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, además 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 más cercanos, quienes estuvieron a mi lado durante todo

este tiempo, gracias por su compañía. Además a todas las personas que de una

u otra forma estuvieron relacionadas en el cumplimiento de este sueño.

También mensionar a la persona a la cual siempre quise, gracias por compartir

conmigo muchos de éstos momentos.

Para todos ustedes mis agradecimientos.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web i

ÍNDICE

Índice……………………………………………………………………………….….…….i

Índice de Figuras..................................................................................................................ix

Índice de Tablas………………………………………………………………………..….xi

Índice de Anexos……………………………………………………………….………...xiii

Síntesis....…………………...………………………………………………………….......xv

1. Introducción…………………………………………………………………….........…..1

2. Objetivos del Proyecto…………………………………………………………………..5

2.1. Objetivo General…………………………..………………………………........6

2.2. Objetivos Específicos…….…....…….…………………………………….........6

2.3. Descripción 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 Pontifícia Universidad Católica de Chile…………...10

4. Introducción a la Plataforma JAVA…………………………………….…….……....12

4.1. Introducción…..…..…..…..…..…..……………………………………………13

4.2. La Máquina Virtual de JAVA.....…..…..…..…..….…..…..…..…..…..…........14

4.3. Herramientas de Desarrollo…..…..…..…..…..…..…..…..…..…..…...….........14

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web ii

4.3.1 Tipos de Herramientas de Aplicación…….…..…..…..…..…..……..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. Definición de JAVA2 EE………………………………...……………………17

4.5.2. Componentes de Arquitectura J2EE…..…………………….….........19

4.5.2. Principales API’s de Arquitectura J2EE.......………………………...20

4.5.3. Características de J2EE…..…………………………………….........22

4.5.4. Tipos de Aplicaciones J2EE….……………………………………...23

4.5.5. Acceso a Datos en J2EE……………………….....…….….………...26

5. Introducción a La Plataforma Microsoft .NET………………………………………27

5.1. Introducción…………………………………………….……………………...28

5.2. Desarrollo de Aplicaciones en .NET……………………………………..……29

5.3. Programación WEB con Microsoft.Net…………………………………….…31

5.4. Introducción a .NET Framework……………..…………………………..........32

5.4.2. Descripción de la Arquitectura .NET Framework.……..…………....33

5.4.2.1. CLR, Common Language Runtime………………………..34

5.4.3. Implementación WEB con la Arquitectura Framework.NET……….35

5.5. Acceso a datos en Microsoft .NET……………………………………...……..36

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web iii

6. Introducción a la Comparación de las plataformas J2EE y .NET…..…....………...37

6.1. Introducción……………………………………………………………………38

6.2. Análisis de las Compañías……………………………………………………..39

6.4. Delimitación de la Comparación Web……………………………….………..41

6.5. Páginas dinámicas en J2EE…….……………………………………………...42

6.5.1. Requisitos de JSP…………………………………………….........…43

6.6. Páginas dinámicas en .NET…………………………………………………....44

6.6.1. Web Forms…………………………………………………………..44

7. Programas de Desarrollo para las Plataformas J2EE y .NET………………………46

7.1. Introducción. …………………………………………………………………..47

7.2. Principales IDE’s de Desarrollo en J2EE. ……………………………….........48

7.2.1. Netbeans. ………...…………………………………………..49

7.3. Desarrollo en Microsoft.NET con Visual Studio……………………………...50

8. Elección de IDE’s de Desarrollo para las Plataformas J2EE y .NET……………...51

8.1. Introducción. …………………………………………………………………..52

8.2. Elección de IDE de Desarrollo para J2EE. ……………………………………53

8.3. Elección de IDE de Desarrollo para .NET……………………………….........53

8.4. Principales Características de IDE’s Seleccionados. ……………………........54

9. Áreas de Evaluación de las Plataformas J2EE y .NET……………............................55

9.1. Introducción. …………………………………………………….………….....56

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web iv

9.2. Definición de Áreas de Evaluación. ………………………………..…………57

9.2.1. Definición de Áreas de Evaluación 1: Aprendizaje…………..……..57

9.2.1.1. Criterios de Aprendizaje. ……………………………….....57

9.2.2. Definición de Áreas de Evaluación 2: Rendimiento………………...58

9.2.2.1. Criterios de Rendimiento. …………………………………58

9.2.3. Definición de Áreas de Evaluación 3: Explotación y Uso...………...59

9.2.3.1. Criterios de Explotación. ………………………….………59

9.2.4. Definición de Áreas de Evaluación 4: Desarrollo. …………….……60

9.2.4.1. Criterios de Desarrollo. …………………………………....60

9.2.5. Definición de Áreas de Evaluación 5: Uso de Licencias……….........61

9.2.5.1. Criterios de Licencia Libre………………………………...61

9.2.6. Definición de Áreas de Evaluación 6: Compatibilidad……………...62

9.2.6.1. Criterios de Compatibilidad…………………………..........62

9.3. Definición de Criterios………………………………………………………...63

9.3.1 Definición de Criterios de Aprendizaje………………………............63

9.3.1.1. Información Disponible……………………………………63

9.3.1.2. Información Disponible en Español. ………………...........63

9.3.1.3. Curva de Aprendizaje……………………………………...63

9.3.2. Definición 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 Mínimos. ………………..……..64

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web v

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 Mínimos. ………….…….……...65

9.3.2.2.4. Escalabilidad……..……………….……………...65

9.3.2.2.5. Componentes Necesarios. ……….……….……...65

9.3.3. Definición de Criterios de Explotación y Uso……………….………65

9.3.3.1. Curva de Explotación………………………………………66

9.3.3.2. Uso de la Tecnología………………….…………………...66

9.3.3.3. Distribución……………………………….……………….66

9.3.4. Definición de Criterios de Desarrollo…………………..……………67

9.3.4.1. Interfaz de Usuario……………………………..…………..67

9.3.4.2. Accesibilidad..……………………………………………..67

9.3.5. Definición de Criterios de Uso de Licencias………………………...67

9.3.5.1. Licencia Libre. ……………………………..……………...68

9.3.5.2. Código Abierto. ……………………………….…………..68

9.3.5.3. Costos…………………………………………….………..68

9.3.6. Definición de Criterios de Compatibilidad. ………………….……..68

9.3.6.1. Portabilidad……………………………………………..….69

9.3.6.2. Navegadores Web………………………………………….69

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web vi

10. Postulados de Comparación de las Plataformas J2EE y .NET……………….........70

10.1. Introducción. …………………………………………………………………71

10.2. Ventajas y Desventajas……………………………………………………….72

10.3. Postulados de Comparación………………………………………….………72

10.2.2.1. Postulado de Comparación 1……………………….….…72

10.2.2.2. Postulado de Comparación 2…………………………..…74

10.2.2.3. Postulado de Comparación 3……………………………..74

10.2.2.4. Postulado de Comparación 4…………….…………….…75

10.2.2.5. Postulado de Comparación 5……………….………….…76

10.2.2.6. Postulado de Comparación 6………………….……….…78

10.2.2.7. Postulado de Comparación 7…………………….…….…79

10.2.2.8. Postulado de Comparación 8……………………….….…80

10.4. Resumen de Postulados……………………………………………................81

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

11.1. Introducción……………………………………………………..……………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. Introducción…………………………………..…………………….88

11.3.2. Conexión a base de datos con JDBC. …………..…………….........89

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web vii

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. Información Adicional……………………………………..…….....93

11.4. Aplicaciones Web con base de datos en .NET…………………………...…..94

11.4.1. Introducción…………………………………………………...........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. Información Adicional. …………………………………..……….101

12. Desarrollo de Pruebas de Comparación entre las plataformas…………….…….102

12.1. Introducción..…………………………………………………………..……103

12.2. Diseño de Pruebas Comparativas ……..………………………………........104

12.2.1. Diseño de Pruebas de Aprendizaje………………………………..104

12.2.2. Diseño de Pruebas de Rendimiento. ……..……………………….105

12.2.3. Diseño de Pruebas de Explotación y Uso…………………………106

12.2.4. Diseño de Pruebas de Desarrollo. ……………..………………….106

12.2.5. Diseño de Pruebas de Uso de Licencias. ………….……………...106

12.2.6. Diseño de Pruebas de Compatibilidad. ………………..……….....107

12.3. Creación Tablas de Evaluación y Resultados. ……………………..………107

12.4. Ejecución y Resultados de Pruebas Comparativas……………………..…..109

12.4.1. Ejecución y Resultados Pruebas de Aprendizaje…………………109

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web viii

12.4.1.3. Información adicional a la tabla. …..……………………112

12.4.2. Ejecución y Resultados Pruebas de Rendimiento……..………….112

12.4.2.4. Automatización de Prueba………………………..……..118

12.4.3. Ejecución y Resultados Pruebas de Explotación y Uso……….…120

12.4.3.2. Automatización de Prueba………………………..……..122

12.4.4. Ejecución y Resultados Pruebas de Desarrollo……………….….124

12.4.5. Ejecución y Resultados Pruebas de Uso de Licencias…………...126

12.4.6. Ejecución y Resultados Pruebas de Compatibilidad……………..127

13. Conclusiones Finales de Pruebas Realizadas………………………………………130

13.1. Introducción………………………………………………………………....131

13.2. Conclusiones de Pruebas de Aprendizaje………………………………..….132

13.3. Conclusiones de Pruebas de Rendimiento…………………………..………134

13.4. Conclusiones de Pruebas de Explotación 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. Conclusión…………………………………………………………………………....147

15. Bibliografía…………………………………………………………………………..152

Anexos…………………………………………………………….……………………...155

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web ix

ÍNDICE DE FIGURAS.

3. Estudios de Apoyo al Proyecto.

3.2.1. Figura 1: Estudio CetiUC………………………………………..…………..11

4. Introducción a la Plataforma JAVA.

4.2.1. Figura 2: Esquema Máquina Virtual JAVA….………………………..…….14

4.5.1. Figura 3: Esquema de Aplicación 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. Introducción 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 Aplicación Web con Base de Datos……………….…84

11.3.2.2 Figura 12: Vista de programación en Netbeans………………….……….89

11.4.1.1. Figura 13: Vista de programación en Visual Studio.NET…………..……95

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web x

12. Desarrollo de Pruebas de Comparación entre las plataformas.

12.4.1.1. Figura 14: Curva de Aprendizaje………………………….……………111

12.4.2.1. Figura 15: Gráfica rendimiento normal...…………………….....………113

12.4.2.2. Figura 16: Gráfica ejecución Netbeans………………………….….…..113

12.4.2.3. Figura 17: Gráfica ejecución Visual Studio.NET…………………....…114

12.4.2.4.1. Figura 18: Automatización Rendimiento primera instancia……..……118

12.4.2.4.2. Figura 19: Automatización Rendimiento segunda instancia……….....119

12.4.2.4.3. Figura 20: Automatización Rendimiento resultados……………….....119

12.4.3.1. Figura 21: Gráfica Explotación Estudio U. de Chile 2004…………..….122

12.4.3.2.1. Figura 22: Automatización Explotación………………………..……..123

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web xi

Í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: IDE’s Desarrollo J2EE…………………..…..48

8. Elección de IDE’s de desarrollo para las Plataformas .NET y J2EE.

8.4.1. Tabla 5: Tabla Comparativa 2: Principales Características………………….54

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

11.3.2.1. Tabla 6: Ejemplo Conexión Base de Datos Postgres…………………….89

11.3.3.1. Tabla 7: Código cargar.jsp de proyecto JSPMysql……………………....90

11.3.4.1. Tabla 8: Código eliminar.jsp de proyecto BaseWeb…………………..…91

11.3.5.1. Tabla 9: Código insertar.jsp de proyecto JSPpost…………………..........92

11.4.2.1. Tabla 10: Parte código inicio.aspx de proyecto ASPxMysql…………….96

11.4.2.2. Tabla 11: Parte código inicio.vb de proyecto ASPxMysql……………....96

11.4.3.1. Tabla 12: Parte código insertar.aspx de proyecto ASPAccess……..........98

11.4.4.1. Tabla 13: Parte código insertar.vb de proyecto ASPpost……………….100

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web xii

12. Desarrollo de Pruebas de Comparación entre las Plataformas J2EE y .NET.

12.3.1. Tabla 14: Tabla de Evaluación de Criterios…………………………........108

12.3.2. Tabla 15: Tabla de Resultados………………………………………........108

12.4.1.2. Tabla 16: Tabla de Evaluación 1: Pruebas de Aprendizaje…..…………111

12.4.2.5. Tabla 17: Tabla de Evaluación 2: Pruebas de Rendimiento……..……...120

12.4.3.3. Tabla 18: Tabla de Evaluación 3: Pruebas de Explotación 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 Evaluación 4: Pruebas de Desarrollo………………126

12.4.5.1. Tabla 22: Tabla de Evaluación 5: Pruebas de Uso de Licencias…….…127

12.4.6.1. Tabla 23: Tabla de Evaluación 6: Pruebas de Compatibilidad………....129

13. Conclusiones Finales de Pruebas Realizadas.

13.2.1. Tabla 24: Tabla Resultados 1: Aprendizaje J2EE v/s .NET………………133

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

13.4.1. Tabla 26: Tabla Resultados 3: Explotación 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. Conclusión.

14.1. Tabla 30: Conclusiones Finales……………………………………………..149

14.2. Tabla 31: Ventajas y Desventajas J2EE……………………………………150

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web xiii

INDICE DE ANEXOS

Anexo A. Códigos 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. Códigos .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. Realización de Pruebas Anexas.

c.1. Pruebas anexas de Aprendizaje………….…………………………….……..172

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web xiv

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 Estadísticas de Rendimiento………………………………....176

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web xv

Síntesis El presente trabajo tiene como objetivo informar al lector que aspectos y conocimientos se

necesitan para seleccionar la tecnología que se debe utilizar, para implementar de mejor

manera el desarrollo de aplicaciones Web, obteniendo los mejores resultados con la

optimización de los recursos necesarios para desarrollar dicha tarea.

Para esto, en un principio se contempló la investigación y estudio en profundidad de las dos

plataformas de desarrollo más utilizadas en el mercado, J2EE y Microsoft.NET. Con esta

información, adquirida por medio de la búsqueda y estudio a través de distintos manuales y

sitios dedicados al tema, podrán familiarizar al usuario con estas tecnologías. Así, se

distinguirán las necesidades, requerimientos y aspectos importantes que se deben conocer

para dedicarse por completo a una de estas plataformas de desarrollo en la realización de

este tipo de aplicaciones.

Posteriormente se crearán áreas de evaluación, dentro de las cuales se definen ciertos

criterios de comparación adquiridos en el proceso de este trabajo. Esto se plasma en tablas

comparativas, las cuales permiten dar un componente de certeza sobre esta investigación.

Esto, junto a la realización de pruebas definidas, ayuda a obtener conclusiones sobre el

comportamiento y funcionalidad de aplicaciones de ambiente Web en estas tecnologías, 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 permitirán reflejar de manera práctica aspectos

que permitan resolver la elección de que tecnología ocupar.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 1 -

1. Introducción.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 2 -

El avance informático a través del tiempo es cada vez más vertiginoso y caótico. Mientras

ocurren los hechos, la tecnología, las plataformas de trabajo y los lenguajes de

programación avanzan a velocidades que difícilmente se lograría estar al tanto de todo. En

esta carrera, se debe estar atento a tales cambios y avances para no quedar atrás para así

poder competir y mantenerse dentro de este ambiente. En la utilización de tecnologías de

información, el uso del Web es primordial. El poder tener aplicaciones que puedan

mantener procesos difícilmente llevados por otro medio y, que estén 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 programación, son dos las plataformas que destacan sobre el resto,

siendo las más utilizadas y aprobadas por los usuarios. J2EE, una mejoría importante del

lenguaje de programación Java, y .NET, la nueva tecnología de Microsoft, que implementa

de mejor manera aplicaciones desarrolladas en el pasado por esta empresa, se imponen

fuertemente en el mercado de desarrollo ocupando más de la mitad de éste por sobre otras

plataformas de diseño.

Tanto las empresas como los usuarios relacionados con el desarrollo de aplicaciones Web,

ocupan estas tecnologías, las familiarizadas con tecnología open source y de sistemas

operativos Linux utilizan la tecnología JAVA, que no presenta problemas con sus

aplicaciones y sistemas desarrollados, teniendo el mismo rendimiento en Sistemas

Microsoft.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 3 -

Por su parte ésta última, con el lanzamiento de la tecnología .NET ha absorbido la mayor

parte del desarrollo de aplicaciones de la mediana y pequeña empresa sin menospreciar las

grandes corporaciones que han hecho suya esta norma.

Pues bien, a la hora de abordar algún problema Web, ¿Qué tecnología se debe adoptar?,

¿Qué plataforma de trabajo es mejor? ¿Y por qué?, ¿Por qué elegir una, y no la otra?, ¿Qué

plataforma requiere más recursos, tanto humanos como técnicos?, ¿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 técnicas, teóricas y

prácticas. Poniéndose en lugar del usuario y partiendo desde el inicio con cada una de las

tecnologías, entregando una orientación comparativa entre ambas, analizando diferencias y

parecidos en cada área de aplicación, para ser utilizado de manera específica 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 capítulo 2 se presentan

los objetivos de este trabajo. En el capítulo 3 se mencionan estudios de apoyo a este

proyecto. En los capítulos 4 y 5 se entrega la información necesaria para el conocimiento e

interiorización sobre cada plataforma de desarrollo, tanto J2EE como .NET. En el capítulo

6 se hace una comparación preliminar de las tecnologías. En los capítulos 7 y 8 se hace

referencia a los programas de desarrollo de aplicaciones sobre estas plataformas y la

elección de éstos para seguir con el proceso de evaluación comparativa.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 4 -

En el capítulo 9 se detallan las áreas de evaluación en las cuales se basará la comparación

de ambas plataformas. En el capítulo 10 se describen postulados de comparación que

demuestran ventajas y desventajas sobre estas tecnologías de desarrollo. Posteriormente en

el capítulo 11, se explica el desarrollo Web de aplicaciones con manejo de bases de datos y

la creación de este tipo de sistemas tanto para J2EE como .NET.

En el capítulo 12 se crean y detallan las pruebas de comparación a realizar basadas en los

criterios definidos anteriormente. En el capítulo 13 se definen las conclusiones sobre los

criterios en base a los resultados obtenidos en la fase de pruebas, para luego describir los

aspectos más importantes de este proyecto. Dejando para el capítulo 14 la conclusión final

de este trabajo.

En los anexos a esta investigación se tiene. Para los Anexos A y B, se encuentran algunos

de los códigos más representativos de los sistemas Web desarrollados en las distintas etapas

de esta evaluación comparativa-práctica. Para la plataforma J2EE, Anexo A, y para

Microsoft .NET el Anexo B. Dentro del Anexo C se encuentran pruebas anexas no incluías

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 año 2004 y para la

documentción final, el Anexo D, las Consideraciones Estadísticas de Rendimiento.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 5 -

2. Objetivos Del Proyecto.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 6 -

En el trabajo que se presenta a continuación se contemplan los siguientes objetivos. Estos

se desarrollaran a través del avance de la investigación, para lo cual se han definido en los

capítulos de esta investigación, lo necesario para poder establecer las pautas de

comparación necesarias para ambas plataformas de desarrollo.

Estos objetivos son:

2.1. Objetivo General.

El Objetivo principal de este proyecto es realizar un análisis comparativo-práctico de las

plataformas de desarrollo J2EE y .NET en Aplicaciones Web.

2.2. Objetivos Específicos.

A partir del Objetivo General establecido se pueden definir ciertos objetivos específicos los

cuales permitan un buen desarrollo de la investigación. Estos son:

• Investigar, documentar y clasificar información relacionada con el tema.

• Establecer un diseño de comparación en cada área, que permita identificar

ventajas y desventajas de estos lenguajes.

• Realizar un análisis comparativo, desarrollando módulos de comparación 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 7 -

Mediante estos puntos se quiere dar respuesta al planteamiento propuesto, lo cual conlleva

a poner en práctica la información recolectada en la primera etapa del proyecto para luego

ir desarrollando los temas posteriores definiendo una metodología de comparación y

estableciendo los criterios que se implementarán en la etapa de pruebas.

2.3. Descripción 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 tecnologías en las cuales trabajan o prestan servicio.

Además cabe señalar 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 consideración, se determinó ser un medio de respuesta a la interrogante

de decisión de desarrollo, la cual fuese posible demostrar mediante el estudio y posterior

creación de áreas de evaluación y criterios que permitan demostrar en base a pruebas, que

tecnología tiene un mejor evaluación frente a la otra en aspectos de diseño, desarrollo y

ejecución de aplicaciones Web.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 8 -

3. Estudios de Apoyo al Proyecto.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 9 -

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 investigación personal en la cual desarrolla módulos de

comparación a grandes rasgos en los cuales definía algunos ítems a considerar.

En la página http://www.ciberteca.NET/articulos/programacion/net/ se encuentran algunos

aspectos de su experiencia en ámbitos de: apoyo de compañías, analogías y diferencias,

madurez de la plataforma y otras. En breves capítulos ofrece una orientación, de, lo que a

su parecer, cree que son aspectos importantes a la hora de comparar a ambas plataformas de

desarrollo.

En su investigación ahonda en aspectos técnicos como en el tipo de compilación utilizada y

bajo que arquitectura se escriben los códigos, no necesariamente definidos para alguna

aplicación de tipo Web, sino más bien en características generales. Considerando este

estudio para ser llevado por grandes empresas que cuenten con presupuestos notorios a la

hora de montar alguna aplicación bajo estas tecnologías.

Por esto, este documento sirvió de orientación y guía para algunos aspectos de la

investigación realizada, con la exclusión del componente personal ya que este pareciese no

ser totalmente objetivo, para lo cual solo se consideró los aspectos comparativos y no sus

conclusiones.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 10 -

3.2 Estudio realizado por La Pontificia Universidad Católica de Chile.

La Pontificia Universidad Católica de Chile realizó un estudio llamado “Estudio Nacional

sobre Tecnologías de la Información” en el año 2004 a través de Cetiuc, (Centro de

estudios de tecnologías de información de la Universidad Católica), el cual determinó las

tecnologías utilizadas por las empresas nacionales, las en expansión y las que están en

algún proceso de utilización.

En ella se analizaron distintas empresas a lo largo del país comprendiendo 481 empresas

nacionales y multinacionales con presencia en el país, cuya facturación anual fuese igual o

superior a MMUS$ 2.5, e instituciones pertenecientes al Gobierno. Estas compañías

corresponden al ranking de empresas publicado en el diario Estrategia el 31 de marzo del

año 2004, un conjunto de firmas de facturación acorde a la definición del universo de

estudio, y organismos de Gobierno, excluyendo a Ministerios, Subsecretarías y

Municipalidades.

En su sección ¿Qué tecnologías se pretenden incorporar?, arrojó los resultados mostrados

en la Figura 1.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 11 -

3.2.1. Figura 1: Estudio CetiUC

Este estudio de la Universidad Católica sirve de apoyo a este trabajo de investigación,

considerando a ambas plataformas como las más utilizadas y con mayor viabilidad a futuro,

lo que en sí es un aporte para decir el porqué de la comparación 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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 12 -

4. Introducción a la Plataforma JAVA.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 13 -

4.1. Introducción.

JAVA fue desarrollado a finales de los años 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 estándar de desarrollo a nivel informático que

proporciona las herramientas necesarias para la creación de aplicaciones de todo tipo.

Además es un lenguaje orientado a objetos, que soporta características como: la

encapsulación, la herencia, el polimorfismo y el enlace dinámico.

Por otra parte JAVA es una de las plataformas que cuenta con mayor acogida para la

construcción de aplicaciones Web multinivel. Su Arquitectura J2EE (Java 2 Platform,

Enterprise Edition) ofrece conceptos básicos de componentes, herramientas y ambientes de

desarrollo que permiten generar programas o páginas dinámicas desplegables en los

distintos browsers de la Web.

La principal característica de JAVA es la capacidad de ejecutarse en cualquier máquina y

sobre cualquier sistema operativo o arquitectura, manteniendo las facilidades básicas del

lenguaje. En el ámbito Web, JAVA da la capacidad de desplazar el control de la

interactividad de los servidores hacia las máquinas de los usuarios, permitiendo la

utilización de distintos componentes que son interpretados por los navegadores Web y en

los casos correspondientes por la máquina virtual de JAVA. Un ejemplo de esto es la

carga de "applets", programas compactos y precompilados que generan animaciones y

sonidos sobre páginas Web. Otra característica propia de JAVA es el acceso a herramientas

de desarrollo de licencia libre que permite a los usuarios un fácil acceso a esta tecnología.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 14 -

4.2. La Máquina Virtual de JAVA.

La máquina virtual de JAVA, es una capa lógica que hace creer al programa Java que se

ejecuta en un computador (con registros, memoria y procesador), cuando en realidad sólo

ve una reconstrucción lógica de éste. Para ejecutar un programa Java compilado, es preciso

también que se cuente con una implementación de la máquina virtual específica donde se

desea ejecutar, la cual efectúa la transformación del p-code en un programa comprensible

para la máquina.

4.2.1. Figura 2: Esquema Máquina Virtual Java.

4.3. Herramientas de Desarrollo.

Para desarrollar en Java, se necesita instalar el paquete JDK de Sun, libre de distribución y

se puede descargar en varios sitios Web. En el sitio de Sun, se encuentra toda clase de

información relacionada con Java como: ejemplos de programas, tutoriales, documentación,

bugs junto a su solución, lo que proporciona una ayuda extra para desarrollar todo tipo de

aplicaciones en este lenguaje. La última versión 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 instalación descargables desde la Web.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 15 -

4.3.1. Tipos de Herramientas de Aplicación.

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

- Aplicaciones: programas fuentes desarrollados en cualquier editor Java y guardados con

extensión .java, que en su compilación pasan a ser ficheros .class, y al ser ejecutados se

interpreta el byte-code, generando estas aplicaciones.

- Applets: códigos fuentes desarrollados en cualquier editor Java (pudiendo ser de

extensión .java), compilados de forma que sean parte de una página Web que lo contenga,

ejecutándolo dentro del sitio con extensión .html

- Servlet: conocido como el CGI de Java, éste un programa independiente de la plataforma

que aporta funcionalidad a la programación en el lado del servidor. Este es código 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 botón, o complejos como el acceso a una

base de datos; una característica primordial de un JavaBean son los métodos (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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 16 -

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 tecnología Java más 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 diseñada con el fin de

proporcionar un ambiente integrado para la creación 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 básico de utilidades

necesarias para el desarrollo de aplicaciones en este lenguaje. Este es normalmente, la

versión 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 implementación de aplicaciones para

dispositivos móviles, tanto equipos celulares como Palm y equipos de bolsillo (Poquet PC).

Ésta contiene las herramientas específicas para desarrollar aplicaciones, programas y

juegos, para este tipo de dispositivos.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 17 -

4.5. Definición 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 programación en el lenguaje Java, las cuales facilitan el

manejo de los conceptos necesarios para el desarrollo de aplicaciones más avanzadas de

desarrollo, implementación y administración de software empresarial. SUN lo define como

un estándar para el desarrollo de aplicaciones empresariales multicapa, simplificando las

aplicaciones empresariales basándolas en componentes modulares y estandarizados,

proveyendo un completo conjunto de servicios a estos componentes, y manejando muchas

de las funciones de la aplicación de forma automática, sin necesidad de una programación

compleja.

Además la plataforma J2EE incluye un amplio rango de API's y esquemas de programación

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 ejecución de este tipo de aplicaciones, éstas son:

Presentación del lado del Cliente (Cient - Side Presentation): dentro de esta área se

encuentra el rango de funcionalidades que J2EE hace ejecutar en la máquina en la cual el

cliente accede a las distintas herramientas. Dentro de este grupo se encuentran páginas Web

estáticas (HTML), los Applets y aplicaciones de escritorio descritas en el lenguaje JAVA.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 18 -

Presentación 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 aplicación Web de J2EE, Java Server Pages, Java Servlet, códigos 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 interacción de componentes Web

Services entre las distintas capas SOAP y WDSL. Los EJB container manejan la ejecución

de los Enterprise Beans para las aplicaciones J2EE que se ejecutan del lado del servidor.

Información de Sistema de Empresa (Enterprise Information System): dentro de ésta

área se incluyen los datos guardados necesarios para la correcta ejecución de los distintos

componentes J2EE. Por ejemplo las bases de datos que incluyen información de software

ejecutados del lado del servidor.

En este modelo se encuentran los

distintos componentes de una

aplicación J2EE y la ubicación

en la correspondiente capa del

modelo de ejecución.

4.5.1. Figura 3: Esquema de Aplicación en Capas.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 19 -

4.5.2. Componentes de Arquitectura J2EE.

Además del módelo de ejecución en capas, J2EE contiene un completo conjunto de APIS,

algunas de las cuales están insertas dentro de la arquitectura J2SE que se agregan a la

arquitectura. Éstas permiten la ejecución entre las distintas capas definidas con

anterioridad.

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 páginas JSP que corren del

lado del servidor y EJB Containers que manejan la ejecución de lo beans de aplicaciones

J2EE que también correr del lado del servidor. Por su parte el Applicattion Client

Container maneja la ejecución de todos los componentes de servidor y a su vez el Applet

Container la ejecución de dichos applets en el cliente.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 20 -

4.5.2. Principales API's de la Arquitectura J2EE.

Dentro de las principales APIS para el desarrollo de la tecnología Java, se encuentran

algunas que permiten ciertas características, por ejemplo a los Java servlet le permiten

extender la capacidad de los servidores en aplicaciones http y utilizarlos como respuestas

sobre servicios Web. También permiten a los JSP agregar elementos que determinen como

está compuesto el contenido dinámico de la página, están dentro de los EJB y hacen correr

Applets de manera correcta en la máquina del cliente.

Las API son interfaces de programación 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 estándar que permite a

componentes de aplicaciones J2EE crear, enviar, recibir y leer mensajes, habilitando

comunicaciones distribuidas (asincrónicas).

• JTA (Java Transaction API): provee una interfaz estándar para transacciones

demarcadas. Maneja un auto commit por defecto para transacciones commits y

rollbacks (una aplicación con manejo de datos que puede actualizarlos luego de

cada operación de escritura o lectura).

• JavaMail API: API para envío de notificaciones email en Internet.

• JAF (JavaBeans Activation Framework): provee servicios para determinar tipos

de datos dentro de JavaMail API.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 21 -

• 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 estándar 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

producción y consumo de mensajes SOAP 1.1.

• JAXR (Java API for XML Registries): registra el acceso de negocio y propósito

general de aplicaciones sobre la red.

• JDBC (Java Data Base Connection): Quizás el API de J2EE más conocida,

permite el trabajo con base de datos permitiendo comandos SQL para la

programación de métodos de acceso a distintas base de datos. Posee dos partes: una

de nivel de aplicación usada por el componente que accede a los datos y además 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 métodos que realicen operaciones de este tipo.

• JAAS (Java Authentication and Authorization Service): esta API entrega una

vía para autentificar y autorizar la ejecución de aplicaciones por un usuario o grupo

en particular.

• JSTL (Java Server Pages Standard Tag Library): este API encapsula la

funcionalidad de los JSP.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 22 -

4.5.3. Características de J2EE.

La tecnología 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 presentación que proporciona el interfaz de usuario, una o más capas intermedias que

proporcionan la lógica de negocio de la aplicación y una capa final con los sistemas de

información que mantienen aplicaciones y bases de datos corporativas.

Entre las características de este tipo de aplicaciones se encuentran las siguientes:

• Posibilidad de altas productividades en el desarrollo de las distintas tecnologías

J2EE para la integración de aplicaciones corporativa e integración de sistemas

existentes.

• Mayor Escalabilidad al describir las características básicas de transacciones y

desarrollando distintos tipos de componentes de aplicación J2EE con modelos

flexibles de seguridad.

• Libertad de elección de plataformas de desarrollo y producción, lo que define los

aspectos necesarios que puedan solucionar una determinada problemática.

• El desarrollo de aplicaciones Web utilizando conceptos de la arquitectura J2EE

que permiten la construcción de este tipo de aplicaciones.

• La utilización de herramientas libres que agilizan el desarrollo de software con

J2EE y que permiten el funcionamiento en los distintos módulos de ejecución.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 23 -

4.5.4. Tipos de Aplicaciones J2EE.

La plataforma J2EE añade a Java la funcionalidad necesaria para convertirse en un lenguaje

orientado al desarrollo de servicios y páginas en Internet, realizando aplicaciones igual de

poderosas que cualquier otro tipo de programa desarrollado en Java. Éstos pueden ser de

uso común por diferentes organizaciones que implementan software en la red, tanto para

medios publicitarios, como software de manejo de información 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 páginas dinámicas

llamadas JSP (Java Servlet Page, un lenguaje de programación de páginas Web dinámicas

como lo son códigos en PHP o ASP), Sun proporciona mejoras y nuevos conceptos al

desarrollo Web, sumando funcionalidades a las conocidas Paginas Web, códigos HTML,

las cuales hacen que páginas ya creadas puedan ser actualizadas con implementación JSP.

De misma manera los Servlets, scripts CGI en el servidor que se ejecutan como script de

Perl, los cuales pueden desarrollar mejoras específicas para agregar a sitios Web tecnología

JAVA.

Además 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 encapsulación de aplicaciones con distinta orientación.

Algunas de estas aplicaciones J2EEE son:

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 24 -

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 aplicación completa de fácil movilidad y ejecución.

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 más módulos WEB. Pudiendo ser desde un simple sistema JSP a un

servicio Web.

4.5.4.2. Figura 6: Estructura archivo WAR.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 25 -

EAR (Enterprise Archive file): un archivo EAR es un archivo JAR que contiene una

aplicación J2EE. Utilizando archivos EAR es posible unir un número de diferentes

aplicaciones J2EE usando los mismos componentes sin necesidad de códigos extra solo

incluyéndolos dentro de este módulo.

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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 26 -

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 método 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 método de interconexión

el cual consta de un paquete de instalación comprimido .JAR, el que contiene la librerías

que hacen posible un puente entre la aplicación y el motor de base de datos, generalmente

esto es conocido como Driver de base de datos.

Este es un método bastante simple y de buen desempeño, 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 método se pueden definir características como:

• Define ocho interfaces para operaciones con bases de datos, de las que se derivan

clases para su utilización.

• Contiene una clase que se encarga de cargar inicialmente todos los drivers JDBC

disponibles DriverManager.

• Con la clase Connection, se realiza la conexión con la base de datos. La conexión

se especifica siguiendo una sintaxis basada en la especificación más amplia de los

URL.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 27 -

5. Introducción a la Plataforma Microsoft.NET

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 28 -

5.1 Introducción.

La Plataforma .NET se refiere a la tecnología creada por Microsoft para sus productos de

programación en la línea de .NET Framework y específicamente al producto de

programación Visual Basic .NET, el cual se presenta como una herramienta completa para

la creación de aplicaciones con esta tecnología. Para esto Microsoft, propuso una

herramienta de diseño y programación que cuenta con un número mayor de funcionalidades

que la ubica como una tecnología de punta en el desarrollo de aplicaciones, como lo son la

programación orientada a objetos y el poderío de JAVA con su arquitectura J2EE.

Con esto Microsoft, agrego el apellido “.NET” a la mayoría 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 añade un

conjunto de cambios para los programadores que deben afrontar con garantías el desarrollo

de la nueva generación de aplicaciones en general, especial el ámbito Web, objetivo

perseguido por todas las herramientas de desarrollo actuales.

Dentro de estas nuevas características se encuentran mejoras sobre ciertos componentes del

lenguaje en sí, con la eliminación de aspectos obsoletos que han ido cambiando dentro de

los modos y hábitos de programar. De esta forma se debe estar familiarizado con

programación de un cierto nivel y con las herramientas que proporcionan lo necesario

para la creación de aplicaciones sobre la plataforma .NET con su arquitectura NET

Framework.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 29 -

5.2. Desarrollo de Aplicaciones en .NET.

Además de programar en .NET, se pueden incluir dentro de esta tecnología, el análisis y el

diseño, permitiendo entender como hacer uso de mejores técnicas 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 código obtenido.

La integración 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 códigos más 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 30 -

Haciendo referencia a la figura anterior la arquitectura .NET presenta distintos niveles de

aplicaciones y componentes ofreciendo distintas capacidades y servicios apoyándose 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 presentación: formada por los Componentes de IU, y los componentes de

proceso de IU. Los componentes de IU son los cuales interactúan con el usuario (por

ejemplo ventanas o páginas Web). Los componentes de proceso de IU distinto tipo de

clases del tipo controladora en UML, lo cuales encapsulan la lógica de navegación y

control de eventos de la interfase.

2. La capa de negocios: es la cual encapsula la lógica de negocios Las entidades

empresariales representan objetos que van a ser manejados por la aplicación (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 lógica de negocios y en algunos casos pueden ser los objetos raíz que inician las

transacciones.

3. La capa de acceso a datos: capa que contiene las clases que interactúan con las base de

datos. Éstas surgen con la necesidad de mantener la cohesión o clases altamente

especializadas que ayuden a reducir la dependencia entre las clases y capas. Aquí se

encuentra la clase de métodos estáticos que permite uniformizar las operaciones de acceso a

datos a través de un único conjunto de métodos, esta es la clase SQLHelper.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 31 -

5.3. Programación WEB con Microsoft.NET

Después de conocer los conceptos presentados anteriormente como solución a problemas

Web, se definirán las principales características y funcionalidades de la plataforma .NET en

la programación de sitios, portales y paginas WEB o ASPx, las cuales, presentan un sin

número de ventajas sobre conocimientos HTML y páginas 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 páginas dinámicas

ASPx.

Para esto la tecnología ASP.NET presentan los siguientes conceptos:

• Modelo de ASP.NET e IIS (Internet Information Server).

• Web Forms: permiten diseñar páginas Web dinámicas basadas en componentes

.NET.

• Controles de usuario: implementados por el desarrollador para ser reutilizados en

distintas páginas o proyectos.

• Sesión y caché: usados para el mantenimiento del estado y la optimización del

rendimiento.

• Configuración e instalación de sitios Web.

• Seguridad: técnicas disponibles en ASP.NET para la autenticación y autorización

de usuarios.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 32 -

5.4. Introducción 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 través del uso de un

conjunto de herramientas y servicios que pueden agruparse en tres bloques principales: El

Entorno de Ejecución Común o Common Language Runtime (CLR), la jerarquía de clases

básicas de la plataforma o .NET Framework Base Classes y el motor de generación 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 programación basado en aplicaciones y servicios, permitiendo a los desarrolladores

centrarse en escribir la lógica específica a desarrollar con esta arquitectura compuesta por

una serie de librerías y un entorno de ejecución común.

5.4.1. Figura 10: Esquema .NET Framework.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 33 -

5.4.2. Descripción 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 ejecución se encuentra el CLR, que

constituye el núcleo de .NET Framework, este se encarga de la gestión del código en

cuanto a su carga, ejecución, manipulación de memoria, seguridad, etc., todas funciones

propias en cuanto al Sistema Operativo y la aplicación.

En el nivel intermedio, se sitúa la jerarquía de clases básicas del entorno de ejecución, que

constituyen un sólido API de servicios a disposición del programador, para realizar

múltiples tareas como, gestión del sistema de ficheros, manipulación multihebra, acceso a

datos, etc.

Finalmente, en el nivel superior, se encuentran las clases que permiten el diseño 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 programación Web,

sino también para aplicaciones de ambiente Windows.

Esta arquitectura presenta 2 nuevos ítems que son:

• Un modelo de programación consistente y sencillo, completamente orientado a

objetos.

• Eliminación del problema de compatibilidad entre DLLs, conocido como Hells

DLLs o "infierno de las DLLs".

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 34 -

5.4.2.1. CLR, Common Language Runtime.

El Entorno de Ejecución Común de Lenguajes o CLR (Common Language Runtime),

representa el alma de .NET Framework. Es la parte encargada de la ejecución del código de

aplicaciones. Se puede considerar como un soporte que permite ejecutar los servicios y

aplicaciones .NET en cualquier máquina que lo disponga. Está basado en la idea de Java,

que también tiene un módulo de ejecución 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

características que ofrece este componente son:

• Proporciona un desarrollo de aplicaciones sencillo y rápido gracias a que gran

parte de las funcionalidades que tradicionalmente debía crear el programador,

vienen implementadas en el entorno de ejecución.

• Administra el código en tiempo de ejecución, en todo lo referente a su carga,

disposición en memoria, recuperación de memoria no utilizada a través de un

recolector de memoria, además de características de gestión a bajo nivel

(administración de memoria, por ejemplo), que en ciertos lenguajes, eran labor del

programador.

• Proporciona un sistema común de tipos para todos los lenguajes del entorno,

gestionando la seguridad del código que es ejecutado. Además dispone de un diseño

abierto a lenguajes y herramientas de desarrollo creadas por otros fabricantes.

• Facilita la distribución e instalación de aplicaciones, ya que en teoría, es posible

instalar una aplicación simplemente copiando los ficheros que la componen en uno

de los directorios del equipo en el que se vaya a ejecutar.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 35 -

Todas estas características 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 librerías básicas proporcionan una serie de funcionalidades que son

necesarias a la hora de desarrollar tanto aplicaciones como servicios Web. Las clases

básicas gestionan operaciones como las de entrada y salida, seguridad, etc. Las Web Forms

permiten desarrollar la parte gráfica de una aplicación para la Web, mientras las Windows

Forms están orientadas a implementar la parte gráfica de las aplicaciones clásicas para

Windows. Los compiladores producen código MSIL (Microsoft Intermediate Language).

5.4.3. Implementación Web con la arquitectura Framework .NET.

Al crearse la arquitectura Framework.NET, la empresa Microsoft pretendía imponer un

cambio en la forma de desarrollar y utilizar las aplicaciones en la Red Internet. El propósito

fundamental era cambiar el concepto de aplicaciones Web a Servicios Web, y que éstas

pudieran utilizarse tanto por compañías relacionadas con el negocio, como por quienes

puedan requerir dichos servicios e incluso realizarlos. Todo esto se quería conseguir por

medio de la creación de herramientas bajo este estándar para crear dichos servicios.

Para esto, se utilizaron una serie de tecnologías y estándares, 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 pretendía aumentar la productividad de

desarrollo. Basándose en una propuesta orientada a objetos y apuntando fuertemente en la

capa middelware se podría convertir en un competidor real para soluciones de este mismo

tipo, realizadas por otras tecnologías en el mercado como J2EE (Java Enterprise Edition 2).

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 36 -

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 versión 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 ofrecía, y está diseñado para trabajar con

conjuntos de datos desconectados, lo que permite reducir el tráfico de red. Otra buena

característica de este modelo es que utiliza XML como formato universal de transmisión de

los datos. Posee una serie de objetos que son los mismos que aparecen en la versión

anterior, que permiten de mejor manera acceder a información de bases de datos, así como

el objeto Connection o Command, y la introducción 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 evolución lógica del API ADO de Microsoft a la nueva ADO.NET.

• Permite un modo de acceso desconectado a los datos, los cuales pueden provenir de

múltiples fuentes de datos, de diferente arquitectura de almacenamiento

• Soporta un completo modelo de programación y adaptación, basado en el estándar

XML

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 37 -

6. Introducción a la Comparación de las Plataformas

J2EE y .NET.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 38 -

6.1. Introducción.

Hasta esta parte ya se pueden diferenciar ciertos puntos sobre estas 2 plataformas de

desarrollo Web. Luego de haber introducido los conceptos sobre ambas tecnologías, en

ellas se hacen notar ciertas características 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 comparación preliminar, antes de abordar completamente el tema de la

comparación dentro de las áreas de evaluación, 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 características con el material analizado

hasta este punto de la investigación.

En esta primera etapa se mencionará algunos ítems de comparación que no necesitan

pruebas específicas para señalar diferencias. Éstas se pueden efectuar mediante el estudio

previo de las plataformas, y por medio de la información recolectada hasta esta parte. En

ella se puede notar analogías propias de diseño, desarrollo y ejecución de aplicaciones

Web, arquitectura de ejecución, compañías que las apoyan e información disponible.

También se puede diferenciar en una pre-etapa la complejidad en cuanto a la ejecución de

códigos y la realización de procesos no vistos por el usuario.

En este capítulo de la investigación se definen las primeras áreas a considerar y la primera

tabla de comparación previa de las plataformas de desarrollo, considerando la información

hasta este punto.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 39 -

6.2 Análisis de las Compañías.

“Tan importante como la propia arquitectura que plantean estas dos plataformas de

desarrollo, son las empresas que las apoyan, ya que contribuirán de forma decisiva en su

éxito o fracaso” (Ricardo Chamorro, Análisis 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 tecnologías, 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

implementación de éste estándar. 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 políticas 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

convivirán y competirán por alcanzar un mayor mercado, pero que una no reemplazara a la

otra, que, realizaciones en el presente hacen entender que ambas plataformas incluso

podrían fusionarse o funcionar juntas para lograr mejores objetivos.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 40 -

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 tecnología. Por

otro lado Microsoft es la mayor empresa de software que con estratégicas de reducción de

precios y de marketing ha conseguido llegar a una importante masa de empresas y

desarrolladores, los cuales están conformes con los resultados obtenidos con esta

plataforma de desarrollo.

Muchos apoyan, como norma general, que J2EE se impone en las grandes compañías

mientras que Microsoft lo hace en las pequeñas y medianas empresas las cuales prefieren

pagar licencias en términos 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 Análisis Comparativo entre Microsoft.NET y SUN J2EE).

Característica .NET Java 2EE

Tipo de Tecnología Producto Estándar

Empresas que lo ofrecen Microsoft Mas de 30

Librería de Desarrollo .NET Framework SDK Java core API

Interprete CLR JRE

Paginas Dinámicas ASP.NET Servlets, JSP

Componentes .NET Framework SDK JRE

Acceso a Base de Datos ADO .NET JDBC, SQL/J

Servicios WEB SOAP, WDSL, UDDI SOAP, WDSL, UDDI

Interfaces Graficas WIN Forms y WEB Forms Java Swing

Herramientas de Programación Visual Studio.NET Depende del Fabricante

Transacciones Distribuidas MS-DTC JTC

Servicios de Directorios ADSI JNDI

Librería de Mensajes MSMQ JMS 1.0

Lenguajes Utilizados C#, Visual Basic, C JAVA

Lenguaje Intermedio IL Bytecodes

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

(Analogías y diferencias entre J2EE y .NET por Ricardo Chamorro)

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 41 -

6.4. Limitación de la Comparación 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 utilización de páginas de tipo dinámicas.

Ambas tecnologías presentan su tecnología para este desarrollo, JSP por J2EE y ASP con

los nuevos ASPx de .NET, esto da condiciones que en este punto se pueden señalar como

similitudes entre estos 2 tipos de aplicaciones y los distintos requerimientos necesarios para

su correcta ejecución.

A pesar de que ambas plataformas presentan un número 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 interactúa directamente al navegar por Internet. Aspectos

como el tipo de componentes de ejecución utilizado, las librerías incluidas o las analogías y

diferencias que pueden presentar las arquitecturas J2EE con su maquina virtual y .NET con

.NET Framework difieren de una comparación dentro de un ámbito Web señalando otros

aspectos de estas tecnologías. Por su parte aspectos como el dinamismo, el tipo de

conexión utilizada para acceder a bases de datos, la utilización de Servidores Web para el

despliegue de las aplicaciones y, aspectos comparativos relevantes como el rendimiento y

escalabilidad, apuntan directamente a una línea de desarrollo Web de páginas dinámicas.

De esta forma aspectos ya definidos como las aplicaciones de índole Web de J2EE y la

descripción de componentes de la arquitectura .NET quedan establecidos para poder emitir

juicios posteriores dentro de la generalidad de las plataformas en comparación para, de esta

forma dar paso a una comparación directa entre páginas JSP con ASPx.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 42 -

6.5. Páginas dinámicas en J2EE.

La tecnología J2EE para la creación de páginas Web desarrollada en el lenguaje Java, es

conocida como páginas JSP (Páginas de Servidor Java o Java Server Pages), éstas poseen la

capacidad de ejecutarse en variados servidores Web y en múltiples plataformas, su sintaxis

está compuesta de códigos HTML/XML mezclados con etiquetas especiales que generan

estas páginas. Éstas son desarrolladas de manera similar a como se crean las páginas ASP

o PHP, las cuales se guardan como archivos de extensión .jsp que incluyen, dentro de la

estructura de etiquetas HTML, las sentencias JAVA a ejecutar en el servidor.

Las páginas 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 traducción de la página 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 página .jsp, también existe la opción de precompilar el código para evitar estos tiempos

de espera al acceder por primera vez un cliente a la página JSP solicitada.

6.5.1. Tabla 2: Ejemplo JSP

<%@ 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>

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 43 -

6.5.1. Requisitos de JSP.

Para poder desarrollar páginas JSP se debe tener conocimientos sobre paginas Web

HTML, las cuales en sí, son la base de cualquier sitio de este tipo, además será necesario

comprender la programación en JAVA, lo que brindará un mejor manejo de conceptos de

programación y funcionamiento de éste tipo de páginas Web dinámicas.

Además se necesitará descargar e instalar Tomcat, el contenedor de servlets usado en la

referencia oficial de implementación de JSP. Esto referencia el aprendizaje de otra área

dentro de la programación de páginas dinámicas de JAVA, la configuración 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 más 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 también de

forma interna al ejecutarse dentro del IDE de desarrollo de aplicaciones Web en JAVA.

La instalación y configuración varia dependiendo del Sistema Operativo que se utilice, ya

que éste se desempeña correctamente en sistemas Linux a base de comandos y, para

sistemas Windows la instalación viene siendo simple con respecto a los servicios que se

quieren activar. En la instalación del motor de programación Java, Netbeans, se incluyen

todos los servicios necesarios para poder levantar y ejecutar páginas JSP y que éstas puedan

funcionar correctamente.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 44 -

6.6. Páginas Dinámicas en .NET.

Para el desarrollo Web Microsoft .NET está diseñado para la construcción de estos

sistemas, manejados con la extensión .ASPx (Active Server Pages x), que permiten

desarrollar páginas Web con contenido dinámico con la funcionalidad .NET.

Anteriormente, aplicaciones como ActiveX y las Web Classes de Visual Basic fueron la

base de llevar este tipo de programación a Internet, pero su rendimiento en ejecución y

complejidad en algunos casos, distaban mucho de ser la solución idónea a este problema.

Al crear aplicaciones Web con programación de páginas ASPx, junto a componentes de

conexión con los distintos motores de bases de datos, hacen a las páginas ASPx junto con

ADO, una solución óptima para este tipo de aplicación

6.6.1. Web Forms.

Con Visual Studio.NET, la creación de Paginas ASPx, se realizan a través de Web Forms o

tipo de páginas de servidor activas (ASP+, Active Server Pages+). Estos permiten crear

páginas Web programables como parte de una aplicación Web global, lo que simplifica el

desarrollo de grandes aplicaciones de este tipo, éstas proporcionan un modelo de

programación basado en eventos en el servidor. Los formularios están basados en

herramientas de desarrollo de Microsoft Win32 que entre sus ventajas se permite una

completa separación entre el formato HTML y la lógica de la aplicación (.NET). La lógica,

o código asociado a la página, se compila y proporciona un rendimiento mucho mejor,

definiendo áreas de diseño y especificando algún tipo de error si éste se encontrase.

Además, este código se puede escribir en cualquier lenguaje de Microsoft.NET, por lo que

permite al usuario aprovechar mejor sus habilidades.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 45 -

En el área de diseño los Web Forms proporcionan una interfaz de desarrollo rápido 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 interconexión con cada una de estas

herramientas obteniendo resultados seguros. Además, 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, configuración y personalización. 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. Además 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

estén familiarizados con la creación de sitios Web poder desarrollar dichas aplicaciones.

6.7. Tabla 3: Ejemplo ASPx

<%@ 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"> Página Inicio </asp:label> </body> </HTML>

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 46 -

7. Programas de Desarrollo para las plataformas J2EE y

.NET.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 47 -

7.1 Introducción.

Para comenzar a programar en ambas plataformas, se debe considerar que IDE (Integrated

Development Environment) de desarrollo se utilizarán y saber el por qué de esta elección.

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 IDE’s, o

programas de desarrollo, definen las funcionalidades y procedimientos necesarios para

crear aplicaciones bajo los estándar de J2EE y .NET.

En el mercado existen varias alternativas para el desarrollo de aplicaciones de estas

plataformas. En el caso de J2EE, varían desde poderosos entornos operativos para la

creación de portales Web, a las más sencillas y básicas con las cuales se pueden crear sitios

propios. También el uso de licencias esta denotado bajo esta tecnología, desde soluciones

libre de pago hasta IDE’s 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 capítulo se analizará los principales IDE’s de desarrollo sobre estas

tecnologías, denotando las mayores características que éstos presentan para posteriormente

poder decidir cual de ellos presenta lo necesario para el desarrollo de aplicaciones Web y

demuestra el poderío de las plataformas de desarrollo evaluadas.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 48 -

7.2. Principales IDE’s de Desarrollo de J2EE.

Al querer nombrar o especificar IDE’s de Desarrollo o programas para la ejecución 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 IDE’s 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 códigos a ejecutarse en otro.

Producto Sitio Licencia Plataforma

Eclipse (IBM)

http://www.eclipse.org

Opensource

Windows, Linux, OSX

JBuilder

(Borland)

http://www.borland.com/jbuilder/

La versión de Evaluación y la

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)

http://www-

306.ibm.com/software/awdtools/

developer/application/

Basado en el framework de Eclipse

3.0.

Windows, Linux.

WebSphere

Developer

Application

(IBM)

http://www-

306.ibm.com/software/awdtools/s

tudioappdev/

Basado en el SDK versión 3.0 de

Eclipse. Desarrollo de WebServices. Windows, Linux.

7.2.1. Tabla 4: Tabla Explicativa 1: IDE’s de Desarrollo J2EE.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 49 -

7.2.1. NETBEANS

NetBeans es el programa de desarrollo para aplicaciones Java de licencia libre más

utilizado por los usuarios. Este cuenta con las funcionalidades necesarias para el desarrollo

de todos los tipos soportados bajo este estándar.

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). Además

de lo gratuito de la herramienta, esta posee un poderoso trasfondo de ejecución que permite

ejecutar sin problemas aplicaciones de escritorio con la máquina virtual de Java y en

aplicaciones Web, el servidor JSP Tomcat

A pesar de que la principal característica del IDE de desarrollo es su gratuidad, Sun planea

empaquetar algunos componentes con una serie de módulos propios y un contrato de

mantenimiento para poder convertirlo en ediciones de lujo por la cual se pagaría una

licencia. De este modo Sun pagaría 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 versión 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 50 -

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 programación.

Si bien es posible la escritura de programas empleando sólo el SDK de .NET Framework,

este último, al estar compuesto de herramientas independientes, constituye un medio más

incómodo 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 creación de programas, tanto aplicaciones de escritorio, como aplicaciones

Web. Este entorno de desarrollo contiene nuevas funcionalidades que facilitan la creación

de sitios Web con contenidos programables de manera importante. Presentando

herramientas graficas, las cuales pueden desplegarse para su utilización de manera modular,

lo cual representa una ventaja a la hora de compararlo con otros IDE’s del mercado.

Además este editor trabaja directamente con las capas del modelo .NET Framework, la

Base Class Framework que contiene las clases necesarias para general los aspectos básicos

de programación, que se interpretan desde el lenguaje CLR, el lenguaje básico de este

modelo de programación.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 51 -

8. Elección de IDE’s de Desarrollo para las Plataformas

J2EE y .NET.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 52 -

8.1. Introducción

Después de analizar los principales IDE´s de desarrollo para las plataformas Microsoft

.NET y J2EE, conocer sus funcionalidades, capacidades y herramientas, se debe empezar a

definir que IDE’s se utilizarán para comparar ambas plataformas y, posteriormente en una

etapa de pruebas, desarrollar módulos de comparación para la evaluación de éstas.

Para ésto se deben analizar las principales características de las respectivas plataformas de

desarrollo, cerciorarse de que las IDE’s a utilizar son fieles a conceptos y líneas de

desarrollo de estas arquitecturas, darse cuenta de que en estas se puede demostrar el poderío

de programas desarrollados en dichas tecnologías y, poder ejecutar sin errores,

aplicaciones en un ambiente Web para cada una de éstas. Por esto antes de emitir juicios

sobre que IDE’s son mejores para cada tecnología, se deben considerar las características

principales de J2EE y .NET. Para el caso de J2EE en base a estudios y entrevistas de la

razón principal de su utilización, se marco el hecho de: “La disponibilidad de libre

licencia” para algunos de sus IDE’s de desarrollo. Además, JAVA, por característica

propia no esta sujeta a pago de licencias. Esto hace que este atributo sea de importancia en

la elección del software de desarrollo para aplicaciones en J2EE. Por su parte, Microsoft

.NET, por los estudios previos y consulta hacia personas que utilizan esta tecnología, se

menciona como su principal característica: “La facilidad de creación de aplicaciones

WEB”, y en un mismo nivel, refiriéndose a Visual Studio.NET como un potente y fácil

programa de desarrollo de este tipo de aplicaciones.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 53 -

8.2. Elección de IDE de Desarrollo para J2EE.

Al basarse en las características definidas para la elección del IDE de desarrollo para la

plataforma J2EE, el aspecto de la licencia libre, limitó el conjunto de posibilidades,

quedando solo dos IDE’s de desarrollo con las características 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 elección de Netbeans destacó por sobre otros programas de desarrollo por su

característica 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 debería presentar las siguientes características: IDE de Licencia

Libre y Fácil utilización, aspectos considerados por Netbeans. Además éste maneja el

conjunto de API’s y proceso de servlets para la ejecución de software Web.

8.3. Elección de IDE de Desarrollo para .NET.

Para poder decidir que Plataforma de Diseño utilizar para el ambiente .NET predominó el

hecho de que la mayoría de los criterios a considerar concluían 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 características propias, y, junto a la Tecnología .NET,

proporciona todo lo necesario para el desarrollo bajo esta arquitectura.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 54 -

Visual Studio se presenta como la mejor herramienta de diseño de aplicaciones .NET por

funcionalidades propias del lenguaje, facilidad del manejo de herramientas, un editor

gráfico de aplicaciones, fácil instalación y ejecución de componentes que lo hacen el IDE

de Desarrollo para Microsoft.NET.

8.4. Principales Características de IDE’s Seleccionados.

En esta parte del capítulo se señalarán algunas características entre ambos programas de

desarrollo, NetBeans y Visual Studio. NET.

Característica NetBeans Visual Studio

.NET

Manejo de Licencia Licencia Libre Comercial

Componentes de

funcionamiento

JVM (Maquina

Virtual)

Ninguno.

Orientación de Desarrollo.

Especifico para

Aplicaciones Java.

Tanto Web con

Aplicación Win32.

Componentes de

Funcionamiento Web

Tomcat IIS

Duración de Instalación Más menos 15 min.

Más menos 1 hr 40

min.

Tamaño del IDE 90 MB (más JDK) 1.751 MB

8.4.1. Tabla 5: Tabla Comparativa 2: Principales Características.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 55 -

9. Áreas de Evaluación de las Plataformas J2EE y .NET.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 56 -

9.1. Introducción.

Para poder determinar que aspectos se necesitan desarrollar en una comparación de

tecnologías 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 Evaluación, las cuales contienen

algunos criterios que representan los aspectos comparativos más importantes que puedan

ser la base de pruebas posteriores que podrán evaluarán a las plataformas J2EE y .NET en

el ámbito WEB.

La importancia de este punto radica en condicionar que áreas del diseño, desarrollo y

posterior ejecución de pruebas y aplicaciones, permiten sacar conclusiones sobre ambas

tecnologías 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 comparación en particular métodos de evaluación 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 señalan

que aspectos más 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 señalar las áreas de comparación establecidas en este documento.

Los criterios mencionados son los principales a los cuales sitios dedicados a la evaluación

de software Web consideran. (Estudio de Interoperatividad .NET/J2EE, por Leonardo Rodríguez, Andrés

Vignaga y Felipe Zipría de La Universidad de la República, Uruguay y por Luís Sancho en su estudio .NET vs J2EE,

Consultar Anexo E ).

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 57 -

9.2. Definición de Áreas de Evaluación.

9.2.1. Definición de Área de Evaluación 1: Aprendizaje.

Al empezar a definir las áreas de evaluación se considerará al concepto Aprendizaje, a la

capacidad que tiene el usuario común de acceder a la tecnología, la facilidad hacia el

conocimiento y posterior capacitación en una de estas plataformas, que medios se utilizan

para llegar a ésta, que información debe ser considerada y cuantos profesionales están

dedicados a ésto. Con esto se quiere determinar que tecnología puede ser más “fácil” y

simple de abordar en una primera línea o etapa, que podría denominarse de conocimiento

previo o bien aprendizaje.

Dentro de la investigación recopilada en etapas anteriores, muchos documentos se referían

a este concepto de forma personal, midiendo variables y evaluando productos por separado,

refiriéndose a la plataforma de comparación opuesta de forma negativa, lo que no llegaba a

algún tipo de conclusión o aspecto factible a considerar. Por esto y más dentro de esta área

del documento y particularmente en el área de evaluación Aprendizaje, plantea en simples

conceptos algunas características básicas 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: Información Disponible.

Información Disponible en Español.

Calidad de la Información.

Curva de Aprendizaje

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 58 -

9.2.2. Definición de Área de Evaluación 2: Rendimiento

Al referirse al área de evaluación Rendimiento, ésta se refiere al conjunto de necesidades

para el manejo de hardware por la tecnología. Que costos involucran el relacionarse con

una de estas plataformas y, si el equipo computacional utilizado por el usuario, esta

capacitado para albergar dicha tecnología de desarrollo.

Con esto se desea considerar, hasta que punto el Hardware limita el accionar de las

plataformas, tanto como prerrequisitos de instalación del software, que permita realizar

aplicaciones Web propias, como también 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

deberían considerarse y no ser tomados a la ligera, o bien en que se basan las empresas para

poder definir los requerimientos mínimos de usabilidad para la instalación de productos que

realicen software y aplicaciones Web bajo los estándares J2EE y .NET. Este criterio será de

vital importancia en futuras etapas de pruebas y podrá ser clave en la decisión de elegir una

tecnología 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 Mínimos.

Componentes Necesarios

Escalabilidad.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 59 -

9.2.3. Definición de Área de Evaluación 3: Explotación y Uso.

Con Explotación y Uso, se referirá a todos los componentes externos a la plataforma, que

tan utilizados son estos estándar, que empresas los utilizan y que sistemas conocidos son

creados bajo estas arquitecturas.

Mediante los criterios definidos para esta área de evaluación se quiere dejar constancia, por

ejemplo, sobre que porcentaje de Internet está constituido por páginas 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 construcción de un número mayor de aplicaciones

Web a través de estas plataformas de desarrollo, se pueden elaborar modelos de diseño y

desarrollo para futuro proyectos de este mismo tipo.

La importancia de esta área de evaluación 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 capacitación sobre la

plataforma. También el poder determinar por ejemplo una gráfica sobre desarrollo de este

tipo de tecnologías Web, tanto en un medio global como el total de Internet, o de manera

local refiriéndose solo a los dominios .cl, podrían dar las bases sobre en que nivel de

aplicación Web (Asp, Jsp, php, etc.) esta sustento el medio nacional.

Para esto, se consideraron los siguientes criterios:

9.2.3.1. Criterios de Explotación y Uso: Curva de Desarrollo.

Uso de la Tecnología.

Distribución.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 60 -

9.2.4. Definición de Área de Evaluación 4: Desarrollo.

El área de evaluación de Desarrollo hace alusión 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 tecnología 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 páginas, un aprendizaje frente a errores y/o el mejor manejo de

las herramientas de diseño y ejecución propuestas por el IDE de desarrollo.

Esta área describe aspectos que pueden considerarse subjetivos, pero al ser tratados desde

un punto de vista crítico, basado en funcionalidades mínimas 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 evaluación, al igual que el

Aprendizaje contiene muchos aspectos que son considerados personales y poco objetivos

al querer dejar en claro alguna característica en cuanto a la ejecución 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 61 -

9.2.5. Definición de Área de Evaluación 5: Uso de Licencias.

Dentro del Área de Uso de Licencias, se consideran los aspectos que involucran el acceder

a los distintos IDE’s 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 académico. Aspecto importante y limitante al enfrentarse a una elección de

productos de este tipo o la adquisición de los mismos. Para esto, se cuenta con las

respectivas licencias de cada arquitecturas y sus IDE’s de desarrollo, lo que permitiría a

grandes rasgos saber a que tipo de producto el usuario se esta enfrentando y que

consecuencia podría tener la posterior evaluación de desarrollo comercial a través de estas

herramientas. Otro aspecto a considerar en esta área de evaluación, es el manejo de los

códigos generados por cada aplicación Web, si su accesibilidad está permitida en todo

momento y si la generación de archivos sin uso es clara, o no se está al tanto de que

función realiza dentro de la aplicación general.

Otros aspecto importante dentro de esta área de evaluación, es el delicado tema de costos

sobre las licencias y las adquisiciones de productos, IDE’s y todo lo relacionado con ambas

plataformas de desarrollo. Si dentro del ámbito comercial que puedan presentar cada una de

estas tecnologías, se considera la realización de distintos paquetes y precios, dependiendo

del nivel del usuario que quiere comenzar a desarrollar aplicaciones propias en estos

estándares. Para esto se definió los siguientes criterios:

9.2.5.1. Criterios de Uso de Licencias: Licencia Libre

Código Abierto

Costos.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 62 -

9.2.6. Definición de Área de Evaluación 6: Compatibilidad.

Al realizar un área de evaluación 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 aplicación en

algún tipo Browser o Navegador Web.

La compatibilidad tiene que ver con la interacción entre los distintos componentes que

hacen posible la ejecución del código durante las diferentes capas de ejecución. La relación

entre el Sistema Operativo y el lenguaje de máquina que interpreta el respectivo lenguaje,

hacen que la compatibilidad sea uno de los puntos más discordantes entre estas 2

tecnologías, ya que no todas cuentas con lo necesario para este tipo de funcionamiento.

Esto genera conflictos entre ambos estándares de desarrollo que buscan vulnerabilidades

sobre la otra para encontrar ventajas. También 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 características.

Para esto de definió los siguientes criterios de comparación:

9.2.6.1. Criterios de Compatibilidad: Portabilidad

Navegadores Web.

Servidores Web.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 63 -

9.3. Definición de Criterios.

9.3.1 Definición de Criterios de Aprendizaje.

Para el Área de Evaluación 1: Aprendizaje se definieron los siguientes criterios los cuales

encierran la idea principal de cómo el usuario accede a cada tecnología y tiene la capacidad

de informarse sobre éstas. Para esto se describe:

9.3.1.1. Información Disponible: se refiere a la disposición de información y conocimiento

que se puede conseguir por medios asequibles, como Internet, libros y revistas

especializadas. Implícitamente en la Web, cuantos sitios manejan información del tema,

cursos, manuales y bugs, que permitan una mejor y más rápida integración a la plataforma.

Además se puede considerar que tipo de demanda tiene en Internet.

9.3.1.2. Información Disponible en Español: se refiere al poder conseguir información en

“nuestro” idioma. Con información relacionada sobre cada plataforma, ¿Cuánta de ésta de

encuentra disponible en el idioma español?, 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 asimilación entre las variables de tiempo y

aprendizaje con respecto al desarrollo en la plataforma seleccionada. El comparar estas

variables gráficamente demostrará una curva más elevada y corta para la plataforma con

mayor facilidad de instrucción.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 64 -

9.3.2. Definición de Criterios de Rendimiento.

Para el Área de Evaluación 2: Rendimiento, se definieron criterios que especificarán la

utilización 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 utilización y consumo de componentes de

hardware como lo son Tiempo Cpu o también considerado tiempo de ejecución, y el

espacio de disco duro utilizado por la aplicación y la cantidad de archivos generados.

9.3.2.1.2. Capacidad de Respuesta: se refiere al criterio encargado de considerar la

duración sobre una petición y obtener resultados de dicha operación, como por ejemplo, el

presionar un botón y que este ejecute la acción, o la búsqueda de un dato sobre un servidor

de base de datos vía Web. Esto brindará una orientación sobre tipo de “página” o aplicación

es más ágil en tiempos de despliegue y de actualización.

9.3.2.1.3. Requerimientos Mínimos: Para este criterio se consideró aspectos mencionados

en capítulos 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 IDE’s de desarrollo de

ambas plataformas, y así poder demostrar que tecnología necesita un mayor avance

tecnológico para poder ejecutar correctamente sus aplicaciones.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 65 -

9.3.2.1.4. Escalabilidad: Este criterio hace referencia sobre un sitio Web determinado,

tanto ASPx para la tecnología .NET y JSP en J2EE, tenga la capacidad de funcionar

correctamente en función del número de usuarios simultáneos que lo utilizan. Dicho de otro

modo, la propiedad de acceso a múltiples usuarios a una misma aplicación, 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 Mínimos, 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 desempeño 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. Definición de Criterios de Explotación y Uso.

Dentro del Área de Evaluación Explotación, se definieron criterios que explicarán de buena

manera la relevancia y utilización de estas plataformas dentro del ambiente de Internet.

Para estos criterios se hizo una investigación en la cual se quería reflejar la utilización de

las paginas web ASPx y JSP en cuanto a cantidad y calidad, las empresas realizan sus sitios

bajo estos estándares, en claro apoyo a una de estas arquitecturas, también se consideró el

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 66 -

navegar por distintos sitios en Internet y si estos reflejaban que tipo de aplicación Web

utilizaban.

Además 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 más de una referencia sobre

algunos de los temas tratados en éste. Los criterios descritos para esta área de evaluación

son los siguientes:

9.3.3.1. Curva de Explotación: para este criterio se considerá el cotejo entre el desarrollo

de la tecnología en función del tiempo, si a pesar del tiempo una tecnología se mantiene

vigente o si la utilización de ésta decrece, considerando la evoluciona a una tecnología de

mejor rendimiento. Por otro lado, el incremento del desarrollo de aplicaciones Web en una

de estas plataformas, se determinará a través de distintos sitios y aplicaciones creadas bajo

estos estándares.

9.3.3.2. Uso de la Tecnología: este criterio hace referencia a la cantidad numérica de sitios

desarrollados bajo estas plataformas. En el simple hecho de navegar por Internet el usuario

se encontrará con páginas con distinta orientación, información, 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 tecnología están desarrolladas .

9.3.3.3. Distribución: Bajo este criterio se encuentran las empresas que albergan sus sitios,

tanto corporativos, de información y sistemas Web bajo estas tecnologías. Considerar más

que la cantidad de sitios de este tipo, ver la calidad y el nivel de importancia de la empresa

o institución que apoya a estas plataformas con la inclusión implementaciones propias bajo

estas tecnologías.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 67 -

9.3.4. Definición de Criterios de Desarrollo.

Para el Área de Evaluación de Desarrollo se definieron criterios directamente relacionados

sobre la programación de sitios Web. Además la visualización de estos sitios sobre un

Browser, definiendo la facilidad de los distintos IDE’s para la realización de páginas

dinámicas. Para ésto se definen los criterios descritos a continuación.

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 utilización de objetos

(menús, iconos) que no hagan a la programación una tediosa escritura de códigos.

9.3.4.2. Accesibilidad: esto se refiere a la posibilidad que ofrece tanto la plataforma como

los mismos IDE’s de desarrollo de ofrecer funciones, procesos y atributos de forma

acertada a la hora de programar. Una página o sitio Web es accesible cuando está diseñada

para que sus contenidos estén disponibles a los usuarios.

9.3.5. Definición de Criterios de Uso de Licencias.

Para el Área de Evaluación, Uso de Licencias, se describieron criterios que señalarán

facilidades en cuanto al código y a las licencias ofrecidas por ambas plataformas. Definir

que posibilidades hay de acceder a herramientas de libre costo, y si la creación de

aplicaciones bajo estas plataformas genera algún tipo de incongruencia al generar licencias

personales.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 68 -

Esto se describe a continuación:

9.3.5.1. Licencia Libre: Este criterio se refiere a la facilidad proporcionada por la

plataforma al acceder a sus productos, la consideración de versiones independientes del

uso, pudiendo separar en comerciales y de conocimiento o aprendizaje. Este criterio

muestra la orientación de cada plataforma y si su objetivo es solo comercial o si se

considera el ámbito educacional. También 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. Código Abierto: Este criterio hace referencia a la permisividad de acceder a los

códigos generados en el proceso de creación de una aplicación Web. Si éstos contienen

algún tipo de encapsulación o encriptación que no permitan la interacción entre el código 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 utilización de las herramientas de desarrollo, para la creación de

aplicaciones bajo los estándares J2EE y .NET. Si se considera la realización de paquetes

independientes para el nivel del usuario.

9.3.6. Definición de Criterios de Compatibilidad.

Para el Área de Evaluación de Compatibilidad se definieron dos criterios en los cuales se

describe la posibilidad de crear una misma aplicación independiente de la máquina,

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 69 -

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

investigación 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 aplicación Web realizada bajo un Sistema Operativo y, que ésta pueda ser

ejecutada en otro donde no fue concebida, de ser viable una operación de este tipo que nivel

de depuración o corrección debe hacerse para que pueda funcionar correctamente. También

este criterio hace relación 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 algún Browser o Navegador Web,

que, aunque estos visualicen códigos HTML, estas páginas dinámicas tanto JSP como ASP

o ASPx con sus respectivos tags agregados a los códigos HTML, a veces generan pequeñas

diferencias al acceder a una aplicación desde un visor a otro, arrojando algún tipo de faltas

como: tipos de letras, alineaciones, imágenes, etc.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 70 -

10.- Postulados de Comparación de las plataformas

J2EE y .NET.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 71 -

10.1. Introducción.

La industria del software empieza a tomar una postura crítica 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 serán compatibles, que ambas tecnologías se

comunicarán y el desarrollo será aceptado por sus clientes los cuales podrán interconectar

sus aplicaciones hechas en ambas tecnologías, pero, por el momento, no queda otra

alternativa aceptable que la de decidirse por una de éstas, teniendo en claro el porque de

dicha elección y sabiendo que es la mejor alternativa.

En el presente capítulo, luego de definir los criterios de comparación, se describe el

comportamiento de ambas plataformas de desarrollo frente a frente, se acentúa en detalles

técnicos y prácticos que demuestren ventajas y vulnerabilidades de estas tecnologías, 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 análisis de los distintos sitios y

documentación recolectada sobre estas dos plataformas, en los cuales muchas veces

convergen en aseveraciones mencionadas en más 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

investigación y los documentos base mencionados en la bibliografía de este trabajo.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 72 -

10.2. Ventajas y Desventajas de las Plataformas.

En el presente capítulo se presentan algunos postulados que afirman características de

ambas plataformas las cuales se desmienten o afirman analizando tales áreas corroborando

tales enunciados

Conforme avanza el capítulo, se va introduciendo en conceptos, características y teorías

que muchos afirman sin un sustento o base que los corroboren o por otra parte, que se

presenten con una descripción detallada que los haga ser válidos. En alrededor de diez

postulados, se resume la mayor cantidad de información 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 Comparación.

10.3.1. Postulados de Comparación 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 explotación

de sus sistemas, aprovechamiento de recursos, etc., aspectos importantes a la hora de

determinar a que tecnología se dará uso, e incluso el poder adoptar nuevos sistemas

operativos dentro de la empresa, tanto en corporaciones internacionales, como en

pequeñas y medianas empresas.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 73 -

Algunos Informáticos piensan en Java no sólo como un lenguaje de programación, sino

que afirman que ésta es una poderosa tecnología con algunos objetivos fundamentales

como: el entregar un entorno estándar de desarrollo y una producción independiente de la

plataforma, proveyendo de escalabilidad para que la explotación de sistemas sea más

eficiente, robusta, flexible, integrada y segura.

Esto quiere decir que con Java se pude construir aplicaciones sobre máquinas Intel con

sistema operativo Linux, y después migrarlas fácilmente a ambientes Windows, llevarlas a

teléfonos celulares, PDAs, mainframes IBM, servidores corporativos Sun o cualquier otra

plataforma con soporte en Java, sin tener que recompilar o modificar los códigos

generados.

Lo mencionado anteriormente, aunque es real, no se cumple a cabalidad, luego de la

investigación desarrollada, se puede afirmar que la portabilidad no se realiza de manera tan

fácil como se desearía, el pensar en la posibilidad de migrar aplicaciones JAVA

desarrolladas en un sistema operativo a otro como algo simple es algo totalmente erróneo.

Hechos como el simple manejo de archivos, directorios y permisos, hacen que el proceso de

depuración sea algo engorroso y complicado para cierto tipo de aplicaciones, que sin ser

imposible, en muchos casos genera más problemas adaptarlos que realizarlos

completamente desde cero en el nuevo entorno operativo. Además la utilización 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 ubicación correcta de éstos dentro de la

aplicación o proyecto.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 74 -

10.3.2. Postulado de Comparación 2:

“Para J2EE existen más empresas que apoyan a esta tecnología 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 máquinas 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 MS-

SQL Server tiene JDBC disponible. También 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, Análisis comparativo entre Microsoft.NET y SUN J2EE).

Esto hace que J2EE tenga un soporte importante a la hora de contar con apoyos

tecnológicos 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 cuestión cierto en lo que

presenta.

10.3.3. Postulado de Comparación 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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 75 -

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 utilización de un Sistema

Operativo para desarrollar algún tipo de aplicaciones. Por esto J2EE ventaja a .NET, ya que

éste es un punto en contra hacia la tendencia de hoy en día, la heterogeneidad de

plataformas al interior de las organizaciones, pues, al restringir las herramientas utilizadas

por los usuarios, hace que éstos pierdan el interés y no se trabaje correctamente bajo un

mismo estándar.

En cuanto a la estandarización, acción realizada en más de una oportunidad por Microsoft,

que realizan cambios en estándares conforme a su conveniencia y de manera arbitraria, lo

que imposibilita al usuario de .NET de elegir libremente.. Esta problemática no existe por

el lado de Java debido a que es una tecnología completamente estándar y abierta,

características que se aprecian en el gran número de proveedores de soluciones y productos

para la tecnología, hechos que hacen cierto al éste postulado en su mayoría con respecto a

limitar el ambiente de trabajo.

10.3.4. Postulado de Comparación 4:

“Existen más profesionales J2EE que de .NET”

Dentro de este postulado se puede mencionar que Java es la plataforma que cuenta con más

tiempo en el mercado y siendo probada, aceptada y adoptada por los usuarios es

considerada una tecnología madura, la cual cuenta con miles de proyectos en ejecución.

Microsoft .NET, la cual lleva menos años 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 76 -

Este hecho es considerado y quiere ser solventado por las nuevas políticas de Microsoft,

que quieren hacer un realce en la capacitación a profesionales en el amplio mundo de la

programación de .NET. Con dicha capacitación se quiere formar una línea de profesionales,

capaces de formar y poder capacitar a otros. También se desea por parte de esta empresa,

el aumento de comunidades que faciliten el compartimiento de conocimientos que aún no

supera a otras como lo es en el ámbito de cooperación Web, donde existen muchos portales

de comunicación y colaboración 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 debería afectar a una superioridad de una

plataforma sobre otra (por haber llegado antes al mercado). Aunque este hecho fue cierto

hace un par de años atrás, 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 Comparación 5:

“J2EE es más difícil 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 difícil de aprender que

la tecnología .NET. Esto varia dependiendo del nivel en que la empresa o usuario se

encuentre. El hecho de sólo conocer HTML como estructura de desarrollo Web, hace que

la tecnología ASP de Visual Studio.NET sea mucho menos compleja dado que el proceso

de programación es similar. JSP de J2EE, vendría a caber dentro de esta misma

característica, con la salvedad de la programación JAVA.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 77 -

Tomando una posición imparcial, se puede afirmar que la supuesta complejidad de Java,

tiene que ver con un mito producido por el alto grado de sofisticación de J2EE y por el

gran número de características con que cuenta la plataforma. Por este lado los defensores de

J2EE y acérrimos 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

podría acentuar que para realizar una aplicación Web en .NET no se necesitaría ser un

experto, en cambio en J2EE tendría que tener o mantener un conocimiento de programación

sobre la tecnología, o sea, solo se podría hacer aplicaciones Web en J2EE, si se supiera

programar en Java. Por el lado de .NET, los conocedores de esta tecnología, 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 rápido 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

programación 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

erróneas.

Aunque no se puede decir que .NET es más fácil que J2EE, si se puede comentar que .NET

presenta un curva de aprendizaje más favorable que J2EE, y que sus herramientas son de

una rápida adaptabilidad hacia el usuario, ventajas que si son superiores al estándar creado

por Sun.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 78 -

10.3.6. Postulado de Comparación 6:

“J2EE requiere más líneas de códigos 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 líneas de código que J2EE. Se debe considerar si es el resultado es el mismo con

menos líneas de código, si tiene la misma funcionalidad y simplicidad. Si esto se concretara

para ambas plataformas y una presentara menos líneas de código, podría considerarse como

un avance.

Con estos aspectos a considerar se podría separa conceptos, pues Java como .NET tienen

ciertas características más desarrolladas que otras, por lo que presentan una mayor cantidad

y uso de funciones para tareas determinadas, lo que presentaría a los códigos fuente con un

mayor número de líneas para la plataforma destacada.

Se debe entender que al asociar menor cantidad de líneas de código con mayor eficiencia,

no tiene un real sustento para ser considerada de ese modo. Esta característica 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 número de

líneas que están rutinas contengan.

Lo que se debe perseguir es cómo hacer mejores aplicaciones, más robustas, más

poderosas, más escalables, más integrables, más mantenibles y no sólo si más fáciles de

escribir. Entonces, el punto realmente importante radica en determinar cuál 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, además para los códigos .VB se presenta un

número mayor de líneas que las aplicaciones en J2EE.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 79 -

10.3.7. Postulado de Comparación 7:

“.NET se aprende más en la práctica 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 inversión tecnológica, de hardware y software que J2EE,

que esta ofrece mucho mayor reutilización de componentes y requiere menores costos de

desarrollo. Otras ventajas serían la facilidad de utilización de las herramientas, que las

hacen mucho más veloces y potentes para el desarrollo de producción de software y

soportar diversas capas tecnológicas de ambientes de explotación 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 IDE’s 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 código contenido por “detrás”, y se puede acceder a códigos .vb o el código de

programación que se este utilizando, además para la creación de sitios ASPx, se puede

programar en ellos como si se estuviera realizando una página HTML y realizar cambios en

este mismo lenguaje de programación. Esto haría que entre más se realizará un tipo de

aplicación con este método, la creación de sitios sea más sencilla y fácil en la reutilización

de códigos ya desarrollados, ámbito no manejado de la misma manera por J2EE.

Considerando esto, este postulado es cierto.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 80 -

10.3.8. Postulado de Comparación 8 (compuesto).

“en Java existe un maquina Virtual que facilita el trabajo en cambio en .NET no.”

“En .NET se pueden realizar sistemas en más 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

programación, el lenguaje y la forma que este se ejecuta. Por un lado J2EE, ofrece la

maquina Virtual Java, siendo una capa lógica que hace creer al programa que se ejecuta en

un ordenador real (con registros, memoria y procesador), cuando en realidad sólo ve una

reconstrucción lógica 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 código a nivel de máquina que a diferencia de la máquina virtual de Java, ésta se

presenta en las capas superiores del software, teniendo un desempeño diferente sin la

excesiva necesidad de recursos por parte el computador donde se estén desarrollando y

ejecutando las aplicaciones.

Además en la utilización de lenguajes de programación, .NET lleva la ventaja, al manejar

más de diez leguajes compatibles dentro de la misma aplicación, 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 vendría a ser el único leguaje de J2EE. Esto

podría tomarse como una versatilidad mayor de .NET hacia con J2EE.

Estos postulados favorecerían en parte a la plataforma ofrecida por Microsoft.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 81 -

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 tecnologías, 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 más 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 más allá de lo cotidiano seguir desarrollando el poderío de manejar más de un

ambiente operativo y hacer que su software sea aún más fácil de usar, de modo que pueda

crecer en el mercado de las pequeñas 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 construcción de aplicaciones Web con

utilización de herramientas básicas 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 82 -

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 83 -

11.1. Introducción.

Al acceder a una página Web al navegar por Internet, el principal servicio que ofrecen estos

sitios, además de la capacidad de información, es el poder acceder a datos alojados en algún

computador habilitado como servidor. Estas tecnologías a través de JDBC en J2EE, y

ADO.NET en Microsoft.NET manejan la de conexión de sistemas Web con base de datos.

Este tipo de sistema es el principal realizado por las páginas dinámicas 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 desarrollarán dichas aplicaciones.

En este capítulo se entra en la etapa de programación de aplicaciones Web con acceso a

base de datos, las cuales presentan las principales características a considerar para

desarrollar un marco de trabajo basado en aspectos que consideren la conexión, despliegue,

y todas las operaciones básicas al manejar datos, describiendo un modelo de programación

basado en la arquitectura cliente – servidor – motor de base de datos, apareciendo así un

modelo de aspectos como: el tipo de conexión y el motor de base de datos establecido.

Para este capítulo solo se utilizó motores de libre licencia como lo son: Mysql,

PostgresSQL y la inclusión de la herramienta de Microsoft Office, Microsoft Access,

descartando motores de mayor potencial como Oracle o SQL Server, los cuales

presentarían un detalle mayor lo cual desviaría del tema principal, la comparación entre

J2EE y .NET y se entraría a comparar el funcionamiento de estas plataformas con los

distintos motores de bases de datos.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 84 -

Para estas aplicaciones se consideró el siguiente modelo:

11.2 Figura 11: Modelo de Aplicación 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 más populares desarrolladas bajo

la filosofía de código abierto, éste fue desarrollado y es mantenido por la empresa de

software MySQL AB, la cual mantiene disponible el código fuente para su revisión.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 85 -

Inicialmente, MySQL carecía de los elementos considerados esenciales para poder manejar

bases de datos relacionales, elementos como: integridad referencial y transacciones, a pesar

de ello, desarrolladores de páginas Web preferían 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 características 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 según, si se desea velocidad en las

operaciones o un mayor número de operaciones disponibles.

• Transacciones y claves foráneas.

• Conectividad segura.

• Replicación.

• Búsqueda e indexación de campos de texto.

Además de esto, MySQL se posiciona como el motor de base de datos más 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 versión 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 algún producto pero no desea

distribuirlo bajo licencia GPL, se debe adquirir una licencia comercial que permite poder

utilizar a MySQL de esta manera.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 86 -

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 código abierto como MySQL,

Firebird y MaxDB, así como sistemas propietarios como Oracle o DB2. Algunas de sus

principales características son:

• Claves ajenas también denominadas Llaves ajenas o Llaves Foráneas

• Disparadores (triggers)

• Vistas

• Integridad transaccional

• Acceso concurrente multiversión (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 geométricas

PostgreSQL se desarrolló principalmente para resolver los problemas con el modelo de

base de datos relacional y al manejo de objetos. También este motor presenta una licencia

BSD orientada a desarrolladores de código abierto para continuar su desarrollo. Por el lado

comercial, la empresa Pervasive comercializa el motor PervasiveSQL, basado en Postgres,

que también distribuye la versión libre PostgresSQL, actualmente la versión PostgreSQL

8.0.x

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 87 -

11.2.3. Microsoft Access.

Aunque Microsoft Access no es reconocido como un motor de base de datos, por ser una

aplicación incluida en el paquete de utilitarios Microsoft Office, éste es ampliamente

utilizado por pequeñas 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 común de datos de todo

tipo, mayormente para manejo de inventarios, bodega, o para la utilización de datos que no

requieran un uso continuo, sino ser, un medio de respaldo al cual se pueda acceder en

tiempos variados para cotejar algún tipo de información 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 integración de este

utilitario con aplicaciones del ámbito Microsoft, lo hacen aún más valioso en las pequeñas

empresas que utilizan aplicaciones ASP con servidor Web IIS (Internet Information

Server), ya que estas herramientas presentan una interconexión 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 88 -

11.3. Aplicaciones Web con Base de Datos en J2EE.

11.3.1. Introducción.

En este punto de la investigación, se recolecta información detallada en capítulos

anteriores, en los cuales se hizo referencia al tipo de conexión que maneja la plataforma

J2EE con los distintos motores de bases de datos. En ellos se puede observar que el tipo

conexión JDBC, conexión basada en un cierto tipo de archivo, por lo general de extensión

.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 seguirán siendo utilizados en una posterior etapa de pruebas.

Estos distintos tipo de conexiones (.JAR) no son incluidos en la mayoría de los IDE’s de

desarrollo para J2EE, lo que hace que el funcionamiento y el tipo de conexión 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 información, en especial

para este tipo de estudio y dentro de una evaluación comparativa se optó por seleccionar

motores de licencia libre como se comentó con anterioridad, reflejando los sistemas que se

apreciarán posteriormente.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 89 -

11.3.2. Conexión 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 conexión 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 conexión manejado como String.

• El respectivo UserName y su clave. Manejado como String.

• El objeto conexión 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 Conexión a Base de Datos Postgres.

11.3.2.2. Figura 12: Vista de programación en Netbeans.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 90 -

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 conexión, para esto se descargó de

Internet el paquete de instalación correspondiente, éste fue mysql-connector-java-3.1.7, el

cual permitió conectar el IDE de desarrollo Netbeans con la base de datos. Esta conexión

se agrega en proyecto Web de Netbeans haciendo clic derecho en éste y agregando la clase

para que sea reconocida en los códigos 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: Código cargar.jsp del proyecto JSPMysql.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 91 -

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 situación se necesito buscar una utilidad que

simulara este funcionamiento y/o ofreciera este servicio, en esta búsqueda se encontró un

conector que se despliega como un servicio más el cual debe estar funcionando para poder

realizar la conexión, 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 conexión y realizar una aplicación 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: Código eliminar.jsp del proyecto baseweb.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 92 -

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 código, éstos presentaron alguna dificultad al presentar errores de

ingreso y conexión, generalmente por falta de información y conocimiento sobre el motor

de base de datos PostGresSQL. Posteriormente al ser corregidas funcionaron a la

perfección. A continuación se muestra en detalle la página 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 + "","" + Películas +"",""+ 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: Código insertar.jsp del proyecto JSPpost.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 93 -

11.3.6. Información adicional.

• Todas las aplicaciones Web en Netbeans para J2EE al ejecutarse de modo local

(localhost) utilizan el puerto 8084.

• En Netbeans el tipo de conexión para todos los motores de bases de datos es similar

y mantiene el mismo formato.

• La conexión 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 aplicación

con dicho conector.

• JSP no maneja algún objeto el cual pueda manejar contenidos de bases de datos

completos, solo maneja variables de sesión dentro de las cuales se pueden

almacenar esta información.

• JSP dentro del manejo de base de datos no incluye nuevos objetos, la mayoría de los

componentes utilizados son solo comandos HTML, los cuales dentro de los eventos

se genera código java que permite realizar todas las operaciones necesarias.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 94 -

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

11.4.1. Introducción.

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 común, para los cuales realiza herramientas apartes, las cuales pueden integrarse

al desarrollar en Visual Studio, el cual esta diseñado para la inclusión de éstas nuevas

funcionalidades para la interconexión de nuevos motores como Postgres, MySql, Oracle

etc., diferentes a motores Microsoft como SQL SERVER, MS ACCESS y otros.

Como se definió en el Capítulo 6, .NET, maneja el modelo de datos ADO.NET el cual

permite trabajar con conjuntos de datos desconectados, lo cual ayuda a reducir el tráfico 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 sería la base de datos a un nivel lógico: tablas, vistas, relaciones, integridad entre todos

ellos, etc., pero siempre con independencia del tipo de fabricante que la diseñó.

En el presente capítulo se pone en práctica este modelo de acceso a datos reflejando en los

distintos sistemas Web de base de datos tipo ASPx la interconexión realizada para esta

herramienta.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 95 -

11.4.1.1. Figura 13: Vista de programación 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 aplicación, el poder

realizar las tareas de inserción, despliegue, eliminación, etc., para el motor de base de datos

Mysql.

En la búsqueda de componentes a utilizar, se encontró y utilizó el conector mysql-

connector-net-1.0.4, una utilidad MSI (.msi) que al ejecutarse es integrada a las

herramientas proporcionadas por Visual Studio.NET. Esta aplicación es desarrollada por

CoreLab empresa que realiza este tipo de utilidades.

Al instalar esta aplicación, 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 conexión.

Algunas partes del código se ilustran a continuación:

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 96 -

<%@ 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 código inicio.aspx de proyecto ASPxMysql.

11.4.2.2. Tabla 11: Parte código inicio.vb 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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 97 -

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 realización de códigos de

conexiones a bases de datos alojadas en este software que las opciones, funcionalidad y

conexión se realizan dentro de la misma página Aspx en el proyecto. Esto hace que no se

necesite otro tipo de archivo adicional, o códigos .vb extras, solo las instrucciones

necesarias para dicha conexión.

A diferencia con otros sistemas .NET, con manejo de base de datos MySql o Postgres que

necesitan algún 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 capítulo, se presenta el código que carga los datos recolectados de la base de datos

en el Dataset, para posteriormente ser desplegados por pantalla.

Esta no necesita de algún componente extra, facilita al usuario a realizar aplicaciones de

este tipo. Dentro de Visual Studio, en el objeto de conexión directa a la base de datos,

OLEDBCONNECTION, se especifica el proveedor de servicio OleDB para que pueda

entender a que tipo de aplicación u archivo se refiere. Esto referenciado a la base de datos

Microsoft Access (.mdb), almacenada de formal local o remota, queda instantáneamente

conectada y ofrece los objetos necesarios para realizar cualquier tipo de operación con ésta,

en otras palabras queda lista para poder ser utilizada.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 98 -

<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 código insertar.aspx del Proyecto AspxAccess.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 99 -

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 aplicación desarrollada por empresas u organizaciones ajenas a ésta, se deba

buscar en la Internet cualquier tipo de utilidades necesarias para realizar la conexión entre

el IDE de desarrollo, en este caso Visual Studio.NET, y el motor de base de datos

seleccionado.

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

instalación. 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 versión 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 continuación se presenta extractos de códigos generados en el proyecto PostgresAspx, el

cual contiene los códigos de apariencia (.ASPx), como las funciones necesarias (.vb) de la

aplicación.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 100 -

Public Class guardar Inherits System.Web.UI.Page # Declaración 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 código insertar.vb del Proyecto AspxPost.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 101 -

11.4.5. Información Adicional

• Los componentes utilizados para la interconexión entre MySQL y Postgres, se

agregan al toolbox de Visual Studio como los nombres MySQLDirect y

PostgreSQLDirect respectivamente.

• El puerto de conexión utilizado por Visual Studio es el 8081, configurable al

momento de la instalación, el cual no se especifica en la barra de dirección, al ser

incluido automáticamente por el Internet Information Server.

• Las utilidades de conexión utilizadas en esta parte del estudio pueden ser

descargados desde http://www.crlab.com/download.html en donde se encuentran los

paquetes de instalación 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 códigos que generan acciones pueden ser separados de

los que generan las apariencias, para esto dentro del proyecto se crean: las

apariencias, archivos (.ASPx), los códigos de acción (.vb) y Archivos de respuesta

(.resx)

• Los archivos de respuesta (.resx), son códigos interpretados XML los cuales

contienen los objetos SQL insertos en el código generado (.ASPx), este contiene 2

objetos: data y resheader.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 102 -

12. Desarrollo de Pruebas de Comparación entre las

Plataformas J2EE y .NET.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 103 -

12.1. Introducción

Para comenzar a sacar conclusiones serias sobre ambas plataformas de desarrollo, habiendo

estudiado los conocimientos necesarios para la creación de aplicaciones Web que, junto a

las áreas de evaluación y criterios definidos, se pueden empezar a diseñar pruebas que

puedan certificar las aseveraciones mencionadas con anterioridad por los fabricantes y

empresas que apoyan a estas tecnologías y también poder realizar comentarios propios

sobre estas plataformas de desarrollo los cuales se presentarán posteriormente.

En el presente capítulo se mencionarán que criterios son los más aptos para una etapa de

pruebas y si éstos, pueden corroborar dentro de algún tipo de aplicación Web o código,

alguna ventaja que ofrezcan las tecnologías en cuestión y que lleven a una comparación

práctica entre las páginas dinámicas propuestas por J2EE y .NET.

Con este diseño y posterior desarrollo, se evaluará y se definirá las conclusiones que podrán

ser consideradas como fuente de elección para una toma de decisiones acertada y con

fundamentos que permitan a los interesados, conocer los por que de dicha elección y poder

ejemplificar de mejor manera a sus propios usuarios o mismos desarrolladores sobre que

tecnología es mejor de utilizar para cada tarea. Para seleccionar que criterios podrían

llevarse acabo en esta etapa, se consideró que aspectos de la programación podrían

reflejarse en aplicaciones Web. Conceptos como rendimiento, atractivo de la página,

rapidez, etc., son nociones básicas que pueden llevarse acabo realizando pequeñas pruebas

o sistemas que determinen alguna superioridad entre las plataformas de desarrollo.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 104 -

12.2. Diseño de Pruebas Comparativas.

En esta parte del capítulo se quiere constatar en palabras como serán llevadas a cabo cada

una de las pruebas comparativas a desarrollar, para luego realizarlas de forma práctica 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 evaluación, estas son:

12.2.1. Diseño de Pruebas de Aprendizaje.

Para esta área de evaluación se reflejará la simplicidad o complejidad de acceder a los

conocimientos necesarios para acceder a una de las tecnologías en cuestión, se definió:

• Prueba número 1:

“La prueba se define como la simple búsqueda de información disponible sobre los

conceptos J2EE y .NET en el buscador Web más utilizado, Google. En una primera

instancia el concepto sin importar el origen de la página y, posteriormente

delimitando a páginas solo en español.”

• Prueba número 2:

“Realizar una búsqueda sobre: Libros, Software y temas afines, en Amazon.com

(página número 1 de ventas a través de Internet), sobre las plataformas de

desarrollo .NET y J2EE.”

• Prueba número 3:

“Detallar la curva de Aprendizaje por medio de las entrevistas realizadas,

información recolectada y experiencias propias con ambas tecnologías.”

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 105 -

12.2.2. Diseño 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 información real se definió lo siguiente:

Para rendimiento independiente:

• Prueba número 4:

“Realizar una aplicación Web sencilla en la cual solo se de un mensaje de

Bienvenida para desde ahí señalar aspectos a considerar dentro de la

comparación. (Rendimiento, Capacidad de respuesta, Estabilidad, etc.)”

• Prueba número 5:

“Realizar la ejecución de un mensaje desplegado 100.000 veces y medir el

tiempo utilizado para realizar esta acción”

• Prueba número 6:

“Demostrar de forma gráfica el uso de tiempos y recursos de CPU al utilizar los

distintos IDE’s de Desarrollo, tanto Netbeans para J2EE, como para Visual Studio

en .NET”

• Prueba número 7:

“Acceder remotamente por más de un usuario al mismo sitio en el mismo tiempo y

considerar la escalabilidad ofrecida por la página dinámica comparando los

tiempos arrojados”

Para Rendimiento Base de Datos se definió:

• Prueba número 8:

“Realizar 2 Sistemas de Base de Datos vía 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”

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 106 -

• Prueba número 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. Diseño de Pruebas para Explotación y Uso.

• Prueba número 10:

“Detallar una gráfica de explotación o tabla de porcentajes a través de la

información recolectada sobre ambas plataformas”.

• Prueba número 11.

“Detallar la cantidad de sitios realizados bajo una de estas 2 tecnologías

durante la navegación de distintos sitios durante un periodo de prueba y

destacar los sitios de empresas importantes realizados bajo estas tecnologías”

12.2.4. Diseño de Pruebas para Desarrollo.

• Prueba número 12:

“Determinar cantidad de líneas de código para una misma aplicación,

determinando la facilidad de desarrollo en ambas plataformas”

• Prueba número 13:

“Determinar el número de funciones, tareas y procesos proporcionados por

ambos IDE’s de desarrollo, detallando semejanzas en cuanto a su

funcionamiento”.

12.2.5. Diseño de Pruebas de Uso de Licencias.

• Prueba número 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”

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 107 -

12.2.6. Diseño de Pruebas de Compatibilidad.

• Prueba número 15:

“Llevar alguna aplicación, en el caso que corresponda, a algún sistema operativo

Linux, y demostrar que esta aplicación puede ejecutarse en ambientes operativos

diferentes.”

• Prueba número 16:

“Llevar a cabo una observación detallada del funcionamiento de las

aplicaciones JSP y ASPx en distintos navegadores Web o Browser”.

12.3. Creación Tablas de Evaluación y Resultados.

Dentro de esta parte del capítulo se definirán una serie de pasos, los cuales servirán para

evaluar a las plataformas de forma comparativa, lo cual permitirá reflejar en datos

estadísticos y de forma clara los resultados obtenidos por cada plataforma en las respectivas

pruebas y áreas de evaluación.

Con la creación de tablas se quiere ilustrar y dejar de forma más explicita lo asertiva y

minuciosa de la comparación entre las 2 plataformas de desarrollo. Las distintas

clasificaciones de éstas serán un reflejo del trabajo tanto de investigación de las

tecnologías como del proceso de desarrollo de cada una de las aplicaciones creadas en ellas

lo que darán 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 sección de ejecución y resultados de prueba. Así también para el caso en

que una plataforma destaque frente a la otra se creo una tabla de certificación donde queda

esto de manifiesto, las cuales serán utilizadas en las conclusiones a las pruebas.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 108 -

Para esto se crearon las siguientes tablas, de resultados posibles y de certificación, las

cuales reflejan el nivel de cumplimiento ofrecido por las plataformas, y la supremacía de

alguna sobre la otra, estas son:

Resultado Descripción Forma Gráfica

Cumple a Totalidad

La plataforma cumple todas las

expectativas presentadas en el

Área de Evaluación y posee

ventajas adicionales.

Cumple

Satisfactoriamente

La plataforma cumple las

expectativas del área de

evaluación.

Cumple

La plataforma cumple las

expectativas del área de evaluación

sin destacar ventajar adicionales.

Cumple In-

satisfactoriamente

La plataforma cumple las

expectativas presentadas con cierta

dificultad en el área de evaluación.

No Cumple

La plataforma no presenta

respuestas positivas a las

expectativas en el área de

evaluación, poseyendo cierta

desventaja.

12.3.1. Tabla 14: Tabla de Evaluación de Criterios.

Plataforma Logo Plataforma Sobresaliente

Igualdad de

Condiciones

J2EE

.NET

12.3.2. Tabla 15: Tabla de Resultados.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 109 -

12.4. Ejecución y Resultados de Pruebas Comparativas.

En esta sección se dará a conocer el detalle de la puesta en marcha de las pruebas diseñadas

con anterioridad y los resultados obtenidos en éstas, tanto pruebas de programación, como

de simple observación y ejecución. Estas pruebas están realizadas correctamente sin afanes

personales de favorecer a alguna de las plataformas en evaluación, 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 válido a considerar al querer evaluar

ambas plataformas para su utilización. 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. Ejecución y Resultados Pruebas de Aprendizaje.

Ejecución y Resultados Prueba 1.

- Para poder limitar de alguna manera el concepto J2EE, se realizó una búsqueda

avanzada en el buscador Web Google, la nueva búsqueda de “plataforma J2EE” arrojó

1.400.000 sitios en 0,3 segundos, un número elevado que cuesta creer que trate de sólo

páginas relacionados con esta tecnología, el buscador arroja dicha cantidad, restringiendo

posibles conceptos errados a la búsqueda. Limitando el idioma J2EE arrojó 450.000

páginas en español 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 páginas en español aproximadamente en 0,72 segundos.

(Más que mostrar una ventaja de una plataforma sobre información disponible, esta prueba quiere demostrar que el

acceso a información es más que posible a través de la red, lo que hace que éste no sea un aspecto para determinar en

que tecnología especializarse.)

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 110 -

Ejecución y Resultados Prueba 2.

Se realizó una búsqueda sobre manuales J2EE y .NET en www.amazon.com limitando

similitudes del idioma u otros aspectos que no reflejasen de manera correcta la

documentación presentada. Esto arrojó:

En la búsqueda de manuales y documentos J2EE se logró en sus distintas categorías:

Book (223), Software (12), Tools and Hardware (131), Software (8), de la misma manera

para la plataforma .NET se logró para la misma búsquedas: Book (181), Software (41),

Computers (22).

En la sección de Top Sellers, para los primeros 50 puestos, se buscó material relacionado

con las plataformas en comparación, las mejores posiciones fueron:

En: Computers e Internet. En: Programming.

18º Profesional Asp.NET 2.0. 8º Profesional Asp.NET 2.0.

23º Heat First Java 2.0 Edition. 10º Heat First Java 2.0 Edition.

25º Profesional Asp.NET in C#. 12º Profesional Asp.NET in C#.

27º Pro C# 2005 y .NET 2.0 Plataform. 17º Sun Certified Programmer Developer for JAVA

2 Third Guide. 20º .NET.

30º Sun Certified Programmer Developer 35º Head First Servlet in JSP.

for JAVA 2 Third Guide. 37º Profesional JAVA Developer With Spring

Framework.

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 111 -

Ejecución 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.

También accediendo a sitios de capacitación o de información sobre ambas plataformas,

así se pudo modelar un gráfico como se muestra a continuación:

12.4.1.1. Figura 14: Curva de Aprendizaje.

(Para la gráfica se definió 4 etapas básicas en el desarrollo de aplicaciones Web. Un nivel bajo de Inicio Hola Mundo.

La etapa de Diseño en la cual ya se comienza a incluir otro tipo de objetos en la aplicación. La etapa Base de Datos, en

la cual se agregan utilidades para el manejo de información con los distintos motores. Y Aplicación Empresarial, la que

se refiere a realizar productos concisos y robustos realizados bajo estas tecnologías, como los son programas y portales

de ejecución Web.)(Definición por estudio .NET v/s J2EE por Luís Sancho)

12.4.1.2. Tabla 16: Tabla de Evaluación 1: Pruebas de aprendizaje.

Prueba J2EE .NET

Sitios Relacionados.

Sitios en Español.

Calidad de la Información.

Búsqueda y consumo de

Material Relacionado.

Curva de Aprendizaje.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 112 -

12.4.1.3. Información adicional a la tabla:

Dentro de ésta área de evaluación 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. Ejecución y Resultados Pruebas de Rendimiento (Considerar Apéndice E).

Resultados Prueba 4:

- En cuanto a Capacidad de respuesta se observó:

Tiempo de respuesta de una simple aplicación JSP que desplegará un mensaje de

bienvenida, esta fue: De manera local: instantáneo.

De manera remota: instantáneo.

Lo mismo realizado para una aplicación ASPx reflejó:

De manera local: instantáneo.

De manera remota: instantáneo

(Estos datos son promedios de pruebas reflejadas contra reloj interno de cada uno de los IDE’s, lo cual indica una

tendencia para cada página)

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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 113 -

Resultados Prueba 6:

12.4.2.1. Figura 15: Grafica rendimiento normal.

12.4.2.2. Figura 16: Gráfica de Ejecución Netbeans.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 114 -

La gráfica marca su máximo al cargar la aplicación. Posteriormente presenta un promedio

que varia de 47 a 52% en el desarrollo de aplicaciones. Ver Figura 16).

12.4.2.3. Figura 17: Gráfica de Ejecución de Visual Studio.NET.

La gráfica marca su máximo al cargar la aplicación. Posteriormente presenta un promedio

que varia de 43 a 49% en el desarrollo de aplicaciones. (Ver figura 17).

(Para poder medir de forma gráfica 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 características, 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 página en

segundos fue de: retardo 2 segundos aprox.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 115 -

• Las respuestas para Saludo.aspx al acceder 3 usuarios simultáneamente 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.

Tamaño del Proyecto: 956 KB.

Cantidad de Archivos generados en el Proyecto: 43 archivos.

Tiempo de acceso con más de un usuario: más menos 3 segundos.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 116 -

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.

Tamaño del Proyecto: 119 KB.

Cantidad de Archivos generados en el Proyecto: 31 archivos.

Tiempo de acceso con más de un usuario: más 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 117 -

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.

Tamaño del Proyecto: 520 KB.

Cantidad de Archivos generados en el Proyecto: 34 archivos.

Tiempo de acceso con más de un usuario: más 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.

Tamaño del Proyecto: 159 KB.

Cantidad de Archivos generados en el Proyecto: 39 archivos.

Tiempo de acceso con más de un usuario: más menos 4 segundos.

(Para cada una de las pruebas se realizo un promedio de ejecuciones, la cual dió los resultados obtenidos.)

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 118 -

12.4.2.4. Automatización de Prueba.

Además de considerar los sistemas de base de datos anteriores junto a sus respectivos

tiempos de respuesta para cada operación, se realizó un programa para poder automatizar y

darle una mayor certificación 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 conexión a una base de datos MySql alojada en algún

servidor, además una variable “cantidad” para determinar el número de veces que se

ejecutarían dichas operaciones incluyendo tiempos de duración de las sentencias SQL para

así considerar la capacidad de respuesta mostrada por la plataforma de desarrollo.

Este sistema se aprecia en las imágenes siguientes, en primera instancia el sistema sin

ejecutar, en segunda instancia luego de la ejecución y posteriormente la tabla de resultados:

12.4.2.4.1. Figura 18: Automatización Rendimiento primera instancia.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 119 -

12.4.2.4.2. Figura 19: Automatización Rendimiento segunda instancia.

12.4.2.4.3. Figura 20: Automatización Rendimiento, resultados (ejecución de 120

veces).

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 120 -

Prueba J2EE .NET

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

Tamaño del Proyecto

Uso CPU

12.4.2.5. Tabla 17: Tabla de Evaluación 2: Pruebas de Rendimiento.

12.4.3. Ejecución y Resultados Pruebas de Explotación y Uso

Resultados Prueba 10.

Gráfica de Explotación JSP y ASP (aspx).

Para esta prueba en particular se considero un documento realizado por Ricardo Baeza-

Yates y Don Carlos Castillo del Centro de Investigación de la Web dentro del

Departamento de Ciencias de la Computación de la Universidad de Chile, en el cual se

realizó un Estudio de la Web chilena. Realizado en Diciembre del año 2004 esta

investigación analizo mas de 50.000 sitios con dominio en Chile arrojando un crecimiento

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 121 -

del 25% solo en ese año, para esto se utilizo crawler WIRE un programa para poder

descargar sitios completos así también arrojó otro tipo de información como edad,

profundidad, tamaño, largo del url, etc., para cada página. De información relacionada con

el tema se puede nombrar por ejemplo:

• Del total de 50.000 sitios, de alrededor de 3.254.137, el 61,7% pertenecían

a páginas estáticas y el 38,3% páginas dinámicas.

• Alrededor del 14% de los sitios de chile son hechos con tecnología Flash y/o

JavaScript, lo que impide que algún buscador pueda acceder al sitio.

En el plano de páginas Web arrojo:

• Del 38% de páginas dinámicas:

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 tecnologías.

Otro elemento a considerar es el uso de un servidor Web, esto arrojo:

• Apache 57,33%

• Microsoft IIS 28.63%

• Otro 14.05%

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 122 -

12.4.3.1. Imagen 21: Gráfica Explotación Estudio Universidad de Chile 2004.

12.4.3.2. Automatización de Prueba.

Para poder contrastar tales resultados, dentro de esta prueba de evaluación se desarrollo una

aplicación en la cual se analizara el tipo de página dinámica utilizada. Además incluiría un

módulo en el cual se pudieran analizar la mayoría de los dominios .CL, para así hacer

estimaciones que corroboraran los estudios realizados por la Universidad de Chile en el año

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 123 -

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 páginas

dinámicas y su tipo.

12.4.3.2.1. Figura 22: Automatización Explotación.

Resultados Prueba 11.

• Cantidad de Páginas JSP observadas en un periodo de tiempo de 3 meses:

37 sitios con contenido JSP

• Cantidad de Páginas 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 124 -

Prueba J2EE .NET

Explotación Actual

Importancia de Sitios

Internacionales

Importancia de Sitios

Nacionales

Proyección a futuro

12.4.3.3. Tabla 18: Tabla de Evaluación 3: Explotación y Uso.

12.4.4. Ejecución y Resultados Pruebas de Desarrollo.

Resultados prueba 12:

Para limitar de alguna manera la comparación del número de líneas, se dejo 2 tipos de

aplicaciones Web, por una parte ver simplicidad con páginas de saludo en ambas

plataformas, y complejidad al desplegar datos desde una base de datos. Estas fueron:

• Para las líneas de código se tiene:

Saludo.jsp:8 líneas. 3 Tag JSP.

Saludo.aspx:16 líneas.7 Tag ASPx.

Cargar.jsp:45 líneas .Mayor Cantidad TAG JSP.

Cargar.aspx: 33 líneas. Menor Cantidad TAG ASPx.

Resultados Prueba 13:

Para Netbeans se tiene:

- 11 Menús Generales (texto) - 26 objetos (ejecución).

- 150 Submenús a partir del menú - Toolbox gráfico para aplicaciones de

principal. escritorio, no para Web.

- Ofrece impresión HTML del Código. - JSP trabaja en ambientes XML

- Manejo de errores nivel medio. perfectamente.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 125 -

Para Visual Studio.NET se tiene:

- 10 Menús Generales. Texto) - 50 objetos. (Ejecución)

- 138 Submenús a partir del menú principal. - 6 Toolbox de herramientas.

- Toolbox gráfico 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 mínimos de cada

plataforma para la instalación de sus respectivos IDE’s y la ejecución de los códigos

generados, a continuación se presentan 2 tablas de requerimientos mínimos considerados en

esta etapa de desarrollo.

Hardware. Funcionalidad

Mínima.

Funcionalidad

Recomendada.

Procesador Pentium III 500 MHz Cualquiera Superior

Memoria Ram 256 MB 512 MB

Espacio en Disco Duro 350 MB 350 MB

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

Hardware. Funcionalidad

Mínima.

Funcionalidad

Recomendada.

Procesador Pentium II 450 MHz Pentium III 733 MHz

Memoria Ram 128 MB 256 MB

Espacio en Disco Duro 3GB 3GB

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 126 -

Prueba J2EE .NET

Líneas de código Simple.

Líneas de Código Complejo.

Interfaz de Usuario

Ambiente XML

Accesibilidad Código Fuente

Manejo de Errores

Facilidad de Diseño

Herramientas Extras

Funcionalidad Menús

Requerimientos Mínimos

12.4.4.3. Tabla 21: Tabla de Evaluación 4: Pruebas de Desarrollo.

12.4.5. Ejecución y Resultados Pruebas de Uso de Licencias.

Resultados Prueba 14.

Luego de la lectura de ambas licencias sobre los IDE’s de desarrollo Netbeans y Visual

Studio, además de su tipo de licencias y sus costos, se agregaron los costos de otros

programas e IDE’s relacionados. Para esto se obtuvo:

Para costos de J2EE, se tiene:

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 127 -

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 Versión 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 J2EE .NET

Claridad de la Licencia

Productos Licencia Libre

Costos Productos

Comerciales

Nuevas Políticas de Costos

Tendencia de los precios

12.4.5.1. Tabla 22: Tabla de Evaluación 5: Pruebas de Uso de Licencias.

12.4.6. Ejecución y Resultados Pruebas de Compatibilidad.

Resultados Prueba 17.

Para la migración del sistema JSPMysql a ambiente Linux se tiene:

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 128 -

La migración del sistema de conexión a base de datos Mysql desarrollado en un ambiente

Windows para ser llevado a algún tipo de ambiente Linux presentó:

Más que llevar la aplicación Web a un sistema operativo Linux, se acordó llevar esta

aplicación a un Servidor Web con ambiente Linux, en este caso los servidores de la

universidad con sistema operativo OpenBSD.

La migración consistió en copiar el proyecto generado en ambiente Windows en el IDE de

desarrollo Netbeans y ver que resultados se obtenían en primera instancia, estos fueron:

• No visualización de imágenes de la aplicación.

• No generar las operaciones ofrecidas por la aplicación.

• Problemas con conector JDBC.

Para esto se tuvo que realizar un proceso de investigación para poder corregir dichos

errores. En el proceso de depuración, para el caso puntual de las fotos solo se tuvo que re-

direccionarlas 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 versión basada en Linux de código abierto de la plataforma

de desarrollo de Microsoft .NET. Su objetivo es permitir a los desarrolladores de Linux

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 129 -

construir e implementar aplicaciones .NET multiplataforma. Este proyecto implementará

varias tecnologías desarrolladas por Microsoft que han sido enviadas al ECMA para su

estandarización".

Resultados Prueba 18.

• En la ejecución de páginas 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 imágenes.

- Algunas diferencias en cuanto a formatos utilizados,

- Leve cambio en tonalidades.

- TAG <jsp> sin mismo formato.

• En la ejecución de páginas 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 alineación.

No ejecución de acciones (no reconocería aspx).

Prueba J2EE .NET

Migración del Sistema

Compatibilidad con Browser

Formato Único (botones,

alineación, etc.).

Ejecución de Códigos

Despliegue de Imágenes

12.4.6.1. Tabla 23: Tabla de Evaluación 6: Pruebas de Compatibilidad.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 130 -

13. Conclusiones de Pruebas Realizadas.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 131 -

13.1. Introducción.

En este capítulo se presentan las conclusiones obtenidas durante la etapa de pruebas

desarrolladas para esta evaluación teórico – práctica que junto con la investigación

realizada y el estudio personal de ambas tecnologías, se puede dejar ciertos aspectos más

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 tecnologías, tanto

considerándolas individualmente, como también desde una postura comparativa.

Dentro de estas conclusiones se hará hincapié en las claras ventajas aportadas por cada

tecnología y que aspectos se deberían considerar antes de emitir juicios sobre cada una de

éstas. Dentro de esta misma parte de la evaluación de las plataformas se definen los logros

obtenidos a la problemática que se planteó desde un principio para fundamentar este

trabajo. Así se podrá separar y mencionar correctamente cuales son las superioridades

presentadas por cada tecnología con fundamento y sin caer en fanatismos o preferencias.

De este modo, al realizar una comparación y querer manifestar los atributos de cierta

tecnología, que para opinar, al menos se debe conocerla para poder dar fundamentos

válidos a considerar, sin este conocimiento, cualquier comentario realizado no pasará de ser

solo una opinión y no podría ser considerado como un medio válido de referencia.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 132 -

13.2. Conclusiones de Pruebas de Aprendizaje.

Luego de concluir las pruebas relacionadas con el Área de Aprendizaje y especialmente en

el área de inicialización a las plataformas, por medio de la búsqueda 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, difícilmente un tema no habrá sido evaluado o considerado por

alguien que manifieste algún tipo de interés y haya documentado información 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 información es en grandes cantidades, que con sitios de diferente

orientación, realizando una buena búsqueda, se puede encontrar lo necesario para suplir las

necesidades en cuestión.

Al querer acceder a información en idioma español, esto no varía mucho con la semejante

en inglés. Aunque como suele suceder en la mayoría de los casos, la mejor información se

encuentra en este idioma, existe la intensión 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 aplicación Web simple y rápida sería

inapropiado bajo este estándar. Por su parte .NET ofrece una curva de aprendizaje mucho

más agradable, lo que hace que el usuario pueda desarrollar aplicaciones de diferentes tipos

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 133 -

en cortos periodos de tiempo. Dentro del consumo de información 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 interés sobre la tecnología

planteada por Microsoft que por el estándar J2EE. Por una parte los software .NET

ofrecidos, en la mayoría de las listas consultadas, las ponen en primer lugar. La

documentación de manuales y guías de referencia hace ver un mayor nivel de

perfeccionamiento en esta plataforma lo que en sí da una orientación al usuario en general

que aún no sabe que especialización 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 podría considerarse posteriormente en el área de evaluación Explotación y Uso.

Evaluación Explicación Plataforma

Sobresaliente

Información Disponible En igualdad de Condiciones, no se observa alguna

ventaja por parte de una de las plataformas.

Información Disponible

en Español

En igualdad de Condiciones, no se observa alguna

ventaja por parte de una de las plataformas.

Curva de Aprendizaje .NET sobresale tímidamente por el hecho de presentar

aplicaciones funcionales en menor tiempo que el

presentado por J2EE.

Consumo de Material

Relacionado

.NET supera con creces a J2EE en cuanto al material

buscado, descargado y pagado por él.

Acceso a Software

Relacionado

Los Software en los primeros lugares de ventas en la

Web y tiendas investigadas dan a .NET como una de las

más accedidas por los usuarios.

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 134 -

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 evaluación es un factor importante y valioso

a la hora de compararlas. Cada una se ha preocupado de desarrollar tecnologías que

permitan llevar esto de mejor manera, considerando los avances de la competencia para no

quedarse atrás.

Para el despliegue de aplicaciones ninguna plataforma mostró una ventaja sobresaliente

sobre la otra. La estabilidad para páginas Aspx de .NET y JSP para J2EE no presentaron

grandes retardos al incrementarse el número de usuarios que acceden a este tipo de páginas

con contenidos simples, con la salvedad de leves superioridades de JSP por la simpleza de

los códigos generados.

Para poder presentar tiempos semejantes cabe destacar el funcionamiento de los servidores

Web correspondientes a cada tecnología, 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 métodos de estabilidad que permiten distribuir la carga

de los sitios en función 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 tecnología 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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 135 -

que los tiempos de respuesta aumentan, éstos no presentan mayores ventajas una sobre la

otra. Con salvedades como que Mysql funcionó de forma más expedita con J2EE que con

.NET y, de la misma forma, Postgres presentó mejores tiempos con .NET esta área no deja

claro algún tipo de conclusión radical.

Otras conclusiones:

Estudio realizado por el sitio objectwatch.com, afirma que la plataforma .NET puede escalar desde

16.000 transacciones por minuto a más de 500.000, mientras que IBM WebSphere, usando

tecnología J2EE/UNIX, puede pasar de 17 mil a 110.000 transacciones por minuto, con un coste

monetario mucho mayor por transacción, ayudaría a decir que con .NET se obtendría 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 aplicación de este tipo. De este

modo los tiempos de la conexión a la base de datos no dependería solo del IDE de

desarrollo ni del motor de base de datos seleccionado, también influirían en aspectos como:

el tipo de conexión, el tipo de conector utilizado, el ancho de banda, etc.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 136 -

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 algún

tipo de aporte en los tiempos establecidos. Primero los tipos de conexión están insertos

dentro de los códigos generados por cada aplicación, lo que hace que el tiempo que se

compilan los programas, la conexión tanto JDBC como ADO.NET quedan insertas, lo que

no aportaría algún porcentaje de tiempo de respuesta. Lo mismo vendría a ser para el ancho

de banda, pues es muy difícil corroborar que siempre este presente los canales de

comunicación abiertos para la generación de respuestas exactas al ancho establecido.

Evaluación Explicación Plataforma

Sobresaliente

Retardo de Aplicaciones Para ambas plataformas se observan los mismos retardos al

acceder una mayor cantidad de usuarios. En repetición de

mensajes presentan mismos tiempos de ejecución.

Manejo de Base de

Datos local

Para el manejo de base de datos ambas plataformas

presentan buenas funcionalidades. Tiempos de respuesta

mejores por J2EE y simpleza de código, aunque más

complicado. .NET más 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

Manejo de Base de

Datos remota

Para los sistemas anteriores ejecutados de forma remota

estos presentan semejantes funcionamientos que de manera

local, con salvedades que al cargar datos por 1era vez .NET

mostró pequeñas demoras con respecto a J2EE. Luego de

ejecutados ambos sistemas .NET presento un mejor

funcionamiento.

Uso de Recursos

Para obtener resultados óptimos, J2EE necesita ocupar mas

recursos tanto CPU, memoria Ram como espacio físico.

Para esto mismo .NET ofrece resultados óptimos con menos

utilización de recursos.

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 137 -

13.4. Conclusiones Pruebas de Explotación y Uso.

Luego de concluir las pruebas sobre esta área de evaluación se puede decir que en cuanto a

la explotación y uso de estas dos tecnologías, si se observan algunas diferencias marcadas.

Por un lado, luego de estar presente por muchos años en el mercado, el tipo de aplicación

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 creación de estos sitios, razones que para muchos

influyen en cambiar de aplicación o implementar soluciones más baratas. Por otra parte el

estándar J2EE ha ido evolucionando vertiginosamente en el mercado de aplicaciones Web,

con la aparición de los Web Services, ofreciendo a un nivel más elevado de usuarios y

organizaciones sus macro-productos de desarrollo, como la línea WebSphere en la cual se

pueden crear portales de aplicación y múltiples servicios en los cuales las páginas JSP

vendrían a ser solo una pequeña parte del grupo de funciones y aplicaciones incluidas en

este tipo de software de desarrollo, eso si a costos tanto económicos como de equipamiento

bastante elevados, lo que hace que el usuario común este lejos de poder adquirirlos. Por

otro lado .NET y sus páginas dinámicas 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 común y más presente que para las

páginas dinámicas J2EE.

Dentro de los estudios analizados como el de la Universidad de Chile el año 2004, junto a

las pruebas desarrolladas, en especial la automatización de la prueba de Explotación y Uso

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 138 -

desarrollada para esta área. Se pueden sacar ciertas características sobre estos criterios,

pues, por ejemplo, el hecho de que los Servidores Web manejen dominios y no las

dirección IP de los sitios hace que no se pueda acceder directamente al sitio por la

dirección IP de ésta, sino solamente con su dominio o URL, lo que hace que se necesite

conocer el dominio para poder saber en que tecnología esta desarrollado.

Otro hecho a considerar es que muchos estudios realizados sobre la explotabilidad de

páginas dinámicas no suele ser objetivo, por ejemplo el hecho de que un sitio Web este

desarrollado bajo tecnología J2EE en páginas JSP con link a 30 páginas del mismo tipo, y

otro sitio corresponda a ser realizado bajo ASPx de Microsoft y estos hagan referencia a 50

links de páginas desarrolladas de la misma manera, no debería contabilizarse el hecho de

que existan 50 páginas ASPx y 30 JSP, pues lo que realmente interesa es saber cuantos

sitios utilizan estas tecnologías, y no la cantidad de páginas sobre éstas, al corregir esto se

podrá saber exactamente cuantos sitios manejan un tipo de tecnología en particular.

Además de estas conclusiones se menciona el hecho de la nula interacción de los sitios

accedidos para con contenidos ASP con JSP, o sea, el existir una página tipo JSP que envíe

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 difícil 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

podría simular accediendo a la instalación de todos los paquetes de Catalina-Apache-

Tomcat para la ejecución de páginas dinámicas JSP y ASP, incluso con el soporte a

páginas PHP.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 139 -

Evaluación Explicación Plataforma

Sobresaliente

Curva de Explotación

Ambas plataformas presentaron un nivel de explotación

semejante al momento de salir al mercado. Actualmente

sobresale la utilización de páginas ASP y su semejantes

Web Forms ASPx, dejando a JSP de J2EE más atrás en

el presente.

Explotación

El nivel de Explotación es aparentemente superior en la

actualidad por la tecnología .NET. Dejando a J2EE en

un mercado global de aplicaciones robustas de servicios

Web.

Distribución

Aunque las páginas JSP presentan un número menor de

apariciones en la Web. Se observa la utilización de

ambas tecnologías por sitios de importancia y relevancia

en el medio.

Cantidad Servidores

Web

Para esta característica no se presenta algún tipo de

variable que haga que alguna plataforma destaque sobre

la otra.

Capacidad Servidores

Web

A través de los distintos Servidores Web, Tomcat

instalado en un sistema operativo Linux, da a J2EE una

ventaja clara por sobre .NET al poder ejecutar

correctamente un mayor tipo de páginas dinámicas

(ASP, JSP y PHP).

13.4.1. Tabla 26: Tabla de Resultados Explotación y Uso J2EE v/s .NET

13.5. Conclusiones Pruebas de Desarrollo.

Para realizar conclusiones dentro del área de evaluación 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

tecnologías. El considerar las líneas de código como un factor influyente se debe a que en

el ambiente de programación, este es un punto analizado y considerado (revisar

bibliografía). Los resultados obtenidos reflejan que la utilización de TAG tanto JSP como

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 140 -

ASP, hacen ver que a mayor utilización de funciones en ambas tecnologías, los códigos

HTML son mínimos, y que éste solo debe darle la interpretación al Browser para que pueda

desplegar la información, de lo demás se encargará el Servidor Web. Para las aplicaciones

de saludo y cargar datos de una base de datos, las líneas de código arrojadas no devuelven

datos concluyentes para hacer de este cotejo o una característica que marque superioridad.

Ambas plataformas presentan un nivel aceptado y semejante a la hora de comparar

aplicaciones símiles en ambos IDE’s de desarrollo.

Con respecto a los IDE’s 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 más parecidas a Visual Studio.NET, distan en precios y objetividad. A pesar de esto,

ambos IDE’s presentan las funcionalidades necesarias para el desarrollo de aplicaciones

Web, aunque para .NET se presenta de una mejor manera, lo que hace que la creación y

desarrollo de éstas puedan ser realizadas por un usuario común 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 más clara y concisa lo que posibilita una mejor y más rápida

corrección de los códigos. La accesibilidad del código fuente para ambas tipos de páginas

dinámicas Web, se diferencia por el hecho de al acceder a páginas ASP, estas presentan un

mayor nivel de información indeseada que JSP. Otro hecho a considerar como conclusión

son las ventajas extras que estos IDE’s de desarrollo ofrecen, como el hecho particular de

presentar los códigos en otros formatos como Netbeans, el cual presenta los códigos JSP

como páginas HTML, lo que brinda un buen elemento extra de desarrollo

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 141 -

Para terminar se puede decir que ambas plataformas presentan funcionalidades extras

superiores a la otra en el área de evaluación de Desarrollo, por un lado J2EE destaca por su

simplicidad de códigos y herramientas extras, .NET sobresale por la facilidad de diseño y

desarrollo de aplicaciones Web.

Evaluación Explicación Plataforma

Sobresaliente

Líneas de Código

Ambas tecnologías arrojan un número semejante y

considerado para el distinto tipo de aplicación Web

presentada. Ambos tipos de TAG se consideran a un

nivel mayor por parte de .NET en cuanto a diseño. Y

mayor número de líneas de código más que TAG por

parte de JSP.

Herramientas Extras

Aunque Visual Studio.NET facilita de mayormente el

diseño y desarrollo de aplicaciones WEB. J2EE presenta

un número de herramientas extras que facilitan el

trabajo del programador.

Facilidad de desarrollo

En el análisis de los IDE’s seleccionados, .NET presenta

uno de mejor diseño para la facilidad de aplicaciones

Web que J2EE, facilitando el desarrollo, mejorando

tiempos de creación y ejecución.

Claridad en los códigos Al acceder a los códigos J2EE da menos información a

personas ajenas a éste.

Manejo de Errores Se puede considerar a J2EE con su IDE de desarrollo

Netbeans como un mejor manejo de error, al indicar

claramente cual vendría a ser éste.

Atractivo del IDE de

Desarrollo

Visual Studio .NET ofrece lo mejor de ambos mundos de

programas de desarrollo, principalmente un atrayente

atractivo visual, y por detrás un poderoso lenguaje de

codificación.

Necesidad de

Componentes

Para el desarrollo de aplicaciones Web con manejo de

base de datos, ambas plataformas necesitaron de

componentes extras, tanto J2EE con JDBC como .NET

con las utilidades de conexión.

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 142 -

13.6. Conclusiones Pruebas de Uso de Licencias.

Al comenzar a definir las conclusiones obtenidas bajo esta área de evaluación, se debe

hacer notoriedad en los dos hechos más fundamentales abarcados bajo estos criterios de

evaluación. Primero separar el uso de productos libres de licencias, incluyendo los permisos

otorgados sobre los códigos y claridad de estas licencias. Posteriormente el hecho de los

costos de acceso a herramientas profesionales bajo estos dos estándares de desarrollo.

Al referirse a las licencias otorgadas tanto sobre las tecnologías J2EE y .NET y sus

respectivos IDE’s de desarrollo utilizados en este estudio, se puede mencionar que para la

mayoría de los productos de licencia libre para J2EE tienen cláusulas 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 tecnología. 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 tecnología .NET.

El otro punto fundamental dentro de esta área de evaluación es, la consideración de los

costos monetarios adquiridos al acceder a herramientas profesionales de desarrollo. Para

J2EE, a pesar de presentar IDE’s 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”,

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 143 -

elevándose a cifras que difícilmente un usuario normal o mediana o pequeña empresa

pueda acceder, lo que hace que la orientación este claramente hacia empresas y

corporaciones importantes las cuales están 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

líneas, éste al ser comparado con herramientas semejantes J2EE lo posicionan como una

mejor alternativa para el usuario común.

Evaluación Explicación Plataforma

Sobresaliente

Claridad de Uso de

licencias.

Ambas licencias no presentan consideraciones

engorrosas que generen algún tipo de interpretación

ajena a la que éstas presentan.

Consideración paquetes

educacionales.

Solo J2EE considera la descarga gratuita de muchos de

sus productos e IDE’s de desarrollo e incluso la maquina

virtual es libre de acceso.

Costos de herramientas

simples.

Refiriéndose al enunciado anterior por contar con

paquetes educacionales o considerados de licencia libre

J2EE ofrece sus productos gratis, incluso se pueden

acceder a través de Internet y llegarían al hogar del

cliente.

Costos por aplicaciones

Creadas.

La licencia de .NET permite al usuario desarrollar sus

propias aplicaciones comerciales sin necesidad de

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 aplicación comercial.

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 144 -

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 evaluación más 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 "escríbelo una vez, ejecútalo 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 aplicación 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 pequeñas 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.

Apoyándose en el estudio de Ricardo Chamorro, se concluye además que a pesar de la gran

portabilidad de J2EE, existe el problema éste es un estándar y no un producto en sí. Este

hecho, que facilita la adopción de esta tecnología por parte de varios fabricantes, también

conlleva que las implementaciones de J2EE no son 100% compatibles entre sí, ya que cada

vendedor ha realizado su propia interpretación del estándar y ha añadido nuevas

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 145 -

características 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 aplicación 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 solución.

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 técnicos,

económicos, de entorno y capacidades, la elección de una de estas plataformas de

desarrollo no debería generar algún problema ya que ellos manejan sus necesidades y

sabrán tomar una desición adecuada.

También se puede incluir dentro de la Compatibilidad, que más que ser un problema de

migración, 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 migración la

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 146 -

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 tecnología, pues

si sus intereses son otros, esta ventaja sería 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 código Intermedio), para todo tipo de lenguaje (inclusive JAVA). Esto

posibilitaría el poder desarrollar una aplicación 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 aplicación sería algo sin precedente, con esto Microsoft pretende

lograr la interoperabilidad ofrecida por Java y llevarla acabo para a través de MSIL a todo

lenguaje.

Evaluación Explicación Plataforma

Sobresaliente

Visualización Ambas plataformas no presentan grandes problemas con

respecto a la visualización de las distintas páginas

dinámicas.

Portabilidad J2EE presenta la tan valiosa portabilidad, dependiendo

del tipo de usuario considerado

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 147 -

14. Conclusión.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 148 -

Durante el transcurso de la investigación de las tecnologías J2EE y .NET en el desarrollo

de aplicaciones Web, junto con la búsqueda de definiciones claras para cada producto, que

consideren a un usuario de nivel básico el poder entender este documento, el hecho de

considerar investigaciones realizadas por personas conocedoras del tema, que junto a la

creación de las áreas de evaluación con sus criterios y sus respectivas pruebas de

comparación, se pudo realizar las siguientes conclusiones con respecto a la evaluación

comparativa entre éstas tecnologías en el ámbito de las aplicaciones Web.

Con ésto se puede considerar al estudio como una herramienta válida de consideración

para futuros usuarios y personas en general, quienes deseen introducirse en una de estas dos

tecnologías 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 elección debe estar

acompañada de un conocimiento previo, para no tomar cualquier decisión acelerada que

pueda generar conflictos a futuro, deteniéndose en los pequeños detalles, los cuales

permitirán un mejor desenvolvimiento con las herramientas de desarrollo, o el lenguaje de

programación llevado por cada tecnología.

Aparte de las características mencionadas con anterioridad, se necesita tener una mente

abierta y consiente de que cualquier abanderamiento o una postura cerrada en el ámbito

informático, hace que cualquier nuevo producto o nuevas características 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 tecnología.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 149 -

Este trabajo también 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

problemática presentada en los inicios de este estudio teórico-práctico, manifestando las

ventajas y desventajas presentadas por las tecnologías. También 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 utilización como manual para

la creación de aplicaciones Web bajo las plataformas J2EE o Microsoft.NET.

Característica a Comparar Plataforma en

Ventaja

Aprendizaje

Rendimiento

Explotación y Uso

Desarrollo

Uso de Licencias

Compatibilidad

14.1. Tabla 30: Tabla de Conclusiones Finales

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 150 -

Ventajas Desventajas

El número de Empresas que

apoyan a la Plataforma.

Uso excesivo de recursos

para algunos software de

desarrollo.

Capacidad de Migración de

Sistemas Desarrollados.

Java como único lenguaje

de programación para

aplicaciones de todo tipo.

Accesibilidad de Códigos en

los diferentes IDE’s de

desarrollo.

La no integración de

conectores JDBC básicos

en los IDE’s de desarrollo.

Acceso a datos para distintos

motores con la utilización de

JDBC.

Incompatibilidad J2EE

dependiendo de la

interpretación del

fabricante.

Capacidad de acceder a

herramientas de licencia

libre.

Costos de licencias sobre

productos de desarrollo de

nivel superior.

Potencial de los Web

Services desarrollados con

manejo de XML.

Costos sobre el aprendizaje

de software comercial

orientado a empresas.

Proyección a Futuro de

ciertos proyectos de

desarrollo de software.

Curva de Aprendizaje

elevada para usuarios

iniciales.

Poderío Servidor Web

Tomcat, con capacidad de

despliegue de distinto tipos

de páginas dinámicas.

Consumo de recursos en la

ejecución de Aplicaciones.

Detección y Manejo de

errores por parte del

usuario.

Baja del desarrollo de

páginas JSP en la red.

14.2. Tabla 31: Tabla Ventajas y Desventajas J2EE.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 151 -

Ventajas Desventajas

Facilidad de Diseño de

Aplicaciones de todo tipo.

Incapacidad de la

portabilidad de

Aplicaciones.

Capacidad de elección del

lenguaje en el cual se quiere

diseñar y programar.

Costos Elevados para el

acceso a herramientas de

desarrollo de este tipo.

Proyección a Futuro de las

distintas herramientas

presentadas por .NET

Inexistencia de productos

de licencia libre para el

desarrollo educacional.

Proyectos de Integración a

futuro (MSL y Mono). Orientación comercial.

Desarrollo de Web Services

con manejo XML

La orientación única

sobre sistemas operativos

Windows.

ADO.NET como

herramienta de conexión

sobre Bases de Datos.

No consideración de

herramienta de conexión

a BD incluidas en sus

IDE’s de desarrollo.

Curva de Aprendizaje

favorable para usuarios

iniciales.

Incapacidad de trabajo

con otro tipo de páginas

dinámicas por la

tecnología .NET

Los Requerimientos mínimos

y consumo de recursos por

las aplicaciones creadas bajo

este estándar.

Instalación excesiva de la

herramienta de

desarrollo Visual

Studio.NET

Explotación en la red del tipo

de páginas dinámicas ASPx

Interoperatividad de IIS

durante la ejecución del

Servidor Web Apache.

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 152 -

16. Bibliografía.

Páginas Web:

• Análisis 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 • Análisis Cimientos de las Aplicaciones Web. http://www.cientec.com • Diseño 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 • Programación Fácil http://www.programacionfacil.com/vbnetl http://www.programacionfacil.com/javajsp/l • Programación JSP http://www.jsptut.com/index.html • ¿Que es JSP? http://www.desarrolloweb.com/manuales/27

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 153 -

Documentos:

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

• Comentarios generales sobre J2EE y .NET y análisis 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 Luís 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 Aplicación en tres Capas con VS .NET, (por Joel

Francia H)

• Guía de Tesis: Visualizador de Datos Geográficos sobre Internet, (por Freddy Lara González)

• Estudio de Interoperatividad .NET/J2EE, (por Leonardo Rodríguez,

Andrés Vignaga, Felipe Zipitría.) 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 154 -

Documentos .NET

• Programación con Visual Basic.NET Francisco Charte.

• Programación en Visual Basic.NET

Luís 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 informático, consultor Java y relator en tecnologías de información, co-fundador de Comunidad Java (http://www.comunidadjava.cl), profesor de la Escuela de Ingeniería del DuocUC, instructor de CIISA Golden Training y columnista de las revistas ComputerWorld y PCWorld.

- Oscar Ascencio Alarcón, ingeniero civil en informática de la Universidad Técnica Federico Santa María, ha desempeñado varios cargos gerenciales y ha dirigido proyectos relacionados con Tecnologías de la Información en Chile y otros países de Latinoamérica. Posee una intensa experiencia docente en importantes universidades chilenas. Actualmente, se desempeña 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 además MVP en C# .NET, experto en el desarrollo de aplicaciones distribuidas, implementaciones de Servicios Web, .NET Remoting, XML y la implementación y el uso de patrones UML para el desarrollo de aplicaciones .NET usando Building Blocasy UML.

- Leonardo Rodríguez, Andrés Vignaga, Felipe Zipitría, docentes Universi de la República, Facultad de Ingeniería, Instituto de Computación Montevideo Uruguay.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 155 -

Anexos

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 156 -

Anexo A.

a. Códigos J2EE.

Dentro de este anexo se incluirán solo los códigos más representativos de códigos JSP

desarrollados en la creación 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();

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 157 -

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.*" %>

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 158 -

Tabla a.1.3. index.jsp de JSPMysql.

<%

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>

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 159 -

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> <input type="submit" value="Buscar Datos"></td><td><input type="reset" value="Borrar

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> <input type="submit" value="Buscar Datos"></td><td><input type="reset" value="Borrar

Datos"></td>

</tr>

</table> </form> <br>

<a href="http://localhost:8084/JSPmysql" ><h1>Volver a Pagina Principal </a>

</BODY>

</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 );

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 160 -

%>

<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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 161 -

Tabla a.2.3.buscado2.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 );

%>

<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>

<% if (con != null)

{

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(); stmt.close(); con.close();

} %> </table>

<form method=post action="cargar.jsp"> <input type=submit value="Ver Datos Ingresados"> </form>

<a href="http://localhost:8084/JSPpost" >Volver a Pagina Principal </a>

</center>

</body>

</html>

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 162 -

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>Modificación 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 bgcolor="#78705A"><h1>Nueva Clave </td><td> <input type="text" name="clave2"

size="25"></td></tr>

<tr><td bgcolor="#78705A"><h1>Nuevo Nombre</td><td> <input type="text" name="nombre"

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> <input type="submit" value="Modificar Datos"></td><td><input type="reset" value="Borrar

Datos"></td>

</tr>

</center>

</form>

</table>

</form>

<br>

<a href="http://localhost:8084/baseweb" >Volver a Pagina Principal </a>

</center>

</BODY>

</html>

Tabla a.3.1. modificar.jsp de JSPAccess.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 163 -

<%@ 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 164 -

Anexo B.

b. Códigos .NET.

Dentro de este anexo, se incluirán solo los códigos más 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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 165 -

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

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 166 -

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>

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 167 -

<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="Z-

INDEX: 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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 168 -

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="X-

Large" 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" Font-

Names="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" Font-

Names="Verdana" EnableViewState="False" Font-Bold="True" ForeColor="Navy">

Ingresar Peliculas Vistas</asp:label>

</TD></TR>

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 169 -

</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" Font-

Size="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" Font-

Size="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" Font-

Size="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" Font-

Size="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" Font-

Size="Medium" Width="71px" Font-Bold="True">Descripción</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" Font-

Size="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" Font-

Size="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" Font-

Size="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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 170 -

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"

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 171 -

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.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 172 -

Anexo C.

c. Realización de Pruebas Anexas.

c.1. Prueba Anexa Aprendizaje.

Además de las pruebas detalladas en el capítulo 12 Desarrollo de Pruebas de

Comparación entre las Plataformas J2EE y .NET. Se realizó la búsqueda de material afín

a las plataformas en estudio, en el se destacó la orientación dada por la Universidad

Católica de Temuco a la programación.

Esta búsqueda arrojó:

Material relacionado con J2EE: directamente un documento:

Programación JAVA Server con J2EE.

Para información relacionada con el concepto java la biblioteca arrojó 43

documentos relacionados.

Documentos relacionados con Microsoft .NET solo arrojó documento afín:

Microsoft Visual Studio.NET Step by Step, de Michael Halvorson.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 173 -

Anexo D.

d. Estudio de la Web Chilena.

La Web Chilena 2004

Ricardo Baeza-Yates

Carlos Castillo

Centro de Investigación de la Web

Departamento de Ciencias de la Computación

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 más de 50.000 sitios, y estos sitios

contienen más de 3 millones de páginas.

• Cerca de 1/4 de las páginas chilenas fue creada o actualizada en el último

año, lo que implica un alto grado de crecimiento y dinamicidad.

• Los países más referenciados desde Chile son Estados Unidos, Brasil,

Argentina, España, Reino Unido y Alemania, y el número de referencias a

países extranjeros está relacionado con el volumen de exportaciones. Las

excepciones más importantes a esta regla son tres países con los cuales el

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 174 -

intercambio comercial supera al número de enlaces predicho: China, Corea y

Japón.

• Los sitios con más referencias son el Servicio de Impuestos Internos, la

Universidad de Chile, el Ministerio de Educación, el Servicio de

Meteorología y la Universidad Católica.

• Los proveedores de hosting con mayor número de sitios son Tie, VirtuaByte,

Entel, TChile, Lycos, Tecnoera, PuntoWeb y Netline.

Respecto a la calidad de las páginas y sitios:

• El 10% de los sitios más grandes contienen el 95% de la información en la

Web chilena (medida en el número de bytes contenidos en sus páginas).

• Casi el 13% de los sitios de Chile no son fáciles de encontrar ya que están

hechos con Flash o Javascript, lo que no permite que los buscadores entren a

esos sitios, con lo que parecen tener sólo una página.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 175 -

En su sección 2.6.

2.6. Páginas dinámicas.

Cerca del 38% de las páginas descargadas eran páginas dinámicas. La aplicación más usada

para generarlas es PHP, seguida de ASP y páginas generadas usando Java (.jhtml y .jsp).

PHP, una tecnología de código abierto, claramente domina el mercado. Las páginas

dinámicas son construidas principalmente usando técnicas de pre-procesamiento de

hipertextos (PHP, ASP, JHTML, ColdFusion), en que los comandos para generar el

contenido dinámico, como accesos a bases de datos, están incrustados en documentos que

son principalmente código HTML. Debe ser considerado también que algunas de las

páginas que se ven como páginas estáticas, incluso con terminación .html, son en realidad

generadas automáticamente usando procesamiento por lotes, con sistemas de

administración de contenidos, así que hay otras tecnologías de contenido dinámico que

pueden estar faltando en este análisis.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 176 -

Anexo E.

e. Consideraciones Estadísticas de Rendimiento.

Para poder determinar que pruebas pueden demostrar ciertos aspectos dentro del

rendimiento de aplicaciones se considerará el modelo estadístico para el análisis de sitios

Web ofrecidos por José Emilio Gondar Nores de DataMining Institute y otros de análisis

en general como los ofrecidos en www.deltablog.com.

Para Rendimiento de capacidad de respuesta: Se necesitan pruebas que determinen los

tiempos entre la petición cliente y la respuesta servidor. Lo cual debe mantener un

promedio considerando ciertos aspectos como:

Algunos estudios estadísticos dejan algunos datos i acerca de la cantidad de código

necesario para realizar una misma tarea en cada plataforma. Según los datos del siguiente

estudio del Software Productivity Research

(http://www.gotdotnet.com/team/compare/petshop.aspx), J2EE necesita más líneas de

código que .NET para realizar la misma funcionalidad. A la hora de codificar un

determinado punto de función en Java necesitaron unas 53 líneas de código, mientras que

en .NET sólo hicieron falta 16 líneas, del mismo modo para la implementación de una

aplicación seleccionada se necesitaron 3.484 líneas en .NET y 14.273 en Java. (Fte

DeltaBlog)

Considerando estos aspectos las pruebas de rendimiento deberían considerar:

- Capacidad de respuesta del servidor utilizado.

- Capacidad de respuesta de acceso al servidor que aloja datos en algún motor de BD.

Evaluación Comparativa entre J2EE y .NET en Aplicaciones Web - 177 -

- Capacidad de respuesta sobre ejecución 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 están basadas en cuanto al estudio definido sobre las

plataformas de desarrollo Sun J2EE y Microsft .NET. Haciendo referencia a la bibliografía

y documentos que apoyaron esta investigación, se puede comentar que éstas pruebas son las

pruebas básicas que se pueden considerar para medir de manera correcta las capacidades de

las plataformas en cuestión.

Cada prueba definida se basó en el modelo de ejecución de una misma máquina habilitada

como servidor, con la utilización de distintos servidores WEB para el despliegue de estas

aplicaciones, los distitntos IDE’s analizados para ambas plataformas y el diseño y

desarrollo de aplicaciones que pueden demostrar superioridades con respecto a las áreas de

comparación definidas. Puede que éstas no sean suficientes para un ámbito general de

comparación, pero si cubre los aspectos importantes en un análisis Web.