net mvc form example asp and .net wcf web-services entity-framework architecture

.net - form - security asp net mvc



¿Cómo comparto DAL y BLL en múltiples aplicaciones.NET? (5)

Necesito crear varias aplicaciones que compartan una base de datos de Microsoft SQL Server. Estos incluyen aplicaciones web ASP.NET, aplicaciones de escritorio WPF, y probablemente la extraña aplicación de consola de vez en cuando.

Me gustaría usar ADO.NET Entity Framework para el acceso a los datos, extender sus objetos para mi lógica empresarial y vincular esos objetos a los controles en mi UI.

¿Cómo puedo hacer esto en cada una de mis aplicaciones sin repetirme demasiado? Si el esquema de la base de datos o mi lógica comercial cambian, entonces quiero una manera fácil (o automática) de actualizar todas mis aplicaciones.

¿Cómo debería diseñar este sistema?

Actualización: He hecho preguntas de seguimiento ...


Recomiendo crear una nueva solución de Visual Studio que contenga varios proyectos. Para una separación DAL / BLL, recomendaría usar una biblioteca de clases. Hacer esta abstracción le permite envolverlo con otros proyectos, como un servicio web de WCF, por ejemplo, y exponerlo abiertamente no solo a sistemas .NET, sino potencialmente a otros sistemas.

Una vez que haya creado estos proyectos de biblioteca de clase, puede agregar una referencia a ellos en sus otros proyectos y usarlos. Esto ayudará a mantener una clara separación de preocupaciones.


Sugeriría que mires CSLA.Net. Le permite construir sus objetos comerciales que soportan fácilmente múltiples interfaces (asp.net, wpf, silverlight, etc.). No sé lo que estás construyendo pero CSLA apoya esto muy bien.

Tengo un mazo de diapositivas de power point que puede ayudarte a avanzar con CSLA.

Cubierta de diapositiva CSLA


Tal vez puedas usar los servicios web para centralizar el acceso a la base de datos / lógica ...

Como se ve en las respuestas del enlace ( SOA / WebServices / Remoting )


la idea de adamalex es sonido. Dependiendo de su configuración, otro enfoque favorecido es separar los proyectos comunes, compilar y luego hacer que sus otros proyectos hagan referencia a esta dll compilada. Depende de usted si hace referencia a la última compilación de este dll o una versión específica de la misma. quizás no quieras que algunos proyectos tengan que mantenerse actualizados todo el tiempo.


para eso, recomendaría crear una solución de Visual Studio que contenga varios proyectos. Su DAL estaría contenido dentro de su propio proyecto y luego, para los otros proyectos que necesiten hacer uso de esa funcionalidad, cree una Referencia de Proyecto de nuevo al proyecto DAL.

¡Espero que esto ayude!