Рассмотрим проект веб-приложения ASP.NET MVC 2, в котором используются сущности EF4 POCO и шаблон репозитория для хранения информации в базе данных SQL Server. Пока есть 3 проекта, 4, если вы считаете базу данных:
1.) Domain.dll, не имеет зависимостей, предоставляет интерфейсы POCO и репозитория.
2.) Storage.dll, зависит от домена, реализует интерфейсы репозитория (с использованием EF 4).
3.) Mvc.dll, зависит как от №1, так и от №2, обеспечивает уровень пользовательского интерфейса.
4.) База данных SQL Server + соединение, независимость от dll (без зависимостей).
Допустим, я добавляю другое веб-приложение для размещения службы данных WCF, которая предоставляет канал OData для базы данных с использованием Domain.dll и Storage.dll:
5.) Provider.dll, зависит от домена и хранилища, обеспечивает уровень обслуживания OData.
Какое место в этом решении занимает логика проверки домена? Если классы POCO домена украшены атрибутами проверки, нужно ли службе данных WCF что-нибудь еще для защиты данных? Было ли когда-либо хорошей / плохой идеей помещать логику проверки в хранимые процедуры и почему?