Analizando PetShop 3.0

Ayer estuve analizando lo que es la Microsoft .NET Pet Shop 3.x: Design Patterns and Architecture.

El documento describe la arquitectura de la nueva versión de la Pet Shop de Microsoft. Esta versión ha sido rediseñada para adaptarse a los requerimientos de The Middleware Company para la realización de sus benchmarks. El documento en sí mismo está muy bien para conocer la arquitectura ideal para aplicaciones .NET, sin embargo tiene una gran incongruencia: En el abstract se señala como objetivo mostrar las mejoras prácticas en .NET para construir aplicaciones empresariales de n-capas y por todo el documento sin embargo se recalca que el principal objetivo era conseguir una aplicación de alto rendimiento, cosa que como todos sabemos suele ir reñida con las mejores prácticas.

Algunas conclusiones:

  • La arquitectura propuesta es muy similar a la arquitectura básica de cualquier aplicación J2EE, es decir, capa de presentación en ASP.NET Web Forms ( JSPs ), capa de lógica de negocio con componentes C# planos o de servidor ( clases Java + EJBs ) y capa de acceso a datos ( CMP, motores de persistencia, JDO, etc. ).
  • La arquitectura de .NET no introduce demasiados patrones. De hecho una de las partes de la Pet Store donde se recopilan todos los patrones no ha sido incluida. Por lo tanto todavía no está especificado algo como esto.
  • No existe el concepto de controlador para completar el modelo J2EE MVC.
  • Utiliza drivers de alto rendimiento. Drivers nativos para .NET, en concreto de Oracle y SQL Server.
  • Han separado la lógica de negocio de los componentes web. Para ello utilizan lo que se conoce como code behind que separa todo el código en una clase aparte ( por ejemplo un .cs ) y después se puede invocar desde las páginas ASP.NET.
  • El estado de la aplicación se guarda simultáneamente en dos bases de datos para mostrar las capacidades de tolerancia a fallos. Para ello se han servido de las nuevas características de ASP.NET que permiten compartir la sesión configurando parámetros del nuevo fichero Web.Config
  • El esquema de base de datos se ha portado directamente del de la Pet Store. ( era hora )
  • Se introduce una capa de acceso a datos ( DAO ) exactamente igual en su implementación a la que conocemos del mundo J2EE. Con DAOs para SQL Server y Oracle.
  • Se pasan a utilizar Value Objects o lo que ellos llaman Business Entities, clases que sirven para pasar datos entre las diferentes capas de la aplicación.
  • Se eliminan los procedimientos almacenados.
  • El artículo hace un extenso análisis de los mecanismos de caché de ASP.NET. Estos mecanismos son para mi el principal atractivo de ASP.NET. Ofrecen la posibilidad de cachear objetos ( resultados de consultas, de llamadas a métodos, etc. ) de manera automática. También permiten cachear páginas HTML completas o fragmentos para que no sea necesario generarlas en cada petición. Pet Shop 3.X utiliza estos mecanismos de caché pero según indica el documento para los benchmarks no se utilizarán todos sino que está especificado que partes se pueden cachear ( el catálogo, etc. )
  • La caché de ASP.NET integrada con Windows 2003 Server permite realizar caché a nivel de kernel del sistema operativo

Poco más. Un documento muy interesante.

Permalink Comentarios [1]
URL de la referencia: http://weblogs.javahispano.org/mperez/entry/analizando_petshop_3_0
Comentarios:

Sólo comentarte que lo más interesante de .NET no son los mecanismos de cache, sino el modelo de componentes de servidor de ASP.NET, que como sabes java a adoptado con Java Server Face. Afortunado no usa el nefasto modelo MVC aplicado al Web. El modelo MVC esta muy bien como es utilizado en Swing pero aplicado como se hizo en Struts ha sido un autentico desastre para los programadores de Java. Te lo dice un sufridor de Struts.

Enviado por Carlos en May 06, 2006 a las 11:57 AM EDT #

Enviar un comentario:

Nombre:
Correo electrónico:
URL:

Su comentario:

Sintaxis HTML: Deshabilitado