'

Ключевые изменения в интерфейсе Антон Шепитько antonsh@microsoft.com.

Понравилась презентация – покажи это...





Слайд 0

Ключевые изменения в интерфейсе Антон Шепитько antonsh@microsoft.com


Слайд 1

Цели и области улучшения Развитие интерфейса


Слайд 2

Vista


Слайд 3

<= 14 Максимальное число одновременно открытых окон


Слайд 4

Сколько окон обычно открывают пользователи?


Слайд 5

0.21% Процент сессий с таскбаром справа


Слайд 6

4.97% Процент сессий, где таскбар автоматически скрывается


Слайд 7

Установки Vista Taskbar Как часто опции используются?


Слайд 8

Ключевые цели: Быстрее и Чаще То что чаще используется должно быть быстрее доступно Просто получить доступ к программам, файлам, URL с минимальным количеством движений мыши. Проще управлять окнами Возможность переключать окна быстро и без ошибок; Возможность легко позиционировать окна на экране. Проще управлять компьютером Рабочий стол отражает персональный стиль; позволяет выбрать, что важно, включая и то как и когда пользователь будет получать информацию. Ясный и легкий Интерфейс хорошо организован, легок и приятен в использовании.


Слайд 9

Windows 7 taskbar


Слайд 10

Что изменилось Больше нет панели Quick Launch Унификация старта приложения и переключения окон Не надо туда добавлять ShortCut-ы Папочки остались для совместимости Не ищите новый интерфейс для Quick Launch


Слайд 11

Мини стартовое меню для приложения Область для стандартных задач и часто используемых файлов Настраивается Доступно по правому щелчку мышью и по перетаскиванию Jump Lists Обзор


Слайд 12

Jump Lists Подробнее Места назначения (“destinations”) Задачи (“tasks”) Недавно использованные Пользовательск. категории Пользовательские задачи Стандартные задачи Прикрепленные категории


Слайд 13

Jump Lists Что за бесплатно Пользовательск. категории Места назначения (“destinations”) Задачи (“tasks”) Пользовательские задачи Стандартные задачи Недавно использованные (спасибо SHAddToRecentDocs) Прикрепленные категории


Слайд 14

Приложение может изменить свой Jump List Места назначения: Стандартные (недавно использованные, часто используемые) Пользовательские категории (приложение поставляет список) Пользовательские задачи находятся во встроенной категории - Tasks Задачи не могут быть приколоты или убраны пользователем Задачи и места назначения - это IShellItems или IShellLinks Задачи – это IShellLinks и места назначения - IShellItems Jump Lists Настройка


Слайд 15

Ярлыки, Jump Lists, управление окнами объединены в единую группу “Application User Model ID” основа для группировки Короткое название “AppID” Это строка Каждая группа на таскбаре имеет свой AppID AppID Унификация старта приложения и переключения окон


Слайд 16

AppID Кто участвует AppID


Слайд 17

По умолчанию AppID вычисляется по имени процесса Но что если… Приложение состоит из нескольких .exe, которые мы хотим сгруппировать? Ваш код хостится внутри стандартного.exe и Вы не хотите быть частью его группы? Ваше приложение запускается несколькими ярлыками с разными аргументами командной строки? …Тогда непосредственно декларируйте AppID SetCurrentProcessExplicitAppUserModelID AppID Откуда они берутся?


Слайд 18

AppID Эвристика определения AppID AppID Авт. вычисление


Слайд 19

Пульт ДУ для окна Для ключевых команд До 7 кнопок Доступ из миниокна ТaskBar Панели управления мини окнами Обзор


Слайд 20

Панели управления мини окнами Сравнение с пользовательскими задачами


Слайд 21

Реализован интерфейс New ITaskbarList3 Использовать после оконного сообщения “TaskbarButtonCreated” Создавать кнопки с помощью структуры THUMBBUTTON: typedef struct tagTHUMBBUTTON { DWORD dwMask; UINT iId; // Unique button ID UINT iBitmap; // Imagelist ID HICON hIcon; // ...or an HICON WCHAR szTip[260]; // Tooltip string DWORD dwFlags; // Enable/disable/hide/etc } THUMBBUTTON; Далее приложение получит сообщения о нажатии кнопки с ее ID Панели управления мини окнами API и использование


Слайд 22

Перекрывающие иконки (Overlay Icons) Обзор Средство для важных нотификаций Появляются поверх иконки приложения


Слайд 23

Чтобы установить перекрывающую иконку используйте ITaskbarList3: HRESULT SetOverlayIcon( HWND hwnd, HICON hIcon); Перекрывающие иконки API и использование


Слайд 24

Способ показать ход длительной операции Появляется на кнопке на TaskBar Progress Bars Обзор


Слайд 25

Чтобы использовать эту возможность используйте ITaskbarList3: HRESULT SetProgressState(HWND hwnd, TBPFLAG tbpFlag); HRESULT SetProgressValue( HWND hwnd, ULONGLONG ulCompleted, ULONGLONG ulTotal); Пользователи стандартого диалога получат эту возможность автоматически (CLSID_ProgressDialog) Progress Bars API и использование


Слайд 26

Возможность для расширения интерфейса(например MDI) Миниокна для каждого окна (документа, закладки) приложения Появляются среди миниокон приложения над TaskBar Пользовательские переключения Обзор


Слайд 27

ITaskbarList3 HRESULT RegisterTab(HWND hwndTab, HWND hwndFrame); HRESULT UnregisterTab(HWND hwndTab); HRESULT SetTabOrder(HWND hwndTab, HWND hwndInsertAfter); HRESULT SetTabActive(HWND hwndTab, HWND hwndFrame, TBATFLAG tbatFlags); Пользовательские переключения TDI/MDI дочерние окна


Слайд 28

Для разработчиков, использующих: WPF – появится в .NET 4 XAML декларация многих свойств Другие возможности WPF: например связывание с данными, векторные изображения MFC 7 – появится в Visual Studio 2010 Объектная модель поддерживающая новые возможности Windows 7 Platform SDK Windows 7 Bridge – доступ к API из managed кода Поддержка со стороны платформы Скоро:


Слайд 29

Интегрироваться с Windows 7! Понять как Ваше приложение впишется в новую идеологию Унификация запуска и переключений Jump Lists Миниокна, перекрывающие иконки, Progress Bars и т.д. TDI/MDI переключения Изучить новые API Примеры в Windows 7 Beta Platform SDK WPF поддержка в .NET 4 Что делать сегодня


Слайд 30

Windows 7 TaskBar DEMO


Слайд 31

Windows Scenic Ribbon


Слайд 32

Office 2007 Ribbon Office Button Quick Access Toolbar Tab Contextual Tab Set Contextual Tab Help Group (aka “Chunk”) Dialog Box Launcher


Слайд 33

Windows Scenic Ribbon Выходит с Windows 7, будет доступен и для Vista Win32 API, COM-based Близок по возможностям к Microsoft Office 2007 Ribbon


Слайд 34

Scenic Ribbon Controls


Слайд 35

Важно: тип приложения? Преимущества Отличный способ показать возможности Команды легко найти Пользователи быстро обучаются Классно смотрится – шанс показать себя! Отличный ресурс: Ribbon Guidelines http://msdn.microsoft.com/en-us/library/cc872782.aspx Когда использовать Ribbon?


Слайд 36

Ribbon В зависимости от потребностей 1 Office 2007 есть,  Windows style будет в 2009 Microsoft Ribbon MFC Scenic WPF Аудитория: Managed Аудитория: MFC native Аудитория: Native .NET 3.5 Win2K or newer Vista or newer Office 2007 & Windows стили Office 2007 & Windows стили1 Windows стиль Есть beta… Официальный релиз в 2009 Уже в Visual Studio 2008 SP1 Скоро… Вместе с Windows 7


Слайд 37

Схема Model View Controller Код и интерфейс развязаны Простой C++ API Архитектура Markup Organization of controls <Ribbon> <Tab> <Button … /> </Tab> </Ribbon> COM API Initialization and Events handling MyHandler::Execute(…) { DoStuff(); } Windows Scenic Ribbon Application-specific Business Logic void DoStuff() { … … }


Слайд 38

Обработчики абстрагированы от специфичных контролов Визуальный стиль автоматически выбирается на основе расположения Связанность и базовая функциональность гарантируются платформой Программная модель


Слайд 39

Windows 7 Scenic Ribbon DEMO


Слайд 40

Поиск, визуализация и организация данных Огромный рост цифровой информации Нужны мощные и простые средства поиска, организации и просмотра Два основных пути для поиска данных Просмотр по месту, контексту и т.д. Поиск по имени, метаданным и полному тексту Много способов организации данных Файлы и папки Метаданные (теги, альбомы, даты съемки и т.д.)


Слайд 41

Windows Explorer Rich Metadata Cleaner navigation Easy Previews Powerful Instant Search Arrangement Views Federated Search Libraries


Слайд 42

Библиотеки (Libraries) Люди хотят просматривать файлы безотносительно того, как они расположены по папкам Люди сохраняют данные по всему жесткому диску Половина информации (документы, изображения, музыка, и т.д.) расположены вне пользовательского профиля Большинство пользователей использует и профиль и папки вне профиля


Слайд 43

Библиотеки (Libraries) Отображение файлов из множества источников


Слайд 44

Библиотеки (Libraries) Приложение должно Поддерживать открытие и сохранение файлов в библиотеки Выбирать и просматривать содержимое библиотеки Быть в контексте местоположения файлов библиотеки Windows 7 поддерживает это при помощи Common File Dialog Native: IFileDialog Managed: System.Windows.Forms.FileDialog Shell abstractions (IShellFolder) Нового Library API


Слайд 45

Windows 7 Libraries DEMO


Слайд 46

Federated Search Информация растет на 40% год от года Данные уходят с декстопов в сеть Совместная работа Совместный доступ Нужен поиск по этой информации


Слайд 47

Federated Search


Слайд 48

Federated Search Удобно для пользователей Предпросмотр, метаданные, drag-and-drop В парадигме Windows Explorer Простая интеграция Без клиентского кода Любая серверная платформа Стандарты OpenSearch 1.1 RSS and ATOM Аутентификация Windows Integrated


Слайд 49

Federated Search Поисковые провайдеры должны Принимать URL запросы Пример: http://www.contoso.com/q={searchTerms} Возвращать результаты в форме rich RSS


Слайд 50

Изменения на уровне платформы Антон Шепитько antonsh@microsoft.com


Слайд 51

Системные активности которые не были запущены непосредственно пользователем Сервисы, Задачи по расписанию, некоторые COM процессы и т.д. Встречаются повсеместно: Индексирование при поиске Проверки по требованиям безопасности Управление сетью Управление устройствами Фоновые процессы


Слайд 52

Влияние фоновых процессов


Слайд 53

Внутренняя оценка 49 сервисов (во время загрузки) Не критичны для загрузки Критичны и нужны для своих сценариев Влияние фоновых процессов


Слайд 54

Влияние фоновых процессов Сравнивая чистую Windows Vista с OEM версией: Добавили 10 сервисов


Слайд 55

Сервисы и задачи


Слайд 56

Auto_Start сервис стартует при загрузке и никогда не завершается Чаще всего используется Прост для разработчиков — всегда работает! Проблемы Увеличивает время загрузки Много Auto_Start сервисов ждут редких событий Windows Services: Auto_Start


Слайд 57

Trigger-Start запуск сервиса при необходимости SCM регистрируется на события: Подключение устройства Получение/смена IP адреса Подключение или выход и домена Изменение групповых политик Другое SCM стартует или завершает зарегистрированные сервисы Windows 7: Сервисы Trigger-Start


Слайд 58

Самоостановка Если нет запросов и задач и Trigger-Start или Demand_Start Выключение компьютера Не используйте SERVICE_ACCEPT_SHUTDOWN без необходимости Не надо чистить память если сервис - standalone process Старайтесь завершиться не более чем за 200ms Завершение работы сервисов


Слайд 59

Никаких блокирующих действий! WaitForSingleObject, CreateFile, RPCs Всю работу в thread pool Для кодов возврата используйте инструкции MSDN Service Control Handler


Слайд 60

Календарь Загрузка Logon Idle Запись в Event log Блокировка/ разблокировка компьютера Триггеры для задач


Слайд 61

Idle condition Остановиться при выходе из Idle Только при работе от сети Остановка при работе от батареи Выход из sleep При сетевых соединениях Условия для задач


Слайд 62

IDLE!!! Батарея Сеть Рекомендации


Слайд 63

Почему потребление энергии важно учитывать? Потребление в ваттах 80386SX Core 2 Extreme QX6700


Слайд 64

Во многом дело в ПО


Слайд 65

Понять, что ПО сильно влияет на потребляемую компьютером энергию Уменьшить утилизацию ресурсов IDLE Приспособить приложение к окружению Использовать правильные инструменты Правильно обрабатывать переходы между состояниями энергосбережения Проверить и замерить Перейти к шагу 2 Разработка энергетически эффективных приложений


Слайд 66

Дополнительные ресурсы Application Best Practices for Windows Vista http://www.microsoft.com/whdc/system/pnppwr/powermgmt/PM_apps.mspx http://msdn.microsoft.com/en-us/magazine/cc163386.aspx Power Event Monitoring Tool Sample VS project for registering and receiving power notifications http://www.microsoft.com/whdc/system/pnppwr/powermgmt/PM-apps_samp.mspx Making Your WPF Apps Power-Aware http://msdn.microsoft.com/en-us/magazine/cc163386.aspx “Power To The People” C# interop for most Vista and later power APIs http://www.code-magazine.com/articleprint.aspx?quickid=0512102&printmode=true Windows Performance Tools Kit (XPerf) http://www.microsoft.com/whdc/system/sysperf/perftools.mspx PwrTest Available in Windows Driver Kit (WDK) http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx


Слайд 67

Windows Web Services API Работа с web services из native кода Win32 API Не требует .Net Framework Работает со стеком WS-* SOAP Windows Communication Foundation (WCF) ASP .Net XML Web Services (ASMX) Не Microsoft реализации Системный компонент Windows 7 Доступен на Windows XP/Vista/2003/2008


Слайд 68

WWSAPI и WCF WWSAPI пара к WCF Используйте WCF в управляемом коде Используйте WWSAPI в нативном коде Похожие программные модели XML, Message, Channels (message-oriented) Service Model (function-oriented)


Слайд 69

Web Services Client Web Service Endpoint A B C Endpoint A B C Endpoint A B C Endpoint A B C Service Proxy WSDL XSD Service Host Code Generator Code Generator


Слайд 70

Уровни Windows Web Services API Ваш код Network I/O Service Model Channel Layer XML Layer Errors Heap Async Context


Слайд 71

Service Model Автоматически управляет коммуникацией Service Proxy на клиенте Service Host на сервере Обмен сообщениями – это вызов функций Клиент вызывает сгенерированные функции Сервер реализует callback Управляется контрактом WsUtil.exe генерирует C код из WSDL/XSD


Слайд 72

Windows Web Services API Ваш код Network I/O Service Model Channel Layer XML Layer Errors Heap Async Context


Слайд 73

Channel Layer Полный контроль над коммуникацией (Web Services вместо C) Сообщения Посланные или полученные данные Состоит из заголовка и тела Канал Абстракция для протокола обмена сообщениями Унифицированный API для 3 транспортов (HTTP, TCP, UDP) Свойства для тюнинга


Слайд 74

Windows Web Services API Ваш код Network I/O Service Model Channel Layer XML Layer Errors Heap Async Context


Слайд 75

XML Layer Полный доступ к содержимому сообщений Унифицированный API для кодирования Text, Binary, MTOM SOAP подмножество XML 1.0 XmlBuffer Хранение XML в памяти XmlReader and XmlWriter Последовательный доступ


Слайд 76

Поддерживаемые конфигурации Transports HTTP, TCP, UDP XML Encodings Text, Binary, and MTOM Envelope SOAP 1.1 and 1.2 Addressing WS-Addressing 0.9 and 1.0 Metadata WSDL 1.1, XML Schema 1.0 WS-MetadataExchange 1.1 WS-Transfer March 2006 Security WS-Security 1.0 and 1.1 (partial) WS-Trust February 2005 and 1.3 (partial) WS-SecureConversation 1.1 and 1.3 (partial) Policy WS-Policy from March 2006 and v.1.2 WS-Policy Attachment from March 2006 and 1.2 WS-SecurityPolicy 1.1


Слайд 77

Производительность – TCP


Слайд 78

Производительность – HTTP


Слайд 79

Additional Resources Networking Developer Center on MSDN http://msdn.microsoft.com/network/ Connect https://connect.microsoft.com/wndp/ Blogs http://blogs.msdn.com/nikolad/ http://blogs.msdn.com/haoxu/ http://blogs.msdn.com/wndp/ Email nikola.dudar@microsoft.com


Слайд 80

… Ваш компьютер знает где он и настраивает себя в связи со своим положением? Погода новости события Время …Ваш компьютер может чувствовать окружающую среду и подстраиваться под текущие условия? Подсветка дисплея в зависимости от окружающего света Оптимизирует элементы интерфейса для лучшей читаемости Что если…?


Слайд 81

Устройства позиционирования выставляются как виртуальные COM порты Эксклюзивный доступ для 1 приложения Не безопасно Закрытые форматы данных и протоколы общения GPS не работает в помещении Сложно использовать несколько технологий вместе Сенсоры интегрированы в решения Приложения должны знать особенности «железа» сенсора Ограниченное распространение и использование Ограничения сенсоров сегодня


Слайд 82

Windows Sensor And Location Platform Унифицированная модель драйверов для всех видов сенсоров Физические (GPS, свет) Логические (Wi-Fi триангуляция) Стандартный API для доступа к сенсорам Sensor API: C++/COM Location API: C++/COM, IDispatch


Слайд 83

Архитектура доступа к сенсору UMDF Sensor Driver Sensor Class Extension Sensor API Приложение Можно посмотреть из Control Panel Устройство Приложение User System


Слайд 84

Позиционирование UMDF Sensor Driver Sensor Class Extension Sensor API Gadget or Script Приложение Можно посмотреть из Control Panel Устройство Location API Location IDispatch Interface Приложение UMDF Sensor Driver Sensor Class Extension Логический сенсор (Триангуляция) User System


Слайд 85

Единый API для ответа на вопрос “Где я?” Не зависим от провайдера/устройства Можно использовать даже в скрипте Автоматический переход между провайдерами Приоритет у самого точного Одновременный доступ из множества приложение Местоположение по умолчанию Задается пользователем, когда более ничего не доступно Преимущества


Слайд 86


×

HTML:





Ссылка: