服务体系结构(WCF和 Delphi )

ahy6op9u  于 2023-01-02  发布在  其他
关注(0)|答案(3)|浏览(209)

我正在做一个项目,将有两个用户界面。网络(ASP.NET MVC)和桌面( Delphi 2010年)。这是客户的要求,所以我们需要使用德尔福。
我们正在考虑面向服务的架构,WCF也是如此。在Asp.NET MVC中访问WCF服务是可以的,但是我需要在 Delphi 中做什么呢?我主要的疑问是,如何使用Delphi访问WCF中的服务。有什么方法可以使它变得容易吗?
服务中的方法可以返回IEnumerable或T[]吗?对此有建议吗!?
谢谢!

u2nhd7ah

u2nhd7ah1#

WCF中的Web服务支持提供了许多 Delphi 不支持的特性- MTOM、WS-Addressing、WS-Reliable Messaging和WS-Security,这里仅举几个例子。如果您同时设计系统的两个部分(Web服务服务器和客户端),那么您可以选择要使用的特性(只要它们不是由其他方指定的),这是一件令人高兴的事情。
幸运的是,WCF并没有“规定”使用SOAP。这篇维基百科文章中的互操作性部分提到了使用标准XML(或RSS,或JSON)的WCF。还有一个WCF binding for REST
规划面向服务的体系结构是一项坚韧的任务,因此我强烈建议您阅读有关此主题的常用文献,并找到一种方法使其尽可能简单,易于测试和发展。

2j4z5cfb

2j4z5cfb2#

也许你可以看看RemObjects SDK:它是一种类似于WCF解决方案,您可以将其用于.Net、 Delphi 、Objective-C、PHP、C++等。
因此,您可以使用RemObjects for .Net构建一个服务器,例如TCP +二进制消息以获得最佳性能(SOAP/XML要慢得多!),以及一个 Delphi 2010客户端(甚至支持FreePascal)。双方(Delphi和.Net)彼此兼容,即使是二进制消息!
我对RemObjects的体验非常好:非常容易使用和建立服务(比WCF更容易?),良好的支持和质量等。

0md85ypi

0md85ypi3#

Delphi 的最新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;

它可以实时处理每个呼叫、每个会话、每个用户或每个组的示例。
它是安全的(在URI级别上具有安全认证)、轻便和快速的。
它使用JSON作为通信(比XML更轻)和RESTful访问。它可以被 AJAX 或WCF客户端使用(自定义接口封送之后的最新版本)。它针对速度和可伸缩性进行了优化(具有平衡的自定义托管和每个接口/每个方法访问安全性等高级特性)。
mORMot framework documentation有800多页,一些专门的高级解释 * 面向服务的体系结构 * 设计模式的 Delphi 。它集成了客户机-服务器ORM,所以你手头上有所有需要的低级工具,使一个适当的Domain-Driven application在Delphi和其他技术。

相关问题