Nada de lo anterior es cierto. Es muy fácil programar en C#.NET sin separar en capas, de hecho, he visto muchos desarrollos en los que casi todo el código estaba concentrado en el evento Page_Load. También se puede programar en ASP separando el código en capas.
La separación en capas es, en principio, algo teórico, formal. Se diseña en capas. Podemos desarrollar una aplicación en C# con capa de presentación, de negocios y de acceso a datos en una sola DLL y, aún así, las capas seguirán existiendo. También se puede separar en capas una aplicación íntegramente desarrollada en ASP.
Son muchos los beneficios que obtenemos con esta práctica y, de entre ellos, podemos citar:
- Clara distribución de las responsabilidades.
- Nos permite tener múltiples presentaciones para una misma aplicación (ASPX, WebService, Win32)
- Podemos cambiar de repositorio de datos sin impacto en el resto de la aplicación.
- Es más fácil trabajar en equipo con otros desarrolladores y hasta armar equipos de desarrolladores para cada capa.
- El código se vuelve mucho más claro y fácil de mantener.
8 comentarios:
Hay mucho comentado sobre el desarrollo en capas, pero hasta ahora no entiendo la capa de logica de negocios, que va ahi, ejemplos?
La capa de negocios es donde de verdad "se hace lo que hace la aplicación". Imagina una aplicación web en la que el cliente pida todos los números primos menores que X. ¿Dónde hace los cálculos esa aplicación? No en la capa de presentación, y mucho menos en la de acceso a datos. Debe hacerse en la de lógica de negocios. También es cierto que en aplicaciones simples esta capa puede ser algo supérflua.
Hola estoy interesado en aprender hacer la separación por capas en ASP.
Como has dicho es complicado encontrar referencias concretas en la web.
¿Podrías informar de enlaces a ejemplos o explicaciones? o ¿podrías publicarlos tu mismo?
Muchas gracias por tu trabajo.
En ASP el código se debe poner en DLLs que corren como componentes en IIS. El código del negocio es independiente de la presentación. Tiene que funcionar así sea invocado desde un formulario de visual basic en una aplicación de escritorio, o desde una página ASP, o desde la cónsola de DOS, etc. En otras palabras, si puedes ejecutar tu código para probarlo desde fuera de tu aplicación (fuera de las páginas), estás programando en capas. La página ASP lo que haría es llamar a los métodos y funciones de los componentes para "pintar" el HTML pero sin acceder a base de datos ni hacer cálculos, etc. Los cálculos, la lógica del negocio, el acceso a datos no pertenece al JSP sino a los componentes (Dlls)
Estoy intentando pasar un pequeño desarrollo que hice a un desarrollo en capas. La verdad es que no logro hacerlo funcionar. Probé usar tres clases en tres proyectos diferentes. utilizar componentes COM+ y Componentes .NET. No tuve éxito. ¿Podrás pasarme o publicar un ejemplo sencillo donde se implementen las tres capas?
Lo de sencillo es porque solo necesito un ejmplo que funcione, para basandome en él.
Estimado Damian, ante todo gracias por toda la info, me es de mucha utilidad. Necesitaría hacerte una consulta (y pido disculpas si es muy obvia, pero soy analista de seguridad y no me queda muy claro el tema de capas). Como sería a tu entender, o que debería contener cada una de las capas.
La duda surge a raíz de que la gente de desarrollo me informa que el esquema es el siguiente:
Capa 1 IIS + Component Services (que lo único que hace es llamar a capa 2)
Capa 2 Un Component Services que es consultado por el de capa 1 + los ASP propiamente dicho
Capa 3 La base de datos.
Desde ya muchas gracias por tu ayuda.
BITTENCOURT:
Lo que te dijeron está muy bien desde el punto de vista de infraestructura.
Desde el punto de vista propiamente dicho las tres capas más conocidas son:
- Capa de presentación: aquello con lo que el usuario interactúa.
- Capa de negocio: la que define el comportamiento de la aplicación.
- Capa de datos: la que sabe comunicarse con la base de datos.
Damian, muchas gracias por tu pronta respuesta.
Desde ya quedo a tu disposición para lo que te pueda ayudar.
Publicar un comentario