27

我正在开发一个我们制作 WPF 而不是 Silverlight 的应用程序,因为我们想要一个完整的桌面应用程序,具有整体独特的感觉和优势。然而,随着 Silverlight 4 的发布,我听说 Silverlight 主要是桌面应用程序的首选。

所以; 为什么我应该考虑将我的 WPF 应用程序迁移到 Silverlight 4 - 鉴于我仍然想要一个桌面应用程序?

4

8 回答 8

15

选择 WPF 或 Silverlight 或其他任何东西,因为它是时尚的,在我看来只是愚蠢的,除非你想给一个女孩或一个尖头头发的老板留下深刻印象。

写软件的目的是为了赚钱。这就是微软这样做的原因,这就是我这样做的原因,大概这就是你这样做的原因。虽然周围肯定有人因为喜欢做或者追求远大理想而做,但这些人不是有效的市场力量,没有真正的发言权。

大部分资金用于业务线 (LOB) 应用程序,所有工具的构建目的都是明确地将它们出售给尝试构建 LOB 应用程序的人,因为这代表了世界开发工具预算的大部分。

Silverlight 最高版本 3 基本上与 Flash 竞争,也就是说,它除了在网站上闪闪发光之外毫无用处:见证所有链接到 Microsoft Silverlight 页面的示例网站。

微软对 SL4 的大力推动是对 LOB 开发的支持;RIA 工具。但为什么?因为虽然您可以使用 HTML、CSS、AJAX、Flash 和 Web 服务进行 LOB 开发,但这有点像说您可以使用 Meccano 套件构建一辆好车,前提是您已经准备好使用大量的沼泽。Silverlight 使用统一的开发环境做同样的事情,但高效且连贯。而且很闪亮。

这是对用于处理 HTML、CSS、AJAX、Flash 和 Web 服务的破碎工具集的巨大改进,如果您销售的是集成开发工作室,那真是太棒了。

Silverlight 意味着轻松推出。如果他们没有 Silverlight 怎么办?他们会的,即使微软必须在下一个服务包中隐藏它。如果您是 IT 部门,那么轻松部署非常好,如果您正在销售局服务,那就太好了。如果您正在开发,这也很棒,因为您不必为开发或测试设置工具包而烦恼。

对于局类服务,没有其他明智的选择。对于传统的 LOB 应用程序,没有理由不使用它,并且部署更加容易和方便。如果您需要在这些范围之外做一些事情,Silverlight 是不合适的。

值得注意的是,我的应用程序做了一些 Silverlight 不支持的事情(直接 TCP 的事情),这完全没有问题;服务器代表客户端执行这些操作,这很好地避免了围绕野外部署的所有环境危害,因为我们可以控制服务器环境。

我认为跨平台支持是一个毛茸茸的,因为非 Windows 平台上的 Silverlight 远远落后,而且非 Windows 商业工作站也少之又少。企业不在工作站上使用 Linux。Macintosh 不是一个平台,它是一种宗教:与他们交谈也没有意义。

话虽如此,在 VS2010 之前没有 Silverlight 设计师。手工编码无休止的 XAML 是一个巨大的痛苦。VS2010 中的 SL4/RIA 很棒,但 Joe Public 还没有它,如果有的话也不能使用它来推出,因为没有上线许可证或最终用户运行时。

这使得 WPF 成为唯一实用的选择。但是 [drum roll] 带有上线许可证和运行时的最终测试版将在 Real Soon Now 上可用,可能在 2 月底。感谢 ScottGu 和团队。

于 2009-12-19T12:56:40.213 回答
10

我觉得你对WPF和Silverlight的理解有点欠缺。Silverlight 是 WPF 中的功能和特性的子集。Silverlight 有一些 Silverlight 特有的功能。桌面上的 Silverlight 只是 Microsoft 对 Adob​​e AIR 的回应。话虽如此,如果这是您的选择,请使用 WPF 实现您的应用程序。不要让“嗡嗡声”驱动您对应用程序的决策,这就是您组织中的业务需求和可用技能应该做的事情。

于 2009-11-18T19:19:49.530 回答
10

请记住,Silverlight 4 目前处于测试阶段,没有可用的最终用户客户端运行时。 Silverlight 4 于 2010 年 4 月发布。如果您已经在 WPF 中为桌面开发应用程序,那么它可能是正确的解决方案。但是,明智的做法是密切关注 Silverlight 中发生的情况,以防您最终可能希望将应用程序移植到 Web 空间或在 Web 空间中开发不同的应用程序。

Silverlight 4 将 Silverlight 带到了一个全新的水平。查看Tim Heuer 的博客文章,了解许多新功能。此外,看看您是否可以从宣布 Silverlight 4 功能时的主题演讲中找到 facebook 应用程序的视频。该应用程序突出显示了大量以桌面为中心的新功能。

于 2009-11-18T19:29:52.880 回答
3

考虑 SL4 而不是 WPF 的几个主要原因

  1. 更小的框架尺寸。当然,SL4 可能会比 SL3 大得多,但目前 Silverlight 框架的大小约为 .NET 3.5 最小版本的 1/10。
  2. 跨平台支持——Silverlight 在 Mac 和 Linux 上运行(理论上)。这对您来说可能不是一个大问题,但在某些情况下它是至关重要的。
  3. 与 HTML 更好的集成。Silverlight 可以存在于网页中,而版本 4 的 html 可以存在于 Silverlight 中。再一次,这可能不适用于您,但如果您需要与现有的 Web 应用程序互操作,Silverlight 绝对是您的最佳选择。如果您需要,它还将使您更容易过渡到网络。
  4. 如果把精力放在微软的话,这显然是在哪里。如果 WPF 几乎死在水中,我不会感到惊讶,就像 Winforms 和 LINQ to SQL 一样。
于 2009-11-18T23:21:08.920 回答
2

如果您使用 WPF 的原因是您想要一个完整的桌面应用程序,那么 silverlight 不是一个选择。相反,如果您对可以离开浏览器的基于 Web 的应用程序感兴趣,那么 Silverlight 4 可能就是您想要的。

从您问题中的措辞来看,听起来您想要完整的桌面体验,因此 Silverlight 无关紧要。

于 2009-11-18T19:19:48.867 回答
2

我只能看到选择 Silverlight 的两个优势。

  1. 你真的需要跨平台,选择 Silverlight。
  2. 您需要在浏览器中嵌入带有 HTML 的内容,选择 Silverlight

否则,如果您需要一个针对 Web 服务的业务应用程序,为什么不使用 WPF 单击一次或任何其他技术来更新软件?

框架安装不应该是一个大问题,因为它只安装一次,不是那么大,并且已经集成到较新版本的 Windows 中。

您获得了性能,重用了 clr 程序集,对我来说,一个非常大的问题是您完全信任例如反射,这在 Silverlight 中无论是在浏览器中还是在浏览器外都极为有限。

而且我不认为WPF会死?WPF 长期以来一直拥有 Silverlight 1、2、3 和 4 中的所有新内容,并且还有更多内容。正如我所看到的,Silverlight 一直是 Web 浏览器的 WPF 的轻量级版本。

于 2009-11-28T10:56:31.913 回答
1

由于 Silverlight 是一个品牌,并且受到 Microsoft 项目的大力推广,因此项目赞助商和资助者更有可能知道它,而 WPF 尽管我们众所周知,但在社区之外不会为人所知。

因此,对于未来的项目开发,这可能会推动对 SL4 的需求超过 WPF,特别是如果有人认为 Silverlight 开发比 WPF 便宜,如果子技术的学习曲线较少(尽管我自己不同意这种观点)。

当然,就您当前的应用程序而言,切换到 SL4 只不过是押注成为早期采用者,除非您需要 SL4 而不是 WPF 中的特定功能。

我喜欢 WPF 的强大功能,但 SL5 来了,我想我们都会在 2012 年之前跟上潮流?

于 2009-12-05T17:31:05.920 回答
0

我想就性能差异添加一个意见。

根据我的经验,SL 的图形引擎要快得多。我无法创建类似于 Silverlight 的新枢轴的控件,其中数千个元素在 WPF 中平滑移动,尽管使用 SL 我获得了与枢轴本身相同的性能。

此外,WPF 视频播放似乎在我的机器上只能播放三个或四个视频,而使用 Silverlight 我可以同时播放近 50 个视频。

这很有趣,因为人们可能会认为 WPF 更快。

于 2012-06-16T15:12:17.600 回答