Hola de nuevo, vamos a ponernos manos a la obra con nuestro proyecto de torneos, lo primero es crear los distintos proyectos con los que poblaremos las distintas capas, vamos a tener :
- Presentation
- Services
- Application
- Domain
- Infraestructure
- Crosscutting
Nuevo Proyecto
Abrinos nuestro VS 2012 y creamos un nuevo proyecto, en la izquierda desplegamos el árbol de plantillasen Visual C#, Web y seleccionamos Aplicación web de ASP.NET MVC4 como nuestro proyecto de inicio.
Después seleccionaremos un proyecto de Razor vacío, es importante seleccionar en el motor de vistas Razor.
Y es fundamental organizar la solución en carpetas lógicas ya que está arquitectura genera una gran cantidad de proyectos que hacen bastante engorroso moverse entre los ellos si no los tenemos bien organizados.
Así pues en el Explorador de Soluciones, hacemos click derecho sobre el nombre de la solución y seleccionaremos Añadir/ Nueva carpeta de soluciones, y el pondremos el nombre de "0. Presentation"
Repetiremos este proceso para crear todas las carpetas de solución necesarias.
Por último seleccionamos el proyecto Torneo.Presentation.Mvc y lo arrastramos a la carpeta de presentación, deberíamos tener una estructura similar a esta:
Ahora iremos capa por capa añadiendo los proyectos necesarios y las referencias a los proyectos de otras capas:
Hacemos click derecho en la carpeta te solución a la que le queremos añadir el proyecto, en nuestro caso 0 - Presentation,
Agregamos el proyecto de tipo Windows, Biblioteca de clases y lo llamamos "Torneo.Presentation.Util"
En este proyecto crearemos la infraestructura para obtener el acceso a los métodos públicos de la capa de servicio, y crearemos algunas utilidades importantes como el SessionHelper, Extensiones, etc.
de momento solamente lo creamos.
De igual forma creamos los proyectos del resto de las capas.
Observar que a través de todas las capas ya estamos haciendo una división lógica dentro de la aplicación por módulos de momento nuestra aplicación tiene dos módulos el "MainModule" y el CacheModule.
En aplicaciones de gran tamaño es interesante subdividir el aplicativo en diferentes módulos más manejables.
En el siguiente post continuaremos creando la estructura básica del proyecto.
Eikondata en su canal de youtube.
Estructuración de la solución
Y es fundamental organizar la solución en carpetas lógicas ya que está arquitectura genera una gran cantidad de proyectos que hacen bastante engorroso moverse entre los ellos si no los tenemos bien organizados.
Así pues en el Explorador de Soluciones, hacemos click derecho sobre el nombre de la solución y seleccionaremos Añadir/ Nueva carpeta de soluciones, y el pondremos el nombre de "0. Presentation"
Repetiremos este proceso para crear todas las carpetas de solución necesarias.
1. Services
2. Application
3. Domain
4. Infraestructure
Crosscutting
Por último seleccionamos el proyecto Torneo.Presentation.Mvc y lo arrastramos a la carpeta de presentación, deberíamos tener una estructura similar a esta:
Ahora iremos capa por capa añadiendo los proyectos necesarios y las referencias a los proyectos de otras capas:
Hacemos click derecho en la carpeta te solución a la que le queremos añadir el proyecto, en nuestro caso 0 - Presentation,
Agregamos el proyecto de tipo Windows, Biblioteca de clases y lo llamamos "Torneo.Presentation.Util"
En este proyecto crearemos la infraestructura para obtener el acceso a los métodos públicos de la capa de servicio, y crearemos algunas utilidades importantes como el SessionHelper, Extensiones, etc.
de momento solamente lo creamos.
De igual forma creamos los proyectos del resto de las capas.
- 1 - Services: (2 Proyectos)
- Torneo.Services.MainModule
- Torneo.Services.CacheModule
- 2 - Application (2 Proyectos)
- Torneo.Application.MainModule
- Torneo.Application.CacheModule
- 3- Domain (1 proyecto):
- Torneo.Domain.MainModule
- 4- Infraestructure:
- Tornemo.Infraestrucuture.MainModule
- Crosscutting: (2 proyectos)
- Torneo.Crosscutting.Cache
- Torneo.Crosscutting.Logger
Observar que a través de todas las capas ya estamos haciendo una división lógica dentro de la aplicación por módulos de momento nuestra aplicación tiene dos módulos el "MainModule" y el CacheModule.
En aplicaciones de gran tamaño es interesante subdividir el aplicativo en diferentes módulos más manejables.
En el siguiente post continuaremos creando la estructura básica del proyecto.
Eikondata en su canal de youtube.