Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
C# 分布式应用程序(WCF/Remoting/web服务器设备)与web应用程序_C#_.net_Wcf_Distributed Computing_.net Remoting - Fatal编程技术网

C# 分布式应用程序(WCF/Remoting/web服务器设备)与web应用程序

C# 分布式应用程序(WCF/Remoting/web服务器设备)与web应用程序,c#,.net,wcf,distributed-computing,.net-remoting,C#,.net,Wcf,Distributed Computing,.net Remoting,我正在制作一个中等大小的标准LOB应用程序。目前它是一个web应用程序,但我正在制定一项提案,将其改造为桌面远程应用程序。我的意思是,数据库和应用服务器将托管在远程位置。客户端应用程序将通过internet(WCF/Webservices/Remoting)与服务器通信 我的问题是:我将其从web平台转移到web平台的唯一原因是由于web的限制(我不想使用AJAX或Java脚本来最小化这些限制,所以请不要使用JS/AJAX推荐)。我制作过传统的桌面应用程序,它们速度相当快,但我从未制作过远程或分

我正在制作一个中等大小的标准LOB应用程序。目前它是一个web应用程序,但我正在制定一项提案,将其改造为桌面远程应用程序。我的意思是,数据库和应用服务器将托管在远程位置。客户端应用程序将通过internet(WCF/Webservices/Remoting)与服务器通信

我的问题是:我将其从web平台转移到web平台的唯一原因是由于web的限制(我不想使用AJAX或Java脚本来最小化这些限制,所以请不要使用JS/AJAX推荐)。我制作过传统的桌面应用程序,它们速度相当快,但我从未制作过远程或分布式应用程序。我不确定应用程序的速度是否会比web快

据我所知,远程桌面应用程序会快得多。首先,不会有任何后后卫参与,(我非常讨厌他们)。数据显然是通过互联网传输的,所以从这一点上讲,仅仅为了速度和功率,转移到远程桌面是否更好

任何方向正确的帮助都是巨大的。非常感谢


Zeeshan

您的术语有些含糊不清-您想要在用户机器上运行的客户端应用程序,还是想要在服务器上运行且用户通过远程桌面(RDP)连接的应用程序

如果您谈论的是通过WCF等与服务器通信的客户端应用程序,那么它将比标准web应用程序快,尽管它仍然比本机桌面应用程序慢。它将比web应用程序更快,这不仅是因为缺少回发,还因为您将通过网络发送纯数据,而不是大量HTML/Javascript与数据组合。有了客户端应用程序,你有几个选项,所以仔细考虑它们——你想要Silverlight、WPF还是本地WiFrm应用程序?每个人都有自己的优点和缺点

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

编辑 <>在WAN(Internet)上使用WCF时,您一定要考虑如何确保它。WCF使安全通道变得微不足道,但您需要考虑如何进行身份验证——有两种不同的方式,但您可以轻松地自己谷歌。由于用户的资源或技能有限,您选择的方法将非常重要

至于你是用什么写的,如果Winforms是你的经验所在,你不能与之争辩。就我个人而言,我再也不会在web类型的应用程序中使用ASP.NET/Ajax/etc了,我会一直使用WPF或Silverlight(我只会在简单的网站上使用ASP.NET)。您可以使用VisualStudio的快速(免费)版本来编写它,您不需要表达式(它只是一个很好的工具,而且更针对设计方面而不是实际的编码方面)。部署应用程序并不困难-Silverlight或WPF xbap是通过web交付的,用户无需做任何事情(除了简单安装Silverlight插件或安装正确的.Net framework for WPF-)。Winforms或独立WPF需要稍微多做一些工作,但您可以通过编写一个好的安装程序来避免大多数问题


无论您选择哪一种,请确保您不会低估开发时间(因为您将有一点学习曲线),并确保您为测试它预算了足够的时间-尤其是它的安全方面:)

我也遇到过类似的情况,尽管是从Winforms LOB应用程序开始的

以下是我们在WinForms中发现的内容

  • 在您的发布周期中,要将其部署到所有客户端机器将变得更加困难
  • WinForms无法在其他操作系统上轻松运行。(单声道除外)
  • WCF端点可能会变得复杂,您需要为应用程序的发布/版本管理端点
  • 身份验证、授权和安全性可能很难做到正确
这就是为什么您应该坚持使用html web应用程序

  • 它将更容易部署,因为您只需要将一组DLL复制到bin文件夹中。可以从持续集成或临时服务器编写脚本
  • 通过使用SSL证书,安全性将变得很容易
  • Silverlight/Flash应该填补HTML遗漏的空白

微软还在.NET3.5中合并了连接系统,他们现在称之为WCF(ASMX/Remoting/etc…)。这需要4-5周的学习时间。

我认为桌面客户端相对于web应用程序的最大优势在于UI设计的自由度,并且您不必担心客户端环境中的任何不一致性,尽管如果您使用的是在silverlight上运行的客户端,这些都不是问题

就我个人而言,我不喜欢需要大量用户交互的web应用程序,有些web应用程序很容易使用,但我认为很容易使用错误的方法,最终导致应用程序出现错误或响应性较差(可能是因为浏览器不兼容,我的计算机上安装了IE、Firefox和Chrome,我对一些网站使用了IE、Firefox和Chrome,因为它们在浏览器上运行得更快,而对其他网站则使用了IE、Firefox和Chrome,因为网页只在浏览器上正确显示)。尽管对于silverlight客户端来说这可能不是问题

在网络速度的情况下,取决于网络上发生的事情,即使使用二进制序列化远程处理也可能会有相当大的开销