La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Quién es más prometedor, JavaEE o ASP.NET? ¿Por qué? ¿Dónde están las buenas noticias?

¿Quién es más prometedor, JavaEE o ASP.NET? ¿Por qué? ¿Dónde están las buenas noticias?

JavaEE es más prometedor que ASP.NET.

Comparación entre J2EE y China. Net

1. Comparación de arquitectura

Como plataformas de aplicaciones competidoras, J2EE y . NET son muy similares en objetivos y arquitectura, pero completamente diferentes en implementación.

(1) Infraestructura de plataforma similar J2EE y. NET, sin embargo, se originó a partir del concepto de máquinas virtuales alojadas. NET va aún más lejos con la Máquina Virtual Java (JVM). Mientras aprende los mecanismos de manejo de excepciones y recolección automática de basura de la JVM, CLR también lo ayudará. plataforma NET.

Abrir. NET y J2EE, la compilación del programa pasa por dos procesos similares. En primer lugar, los compiladores específicos de lenguajes de alto nivel traducen C# (y otros lenguajes .NET) y el código fuente de Java a lenguaje intermedio (IL) y código de bytes, respectivamente. En el diseño de lenguajes intermedios. NET ha considerado muchos lenguajes convencionales de alto nivel y los ha implementado. Nivel de plataforma NET. La piedra angular de J2EE es el lenguaje Java y su característica más típica es: escribir una vez y ejecutar muchas veces. La multiplataforma es la clave de la que J2EE siempre se ha enorgullecido y se logra a través de la JVM.

En segundo lugar, durante la ejecución, el lenguaje intermedio se compila en código binario específico de la plataforma mediante un compilador justo a tiempo (JIT). La JVM interpreta y ejecuta el código de bytes para completar las funciones de instrucción. los respectivos idiomas. En vista de las habilidades de optimización de código de Microsoft en la plataforma Wintel, la velocidad de ejecución es un hecho indiscutible. NET tiene claras ventajas sobre Java. Sin embargo, en plataformas Unix/Linux, porque. NET no ha cumplido su promesa multiplataforma, J2EE casi se ha convertido en la única opción y la comparación de la eficiencia de ejecución es irrelevante. Mientras se ejecuta el código, Common Language Runtime y la máquina virtual Java también proponen una gestión automática de la memoria, como la captura de excepciones, la seguridad de tipos, la asignación de memoria y la recolección de basura, lo que reduce en gran medida el problema de pérdida de memoria del software moderno y alivia la pesada carga de los programadores. .

Programación orientada a objetos en J2EE y . NET, herencia de raíz única e implementación de múltiples interfaces son sus características. Pero fuera de la orientación a objetos. NET proporciona soporte directo para la programación de componentes modernos. Por supuesto, muchos middleware empresariales se basan en la plataforma J2EE. NET brinda a la programación de componentes un soporte cada vez más directo desde el diseño, la codificación, la configuración hasta la operación.

Es difícil para estas dos plataformas competir en servicios básicos y de nivel empresarial. Desde operaciones básicas de recopilación y cadenas hasta interfaces API de nivel empresarial, como JMS, JDBC, JAX y JNDI, J2EE tiene una arquitectura muy sólida en este sentido. Microsoft. NET framework tampoco es débil y proporciona una serie de API desde imágenes, redes, subprocesos hasta ADO.NET, ASP.NET, ADSI, Windows Forms, etc.

Además de la perfecta reutilización de funciones de la biblioteca de clases API, también merece atención la operación de llamada de la plataforma local. Tanto CLR como la máquina virtual Java admiten llamadas a métodos nativos. En términos de plataformas heterogéneas, J2EE prefiere IIOP (Protocolo Internet InterORB), mientras que J2EE prefiere IIOP (Protocolo Internet InterORB). NET utiliza SOAP.

(2) La arquitectura de tres capas/multicapa, que también se basa en la estructura informática distribuida de tres capas/multicapa, sin duda se ha convertido en el modelo principal de las aplicaciones empresariales actuales y también es el foco de la competencia entre las dos principales plataformas.

En el lado del cliente, la capa de presentación es responsable de la interacción entre el usuario y el sistema. Para diferentes requisitos de procesamiento, ambos. NET y ASP.NET presentan componentes de desarrollo para aplicaciones basadas en escritorio y aplicaciones web basadas en navegador: JavaApplication y Windows Forms, Java Servlet/JSP y Java forman un rincón. Sin embargo, los formularios de Windows se basan en las ventajas naturales del sistema de escritorio de Microsoft y son ligeramente mejores que JavaApplication en términos de velocidad de interacción y rendimiento de la interfaz. Servlet/JSP y ASP.NET son actualmente el foco de las aplicaciones empresariales en "clientes ligeros".

Ambos se basan en el modelo de solicitud/respuesta HTTP y completan la interacción del usuario a través de páginas del navegador HTML. Aunque speed afirma que la velocidad de procesamiento y la adaptabilidad del navegador de los controles del lado del servidor son bastante altas en el nivel inferior a través de la compilación y ejecución, actualmente no hay datos concretos al respecto y es difícil de comparar. En términos de almacenamiento en caché y optimización del estado, los dos coinciden por igual. Otra tecnología relacionada con las aplicaciones cliente es ActiveX y Applets. A juzgar por las tendencias actuales, su estatus en las dos plataformas se está marginando gradualmente y no es aceptado por la mayoría de las empresas.

En el nivel medio, los componentes empresariales distribuidos son responsables de la implementación de la lógica empresarial de las aplicaciones empresariales. Debido a que estos componentes comerciales a menudo son responsables de manejar recursos costosos, como conexiones de bases de datos, recursos de red, subprocesos, etc., siempre han sido la clave para la arquitectura de tres niveles/varios niveles y el núcleo de las aplicaciones empresariales. J2EE EJB es un marco de componentes de nivel empresarial a gran escala maduro y ampliamente compatible. NET se construyen sobre nuevos servicios COM, los cuales tienen un buen soporte para la interacción de componentes con el sistema operativo y el intercambio de recursos del cliente. . NET admite el desarrollo de componentes de autodescripción, la implementación de XCOPY y el almacenamiento de múltiples versiones a través de metadatos. No requiere un centro de registro ni un archivo de descripción, lo cual resulta muy atractivo para los clientes empresariales.

En la capa de datos back-end, ambas plataformas han personalizado un modelo de acceso a datos para conexiones de bases de datos: ADO.NET y JDBC de J2EE. NET, que admite fuentes de datos SQL tradicionales y nuevas fuentes de datos XML. Debido a que este aspecto involucra productos de bases de datos más específicos, es difícil decir qué modelo de datos tiene la ventaja.

2 Comparativa de portabilidad

En términos de portabilidad. NET admite varios idiomas y J2EE admite varias plataformas.

Microsoft aprobó. NET Common Language Runtime, esto sigue siendo un hecho básico. NET significa elegir Windows", al menos durante el período de tiempo previsible. J2EE elimina las diferencias de plataforma a través de la Máquina Virtual Java. La multiplataforma es uno de sus puntos de venta y un factor de referencia importante a la hora de elegir una plataforma de desarrollo de aplicaciones empresariales. Casi todas Los principales sistemas operativos admiten J2EE. De hecho, si desea crear una plataforma que abarque Unix, Windows y otros sistemas operativos, la plataforma J2EE es casi la única opción. Microsoft cree que si las aplicaciones empresariales se pueden publicar como servicios web a través de protocolos estándar, entonces serán neutrales en cuanto a plataformas. Para atraer a más desarrolladores y alentar a las empresas a migrar a la plataforma .NET, Microsoft ha propuesto soporte en varios idiomas, con la esperanza de lograr un equilibrio. interoperabilidad multiplataforma e interactividad.

3. Comparación de rendimiento

El rendimiento es un tema candente en el Reino Unido. El famoso debate entre ellos es sobre la aplicación de la tienda de mascotas. La tienda solía ser la aplicación típica de Sun Zai, pero .NET implementó "voluntariamente" la aplicación de la tienda de mascotas en su propia plataforma y afirmó que la línea de código era 1/3 de J2EE, pero la eficiencia era 30 veces mayor que la de J2EE. La razón de Sun es que este paradigma simplemente no es adecuado para comparaciones de rendimiento y la implementación de este paradigma no está optimizada para el rendimiento. Acusa a Microsoft de exagerar la plataforma .NET mediante la optimización y el almacenamiento en caché de la base de datos back-end. Como base para el juicio, no existe un informe de evaluación de terceros más objetivo. Quizás no haya motivos para dudar de que el rendimiento de .NET en la plataforma Wintel ya no sea comparable.

4. Comparación de seguridad y estabilidad

Las fallas de seguridad de WINDOWS hacen que la red sea menos segura que J2EE. Al mismo tiempo, en términos de selección de servidor de aplicaciones, NET solo puede usar IIS por razones de seguridad. La estabilidad es difícil de garantizar. Por otro lado, J2EE tiene más opciones entre los servidores de aplicaciones proporcionados por muchos proveedores compatibles con el estándar, puede elegir la plataforma que mejor satisfaga las necesidades, es la de menor costo y se considera la más adecuada. mejor

5. Comparación de escalabilidad

Concepto de expansión.

NET se basa en la expansión horizontal del software, mientras que la idea de expansión de la plataforma J2EE se basa en la expansión vertical del hardware.

Los sistemas Windows sólo se pueden ampliar a no más de 8 procesadores, mientras que los sistemas Sun se pueden ampliar a más de 100 procesadores.

Las aplicaciones basadas en la plataforma J2EE se pueden implementar en varios sistemas operativos, como UNIX de alta gama y sistemas mainframe. Este sistema puede admitir de 64 a 256 procesadores en una sola máquina, lo que está fuera del alcance de los servidores NT. Los proveedores en el espacio J2EE ofrecen una gama más amplia de estrategias de equilibrio de carga que pueden eliminar cuellos de botella en el sistema y permitir la integración e implementación de múltiples servidores. Esta implementación puede llegar a miles de procesadores, permitiendo un sistema altamente escalable para satisfacer las necesidades de futuras aplicaciones comerciales.

6. Comparación de madurez

En términos de madurez de la plataforma, también existe una proporción entre ambas. J2EE formó una arquitectura madura en 1999 y se ha convertido en un sistema de aplicaciones empresariales bastante maduro y probado. origen. NET proviene de la plataforma DNA (Arquitectura de red distribuida) de Microsoft para desarrollar aplicaciones empresariales, que contiene muchas tecnologías probadas que se han implementado en productos, incluido el servidor de transacciones de Microsoft, COM, cola de mensajes y base de datos SQL Server.

7. Soporte de terceros proveedores

Como especificación abierta, J2EE ha sido respaldado por muchos fabricantes desde el principio, IBM, BEA, HP, Oracle, etc. En gran medida en Capital implementa J2EE. El mejor servidor de aplicaciones J2EE actualmente en el mercado no es iPlanet, una empresa conjunta entre Sun y Netscape, sino WebLogic de BEA y Webshpere de IBM. Las herramientas de desarrollo incluyen JBuilder de Borland, Forte de Sun para Java, WebLogicWorkshop de BEA, JDeveloper de Oracle, VisualAge de IBM para Java, etc.

Y. NET ha vinculado estrechamente las especificaciones de la plataforma y los productos desde el comienzo de su diseño. Aunque una pequeña porción. NET es abierta (como el lenguaje C#, la infraestructura de lenguaje común CLI y los estándares de servicios web), es difícil imaginar una empresa que no sea Microsoft. Al menos esa es la implementación de .NET por ahora. Visual Stdio.NET es su única herramienta de desarrollo.

8. Comparación del soporte de código abierto

Hay muchos productos de código abierto J2EE y marcos gratuitos, y los patrones de diseño de mejores prácticas correspondientes también están surgiendo sin cesar. Sin embargo,. NET no cuenta con el respaldo de la comunidad de código abierto y es un diseño dirigido por desarrolladores de marcos.

9. Comparación de costes de aprendizaje

El umbral para J2EE es muy alto. Debido a su diversidad y complejidad, los desarrolladores necesitan mucho tiempo para familiarizarse con todo el sistema. Sin embargo,. NET tiene un umbral bajo, es fácil de usar y tiene bajos costos de aprendizaje. Sin embargo, para los desarrolladores, . NET no es tan fácil de entender como J2EE en el diseño de la arquitectura general del sistema.

10. Comparación del soporte del servicio WEB

Desde la perspectiva de la historia del desarrollo. NET y J2EE. NET ha estado profundamente imprimido por la tecnología de servicios web desde el principio, y sus características como plataforma de desarrollo e implementación de servicios web siempre se han destacado en sus actividades de marketing. Por decirlo así. NET es esencialmente una plataforma para desarrollar e implementar servicios web. Comparado con. NET, J2EE es algo "viejo". Inicialmente, era una especificación de marco de plataforma que extendía la plataforma Java a aplicaciones empresariales. Con el auge y el desarrollo de la tecnología de servicios web, la plataforma J2EE, como plataforma de desarrollo e implementación de aplicaciones empresariales, no puede evitar los servicios web, y J2EE también ha introducido continuamente soporte para servicios web, una importante revolución tecnológica en la industria.

Desde diferentes perspectivas de descripción de servicios, implementación de servicios, publicación, descubrimiento y vinculación de servicios, e invocación y ejecución de servicios, J2EE y . NET es básicamente lo mismo, la única diferencia podría ser.

NET es más conveniente y más completo.

En términos de control de las especificaciones de servicios web, Microsoft e IBM han promovido conjuntamente una gran cantidad de especificaciones de servicios web. Durante un tiempo, las actividades de marketing de tecnología de servicios web de las dos empresas se organizaron conjuntamente y no es difícil ver la cooperación estratégica entre las dos empresas en este campo. Las tecnologías centrales iniciales de los servicios web, SOAP y WSDL, fueron desarrolladas principalmente por estas dos empresas. Posteriormente, UDDI fue desarrollado conjuntamente por muchas empresas centrales encabezadas por estas dos empresas. Más tarde, estas dos empresas desarrollaron en su totalidad algunas especificaciones de servicios web no centrales, como WS-Inspection, WSFL, WS-Security, WS-Routing, WS-License, WS-Referential, etc. No es difícil verlo: la contribución de IBM y Microsoft a los servicios web y su control de las especificaciones de los servicios web.

Aunque por algunas razones, Sun ha estado excluido durante mucho tiempo de WS-I (una organización iniciada por IBM, Microsoft y BEA para promover la interoperabilidad de los servicios WEB), esto no afecta que Sun continúe adhiriéndose a una estrategia abierta. en servicios WEB. Sun es el inventor del lenguaje Java y Java, como sistema tecnológico abierto multiplataforma, también juega un papel muy importante en el desarrollo de servicios WEB. Después de un compromiso, Sun finalmente fue aceptado como director de WS-I.

Sun participó activamente en el proceso de desarrollo de especificaciones de servicios web, como XML y ebXML. Y ha utilizado Java para soportar las especificaciones más importantes de servicios WEB, como SOAP (JAX-RPC, JAXM, SAAJ y JMS), WSDL (Java API para WSDL), UDDI/ebXML (JAXR) y XML (JAXP, JAXB ), etc. Además de participar activamente en el trabajo de estandarización en el campo de los servicios web, Sun también se esfuerza por ofrecer a los clientes productos de software integrales y proporcionar a los usuarios una plataforma para desarrollar e implementar servicios web. La versión de desarrollo de la plataforma de servicios web Sun ONE de Sun es la primera plataforma integrada integral para servicios web y desarrollo de aplicaciones web basada en tecnología Java. La plataforma integra una variedad de software de servidor SunONE y herramientas de desarrollo Java, admite estándares de servicios WEB de la industria, está especialmente diseñada para desarrolladores y es muy sencilla de instalar y usar.