.net WPF/Silverlight VS WinRT
我从来没有在WinRT中实际构建过应用程序(也没有HelloWorld),我非常怀疑 我的问题是WPF/Silverlight中是否有WinRT中不存在的功能(不包括通过设计实现不同的功能) 这些方面对我来说是最重要的,也是我问题的核心,因此,决定是开始使用WinRT还是等待WinRT的实现:.net WPF/Silverlight VS WinRT,.net,wpf,silverlight,windows-runtime,.net,Wpf,Silverlight,Windows Runtime,我从来没有在WinRT中实际构建过应用程序(也没有HelloWorld),我非常怀疑 我的问题是WPF/Silverlight中是否有WinRT中不存在的功能(不包括通过设计实现不同的功能) 这些方面对我来说是最重要的,也是我问题的核心,因此,决定是开始使用WinRT还是等待WinRT的实现: 实体框架 WCF RIA MVVM支持(Prism) 各种工具箱(Silverlight/WPF toolkit),提供附加控件,如DatePicker等 我不清楚WinRT是否完全以.NET为目标,
- 实体框架
- WCF RIA
- MVVM支持(Prism)
- 各种工具箱(Silverlight/WPF toolkit),提供附加控件,如
等李>DatePicker
当EF+RIA+PRIST+工具包完全支持WinRT时,我会考虑将我的LoB应用程序以Metro方式使用。
WinRT基本上是一组COM对象集合,它封装了一组Win32 API,暴露为符合CLI的程序集。p> 微软修改了他们的C++编译器,以消耗和生成(即CLI)元数据,而不是更传统的和(大部分)C++或COM只MIDL或LIB文件格式。微软还修改了他们的“Chakra”Javascript引擎,以使用和发出CLI元数据
这意味着,当针对WRET、JavaScript和C++代码时,当然.NET语言也可以使用CLI兼容的(即.NET)程序集,并可以发出CLI兼容的(即.NET)程序集。
这样,可以在C++、NET.NET语言中编写WrRT代码(即C语言、VB.NET、F**、Fig等)和JavaScript。 如果您曾经编写过任何.NET代码,WinRT API对您来说都是非常熟悉的。在设计WinRT时,Windows团队实际上寻求了.NET Framework设计团队的帮助和指导,因此,在过去11年中指导整个.NET Framework团队和大多数.NET社区的相同设计指导原则已应用于WinRT API
坦白说,温特很漂亮:) WinRT的主要影响是它用类似的API替换System.IO的文件、网络和流IO类,但这些类只支持异步IO。这意味着您将无法编写在线程等待通过网络对文件系统或外部系统的调用返回时阻止线程的应用程序,除非您采取明确的步骤执行此操作 这是件好事 P>幸运的是,C的Vas.V5和VB.NET V.NET的新的异步/等待特性,以及对C++的具体支持意味着,你不必去,根本上改变你在这个新的异步世界中编写代码的方式——通常你只需要添加一个“异步”关键字到调用异步API的方法签名,然后在每个异步API调用之前使用“wait”关键字作为前缀 我强烈鼓励你观看,这应该让整个事情变得非常清楚。在这里,我还鼓励您观看其他几次//构建会话,尤其是上的和Mads会话 我还建议你看看几周前我在博客上写的图表,这会让事情更清楚一些 至于.NET本身,正如我在上面的帖子中所阐述的,.NET并没有“消失”。虽然WinRT应用程序中将禁止使用一些.NET API(即阻止IO API),但您所依赖的大多数API仍然存在,并且可以完全访问 关于Silverlight:Silverlight是一个浏览器插件。它是WPF的一个修改子集,提供了一些非常强大和吸引人的特性。事实上,Silverlight XAML引擎被转移到了核心Windows团队中,并被用于Windows8中的大多数Metro UI呈现——甚至是操作系统本身 最终结果是,您的大多数Silverlight代码只需稍加修改即可正常运行,只需更改一些“使用”名称空间即可 构建中有大量以XAML为中心的会话 关于向后兼容性,目标是:- 尽可能将要在WinRT以及.NET桌面应用程序、Windows Phone等中使用的代码隔离到可移植程序集中李> <>抽象代码,需要获取特定的平台依赖关系,并考虑手动加载它们或使用IOC将模块组合在一起。