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

Browser 基于浏览器的开发与智能客户端的权衡,browser,architecture,client,Browser,Architecture,Client,我有一个应用程序作为智能客户端(名义上启用WCF/WS)在Microsoft堆栈上启动,其中有一个小客户端应用程序部署,其余应用程序在我们的私有云中运行。它唯一真正的依赖是互联网连接、.NET4和windows操作系统 我面临着转换为基于浏览器的体系结构以用于所有未来开发的压力。基于我开发的其他web应用程序,我担心客户端IT组织控制浏览器的方式会导致更多问题,而不是我真正想要解决的问题 你有做这种决定的经验吗?当你决定使用智能客户端和浏览器时,你考虑了哪些技术因素?哪些资源有助于做出这一决定

我有一个应用程序作为智能客户端(名义上启用WCF/WS)在Microsoft堆栈上启动,其中有一个小客户端应用程序部署,其余应用程序在我们的私有云中运行。它唯一真正的依赖是互联网连接、.NET4和windows操作系统

我面临着转换为基于浏览器的体系结构以用于所有未来开发的压力。基于我开发的其他web应用程序,我担心客户端IT组织控制浏览器的方式会导致更多问题,而不是我真正想要解决的问题

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


我的应用程序是针对医疗保健提供商(如医院)的医疗保健应用程序,因此无论我走到哪里,我都不得不担心医疗保健首席信息官会回头看我。

显然,web应用程序有自己的挑战。我希望此链接可以在某些方面帮助您:


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

有趣。最初我来自C#winform和WPF桌面程序员,后来被分配做web开发。还没有接触智能客户端,但我认为它应该几乎与本机应用程序相同。根据经验,需要考虑的技术问题是:

  • 多浏览器支持

    特别是在报告和图形处理方面,如果组件没有一些库/插件/框架,则很难保持应用程序的多浏览器。尤其是css样式,javascript样式更少

  • 客户端编程(javascript)

    您将无法使用C#控件创建控件和动画。相反,您必须在exchange中使用javascript(jquery或其他库)。Javascript不是完全面向对象的,并且是intepret语言(没有编译错误),这使得它更难(也许有一些像coffeeScript这样的框架,我还没有研究过)。此外,由于在进程之间需要服务器请求/响应活动(我将在后面描述),因此更难实现

  • 请求/响应客户机-服务器体系结构

    这意味着客户端中的大多数进程都需要请求服务器(请求显示数据、请求修改数据等)。这也意味着您将失去控制事件的功能,即使您使用asp.net webform(它仍然需要一些调整才能使事件正常工作)。但是我假设您已经使用了WCF,所以这种架构一定很难实现

  • 保安

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

  • 并发和多线程

    在浏览器中,多任务页面更容易实现,并发处理将非常频繁。您的代码必须能够处理客户端的多线程。对于服务器端,您仍然可以使用WCF来处理并发性

  • 我的2美分