使用静态类型和RESTful服务设计分布式应用程序

时间:2010-03-02 22:35:47

标签: .net web-services rest distributed

在过去的几个月里,我在开发某些类型的分布式应用程序时经常会遇到相同的设计障碍。

首先,让我列出我的环境和分布式应用程序:

  • .NET环境
  • 所有通讯均通过HTTP
  • 完成
  • 应用程序通常位于不同的服务器上
  • 通常是Web应用程序和桌面服务的组合。
  • 通常,桌面服务为许多Web应用程序提供服务,因此您可以说这是一对多关系,其中Windows服务可能会轮询不同的Web应用程序以获取不同的数据和反馈。

现在,在.NET环境中,让我先说明我不想特别使用SOAP,甚至不使用WCF。

这是因为我想保持沟通非常简单。

这意味着我将抛回简单的XML和第四个。但是,我希望我的所有API调用都是静态类型的,并且要处理类,而不是原始XML。

这是因为我认为新开发人员加入API会更好,更简单,并且拥有带有属性的简单对象,而不必构建和解构XML。

通常我所做的就是在接口级别使用序列化和反序列化方法。

到目前为止,这么好。现在来问题

我通常做的是构建一个定义这些类的dll和序列化方法,然后将它们放在所有节点中。

优点是我有一个源代码,一个要更改的解决方案,这意味着所有节点都有所有内容的定义,但它们能够使用简单的RESTful服务和XML进行通信。

明显的垮台是,现在更新该库会出现问题,因为到处都有dll。

所以,我的问题。你们可以提出什么建议,或者指出一些有用的模式吗?

简单的解决方案是使用类似SOAP或WCF的一些配置,因为那时我可以通过线路共享类定义。但是,我不想这样做。

喝彩!

1 个答案:

答案 0 :(得分:2)

我很震惊这个问题没有得到大量答案。我很想给你一个更长的肥皂盒咆哮,但我没有时间: - )

我真的不建议过去分发对象demonstrated以充满问题。但是,如果必须,您可能需要考虑最新版本的Silverlight正在使用MEF按需下载程序集。您也许可以使用MEF来做类似的事情。