Estoy en la situación de que tengo que diseñar e implementar un sistema desde el principio. Tengo algunas preguntas sobre la arquitectura en las que me gustaría que comentaran y pensaran.N-Layer Architecture
Información rápida sobre el proyecto: Es una aplicación web centrada en datos.
La aplicación se basará en Microsoft .NET Framework 4.0 con la base de datos MS SQL SERVER 2008.
Requisito:
- Rich UI y robusto
- El soporte multi-dispositivo (todos los navegadores y en todos los dispositivos) acoplado
- sin apretar
A continuación se muestra el diagrama de arquitectura que he construido :
informativa de la arquitectura
- Capa de presentación: HTML5/ASP.NET MVC + jQuery (aplicación web para el apoyo de múltiples dispositivos en la primera versión)
- Servicios Distribuidos: WCF (XML/JSON/JSONP)
- Capa de dominio (Business Layer): toda la lógica de negocio
- Persistencia de datos (capa DAL): Entity Framework 4.0 con el primer enfoque de base de datos. entidades POCO se generan y se separan usando la plantilla T4
- capa infraestructural: Contiene las bibliotecas comunes como entidades POCO, manejo de excepciones, el registro etc
mis preocupaciones:
- Como aplicación se va a construir vagamente acoplado por lo que en el futuro si los requisitos del negocio crecen, los nuevos módulos se pueden enchufar fácilmente sin afectar la arquitectura. Así que pensó en utilizar el patrón de repositorio junto con la COI y DI (puede haber unidad/Ninject/Sprint.NET o cualquier otro)
- WCF tanto con Soporte de XML y JSON
- distribuida capa de servicios para colocar COI & DI
- manejo de excepciones & las anotaciones utilizando Enterprise Library 5,0
Buscando valiosos comentarios y sugerencias. Si estoy haciendo algo mal, por favor ponme en la dirección correcta.
FYI - 'Nivel' y 'Capa' no son términos equivalentes. Layer se refiere a la separación lógica como describió. Nivel generalmente se refiere a la separación física de hardware, por ejemplo, servidor de base de datos, servidor web. – MattDavey
Solo por curiosidad, ¿qué software usaste para crear el diagrama? – henginy
Estoy usando Visual Studio 2010 (Ultimate Edition) – coddey