Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WPF/Silverlight VS WinRT_.net_Wpf_Silverlight_Windows Runtime - Fatal编程技术网

.net WPF/Silverlight VS 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为目标,

我从来没有在WinRT中实际构建过应用程序(也没有HelloWorld),我非常怀疑

我的问题是WPF/Silverlight中是否有WinRT中不存在的功能(不包括通过设计实现不同的功能)

这些方面对我来说是最重要的,也是我问题的核心,因此,决定是开始使用WinRT还是等待WinRT的实现:

  • 实体框架
  • WCF RIA
  • MVVM支持(Prism)
  • 各种工具箱(Silverlight/WPF toolkit),提供附加控件,如
    DatePicker
我不清楚WinRT是否完全以.NET为目标,或者它是如何工作的

另外,WinRT是一个仅客户端(如WPF)的应用程序,还是可以在远程客户端上运行,同时又位于服务器上(如Silverlight)

另一个问题:向后兼容性如何,如果我开发一个WinRT应用程序,它能在WinXP上工作吗

无论如何,我不明白为什么MVVM不是内联集成的,而是像MVC那样具有无缝的IDE支持。但这只是一个旁注。没有MVVM我无法使用XAML,任何比hello world稍大一点的应用程序都更容易使用MVVM

更新后 正如我对答案的评论,我确实喜欢WinRT的设计,但在我了解上述特定技术(EF、WCF-RIA+验证、MVVM、SDK和工具包)之前,这个问题仍未解决。显然,我不会开始销售WinRT应用程序或深入研究它,除非我至少具备上述技术

结论,作为一个大部分工作都是LOB应用程序的人,在检查了一下之后,HTML5+JS远远不是SL的替代品。因此,作为结论,我坚持SL,并继续向我的客户推荐它。SL花费的开发时间最少,并且没有bug。 与C#相比,Javascript是一种容易出错的语言,没有模式,也没有nuttn


当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将模块组合在一起。
坦率地说,我不认为微软的工作就是为每一个场景编写每一个框架。有几种MVVP方法/框架来自不同的专业人士和非专业人士。如果你找不到,就创建一个,贴在GITHub上,然后成名;)

不过,最重要的是,没有什么能阻止您下载和尝试Win8 Consumer Preview&Dev11 Beta版。去把它们拿出来试试——我想你会发现它们非常令人耳目一新:)