SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
Guía de laboratorio


      Creación de varios
 proyectos relacionados en
 una aplicación Web Visual
Separación de las capas de presentación y negocios
                     Adriana Cabella
                      01/10/2012
Creación de varios proyectos relacionados en una aplicación Web Visual                     2




PARTE 1 - OBJETIVO:

Organizar la solución separando las capas de interfaz de usuario (presentación) y de entidades del
dominio (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.
Creación de varios proyectos relacionados en una aplicación Web Visual                   3




3. 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
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)
                              {

                                }
                          }
                      }
Creación de varios proyectos relacionados en una aplicación Web Visual                       5




PARTE 2 – OBJETIVO:

Relacionar los proyectos mediante referencias y facilitar la visibilildad de las clases mediante los USING
correspondientes.


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.
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                        EntidadesDominio




5. 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.
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.

Mais conteúdo relacionado

Semelhante a Creación de varios_ proyectos_ en_una_solución_visual _studio_2010

Hands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosersHands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosersSorey García
 
Elementos de eclipse
Elementos de eclipseElementos de eclipse
Elementos de eclipseHeidiie Hdz
 
Elementos de eclipse
Elementos de eclipseElementos de eclipse
Elementos de eclipsePVarely24
 
Programacion web i
Programacion web iProgramacion web i
Programacion web ialexito_2012
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterandrewzg
 
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring FrameworkGabriel Oliva
 
Investigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipseInvestigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipseLucero De La Cruz
 
Investigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipseInvestigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipseLucero De La Cruz
 
Tarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfTarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfBrimmerRamrez
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Androidmcanalesc94
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webAnfap
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)javier_ot99
 
Tutorial Eclipse
Tutorial EclipseTutorial Eclipse
Tutorial EclipseJose Nava
 

Semelhante a Creación de varios_ proyectos_ en_una_solución_visual _studio_2010 (20)

Resumen semana2
Resumen semana2Resumen semana2
Resumen semana2
 
Hands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosersHands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosers
 
Tutorial net beans
Tutorial net beansTutorial net beans
Tutorial net beans
 
Elementos de eclipse
Elementos de eclipseElementos de eclipse
Elementos de eclipse
 
Elementos de eclipse
Elementos de eclipseElementos de eclipse
Elementos de eclipse
 
mysql y visual c++.pdf
mysql y visual c++.pdfmysql y visual c++.pdf
mysql y visual c++.pdf
 
Programacion web i
Programacion web iProgramacion web i
Programacion web i
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniter
 
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
 
Investigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipseInvestigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipse
 
Investigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipseInvestigacion para agregar una imagen a eclipse
Investigacion para agregar una imagen a eclipse
 
TUTORIAL
TUTORIALTUTORIAL
TUTORIAL
 
Tarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfTarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdf
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
Dprn3 u3 a1_rahv
Dprn3 u3 a1_rahvDprn3 u3 a1_rahv
Dprn3 u3 a1_rahv
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones web
 
Tutorial java fx_8_espanol
Tutorial java fx_8_espanolTutorial java fx_8_espanol
Tutorial java fx_8_espanol
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
Tutorial Eclipse
Tutorial EclipseTutorial Eclipse
Tutorial Eclipse
 

Creación de varios_ proyectos_ en_una_solución_visual _studio_2010

  • 1. Guía de laboratorio Creación de varios proyectos relacionados en una aplicación Web Visual Separación de las capas de presentación y negocios Adriana Cabella 01/10/2012
  • 2. Creación de varios proyectos relacionados en una aplicación Web Visual 2 PARTE 1 - OBJETIVO: Organizar la solución separando las capas de interfaz de usuario (presentación) y de entidades del dominio (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. Creación de varios proyectos relacionados en una aplicación Web Visual 3 3. 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. 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. Creación de varios proyectos relacionados en una aplicación Web Visual 5 PARTE 2 – OBJETIVO: Relacionar los proyectos mediante referencias y facilitar la visibilildad de las clases mediante los USING correspondientes. 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. 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 EntidadesDominio 5. 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. 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.