Моя ситуация:
Цепочка запросов данных моего приложения выглядит следующим образом:
(Client) -> (WebService) -> (SQL or OLAP Cube)
Клиент - это приложение Silverlight, которое использует сгенерированный прокси для связи с веб-сервисом WCF. Который, в свою очередь, выполняет авторизацию и получает доступ к базам данных SQL и кубам OLAP с использованием компонента DAL, в основном он просто перенаправляет запросы. Поэтому каждый метод существует в четырех разных местах:
// WCF Webservice interface and implementation (used by client)
public interface ICatalogService
public class CatalogService : ICatalogService
// DAL interface and implementation (used by webservice)
public interface ICatalogDataAccessLayer
public class CatalogDataAccessLayer : ICatalogDataAccessLayer
Теперь мой вопрос, куда мне поместить документацию, чтобы четко указать эти методы? На уровне класса или интерфейса, на DAL или на веб-сервисе?
Пока мои мысли:
Я бы сказал, что имеет смысл написать спецификации метода на интерфейсе, потому что это контракт, который потребляется. Однако я не вижу преимущества между веб-сервисом и DAL в моей конкретной ситуации:
- Я единственный разработчик, нет отдельного веб-сервис-парня или клиента-парня, которому нужны документы
- Это закрытая архитектура, веб-сервис не является общедоступным
- Каждый, кто будет работать над этим проектом в будущем, будет иметь доступ ко всем его компонентам (и найдет документы, где бы они ни находились)
Итак, что вы думаете об этом? Где я должен поместить документацию уровня метода в этом случае?