WPF和Silverlight有何区别?

6

WPF和Silverlight有什么区别?

它们是否就像WinForms与ASP一样,即桌面应用程序与Web应用程序之间的区别,还是存在重叠?


2
潜在的重复问题:https://dev59.com/TXNA5IYBdhLWcg3wfN2O 和 https://dev59.com/VXRB5IYBdhLWcg3wa2q2 - ChrisF
同意ChrisF的观点,这些问题与其他问题有很多重叠之处,所以一定要仔细查看它们。需要记住的一件事是,特别是Silverlight团队正在以非常快的速度前进。并且相当快地添加功能。因此,请始终确保在http://windowsclient.net/getstarted/和http://www.microsoft.com/silverlight/overview/default.aspx上查找最新信息。 - Ola Karlsson
3个回答

5
银光(Silverlight)是WPF功能的一个子集。WPF是桌面应用程序,而银光是跨平台Web应用程序。银光可以在离线时运行,但功能有限。如果您想要完整的WPF和访问客户端中WPF可以访问的所有内容,则无法使用银光离线 - 只需构建WPF应用程序即可。
WPF和银光在其核心使用XAML来描述布局。有一份微软文档突出了两者之间的区别。我现在只是找不到它。
像一些博主所报道的那样,WPF并没有死。由于其Web和跨平台功能,SL很难真正包含其更大的兄弟WPF的100%功能。 WPF包括一些非常特定于Windows的功能。
找到了上面提到的文档。在这里...

这是否意味着,如果您仅使用WPF的子集进行编码,它可以制作成Silverlight应用程序,或者还有其他区别? - Giovanni Galbo
1
我的理解是“是”,尽管我从未尝试过编写一个WPF应用程序,然后将其转换为SL应用程序。 SL程序集与WPF程序集相同,只是进行了一些版本检查。 这使得程序集不兼容(运行时版本不同)。 如果您知道在WPF中要避免哪些功能,您应该能够只需复制和粘贴XAML,编译并使其正常工作。 - DenaliHardtail
Giovanni Galbo:编写WPF应用程序,然后尝试将其移植到Silverlight通常需要大量的工作,因为这两个平台之间存在差异。然而,相反地,从Silverlight应用程序开始并将其移植到WPF应该是相对简单的。 - KeithMahoney
小心。Silverlight中的某些功能在WPF中找不到。其中一些是因为它们是“基于浏览器”的东西,但由于现在Silverlight比WPF更发达,因此某些功能可能会在WPF中被遗漏。 - David Brunelle

3

WPF是一个桌面API,它取代了古老的基于像素的GDI Winforms库。它使用XML布局(XAML)和绑定、部分类,并且不再是基于像素的(它处理单位,因此应用程序仍然可以在用户设置DPI不同的情况下工作)。

Silverlight是WPF的子集,它在浏览器内运行,类似于Flash。

Silverlight 3 扩展了其桌面应用范围,以对抗Adobe Air,因此Silverlight和WPF之间的差距不大,甚至有人要质疑WPF的未来。请参见Silverlight 3可能会取代Windows Presentation Foundation


0

1
应该是一条注释而不是一个答案。 - ChrisF
@ChrisF 不,它应该是一个答案。 - A1exandr Belan
潜在(在这种情况下实际)的重复回答应该以评论形式发布,而不是作为答案。 - ChrisF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接