Проверка модели C # - блок приложения проверки или аннотации данных? - PullRequest
4 голосов
/ 05 января 2010

Я хочу добавить атрибуты валидатора в мои доменные модели (в приложении ASP.NET MVC), и я пытаюсь сделать выбор между 2 структурами: блоком приложения проверки и аннотациями данных. Похоже, они выполняют похожие задачи, поэтому я хочу выбрать ту, которая будет наиболее поддерживаемой / используемой в будущем. Кажется, что DataAnnotations являются более новыми (и встроены в платформу 3.5 SP1), поэтому люди думают, что блок приложения проверки станет устаревшим?

[Помечено как вики сообщества, поскольку это субъективно]

Ответы [ 3 ]

7 голосов
/ 01 апреля 2010

Я тоже задавал этот вопрос и недавно решил использовать Enterprise Library. Я смог использовать комбинацию Unity Framework и блока валидации, чтобы без особых проблем атрибутировать и проверить мои классы и методы. Обе платформы включены в EntLib.

Что касается продолжения поддержки, следующая версия Enterprise Library в настоящее время находится в бета-версии 2 (EntLib 5.0) и планирует выпуск в середине апреля. Вы можете получить доступ к текущей бета-версии здесь, http://entlib.codeplex.com/wikipage?title=EntLib5%20Beta2.

Также, прочитав журнал изменений для версии 5, я заметил, что они также включают поддержку DataAnnotations.

"Поддержка .NET Framework System.ComponentModel.DataAnnotations атрибуты аннотации данных были добавлены в блок и валидаторы может быть использован везде, где вы бы использовали Атрибут Аннотации данных. Для большего информацию см. Использование аннотации данных Атрибуты во включенном файле CHM. "

http://entlib.codeplex.com/wikipage?title=EntLib5Beta2ChangeLog&referringTitle=EntLib5%20Beta2#lab


Итак, похоже, что Enterprise Library будет продолжать поддерживаться.

3 голосов
/ 09 февраля 2010

MVC2 будет поддерживать несколько платформ проверки. Цитируя великого Скотта Гатри «Функции проверки ASP.NET MVC 2 разработаны для того, чтобы упростить подключение любого типа архитектуры проверки».

Поскольку DataAnnotations использует подход, основанный на атрибутах, блок приложения проверки не устареет, поскольку он также поддерживает подход на основе конфигурации и проверку нескольких наборов правил, что полезно во многих сценариях. вы можете ожидать, что в будущей версии VAB будет встроена поддержка MVC 2.

ОБНОВЛЕНИЕ: В самой последней версии блока приложения проверки версии 5 атрибуты проверки VAB наследуются от базового атрибута проверки DataAnnotations. Это означает, что VAB теперь строится непосредственно поверх DataAnnotations, а приложения, которые могут обрабатывать DataAnnotations, также могут обрабатывать атрибуты, определенные VAB.

2 голосов
/ 05 января 2010

Аннотации данных поддерживаются как DynamicData MVC 2, так и Asp.net 4.0. Я бы сказал, что блок приложения проверки станет устаревшим.

...