C#高级编程(第10版) C# 6 & .NET Core 1.0 (.NET开发经典名著)
上QQ阅读APP看书,第一时间看更新

0.4 UWP的新内容

Windows 8引入一种新的编程API:Windows运行库(Windows Runtime)。使用Windows运行库的应用程序可以通过Microsoft Store来使用,且有许多不同的名称。最初称它为Metro应用程序或Metro样式的应用程序,也称为Modern应用程序、Windows Store应用程序(尽管它们也可以通过PowerShell脚本来安装,不使用商店)和Universal应用程序。这里可能遗漏了一些名字。如今,这些都只是Windows应用程序,运行在UWP(Universal Windows Platform,通用Windows平台)上。

这些应用程序的理念是,让最终用户很容易通过Microsoft商店找到它们,提供便于触屏的环境,这个环境是现代的用户界面,看起来很干净、光滑,并允许流畅地交互,而且应用程序是可以信任的。更重要的是,已经了解Windows用户界面的用户应该被新的环境所吸引。

第1版的设计准则有诸多限制,有一些缺陷。如何在应用程序中寻找东西?许多用户在右边找不到工具栏,却发现它允许搜索许多应用程序。Windows 8.1把搜索功能搬到桌面的一个搜索框中。同时,如果用户不在屏幕上从上扫到下或从下扫到上,就经常找不到位于顶部或底部的应用栏。

Windows 10使设计更加开放。可以使用对应用程序有用的东西,在用户界面上做出决定,因为它与用户和应用程序最匹配。当然,它仍然最适合创建出好看的、光滑的、流畅的设计。最好让用户与应用程序愉快地交互,确定如何完成任务应该不是很难。

新的Windows运行库是Windows运行库3.0,它基于以前的版本,定义了XAML用户界面,实现了应用程序的生命周期,支持后台功能,在应用程序之间共享数据等。事实上,新版本的运行库在所有区域都提供了更多的功能。

Windows应用程序现在使用.NET Core。通过NuGet包与Windows应用程序可以使用相同的.NET库。最后,本地代码编译后,应用程序启动更快,消耗的内存更少。

与提供的附加功能相比,可能更重要的是现在可用的普遍性。Visual Studio 2013的第一次更新为Windows 8应用程序包括了一个新的项目类型:通用(Universal)应用程序。在这里,通用应用程序用3个项目实现:一个项目用于Windows应用程序,一个项目用于Windows Phone应用程序,另一个是共享的代码项目。甚至可以在这些平台之间共享XAML代码。新的通用项目模板包括一个项目。相同的二进制代码不仅可以用于Windows和Windows Phone,还可以用于Xbox、物联网(Internet of Things, IoT)设备和HoloLens等。当然,这些不同的平台所提供的功能不可能用于所有地方,但是使用这个不同的功能,仍然可以创建二进制图像,在每个Windows 10设备上运行。