在Build会议上,我们发布了新的版本---Windows Phone 8.1、 Windows 8.1 平台。作为开发人员,这意味着您现在可以生成 XAML 和 HTML 的通用程序,并通过分享大量的代码和内容使其运行在手机和平板电脑上。为了使构建通用程序可用,我们在Visual Studio中添加了许多新功能作为Visual Studio 更新 2 RC的一部分.

您有两种方式来了解关于这些功能的更多信息。一种方法是通过这篇博客。另一个方式是收看我的Build talk视频,它涵盖了所有的资料,你将看到更多详细信息:

在这里没有对或错的方式,所以选择视频或博客取决于你的时间。不要再耽搁了,让我们快点来看看通用应用程序吧!

创建通用的应用程序

为了帮助您用 C#、 c + + 和 JS 建立通用程序,我们创建了新的项目模板,包含基本结构和后台的配置,使您可以共享代码和内容:

如果您已经有一个存在的 Windows 8.1 应用程序,你可以使用"添加 Windows Phone 8.1"命令在解决方案中添加一个新的 Windows Phone 8.1 项目和共享的项目。而如果你已有一个 Windows Phone 8.1 的应用程序,并想要添加 Windows 8.1 的支持,也可以用类似的选项。

通用应用程序的结构

一个通用应用程序是三个项目的集合 — — Windows Store 项目、 Windows Phone 项目和共享项目——包含在解决方案文件夹中,是可选的。Windows Store 和 Windows Phone 是平台项目,并且负责创建针对各自平台的应用程序包 (.appx) 。这些项目包含特定的目标平台的资产。

共享项目包含 Windows Store 和 Windows Phone 项目之间共享的资产。共享项目支持的项目类型 (.cs、 xaml、.xml、.png、.resw 等) 和平台项目相同。共享的工程本身不具有二进制输出,但它们的内容是由平台项目导入,并作为Windows Store和 Windows Phone 应用程序包 (.appx)生成过程的一部分来使用。

在共享项目中编写代码

在开发通用应用程序时,您主要是将写的代码运行在这两个平台上。假如需要,您也可以在共享项目中使用 #if 和 #endif 指令编写平台特定的代码。默认情况下,我们预定义了如下的条件编译常数,你可以利用它们编写特定的平台代码。

C#

WINDOWS_APP

WINDOWS_PHONE_APP

C + +

WINAPI_FAMILY_PC_APP

WINAPI_FAMILY_PHONE_APP

在编辑器中的上下文切换器

在一个共享项目中编写代码时,可以使用导航栏中的项目上下文切换器选择您正在操作的目标,进而在代码编辑器中推动相应平台的智能感知体验。

使用调试目标下拉列表切换启动项目

我们还增加了在调试目标下拉列表中快速切换启动项目的功能,可以在解决方案中列举出所有你可能想部署到设备或仿真程序/仿真的解决方案中所有可能的项目。

在通用的应用程序之间共享代码

您可以在不同的通用应用程序间使用类库来共享您的代码。对于 C# 和 Visual Basic,我们改善了现有的便携式类库 (PCLs) ,使我们在指定的 Windows 8.1 和 Windows Phone 8.1 平台上支持 Windows Runtime和 XAML 。阅读此博客获取更多关于PCL 改进的详细信息.

对于C + +,你可以使用"通用应用程序"下的新的类库项目模板来在 Windows 8.1 和 Windows Phone 8.1 类库之间用共享项目分享您的代码。

我希望你感觉这个对构建 XAML 的通用应用程序的概述有用。如果您有任何疑问或意见,请随时跟帖或通过论坛UserVoice与我们联络。敬请关注另一篇博客,它解释了我们在Visual Studio中添加的,用以支持 Windows Phone 8.1 应用程序的新的XAML 工具的功能。

使用 Visual Studio 生成通用的 XAML 应用程序 (Windows Phone 和 Windows 通用程序)的更多相关文章

  1. Visual Studio 生成事件命令

    Visual Studio在生成项目工程前后,有时我们需要做一些特殊的操作,比如:拷贝生成的dll到指定目标下面等. 结合VS可以添加预先生成事件和后期生成事件,采用命令或bat批处理. 1.Visu ...

  2. 总结 Visual Studio 2019 发布以来 XAML 工具的改进

    不知不觉,Visual Studio 2019 已经出到 16.8 和 16.9 Preview 了.虽然每次更新都林林总总地一大堆新功能和改进,但关于 XAML 的内容总是,always,每次都只有 ...

  3. visual studio 2017 installer 安装包制作过程出现的问题---此安装程序需要.NET Framework 版本 3.5,请安装该版本,然后重新运行此安装程序,可以从Web获得.NET Framework 。要立即做此事吗?

    图一 visual studio 2017 installer 打包完成以后进行安装时,提示信息 “安装此安装程序需要.NET Framework 版本 3.5,请安装该版本,然后重新运行此安装程序, ...

  4. Visual Studio 生成DLL文件

    新建一个项目,在菜单栏中选择“项目”/“**属性”选项,该页面中将“输出类型”下拉列表中的选项选择为“类库”,然后重新生成一下该项目,或者在“Visual Studio 2008命令提示”中输入以下命 ...

  5. 探索Visual Studio生成的.vs文件夹内部结构和作用

    这里直接先将我摸索出的结果贴出来,文章后面会一一详细说明和分析:.vs目录是用来存储当前用户在解决方案中的工作配置,具体包括VS关闭前最后的窗口布局.最后打开的选项卡/操作记录/文件文档.某些自定义配 ...

  6. Visual Studio生成webservice代理类

    首先点击 vs菜单栏->工具 ,选择 外部工具, 在弹出的窗口中点击 添加, 然后在“标题”行中输入"WSDL生成代理类", "命令"行中输入" ...

  7. 探究Visual Studio生成的.vs文件夹内部结构和作用

    https://shiyousan.com/post/636441130259624698 在某个契机的引发下,对VS解决方案中自动生成的.vs文件夹产生了兴趣,以前总对这个文件夹不怎么上心,最近正好 ...

  8. Visual Studio 生成事件这件小事

    在上一篇<Visual Studio 调试技巧>中,介绍了一些VS常用的调试操作,今天,聊一聊VS当中一个不太常见,但有时又有妙用的操作——VS生成事件. 一.什么是VS生成事件 简单来说 ...

  9. C#.NET 中visual studio生成的.pdb/ .vshost.exe/ .vshost.exe.manifest文件是什么

      pdb文件: 英文全称:Program Database File 中文全称:程序数据库 文件 Debug里的PDB是full,保存着调试和项目状态信息.有断言.堆栈检查等代码.可以对程序的调试配 ...

随机推荐

  1. 基于jQuery的图片左右轮播,基本原理通用

    毕竟新人,写点基础的小东西,希望能和大家沟通交流,提高自己的水平. 这个是应用较多的轮播部分,希望能和大家分享一下思路,拓宽视野. 话不多说,上内容. 我的思路很简单就是通过判断index值的大小变化 ...

  2. windows 查看某个端口号被占用情况

    1.查看3798端口是否被占用,以及占用端口的进程PID netstat -ano |findstr 3798 C:\Users\zhaojingbo>netstat -ano|findstr ...

  3. copy,retain,assign,strong,weak的区别

    引用地址:http://www.aichengxu.com/view/32930 一.assign,copy,retain 1.copy是内容复制,新建一个相同内容的不同指针,retain为指针复制, ...

  4. ARM中的PC和AXD的PC

    R15 (PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令.一般来说,人们习惯性约定将“正在执行的指令作为参考点”,称之为当前第一条指令,因此PC 总是指向第三条指令 ...

  5. html多行注释方法

    Html单行:<!-- -->多行:<!-- -->javascript单行://多行:/* */Vbscript单行:'多行:'ASP <% %>中: 单行:'  ...

  6. JavaScript的OOP编程1

    首先要说的是,javascript其实是可以进行OOP编程的,其次javascript的OOP编程实现方式有多种,我写的这一种只是我测试过,可行的一种 version1 // 父类 function ...

  7. JNI/NDK开发指南(二)——JVM查找java native方法的规则

    通过第一篇文章,大家明白了调用native方法之前,首先要调用System.loadLibrary接口加载一个实现了native方法的动态库才能正常访问,否则就会抛出java.lang.Unsatis ...

  8. UVA 1513 Movie collection

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 200010 #define l ...

  9. ANDROID_MARS学习笔记_S03_009_GOOGLEMAP3

    一.代码 1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  10. 猜测:信号槽的本质是使用Windows的自定义消息来实现的

    在不断执行: void MyTool::DeleteAllFiles(){ for (i = 0; i <= n - 1; i++) { // do something }}在for循环没有执行 ...