Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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
C# WP SilverLight 8.1与WP 8.1(XAML)的优缺点_C#_Xaml_Silverlight_Windows Phone 8.1 - Fatal编程技术网

C# WP SilverLight 8.1与WP 8.1(XAML)的优缺点

C# WP SilverLight 8.1与WP 8.1(XAML)的优缺点,c#,xaml,silverlight,windows-phone-8.1,C#,Xaml,Silverlight,Windows Phone 8.1,我一直在读Wp8.1(XAML)应用程序是为Windows Phone 8.1创建应用程序的新方法,并且该代码对于Windows 8.1桌面应用程序具有高度可重用性 但是我有点担心,因为从联系人(WP8.1 XAML中的ContactManager)执行单个搜索要比Silverlight的搜索慢得多 在我的Lumia 1520中,仅仅从我的日程中返回所有联系人(240个带有电子邮件、缩略图等的联系人)需要3秒钟;Silverlight代码的相同操作需要0.7秒 我有点害怕使用WP8.1制作手机应

我一直在读Wp8.1(XAML)应用程序是为Windows Phone 8.1创建应用程序的新方法,并且该代码对于Windows 8.1桌面应用程序具有高度可重用性

但是我有点担心,因为从联系人(WP8.1 XAML中的ContactManager)执行单个搜索要比Silverlight的搜索慢得多

在我的Lumia 1520中,仅仅从我的日程中返回所有联系人(240个带有电子邮件、缩略图等的联系人)需要3秒钟;Silverlight代码的相同操作需要0.7秒

我有点害怕使用WP8.1制作手机应用程序,因为性能对我来说非常重要。在Lumia 535上进行相同的测试分别需要7秒和1,5秒,使用我的Lumia 1520的触点

对使用哪种项目有什么建议吗?我觉得Silverlight应用(显然)专注于Windows Phone,并使用了手机的所有功能

我错了?我是否选择了WindowsPhoneSilverlight而进入了一条不受欢迎的道路

注意:用于执行搜索的代码来自MSDN示例

WP8.1 XAML(诺基亚Lumia 1520,3秒钟即可通过缩略图、邮件帐户等获取240个联系人)


编辑:在论坛上发表的关于这个的帖子

你在比较同样的东西吗

在Silverlight版本中,您只能在完成处理程序中调用sw.Stop

如果你真的想做一个好的比较,你应该得到一个ETW跟踪;然后你就能真正了解发生了什么

对于基于Metro XAML的解决方案,可能会有额外的互操作成本。但这似乎是未来的道路

对于Silverlight,现有的API可能会更加完善以实现性能


可能您应该同时使用这两种解决方案,使可共享代码尽可能大,然后再决定采用哪种方式。

您是在1520?发布版本上运行开发者预览版还是实际发布版本/Cyan。问题是,在我尝试过的所有设备中,代码返回相同查询所需的时间似乎是Silverlight对应查询的4倍。@Arys如何度量时间?何时开始/停止测量?数据是否显示在某种列表中?@Romasz我编辑了这个问题以显示我是如何测量时间的。我也有代码来循环通过返回的联系人,但是循环通过它们的时间从大约4ms(XAML)到16ms(Silverlight)@asitis Great post mate不等。评论了它,还添加了关于我遇到的其他问题的信息……我正在比较相同的问题,是的,在完成处理程序中停止秒表。我已经看到了XAML版本在新的操作系统构建中性能的提高。一旦我有更多的数据,我会写调查结果,并再次比较性能。很抱歉回复太晚。我已经使用不同的Windows Phone 8.1版本进行了测试和比较,目前,XAML中对联系人的访问速度比Silverlight project慢得多。@Arys您有关于此主题的任何更新吗?在windows phone 8.1 xaml应用程序中获取联系人时,我还面临严重延迟。@asitis Nope。微软还没有消息。假设它将与Windows 10一起修复。。。但到目前为止,我们唯一能做的就是解决延迟问题。@Arys解决延迟问题了吗?这意味着什么,因为我需要让所有联系人继续。
ContactStore agenda = await ContactManager.RequestStoreAsync();
Stopwatch sw = new Stopwatch();
IReadOnlyList<Windows.ApplicationModel.Contacts.Contact> contacts = null;
sw.Start();
contacts = await agenda.FindContactsAsync();
sw.Stop();
txtblock1.Text = sw.ElapsedMilliseconds;
Contacts agenda = new Contacts();
//Stopwatch is declared at class level so its accessible in ListContacts_SearchCompleted Callback
sw.Start();
agenda.SearchCompleted+= ListContacts_SearchCompleted;
agenda.SearchAsync(String.Empty, FilterKind.None, null);
//sw.Stop() and print ElapsedMilliseconds in ListContacts_SearchCompleted callback