2012-01-19 3 views
3

Я потратил много времени на поиск лучших практик для проектирования веб-сайта ASP.NET MVC 3 с использованием EF 4.1 или другого ORM. Я нашел это tutorial on Implementing the Repository and Unit of Work Patterns in an ASP.NET MVC Application. Это был хороший учебник, и я кое-что узнал. Так что это заставило меня думать и хотело узнать, что люди на стеке - это то, что вы бы использовали? если не почему и как вы создали свой веб-сайт? Я просто хочу узнать правильный способ сделать что-то и понять, почему один способ лучше, чем другой.ASP.NET MVC 3 лучшая практика/дизайн

+4

Все эти абстракции выполняются для удовлетворения определенного набора требований. Таким образом, эти абстракции могут не подходить для ваших требований. Вопрос слишком общий. Предоставьте более подробную информацию о вашем домене, требованиях, ограничениях и т. Д. – Eranga

+0

Это более общий вопрос. Я действительно хочу понять, когда и почему вы выбрали бы такой подход, как в учебнике, и какие другие варианты там. – Cam

+0

Обсуждение вариантов дизайна без контекста бесполезно. – Eranga

ответ

2

Прежде всего сказать, что платформа Entity Framework реализует шаблон хранилища и шаблон работы единицы. Реализация Repository и блок шаблонов рабочих на вершине современного ОРМ, как основы Entity является дополнительный слой абстракции, который:

  • сужает возможности базового ОРМ
  • не обеспечивает дополнительную ценность для базового ОРМ
  • в лучшем случае ничего не стоит, но может быть вредным

Одна из целей таких реализаций инкапсулировать логику запроса в хранилище и не один запрос, как единая ответственность принципа (SRP) хотел бы предложить , но несколько запросов и, таким образом, нарушение SRP. Что вы можете сделать, так это полагаться на ваш ORM и инкапсулировать обширную логику запросов в отдельные классы Query.

Мое предложение не должно нравиться «лучшим практикам», добавляя уровни абстракции на уровнях абстракции и т. Д., Но чтобы попытаться решить проблему, используя некоторые более общие принципы проектирования, такие как SOLID.

Ayende Rahien рассматривает заявление Kit Борей Starter в серии статей (here, here, here, here, here, here, here и here) в his blog, которые касаются так называемых лучших практик, применяемых в приложении. Это замечательно!

+0

Спасибо, что посмотрю блог. Это действительно сводится к пониманию того, когда использовать лучшую практику/шаблон и почему. – Cam

+0

-1 для шаблона хранилища, являющегося «бесполезным» при использовании с «современным ORM» – BZink

+0

Заявление «в лучшем случае бесполезно, но может быть вредным», должно рассматриваться в контексте реализации шаблона репозитория и шаблона «Единица работы» поверх объекта Framework ... – saintedlama