2011-04-13 183 views
3

我在一个项目中,将有两个用户界面的工作。 Web(asp.net mvc)和Desktop(Delphi 2010)。这是客户的要求,所以我们需要使用Delphi。架构服务(WCF和Delphi)

我们正在考虑通过面向服务的架构的一个,所以是WCF。在Asp.Net MVC中访问WCF服务很好,但是我需要在Delphi中做什么?我的主要疑虑是,如何使用Delphi访问WCF中的服务。有什么方法可以让它变得简单吗?

可以在我的服务回报了IEnumerable或T []的方法呢? 对此有何建议!?

谢谢!

回答

3

在WCF Web服务支持提供了许多功能,这是Delphi没有支载 - MTOM,WS-Addressing的,WS-可靠消息和WS-Security只是仅举几例。如果您正在设计系统的两个部分(Web服务服务器和客户端),那么您可以选择使用哪些功能(只要它们不是由其他方指定的)就可以开心。

WCF幸好没有 '规定' 使用SOAP。本维基百科文章中的Interoperability部分提到了带标准XML(或RSS或JSON)的WCF示例。还有一个WCF binding for REST

规划面向服务的架构是一项艰巨的任务,所以我强烈建议通过正常的文学这个主题阅读,并找到一种方法来保持它尽可能简单和容易测试和进化。

2

也许你可以在RemObjects SDK看看:这是一个WCF样的解决方案,你可以使用它的.Net,德尔福,Objective-C的,PHP,C++等

所以你可以建立一个带有RemObjects for .Net的服务器,例如TCP +二进制消息以获得最佳性能(SOAP/XML要慢得多!)以及Delphi 2010客户端(甚至支持FreePascal)。双方(Delphi和.Net)相互兼容,即使是二进制信息!

我与RemObjects体验非常好:非常容易使用,并建立服务(?比WCF容易),良好的支持和质量等

0

一个德尔福最新的SOA框架,是我们Open Source mORMot framework

您可以使用interface定义您的服务合同,并使用命名管道,GDI消息或TCP/HTTP在本地或远程访问它们。您的合同在客户端和服务器端都是这样定义的,就像在WCF中一样。

type 
    ICalculator = interface(IInvokable) 
    ['{9A60C8ED-CEB2-4E09-87D4-4A16F496E5FE}'] 
    function Add(n1,n2: integer): integer; 
    end; 

它处理每个呼叫,每个会话,每个用户或每个组实例的实况。见this sample code

它是安全的(与secure authentication在URI级别),轻而快。

它使用JSON作为通信(比XML更轻)和REST式访问。它已准备好被AJAX或WCF客户端使用(在对接口进行自定义封送后最新消息)。它针对速度和可伸缩性进行了优化(具有高级特性,如平衡自定义托管和每个接口/每方法访问安全性)。

mORMot framework documentation有超过800页,以及一些专门的高层次解释服务导向架构德尔福的设计模式。它与客户端 - 服务器ORM集成在一起,因此您可以使用所有必需的低级工具在Delphi中制定合适的Domain-Driven application以及其他技术。