Windows Phone 7 开发实例—— 构建高质量的 WP7 应用程序李政 - 小米科技天翼空间应用工厂专家讲坛Agenda产品定义应用程序架构MVVM单元测试用户界面Panorama VS Pivot 站在巨人的肩膀上性能启动性能数据库性能UI 性能内存泄露错误报告应用程序架构用户界面错误报告产品定义性能产品定义应用程序架构用户界面错误报告产品定义性能方向比努力更重要4腾讯 : 即时通讯李彦宏 : 搜索马云 :电子支付成功的产品强大的产品经理强大的工程师成功的产品高质量的产品6应用程序架构应用程序架构用户界面错误报告产品定义性能传统的 Silverlight 应用程序架构8ViewModel(domain objects)XAML(UI layout)Code Behindupdates, may observe代码示例9XAML: window layout + named controls< TextBox x:Name=“City>/ ”< ComboBox x:Name=“CountryList” SelectionChanged>/ …=/Code behind: event handlers and manipulating the controlsvoid CountryList_SelectionChanged)…({ City.Text = GetCity(CountryList.SelectedItem as Country);}MVVM 10ModelViewSomething Controller? Presenter?Code Behind?MVVM (Model-View-ViewModel)11Model(domain objects)View(input, output)ViewModel(UI state)updates, may observeData BindingView.DataContext = ViewModel;深入 MVVM 源出处:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx 微软官方开源类库 Prism :http://compositewpf.codeplex.com/ MVVM 在 WP7 中的应用实例:http://windowsphonegeek.com/articles/MVVM-in-real-life-Windows-Phone-applications-Part1 12单元测试13单元测试14用户界面应用程序架构用户界面错误报告产品定义性能Panorama VS Pivot Panorama 强调多种数据源的聚合,像一个主页去到不同的地方,商店,人脉。 Pivot 对相似数据的过滤,短信,邮件。 http://create.msdn.com/zh-CN/education/quickstarts/Panorama_and_Pivot_Controls#ChoosingPivotPanorama 16Panorama VS Pivot17 给用户与内置应用一致的体验。 让用户觉得每个小细节都处理的很用心。站在巨人的肩膀上Windows Phone SDK 7.1Silverlight Toolkit for WPCoding4funToolkit for WP· AdControl· Border· Button· Canvas...