none
Framework para capa de usuario - Estructura de proyecto RRS feed

  • Pregunta

  • Buenas actualmente estoy iniciando el desarrollo de un sistema, el cual lo estoy desarrollando en Capas. Asi mismo he estado investigando acerca de algunos frameworks que puedo aplicar, y justo eso es lo que estoy necesitando pero aplicado solo a la capa de Usuario que en este caso es un proyecto windows. He investigado acerca del patron MVC pero veo que es para asp.net, me llamo mucho la atencion por la ordenada separacion que posee la estructura, no obstante lo que estoy necesitando es algo similar pero para para la capa de usuario y asi lograr tener una estructuta de proyecto windows mas ordenado y esto lo menciono por que ese problema de desorden se visualiza cuando el proyecto crece terminando con muchos archivos dispersos en diferentes carpetas que no guardan una estructura y un orden establecido el cual se debe de seguir, por ejemplo a veces en un proyecto , windows en este caso, se añaden clases, enumeraciones, etc.

    Gracias de antemano.
    Saludos
    El hombre mas poderoso del mundo es aquel que es dueño de si mismo
    viernes, 24 de abril de 2009 0:42

Respuestas

  • Fafner,
       Tanto el patrón MVC, como el MVVM o el MVP, son todos patrones para aislar la capa de presentación de la lógica de negocios. La idea de implementar estos patrones a la hora de diseñar tu proyecto, es para que te ayude a aislar esa capa de presentación de la lógica de negocios de tu aplicación y que aparte, te permite implementar distintos tipos de interfases de usuario (web, windows form, silverlight, WFP, Mobile, etc) de manera sencilla.
       Con esto te quiero decir que es lo mismo si estas desarrollando para windows o web, hasta el patrón es todo igual. La ultima capa la podes implementar como quieras e incluso, podes poner 2 tipos de presentación o más.

       Espero que te sea de ayuda mi post.
       Saludos,


    Sandro D. Garcia
    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta.
    viernes, 24 de abril de 2009 3:39
  • Hola FAFNER,

    Tal y como se muestra en la imagen que has incluido, ese proyecto hace coincidir la estructura del proyecto con el modelo vista controlador. Sin embargo, la estructura del proyecto no tiene por qué seguir este modelo.

    En nuestro caso, utilizamos un criterio funcional para clasificar nuestras clases (Exceptions, Interfaces,Model, Controls, etc...) lo cual no impide que utilicemos en determinadas aplicaciones el modelo MVC. Muchas de nuestras aplicaciones tienen la clase Controller en la misma carpeta que el MainForm sin que por ello incumplamos el modelo que mencionas. Lo que es importante son las dependencias que hay dentro del código, no la ubicación de las clases - sin que esto quiera decir que no sea importante una buena organización de las clases :)

    Espero que te resulte de utilidad,

     


    Si este mensaje responde a tu pregunta, márcalo como respuesta correcta o vótalo como útil.
    Sergio Ortiz
    i-Card Software CTO

    View Sergio Ortiz's profile on LinkedIn View Sergio Ortiz's profile on Xing
    sábado, 25 de abril de 2009 15:11

Todas las respuestas

  • Fafner,
       Tanto el patrón MVC, como el MVVM o el MVP, son todos patrones para aislar la capa de presentación de la lógica de negocios. La idea de implementar estos patrones a la hora de diseñar tu proyecto, es para que te ayude a aislar esa capa de presentación de la lógica de negocios de tu aplicación y que aparte, te permite implementar distintos tipos de interfases de usuario (web, windows form, silverlight, WFP, Mobile, etc) de manera sencilla.
       Con esto te quiero decir que es lo mismo si estas desarrollando para windows o web, hasta el patrón es todo igual. La ultima capa la podes implementar como quieras e incluso, podes poner 2 tipos de presentación o más.

       Espero que te sea de ayuda mi post.
       Saludos,


    Sandro D. Garcia
    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta.
    viernes, 24 de abril de 2009 3:39
  • Hola Fafner,

    Tal y como ha mencionado Sandro, el patrón MVC se puede utilizar también para aplicaciones que no son asp.net. Las ventajas que proporciona de desacoplamiento entre capas son aplicables a cualquier aplicación.

    Respecto a la estructura de los proyectos, nosotros seguimos una estructura que se puede parecer a esta...

    La solución (sln) contiene todos los proyectos de nuestro producto y los ordenamos en carpetas dependiendo de a qué capa pertecenen.

    Por ejemplo,

    MiProducto.sln

                   DataLayer (Carpeta)

                         Miproyecto1.csproj

                  CommonLayer (Carpeta)

                        Miproyecto2.csproj

                 BusinessLayer (Carpeta)

                       Miproyecto3.csproj

                 PresentationLayer (Carpeta)

                       Miproyecto3.csproj

    Respecto a la estructura de las clases dentro de un proyecto, seguimos una estrategia parecida. Es decir, creamos carpetas por capa o función y luego distribuimos los ficheros de fuente entre dichas carpetas. Esta es una estructura que solemos repetir en bastantes proyectos:

    Proyecto.csproj

    Business (Carpeta para la lógica de negocio)
    Controls (Carpeta para controles)
    Data (Carpeta para la lógica de acceso a datos)
    Exceptions (Carpeta para las excepciones)
    Interfaces (Carpeta para los interfaces)
    Model (Carpeta para las definiciones de entidades)

    Espero que te haya servido de utilidad,

     

     


    Si este mensaje responde a tu pregunta, márcalo como respuesta correcta o vótalo como útil.
    Sergio Ortiz
    i-Card Software CTO

    View Sergio Ortiz's profile on LinkedIn View Sergio Ortiz's profile on Xing
    viernes, 24 de abril de 2009 6:38
  • Respecto a la estructura de las clases dentro de un proyecto, seguimos una estrategia parecida. Es decir, creamos carpetas por capa o función y luego distribuimos los ficheros de fuente entre dichas carpetas. Esta es una estructura que solemos repetir en bastantes proyectos:

    Proyecto.csproj

    Business (Carpeta para la lógica de negocio)
    Controls (Carpeta para controles)
    Data (Carpeta para la lógica de acceso a datos)
    Exceptions (Carpeta para las excepciones)
    Interfaces (Carpeta para los interfaces)
    Model (Carpeta para las definiciones de entidades)

    Espero que te haya servido de utilidad,

    Bueno en mi desarrollo actual tengo los siguientes proyectos. Datos, Negocios, Entidades y WinClient siendo este ultimo un proyecto windows y es aqui en el cual estoy tratando de tener una estructura que permita desarrollar ordenadamente, y es por eso que mencione el patron MVC. Al ver esta imagen http://www.scottgu.com/blogposts/mvc2/step18.jpg pude observar que planteaba una estructura de archivos organizada con el fin de aislarla de la capa de negocios.

    ES por esto que me gustaria saber como poder implementar este patron MVC en una capa de proyecto windows, que estructura debo de seguir en mi proyecto windows...?

    Saludos y gracias de antemano.

    El hombre mas poderoso del mundo es aquel que es dueño de si mismo
    viernes, 24 de abril de 2009 21:46
  • Hola FAFNER,

    Tal y como se muestra en la imagen que has incluido, ese proyecto hace coincidir la estructura del proyecto con el modelo vista controlador. Sin embargo, la estructura del proyecto no tiene por qué seguir este modelo.

    En nuestro caso, utilizamos un criterio funcional para clasificar nuestras clases (Exceptions, Interfaces,Model, Controls, etc...) lo cual no impide que utilicemos en determinadas aplicaciones el modelo MVC. Muchas de nuestras aplicaciones tienen la clase Controller en la misma carpeta que el MainForm sin que por ello incumplamos el modelo que mencionas. Lo que es importante son las dependencias que hay dentro del código, no la ubicación de las clases - sin que esto quiera decir que no sea importante una buena organización de las clases :)

    Espero que te resulte de utilidad,

     


    Si este mensaje responde a tu pregunta, márcalo como respuesta correcta o vótalo como útil.
    Sergio Ortiz
    i-Card Software CTO

    View Sergio Ortiz's profile on LinkedIn View Sergio Ortiz's profile on Xing
    sábado, 25 de abril de 2009 15:11