65.9K
CodeProject 正在变化。 阅读更多。
Home

Hello Windows 10;开发者预览版指南

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (23投票s)

2015 年 7 月 1 日

CPOL

13分钟阅读

viewsIcon

44112

downloadIcon

499

我将从开发者的角度来谈谈 Windows 10。Windows 10 尚未发布,但最好提前了解工具,为开发应用程序做好准备。

引言和背景

Windows 10 即将公开上线,7 月 29 日(撰写本文时)已经不远了。我想花点时间为初学者介绍一下 Windows 10。我将重点介绍一些关于 Windows 10 的关键要点,开发 Windows 10 的要求,为什么选择开发 Windows 10 以及如何开发 Windows 10。所以,这些将是本文要讨论的重点内容。
 
请记住,Windows 10 仍处于预览阶段。微软将来可能会更改提供的 API 集。

Windows 10 简介

Windows 10 是微软开发、拥有和分发的 Windows 操作系统的新版本。有人说这将是 Windows 的最后一个版本,您只会收到系统更新,Windows Update 将包含越来越多的功能,通过向系统添加软件补丁,使您的 Windows 体验变得更好、更安全。

除了新的操作系统,还有许多系统修复和补丁。对我来说,最有趣的一个功能是 Edge(目前命名为 Project Spartan),它是 Internet Explorer 的新版本。您可以使用 Edge 完成许多任务,首先,如果您是 PDF 阅读器,并且喜欢阅读书籍。那么您会觉得 Edge 的“阅读视图”很方便,此外,Edge 可以将您的网站转换为图像,您可以对其进行绘制,从而能够共享您的网页。
面向开发者的介绍

回归本文的重点,从开发者的角度来看,Windows 10 是什么?随着微软 Windows 的每个先前版本,都带来了另一个框架版本。具体来说,每个 Windows 版本都以附带另一个版本的 .NET Framework 而闻名。新工具、新框架以及新更新和功能都被添加到 Windows 中,以便开发者可以使用它们。
 
Windows 10 不是关于框架或操作系统。它是关于一个开发者可以用来开发其应用程序的平台。Windows 10 引入了一种新的应用程序开发方式——通用应用程序平台。您不应将它与 Windows 8 或 Windows 8.1 的通用应用程序混淆。它们是独立的概念。它们针对的是操作系统;Windows 或 Windows Phone。

通用应用程序(Windows 8, 8.1) 通用应用程序平台(Windows 10)
目标操作系统;Windows 8, 8.1 或 Windows Phone 8, 8.1 目标设备系列;取决于您已将哪个设备系列(API)作为目标。
Windows 8, 8.1 或 Windows Phone 8.1 的相同共享代码库,不同的 UI 共享代码库,相同的特性……设备系列确保了 UI 特性。自适应布局在此场景中有帮助。
代码不像其他 .NET 应用程序那样编译为本机代码,而是为每个程序集创建字节码。 代码使用 .NET本机编译器编译为本机代码。

让我们来谈谈这两个框架之间(无双关之意)的共同区别。在通用应用程序中,您拥有相同的代码库(应用程序逻辑),但在您的解决方案;Visual Studio 中会有两个不同的项目。那个通用应用程序的概念不包括 Unity;Continuum。通用应用程序平台解决了这个问题,您现在不必为要定位的每个操作系统管理一个单独的项目。而是定位您需要的设备类型,Windows 会为您提供要使用的设备契约;将契约视为 API。
 
您要定位的是设备系列,而不是操作系统。这消除了不同 UI 特性、不同组件的模糊性,从设计者的角度来看。您只需要确保您要定位的设备具有某种基础契约。


图片参考通用 Windows 平台指南

微软正致力于将越来越多的设备系列引入 Windows 10,以便您可以在工作中引用它们。设备系列是一组 API 或一个框架,可确保设备上具有某些功能。如果您拥有一台运行 Windows 10 的桌面电脑,那么当有人将您的设备作为目标时,UAP 会确保提供某个功能,无论该功能是否在该设备上运行。例如,您的摄像头。Windows 会提供 API 来运行使用您摄像头的应用程序,但您当时可能没有摄像头。同样,如果您有移动设备,Windows 会提供开发使用GSM或其他移动网络类型(如HSDPA简单来说,就是互联网))的应用程序的工具,但您可能没有启用该功能供应用程序使用。换句话说,即使您没有连接硬件或已禁用它,API 也会可用。
 
物联网需求旺盛。老日子回来了,更多的绿色芯片,更多的电缆等等。开发者一直在寻找一种方法来配置他们的应用程序,以便使用硬件组件来处理家庭自动化和类似技术。微软已配置Windows 可以在小型微控制器上运行,您还可以看到一个树莓派 2上安装的 Windows 10的现场示例;一台不到 40 美元的强大计算机

常见问题解答

1. 设备系列是否类似于操作系统?
不,设备系列不像操作系统。操作系统是运行您的机器所必需的,而设备系列只是开发者可以用来为该设备编程的 API 和功能的集合。
 
2. 我可以定位多少个设备系列?
就像您可以定位 Windows 8, 8.1 和/或 Windows Phone 8, 8.1 一样。您可以定位一个或任意数量的设备,以便您的应用程序运行在这些设备上。您将需要确定某个 API 是否存在于设备中,以跳过运行时异常。
 
3. 当出现新的设备系列时会发生什么?
当出现新的设备系列时会发生什么,这一点尚不清楚,但一个简单的假设是,它将被添加到可以运行 API 的设备中,并且您可以像在当前设备系列范围中一样定位该系列。

4. 如果我只想为桌面和移动设备开发怎么办?
如果您想定位桌面和移动设备系列,那么您应该删除通用支持,只定位桌面和移动系列。这样,您就可以减少对 Xbox、Surface Hub 或 IoT 设备进行 API 检查(以确定新功能是否存在)的次数。

5. 默认设备系列是什么?
默认情况下,Visual Studio 会关注通用设备系列(Windows.Universal请看下面的 Hello Windows 10 示例);它面向桌面、移动……物联网。

入门

我将谈论 Windows 10 开发的入门和环境设置,我不会分享任何与应用程序编码相关的内容,而是本文旨在让您的环境准备就绪,因为我将持续发布 Windows 10 应用程序、控件、UI 模板、最佳实践等的指南和编程技术。

首先,就像微软在 Windows 8.1 中支持 Windows 8.1 开发一样。同样,Windows 10 应用程序开发在进入开发者门户之前也有一些相同的规则和有效性检查。您需要拥有:

  1. Windows 10
    当然,这是一个合法的原因,您需要拥有 Windows 10 才能使用服务和框架。否则,您必须在旧系统上安装功能,这会花费相同的时间和相同的空间,但功能更少。

    好消息是,您(目前!)可以使用 Windows 10 的 Insider Preview,然后试用它,直到 7 月 29 日 Windows 10 公开发布。您预订了吗?
     
  2. Visual Studio 2015
    Visual Studio 2015 是微软提供的 Visual Studio IDE 的下一个版本。Visual Studio 2015 仅支持开发 Windows 10 应用程序。您需要拥有 Visual Studio 2015 的任何版本。您可以尝试使用微软提供的 Community 版本进行测试。Visual Studio 2015 对小型团队、开源项目和其他类似合法条件是免费的。

在开始为 Windows 10 开发之前,您需要拥有上述产品。您可以免费获取它们用于测试目的,并开发一些“Hello world”应用程序。继续,下载并安装它们(或者在完成本文后安装)。

使用哪种语言和框架?

Windows 10 可以用 C#、VB.NET、C++ 甚至 HTML 5 开发。这取决于您想如何使用它们,您可以选择任何您想要的语言来开发您的应用程序。重要的是您将为 Windows Runtime 开发应用程序。不会涉及 .NET。所以,如果您认为 UI 或其他组件看起来很明显,那它们就不是。它们是 Windows Runtime 的控件,这是一个用于开发应用程序的独立框架。.NET 也提供工具和套件,但这里不讨论 .NET。
 
Windows Runtime 也是一个相当成熟的框架,所有技术和操作方法都已经由许多作者发布,所以您不会陷入困境。而且,应用程序的结构非常整洁,任何知识水平较低的人都能知道某个文件是做什么用的。

Windows Runtime 可以用以下方式编程:

  1. C++(结合 XAML 或 DirectX)
    您可以选择使用 XAML 进行 UI 设计或使用 DirectX。
  2. C# 或 VB.NET(结合 XAML)
    您可以选择使用哪种语言进行代码隐藏。
  3. JavaScript(结合 HTML 5 和 CSS 3)
    您别无选择,只能选择这些技术!

所有这些语言都很流行,有数千名开发者在使用它们,而且大多数有价值的作者已经发布了这些语言的示例和源代码。微软也投入了大量精力来编写这些应用程序编程语言的示例。您不会感到孤单。

Windows 10 SDK 和工具

与每个软件框架一样,Windows 10 也需要正确安装 SDK 才能开始为 Windows 10 编程应用程序。您可以从这里官方下载 Windows 10 SDK。否则,您可以下载并安装任何版本的 Visual Studio 2015。

Visual Studio 2015(任何版本)都附带 C# 6、Windows 10 SDK 和工具以及 ASP.NET 5。依我之见,与其安装独立的 SDK,不如考虑安装 Visual Studio 2015。

Hello Windows 10 示例

我可能会介绍如何开发 Windows 10 应用程序,在这个“Hello world”示例中,我将提供运行应用程序所需的基本应用程序代码。Windows Runtime 被用作 Windows 10 应用程序的基本构建技术,您也可以利用 .NET Framework 和其他框架,但 Windows 10 默认使用 Windows Runtime,并利用通用应用程序平台的配置设置来定位客户端和设备。

创建项目

在 Visual Studio 2015 中,您可以区分通用应用程序和 Windows 8 应用程序。Windows 8 应用程序包含 Windows 8, 8.1 和 Windows Phone 8, 8.1 的模板,而通用应用程序是 Windows 10 应用程序的主体。

创建新项目并继续阅读...

Create a new project

修改配置文件

您会注意到一些事情(如果您以前开发过 Windows Runtime 应用程序),那就是添加了另一个 XML 命名空间 uap,它公开了 Windows 10(通用应用程序平台)应用程序的功能和其他特性。您可以在这些配置中更改 Uap 应用程序的设置,以更新应用程序启动屏幕、标题和其他详细信息。

请看下面的配置文件

<?xml version="1.0" encoding="utf-8"?>

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  IgnorableNamespaces="uap mp">

  <Identity
    Name="9a866bdd-2ba1-41ca-b9c0-4b2ddda13847"
    Publisher="CN=thecr"
    Version="1.0.0.0" />

  <mp:PhoneIdentity PhoneProductId="9a866bdd-2ba1-41ca-b9c0-4b2ddda13847" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>

  <Properties>
    <DisplayName>Hello Windows 10</DisplayName>
    <PublisherDisplayName>Afzaal Ahmad Zeeshan</PublisherDisplayName>
    <Logo>Assets\StoreLogo.png</Logo>
  </Properties>

  <Dependencies>
    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10069.0" MaxVersionTested="10.0.10069.0" />
  </Dependencies>

  <Resources>
    <Resource Language="x-generate"/>
  </Resources>

  <Applications>
    <Application Id="App"
      Executable="$targetnametoken$.exe"
      EntryPoint="Win10App.App">
      <uap:VisualElements
        DisplayName="Hello Windows 10"
        Square150x150Logo="Assets\Logo.png"
        Square44x44Logo="Assets\SmallLogo.png"
        Description="Win10App"
        BackgroundColor="#464646">
        <uap:SplashScreen Image="Assets\SplashScreen.png" />
      </uap:VisualElements>
    </Application>
  </Applications>

  <Capabilities>
    <Capability Name="internetClient" />
  </Capabilities>
</Package>

您会发现在上面的代码中,有一些设置定义了 Windows 10 应用程序的配置。

正如我之前提到的设备系列,您将在 Dependencies 元素中看到 TargetDeviceFamily 元素。默认情况下,目标是 Windows.Universal,您可以定位其他设备系列(通过删除此项,因为 Universal 目标是所有设备)。

您还可以编辑您的应用程序在 Applications 元素下的每个应用程序实例的设置。应用程序由 Id 区分,代码隐藏由 EntryPoint 属性设置,该属性是使用的类文件。

管理 UI

Windows Presentation Foundation或其他框架不同,后者有一个单独的 Window 控件来创建新的应用程序实例。而在(Windows Runtime)中没有这样的控件,只有 Page 控件用于动态更改 UI。您可以从一个页面导航到另一个页面。

您将创建 Page 控件,将 UI 布局和控件添加到该控件中,然后使用 Navigate 函数或 Frame 对象将应用程序导航到另一个页面。从而动态更改布局或 UI 控件。

对于这个示例项目,我为应用程序创建了一个非常简单(而且熟悉)的 UI,

<Page
    x:Class="Win10App.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Win10App"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="30">
        <TextBlock FontSize="30">Hello, Windows 10</TextBlock>
        <TextBlock Margin="0, 50, 0, 0" TextWrapping="WrapWholeWords">In a Windows 10 application, you simply define the contents of the application. Rest is assured by the Runtime.</TextBlock>
    </Grid>
</Page>

 

运行应用程序后(请注意,我在此场景中没有分享代码,因为所有代码都是 Windows Runtime 的,与 Windows 10 或通用应用程序平台无关),将弹出以下窗口,我们可以看到没有为应用程序或页面提供任何边界、大小或间距。所有这些都由 Uap 自己完成。

GUI

应用程序的默认大小是自动的,您不应该编辑它们,而是应该使用自适应视图,它会使用应用程序窗口(视口)的当前大小,然后更新 UI。您将在未来的文章中找到其余的内容。

题外话:我上传了一个 Windows 10 应用程序的示例项目,您可以尝试一下,随意修改它。添加新控件,更改逻辑,让它成为您的。:)

下一步是什么?

那么,目前就到这里了。在接下来的章节和文章中,我将发布代码示例和关于最佳 UI 技术、最佳 UX 实践和其他软件开发项目的建议。我将重点介绍 Windows 10 应用程序中最常用的控件,以及如何利用以前应用程序的源代码。请记住,Windows 10 可以使用 XAML 开发,但您的 Windows Presentation Foundation 的 XAML 是不同的。Windows Runtime 和 Windows Presentation Foundation 中有很多内容是模糊的,您一定不要混淆。
 
您应该准备好您的环境并设置好所有东西(下载所需产品),然后我将继续发布更多源代码示例供您测试和运行。

发布应用程序?

完成应用程序开发后,您可以像提交其他商店一样将应用程序提交到 Windows Store。好消息是,您所有的应用程序、音乐、书籍现在都已编译成一个单一的库。所以,如果您的用户下载了一个应用程序,Store 会提示他们看看您为客户提供的其他产品,例如音乐、视频、应用程序或服务,只要 Store 支持的任何内容。Store 目前处于 Beta 阶段,将在 Windows 10 公开上市后上线。

未完待续... :)
© . All rights reserved.