Your SlideShare is downloading. ×
  • Like
Платформа разработки Windows Phone 7
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 1,303 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,303
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ПлатформаразработкиWindows Phone 7Михаил ЧерномордиковЭксперт по стратегическим технологиямmik@microsoft.com, twitter: @mixen
  • 2. 
  • 3. Принципы
  • 4. UX
  • 5. 9
  • 6. Начало: стартовый экранНавигация: страницыZ-order
  • 7. Платформа
  • 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. 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.     
  • 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. Tombstoning Происходит когда приложение теряет фокус Возможные причины: кнопка «Назад», кнопка «Старт», клик на Toast- уведомление, запуск системных диалогов, телефонный звонок Обработчики событий в App.xaml.csСобытия Application_Launching, Application_Activated, Application_Deactivated, Application_Closing
  • 13. Windows Phone Ваши веб-сервисы Custom Web Service Windows Существующие сервисы Phone Application Сервисы Microsoft Frameworks Cloud integration client services Location Service Notification ServiceAPI для интеграции с существующими сервисамиНовые сервисы: специально для Windows Phone 7Сервисы-посредники и готовые сценарии
  • 14. Windows Phone Your Web Service Custom Web Service Existing Web Services Microsoft Services Microsoft.Phone.Notification Notification Service Push client serviceПока единственный способ «разбудить» приложениеДоставляем информацию, экономя батарею
  • 15. Silverlight и XNA
  • 16. Современные Высокопроизводительнаяприложения, игровая платформауправляемые событ-ми. Быстрое создание многоэкранныхБыстрое создание 2D и 3D игрбогатых графических Богатая content pipelineприложений Устоявшаяся технологияHTML/Javascript для Xbox,Устоявшаяся, надѐжная, Windows, и Zune / WP7популярная технологияПриложения Игры (и игры) (и приложения)
  • 17. XNA Game Studio 4.0 Эффективная разработки с .NET и C# Знакомая удобная среда разработки Intellisense Интегрированная среда build/deploy/debug MSBuild engine для автоматизации процесса сборки
  • 18. Windows Phone 7 Использование .NET Только защищѐнный код Как используется XNA Game Studio 4.0 – только C# .NET/XNA 850+ игр на XBLA/XBLIG Игры публикуются через порталы
  • 19. Разработаны с Frameworks Опробованный Frameworks В будущее WP7 – с Frameworks требованием успех на игровых управляемым designedпроизводителности designed сценариях designed кодом!for performance for performance for performance 3+ года профилирования и Эффективная работа наНет лишней сборки мусора оптимизации WP7 Оптимизированные мат.библиотеки API с переходом на нативный код
  • 20. Игры Ваш код Ваш контент Компоненты Starter KitsExtended Framework Application Model Content PipelineCore Framework Graphics Audio Input Math Storage Networking Gamer Services* Gamer ServicesПлатформа DirectX .NET CF
  • 21. 
  • 22.       
  • 23. XNA Framework разрабатываласькросс-платформеннойМеньшее время разработки -большее кол-во клиентовСинхронизация проектовмежду платформами
  • 24.  
  • 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. Начни с простого и усложняй 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. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect
  • 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. 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. BasicEffect DualTextureEffect AlphaTestEffect SkinnedEffect EnvironmentMapEffect Vertex Cost Pixel Cost <, <=, >=, > 6 6• Для billboards и imposters ==, != 6 10• Добавляет операцию alpha test + Fog +4 +2• «Дешевый» эффект
  • 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. 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. Кросс-платформенное 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. 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. 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. Windows Phone иXbox Live
  • 37. GamertagДрузьяДостижения Windows Phone впервые расширяет бренд Xbox LIVEРазмещение вне консолипродуктовойрекламы Windows Phone – первый шаг к повсеместным игровым сервисам Это может быть вашим конкурентным преимуществом!
  • 38. mobilegames@microsoft.com
  • 39. 1.2.3.
  • 40.  
  • 41. http://create.msdn.com/gamedevelopment
  • 42. Мини-игры
  • 43. Примеры
  • 44. Starter Kits
  • 45. Mango
  • 46. 
  • 47. 
  • 48.   
  • 49.     
  • 50.    
  • 51. Мультизадачность Быстрое переключение Быстрое восстановление
  • 52. Загружено или Runningвосстановлено Activated DeactivatedПриложение впамяти, ресурсы«отключены»,потокиприостановлены Dormant Tombstoned Автоматическое сохранение состояния
  • 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. Можно Нельзя Tiles  Показывать UI Toast  XNA Местоположение  Микрофон и камера Сеть  Сенсоры Файлы БД Аудио (через спец. агентов) …
  • 55. 
  • 56.     
  • 57.      
  • 58. 
  • 59.   
  • 60. Приложения хранят данные в Isolated Storage Настройки App Root Folder Неструктурированные данные Структурированные данные в БД SQL Server CE Установка Каталог Package приложения DB Файл БД Manager App Data Folder Управление App файлами WP7 Isolated Storage APIs Настройки DB Файлы приложения Файл БД
  • 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. Имя и Остальные Встречи и фото данные события контакта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. Новые инструментыразработкиуже в этом месяце!
  • 64.      
  • 65. http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook- programming-windows-phone-7-by-charles-petzold.aspx
  • 66. ПлатформаразработкиWindows Phone 7Михаил ЧерномордиковЭксперт по стратегическим технологиямmik@microsoft.com, twitter: @mixen