Cuando desarrollamos una aplicación medianamente compleja tenemos que considerar desde el inicio aplicar una buena arquitectura en nuestro proyecto ya que si no lo hacemos y el proyecto crece se hace insostenible y prácticamente toca volverlo hacer.
Los primero que recomiendo es nombrar nuestros proyectos de una manera simple, anteponiendo el nombre tecnico de nuestro proyecto y luego el componente al que estamos accediendo ({nombredelproyecto}.{componente})
La razón de hacerlo así es por que podemos diferenciar fácilmente cuales componentes son propios y cuales hacen parte de un nuget o un componente externo.
Idealmente debemos siempre utilizar una Api con un componente de datos donde lanzaremos los querys o utilizaremos el entityframework para conectarnos a la base de datos.
Hay 3 componentes transversales que seguramente vamos a tener que usar tanto en la Api como en el sitio Web, uno de ellos son las entidades que usan en todo el proyecto tanto simples como compuestas, por otro lado tenemos un proyecto de herramientas o utilidades que va contener diferentes métodos para temas de seguridad, encriptación, entrada y salida de datos, conexión con servicios externos etc… y por ultimo tenemos nuestros proyecto de recursos donde vamos a tener todas la internacionalización de nuestra aplicación.
Para el caso de la nuestro componente de recursos recomiendo separar lo que serian las palabras principales, de los mensajes, las ayudas y textos especiales, también archivos o imágenes si las vamos a guardar ahí.
Para conectar nuestro sitio Web con el Api necesitamos crear un proyecto conector que los consuma y transforme la respuesta de la Api en entidades para ser usadas en el MVC por eso creamos un proyecto Services.
Por ultimo usando carpetas de la solución podemos agrupar los proyecto si lo queremos para que este mas ordenado.
Con esta estructura tendremos un proyecto preparado cambios y para crecer en el tiempo, pero obviamente esta estructura sigue siendo básica por lo que un proyecto mas grande requeriría de algunos cambios y componentes adicionales.
Algunos proyectos opcionales que podemos agregar:
- Utilidades (Utils): que contenga diferentes rutinas para limpiar textos, o para convertir formatos o incluso rutinas recursiva.
- Ayudantes (Helpers): que nos permitan controlar diferente validaciones y codigo HTML desde MVC.
- Variables Globales(Globalvars): un proyecto que contenga constantes y variables que se carguen en ciertos instantes en el proyecto y se usen en muchas partes.
- Cache: Este proyecto para nuestra Api se va encargar de manejar memoria temporal para diferentes elementos que se usan constantemente en la aplicación y es ideal no buscar en la base de datos a cada momento.
En otro post espero explicar una arquitectura mas compleja y que sea funcional
Un comentario en «Arquitectura básica de una Aplicación MVC»
Los comentarios están cerrados.