2008-11-03 27 views
6

Necesito crear varias aplicaciones que comparten 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.¿Cómo comparto DAL y BLL en múltiples aplicaciones .NET?

Me gustaría utilizar ADO.NET Entity Framework para acceso a datos, ampliar sus objetos para mi lógica de negocio y vincular esos objetos a los controles en mi UI.

¿Cómo puedo hacer esto en cada una de mis aplicaciones sin repetir 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 debo diseñar este sistema?


Actualización: Me he pedido de seguimiento preguntas ...

Respuesta

9

para que yo recomendaría la creación de una solución de Visual Studio que contiene múltiples 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!

3

adamalex's idea is sound. 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.

+0

Sí, están de acuerdo en que este enfoque es tan razonable como la que he sugerido. Como siempre, depende de tus necesidades. –

2

Tal vez se puede utilizar servicios web para centralizar el acceso a la base de datos/lógica ...

Como se observa en las respuestas de link (SOA/WebServices/Remoting)

+0

Si no es excesivo ... – bob

1

lo recomiendo crear un nuevo Visual Studio solución que contiene múltiples 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 los sistemas .NET, sino potencialmente a otros sistemas.

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

2

Le sugiero que consulte 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 una plataforma de deslizamiento de power point que puede ayudarlo a avanzar con CSLA.

CSLA Slide Deck

Cuestiones relacionadas