关于 Silverlight,我将概述我的经验。 (注:重新阅读此内容时,它听起来有些消极,但我指出了缺失的功能。总体而言,我喜欢 Silverlight,使用 c#在浏览器中创建丰富的用户界面吗?非常好)。
值得注意的差异包括没有鼠标右键、鼠标滚轮支持、打印功能,以及您无法打开新窗口。您的 OOB SL 应用程序不能放置在通知区域。您可以使用 JavaScript 处理鼠标事件,但如果要将应用程序移动到 OOB,则无法这样做。
SL 团队似乎过分关注安全问题,甚至到了捆绑其 LOB 适用性的程度(无法打开新窗口,仅信任 OOB 中的本地系统访问设置,通知区域等)。
其中一些使 Silverlight 应用程序感觉不兼容 Windows。请考虑高亮文本、右键复制。或者右键粘贴。这些许多人使用的基本操作都不见了。它还感觉像是一个外星 UI 体验,例如,您本能地想用鼠标滚轮滚动网格,但它不起作用。这些东西在浏览器的任何表格中都可以工作,但在 SL 中却行不通。
就编程而言,我没有太多使用 WPF 的经验,但据我所知,您必须以不同的方式解决某些问题。
SL 中缺少标记扩展。它还只有整数索引绑定,因此没有属性包,除非进行一些技巧。 没有触发器,因此您始终必须编写代码来连接事件(在更动态的页面中很烦人)。除了工具包中的 ImplicitStyleManager 之外,它没有可继承的样式。
因此,对于某些 LOB 应用程序来说,它很好,但对于其他应用程序,则需要跨越一些障碍(例如,如果您希望为客户端进行自定义)。但它肯定不适用于所有 LOB 应用程序。
我的印象是Silverlight似乎还没有完全成熟,存在很多小问题。例如,数据网格有些令人沮丧(不会自动拉伸,很难进行子类化),自动完成框有些不稳定,导航框架有些笨重,组合框/树形视图很难绑定(如果你想将SelectedItem绑定到不同于itemsSource的对象中,他们确实还没有解决这个问题)。
总的来说,Silverlight已经接近完美,只要你能接受一些限制和小问题。