Разработка распределенных приложений с использованием статической типизации и сервисов RESTful - PullRequest
2 голосов
/ 03 марта 2010

В последние несколько месяцев я часто сталкиваюсь с одними и теми же препятствиями в дизайне при разработке определенных видов распределенных приложений.

Во-первых, позвольте мне изложить мою среду и распределенные приложения:

  • .NET среда
  • Все общение осуществляется по HTTP
  • Приложения часто находятся на разных серверах
  • Обычно представляет собой комбинацию веб-приложений и служб рабочего стола.
  • Обычно службы рабочего стола обслуживают множество веб-приложений, поэтому можно сказать, что это отношение один ко многим, когда служба Windows может опрашивать различные веб-приложения на предмет разных данных и обратной связи.

Теперь, в среде .NET, позвольте мне сначала заявить, что я бы предпочел не использовать SOAP специально или вообще не использовать WCF.

Это потому, что я бы хотел, чтобы общение было действительно простым.

Это значит, что я буду разбрасывать простой XML-код на четвертый. Однако я хотел бы, чтобы все мои вызовы API были статически типизированы и имели дело с классами, а не с необработанным XML.

Это потому, что я думаю, что новому разработчику гораздо удобнее и проще прийти к API и иметь в нем простые объекты со свойствами вместо необходимости конструировать и деконструировать XML.

Обычно я использую методы сериализации и десериализации на уровне интерфейса.

Пока все хорошо. Теперь вот проблемы

Затем я обычно создаю одну dll, которая определяет эти классы и методы сериализации, и я отбрасываю их во всех узлах.

Преимущество состоит в том, что у меня есть один исходный код, одно решение для изменения, и это означает, что все узлы имеют определения всего, и все же они могут общаться, используя простые сервисы RESTful и XML.

Очевидным недостатком является то, что теперь обновление этой библиотеки становится проблематичным, поскольку везде есть dll.

Итак, мой вопрос. Ребята, не могли бы вы что-нибудь предложить или указать мне несколько полезных шаблонов?

Простым решением было бы использовать что-то вроде SOAP или некоторый конфиг WCF, потому что тогда я мог бы обмениваться определениями классов по проводам. Однако я не хочу этого делать.

ура!

1 Ответ

2 голосов
/ 17 марта 2010

Я в шоке, этот вопрос не получил тонны ответов. Я хотел бы дать вам более длинную напыщенную речь, но у меня нет времени: -)

Я действительно не рекомендую распределять объекты, поскольку продемонстрировало в прошлом, что они полны проблем. Однако, если необходимо, вы можете подумать, что в последней версии Silverlight используется MEF для загрузки сборок по требованию. Вы можете использовать MEF, чтобы сделать что-то подобное.

...