分布式应用程序(WCF /远程/网络servervices)VS Web应用程序

我想提出一个中等大小的标准LOB应用程序。 目前,它的一个Web应用程序,但我制定重整成一个桌面远程应用程序的建议。 我的意思是,数据库和应用服务器将在远程位置被托管。 客户端应用程序将通过(或者WCF / WEBSERVICES /远程)经由因特网与服务器通信。

我的问题是这样的:我从一个网络平台转变的唯一原因是由于网络(我不想做AJAX和Java脚本,以尽量减少这些限制,所以请没有JS / AJAX建议)的约束。 我做了传统的桌面应用程序,他们是相当快,但我从来没有打过一个远程或分布式应用程序。 我不知道天气应用程序的速度会更快那么Web与否。

据我了解,远程桌面应用程序会更快。 其一,有不会是任何职位背上参与其中,(我恨他们这么多)。 这些数据将通过互联网显然来了,所以在这方面,是它更好地转移到远程桌面只为纯粹的速度和力量?

任何帮助在正确的方向将是greatfull。 非常感谢。

Zeeshan

--------------解决方案-------------

我认为桌面客户端通过Web应用程序的最大优点是在UI的设计自由度,而且你不必担心在客户环境中的任何不一致的地方,但这些都不是一个问题,如果您正在使用Silverlight的运行在客户端。

我个人不喜欢,需要大量的用户交互的Web应用程序,也有一些他们的是一种享受使用,但我认为这是很容易做到了错误的方式,并最终有一个马车或不那么敏感应用程序(因为浏览器不兼容的可能,我有IE,Firefox和Chrome浏览器安装在我的电脑上我用一个用于一些网站,因为它们的运行速度就可以了,其他人用于其他网站,因为网页显示正确只对它们) 。 虽然这可能不是一个问题了Silverlight客户端。

如果网络速度,这取决于那张线甚至二进制序列化远程处理的事情可能有相当多的开销。 例如随着数据写入完整的类名,库名称及其版本,因此它可以变得相当大,即使是少量的数据缓慢(尽管它应该仍然是小然后HTTP)。 它也有HTTP有在不可靠的连接,因为它使用了类似的协议的同样问题。 对于一个项目,我们不得不写一个自定义的串行一些对象,因为单独二进制序列化是产生200K,但我们自定义的串行这些物体产生50K。 然后,我们最后写我们自己的网络协议,因为自带的运行时一个经常被拖延了不可靠的无线网络,以及远程处理不给由它创造的插座任何控制(这是有道理的封装方面,而且你可以'吨关闭它,迫使它来打开一个新的)。

(我假设你是问有关远程访问VS Web应用程序。没有远程桌面与Web应用程序,因为你注意到有关职位的时候,你无法避免它与远程桌面会话)

重写只是为了纯粹的速度的应用程序? 没有,因为用户可能不会看到响应时间相差太大。

你和你的术语有些模棱两可 - 你想要一个用户的计算机上运行的客户端应用程序,或者你想在服务器上运行的应用程序,用户通过远程桌面(RDP)连接?

如果你是在谈论一个客户端应用程序进行通信,以通过WCF等服务器,然后是它会比一个标准的Web应用程序的速度更快,但它仍然会比原生桌面应用程序慢。 这将是比Web应用程序,不只是因为缺乏回传的快,也因为你将通过网络发送纯数据,HTML / JavaScript的不是一个巨量结合你的数据。 随着客户端应用程序,你有几个选项,以便仔细考虑他们 - 你想要的Silverlight,WPF,或本地WinForms应用程序? 每个人都有其正面和负面。

如果你在谈论具有服务器,然后用户通过RDP访问上运行的客户端应用程序,那么你有其他考虑考虑的。 对于任何两个以上的并发用户,您将需要考虑购买的CAL,以便用户可以连接到服务器。 在这一点上,你也应该考虑是否应该运行在终端服务器或Citrix类型的设置,而不是使用远程桌面。

编辑

当使用WCF通过广域网(互联网),你肯定要考虑如何将其固定。 WCF使得它微不足道的固定渠道,但你需要考虑你将如何做认证-有几个不同的方式,但你可以很容易地自己谷歌的东西。 您选择的方法将是重要的,由于有限的资源或技能集的用户。

至于在什么你写的,你不能用的WinForms认为如果这是你的经验。 就个人而言,我永远不会再使用ASP.NET/Ajax/etc一个Web类型的应用程序,这将是WPF或Silverlight一路(我只会用ASP.NET进行简单的网站)。 您可以使用快递(免费)版本的Visual Studio来写它,你不需要表达(它只是一个不错的,更针对设计方面比实际编码侧)。 部署应用程序不一定是困难的 - 的Silverlight或WPF XBAP您通过网络传送,用户必须做什么(除了简单安装的Silverlight插件或安装正确的.Net框架WPF - 检查此链接)。 的WinForms或独立WPF需要稍微更多的工作,但你可以写一个很好的安装可以避免大部分问题。

无论你选择,确保你低估了开发时间没有(因为你将有一定的学习曲线),并且还要确保你的预算足够的时间来测试它 - 它特别是在安全性方面:)

我一直在类似的情况,虽然开始与一个WinForms LOB应用程序。

下面有什么,我们用的WinForms发现...

  • 这将是难以部署的发布周期,所有的客户机。
  • 的WinForms不能在其他操作系统上轻松运行。 (除了上一元)
  • WCF终端可能很复杂,你需要管理端点发布/版本的应用程序。
  • 身份验证,授权和安全性可能会非常棘手得到正确的!

继承人为什么你应该坚持一个HTML的Web应用程序。

  • 这将是更易于部署,因为你只需要复制一组DLL的进入bin文件夹。 可以从持续集成或登台服务器脚本。
  • 安全将是容易的,通过使用SSL证书。
  • Silverlight的/ Flash是否应填补空白的HTML遗漏了。

微软还结合了连接系统在.NET 3.5中,他们现在把它叫做WCF(ASMX /远程/等)。 它有相当的学习曲线4-5周。

分类:C# 时间:2012-06-28 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.454 (s). 10 q(s)