.NET For Your Information

Un blog más sobre tecnología .NET

Introducción a Programación en Capas con Visual Studio 2008

with 9 comments


Si bien todos hemos oído hablar sobre la Programación en Capas, y de los beneficios que trae como mantenibilidad, escalabilidad, y reusabilidad de código, no todos sabemos cuál es la mejor forma de llevarlo a cabo al empezar un proyecto con tecnología Microsoft, y para este caso, con Visual Studio 2008.

En primer lugar, debemos definir cuántas capas va a tener nuestro proyecto. Por lo general, todo proyecto consta de 3 capas: Presentación, Reglas de Negocio y Acceso a Datos. Sin embargo, es posible que se añada una capa de Servicios que exponga los métodos construidos en la capa de Reglas de Negocio para que puedan ser consumidos por otros sistemas, y no sólo por nuestra capa de Presentación.

Para comenzar a construir nuestra solución, debemos iniciar el VS2008. Hacemos click en File -> Other Project Types -> Visual Studio Solutions -> Blank Solution -> Introducimos el nombre de nuestra preferencia en Name -> OK.

BlankSolution

A continuación, agregamos 3 carpetas, es decir, una para cada capa, las cuales contendrán los proyectos que las conformarán. Hacemos click derecho en la Solución creada previamente, que aparece en el panel de la derecha -> Add -> New Solution Folder -> Introducimos el nombre de la carpeta. Repetir el procedimiento para cada carpeta. Al finalizar, debemos tener lo siguiente:

carpetasSolution

Este paso no es estrictamente obligatorio, pero sirve para mantener un mayor orden en el desarrollo de la aplicación.

Posteriormente, pasamos a añadir los proyectos que vayamos a utilizar a cada una de las carpetas ya creadas.

Para la capa de Presentación, donde además de ser la interfaz de usuario, también sirve para recolectar y validar data, debemos definir qué tecnología usar dependiendo de las necesidades de nuestra aplicación. VS2008 nos provee 4 opciones: Windows Presentation Foundation, Windows Forms, Console Application y ASP.NET Web Application. Para efectos de este ejemplo añadiré un proyecto de WPF. Hacemos click derecho en la carpeta Presentacion -> Add -> New Project… -> Seleccionamos la categoría Visual C# (o Visual Basic si es de su preferencia) -> Windows -> WPF Application -> Introducimos el nombre en Name -> OK.

Ahora bien, para la capa de Lógica de Negocios, donde están todos los métodos relacionados directamente con la funcionalidad de nuestra aplicación (Ej: cálculo de totales de facturas, realizar descuentos en compras al mayor, etc.), debemos agregar, en primer lugar, un proyecto donde estarán todos los objetos de negocio, quienes se comportarán como medio de transporte de datos entre las distintas capas. Segundo, agregar el proyecto donde estén todas las clases con sus métodos que nos ayuden a implementar la funcionalidad de la aplicación, tales como los ejemplos ya mencionados. Estos 2 proyectos deben ser de tipo Class Library, y se agregan de forma similar al proyecto de WPF. En esta capa también podríamos usar algún proyecto de tipo Windows Workflow Foundation, el cual será discutido en futuros posts.

Para la capa de Acceso a Datos, vamos a definir cuáles serán los métodos que nos permitan interactuar con la BD, y poder implementar las operaciones CRUD. Para lograr esto VS2008 con .NET Framework 3.5 provee distintos mecanismos, desde el uso de objetos DataReader, DataAdapter, DataSets, pasando por LINQ, hasta llegar al novedoso, pero cuestionado, Entity Framework, todos parte del equipo de ADO.NET. Evidentemente, por su utilidad y complejidad, cada una de estas tecnologías merece un post propio, por lo que quedarán para próximas discusiones. En el presente ejemplo, sólo agregaremos un proyecto de tipo Class Library, en el que se podrán implementar las clases pertinentes.

Por último, y para poder integrar los proyectos de nuestra solución, es necesario asignar ciertas referencias. Por ejemplo, todas las capas deberán conocer los objetos de negocio ya creados para poder trabajar con ellos. Para lograr esto es necesario realizar lo siguiente: click derecho sobre nuestro proyecto de capa de Presentación -> Add Reference… -> Projects -> Seleccionamos el proyecto de Objetos de Negocio -> OK. De igual modo, recordemos que las clases que formarán nuestros objetos deberán ser públicas (por default, son privadas), y debemos agregar la sentencia «using ObjetosNegocio; » en cada una de las clases donde vayamos a hacer uso de los mismos. Repetir este procedimiento en cada uno de los proyectos que hagan uso de los objetos de negocio. Asimismo, debemos añadir las referencias del proyecto de métodos de negocio al proyecto de presentación, así como el de acceso a datos al de métodos de negocio.

Para finalizar, la base de la solución creada quedará así:

SolucionBaseLista

Cabe destacar que, si en un futuro se decidiera usar otra tecnología diferente a WPF para la capa de Presentación, sólo se deberá añadir el nuevo proyecto a la solución ya creada, y al agregar las referencias pertinentes, podrá hacer uso de todos los métodos de negocio y de acceso a datos ya desarrollados.

Espero este post pueda ser de utilidad para sus inicios en el desarrollo de futuros proyectos.

Como siempre, espero su feedback.

Tema relacionado: «Desarrollo de Aplicación en Capas con Visual Studio 2008«.

Written by Alejandro Afonso Spinola

24 julio 2009 a 8:42 PM

9 respuestas

Subscribe to comments with RSS.

  1. […] un comentario » Tal y como comenté en el post de Introducción a Programación en capas con Visual Studio 2008, el Entity Framework (EF) nos provee una nueva forma de generar nuestros métodos de acceso a datos […]

  2. […] } Continuando con el post de “Introducción a Programación en Capas con Visual Studio 2008“, el objetivo del presente artículo es dar un pequeño ejemplo técnico y mucho más […]

  3. Hola:

    Esta clara esta parte, ahora, cual es el paso a seguir? tienes mas publicaciones? Estoy metiendome de lleno en el tema y me gusta tu forma de explicar. gracias…

    Edwar

    8 octubre 2009 at 6:32 PM

  4. ^^ muy bueno el post… todo bien explicado.. una muy buena intro para iniciarse en la programación por capas ^^.. muy bueno el blog!!!

    kaedu

    18 enero 2011 at 7:10 PM

  5. Cojonudo. Una cosa muy sencilla pero que específicamente aclarada se agradece.

    Ahora me gustaría consultarte una cosa:

    Dentro de ObjetosNegocio que creas todas las clases dentro de un archivo o cada clase en un archivo?

    Javiere

    15 junio 2011 at 5:50 PM

  6. Excellent site you have here.. It’s difficult to find high quality writing like yours nowadays. I truly appreciate individuals like you! Take care!!
    Clyde

    Clyde

    2 noviembre 2012 at 2:07 PM

  7. Buenas noches, excelente forma de explicar, tienes un don y lo sabes aprovechar. He vistovvarios tutoriales pero hasta ahora este es el mejor explicado. Revisare la segunda parte haber que tal me va

    Cristian Rengifo

    21 noviembre 2013 at 12:23 AM

  8. como elabora la programacion en capas dentro de la presentacion form1

    marco

    6 marzo 2015 at 9:20 AM


Replica a Alejandro Afonso Spinola Cancelar la respuesta