基于浏览器的开发与智能客户端的权衡

时间:2013-07-02 20:41:59

标签: browser architecture client

我已经在Microsoft堆栈上启动了一个应用程序作为智能客户端(理论上支持WCF / WS),其中一个小型客户端应用程序已部署,其余应用程序在我们的私有云中运行。它唯一真正的依赖是互联网连接,.net 4和Windows操作系统。

我面临着将所有未来发展转换为基于浏览器的架构的压力。根据我所研究过的其他网络应用程序,我担心客户端IT组织可以控制浏览器的方式,它会导致比我真正想要处理的问题更多的问题。

你有做出这种决定的经验吗?在决定使用智能客户端与浏览器时,您考虑了哪些技术因素?哪些资源有助于做出这个决定?

我的应用程序是针对医疗保健提供商(例如医院)的医疗保健应用程序,所以无论我走到哪里,我都要担心医疗保健CIO看着我的肩膀。

2 个答案:

答案 0 :(得分:1)

有趣。最初我来自C#winform和WPF Desktop程序员,后来被分配到Web开发。还没有触摸Smart Client,但我认为它应该与Native应用程序几乎相同。根据经验,需要考虑的技术事项是:

  1. 多浏览器支持

    特别是对于报表和图形处理,如果您的组件没有一些库/插件/框架,那么保持您的应用程序多浏览器将非常困难。特别是在CSS风格和javascript中较少。

  2. 客户端编程(javascript)

    您将无法使用C#控件创建控件和动画。相反,你必须使用javascript(jquery或其他库)作为交换。 Javascript不是完全OOP,并且是解释语言(没有编译错误),这使得它变得更难(也许有一些像coffeeScript这样我还没有探索过的框架)。此外,它更难以制作,因为它将在流程之间需要服务器请求/响应活动,我将在后面描述。

  3. 请求/响应客户端 - 服务器架构

    这意味着客户端中的大多数进程都需要请求服务器(请求显示数据,请求修改数据等)。这也意味着你失去了控制事件的能力,即使你使用asp.net webform(它仍然需要一些调整才能使事件发挥作用)。但是我假设你已经使用过WCF,所以这种架构必须那么难。

  4. 安全

    不要在客户端(隐藏字段,javascript变量等)中保留密码等重要信息。这个概念应该与多租户客户端相同,但是在浏览器中,用户可以自由调试您的网页。

  5. 并发和多线程

    在浏览器中,多标签页面和并发过程更容易发生。您的代码必须能够处理客户端的多线程。对于服务器端,您仍然可以使用WCF来处理并发。

  6. 我的2美分。

答案 1 :(得分:0)

显然,Web应用程序有其自身的挑战。我希望此链接可以在某些方面为您提供帮助:http://msdn.microsoft.com/en-us/library/ee658099.aspx

除此之外,您还需要关注可扩展性和可扩展性等非功能性要求。