我有一个在Microsoft堆栈上作为智能客户端(名义上启用了WCF/WS )启动的应用程序,它部署了一个小客户端应用程序,应用程序的其余部分在我们的私有云中运行。它唯一真正依赖的是互联网连接、.net 4和windows操作系统。
为了将来的开发,我面临着转换为基于浏览器的架构的压力。基于我工作过的其他web应用,我担心客户端IT组织控制浏览器的方式,会导致比我真正想要处理的问题更多的问题。
你有做这种决定的经验吗?在决定使用智能客户端还是浏览器时,您考虑了哪些技术因素?哪些资源对做出这个决定有帮助?
我的应用程序是一个针对医疗保健提供者的医疗保健应用程序(例如。医院),所以无论我走到哪里,我都不得不担心医疗保健信息官在背后监视我。
发布于 2013-07-03 16:19:44
有意思的。最初我来自C# winform和WPF桌面程序员,后来被分配到做web开发。还没有接触智能客户端,但我认为它应该与本机应用程序几乎相同。根据经验,需要考虑的技术问题包括:
特别是对于报表和图形处理,如果你的组件没有一些库/插件/框架,让你的应用程序保持多浏览器将是非常困难的。尤其是css样式,而在javascript中就更少了。
您将无法使用C#控件创建控件和动画。相反,您必须在交换中使用javascript (jquery或其他库)。Javascript不是完全面向对象的,也不是完全解释的语言(没有编译错误),这使得它变得更加困难(可能有一些像coffeeScript这样的框架,我还没有探索过)。此外,它更难实现,因为它在流程之间需要服务器请求/响应活动,我稍后将对此进行描述。
这意味着客户端中的大多数进程将需要请求服务器(请求显示数据,请求修改数据等)。这也意味着你失去了控制事件的能力,即使你使用asp.net webform (它仍然需要一些调整才能让事件工作)。但是,我假设您已经使用过WCF,所以这种架构一定很难。
不要在客户端保存密码等重要信息(隐藏字段、javascript变量等)。概念应该与多租户客户端相同,但是在浏览器中,用户可以自由访问以调试您的网页。
在浏览器中,多选项卡页面更容易出现,并发进程也会非常高。您的代码必须能够处理客户端的多线程。对于服务器端,您仍然可以使用WCF来处理concurrencies.
我的两分钱。
发布于 2013-07-03 15:06:03
显然,web应用程序有其自身的挑战。我希望这个链接能在某些方面对你有所帮助:http://msdn.microsoft.com/en-us/library/ee658099.aspx
除了这些,你还需要关注非功能需求,比如可扩展性和可伸缩性等。
https://stackoverflow.com/questions/17435501
复制相似问题