我正在开发一个我们制作 WPF 而不是 Silverlight 的应用程序,因为我们想要一个完整的桌面应用程序,具有整体独特的感觉和优势。然而,随着 Silverlight 4 的发布,我听说 Silverlight 主要是桌面应用程序的首选。
所以; 为什么我应该考虑将我的 WPF 应用程序迁移到 Silverlight 4 - 鉴于我仍然想要一个桌面应用程序?
我正在开发一个我们制作 WPF 而不是 Silverlight 的应用程序,因为我们想要一个完整的桌面应用程序,具有整体独特的感觉和优势。然而,随着 Silverlight 4 的发布,我听说 Silverlight 主要是桌面应用程序的首选。
所以; 为什么我应该考虑将我的 WPF 应用程序迁移到 Silverlight 4 - 鉴于我仍然想要一个桌面应用程序?
选择 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 和团队。
我觉得你对WPF和Silverlight的理解有点欠缺。Silverlight 是 WPF 中的功能和特性的子集。Silverlight 有一些 Silverlight 特有的功能。桌面上的 Silverlight 只是 Microsoft 对 Adobe AIR 的回应。话虽如此,如果这是您的选择,请使用 WPF 实现您的应用程序。不要让“嗡嗡声”驱动您对应用程序的决策,这就是您组织中的业务需求和可用技能应该做的事情。
请记住,Silverlight 4 目前处于测试阶段,没有可用的最终用户客户端运行时。 Silverlight 4 于 2010 年 4 月发布。如果您已经在 WPF 中为桌面开发应用程序,那么它可能是正确的解决方案。但是,明智的做法是密切关注 Silverlight 中发生的情况,以防您最终可能希望将应用程序移植到 Web 空间或在 Web 空间中开发不同的应用程序。
Silverlight 4 将 Silverlight 带到了一个全新的水平。查看Tim Heuer 的博客文章,了解许多新功能。此外,看看您是否可以从宣布 Silverlight 4 功能时的主题演讲中找到 facebook 应用程序的视频。该应用程序突出显示了大量以桌面为中心的新功能。
考虑 SL4 而不是 WPF 的几个主要原因
如果您使用 WPF 的原因是您想要一个完整的桌面应用程序,那么 silverlight 不是一个选择。相反,如果您对可以离开浏览器的基于 Web 的应用程序感兴趣,那么 Silverlight 4 可能就是您想要的。
从您问题中的措辞来看,听起来您想要完整的桌面体验,因此 Silverlight 无关紧要。
我只能看到选择 Silverlight 的两个优势。
否则,如果您需要一个针对 Web 服务的业务应用程序,为什么不使用 WPF 单击一次或任何其他技术来更新软件?
框架安装不应该是一个大问题,因为它只安装一次,不是那么大,并且已经集成到较新版本的 Windows 中。
您获得了性能,重用了 clr 程序集,对我来说,一个非常大的问题是您完全信任例如反射,这在 Silverlight 中无论是在浏览器中还是在浏览器外都极为有限。
而且我不认为WPF会死?WPF 长期以来一直拥有 Silverlight 1、2、3 和 4 中的所有新内容,并且还有更多内容。正如我所看到的,Silverlight 一直是 Web 浏览器的 WPF 的轻量级版本。
由于 Silverlight 是一个品牌,并且受到 Microsoft 项目的大力推广,因此项目赞助商和资助者更有可能知道它,而 WPF 尽管我们众所周知,但在社区之外不会为人所知。
因此,对于未来的项目开发,这可能会推动对 SL4 的需求超过 WPF,特别是如果有人认为 Silverlight 开发比 WPF 便宜,如果子技术的学习曲线较少(尽管我自己不同意这种观点)。
当然,就您当前的应用程序而言,切换到 SL4 只不过是押注成为早期采用者,除非您需要 SL4 而不是 WPF 中的特定功能。
我喜欢 WPF 的强大功能,但 SL5 来了,我想我们都会在 2012 年之前跟上潮流?
我想就性能差异添加一个意见。
根据我的经验,SL 的图形引擎要快得多。我无法创建类似于 Silverlight 的新枢轴的控件,其中数千个元素在 WPF 中平滑移动,尽管使用 SL 我获得了与枢轴本身相同的性能。
此外,WPF 视频播放似乎在我的机器上只能播放三个或四个视频,而使用 Silverlight 我可以同时播放近 50 个视频。
这很有趣,因为人们可能会认为 WPF 更快。