相信大家有所听闻关于Nokia基本上放弃自己的独立研发新的智能机操作系统Symbian和Meego就在两天前6月22日关于Nokia全球将有2800名员工转到Accenture的协议已经敲定这次培训主要是为Nokia员工提供一个关于Windows Phone整体初步的了解中国区诺基亚的研发主要在北京亦庄和中关村培训人数大约涉及200人左右。关于这次转型诺基亚内部的员工表示非常遗憾刚刚在欧洲发布的N9采用Meego操作系统让很多人更加表示惋惜。手机操作系统微软的Windows Phone 7的整体生态环境还是搭建的很不错的以下是我总结的和Windows Phone和其他现在主流手机平台的核心能力对比。多任务硬件标准用户体验耗电操作系统功能应用Windows Mobile支持多任务只有推荐差到中等一般到厉害一般少Windows Phone 7.0/7.1号称“支持”多任务其实前端应用程序Layer是单任务微软定义了严格的标准所有OEM厂商需遵循好厉害目前还有很多系统易用性的功能还没有开发所以一般少Android支持多任务只有推荐中等到好厉害强多iOS单任务不需要标准只有Apple自己生产好厉害一般苹果开发的东西也是有限的多Symbian支持多任务只有推荐可以适应很低的硬件配置差到好省电强中等Windows Phone 7架构Windows Phone 7的系统内核还是Windows CE它是基于Windows CE 6.0 R3版本所以从这个层面来讲操作系统内核基本没有变化主要是将Shell和Application Layer的东西有较大变化Application Layer是采用了.Net Framework托管的环境CLR有两种编程FrameworkSilverlight和XNA。以下是系统软件架构图更细致来看Windows Phone分成四个Layer以下为Rich总结的四个层面CoreKernel is the indivisible minimum kernel (controlling the processor, memory and critical hardware)Kernel includes everything else that runs in the kernel (e.g. logical kernel abstractions including threads, processes, etc., networking stack, device drivers, printer drivers, graphics media drivers, KTM, ETW, etc.)CoreOS is the core (mostly user-mode) OS substrate upon which the OS itself depends (e.g. Win32, COM, OLE, RPC, WMI, DirectX, etc.)OS is the remaining set of other high-level essential and non-essential features that may, or may not, be installed by the OEM/user/etc. (e.g. Explorer, Silverlight, .NET, Media Center, IIS, etc.)WP7开发参照上图的功能层次我们可以看一下每个层面进行开发采用的环境和工具。环境开发语言开发工具部署工具应用程序层CLRC#/VBVisual Studio 2010 for Windows PhoneVisual Studio 2010 for Windows PhoneOS层Native CodeC/CVisual Studio C 2008 sp1 or other toolsPlatform Builder for Windows PhoneKernel层主要是BSPNative CodeC/CVisual Studio C 2008 sp1 or other toolsPlatform Builder for Windows Phone开发工具下载Visual Studio 2010 for Windows Phone可以通过微软网站免费下载Visual Studio C 2008 sp1是需要花钱买的Platform Builder for Windows Mobile的时候是可以公开下载的但是for Windows Phone版本只面向OEM厂商开放做ROM就是用这个工具。开发资料下载应用程序开发的资料微软提供的非常丰富推荐WP7 Jump Start VideoTraining Kit 和Developer DocumentMicrosoft Press eBook Programming Windows Phone 7OS和Driver开发这个资源只向OEM开放不过你可以这个链接获取到操作系统相关的以下资料(需要FQ相信很多对底层感兴趣的人很有帮助Windows phone 7 architecture GuideWindows phone 7 Customization GuideWindows phone 7 OEM application development GuideWP7应用程序开发相信博客园的高手们最感兴趣的还是应用程序开发即Silverlight和XNA的开发。其实在这个两天的培训中主要涉及的也是将Windows Phone 7作为一个黑盒子展开的即上面软件架构图中浅蓝色内的灰色部分应用程序开发我们从这些方面展开介绍Windows Phone 7。Platform Overview WP7的硬件标准软件架构生态系统Metro UI UI设计样式TileGlanceGo, Panaroma)Build WP7 App PPT 开发工具VS BlendPage Navigation 程序内和程序间导航Execution Model 程序生命周期休眠和墓碑Data BindingMVVM数据绑定Sensor and Gesture重力感应器陀螺仪指南针GPSXNA 2维和3维游戏Push NotificationTileToastRawMango New Feature 中文SQL后台服务【15秒每30分钟】…)详细的开发过程我想大家可以通过微软的教程进行阅读而且基本上就是和桌面应用开发一样所以如果你曾经开发过Silverlight/WPF或XNA的话那基本上不需要花费什么功夫就可以开发WP7应用。在这里我想讲几点或许对你有用的地方。1. Xaml TreeWP7中主要的LOB应用都是Silverlight应用对于没有接触过XAML的开发人员来说深刻理解它需要一个过程因为这个和WinForm的界面表达方式不一样。在Silverlight中我觉得Logical Tree和Visual Tree是非常重要的一个环节简单理解XAML就是,通过Xml的方式来构造对象再具体一点就是每个Xaml中的XmlElement元素都可以在.Net framework中找到相应的Class你每在Xaml中加入一个XmlElement等价于你在C#代码中new一个这个类的一个实例同时通过XmlAttribute来设置该对象的Property的值通过XmlElement的层级结构来体现父亲儿子的控件关系等价于你在代码中parentControl.Children.Add(childControl)更多关于Tree的信息请阅读MSDN。2. Page StackWP7的每个Silverlight应用程序由多个Page构成后退键可能在你的程序内部的不同页面跳转也可能在不同程序间跳转。在理解WP7的Page Navigation的时候可以通过Stack的方式来理解。后退键出栈。开始键包括通过开始中打开的程序和搜索键入栈。程序切换长按后退键将栈中某一个应用程序在栈中左右的页面移到栈顶。通过这样的规则可以比较方便的理解和分析在任何时候用户点击后退键将发生什么情况。还有一个事实需要说明一下在WP7中同一个应用程序在系统中只能有一个实例意味着你如果开着应用程序通过开始键再打开一个系统会把你原来那个实例杀掉。3. Data BindingData Binding是微软实现将两个对象的属性之间建立桥接关系的一种便捷方式Target和Source有三种绑定方式OneTimeOneWay和TwoWay一般来说你开发的应用程序通过MVVM的模式来进行设计将数据和界面分离然后通过Data Binding的方式自动关联界面的空间和你Model的数据。所以一般Target是你的UIElementSource是你的ViewModel当然你也可以将UIElement作为Source绑定到另外一个UIElement进行联动更多信息请参考MSDN。
Windows Phone 7 培训总结
相信大家有所听闻关于Nokia基本上放弃自己的独立研发新的智能机操作系统Symbian和Meego就在两天前6月22日关于Nokia全球将有2800名员工转到Accenture的协议已经敲定这次培训主要是为Nokia员工提供一个关于Windows Phone整体初步的了解中国区诺基亚的研发主要在北京亦庄和中关村培训人数大约涉及200人左右。关于这次转型诺基亚内部的员工表示非常遗憾刚刚在欧洲发布的N9采用Meego操作系统让很多人更加表示惋惜。手机操作系统微软的Windows Phone 7的整体生态环境还是搭建的很不错的以下是我总结的和Windows Phone和其他现在主流手机平台的核心能力对比。多任务硬件标准用户体验耗电操作系统功能应用Windows Mobile支持多任务只有推荐差到中等一般到厉害一般少Windows Phone 7.0/7.1号称“支持”多任务其实前端应用程序Layer是单任务微软定义了严格的标准所有OEM厂商需遵循好厉害目前还有很多系统易用性的功能还没有开发所以一般少Android支持多任务只有推荐中等到好厉害强多iOS单任务不需要标准只有Apple自己生产好厉害一般苹果开发的东西也是有限的多Symbian支持多任务只有推荐可以适应很低的硬件配置差到好省电强中等Windows Phone 7架构Windows Phone 7的系统内核还是Windows CE它是基于Windows CE 6.0 R3版本所以从这个层面来讲操作系统内核基本没有变化主要是将Shell和Application Layer的东西有较大变化Application Layer是采用了.Net Framework托管的环境CLR有两种编程FrameworkSilverlight和XNA。以下是系统软件架构图更细致来看Windows Phone分成四个Layer以下为Rich总结的四个层面CoreKernel is the indivisible minimum kernel (controlling the processor, memory and critical hardware)Kernel includes everything else that runs in the kernel (e.g. logical kernel abstractions including threads, processes, etc., networking stack, device drivers, printer drivers, graphics media drivers, KTM, ETW, etc.)CoreOS is the core (mostly user-mode) OS substrate upon which the OS itself depends (e.g. Win32, COM, OLE, RPC, WMI, DirectX, etc.)OS is the remaining set of other high-level essential and non-essential features that may, or may not, be installed by the OEM/user/etc. (e.g. Explorer, Silverlight, .NET, Media Center, IIS, etc.)WP7开发参照上图的功能层次我们可以看一下每个层面进行开发采用的环境和工具。环境开发语言开发工具部署工具应用程序层CLRC#/VBVisual Studio 2010 for Windows PhoneVisual Studio 2010 for Windows PhoneOS层Native CodeC/CVisual Studio C 2008 sp1 or other toolsPlatform Builder for Windows PhoneKernel层主要是BSPNative CodeC/CVisual Studio C 2008 sp1 or other toolsPlatform Builder for Windows Phone开发工具下载Visual Studio 2010 for Windows Phone可以通过微软网站免费下载Visual Studio C 2008 sp1是需要花钱买的Platform Builder for Windows Mobile的时候是可以公开下载的但是for Windows Phone版本只面向OEM厂商开放做ROM就是用这个工具。开发资料下载应用程序开发的资料微软提供的非常丰富推荐WP7 Jump Start VideoTraining Kit 和Developer DocumentMicrosoft Press eBook Programming Windows Phone 7OS和Driver开发这个资源只向OEM开放不过你可以这个链接获取到操作系统相关的以下资料(需要FQ相信很多对底层感兴趣的人很有帮助Windows phone 7 architecture GuideWindows phone 7 Customization GuideWindows phone 7 OEM application development GuideWP7应用程序开发相信博客园的高手们最感兴趣的还是应用程序开发即Silverlight和XNA的开发。其实在这个两天的培训中主要涉及的也是将Windows Phone 7作为一个黑盒子展开的即上面软件架构图中浅蓝色内的灰色部分应用程序开发我们从这些方面展开介绍Windows Phone 7。Platform Overview WP7的硬件标准软件架构生态系统Metro UI UI设计样式TileGlanceGo, Panaroma)Build WP7 App PPT 开发工具VS BlendPage Navigation 程序内和程序间导航Execution Model 程序生命周期休眠和墓碑Data BindingMVVM数据绑定Sensor and Gesture重力感应器陀螺仪指南针GPSXNA 2维和3维游戏Push NotificationTileToastRawMango New Feature 中文SQL后台服务【15秒每30分钟】…)详细的开发过程我想大家可以通过微软的教程进行阅读而且基本上就是和桌面应用开发一样所以如果你曾经开发过Silverlight/WPF或XNA的话那基本上不需要花费什么功夫就可以开发WP7应用。在这里我想讲几点或许对你有用的地方。1. Xaml TreeWP7中主要的LOB应用都是Silverlight应用对于没有接触过XAML的开发人员来说深刻理解它需要一个过程因为这个和WinForm的界面表达方式不一样。在Silverlight中我觉得Logical Tree和Visual Tree是非常重要的一个环节简单理解XAML就是,通过Xml的方式来构造对象再具体一点就是每个Xaml中的XmlElement元素都可以在.Net framework中找到相应的Class你每在Xaml中加入一个XmlElement等价于你在C#代码中new一个这个类的一个实例同时通过XmlAttribute来设置该对象的Property的值通过XmlElement的层级结构来体现父亲儿子的控件关系等价于你在代码中parentControl.Children.Add(childControl)更多关于Tree的信息请阅读MSDN。2. Page StackWP7的每个Silverlight应用程序由多个Page构成后退键可能在你的程序内部的不同页面跳转也可能在不同程序间跳转。在理解WP7的Page Navigation的时候可以通过Stack的方式来理解。后退键出栈。开始键包括通过开始中打开的程序和搜索键入栈。程序切换长按后退键将栈中某一个应用程序在栈中左右的页面移到栈顶。通过这样的规则可以比较方便的理解和分析在任何时候用户点击后退键将发生什么情况。还有一个事实需要说明一下在WP7中同一个应用程序在系统中只能有一个实例意味着你如果开着应用程序通过开始键再打开一个系统会把你原来那个实例杀掉。3. Data BindingData Binding是微软实现将两个对象的属性之间建立桥接关系的一种便捷方式Target和Source有三种绑定方式OneTimeOneWay和TwoWay一般来说你开发的应用程序通过MVVM的模式来进行设计将数据和界面分离然后通过Data Binding的方式自动关联界面的空间和你Model的数据。所以一般Target是你的UIElementSource是你的ViewModel当然你也可以将UIElement作为Source绑定到另外一个UIElement进行联动更多信息请参考MSDN。