混合WinJS和XAML

混合WinJS和XAML,xaml,winrt-xaml,winjs,Xaml,Winrt Xaml,Winjs,我们有一个WinJS应用程序,它的性能不如用XAML/C#编写时那么好。是否可以通过在WinJS中托管XAML或在XAML中托管WinJS,将应用程序逐块移动到XAML中?还是需要完全重写?重写。在WinJS应用程序中托管XAML是不可能的,而在XAML web视图中托管WinJS将是极其困难的-跨两个技术堆栈的通信将非常困难,以至于您不会节省任何时间或精力。更好的问题是:为什么您的应用程序没有按预期运行 一般来说,WinJS应用程序的性能应该与C#/XAML应用程序相同(或在某些情况下优于C#

我们有一个WinJS应用程序,它的性能不如用XAML/C#编写时那么好。是否可以通过在WinJS中托管XAML或在XAML中托管WinJS,将应用程序逐块移动到XAML中?还是需要完全重写?

重写。在WinJS应用程序中托管XAML是不可能的,而在XAML web视图中托管WinJS将是极其困难的-跨两个技术堆栈的通信将非常困难,以至于您不会节省任何时间或精力。

更好的问题是:为什么您的应用程序没有按预期运行

一般来说,WinJS应用程序的性能应该与C#/XAML应用程序相同(或在某些情况下优于C#/XAML应用程序)。什么对你来说表现不好?翻译布局?非用户界面代码?(如果它是以JS执行或内存管理阻止你的方式,那么你可以移动到C或C++ WRET组件),但是这些情况很少见。
那么,您进行了哪些性能分析,使您相信问题实际上是WinJS?(或者HTML/JS运行时?

从技术上讲,在WebView中托管WinJS很简单(就像在浏览器中托管一样)。这是一个老问题,但在我写这篇文章时,我们使用的是javascript图表库。在x86上,在手臂曲面上渲染大约需要30毫秒,而在手臂曲面上渲染则需要300毫秒。我们在一个视图中看到了大约10个这样的图表。你可以看到这是怎么回事。另外,我也不想对您关于WinJS的性能应该与C#/XAML一样好或更好的断言给予任何重视。请链接到证据,因为这与我读到的任何内容都不匹配。WWAs的渲染堆栈比XAML的渲染堆栈更快(更轻),尽管后者正在变得更好,可能会在Win10中迎头赶上。HTML/CSS运行时更好地利用了DComp和DManip,在布局和元素创建方面更快,并且编组开销更少。WinJS的ListView控件比Win8中的XAML要快得多,尽管它们在8.1中更接近。要点是:说“用这个第三方库渲染图表在我们的使用中太慢了,所以让我们用另一种技术重写我们的应用程序”是完全没有意义的。哦,而且Surface RT的速度太慢了。但是在它上面运行最快的应用程序(比如Tweetium)是HTML/JS/C++,而不是XAML/C。当我们使用XAML/C中的一些第三方图表控件与表面上的HTML进行PoC时,就像是日以继夜。当我们与利益相关者并肩运行时,这对我们和他们来说非常有意义。