设为首页 收藏本站
查看: 1172|回复: 0

[经验分享] 你不得不知道的Visual Studio 2012(2)- 全新调试功能

[复制链接]

尚未签到

发表于 2016-5-23 12:06:16 | 显示全部楼层 |阅读模式
  Windows 8 带来了一种新的应用程序生命周期模型,其中 Windows 商店应用程序会为用户自动管理。即使它们从未运行过,也没有显示在屏幕上,这些应用程序仍然是激活状态的。这对能量消耗和电池寿命来说有好处。下图是Windows 商店应用程序的生命周期模型图。
DSC0000.png
  在这篇文章中,我们一起看看Visual Studio 2012在针对Windows 商店应用程序生命周期特点,所作出的调试改进,包括从JavaScript 调试,到Windows 8 模拟器,到Windows RT 设备上的远程调试。
模拟事件
  在此过程中,我们遇到的第一个挑战是如何来模拟你的应用程序在现实世界使用中会遇到的事件,以便你可以调试这些有趣的情况。如何模拟应用程序被激活、被暂停以及被终止?
  为了确保以上事件都可以简单方便的对应到Visual Studio中,Visual Studio中添加了以下三个命令:Suspend(暂停)、Resume( 继续)和" Suspend and Shutdown(暂停和关闭)"。

  • 暂停:在应用程序处理事件之后,暂停命令让应用程序处于暂停状态。
  • 继续:继续运行应用程序,使其重新进入运行状态,并将它作为在前台活动的应用程序。
  • 暂停和关闭:"暂停和关闭"首先会"暂停"。然后终止应用程序,并停止调试。
  你一定和我想的一样:为什么需要创建一个"暂停和关闭"的命令呢?此命令的目的是模拟当你的应用程序由Windows 8暂停和终止时,发生的自然顺序事件。例如,当你通过停止调试,来关闭应用程序,这时不会触发暂停事件。当你通过按 Alt + F4 或将其拖动到屏幕的底部来显式地关闭该程序。在这种情况下,在终止该应用程序之前,会触发一个暂停事件;但下一次用户激活该应用程序时,其PreviousExecutionState将是ClosedByUser (这不是VS2012试图模拟的).因此,"暂停和关闭"命令用来模拟应用程序被Windows暂停和终止,而不是由用户显式地关闭。
  
命令
  在 Visual Studio 2012中,程序运行后工具栏中出现下拉Combo选择框,这些命令按钮在下拉列表中:
DSC0001.png
  请注意"调试位置"工具栏不是总是被启用的。因此,如果你看不到此工具栏,请通过视图菜单启用它:
DSC0002.png

应用程序激活
  在调试器中,我们可以模拟应用程序激活。
  当你开始在 Visual Studio中调试Metro样式应用程序时,默认情况下,应用程序自动被激活。(这与磁片激活非常类似。)
  不过,还有一些其他方式。例如,你的应用程序可以接收与另一个应用程序共享的某些内容,并通过协议或扩展激活。(有关其工作原理的更多信息,请参阅共享内容目标应用程序示例。)
  Visual Studio 2012 中提供了功能来让你在某应用启动时自动进入调试状态,但是VS本身不会自动启动它(为了模拟这些其他激活的方案)。 DSC0003.png
  当你设置此选项,启动调试你的项目时,Visual Studio 2012 将进入调试模式,但实际上没有运行任何东西。你还会注意到"调试位置"工具栏上显示了你的项目名称,而不是显示正在运行的进程。
DSC0004.png
  这表明由该项目部署的应用程序软件包是在调试模式下,一旦该软件包的应用程序被激活了,调试器就会附加到进程中。
DSC0005.png
  我们可以模拟与另一个应用程序共享文本,并选择示例应用程序作为共享目标。在这种情况下,应用程序被激活了,我们可以调试它。请注意,现在"调试位置"工具栏显示正在运行的实际进程(而不是之前的项目名称)。
DSC0006.png

调试后台任务
  调试器可以模拟另一个 Windows 8 行为,这就是后台任务。后台任务是你的应用程序可能需要在后台执行某些操作,虽然这类应用程序不在屏幕上,也没有运行。
  后台任务是由像计时器事件这样的系统事件所触发的。(你的应用程序至少需要运行一次来注册任务)。后台任务在提供寄宿的系统中正常运行,但是,你也可以为一些后台任务触发器提供你自己的可执行文件。无论哪个进程承载该任务,后台任务都作为你的软件包的一部分运行。
DSC0007.png
  当你的软件在调试模式下时,一旦开始之后,调试器会自动附加到承载进程中。
  假设,你可以在某一时间调试来自多个软件包的应用程序,我们需要在一个控件中展示这些,而且这个控件能够基于任务的数量而扩展。因此,VS2012添加这些到上图所示的同一"调试位置"工具栏下拉列表中。其结果是,为当前活动状态的软件包而注册的所有后台任务的触发器命令都将出现在此下拉列表中。作为一个例子,当调试后台任务示例时,注册之后,你将在下拉列表中看到以下后台任务。
  
  下一步,若要调试后台任务,添加一个断点到OnNavigatedTo方法中,然后触发后台任务:
DSC0008.png
  看到了吧,调试后台任务就这么简单 !

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-220747-1-1.html 上篇帖子: windows phone8 开发准备工作 下篇帖子: Windows Phone 8开发环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表