Прежде всего, извиняюсь, если этот вопрос задавался ранее, но я не смог найти ничего, что отвечало бы на него напрямую.
Вот моя проблема. Я унаследовал продукт, который был разработан так, чтобы быть настолько гибким, что заполнение практически всех полей со списком и текстовых блоков в форме (silverlight) требует запроса на обслуживание. Некоторые экраны принимают до 15 отдельных запросов только для заполнения!
Теперь я несколько раз работал с веб-сервисами WCF, и разделение сервисных контрактов на небольшие дискретные операции никогда не было большим успехом, к сожалению, это не относится к данному проекту. Так что мне стало интересно ...
Нет планов выставить службу за пределами наших собственных стен. нет планирует написать другого клиента для этой конкретной услуги. Так я не могу просто написать «контроллер вариантов использования» в конце службы? Итак, на экране «создать жалобу» вместо списка запросов типа ...
- GetComplaintTypes
- GetCustomerTypes
- GetAreaDetails
- И так далее ...
для заполнения формы у меня был бы только один контракт на операцию, называемый GetCreateComplaintData. Кажется сумасшедшим, когда в такой степени детализации оказывается так много операций, когда есть только один клиент, который затем должен объединить и синхронизировать все эти запросы во что-то значимое. Почему бы не раскрыть что-то значимое в первую очередь?
Более того, если вы не намереваетесь раскрывать API службы третьим сторонам, разве это не лучшая стратегия, чем раскрытие операций CRUD для таблиц в БД?
Вся помощь и мнения приветствуются.
Заранее спасибо.