Silverlight for Windows Phone 开发系列课程(11):启动器与选择器

合集下载

Silverlight应用程序设计

Silverlight应用程序设计
Silverlight 应用程序开发
课程内容
Silverlight简介 Silverlight结构与
CoreCLR
运行 开发工具 XAP、XAML与
Silverlight编程 布局 控件 Silverlight、HTML与
Javascript三者交互
Silverlight简介
1. Silverlight (银光)微软全力打造的一种跨平台、 跨浏览器的RIA( Rich Internet Application 富互联网应用程序)技术。
Application类。
开发工具
Microsoft Visual Studio 2010 Ultimate
Silverlight 4 Tools
用于开发 Silverlight 4 和 RIA Services 应用 程序的 Visual Studio 2010 外接程序和必备文 件
下载地址
在PAL层上定义了跟Win32相同的API接口,在 Mac操作系统上会被重新定向。
运行
Silverlight运行环境
Silverlight应用程序被托管在浏览器中,通 过Silverlight插件加载CoreCLR,然后 CoreCLR为应用程序创建AppDomian,最后初始 化SilverlightApplication类。
- agcore.dll - coreclr.dll - mscorlib.dll - system.*.dll
下图S是ilvSielvrelrilgighhtt结arc构hitecture的图例,可以把
之前的DLL对号入座:
Silverlight 结构
Silverlight 平台作为一个整体,由两个主要部 分以及一个安装程序和更新组件组成

silverlight简介

silverlight简介
Silverlight 2
2008年6月底,微软发布silverlight2.0 beta,在2008北京奥运会时,NBC网站使用了silverlight2.0进行奥运的网上全程直播和点播。 Microsoft 努力帮助保护您的隐私,同时为您提供个人计算所需的性能优异、功能强大且便于使用的软件。此隐私声明对 Microsoft Silverlight 2 ( "Silverlight" ) 的数据收集和使用惯例进行了说明。此隐私声明不适用于其他联机或脱机的 Microsoft 网站、产品或服务。 Silverlight 可帮助您使用 Internet 浏览器访问和体验网站上的丰富内容。此隐私声明对 Silverlight 如何与 Microsoft 进行交互来为您提供 Silverlight 更新以及其他支持 Internet 的功能进行了说明。 Silverlight 不会要求您提供联系信息,例如姓名、地址或电话号码等。但是,Silverlight 有时会通过 Internet 将独特的计算机特定信息传递到 Microsoft。 基于 Silverlight 的应用程序可能会出于各种原因而在您计算机本地存储数据文件:为了保存自定义设置、为了存储具有大量图形特性的大型文件(例如游戏、地图和图像),以及为了存储在某些特定应用程序中创建的内容。应用程序存储在默认情况下是处于开启状态的,但网站最初会被限制为存储容量总计 1MB。如果应用程序要求 1MB以上的容量, Silverlight 就会询问您是否要为承载该应用程序的网站增加可储存空间。
Silverlight 3
2009-7月 Silverlight3正式发布 1. 支持更多的媒体编码格式 在Silverlight3中新增加的多媒体编码格式包括H.264,AAC,MP4。Silverlight这项技术,从出生以来,就一直把对多媒体,尤其是视频的支持,放在首要位置。这次对更多的编码格式提供支持,方便网站建设者更容易的发布、部署视频资料,只需要如下一行XML: 2. 利用GPU加速 随着显卡计算能力的加强,应用程序把越来越多的图形计算任务从CPU中拿出来交给GPU完成。然而,要利用到GPU,对程序员而言通常意味着更多的编码任务,在Silverlight3中,这个任务的复杂程度被大大简化,只需要在XAML中多加入几行XML代码,就可以轻松享受GPU的超强计算能力。 3. 透视化3D 透视化3D,简单的说,就是把2D对象放到3D空间中去。和传统的3D把一个3D空间的对象投影到2D空间中不同,透视化3D意味着更高的性能,更友好的编程接口,同时能完成我们80%的3D任务。 4. 自定义特效 在silverlight3中,引入了shader的概念,它是一个像素粒度的操作——每当silverlight3要显示一个像素的时候,它对shader说:“我要显示这个像素了,你是否要做些处理,实现某些特效?”。我们来看看shader的强大之处:下面一个示例中,左边的图像是背景图像,右边的图像是前景图像,在silverlight3之前,我们尽管可以同时显示这两个图像,但是背景图像会被前景遮住。(当然可以设 置前景的透明度,但是这样整个前景图像的清晰度就下降了)我们在显示前景图像的时候可以应用一个shader:把所有的黑色过滤掉。这样,我们在前景上过滤掉所有黑色背景的同时,还拥有了一个清晰的火焰。 目前,除了官方提供的阴影(shadow)和模糊(blur)shader使用GPU加速,其他的shader仍需运行在CPU上。 5. 更多的控件支持 每一个新的silverlight版本的发布,都伴随着很多新的控件的问世。这个版本也不例外,新推出的控件有:DockPanel,Expander,Label,TreeView,ViewBox等等。在这里举一个“Save as...”(另存为)控件的例子。可能有的朋友会问,“另存为”作为一个耳熟能详的控件,为什么要等到silverlight3才提供?答案是出于安全性的考虑:silverlight为了保护用户的安全,对本地文件的读写有很大的限制。(否则的话,如果服务器端可以随意读写用户的本地文件,那么就很容易做出一个钓鱼网站了)。silverlight3中,对另存为控件的支持也有着安全性的考虑。开发人员可以创建一个SaveFileDialog实例,但是当用户选定本地文件的时候,他只能得到这个文件的stream,而不是这个文件的路径。这样的设计避免了提供一个打开任意路径的本地文件的功能,从而使silverlight运行在一个更为安全的环境中。 6. 本地消息传递(local messaging) Silverlight是浏览器的一个插件,在同一时间可能会有多个实例。比如多个浏览器同时访问包含silverlight的网页,就会有多个silverlight的实例同时运行,本地消息传递允许这些不同的siliverlight控件实例之间互相通信。 7. 在浏览器外运行silverlight (Out of Browser) silverlight3支持把一个silverlight页面安装到本地,用户可以像一个桌面程序一样离线使用这个程序,并且可以右键卸载这个程序。

《深入浅出Windows Phone 8应用开发》

《深入浅出Windows Phone 8应用开发》

《深入浅出Windows Phone 8应用开发》章节第1章概述第2章开发环境第3章XAML简介第4章常用控件第5章布局管理第6章数据存储第7章图形动画第8章多媒体第9章启动器与选择器第10章手机感应编程第11章MVVM模式第12章Silverlight T oolkit组件第13章网络编程第14章异步编程与并行编程第15章联系人和日程安排第16章手机文件数据读写第17章Socket编程第18章墓碑机制与后台任务第19章蓝牙和近场通信第20章响应式编程第21章C++编程第22章普通应用实例第23章网络应用实例第24章记账本应用目录详情开发基础篇第1章概述1.1 Windows Phone的技术特点1.1.1 Windows Phone的发展1.1.2 Windows Phone 8的介绍1.1.3 Windows Phone 8的新特性1.2 Windows Phone的技术架构1.2.1 Windows运行时1.2.1 Windows Phone 8应用程序模型第2章开发环境2.1 搭建开发环境2.1.1 开发坏境的要求2.1.2 开发工具的安装2.2 创建Windows Phone 8应用2.2.1 创建Hello Windows Phone项目2.2.2 解析Hello Windows Phone应用第3章XAML简介3.1 什么是XAML3.2 XAML语法概述3.2.1 XAML 命名空间3.2.2 声明对象3.2.3 设置属性3.2.4 标记扩展3.2.5 事件开发技术篇第4章常用控件4.1 控件的基类4.2 按钮(Button)4.3 文本块(TextBlock)4.4 文本框(TextBox)4.5 边框(Border)4.6 超链接(HyperlinkButton)4.7 单选按钮(RadioButton)4.8 复选框(CheckBox)4.9 进度条(ProgressBar)4.10 滚动区域(ScrollViewer)4.11 列表框(ListBox)4.12 滑动条(Slider)4.13菜单栏(ApplicationBar)第5章布局管理5.1网格布局(Grid)5.2堆放布局(StackPanel)5.3绝对布局(Canvas)5.4枢轴视图布局(Pivot)5.5全景视图布局(Panorama)第6章数据存储6.1 独立存储6.1.1独立存储的介绍6.1.2 使用独立存储设置(IsolatedStorageSettings) 6.1.3 使用独立存储文件(IsolatedStorageFile) 6.2 SQL Server CE数据库6.2.1 创建数据表6.2.2 创建数据库6.2.3 增删改操作6.2.4 实例:员工信息操作第7章图形动画7.1 基本的图形7.1.1矩形(Rectangle)7.1.2 椭圆(Ellipse)7.1.3 直线(Line)7.1.4 线形(Polyline)7.1.5 多边形(Polygon)7.1.6 路径(Path)7.1.7 Geometry 类和Brush 类7.3 使用位图编程7.3.1 拉伸图像7.3.2 裁切图像7.3.3 动态生成图片7.4 动画7.4.1 动画编程中使用的类7.4.2 偏移动画7.4.3 旋转动画7.4.3 缩放动画7.4.4 倾斜动画第8章多媒体8.1 MediaElement元素8.1.1 MediaElement类的属性、事件和方法8.1.2 MediaElement的状态8.2 本地音频播放8.3 网络音频播放8.4 本地视频播放8.5 网络视频播放第9章启动器与选择器9.1 使用启动器9.1.1 EmailComposeTask发邮件9.1.2 PhoneCallTask打电话9.1.3 SerachTask搜索9.1.4 SmscomposeTask发送短信9.1.5 WebBrowserTask启动浏览器9.1.6 MediaPlayerLanucher播放多媒体9.1.7 MarketPlaceDetailTask应用的详细情况9.1.8 MarketplaceHubTask应用市场9.1.9 MarketplaceReviewTask当前应用在应用市场的信息9.1.10 MarketPlaceSearchTask应用市场搜索9.1.11 BingMapsTask地图9.1.12 BingMapsDirectionsTask地图方向9.1.13 ConnectionSettingsTask连接设置9.1.14 SaveAppointmentTask保存日程安排9.1.15 MapDownloaderTask诺基亚地图加载9.1.16 MapsTask诺基亚地图9.1.17 MapsDirectionsTask地图方向9.1.18 ShareMediaTask共享多媒体9.1.19 ShareLinkTask共享链接9.1.20 ShareStatusTask共享状态9.2 使用选择器9.2.1 CameraCaptureTask照相机9.2.2 EmailAddressChooserTask邮箱地址9.2.3 PhoneNumberChooserTask电话号码9.2.4 PhotoChooserTask选取图片9.2.5 SaveEmailAddressTask保存邮箱地址9.2.6 SavePhoneNumberTask保存电话号码9.2.7 GameInviteTask游戏邀请9.2.8 SaveRingtoneTask保存铃声9.2.9 AddWalletItemTask添加钱包项目9.2.10 AddressChooserTask选择地址9.2.11 SaveContactTask保存手机联系人第10章手机感应编程10.1 加速器10.1.1 加速器原理10.1.2 使用加速器实例编程10.2 触摸感应10.2.1 Manipulation事件10.2.2 应用示例:画图形10.2.3 Touch.FrameReported事件实现多点触摸10.2.4 应用实例:涂鸦板10.3 电子罗盘10.3.1 罗盘传感器概述10.3.2 创建一个指南针应用10.4 陀螺仪10.4.1 陀螺仪概述10.4.3 创建一个陀螺仪应用10.5 语音控制10.5.1 发音合成10.5.2 语音识别第11章MVVM模式11.1 MVVM模式简介11.2 数据绑定11.2.1 用元素值绑定11.2.2 三种绑定模式11.2.3 绑定值转换11.2.4 绑定集合11.2 Command的实现11.3 Attached Behaviors的实现11.4 MVVM Light Toolkit组件的使用第12章Silverlight T oolkit组件12.1自动完成文本框(AutoCompleteBox)12.2上下文菜单(ContextMenu)12.3日期采集器(DatePicker)12.4 手势服务/监听(GestureService/GestureListener) 12.5 列表采集器(ListPicker)12.6 列表选择框(LongListSelector)12.7 页面转换(Page Transitions)12.8 性能进度条(PerformanceProgressBar)12.9 倾斜效果(TiltEffect)12.10 时间采集器(TimePicker)12.11 棒形开关(ToggleSwitch)12.12 折叠容器(WrapPanel)第13章网络编程13.1 HTTP协议网络编程13.1.1 WebClient类和HttpWebRequest 类13.1.2天气预报应用13.2 使用Web Service进行网络编程13.2.1 Web Service简介13.2.2 在Windows Phone应用程序中调用Web Service 13.3 使用WCF Service进行网络编程13.3.1 WCF Service简介13.3.2 创建WCF Service13.3.3 调用WCF Service13.4 推送通知13.4.1 推送通知的简介13.4.2 推送通知的分类13.4.3 推送通知的实现13.5 WebBrowser第14章异步编程与并行编程14.1异步编程模式简介14.1.1 异步编程模型模式(APM)14.1.2基于事件的异步模式(EAP)14.1.3 基于任务的异步模式(TAP)14.2任务异步编程14.2.1 相关任务类介绍14.2.2 async关键字和await关键字14.2.3 创建Task任务14.2.4 监视异步处理进度14.3多线程与并行编程14.3.1多线程介绍14.3.2线程14.3.3线程池14.3.4线程锁14.3.5 同步事件和等待句柄14.3.6数据并行14.3.7 任务并行第15章联系人和日程安排15.1系统联系人15.1.1 Contacts类与Contact类15.1.2 聚合数据源15.1.3 联系人搜索15.2 日程安排15.2.1 Appointments类与Appointment类15.2.2 日程安排查询15.3 程序联系人存储15.3.1 ContactStore类和StoredContact类15.3.2 程序联系人的新增15.3.3程序联系人的查询15.3.4程序联系人的编辑15.3.5程序联系人的删除15.3.6 实例演示联系人存储的使用第16章手机文件数据读写16.1 手机存储卡数据16.1.1获取存储卡文件夹16.1.2获取存储卡文件16.1.3实例:读取存储卡信息16.2 图片音频数据16.2.1获取手机图片和音频数据16.2.2保存图片到手机16.2.3保存和删除手机音频16.3 应用程序本地数据16.3.1应用程序本地文件夹和文件16.3.2实例演示本地文件和文件夹的操作16.3.3获取安装包下的文件夹和文件第17章Socket编程17.1 Socket编程介绍17.1.1 Socket的相关概念17.1.2 Socket通信的过程17.2 .NET框架的Socket编程17.2.1 Windows Phone 7.1中的Socket API17.2.2 Socket示例:实现手机客户端和电脑服务器端的通信17.3 Windows运行时的Socket编程17.3.1 StreamSocket介绍以及TCP Socket编程步骤17.3.2连接Socket17.3.4启动Socket监听17.3.5 实例:模拟Socket通讯过程第18章墓碑机制与后台任务18.1墓碑机制18.1.1执行模式概述18.1.2应用程序的生命周期18.1.3休眠状态和墓碑状态处理18.2 后台文件传输18.2.1 后台文件传输概述18.2.2 后台传输策略18.2.3 后台传输的API18.2.4 后台传输编程步骤18.2.5 后台文件传输实例18.3 后台代理18.3.1 后台代理概述18.3.2 实现后台代理的API18.3.4 后台代理不支持运行的API18.3.5 后台代理的限制18.3.6 后台任务实例18.4 后台音频18.4.1 后台音频概述18.4.2 后台音频的API18.4.3 后台音乐实例18.5 计划通知18.5.1 计划通知概述18.5.2计划通知的API18.5.3 计划通知实例18.6 后台定位18.6.1 定位服务概述18.6.2 后台运行事件18.6.3 跟踪位置变化实例第19章蓝牙和近场通信19.1蓝牙19.1.1 蓝牙原理介绍19.1.2 Windows Phon蓝牙技术概述19.1.3 蓝牙编程类19.1.4 查找蓝牙设备和对等项19.1.5 蓝牙发送消息19.1.6 蓝牙接收消息19.1.7 实例:实现蓝牙程序对程序的传输19.1.8 实例:实现蓝牙程序对设备的连接19.2 近场通信19.2.1 近场通信的介绍19.2.2 近场通信编程类19.2.3 发现近场通信设备19.2.4 近场通信发布消息19.2.5 近场通信订阅消息19.2.6 实例:实现近场通信的消息发布订阅第20章响应式编程20.1观察者模式20.1.1 观察者模式理论20.1.2 观察者模式的实现21.1.3 观察者模式的优缺点20.1. 4 观察者模式的使用场景20.2 LINQ语法20.2.1 LINQ查询的组成20.2.2 LINQ 的标准查询操作符20.2.3 IEnumerable和IEnumerator的理解20.3 .NET的响应式框架20.3.1 响应式框架概述20.3.2 IObserver<T>和IObservable<T>20.3.3 IObservable 和IEnumerable20.4 在Windows Phone上实践响应式编程20.4.1 事件联动模拟用户登陆实例20.4.2 网络请求实例20.4.3 响应式线程实例20.4.4 豆瓣搜索实例第21章C++编程21.1 C++/CX语法21.1.1 命名空间21.1.2基本的类型21.1.3 类和结构21.1.4 对象和引用计数21.1.5 属性21.1.6 接口21.1.7 委托21.1.8 事件21.1.9自动类型推导auto21.1.10 Lambda表达式21.1.11集合21.2 Windows运行时组件21.2.1 Windows Phone 8支持的C++ API21.2.2 在项目中使用Windows运行时组件21.3 使用标准C++21.3.1 标准C++与C++/CX的类型自动转换21.3.2 标准C++与C++/CX的字符串的互相转换21.3.3 标准C++与C++/CX的数组的互相转换21.3.4 在Windows运行时组件中使用标准C++ 21.4 Direct3D21.4.1 Direct3D介绍21.4.2 Direct3D重要概念21.4.3 创建一个Direct3D项目开发实例篇第22章普通应用实例22.1 时钟22.2 日历22.3 统计图表22.4 记事本22.5 快速邮件第23章网络应用实例23.1 RSS阅读器23.2 博客园主页23.3 网络留言板23.4 快递100第24章记账本应用24.1记账本概述24.2对象序列化存储24.3记账本首页磁贴设计24.4添加一笔收入24.5添加一笔支出24.6月报表24.7年报表24.8查询记录24.9分类图表。

WP7练习1

WP7练习1

利用Microsoft Visual Studio 2010 Express为Windows Phone创建Windows Phone应用程序在这个练习中,您将学会如何创建、测试、部署和运行您的第一个Silverlight ---Windows Phone应用程序“Hello World”。

您将学会如何使用Windows Phone开发者工具,包括:用于Windows Phone IDE的免费工具Microsoft Visual Studio 2010 Express和Windows Phone Emulator。

在这个练习中,您将会为一个Windows Phone项目工程创建新的Silverlight。

您将会从创建组成Windows Phone应用程序的基本元素开始,例如为Windows Phone项目模板添加基本的按键和文本处理。

由于这一个针对Windows Phone应用程序的Silverlight,您需要按照Silverlight编程的模型并利用XAML来定义您的用户接口。

尽管可以利用任何代码来开发一个基于XAML的用户界面(UI),但是充分利用更好更简单的工具来帮助自己完成基于XAML的工作显然能达到事半功倍的目的。

您需要编辑主页面的XAML来填加3个元素:一个文本框、一个按钮、一个文本块,来实现利用XAML为Windows Phone创建一个用户界面的目的。

这三个Silverlight控件就被移植到运行在Windows Phone运行环境的Silverlight中。

一旦完成,应用程序允许您在文本框中输一些文本信息,然后点击按钮控件,文本信息将会被显示到文本块控件中。

最后,当所有代码都完成后,您可以编译这个程序,然后把它部署到Windows Phone Emulator上,达到测试的目的。

您可以通过设置程序运行断点,在模拟器(Emulator)上调试这个应用程序,如利用调试程序一步一步走遍整个程序的源代码并检查程序变量的值。

Silverlight入门基础

Silverlight入门基础

Silverlight入门教程--基于运行环境示例郑健2008-3-9(一).概述 (3)(二). 代码示例 (3)1).基础知识示例 (3)1. 对象的定位 (3)2. 使用SilverLight插件 (8)3. SilverLight元素的鼠标事件 (10)4. SilverLight元素的键盘事件 (16)5.方法createFromXaml使用示例 (17)6.访问和修改Silverlight元素以及属性 (19)7. Silverlight中的字体使用 (21)8.全屏支持功能 (24)9. Silverlight Downloader 对象使用 (26)10.定时器功能 (29)11.错误处理支持 (31)12.把xaml段内置在aspx或html页面中 (34)2).制作图形示例 (36)13.基本图形形状示例 (36)14.画刷对象的使用 (38)15.视频刷对象的使用 (41)16.Path元素使用 (43)17.变换效果(Transform) (44)3).多媒体功能 (46)18.在线电影播放 (46)4).制作动画效果示例 (51)19.一个动画示例 (51)20.动画的交互控制 (53)21.动画关键帧示例 (55)(一).概述Silverlight是一个跨浏览器的、跨操作系统平台的插件,为Web带来下一代媒体体验和丰富的交互式应用程序体验. 使用JS实现Ajax技术可以使网站具有很好的用户体验, 但它也会使网站过于庞大和臃肿. 业余时间学习了一下微软的Silverlight官方教程, 在学习时顺便根据学习示例整理了一个教程. 此教程包括一些精简的小例子, 主要针对开发使用场景展开示例, 在实际开发中也可以作为查找手册使用. 运行环境为VS 2005, 这些示例比较简单很容易看懂, 因此示例没有太多注释.(二). 代码示例1).基础知识示例1. 对象的定位通过呈现几个Silverlight元素来示例对象之间的定位, 以及在一个页面中创建装载多个Silverlight对象.2. 使用SilverLight插件3. SilverLight元素的鼠标事件I.鼠标滑入和滑出事件II.鼠标点击(按下/弹起)和移动事件4. SilverLight元素的键盘事件5.方法createFromXaml使用示例6.访问和修改Silverlight元素以及属性7. Silverlight中的字体使用8.全屏支持功能9. Silverlight Downloader 对象使用10.定时器功能11.错误处理支持12.把xaml段内置在aspx或html页面中这样的话就不用单独的 *.xaml 文件来承载SilverLight对象控件元素内容.2).制作图形示例13.基本图形形状示例14.画刷对象的使用15.视频刷对象的使用16.Path元素使用17.变换效果(Transform)3).多媒体功能18.在线电影播放。

游戏开发项目实践(第1周)

游戏开发项目实践(第1周)

难点: 难点:
.Net程序的开发方法、 .Net程序的开发方法、开发过程和基本 程序的开发方法 框架
1.1什么是Silverlight
Silverlight微软所发展的 Silverlight微软所发展的 Web 前端 应用程序开发解决方案, 应用程序开发解决方案,是微软富互联网 应用程序( Application, 应用程序(Rich Internet Application, 简称RIA)策略的主要应用程序开发平台之 简称RIA) RIA 以插件的形式安装于浏览器上运行。 一,以插件的形式安装于浏览器上运行。
1.4 Silverlight案例演示
Silverlight官方网站: Silverlight官方网站: 官方网站
官方网站里收录了海量的Silverlight应用展示Demo 官方网站里收录了海量的Silverlight应用展示Demo Silverlight应用展示 教学视频以及全世界的Silverlight Silverlight高手齐聚的论 ,教学视频以及全世界的Silverlight高手齐聚的论 你所需要的一切资源都可以从官方网站搜罗到。 坛,你所需要的一切资源都可以从官方网站搜罗到。
例如: VB写的函数可以在C#写的类中直接调用; 例如:用VB写的函数可以在C#写的类中直接调用;FLASH 写的函数可以在C#写的类中直接调用 AS,JavaFX用JAVA,HTML5用Javascript, 用AS,JavaFX用JAVA,HTML5用Javascript,而 Silverlight却可以同时使用多种主流语言协同编程 却可以同时使用多种主流语言协同编程。 Silverlight却可以同时使用多种主流语言协同编程。
1.3 Silverlight技术优势

全套windows phone开发视频教程

全套windows phone开发视频教程

微软一起学Windows Phone开发视频教程系列课程介绍:Windows Phone7是今年年初才推出的一个全新的移动平台,集成了微软Silverlight和XNA两大优势产品框架在里面,使这个平台与Windowsmobile平台有了很大的区别,由于这种差别的存在,使应用开发也不同于以往的Windowsmobile开发了。

一起学WindowsPhone7开发课程,对 WindowsPhone7各个功能模块开发都有所讨论,是一个由入门到深入的系列课程,是一个面向开发者和对Windows Phone感兴趣人士的课程,通过这个系列课程的学习,可以使您对WindowsPhone7的开发有一个完整的认识,也为您进入更深层次的开发奠定了基础。

课程章节:一起学WindowsPhone7开发系列课程(1):初识WindowsPhone 7今年年初微软发布了最新的移动平台Windows Phone7,也给我们带来了不一样的开发体验。

它的架构是什么、开发环境是怎么样的?本次课程将带您学习这个内容。

一起学WindowsPhone7开发系列课程(2):Silverlight forWindowsPhone 7 WindowsPhone7应用开发,是以Silverlight为基础的,但又有一些不同,那有哪些不同?如何进行开发呢?本次课程将带您学习这个内容。

一起学WindowsPhone7开发系列课程(3):控件开发一控件是Silverlight应用开发的基础,对于用好控件,是Windowsphone7开发的基本功,本次课程将带您学习容器控件、按钮控件等内容。

一起学WindowsPhone7开发系列课程(4):控件开发二在应用开发中,如何输入文字、密码?如何播放视频、声音?如何显示文字?如何使用进度条?本次课程将带您学习这个内容。

一起学WindowsPhone7开发系列课程(5):控件开发三在Silverlight开发中,是没有绘制图形的函数的,那我们如何绘制多边形?应用中,需要地图展示,如何加载地图?如何做标记?本次课程将带您学习这个内容。

SilverLight基础教程

SilverLight基础教程

这是8个系列教程的第一部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。

这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。

使用VS 2008 创建一个新的Silverlight 应用我们来开始我们的Digg应用的开发,先选择Visual Studio 2008 中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application”(注:你需要在Beta1发布后,下载和安装VS 2008的Silverlight工具才能得到这个支持):我们将该项目命名为“DiggSample”。

在点击OK按钮后,Visual Studio 会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的 Web项目到包含Silverlight应用的解决方案里去:在这个例程里,我们将选择还要添加一个 Web Application 项目到解决方案里去,并将它命名为“DiggSample_WebServer”。

在点击OK之后,Visual Studio 会为我们创建一个解决方案,里面包含一个Silverlight 客户端应用和一个 web 服务器端应用:如果我们做一次编译的话,Visual Studio 会自动把编译好的Silverlight 应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。

VS为我们创建的默认的web服务器项目包含一个网页和一个静态的HTML网页,我们可以用来运行和测试其中的Silverlight应用。

注:Silverlight应用可用于任何web服务器(包括Linux上的Apache),宿主于静态HTML文件或者任何服务器端生成的网页(包括PHP, Java, Python, Ruby等等)中。

在这个Digg样例中,我们不会写任何服务器端的代码,而是将使用Silverlight 的跨域networking功能,来直接访问Digg服务的API。

MCTS-5 Windows Phone 7手机程序开发

MCTS-5 Windows Phone 7手机程序开发

MCTS-5 Windows Phone 7手机程序开发培训目标:掌握SilverLight应用程序的开发知识掌握数据访问应用程序的基本原理和使用掌握WindowsPhone7应用程序开发掌握Visual Studio 2010中建立和调试、发布WindowsPhone7应用程序课程大纲:第一章:Windows Phone7应用程序开发简介目的:理解WindowsPhone7系统的基本原理,掌握手机应用程序的基本技术和架构1WindowsPhone 7手机配置2框架与技术组成3Metro设计语言4屏幕与输入设备第二章:WindowsPhone7开发环境目的:学习Visual Studio 2010和Expression Blend4 环境的使用1开发环境选择2Visual Studio 2010 Express For Windows Phone 概述3Expression Blend 4概述4WP模拟器的使用第三章:WP7程序布局设计目的:了解WindowsPhone7手机的界面设计原则1红线准则”2创建手机屏幕的布局3各种控件的使用4资源,样式和主题第四章:动画效果目的:了解WP7程序的动态效果实现技术1视觉与动画效果管理2行为模式3动画的创建4动画控件,全景与枢轴第五章:手机方位管理目的:理解手机程序的方向概念了解手机程序的输入处理和应用程序栏的创建和使用1设备方向的概念2屏幕输入设备3应用程序栏4系统托盘与设备管理第六章:屏幕导航目的:理解WP7程序的屏幕导航机制,学习页面布局和架构的设计及后台处理技术1页面布局与架构定义2屏幕导航3后台处理第七章:图标与通知目的:掌握屏幕平铺图标的显示与管理,了解手机推送通知机制1平铺图标的设置与显示2程序通知处理3错误处理第八章:WP7 中的任务管理目的:掌握WP7 程序中的典型任务处理机制,了解基本的手机功能实现1应用程序与任务处理2手机照相功能3电话管理和短信息管理4后台程序和自启动服务第九章:触屏技术和输入技术目的:理解手机屏幕的触屏技术,掌握建立友好界面的用户体验,了解单点触控和多点触控技术1手机的用户体验2屏幕与触屏技术3单点触屏与多点触屏4输入与管理第十章:重力感应和震动机制目的:理解WP7应用程序的震动管理和摇晃处理机制1加速度计2震动的设计与实现3WP7 重力感应机制第十一章:音频处理程序目的:理解WP7程序的音频与媒体播放的概念,掌握在WP7程序中实现媒体播放和控制1媒体播放2录音与音频管理3收音机与FM调谐第十二章:GPS功能目的:理解手机的卫星定位机制和原理,创建基于地图的GPS应用程序1地理位置服务概述2调用bingMap功能第十三章:与Web 的交互目的:掌握WP7中的网络连接技术,实现Web功能1管理连接状态2使用WebBrowser3使用MultiScaleImage控件4手机上Web的身份验证机制第十四章:使用云服务目的:掌握云服务的概念,实现用WP7程序连接服务器1WP7的HTTP请求2使用WCF/ASMX服务3实现数据通信功能第十五章:数据处理目的:掌握WP7的数据处理和绑定功能,实现交互式数据应用1数据绑定于显示2基于数据的设计和处理3数据的转换第十六章:数据存储目的:掌握WP7的数据存储机制,实现数据缓存和同步1WP7的数据存储机制2独立数据存储的实现3数据缓存4同步数据第十七章:常用框架目的:理解MEF,MSAF等应用框架,利用现有的框架组件应用1Managed Extensibility Framework概述2组合应用程序3MSAF框架的使用4测试与维护第十八章:WP7程序安全性目的:掌握WP7的中的数据保护机制,了解传输数据的安全性开发1设备的安全性管理2传输的数据安全性3身份验证机制第十九章:XNA游戏开发目的:理解XNA机制与实现,掌握实用XNA进行游戏开发的基本原理和技术1XNA简介2XNA程序的图形动画处理3游戏中的3D效果实现第二十章:程序调试与发布目的:掌握在开发环境中调试WP7程序,实现WP7程序的发布和部署1设备调试技术2应用程序迁移3程序兼容性设计4性能优化技术5程序的发布和更新。

SliverLight银光点亮世界(理论)

SliverLight银光点亮世界(理论)

Web 2.0 NTC Spring
Linux/Weblogic J2EE PRT J2EE PMP
LAMP Enterprise Develop .NET PMP
课程目标
学习内容
了解Silverlight技术的优势及开发环境 使用XAML开发用户控件 绘制简单的矢量图和几何图形 Silverlight通过WCF、WebService进行通信 Silverlight使用Socket通信 编写Form/To/By动画 编写制作关键帧动画 Silverlight中应用多媒体 Silverlight与浏览器交互 开发Deep Zoom应用 开发图表和墨迹标注应用
this.Application_UnhandledException; InitializeComponent(); }
初始化应用程序
3.2 应用程序的结构
Silverlight应用程序的结构
Page.xaml:
所有的用户控件都是 同样的根元素 指定后台类文件
<UserControl x:Class="HelloWorld.Page" xmlns="/winfx/2006/xaml/presentation" xmlns:x="/winfx/2006/xaml" Width="400" Height="300"> <Grid x:Name="LayoutRoot" Background="#3c3c3c"> <TextBlock 该命名空间下包含 FontSize="30" WPF常用元素和属性 一个Silverlight应用程序最终被编译为.xap文件,该文件包含程序一个清单 Foreground="Red" Name="tb1" 文件和一个程序集 HorizontalAlignment="Center" 元素(控件)及其属 VerticalAlignment="Center" 性声明 Text="Hello World!" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"> </TextBlock> </Grid> </UserControl>

Windows Phone开发入门教程_wdxtub_CodePlane

Windows Phone开发入门教程_wdxtub_CodePlane

CodePlane
- 27 - 29 - 29 - 29 - 30 -
WINDOWS PHONE 7 高级主题
传感器 加速计 Compass Gyroscope Vibration 计划任务 不支持的 API 需要注意的 API 限制 后台代理 闹铃与提醒 后台传输与后台音乐 本地数据库 开发流程 Database Schema Upgrades 性能和最佳实践
注册成为学生开发者
为什么需要注册成为学生开发者呢,因为只有注册成功了,才能在市场上发 布应用。针对学生微软提供了一些优惠,例如不用交每年 99 美元的注册费用, 虽然我们不能发布收费的应用,但是有一个市场,让用户去检验我们的应用, 也 很不错了。具体的注册和发布教程可以查看下面这两个网页: /zh-cn/hh678673 /zh-cn/hh678674 都注册好之后,我们就准备开始真正进入 Windows Phone 7 的大门吧!
CodePlane & MAD -4SYSU
Windows Phone 7 开发入门教程
CodePlane
面,并且基于 silverlight 的机制,我们获得了类似 ios 的沙盒的机制,一个应用 程序只能访问自己的东西,相当于每个应用都有自己独立的文件系统。 好了,如果遇到不明白的缩写,上网搜搜吧,相信大家很快就能明白了。
Silverlight 介绍
可能大家对于 silverlight 不甚了解,不过真正做开发的时候,似乎我们也并 不需要特别去在意这个问题, 但是因为我们是在这个上面进行开发,最好还是要 了解一点相关的东西。 Silverlight 是 WPF 的一个子集, 准确的来说, 是一个更加适应 Web 的 WPF 子集。问题又来了,WPF 是什么?能吃么? 不能吃,WPF 的全称是 Windows Presentation Foundation,是微软推出 的基于 Windows Vista 的用户界面框架。这话太空了,总而言之,言而总之, 就是换了一个绘图引擎的图形界面,从原来的底层 API 换成了现在的 DirectX, 并且可以比较容易的实现界面和代码的分离。 好,这才是重点,重点就是界面和代码的分离。无论是 android 的 xml 还 是 ios 的 xib,都是为了解决同一个问题,就是实现 MVC 的模型,MVC 在我看 来的精髓就是各个组件的独立, 可以分别进行开发,而不是像一锅粥一样牵一发 而动全身,现在可以做到后台代码不改变但是界面部分天翻地覆,这就是关键所 在。 言归外传,Silverlight 在 Windows Phone 7 上又是一个比较特别的集合, 大部分是原本 silverlight 的子集,而又根据手机平台的特殊性,加入了一些原 来本不属于 silverlight 的东西,所以对于 silverlight,我们真正用到的并不是其 本身,而是 silverlight for windows phone。再具体一点,我们用这个来做界

基于Silver light的计算机基础课程网络练习系统的设计与实现

基于Silver light的计算机基础课程网络练习系统的设计与实现
・ 专家论 坛
基 于 Sle g t i rih 的计算栅 v l 基础 课程网络练 习系统硇设计与实坝
湖 南理 工 学 院计 算机 学院 余 丹
[ 摘 要] 计算机基础课 程是 高校 学 生必修课程 之一 , 网络课堂在基础 课程 中的普遍 应用 , 学生对虚拟教 学的交互性的要 求越 来越 高, 传统的 以数据 为 中心 , 以HT 为表现形 式的W e 网络 教学应 用程序 已远不能满足 学习者更 高的 、 方位 的体验要求 , ML b 全 而RI A 及微软 svri t 术平 台的 出现正好 为这 个问题提供 了很好 的解决途径。文章重点介绍 了如何通过微软的 Sv r 曲t 术来设计 i e l h技 l g iel 技 l i
和 实现 高度 交 互 的 网络 练 习 系统 。
[ 关键词 ] 虚拟练 习 Sle lh RI i ri t v g A


前 言
随着 “ 十一五 ” 设的完成 , 建 计算机基础课 程 已成为几 乎所有高校 学 生必修课程之 一 , 因其课时量 大 , 受众 面大 , 课后练 习批 改工作量也 随之增 加 , 导致 网络课堂等 网络 虚拟教学手段 普遍应用 于课后 练习与 答疑 等教学环 节。 以前 , 基于 w b e 的虚拟教 学平 台以其开放 的学习条 件 、 富的学 习资源成为 虚拟教 学的主载体 , 丰 但是随着学生对课后练 习 的交互性要求越来越 高 , 传统的 以数据 为中心 , H M 为表现形式 的 以 T L We 网络 教学应用 程序 已远 不能满 足学生 的要 求 , I 出现 为这个 b RA的 问题提供 了全新 的解决途径。 R A Rc It c A p ct n I 是 i n r t plao( h e a i i 富互联 网应用 系统 , 富客户端1 亦称 的缩写 , 基百科对它有如下定义 : 维 所谓 R A 首先 , I, 它应 该是~个 网络 应用程序 ; 其次 , 它还 要具有桌面应 用程序 的特 征和功能 。简单 地说 , 如果你 的桌 面程序f 比如说 Wo 、 ht hp c pe r P o so 和E l s 能在网络上运行 , d o i ) 并且 能保持其原 来的功能和 特征 , 么我们就可 以称它们为 R A应用 那 I ( 富客户端应用1 。因此 , I R A的技术特点使得其非 常适 用于网络练习系 统 的开发 , 网络教育领域也必将具有广阔的应用前景。 在 二 、 ie h 介绍及其在虚拟练习系统的应用优势 Sl r g t v l i RI 未来 We 应用程序的发展方 向。MirsfSle l h是微软 A是 b coot i ri t v g 推 出的新技术 ,i e l h 实际上是一个运行在 We 浏览器上的应用程 Sl ri t v g b 序界面开发平 台 , 是一个跨浏 览器 、 台的插件 , 跨平 为网络带来基于.E NT 的媒体体验和丰 富的交互式 We 应 用程序。 b 从编程 的角度来看 ,ie l h程序使 用的是.E 托管代码 , 以 S vri t l g NT 可 用 XA (x nil A piai ru ag ae扩 展应用程序 标记语 MLE t s e p l tnMak pL nu g , e b c o 言) 编写 , A L X M 是微软 为 Wi o s ia 建的基 于X L n w s 创 d Vt M 的标记语 言 , 它 提供 了对动画和 3 D众 多方 面 的支持 。X M 程序 可以用最 简单 的 A L 文本编辑器编写 , 当然最好是使用 图形 工具( Epesn l d 如 xr i e ) s o B n 来创建 X M 代码, A L 之后 就可 以开放给 We 搜索 引擎和其 它在线工具 。这是 b S vri t Fa 另外 一点截然不 同的地方 , l h ielh与 l h l g s F s 实际上是 一个对外 a 封 闭的“ 盒” 黑 环境 。而 由于 S vri t ie l h 除了支持 I l g E以外 , 还可 以支持 A p 的S f i M zl的 Fr o 浏 览器 , pl e ar a 和 oi l a if ex 因此 它可 以运行 在任何计算 机平 台上 , 括 Maits 和 Ln x 包 cnoh iu 。从根本上来说 ,i e l h最关键 的 Sl ri t v g 与众不 同之处 , 实际上就是它创建 出的 u 质量 , I 它是真正 以X M 格式 A L 进行数据传输 , 到用户前 端后再 解析为具体图像 , 文本的大小是非 常小 的 , 以完全不用担心带宽 。此外 ,i e l hJ 所 Sv it l r g  ̄提供 灵活的编程模型 , 支持 A A v , ,y o , u y J X, B c P t nR b 等语言 , h 并集 成到现有 的网络应用程序 中。而对 于使 用 Wi o s 台开发工具 的用户来 说 , 以使 用 c , B n w平 d 可 #V 等 多种语 言进行开 发 , 而不需 要抛弃 原本 的知识去学 习 A t nSr t ci ci , o p 而且这些 语言 在进行 Sle l h开 发时 , i ri t v g 也继承 了很多 这些语 言 的特 性 , 在网络练习应 用程 序中 , 如 会大量使用各种多媒体素材 , 如音频 、 视 频等 , S vr i t 而 i e lh 就可 以很 方 便 的使 用 最常 用 的底 层 的传 输 工具 l g Sc e 。同时 s vri t yt .e 名空 间里还有很多通 讯组件 , ok t s i e l h 的S s mN t 1 g e 命 比如We ci t , hl n 等 完全可 以实现 S e OA和 Fe 的 Htsrie lx t ev 的功能。 p c S vri t ie l h 的技术 特点使之在 网络练 习系统 中的诸多应用优势 : l g ( 丰 富的表现力 : l ri t 1 1 S v lh 技术具 有丰富 的多媒体表现 能力 , ie g 可 以将文字 、 图片 、 音频 、 视频进行无缝 的结合 , 从而使得练 习系统 中内容 的表现更加生动和丰富 , 使刚接触计算机基础知识 的学生体验感更强 , 提 高了学生 的学 习兴趣 。 (强大的交互性 : 2 ) 传统 的数字 图书馆信息服务 以文本为 主, 乏交 缺 互, 响应速度 缓慢 。S vri t i e l h 技术支持 动画 、 l g 视频 、 音频 、 双向的数据 通信和创建 复杂的窗体 , 使得 强调 以学 生为主导 的计算 机基础课程教 学 在网络练 习系统中具有强 大的交互能力 , 包括学生与课 程内容 的交 互, 以及学生 与学生 、 学生与教师之间 的交互 。 ( 高效 的数 据传输 : 3 ) 服务端 与客户端之 间的数据流传 输方式采取 X M 数 据 , 户端和服务 器端仅传 递必要 的数据 。从 而大大 降低 了 A L 客

Silverlight完美入门

Silverlight完美入门
完美入門
1
Silverlight
1-1 Silverlight 1.0 架構 .......................................................................1-2 1-2 Silverlight 跨平台與跨瀏覽器能力 .................................................1-3 1-3 Silverlight 功能特徵 ......................................................................1-7 1-4 Silverlight 最佳應用場景( Scenarios ) ..........................................1-7 1-5 微軟 Silverlight 官方網站 ..............................................................1-8 1-6 範例程式名稱列表 ...................................................................... 1-10
8
8-4 8-5
結論 ........................................................................................... 7-36
6
6-1 6-2 6-3 6-4 6-5 6-6 6-7 6-8 vi
Silverlight
Shape
Silverlight 繪圖( Shape )物件功能概觀 ......................................6-2 Line 直線 .....................................................................................6-3 6-2-1 直線頂部蓋狀( LineCap )之探討 ...................................6-6 Rectangle 矩形 .............................................................................6-8 Ellipse 橢圓形與圓形 .................................................................. 6-15 Polygon 多邊形 .......................................................................... 6-22 Polyline 多線形 .......................................................................... 6-27 Path 路徑繪圖 ............................................................................ 6-32 結論 ........................................................................................... 6-38

Sliverlight经典入门教程

Sliverlight经典入门教程

【原文地址】First Look at Silverlight 2【原文发表日期】 Friday, February 22, 2008 6:41 AM跨平台/跨浏览器的 .NET 开发Silverlight 2 包含了.NET 框架的一个跨平台,跨浏览器版本,促成了在浏览器中运行的一个丰富的 .NET 开发平台。

开发人员可以使用任何一门 .NET 语言(包括VB, C#, JavaScript, IronPython 和 IronRuby)来编写Silverlight 应用。

我们将推出Visual Studio 2008 和 Expression Studio的工具支持,来促成建造Silverlight方案时开发人员与美工设计师间良好的工作流和集成。

这个即将发布的Silverlight 2 Beta1 版本提供了能促成精妙的RIA应用开发的一套丰富的功能集。

这些功能包括:∙WPF UI框架: Silverlight2包括了一个基于WPF的富用户界面框架,该框架将极大地方便建造丰富的Web应用。

其中包括强大的图像和动画引擎,以及对像控件,布局管理,数据绑定,样式和模板皮肤这样高级的UI功能的丰富支持。

Silverligh中的WPF UI框架是与完整的 .NET 框架中的WPF UI框架特性相兼容的一个子集,允许开发人员重用技能,控件,代码和内容来同时建造丰富的跨浏览器的web应用,以及丰富的桌面Windows应用。

∙丰富的控件: Silverlight 2包括了一套丰富的内置控件,可为开发人员和美工设计师用来快速地建造应用。

这个即将发布的Beta1版本将包括核心的表单控件(TextBox, CheckBox, RadioButton等),内置的布局管理面板(StackPanel, Grid, Panel等),常见的功能性控件(Slider,ScrollViewer, Calendar, DatePicker等),以及数据操作控件(DataGrid, ListBox等)。

Windows Phone程序设计(XNA框架)

Windows Phone程序设计(XNA框架)
如果觉得那些代码里有对你的项目有用的部分,都是可以免费使用的,而且没有任何限制,你可以直接使用 或者根据需要来修改。
在本书快完成的时候,第一个版本的Silverlight for Windows Phone Toolkit也已经发布,其中提供了 额外的元素和控件,读者可以在中下载。在历史上,Silverlight工具包中常常有一些元素和控件的预览,它们 有些会包含在下一个版本的Silverlight发布中。很遗憾,在本书中没能有一个章节来讨论这个工具包中的内容。
本书的第二篇是关于XNA 2D的。为了方便读者阅读,本书的结构编排都是建立在前面章节知识的基础上的, 所以推荐的阅读方式是按顺序来阅读。
这里假设读者具备基本的.NET编程的知识,熟悉C#编程语言。对于不了解这些知识的读者,可以阅读作者免 费的在线书籍.NET Book Zero: What the C or C++ Programmer Needs to Know about C# and Framework,这本书可以在作者的站上找到。
本书的编写兼顾了实用性和创新性,书中的实例是读者很好的学习资源。全书共分上、下两篇,上篇对比 Silverlight和XNA介绍Windows Phone平台的基本概念,具体包括控制程序朝向、触控简介、处理位图材质、传 感器和服务,以及在程序内传递和保存数据遇到的问题。下篇主要介绍如何使用XNA开发高性能的二维游戏,具 体包括文字和子画面(sprites)的创建,以及动画控制、处理位图(加载、从像素基本控制、使用动态的材 质)、使用变换、使用触控和传感器来创建游戏。
为了介绍Silverlight和XNA的编程概念,本书描述了190个完整的程序,很多程序都是小而简单的,也有一 些大的而且更加有趣的程序。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Microsoft Confidential 18
应用程序可以直接访问联系人信息× 可以使用启动器和选择器来调用Windows Phone内 置功能√ 当调用选择器的时候,应用程序一定会被 tombstoned ×
Microsoft Confidential 19
应用程序可以直接访问联系人信息× 可以使用启动器和选择器来调用Windows Phone内 置功能√ 当调用选择器的时候,应用程序一定会被 tombstoned × 当Chooser返回的时候会调用Application_Activated √
Microsoft Confidential 20
应用程序可以直接访问联系人信息× 可以使用启动器和选择器来调用Windows Phone内 置功能√ 当调用选择器的时候,应用程序一定会被 tombstoned × 当Chooser返回的时候会调用Application_Activated √ 当Chooser返回的时候一定调用App的构造函数×
原 有 新
Microsoft
是否
构造函数
Microsoft Confidential 15
Microsoft Confidential 16
应用程序可以直接访问联系人信息×
Microsoft Confidential 17
应用程序可以直接访问联系人信息× 可以使用启动器和选择器来调用Windows Phone内 置功能√
How to: Use Launchers for Windows Phone
Microsoft Confidential 7
Microsoft Confidential 8
How to: Use Choosers for Windows Phone
Microsoft Confidential 9
Microsoft Confidential 21
Microsoft Confidential 22
/procoder
Microsoft Confidential 2
可能
Microsoft Confidential 3
Microsoft Confidential 4
Microsoft Confidential 5
Microsoft Confidential 6
Microsoft Confidential 10
Launcher and Chooser Support in Windows Phone Emulator
Microsoft Confidential 11
可能 可能没有
原有
Microsoft Confidential 12
Microsoft Confidential 13
相关文档
最新文档