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

Post on 02-Jan-2016

122 views 9 download

Tags:

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

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

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

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

Decrease

MemoryReference set, Graphics

Disk I/ORegistry Reads, Indexer

PowerDVD Playback, Panel, Timers

Increase

SpeedFaster BootDevice Ready

ResponsivenessStart menu,

TaskbarScale

256 processors

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

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

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

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

Socket 0

Core 0

Core 1

Core 0

Core 1

Socket 1

Core 1

Core 0

Core 0

Core 1

Нагрузка

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

Trigger-Started ServicesTimer Coalescing

Timer tick15.6 ms

Periodic Timer Events

Windows 7

Vista

Демо

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

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

RunningNot

running

Multiple windows + hoverActive

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

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

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

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

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

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

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

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

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

Windows7Application.SetCurrentProcessAppId(

"Microsoft.Samples.AppId1");

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");

Jump Lists

Destinations(“nouns”)

Tasks(“verbs”)

Known categories

Custom categories

User Tasks

Taskbar Tasks

Pinned category

Управление 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");

Управление 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=..., ... });

Управление 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=... });

Thumbnail Toolbars

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

Создание 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 += ...;

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

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

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

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();

Live Thumbnail Clip

Управление 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;

Демо

Windows Scenic RibbonApplication

MenuQuick Access Toolbar

Tab Contextual Tab SetContextual Tab

Help

Group (aka “Chunk”)

Dialog Launcher

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

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

Демо

Multi-touch Is Here!Hardware

Software

Consumers

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

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

Демо

И еще много…

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

Call to Action

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

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

http://channel9.msdn.com/learn

Вопросы