Guía de laboratorio      Creación de varios proyectos relacionados en una aplicación Web VisualSeparación de las capas de ...
Creación de varios proyectos relacionados en una aplicación Web Visual                     2PARTE 1 - OBJETIVO:Organizar l...
Creación de varios proyectos relacionados en una aplicación Web Visual                   33. En el explorador de solucione...
Creación de varios proyectos relacionados en una aplicación Web Visual                    4    el ensamblado (proyecto) He...
Creación de varios proyectos relacionados en una aplicación Web Visual                       5PARTE 2 – OBJETIVO:Relaciona...
Creación de varios proyectos relacionados en una aplicación Web Visual                   6   Agregar antes de la declaraci...
Creación de varios proyectos relacionados en una aplicación Web Visual                      7     Observar que se produce ...
Próxima SlideShare
Cargando en…5
×

Creación de varios_ proyectos_ en_una_solución_visual _studio_2010

675 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
675
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
7
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Creación de varios_ proyectos_ en_una_solución_visual _studio_2010

  1. 1. Guía de laboratorio Creación de varios proyectos relacionados en una aplicación Web VisualSeparación de las capas de presentación y negocios Adriana Cabella 01/10/2012
  2. 2. Creación de varios proyectos relacionados en una aplicación Web Visual 2PARTE 1 - OBJETIVO:Organizar la solución separando las capas de interfaz de usuario (presentación) y de entidades deldominio (reglas del negocio) creando diferentes proyectos dentro de la misma solución. a. Crear una nueva aplicación Web. La solución se llamará HerenciaAnimales, lo mismo que el proyecto de tipo Aplicación Web. b. Si no está viendo en el explorador de soluciones la rama correspondiente a la solución (solo ve el proyecto), configurarlo: Herramientas > Opciones >Proyectos y soluciones >Mostrar Solución siempre. (Si la casilla “Mostrar todas las configuraciones” no está marcada, tildarla). Tildar la opción “Mostrar solución siempre” y aceptar.2. En el explorador de soluciones, botón derecho sobre el nombre de la solución > Agregar > Nuevo Proyecto. Seleccionar en las plantillas Visual C# y a la derecha Class Library (Biblioteca de clases). Ponerle como nombre EntidadesDominio y aceptar.
  3. 3. Creación de varios proyectos relacionados en una aplicación Web Visual 33. En el explorador de soluciones se habrá agregado el proyecto a la solución.4. Ejecutar con F5. Si aparece un cuadro de diálogo avisando que no se puede ejecutar un proyecto con resultados “Bibilioteca de clases”, observar que en el explorador de soluciones aparece EntidadesDominio en negrita, lo que indica que es el proyecto de inicio. Con el botón derecho sobre
  4. 4. Creación de varios proyectos relacionados en una aplicación Web Visual 4 el ensamblado (proyecto) HerenciaAnimales, seleccionar en el menú contextual Establecer como proyecto de inicio, y ejecutar nuevamente con F5. El formulario se visualizará en el navegador. Los proyectos tipo biblioteca de clases no sirven para iniciar la ejecución, simplemente encapsulan clases que serán utilizadas desde otros proyectos.5. Observar que en el proyecto EntidadesDominio quedó automáticamente creada una clase Class1.cs. Desde el explorador de soluciones cambiarle el nombre al archivo por Animal.cs, y verificar que haya quedado cambiado el nombre lógico de la clase. Puede pedir confirmación, aceptarla (Para cambiar el nombre es necesario haber detenido la ejecución – símbolo de stop en la barra de herramientas de debug ).6. Observar el código de la clase, en particular el Namespace que se creó: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EntidadesDominio { public class Animal { } }7. Observar, también, el código de la clase _Default (F7 para ver el code behind del formulario), y que el Namespace donde está incluida se corresponde con el nombre del proyecto. Observar también que algunas de las directivas using son diferentes: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace HerenciaAnimales { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } }
  5. 5. Creación de varios proyectos relacionados en una aplicación Web Visual 5PARTE 2 – OBJETIVO:Relacionar los proyectos mediante referencias y facilitar la visibilildad de las clases mediante los USINGcorrespondientes.1. En el load del formulario intentar declarar una variable de tipo Animal. Escribir el siguiente código y generar la solución . Se produce un error de compilación, que indica que no se puede acceder a la clase Animal.2. Cuando en una solución hay dos proyectos, para acceder a las clases del otro proyecto es necesario referenciarlo. A continuación crearemos las referencias necesarias. Como desde la interfaz de usuario necesitamos acceder a la clase Animal, haremos que el ensamblado HerenciaAnimales “conozca” al ensamblado EntidadesDominio. Desde el explorador de soluciones, con el botón derecho sobre el nombre del proyecto HerenciaAnimales > Agregar referencia y cuando salga el cuadro de diálogo, en la pestaña Proyectos seleccionaremos EntidadesDominio. Aceptar. Si observamos en el explorador de soluciones, veremos que en el ítem Referencias se agregó una referencia a EntidadesDominio. De esta manera, podremos acceder a las clases de ese proyecto.3. Sin embargo, en el código del load, seguimos teniendo el mismo error. Para solucionarlo, deberemos indicar que la clase Animal se encuentra en el ensamblado EntidadesDominio: protected void Page_Load(object sender, EventArgs e) { EntidadesDominio.Animal unAnimal; } Ahora el proyecto compila (puede dar una advertencia de que no se está usando la variable unAnimal, eso es porque no le hemos asignado nada; ignorarla).4. Puede resultar pesado tener que calificar las clases del dominio con su namespace cada vez que la queramos usar. Para eso se usa la directiva using.
  6. 6. Creación de varios proyectos relacionados en una aplicación Web Visual 6 Agregar antes de la declaración de clase (donde están todos los using), el código using EntidadesDominio; El código completo deberá quedar así: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using EntidadesDominio; namespace HerenciaAnimales { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { EntidadesDominio.Animal unAnimal; } } } Ahora sí desde la capa de Presentación tenemos acceso a las entidades del Dominio. Eso se puede representar así, en un diagrama de paquetes, en donde cada paquete es uno de los namespace y están relacionados mediante una dependencia desde la presentación hacia el dominio: <<Presentación>> <<Reglas de negocio>> HerenciaAnimales EntidadesDominio5. Desde el explorador de soluciones, botón derecho sobre el nodo de la solución > Abrir en el Explorador de Windows (eso nos llevará hacia la carpeta donde está ubicada la solución). En la carpeta del proyecto HerenciaAnimales, abrir la carpeta bin. Observar que se han generado dos archivos con extensión dll: uno para el ensamblado de la presentación HerenciaAnimales.dll y otro para el ensamblado del dominio EntidadesDominio.dll. Eso significa que nuestras páginas y clases están incluidas en la primera dll, y las clases del dominio están contenidas en la segunda. Tenemos ahora dos archivos físicos que forman nuestra solución.6. Dependecias circulares. Intentar ahora establecer una referencia desde el ensamblado EntidadesDominio hacia el ensamblado HerenciaAnimales desde el explorador de soluciones (botón derecho sobre EntidadesDominio > Agregar Referencia > Seleccionar el proyecto HerenciaAnimales.
  7. 7. Creación de varios proyectos relacionados en una aplicación Web Visual 7 Observar que se produce un error indicándonos que no se puede agregar una referencia al proyecto HerenciaAnimales pues se crearía una dependencia circular: Esto es así, porque para poder ser generado, el proyecto HerenciaAnimales requiere que previamente esté compilada la dll del proyecto referenciado, EntidadesDominio. Pero a su vez, esta necesita que haya compilado HerenciaAnimales. Ambas dependerían una de la otra, produciéndose el efecto huevo-gallina.RESUMEN: - Nuestro objetivo es establecer distintas capas para organizar la aplicación. - Esto creará diferentes archivos que contengan el código generado, uno por cada ensamblado (proyecto) que forme parte de nuestra solución. - Para esto creamos distintos proyectos, en particular un proyecto para la presentación y otro para las entidades del dominio. - Desde la presentación usaremos las entidades del dominio (nuestras clases), por lo que es necesario agregarle al paquete de la presentación una referencia hacia el paquete de las entidades del dominio (Agregar referencia). De ese modo, la DLL que se genere, conocerá las clases incluidas en la DLL generada para el dominio. - Para facilitar la escritura, es conveniente agregar una directiva using en el paquete de presentación (el que “conoce”) hacia el paquete del dominio (el “conocido”). - No es posible establecer dependencias circulares. Si el ensamblado A referencia al B, el B no puede referenciar al A.

×