Windows Runtime 基础

Windows操作系统提供了很多功能,应用程序开发者可以很容易地构建应用。本书阐述了大部分Windows功能并且提供了一些使用的最佳指导实践。Windows通过api暴露这些功能,叫做Windows Runtime(简称WinRT),WinRT接口可以被很种开发语言调用,包括JavaScript,本地C++和.NET的C#、VB。而本书用C#描述。

Windows操作系统支持很多应用程序模型。比如,Windows支持几种客户端应用模型,包括CUI和GUI。也支持用服务端应用程序模型构建service,比如IIS,SQL Server和exchange,以上这些都是桌面应用程序。Windows 8现在支持一种新的客户端GUI程序模型叫做Windows商店应用。“商店应用”这种叫法也不是很理想,因为Windows商店应用不用非通过商店安装,也可以手动安装(通过sideloding)的方式开发,测试和企业级应用。

因为WinRT的api是操作系统的一部分,任何应用程序都可以调用这些api,但是微软限制了桌面程序不能调用WinRT的api,所以非商店应用还用不成有些winrt的api。商店应用还运行在一个与桌面程序不同的安全上下文中,这个安全上下文叫做“app容器”,限制了只能商店应用访问。基于这些原因,本书专注于在商店应用中使用winrt的api,但是要注意,有些winrt的api也可以被桌面程序调用。你还应该注意有些winrt api仅能被桌面应用调用,有些不能被商店应用调用。msdn文档上有说明哪些可以被桌面程序调用,哪些可以被商店应用调用,或者都可以调用。读本书不同章节的时候,留意微软设计商店应用模式的原则,如果你想知道为什么有的功能运行的方式或有些功能缺失了,多半是因为它不符合设计原则。当你自己设计商店应用时,也需要考虑这些原则。这些原则是:

  • 安全:商店应用不能访问用户未授权的数据。这保证了不能删除,修改,上传用户的数据到未知的互联网上。也意味着商店应用不能在用户未同意的情况下获取用户的位置、录制音频和视频。
  • 高效用电:大部分情况下,商店应用可能在用户与app交互时执行代码。当app在后台时操作系统会挂起所有app的所有线程,禁止app在后台时使用系统资源(包括cpu,网络,存储),因为耗费电量。阻止使用用户资源可以帮助前台app保持快速和流畅。winrt也提供了让app看起来像运行在后台一样的方式,后面会讨论。
  • 用户始终有控制权:商店应用不能违背用户的意愿。举例来说,用户必须给app权限后,app才能在开始屏幕添加磁贴或显示toast提醒。用户可以决定是否可以在app和用户的pc间同步数据,app不能替用户做决定,操作系统本身强制实施这些限制。但是有些是通过商店应用策略强制实行的(比如当漫游数据或超过用户数据限制时要使用网络)。如果不符合这些原则,就不能通过认证。
  • 独立:商店应用不能影响操作系统上安装的其他应用。比如商店应用不能访问其他应用创建和维护的数据(除非用户给文件选取器分配权限)。而且,app不能与其他app通信。所有跨进程通信是禁止的。但是,商店应用可以用一种设计良好的机制与其他app通信。
  • 确信的安装,升级和卸载。用户可以很容易通过商店发现和安装商店应用,用户可以确信app遵守这些原则。已安装的app保留最新的bug修补和功能。另外,用户可以轻易地在开始屏幕上卸载。当卸载时,用户可以确信app被完全卸载(没有残留的文件,文件夹和注册表)。而且,因为app是相互独立的,卸载app不能对操作系统和其他已安装的app造成负面影响。然后,不像桌面app只能被管理员安装,商店应用可以被标准用户安装。
  • 易于管理:在之前,桌面应用有很多功能问题,问题多是因为用户可以运行app的多个实例,每一个都有自己的窗口。例如当用户点击了一个程序的图标,系统启动一个新的实例或者将已运行的实例放到前台。如果程序已经有多个实例正在运行,哪一个实例到前台运行?更可恶的是,当程序被其他程序遮挡时用户有时候忘记了这个程序正在运行。而商店应用只有一个单独的实例运行。桌面应用的另一个问题是当系统内存不足时用户必须决定终止哪个程序,但用户并不知道哪个app占内存比较多。而用户就根本不用去关闭商店应用,当用户切换到某个商店应用时,系统会自动重新启动商店应用。当app升级到新的版本后系统也会自动终止正在运行的app。为了让用户无疑体验,开发者必须做一些额外的工作。
  • 快速和流畅:商店应用永远立即响应用户的输入,使用户感觉到一直拥有app的控制权,以拥有愉快的使用体验。
  • 通过chrome的内容:商店应用倾向于拥有一个经过触摸优化过的用户界面,通过chrome(菜单,工具栏,框架等等)强调内容。给用户一种沉浸式 浏览数据的体验。
  • 设备灵活:Windows和它上面的app可以广泛用于各种硬件设备,用户可以购买适合的PC机,Windows支持三种CPU架构(arm,x86,x64),以及各种容量的内存,存储和显示分辨率。Windows PC还支持大量的外围设备,如LAN,WAN,移动网络,摄像头,扫描仪,打印机,游戏控制器等。


注意

    当Windos运行在arm cpu的pc上时,我们叫做windows rt pc,用户只能安装商店应用和微软签名的桌面应用(任务管理器,office,vs远程调试工具)。开发者经常问为什么不能安装自己的桌面应用,原因是上面列出的设计原则。因为桌面应用不遵循这些原则,桌面应用可能危害pc,这就破坏了用户的信任,安全性变弱,破坏系统响应,浪费电量,通过阻止安装桌面app,微软保证用户可以有很好的体验。

微软的愿景是Windows Runtime可以提供一种统一的编程模型,让开发者编写的app运行在所有windows设备上,包括手机,天花板,笔记本,桌面pc,服务器pc,XBOX以及pixelsense. 统一编程模型需要时间去实现,微软也完全承认还需要很长的路要走。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual C++ 2013 Runtime指的是Microsoft Visual C++ 2013的运行时库。运行时库在运行C++程序时起着重要的作用。它包含了一系列的函数和类,用于支持和运行C++程序。 Visual C++ 2013是一个开发环境,用于创建和编译C++代码。编译好的程序可以在不同的Windows操作系统上运行,但是需要相应的运行时库来提供必要的支持。Visual C++ 2013 Runtime库就是为了满足这一需求而产生的。 Visual C++ 2013 Runtime库提供了许多常用的功能,如输入输出、内存管理、异常处理等。它还提供了一些特殊的功能,如多线程支持、数据类型处理和网络编程等。这些函数和类在标准C++库的基础上进行了扩展和改进,以满足特定的需求。 对于开发人员来说,使用Visual C++ 2013 Runtime库可以大大简化程序的开发过程。它提供了很多可以直接调用的函数和类,避免了重复编写代码的麻烦。同时,它还为开发人员提供了一些调试和性能优化的工具,帮助他们更好地完成项目。 对于终端用户来说,安装Visual C++ 2013 Runtime库可以确保他们能够正常运行使用这个库编译的程序。在没有安装运行时库的情况下,运行这些程序时可能会出现缺少DLL文件或其他错误的情况。因此,安装Visual C++ 2013 Runtime库是非常重要的。 总之,Visual C++ 2013 Runtime库是为了支持和运行使用Visual C++ 2013编译的C++程序而设计的。它提供了许多常用的功能和特性,简化了开发过程,并确保终端用户能够正常运行使用该库编译的程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值