Мне любопытно, если это безумная идея. Прямо сейчас у меня есть типичная структура следующим образом
Клиент (в настоящее время asp.net mvc3, но может быть что-нибудь в будущем)
WCF Сервисный слой
Доменный уровень
Уровень данных
У меня есть очень сложная проверка на уровне моего домена. DataAnnotations не достаточно. Таким образом, эта проверка выполняется более ручным способом, но все же передается обратно через сервисный уровень клиенту.
Однако существует простая проверка (поле не нуль, должно быть больше 0, не может быть больше 10 символов), для которого подойдут DataAnnotations.
Вот мой план. Я уже буду распространять базовый dll DataContract, который имеет объекты DTO. Это потому, что у меня есть несколько служб WCF. Я планирую создать сборку с классом метаданных собеседника с атрибутами DataAnnotations. Этот класс затем используется как для моего DTO, так и для моего домена. Таким образом, я могу получить простую проверку без прохождения через веб-сервис, но все это в одном месте. Однако для клиентов, которые этого не поддерживают (например, java), они все равно будут проходить валидацию, если пройдут службу WCF.
Первоначально я не хотел ничего распространять среди клиентов, но для того, чтобы делиться DataContracts между службами, мне все равно пришлось.
Это сумасшедшая идея? Я знаю, что другие люди просто делают двойную проверку. Есть ли лучший способ реализовать это? Я проверил его, и он работает, но я не уверен, насколько хорошо он будет масштабироваться, когда будет построена вся моя модель (просто прототипирование прямо сейчас).
Спасибо