Рассмотрим проект веб-приложения ASP.NET MVC 2, в котором используются объекты POCO EF4 и шаблон хранилища для хранения информации в базе данных 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 что-либо еще для защиты данных? Является ли когда-либо хорошей / плохой идеей поместить логику проверки в хранимые процедуры и почему?