Как мне совместно использовать DAL и BLL в нескольких приложениях .NET? - PullRequest
6 голосов
/ 03 ноября 2008

Мне нужно создать несколько приложений, которые совместно используют базу данных Microsoft SQL Server. К ним относятся веб-приложения ASP.NET, настольные приложения WPF и, возможно, странное консольное приложение время от времени.

Я хотел бы использовать ADO.NET Entity Framework для доступа к данным, расширить его объекты для моей бизнес-логики и связать эти объекты с элементами управления в моем пользовательском интерфейсе.

Как я могу сделать это в каждом из моих приложений, не повторяя слишком много? Если схема базы данных или моя бизнес-логика изменятся, я хочу простой (или автоматический) способ обновить все мои приложения.

Как мне спроектировать эту систему?


Обновление: я задал дополнительные вопросы ...

Ответы [ 5 ]

9 голосов
/ 03 ноября 2008

для этого я бы порекомендовал создать решение Visual Studio, содержащее несколько проектов. Ваш DAL будет содержаться в его собственном проекте, а затем для других проектов, которым необходимо использовать эту функциональность, создайте ссылку на проект обратно в проект DAL.

Надеюсь, это поможет!

3 голосов
/ 03 ноября 2008

Adamalex идея звука. в зависимости от вашей настройки, другой предпочтительный подход - разделить общие проекты, скомпилировать и затем сделать так, чтобы другие проекты ссылались на эту скомпилированную dll это зависит от вас, если они ссылаются на последнюю сборку этой DLL или конкретной версии. возможно, вы не хотите, чтобы некоторые проекты постоянно поддерживали.

2 голосов
/ 10 ноября 2008

Я бы посоветовал вам взглянуть на CSLA.Net. Он позволяет создавать бизнес-объекты, которые легко поддерживают несколько интерфейсов (asp.net, wpf, silverlight и т. Д.). Я не знаю, что вы строите, но CSLA очень хорошо это поддерживает.

У меня есть слайд Power Point, который может помочь вам начать работу с CSLA.

CSLA Slide Deck

2 голосов
/ 04 ноября 2008

Может быть, вы можете использовать веб-сервисы для централизации доступа к базе данных / логики ...

Как видно из ответов ссылка ( SOA / WebServices / Remoting )

1 голос
/ 04 ноября 2008

Я бы порекомендовал создать новое решение Visual Studio, содержащее несколько проектов. Для разделения DAL / BLL я бы рекомендовал использовать библиотеку классов. Создание этой абстракции позволяет обернуть ее другими проектами, например, веб-службой WCF, и открыто представить ее не только для систем .NET, но и потенциально для других систем.

Как только вы создали эти проекты библиотеки классов, вы можете добавить ссылку на них в другие ваши проекты и использовать их. Это поможет сохранить четкое разделение проблем.

...