0

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

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

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

我的应用程序是针对医疗保健提供者(例如医院)的医疗保健应用程序,所以无论我走到哪里,我都不得不担心医疗保健首席信息官会在我的肩膀上看着。

4

2 回答 2

1

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

  1. 多浏览器支持

    特别是对于报告和图形处理,如果您的组件没有一些库/插件/框架,那么保持您的应用程序多浏览器将非常困难。尤其是在 css 样式中,而在 javascript 中则更少。

  2. 客户端编程(javascript)

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

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

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

  4. 安全

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

  5. 并发和多线程

    在浏览器中,多标签页更容易出现,并发进程会非常高。您的代码必须能够处理客户端的多线程。对于服务器端,您仍然可以使用 WCF 来处理并发。

我的 2 美分。

于 2013-07-03T08:19:44.480 回答
0

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

除了这些,您还需要关注非功能需求,如可扩展性和可伸缩性等。

于 2013-07-03T07:06:03.397 回答