проекты в решении - PullRequest
       4

проекты в решении

2 голосов
/ 16 апреля 2011

Мне интересно, как разделить крупномасштабное приложение на проекты. Нужно ли создавать:
1. один проект для уровня доступа к данным.
2. один проект для уровня бизнес-логики.
3. один проект для веб-приложения.

следует ли объединить слой доступа к данным и уровень входа в систему для бизнеса?

Кроме того, должен ли уровень доступа к данным зависеть от уровня входа в систему для бизнеса?

должно ли веб-приложение напрямую зависеть от уровня доступа к данным? (следует ли использовать методы из уровня доступа к данным при работе с объектами из бизнес-уровня входа в систему)?

сейчас у меня есть два проекта:
1. веб-приложение.
2. весь код, включая доступ к данным и бизнес-объектам.

Ответы [ 3 ]

5 голосов
/ 16 апреля 2011

Загрузите Руководство по архитектуре приложений Microsoft, 2-е издание, я сейчас читаю его, и оно очень полезно по этому вопросу:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ce40e4e1-9838-4c89-a197-a373b2a60df2

4 голосов
/ 16 апреля 2011

Я обычно держу свои проекты отдельно:

Решение
-> Уровень презентации
-> Бизнес-уровень
-> Уровень данных

Затем я добавляю ссылку из презентациибизнесу и бизнесу к данным.Я никогда не позволяю своей презентации взаимодействовать напрямую с данными.Обычно я также использую сервисы на своем бизнес-уровне, которые при необходимости могут быть развернуты в отдельном местоположении.

1 голос
/ 16 апреля 2011

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

Мы пишем приложение MVC и разбили его на несколько сборок ... по одной для каждой базы данных, к которой мы обращаемся,Но это не просто DAL, там тоже есть НЕКОТОРАЯ особая логика.Эта сборка также имеет некоторые общие функции.

У нас есть общий веб-проект.

Затем у нас есть веб-проект для каждого из 3 сайтов, использующих эти данные, все они зависят отОбщий проект.

Вероятно, будет проще поддерживать и развивать, если вы разбите его как минимум на 3 сборки.И вот почему.

  1. Это вынуждает вас разделить проблемы, нужно что-то извлечь из данных?Поместите это в сборку данных.Нужно изменить некоторые JavaScript?Поместите это в презентацию.
  2. Это позволяет для специализации.Вы можете получить разработчика внутреннего интерфейса или гуру javascript, и они смогут работать только над своей сборкой, не влияя ни на кого другого.
  3. Если что-то на внешнем интерфейсе меняется, и вы хотите перейти на новыйво внешнем интерфейсе есть большая вероятность, что DAL и бизнес-уровню не потребуется столько изменений.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...