Платформа разработки Windows Phone 7

1,539 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,539
On SlideShare
0
From Embeds
0
Number of Embeds
394
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Платформа разработки Windows Phone 7

  1. 1. ПлатформаразработкиWindows Phone 7Михаил ЧерномордиковЭксперт по стратегическим технологиямmik@microsoft.com, twitter: @mixen
  2. 2. 
  3. 3. Принципы
  4. 4. UX
  5. 5. 9
  6. 6. Начало: стартовый экранНавигация: страницыZ-order
  7. 7. Платформа
  8. 8. Capacitive touch4 or more contact pointsSensorsA-GPS, Accelerometer, Compass, Light, Proximity, GyroCamera5 mega pixels or moreMultimediaCommon detailed specs, Codec accelerationMemory256MB RAM or more, 8GB Flash or moreGPUDirectX 9 accelerationCPUQualcomm MSM7x30, MSM8x55 800Mhz or higherHardware buttons | Back, Start, Search
  9. 9. Applications Your App UI and logic Frameworks Silverlight XNA HTML/JavaScript CLRApp Model UI Model Cloud Integration Xbox LIVEApp management Shell frame BingLicensing Session manager LocationChamber isolation Direct3D Push notificationsSoftware updates Compositor Windows Live IDKernelSecurity Hardware BSPNetworking A-GPS Accelerometer Compass Light ProximityStorage Media Wi-Fi Radio Graphics Hardware Foundation
  10. 10.     
  11. 11. Windows Phone Frameworks Launchers & Windows Phone Camera Device Integration Choosers ControlsPhoneApplicationFrame PhoneApplicationPage PushNotification WebBrowserControl Sensors Silverlight Presentation and Media XNA Frameworks for GamesControls Drawing IsolatedStorage Drawing GamerServices Shapes Markup Media Navigation Media Input Graphics Audio Content Application Object Common Base Class LibraryRuntime Resources Globalization Reflection Location Text IO Net DiagnosticsSecurity Threading Collections ComponentModel Configuration ServiceModel Linq
  12. 12. Tombstoning Происходит когда приложение теряет фокус Возможные причины: кнопка «Назад», кнопка «Старт», клик на Toast- уведомление, запуск системных диалогов, телефонный звонок Обработчики событий в App.xaml.csСобытия Application_Launching, Application_Activated, Application_Deactivated, Application_Closing
  13. 13. Windows Phone Ваши веб-сервисы Custom Web Service Windows Существующие сервисы Phone Application Сервисы Microsoft Frameworks Cloud integration client services Location Service Notification ServiceAPI для интеграции с существующими сервисамиНовые сервисы: специально для Windows Phone 7Сервисы-посредники и готовые сценарии
  14. 14. Windows Phone Your Web Service Custom Web Service Existing Web Services Microsoft Services Microsoft.Phone.Notification Notification Service Push client serviceПока единственный способ «разбудить» приложениеДоставляем информацию, экономя батарею
  15. 15. Silverlight и XNA
  16. 16. Современные Высокопроизводительнаяприложения, игровая платформауправляемые событ-ми. Быстрое создание многоэкранныхБыстрое создание 2D и 3D игрбогатых графических Богатая content pipelineприложений Устоявшаяся технологияHTML/Javascript для Xbox,Устоявшаяся, надѐжная, Windows, и Zune / WP7популярная технологияПриложения Игры (и игры) (и приложения)
  17. 17. XNA Game Studio 4.0 Эффективная разработки с .NET и C# Знакомая удобная среда разработки Intellisense Интегрированная среда build/deploy/debug MSBuild engine для автоматизации процесса сборки
  18. 18. Windows Phone 7 Использование .NET Только защищѐнный код Как используется XNA Game Studio 4.0 – только C# .NET/XNA 850+ игр на XBLA/XBLIG Игры публикуются через порталы
  19. 19. Разработаны с Frameworks Опробованный Frameworks В будущее WP7 – с Frameworks требованием успех на игровых управляемым designedпроизводителности designed сценариях designed кодом!for performance for performance for performance 3+ года профилирования и Эффективная работа наНет лишней сборки мусора оптимизации WP7 Оптимизированные мат.библиотеки API с переходом на нативный код
  20. 20. Игры Ваш код Ваш контент Компоненты Starter KitsExtended Framework Application Model Content PipelineCore Framework Graphics Audio Input Math Storage Networking Gamer Services* Gamer ServicesПлатформа DirectX .NET CF
  21. 21. 
  22. 22.       
  23. 23. XNA Framework разрабатываласькросс-платформеннойМеньшее время разработки -большее кол-во клиентовСинхронизация проектовмежду платформами
  24. 24.  
  25. 25. Importers Типы Название Класс Выходной файлов импортера импортера класс .bmp, .dds, XNA Texture TextureImporter TextureContent .dib, .hdr, Importer .jpg, .pfm, .png, .ppm, .tga. .fx XNA Effect EffectImporter EffectContent Importer .x XNA X File Ximporter NodeContent Importer .fbx XNA FbxImporter NodeContent Autodesk FBX Importer .xml XNA XML XmlImporter Object Importer .xap XNA XACT - - Project Importer
  26. 26. Начни с простого и усложняй XNA Framework Game Loop Example protected override void Update(GameTime gameTime) { // Allows the game to exitОбновление - отрисовка if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)Программная модель, this.Exit();совместимая с предыдущимивыпусками XNA // TODO: Add your update logic hereУлучшенная base.Update(gameTime);производительность }Интеграция с лучшими protected override void Draw(GameTime gameTime)практиками разработки для WP7 { GraphicsDevice.Clear(Color.CornflowerBlue);Транслируются в существующие // TODO: Add your drawing code hereмодели XNA base.Draw(gameTime);Например, входящий звонок }
  27. 27. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect
  28. 28. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect Vertex Cost Pixel Cost• 0-3 источников света No lighting 5 1• Освещение Blinn-Phong One vertex light 40 1• Текстурирование Three vertex lights 60 1• Туман Three pixel lights 18 50• Цвет вершин + Texture +1 +2 + Fog +4 +2
  29. 29. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect• Для lightmaps, detail textures, decals Vertex Cost Pixel Cost• Смешивание двух текстур Two Textures 7 6• Раздельные текстурные координаты + Fog +4 +2• 2X модуляция (A*B*2)• Низкая «стоимость»
  30. 30. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect Vertex Cost Pixel Cost <, <=, >=, > 6 6• Для billboards и imposters ==, != 6 10• Добавляет операцию alpha test + Fog +4 +2• «Дешевый» эффект
  31. 31. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect Vertex Cost Pixel Cost• Анимация моделей One vertex light 55 4• Обновление костей на CPU Three vertex lights 75 4• Vertex skinning на GPU Three pixel lights 33 51• Поддерживает до 72 костей + Two bones +7 +0• 1, 2, или 4 веса для вешины + Four bones +13 +0 + Fog +0 +2
  32. 32. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect Vertex Cost Pixel Cost One light 32 6• Диффузная карта + карта среды Three lights 36 6• «Дешевый» способ сделать освещение + Fresnel +7 +0• Эффект Френеля + Specular +0 +2 + Fog +0 +2
  33. 33. Кросс-платформенное APIXbox 360 Controllers(Xbox/Windows)Keyboard Touch Input Handling(Xbox/Windows/Windows Phone 7) var touchCollection = TouchPanel.GetState(); Touch API //...Для совместимости есть на всех foreach (var touchLocation in touchCollection)платформах {(не нужно #ifdef) if (touchLocation.State == TouchLocationState.Released)На Windows Phone 7 {и Windows поддерживает Multipoint //...Учитывает ориентацию и разрешение } } СенсорыАкселерометр, GPS
  34. 34. Audio Capture Example public void EventDrivenCapture() { mic = Microphone.Default; Захват и buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)]; mic.BufferReady += new EventHandler(OnBufferReady); воспроизведение DynamicPlayback = new DynamicSoundEffectInstance(mic.SampleRate, AudioChannels.Mono); } public void OnBufferReady(object sender, EventArgs args)Проигрывание звуковых файлов { // Get the latest captured audio.Pitch, volume, pan audio int duration = mic.GetData(buffer);Синтез и буферизация // Do some post-capture processing and playback. MakeMeSoundLikeARobot(buffer, duration); DynamicPlayback.SubmitBuffer(buffer);Запись звука }Вибрация Audio Playback Example // Load a sound effect from a raw stream Microphone/Bluetooth SoundEffect effect1 = Support SoundEffect.FromStream(GetStreamFromTheWeb("http://url.wav")); Воспроизведение на наушниках effect1.Play(); Ввод с микрофона // Create dynamic audio on the fly byte[] fluteSound = GetFluteNote(); effect2 = new SoundEffect(fluteSound, SampleRate, AudioChannels.Stereo); SoundEffectInstance instance = effect2.CreateInstance(); instance.Pan = -1; instance.Pitch = 1.5f; instance.Play();
  35. 35. URI Song Playback ExampleПоиск и воспроизв.музыки // Constructs a song from a URI Uri mediaStreamUri = newАвтоматическое управление Uri("http://song.asx");списком медиа в игре Song streamedSong = Song.FromUri("Song",Можно воспроизводить по mediaStreamUri);URI/URL // Play the song MediaPlayer.Play(streamedSong);Picture Enumeration and PlaybackПоддержка выбора.публикации Retrieve Image DataфотографийВоспроизведение видео MediaLibrary media = new MediaLibrary(); // Get the JPEG image dataПоддержка Video Player API Stream myJpegImage =Показать или убрать элементы ReadAndModifyPicture(somePicture);управления // Save texture to Media Library media.SavePicture("Awesome", myJpegImage);
  36. 36. Windows Phone иXbox Live
  37. 37. GamertagДрузьяДостижения Windows Phone впервые расширяет бренд Xbox LIVEРазмещение вне консолипродуктовойрекламы Windows Phone – первый шаг к повсеместным игровым сервисам Это может быть вашим конкурентным преимуществом!
  38. 38. mobilegames@microsoft.com
  39. 39. 1.2.3.
  40. 40.  
  41. 41. http://create.msdn.com/gamedevelopment
  42. 42. Мини-игры
  43. 43. Примеры
  44. 44. Starter Kits
  45. 45. Mango
  46. 46. 
  47. 47. 
  48. 48.   
  49. 49.     
  50. 50.    
  51. 51. Мультизадачность Быстрое переключение Быстрое восстановление
  52. 52. Загружено или Runningвосстановлено Activated DeactivatedПриложение впамяти, ресурсы«отключены»,потокиприостановлены Dormant Tombstoned Автоматическое сохранение состояния
  53. 53. Задача РеализацияПереключение задач Fast App Switchingпользователем сигналы поУведомления и Background NotificationрасписаниюЗагрузка файлов Background TransferУведомления о событиях Push NotificationsРегулярные действия по Periodic Background Agentрасписанию; toast/tile updates;data pre-caching; etc.Проигрывание музыки Background Audio PlayerСинхронизация данных Resource-Intensive AgentGPS-tracking Run under the lock screen
  54. 54. Можно Нельзя Tiles  Показывать UI Toast  XNA Местоположение  Микрофон и камера Сеть  Сенсоры Файлы БД Аудио (через спец. агентов) …
  55. 55. 
  56. 56.     
  57. 57.      
  58. 58. 
  59. 59.   
  60. 60. Приложения хранят данные в Isolated Storage Настройки App Root Folder Неструктурированные данные Структурированные данные в БД SQL Server CE Установка Каталог Package приложения DB Файл БД Manager App Data Folder Управление App файлами WP7 Isolated Storage APIs Настройки DB Файлы приложения Файл БД
  61. 61. var query = from w in db.Wines Custom Data App where w.Country == “USA" Context Objects select w.Name;.Call System.Linq.Queryable.Select( .Call System.Linq.Queryable.Where( Object Identity Change Update.Constant(Table(Wines)), (.Lambda #Lambda1)), (.Lambda #Lambda2)) Materialization Management Tracking Processing.Lambda #Lambda1(db.Wines $w) { $w.Country == “USA" } .Lambda#Lambda2(w.Country $w) { $w.Name }select Name Core ADO.NET (System.Data) SQLCE ADO.NET Provider (System.Data.SqlServerCe)from Wineswhere Country = “USA” SQL CE DB
  62. 62. Имя и Остальные Встречи и фото данные события контактаWindows Live Social YES YES YESExchange accounts YES YES YES(Exchange и Google, etc.)Адресная книга от YES YES n/aоператораFacebook YES NO NOДругие сети в People NO NO NOHub (e.g., Twitter)
  63. 63. Новые инструментыразработкиуже в этом месяце!
  64. 64.      
  65. 65. http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook- programming-windows-phone-7-by-charles-petzold.aspx
  66. 66. ПлатформаразработкиWindows Phone 7Михаил ЧерномордиковЭксперт по стратегическим технологиямmik@microsoft.com, twitter: @mixen

×