Page 1 of 13
Para efectos de este post no estoy considerando las mejores prcticas en la implementacin de base de datos, dado que el objetivo es ilustrar la programacin en capas. A continuacin, desarrollamos una ventana en el proyecto UserInterfaceWPF denominada PersonaUI:
Para el desarrollo de esta ventana se utiliz el componente DatePicker para la seleccin de fecha de nacimiento. Este componente forma parte de la extensin WPF Toolkit, que adems trae el
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 2 of 13
DataGrid que no est incluido en el .NET Framework 3.5. Cabe destacar que el proyecto de inicio por default debe ser el de la capa de presentacin. Para lograr esto hacemos click derecho sobre UserInterfaceWPF y seleccionamos Establecer como proyecto de inicio o Set as startup project. Debemos recordar que para poder dar la funcionalidad requerida es necesario agregar las referencias en cada proyecto. Para UserInterfaceWPF se debe agregar como referencia a MetodosNegocio y ObjetosNegocio. Para MetodosNegocio se debe agregar MetodosAccesoDatos y ObjetosNegocio. Y para MetodosAccesoDatos se debe agregar ObjetosNegocio. Por ltimo se deben citar al inicio de las clases, por ejemplo, en la clase de la ventana PersonaUI se debe aadir: using ObjetosNegocio; y using MetodosNegocio;. Desarrollando funcionalidad para la clase PersonaUI, donde estarn los manejadores de los botones Guardar y Calcular edad:
El objeto PersonaON utilizado para definir al objeto persona, se refiere al objeto fuertemente tipado del proyecto ObjetosNegocio, definido de la siguiente manera:
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 3 of 13
Por otro lado, los mtodos de la clase PersonaMN utilizados para insertarPersona y calcularEdad fueron definidos de la siguiente manera:
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 4 of 13
De igual modo, los mtodos de la clase PersonaAD como insertarPersona o buscarPorNombre fueron desarrollados como se muestra a continuacin:
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 5 of 13
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 6 of 13
Como han podido observar, en los mtodos de acceso a datos utilic una connectionString completamente legible. sta no es la manera ms adecuada de hacer uso de ella, sin embargo, este tema quedar para un futuro post. La forma ms fcil de generar una cadena de conexin es haciendo uso del Server Explorer y del wizard que provee para realizar este tipo de actividades haciendo click derecho en Conexiones de datos y Agregar conexin. Como siempre, har falta el nombre del servidor, instancia, base de datos, usuario y password. Asimismo, tampoco se hizo manejo de excepciones, lo cual es parte importante de una aplicacin, tanto por robustez como por seguridad. Este tema tambin ser tratado en un prximo post. La base de la solucin en el Solution Explorer debi quedar de la siguiente manera:
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 7 of 13
Al hacer click en Guardar se almacenar a la persona en la base de datos, tal y como lo hemos definido. Y al introducir el nombre Alejandro y hacer click en Calcular edad nos devolver su edad en das (tomando en cuenta que hoy es 14/08/2009):
Una vez ms, espero que este post pueda ser de ayuda para sus actividades como desarrolladores. Bienvenidos sus comentarios, sugerencias, o lo que tengan a bien.
A D V E R T IS EM E NT
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 8 of 13
Like this:
Escrito por Alejandro Afonso Spinola 14 agosto 2009 a 1:19 PM Escrito en Desarrollo en Capas Etiquetado con ado, ado.net, c#, calcular edad, Desarrollo, Desarrollo en Capas, ejemplo, n-layer, programacion, programacion en capas, Visual Studio 2008, wpf Utilidad de Windows Workflow Foundation Encriptar ConnectionString con Enterprise Library
12 comentarios
Suscrbete a los comentarios mediante RSS. 1. [...] Tema relacionado: Desarrollo de Aplicacin en Capas con Visual Studio 2008. [...] Introduccin a Programacin en Capas con Visual Studio 2008 .NET For Your Information
19 agosto 2009 a 5:08 PM
Responder 2. [...] en el ejemplo del post de Desarrollo de Aplicacin en Capas con Visual Studio 2008, nos damos cuenta que una de las posibles formas de utilizar el ConnectionString es en el [...] Encriptar ConnectionString con Enterprise Library .NET For Your Information
19 agosto 2009 a 9:18 PM
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information
Page 9 of 13
Responder 3. saludos aLejandro Podemos ver un ejemplo de tu ejercicio para los somos novatos, en estos temas
Roberto
8 noviembre 2009 a 12:36 PM
Responder Hola Roberto. Si te refieres a un ejemplo de programacin en capas, ste precisamente es bien sencillo y est orientado a aquellos que quieran empezar a programar de esta forma. De todos modos, si tienes alguna pregunta, no dudes en escribir. Saludos.
Responder 4. Has creado una clase que contenga las operaciones de la coneccion usando Enterprise Library Data Access Block?
Luis Ffernando
4 marzo 2010 a 11:33 AM
Responder Estoy usanso ADO .Net Entity Framework. y la verdadcreo que debera ver terminado el ejemplo de los post para orientarme, podras ayudarme?
Juanma
31 marzo 2010 a 2:37 PM
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information Page 10 of 13
Responder 5. Buenas, estoy creando una aplicacion de escritorio en 3 capas y he seguido la estructura del primer post. Estoy utilizando MySQL como SGBD. En cuanto a la parte de datos tengo una duda..para crear la conexion a la BD mediante Datos->Mostrar origenes de datos->agregar nuevo origen de datos, en que proyecto habria q crearlo?en presentacion, logica de negocio o acceso a datos?y si es en logica de negocio en cual de los dos,objetosNegocio o metodosNegocios?. Es que se tiene que crear en un proyecto en concreto. Otra pregunta seriasi se hace de esta forma la conexion a la BD, ya no hace falta escribir ninguna clase en C# con la conexion ni nada o como seria? Un saludo y gracias de antemano!
Juanma
23 marzo 2010 a 9:44 PM
Responder 6. Saludos, Muy bueno el tutorial Tengo un poco de experiencia en C# y la verdad que hace mucho queria conocer ciertos detalles de esta tecnica de programacion. Pero, tengo una pregunta La programacion en capas admite el uso de LINQ? de ser asi, como aplicarlo? Muchas Gracias,
Richard
28 abril 2010 a 8:11 PM
Responder Hola Richard. La principal caracterstica de la programacin en capas es su flexibilidad, por lo que s admite el uso de LINQ. Cada desarrollador es encargado de decidir cmo hacer encajar cada herramienta que decide incorporar, aunque yo en tu lugar lo hara en la capa de acceso a datos, dado que LINQ precisamente se encarga de todas las operaciones CRUD de interaccin con la BD.
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information Page 11 of 13
Responder 7. hi alejandro alfonso muy bueno tu post me encante y te agradeseria muchisimo si me isieras llegar el preoyecto completo par poder tenerlo como guia en mis proyecto y una pregunta seria posible que me pudieces ayudar con un pequeo problema que tengo . quisiera realizar un formulario de conexion para mi proyecto y osea don pueda introducir servidor, usuario,la clave,base de datos me digieron que utilizara odbc pero me confundi mas porque tengo que crear un odbc por codigo o manualmente la cuestion es que cuando lotenga que instalar en cualquier ordenador este formulario busque dicha conexion y poder habilitar el proyecto y todas las funciones que tengo ahi dentro te lo agradeceria mucho ha.. y para estoi es necesario crear una nueva capa que se llamari a de conexion? grasia por elerlo y espero tu respuesta que dios te bendiga
omar10031980
10 julio 2010 a 5:59 PM
Responder 8. hola mi consulta es la siguiente toy programando un sistema pero para sitio web. con respecto a las capas tengo una llamada CapaDatos y otra Capanegocio. como puedo poner las referencias de cada y en donde?
salomon
23 julio 2010 a 3:29 AM
Responder 9. Muy buen tutorial, me sirvio muchisimo y ahora estoy programando con capas y la verdad he quedado muy contento usando capas. Saludos desde Mxico.
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information Page 12 of 13
Responder
(Not published)
Recibir siguientes comentarios por correo. Recibir nuevas entradas por email.
Publicar comentario
Temas
Elegir categora
Comunidades
Microsoft Bloggers
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011
Desarrollo de Aplicacin en Capas con Visual Studio 2008 .NET For Your Information Page 13 of 13
Noupe
Developing
4 Guys From Rolla Code Project Coding Horror Stack Overflow
Productividad
Goodlife ZEN mnmlist: the essentials Zen Habits
Revistas
Code MSDN Wired
Suscrbete a dotNetFYI
Podrs recibir notificaciones de nuevos posts por correo electrnico.
Registrarse
http://dotnetfyi.wordpress.com/2009/08/14/desarrollo-de-aplicacion-en-capas-con-visual-... 24/08/2011