2012-04-05 2 views
2

Я создаю приложение asp.net на .net framework 4.0, и я буду использовать Linq для сущностей (Entity Framework) в качестве моего DataModel (DAL), мой шаблон проектирования будет 3-уровневые слои, где Entity Framework будет слоем DAL.Лучшая практика Entity Framework с приложением asp.net webforms

Мой вопрос: должен ли я иметь слой BLL для своих таблиц, чтобы я работал с ним с уровня представления (мои страницы), где я вызываю свои функции выбора, вставки, обновления и удаления или лучше позвонить Entity Framework непосредственно на моем уровне представления?

ответ

2

Это зависит от приложения; слои не определены, потому что они хороши, слои определены, потому что они необходимы.

Если ваше приложение является большим, а бизнес-правила могут быть изменены часто, тогда перейдите в строю BLL-слой. В противном случае, IMHO, это просто пересмотр. Масштаб вашего приложения и скорость изменения должны быть вашей главной заботой при принятии решения.

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

Но опять же это зависит от масштаба вашего приложения, вашего графика проекта, скорости изменения бизнес-правил и других факторов.

+0

мое приложение - новостной портал, и я не хочу повторять те же методы, что и addarticle(), например, 2 или 3 раза, когда я могу сделать слой BLL для статей и заполнить его свойства, а затем вызвать метод Addarticle(), который будет выполнять остальную часть работы. –

+0

Вы можете просто определить метод addarticle в презентации и повторно использовать его, это не означает реализацию бизнес-уровня. – daryal

+0

Вы совершенно правы, но это не значит, что мне придется модифицировать этот метод 3 раза, например, если позже я добавил новое поле в таблицу? –