Мой вопрос не столько об использовании интерфейсов, сколько об организации проекта.
Примечание. Я использую VisualStudio в многослойном приложении.
Должны ли мои файлы интерфейса жить в отдельном проекте от их реализаций? Сначала я подумал, что было бы полезно выделить все мои интерфейсы служб в их собственный проект (и проект для моих первоначальных реализаций). ) так, чтобы в будущем реализация / конкретный проект могла быть удалена и заменена на новую при необходимости.
Для пояснения на примере: предположим, у меня есть интерфейс бизнес-уровня с именем IBusinessService, который находится в пространстве имен MyApp.Business.Services. Моя реализация FooBusinessService будет существовать в том же пространстве имен, но в другом проекте в VisualStudio. Если впоследствии реализацию необходимо будет переработать, разработчик может удалить ссылку на FooService.proj и заменить ее ссылкой на BarService.proj.
Похоже, что это приведет к удалению решения приложения, позволяя вам ссылаться на проект только с интерфейсами, не приобретая при этом конкретных реализаций (которые могут быть устаревшими или бесполезными для вас), но я что-то упустил?