lunes, 8 de julio de 2013

Torneo 1. Estructura del proyecto.


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 :
  1. Presentation
  2. Services
  3. Application
  4. Domain
  5. Infraestructure
  6. Crosscutting

Nuevo Proyecto

Abrinos nuestro VS 2012 y creamos un nuevo proyecto, en la izquierda desplegamos el árbol de plantillas
en Visual C#, Web  y seleccionamos Aplicación web de ASP.NET MVC4 como nuestro proyecto de inicio.

Este será el principal proyecto de nuestra capa de presentación, aquí generaremos las páginas que presentaremos a los usuarios con RAZOR, la arquitectura de N-Layer ayuda a organizar los proyectos en capas, cada capa cumple una función especifica y debe estar lo más desacoplada posible del resto de las capas, por ejemplo el cometido de la capa de presentación es interactuar  con los usuarios, recoger sus peticiones y mostrar los resultados con el formato deseado.


Después seleccionaremos un proyecto de Razor vacío, es importante seleccionar en el motor de vistas Razor.

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.