Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi DataSnap是将现有Windows应用程序的数据和业务逻辑带到移动/web客户端的合适解决方案吗?_Delphi_Datasnap - Fatal编程技术网

Delphi DataSnap是将现有Windows应用程序的数据和业务逻辑带到移动/web客户端的合适解决方案吗?

Delphi DataSnap是将现有Windows应用程序的数据和业务逻辑带到移动/web客户端的合适解决方案吗?,delphi,datasnap,Delphi,Datasnap,我需要一个巨大的Delphi XE应用程序(由专有的SQL server NexusDB支持),并开始为我的客户提供以新方式访问系统的能力: 更薄的Windows客户端,用于慢速/VPN连接 手机/平板电脑 网 DataSnap是否适用于此,或者引入中间层是否是提供远程/移动访问的错误方式?欢迎提出其他解决方案/想法 (我有XE2 Enterprise,但我在XE Enterprise上停留了一段时间。)这取决于您的安全需求,以及您向客户提供数据的方式。正如我经常指出的,dbExpress

我需要一个巨大的Delphi XE应用程序(由专有的SQL server NexusDB支持),并开始为我的客户提供以新方式访问系统的能力:

  • 更薄的Windows客户端,用于慢速/VPN连接
  • 手机/平板电脑
DataSnap是否适用于此,或者引入中间层是否是提供远程/移动访问的错误方式?欢迎提出其他解决方案/想法


(我有XE2 Enterprise,但我在XE Enterprise上停留了一段时间。)

这取决于您的安全需求,以及您向客户提供数据的方式。正如我经常指出的,dbExpress Datasnap有很大的安全缺陷(而DCOM版本并不适合LAN之外的环境,也不提供现成的移动设备支持)


web应用程序的问题会少一些,因为datasnap web服务器连接可能是内部的,由web应用程序来确保数据保护。

datasnap正被Embarcadero积极定位为多平台连接解决方案,其中服务器是用Delphi编写的,移动连接器(XE2和更高版本)可用于各种移动设备平台。因此,快速的答案是肯定的,它通常是合适的

它适合你吗?你没有说多少有助于我回答这个问题的话;您愿意购买德尔福的企业级或架构师级SKU,所以我猜是的

如果是我,我会寻找一个实现纯简单REST体系结构的解决方案,该体系结构适用于所有系统,无论是移动系统还是其他系统,无论是何种语言或平台,但我没有一个建议的替代方案,因为在我看来,SOAP几乎已经死了,而且没有一种通用的替代技术可以完成SOAP客户机/服务器系统所做的一切。我会考虑考虑“滚动自己的休息+ JSON”,或者评估RelbEdvices的产品,并从商业和技术的角度选择一条对你有意义的路径。
Datasnap很好,但它不是唯一的选项。这可能是目前可用的最简单、最容易推出的选项,也是唯一一款“开箱即用”的XE2,如果您想要苹果、安卓和其他一些产品,它可以立即投入使用。

最突出的问题是,这是一个零售软件包,而不是针对单个客户的应用程序。一些用户会希望这种面向公众的安全问题。想象一下,多年来向成千上万的客户销售一个软件包,这些客户现在希望能够以良好的安全性和性能进行移动/远程/网络/任何访问。@Richard在这种情况下,向您的服务器应用程序添加一个TIdHttpServer和WebBrokerBridge,并在此基础上构建一个RESTful界面。Marco Cantu有很多REST示例可以帮助您开始概念验证。如果HTTPS(具有适当的设置)足以满足您的需要,那么Datasnap可能是一个选择。从安全角度来看,TCP连接要弱得多。我完全理解您的期望,遗憾的是,Datasnap设计时考虑了数据库存储过程调用,而不是作为一个健全的RPC库,可以在“敌对”环境中跨连接工作,您可能无法控制端到端。正确的设置?最新的开放SSL等?正确的,正确的证书链设置,正确的web服务器设置,最新的tp库,ecc。ecc。如果需要,HTTPS还允许客户端身份验证,但这当然需要证书注册系统。或多或少,HTTPS与其证书一样安全。CAs最近的妥协显示了最薄弱的一点。这就是为什么,例如,自签名证书可能非常不安全,真的无法判断它们是否有效,每个人都可以伪造。系统是否在最终用户计算机上运行?对于多层体系结构,应用程序需要移动/平板电脑/web浏览器可以连接到的应用程序服务器。Nexus将安装在其服务器PC上(如果有),否则随机的Windows PC.DS服务器将与Nexus SQL server一起使用。这意味着,对于移动/平板电脑访问,datasnap服务器需要向公众公开,这可能是ldsandon的以下重新分级安全性的一个问题。@Richard,听起来现在没有中间层了,对吗?只有客户机/服务器?如果使用中间层(我认为很可能是这样),请从DataSnap框之外寻找安全性更好的选项。我使用RemObjects DataAbstract&我很高兴,但是还有kbmmw。@MarcusAdams没有中间层yetREST是我见过的最糟糕的RPC体系结构之一。这是自从人们开始使用Javascript编写代码以来,“整个web是一个字符串”概念如何洗脑开发人员的一个症状。我认为REST很容易使用——我不确定洗脑是什么?相比之下,我总是发现用肥皂工作是很糟糕的。与肥皂相比,休息是一种乐趣,而肥皂是一种垃圾。REST是“最差的”,就像C/C++对LISP/Smalltalk人来说是“最差的”。也就是说,如果你是一个设计理想主义者,而不是一个战壕战老手实用主义者,那么设计强调对你来说无关紧要的事情。做最简单的事情(可重复、通用、可移植),最终需要幂等性、字符串(相对于字节顺序问题),剩下的(哈哈哈)就是历史。