【eoe 特刊】Windows
8
第一期
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
目录
前言
一.Windows 8 简介二.Windows8 支持的开发语言三.开发环境搭建四.源码详解五.解决方案说明
【eoe 特刊】Windows
8
第一期
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
前言
Windows 8
是微软于北京时间
2012
年
10 月
25
日 23
点
15 分推出的最新
Windows
系列系统。Windows
8
支持个人电脑(X86 构架)及
Windows 8
全新
Windows UI
平板电脑(X86 构架 或
ARM
构架)。Windows8 大幅改变以往的操作逻辑,提供更佳的屏幕触控支持。新系统画面与操作方式变化极大,采用全新的
Metro(新 Windows UI)风格用户界面,各种应用程序、快捷方式等能以动态方块的样式呈现在屏幕上,用户可自行将常用的浏览器、社交网络、游戏、操作界面融入。
随着
Windows 8
的正式发布,开发者介入这一新平台也逐渐成为时下热门的事情。但每一个新事物带来的不光是新技术新特点,更多的人会感觉到陌生,无从下手。
基于这个原因,我们
eoeWP
社区编写了这期特刊,为广大还在观望中的开发者带来一些解惑的干货。权作抛砖,只为引玉。
感谢
mx_2012
同学在这次编写中的全力支持,xxy_820109 同学提供的封面设计,感谢开发团队在校稿过程中给出的宝贵意见。
【eoe 特刊】Windows
8
第一期
eoeWP 社区网址
http://wp.eoe.cn
WP @ Windows 8 开发群
215375610
(进群暗号“eoe”)eoeWP 社区微博
http://www.weibo.com/eoewp
果子狸
2012.11.19
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
一.Windows
8
简介
1.1. Windows8
历史性转变
【eoe 特刊】Windows
8
第一期
Windows8
是由微软公司开发的,具有革命性变化的操作系统。该系统旨在让人们的日常电脑操作的更加简单快捷,为人们提供高效易行的工作环境。Windows8 将支持来自
Intel、AMD
和
ARM
的芯片架构。2011 年
9
月 14
日,Windows8 开发者预览版发布,宣布兼容移动终端,微软将苹果的
iOS、谷歌的 Android
视为
Windows 8
在移动领域的主要竞争对手。2012年
2
月,微软发布“视窗
8”消费者预览版,可在平板电脑上使用,2012
年
8 月
2
日,微软宣布
Windows8
开发完成,正式发布
RTM
版本。2012 年
10 月
26
日,微软发布
Windows8
正式版本。从此时开始代表
Windows8
的时代到来。
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
1.2. Windows8
前景一片光明
Windows8
的确还有很多需要完善的地方,例如它的兼容性问题,仍没有
Windows
完善,例如它的操作模式,仍需要人们花时间去熟悉,但是这些在
Windows
之前的版本都出现过,而且与之前不同的是,这次微软对
Windows8
重视超过以往的任何操作系统,而且微软目的是打造一个新的用户习惯,让我们的手机、平板、电脑有一致的操作。微软尝试从
PC
端入手击败
Android
和 iOS.让我们期待 Windows8
时代的到来。
【eoe 特刊】Windows
8
第一期
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
1.3. Windows8
的优势
1.3.1
微软在企业级和消费级领域仍然是
NO.1
用户更熟悉
Windows
操作系统
微软的
Windows
操作系统已经深入人心,已经不能撼动。所以作为用户我们更会接受微软在操作系统上的变化。
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
【eoe 特刊】Windows
8
第一期
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
1.3.2 Windows8
新增功能让人眼前一亮
预计微软针对
Windows8
还将开发更多的“手势触摸”功能,将使得
Metro applicationsReaxys
具有身临其境的感觉。比如,微软正在设计屏幕缩放功能的“手势触摸”,以方便Windows8
用户能够在屏幕上轻松的实现分组处理、增减应用软件、移动文件等功能。
IE
与内置键盘,IE 浏览器也可以通过屏幕键盘进行操作,使用起来十分便利。IE 浏览网页,基于
Windows 8
平台开发的新版本
IE
浏览起网页来,也别有一番不同的体验。
触摸输入屏幕内内置键盘,使用户使用非常方便。
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
【eoe 特刊】Windows
8
第一期
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
【eoe 特刊】Windows
8
第一期
1.3.3 Windows8
特色功能一一亮相
聚焦视图,用户通过 Windows 8
可以随心所欲地聚焦、放大视图。比如,当用户想查看
游戏应用群组时,可以将其拖拽到界面左端,该区域将会放大。
屏幕键盘,Windows
8
操作系统强调触摸潮流,除了实体鼠标和键盘外,IT 运维管理还提供了一个屏幕键盘,方便平板电脑以及触摸屏
PC
用户使用,也符合目前手指操控的趋势。
Metro UI RSS
新闻聚合器,Metro 用户界面内置
RSS
阅读器,专为触摸屏打造,可以用手指滑动,且视觉效果很好。扩展版
RSS
新闻聚合器,这是
RSS
新闻聚合器的扩展版,用户可以用手指滑上滑下对文章进行选择,抑或是左右调换正在阅读的文章。
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
二.Windows8 支持的开发语言
微软针对
Windows 8
以及支持很多的开发语言,包括常用的
C++,JavaScript/Html5,VisualBasic,VisualStudio C#/XAML。然而微软试图在下一代 PC
操作系统上添加更多的开发语言支持。
Windows8
语言的选择
针对语言选择这个问题,有很多人会问哪中语言的兼容性最好,那种语言的性能最好。当然肯定是 C++会相对于其他语言好一些,但是我们不需要为了 Windows8 专门去学习 c++,完全可以针对你现在已经会的语言进行开发。比方说我以前是.NET 编程,现在完全可以利用C#+XAML 进行 Windows8 编程。
2.1 XAML
2.1.1 XAML
简介
XAML
是
eXtensible Application Markup Language
的英文缩写,相应的中文名称为可扩
展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言。XAML 提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,而这种实现方式和
ASP .NET中的"代码后置"模型非常类似。XAML
是一种解析性的语言,尽管它也可以被编译。它的优点是简化编程式上的用户创建过程,应用时要添加代码等。
2.1.2 XAML
优势
XAML
可以设计出专业的
UI
动画
XAML
不需要专业的编程知识,它简单易懂、结构清晰
XAML
是设计师能直接参与软件开发,随时沟通、无需二次转化
XAML
另一个巨大的优点就是:它帮助开发团队真正实现了
UI
与逻辑的剥离。XAML
是一种单纯的声明型语言,也就是说,它只能用来声明一些
UI
元素、绘制
UI 和动画,根本无法在其中加入程序逻辑,这就强制地把逻辑代码从
UI
代码中赶走。这样行政了一种“高内聚-低耦合”的结构。
2.1.3 XAML
基础知识使用代码创建
UI
元素
使用
XAML
标记构建可视界面(UI)元素并不是我们唯一的选择,我们也可以通过使用后台代码来实现,虽然这不是我们常用的方式,但这可以使我们更好的理解
XAML。在.NET 中
XAML
中的绝大部分元素都有对应的类,这些元素的特征对应的属性。例如:
<Grid x:Name="ContentPanel" Margin="12,0,12,0"><StackPanel x:Name="T extBlockList">
<Button Content="CreateBlockText"Height="72"Name="btn_CreateBlk" Click="btn_CreateBlk_Click">
</Button></StackPanel>
</Grid>
XAML
中的属性继承一般分类的应用程序框架层次是这样的:
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
【eoe 特刊】Windows
8
第一期
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
【eoe 特刊】Windows
8
第一期
如果我们在
ItemsPage.xaml
的
Page
标签中定义属性
FontFamily="Italic",我们可以看到这个标签中设置的属性会作用与整个页面,这就是被称为(PropertyInheritance)的特征。如果在当前标签也有相同属性设置的话,这里就有个优先级的问题:
1.
本地设置优先级最高
2.
样式的优先级第二高
3.
属性继承的优先级第三高4.
默认值的优先级最低
属性元素(property-element)语法
通常我们在 XAML
代码中通常是这样设置一个元素属性,例如:
<TextBlackText=”nihao” FontSize=”30”/>
但是我们知道
XAML
是基于
XML
的,所以我们完全可以根据
XML
语法将前面的代码继续
拆分成:
<T extBlackT ext=”nihao”>
<T extBlack.FontSize>30</T extBlack.FontSize>
<T extBlack.Foreground>#000</T extBlack.Foreground>
</T extBlack>
和前面达到的效果完全一样。这就是属性元素(Property-element)语法,这是
XAML
中比较重要的组成部分,通过引入属性元素语法可以进一步明确与.NET 和
XML
的相关术语:
元素对象(object
element)—基于 XML
的.NET 对象
属性特征(property attribute)—通过 XML
特征设置的.NET 属性
属性元素(property element)—用 XML
元素表示的一个.NET 属性我们需要注意的是:在属性元素标签中出现任何其他东西都是非法的,并且不能够为同
一个属性设置属性特征和属性元素。
资源集合
在我们编写
Windows8
应用程序的时候会有很多
XAML
文件有重复的标记,例如Margin,HorizontalAlignment
等设置,其实我们可以通过累死
HTML
中使用
CSS
的样式,在
XAML中使用样式资源(style)。但是样式有一个先决条件:一种更普遍的共享机制:资源(Resrouce)。
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
【eoe 特刊】Windows
8
第一期
XAML
资源通常作为一个特殊的.NET 类或者结构体实力,要么是一个现有类或者结构体,要么是自定义类。当一个特定类被定义为
XAML
资源时候,系统会创建一个该类的实力,该实例将引用在该资源的各个对象之间共享。
为了支持资源的存储,FrameworkElement 定义了一个
ResourceDictionary
类型的
Resources属性。在我们的
APP .xaml文件中定义了一个为空的资源片段,如:
<Application.Resources></Application.Resources>
我们只需要把我们写的资源类引用到
Application.Resources
标签中就可以在任意地方调用,例如:
<Application.Resources><ResourceDictionary>
<ResourceDictionary.MergedDictionaries><!--
用于定义平台外观的共同方面的样式
Visual Studio
项目和项模板所必需的-->
<ResourceDictionary Source="Common/StandardStyles.xaml"/></ResourceDictionary.MergedDictionaries>
</ResourceDictionary></Application.Resources>
在代码中引用资源
通过资源名称简单的索引 Resource
属性,我们就可以在代码中使用
XAML
资源,例如:This.btn.Margin=(Thickness)this.Resources[“Margin”];
使用
XAML
样式
在前面的 XAML
资源的基础之上,我们可以通过使用
XAML
样式进一步重用元素的样式代码。XAML 样式基本上是为特定的元素类型分配的属性集合。XAML 样式有两个重要的属性:x:key(引用键)和
TargetType(作用的元素类型)。下面我们来看一段实例:
<Style x:Key=”btn” TargetType=”Button”>
<Setter Property=”HorizontalAlignment” Value=”Center”></Setter><Setter Property=”VerticalAlignment” Value=”Center”></Setter><Setter Property=”Margin” Value=”0,10,0,10”/>
</Style>
上述就是
XAML
的基础知识,希望你能快速掌握,尽快投入到
Windows8
开发中去。
2.2 C#.NET
2.1.1 C#简介
C#是微软公司发布的一种面向对象的、运行于 .NET Framework
之上的高级程序设计语言。并定于
在微软职业开发者论坛
(PDC)上登台亮相。 C#是微软公司研究员 Anders Hejlsberg
的最新成果。
C#看起来与
Java
有着惊人的相似 ;它包括了诸如单一继承 、接口、与
Java
几乎同样的语法和编译成中间代码再运行的过程。但是
C#与 Java
有着明显的不同,它借鉴了
Delphi
的一个特点,与
COM(组件对象模型)是直接集成的,而且它是微软公司
.NET Windows
网络框架的主角。
本文档由 eoeWindowsPhone 开发者社区组织策划,整理及发布,版权所有,转载请保留
http://wp.eoe.cn/
做最棒的 Windows Phone 开发社区!
2.1.2 C#优势高效性与安全性
支持现有的网络编程新标准
消除大量程序错误
对版本的更新提供内在的支持降低了开发成本
良好的扩展交互性
C#是一种现代的面向对象语言。它使程序员快速便捷地创建基于 Microsoft .NET
平台
的解决方案。这种框架使
C#组件可以方便地转化为 XM L
网络服务,从而使任何平台的应用程序都可以通过
Internet
调用它。
C#增强了开发者的效率,同时也致力于消除编程中可能导致严重结果的错误。C#使C/C++程序员可以快速进行网络开发,同时也保持了开发者所需要的强大性和灵活性。
使用
C#+XAML
开发2.1.3 C#基础知识
下面进行一些简单的基础知识介绍:C#基础知识之.NetFramework
简介
.netframework
运行于操作系统之上,提供良好的跨语言特性。
.netframework
包含两个内容:公共语言运行时(CLR)和类库集(FCL)
MSIL
微软中间语言。当编译.net 支持的语言编写的代码的时候,输出的代码为
MSILCLR
又包含:通用语言规范(CLS:保证语言互操作性的一组规则)和公共类型系统(CTS:包含了.net 支持的各语言间兼容的数据类型和功能)
C#中的变量和常量
C#中的基本数据类型:
值类型和引用类型
值类型:简单类型、结构类型和枚举类型。简单类型:整数类型、浮点类型、小数类型(decimal)和布尔类型等sbyte
是有符号的,相当
java
的
byte
型,范围-128~127
C#中 byte
是无符号的,范围
0~255C#基础知识之变量命名方法:帕斯卡命名法和骆驼命名法
帕斯卡命名法:如果有多个单词组成,每个单词首字母大写
骆驼命名法:如果有多个单词组成,第一个单词全部小写,后面的单词大写C#中的常量:const
与
readonly
两种
const
声明的常量:叫静态常量,必须声明时就初始化,且只能用常数值初始化readonly
<