Архитектура приложения MVC3 — как хранить данные

Цели:

  • Уметь быстро разрабатывать приложение в MVC3
  • Иметь валидацию в одном месте (т.е., вероятно, модель)

где у меня уже есть база данных

Вопрос: Какую цепочку инструментов вы предпочитаете для этого?

Я выпалил:

MvcScaffolding – http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/

Однако для этого требуется EF CTP5, если вы используете первую стратегию модели.

Не удалось понять, как легко получить Validation (DataAnnotations) из модели, например, поле [Required]

Первая модель EF — снова DataAnnotations показались сложными. Entity Framework — Аннотации данных

LightSpeed — http://www.mindscapehq.com/ Текущий выбранный ORM .


person Dave Mateer    schedule 14.03.2011    source источник
comment
возможно, стоит взглянуть на архитектуру S#arp, особенно на последнюю версию 1.9 — blog.sharparchitecture.net. он поддерживает NHibernate, Fluent NHibernate и проверку NHibernate из коробки, а также включает шаблоны T4 для создания контроллеров и моделей (возможно, также Views - не помню)   -  person Russ Cam    schedule 15.03.2011
comment
Используйте валидаторы, похоже, это не должно быть целью системы, а скорее средством достижения цели. Цели системы обычно обусловлены какой-либо бизнес-потребностью.   -  person Brian Ball    schedule 15.03.2011
comment
спасибо @Brian, я изменил текст   -  person Dave Mateer    schedule 15.03.2011
comment
Было бы неплохо иметь их все в одном месте, но это редко случается, вы, как правило, имеете валидаторы на уровне пользовательского интерфейса (проверка типа, проверка диапазона и т. д.), и, если у вас нет действительно простой модели предметной области, есть также более сложная проверка, которая происходит с вашей сущностью (сущность в состоянии X не поддерживает значение Y и т. д.). К сожалению, серебряной пули не существует, и это часто зависит от того, насколько разнообразна ваша проверка. Лучшее, на что вы можете надеяться, это не дублировать одну и ту же проверку несколько раз. Удачи!   -  person Brian Ball    schedule 15.03.2011


Ответы (1)


Вот мой набор инструментов:

  • ASP.NET MVC 3 с Razor для пользовательского интерфейса
  • NHibernate с FluentNHibernate для доступа к данным
  • FluentValidation.NET для правил проверки
  • AutoMapper для сопоставления бизнес-моделей и моделей представления.
  • MVContrib

Я также создал пример структуры проекта с использованием этих фреймворков.

person Darin Dimitrov    schedule 15.03.2011
comment
Отличный материал Дарин - спасибо. В итоге я остановился на LightSpeed ​​(Mindscape) и MVC3/Razor. Проверка LightSpeed, которую я использую. @Brian хорошо заметил выше, что строительные леса редко помогают в более крупных проектах ... однако это было очень полезно для меня в качестве отправной точки. - person Dave Mateer; 23.03.2011