Могу ли я нарушить CQS, чтобы обеспечить меньше болтливых интерфейсов веб-служб? - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть смарт-клиент .NET WPF, вызывающий веб-сервис .NET WCF.Веб-служба выполняет большую часть работы и возвращает небольшое количество информации клиенту.Таким образом, он не совсем отличается от браузера.

Клиент вызывает веб-сервис, и в данный момент веб-сервис выполняет некоторую работу и возвращает объект «результат».Вещи становятся сложными, и я думаю, что это потому, что я не применяю CQS (обратите внимание, я говорю о CQS, а не CQRS на данном этапе).Я хотел бы реорганизовать вещи, чтобы упростить и внедрить CQS. Я могу с радостью изменить контракты WCF на этом этапе, чтобы сделать это.

Однако это может означать, что клиентское приложение "отправиткомандное сообщение "(т. е. вызов метода команды в веб-сервисе), а затем" запрос "(вызов другого метода в том же веб-сервисе), что делать дальше.Мне кажется это ненужным;Стиль request / response-style - это довольно распространенный стиль (например, браузеры), который, если задуматься, технически нарушает CQS.Я думаю, что в моем случае, предоставляя операции внутри веб-службы и следуя CQS, можно немного обмануть систему для реальных вызовов веб-службы между ними.

Это приемлемо?

1 Ответ

0 голосов
/ 05 декабря 2011

Решения по разработке кода являются очень субъективными, и если вы не будете следовать строгим стандартам, чтобы принести пользу приложению в целом, никто не будет вас ругать.

CQS (разделение командных запросов) приятно, так как дает вам больше уверенности в правильности возвращаемых объектов.Это хорошо работает при доступе к объектам в памяти, но в системе стиля запроса / ответа это становится довольно болтливым (поверх уже очень болтливого протокола).

Если системы находятся в одной локальной сети, я бы использовал CQS.Но если вы получаете доступ к этому через веб-сайты или вам требуется более высокая производительность, тогда используйте обычный шаблон запроса / ответа.

...