Разработка приложений для Windows 7

32
Разработка приложений для Windows 7 Konstantin Kosinsky Architect Microsoft Innovation Center Blog: http://dev.net.ua/blogs/kosinsky

description

Разработка приложений для Windows 7. Konstantin Kosinsky Architect Microsoft Innovation Center Blog: http://dev.net.ua/blogs/kosinsky. Windows 7 построена на базе Windows Vista. - PowerPoint PPT Presentation

Transcript of Разработка приложений для Windows 7

Page 1: Разработка приложений для  Windows 7

Разработка приложений для Windows 7

Konstantin KosinskyArchitectMicrosoft Innovation CenterBlog: http://dev.net.ua/blogs/kosinsky

Page 2: Разработка приложений для  Windows 7

Few Changes: Most software that runs on Windows Vista will run on Windows 7 - exceptions will be low level code (AV,

Firewall, Imaging, etc). Hardware that runs Windows Vista well will run Windows 7 well.

Windows 7

Few Changes: Focus on quality and reliability improvements

Windows 7 построена на базе Windows Vista

Deep Changes: New models for security, drivers, deployment, and

networking

Page 3: Разработка приложений для  Windows 7

Decrease

MemoryReference set, Graphics

Disk I/ORegistry Reads, Indexer

PowerDVD Playback, Panel, Timers

Increase

SpeedFaster BootDevice Ready

ResponsivenessStart menu,

TaskbarScale

256 processors

Ответ на вызовы

Page 4: Разработка приложений для  Windows 7

Эффективность энергопотребления

Keep idle and stay idleМинимизация работающих процессов и задачМинимизация фоновых процессов

0 20 40 60 80 100

- 5.00

10.00 15.00 20.00 25.00 30.00 35.00 40.00

System Power vs. CPU Uti-lization(Idle)

CPU Utilization (%)To

tal

Syste

m P

ow

er

(Watt

s)

+10% CPU => +1.25W +1.25W => -8.3% battery

Page 5: Разработка приложений для  Windows 7

Парковка ядер

Socket 0

Core 0

Core 1

Core 0

Core 1

Socket 1

Core 1

Core 0

Core 0

Core 1

Нагрузка

Page 6: Разработка приложений для  Windows 7

Что может сделать разработчик?

Trigger-Started ServicesTimer Coalescing

Timer tick15.6 ms

Periodic Timer Events

Windows 7

Vista

Page 7: Разработка приложений для  Windows 7

Демо

Page 8: Разработка приложений для  Windows 7

Кнопки панели задач

Консолидация:Панели быстро запускаОбласти нотификацииИконок рабочего столаЗапущенных приложений

RunningNot

running

Multiple windows + hoverActive

Page 9: Разработка приложений для  Windows 7

Как окна группируются?

ApplicationIDЭто строка, а не GUID

Ограничение в 128 символовСоглашение по именованиб - Company.Product.SubProduct.Version

По умолчанию: Имя процессаНеобходимость модификации:

Несколько процессов, одно приложениеОдин исполняемый файл, много приложений

Page 10: Разработка приложений для  Windows 7

Управление Application Id

На уровне процесса - действует на все окна:

#include <windows.h>#pragma comment (lib, "shell32.lib")

SetCurrentProcessExplicitAppUserModelId(L"Microsoft.Samples.AppId1");

Windows7Application.SetCurrentProcessAppId(

"Microsoft.Samples.AppId1");

Page 11: Разработка приложений для  Windows 7

Application Id окна

PROPVARIANT pv;InitPropVariantFromString(

L"Microsoft.Samples.AppId2", &pv);IPropertyStore *pps;HRESULT hr = SHGetPropertyStoreForWindow(

hWnd, IID_PPV_ARGS(&pps));pps->SetValue(PKEY_AppUserModel_ID, pv);

myForm.SetAppId("Microsoft.Samples.AppId2");

Page 12: Разработка приложений для  Windows 7

Jump Lists

Destinations(“nouns”)

Tasks(“verbs”)

Known categories

Custom categories

User Tasks

Taskbar Tasks

Pinned category

Page 13: Разработка приложений для  Windows 7

Управление Jump ListШаг 1: Ассоциируем тип файлов

Ассоциируем приложение с расширение файловИспользуем common file dialogsИспользуем recent document API

SHAddToRecentDocs(SHARDW_PATH, "file.ext");

RH.RegisterFileAssociations(...);OpenFileDialog ofd = ...;ofd.ShowDialog();JumpListManager jlm = ...;jlm.AddToRecent("file.ext");

Page 14: Разработка приложений для  Windows 7

Управление Jump ListШаг 2: Добавляем задания

IObjectCollection* poc = ...;IShellLink* task = ...;poc.AddObject(task);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AddUserTasks(poa);pcdl.CommitList();

JumpListManager jlm = ...;jlm.AddTask(new ShellLink { Path=..., ... });

Page 15: Разработка приложений для  Windows 7

Управление Jump ListШаг 3: Добавляем категории

IObjectCollection* poc = ...;IShellItem* item = ...;poc.AddObject(item);ICustomDestinationList* pcdl = ...;pcdl.BeginList(...);IObjectArray* poa = ... poc;pcdl.AppendCategory(L"Sales", poa);pcdl.CommitList();JumpListManager jlm = ...;jlm.AddCustomDestination( new ShellItem { Path=..., Category=... });

Page 16: Разработка приложений для  Windows 7

Thumbnail Toolbars

Управление приложением с панели задач

Page 17: Разработка приложений для  Windows 7

Создание Thumbnail Toolbars

UINT wm_tbc = RegisterWindowMessage("TaskbarButtonCreated");

MSG m; GetMessage(..., &m);if (m.message == wm_tbc) { ITaskbarList3* ptl = ...; THUMBBUTTON btn = {...}; ptl->ThumbBarAddButtons(m.hWnd, 1, &btn);}ThumbButtonManager tbm = ...;tbm.CreateThumbButton(...).Clicked += ...;

Page 18: Разработка приложений для  Windows 7

Прогресс и уведомления

Область уведомлений теперь контролируется пользователемИспользуйте кнопки панели задача для отображения прогресса и уведомлений

Page 19: Разработка приложений для  Windows 7

Прогресс и уведомления

ITaskbarList3* ptl = ...;ptl->SetOverlayIcon( hwnd, hicon, L"Accessible Description");ptl->SetProgressState(hwnd, TBPF_NORMAL);for (int i = 0; i < MAX; ++i) { ptl->SetProgressValue(hwnd, i, MAX);}myForm.SetTaskbarOverlayIcon(icon, "...");ProgressBar pb = ...;pb.SetTaskbarProgress();

Page 20: Разработка приложений для  Windows 7

Live Thumbnail Clip

Page 21: Разработка приложений для  Windows 7

Управление Live Thumbnails

DwmSetWindowAttribute( ...,DWMWA_HAS_ICONIC_BITMAP,...);DwmSetWindowAttribute(...,DWMWA_FORCE_ICONIC_REPRESENTATION,...);/* in the WndProc */case WM_DWMSENDICONICTHUMBNAIL: HBITMAP hbm = ...; DwmSetIconicThumbnail(hwnd, hbm, ...);CustomWindowsManager cwm = ...;cwm.ThumbnailRequested += (o,e)=>e.Bitmap=b;

Page 22: Разработка приложений для  Windows 7

Демо

Page 23: Разработка приложений для  Windows 7

Windows Scenic RibbonApplication

MenuQuick Access Toolbar

Tab Contextual Tab SetContextual Tab

Help

Group (aka “Chunk”)

Dialog Launcher

Page 24: Разработка приложений для  Windows 7

Варианты ленточного интерфейса

Microsoft’s Ribbon Strategy

MFC ScenicWPF

Target:Managed

Target:MFC native

Target:Native

Needs .NET 3.5 SP1

Win2K or newer

Vista or newer

Office 2007 & Windows styles

Office 2007 & Windows styles1

Windows visual style

Official release in 2009

Available now in Visual Studio 2008 SP1

Coming soon…Ships with Windows 7

Page 25: Разработка приложений для  Windows 7

Демо

Page 26: Разработка приложений для  Windows 7

Multi-touch Is Here!Hardware

Software

Consumers

Page 27: Разработка приложений для  Windows 7

Windows 7 ReleaseNET 4.0 / Surface 2.0 Release

Surface HardwareWindows 7

Surface HardwareWindows

VistaWindows 7

NativeWin32

Application

Touch Development Roadmap

WPF 3.5

Surface SDK1.0

Managed Wrapper and

Interop

Managed Wrapper and Interop

WinForms Application

WPF 3.5 SP1

WPF 4.0

Surface SDK 2.0

WPF Application

Surface Application

Multi-Touch Controls

Multi-Touch API

Surface Multi-Touch Controls &

API

Multi-Touch API

Multi-Touch API and Controls

Page 28: Разработка приложений для  Windows 7

Good Better BestAPIs •Panning/zoom

gestures•Right click gesture

•Gesture notifications•Pan/zoom/rotate

•Raw touch data•Manipulation and Inertia processors

Native Win32

•Controls with standard scrollbars

•WM_GESTURE message

•WM_TOUCH•COM based Manipulation and Inertia Processors

WPF •WPF 4.0 pan support in ScrollViewer

•Gesture events• Inertia configuration

•Touch events•Manipulation and Inertia Processors

WinForms

•Controls with standard scrollbars

•WM_GESTURE message•P/Invoke

•Manipulation and Inertia Processors in Microsoft.Ink.DLL•Real-time Stylus or Ink Collector

Page 29: Разработка приложений для  Windows 7

Демо

Page 30: Разработка приложений для  Windows 7

И еще много…

PowerShell v2Сенсоры и географическое местоположениеFederated Search и БиблиотекиXPS (Xml Paper Specification)BITS(Background Intelligent Transfer Service)Обновленная работа с фоновыми процессамиГрафическая подсистемаUAC………….

Page 31: Разработка приложений для  Windows 7

Call to Action

Скачать и пройти:Windows 7 Training KitWindows 2008 R2 Training Kit

Скачать и установитьVisual Studio 2010 Beta 2

http://channel9.msdn.com/learn

Page 32: Разработка приложений для  Windows 7

Вопросы