Delphi Day 2009 Win7 Dev Overview

48
Pietro Brambati Microsoft blogs.msdn.com/pietrobr Windows 7 (RC) Developer overview

description

Slide usate al Delphi Day 2009 a Piaceza

Transcript of Delphi Day 2009 Win7 Dev Overview

Page 1: Delphi Day 2009 Win7 Dev Overview

Pietro BrambatiMicrosoftblogs.msdn.com/pietrobr

Windows 7 (RC)Developer overview

Page 2: Delphi Day 2009 Win7 Dev Overview

Agenda

KernelVirtualizzazione & VHDAPI

Supporto al Multi-TouchSupporto ai RibbonFormati per i documentiGraficaWeb ServicesSensor & Location Platform[Altre]

Tips & Tricks UI

Page 3: Delphi Day 2009 Win7 Dev Overview

Introduzione

Kernel di Win7 si basa sul kernel di Win. Vista SP1Compatibilità driver e applicazioni

Nuove API native aggiunte a Windows 7 Per alcune ci sarà il porting verso Vista/Win2008/..Alcune verranno usate come base per nuove API .NETAggiungono funzionalità “mancanti”

Ad esempio Web Service API

Aggiungono funzionalità “nuove”Multi-Touch API

Page 4: Delphi Day 2009 Win7 Dev Overview

Kernel

Page 5: Delphi Day 2009 Win7 Dev Overview

Performance

MemoryReference set, Graphics

Disk I/ORegistry Reads, Indexer

PowerDVD Playback, Panel, Timers

SpeedFaster Boot, Device Ready

ResponsivenessStart menu, Taskbar

Scale256 cores

MiglioramentoRiduzione di

Page 6: Delphi Day 2009 Win7 Dev Overview

Efficenza Energetica

Idea di fondo: si cerca di mantenere in idle il processore per più tempo possibile

Evitare il polling

Modifiche al kernel:< 2% attività CPU in stato di idleI/O disco ridotto in idleRiduzione dell’attività in background

Service Control Manager (SCM) un servizio può essere fatto partire o fermato su specifici eventi (trigger) : meno servizi devono essere fatti partire allo start-up della macchinaSCM può rimanere in ascolto tramite diversi provider:

Device arrival, IP address, Domain join and leave, Group policy updates

Page 7: Delphi Day 2009 Win7 Dev Overview

Efficienza Energetica Timer Coalescing API

Migliorare l’efficenza estendendo l’idle timeLe nuove coalescing API permettono al chiamante di specificare un tempo di tolleranzaIl kernel può ottimizzare emettendo un unico interupt per servire più timer

Timer tick15.6 ms

Periodic Timer Events

Windows 7

Vista

BOOLWINAPISetWaitableTimerEx( __in HANDLE hTimer, __in const LARGE_INTEGER *lpDueTime, __in LONG lPeriod, __in_opt PTIMERAPCROUTINE pfnCompletionRoutine, __in_opt LPVOID lpArgToCompletionRoutine, __in_opt PREASON_CONTEXT WakeContext, __in ULONG TolerableDelay );

Page 8: Delphi Day 2009 Win7 Dev Overview

Windows 7 e il Dispatcher Lock

Problema: lo scheduler di Windows gestisce due stati stati (running / waiting) nell'accedere agli oggetti. A questo scopo acquisisce un lock globale: il dispatcher lock

In presenza di un alto numero di CPU logiche ci sono molti più thread che contemporaneamente girano nel sistemaCon molti thread il dispatcher lock diventa l'imbuto più importante del sistema

Soluzione: in Windows 7 è stata di introdurre un nuovo stato nel modo in cui lo Scheduler accede agli oggetti kernel:pre-waiting, waiting, running.

Nello stato di pre-waiting il lock viene acquisito solo sullo specifico oggetto su cui si vuole operare e non più il dispatcher lock globale

Page 9: Delphi Day 2009 Win7 Dev Overview

Windows 7 e il PFN Database Lock

Problema: quando il memory manager assegna una pagina fisica di memoria al working set di un processo esegue un lock al PFN Database

PFN = Page Frame NumberPFN Database = la lista di pagine fisiche di memoriaIn presenza di un alto numero di CPU logiche, questo è il secondo lock globale per impatto sulle performance

Soluzione: Windows 7 ha introdotto una serie di lock minori che permettono di non tenere bloccato tutto il database

Page 10: Delphi Day 2009 Win7 Dev Overview

Virtualizzazionee VHD

Page 11: Delphi Day 2009 Win7 Dev Overview

Windows Virtual PC [beta]

Nuovo software di virtualizzazione clientSupporto a USB 2.0 Richiede virtualizzazione hardware AMD-V Intel-VT

Page 12: Delphi Day 2009 Win7 Dev Overview

Windows XP Mode [beta]

Si appoggia su Windows Virtual PC

Macchina Windows XP SP3 scaricabile gratuitamente per le versioni Professional, Enterprice e Ultimate

Per far giare applicazioni “impossibili” da aggiornare

Posso anche “Virtualizzare le applicazioni”Per l’utente è come se le lanciassi da Windows 7 …

Page 13: Delphi Day 2009 Win7 Dev Overview
Page 14: Delphi Day 2009 Win7 Dev Overview
Page 15: Delphi Day 2009 Win7 Dev Overview

Supporto nativo e avvio da VHD

Non è necessario uno strato di virtualizzazione per accedere ad un file VHD

Facile ridimensionare i file VHDDeploy di file VHDSpostare da un computer ad un altro

Posso fare il boot direttamente da un file .VHDCreo il file .VHD con i toolsInstallo Win 7 nel VHDUso del tool BCDEdit per configurare il boot manager

http://www.microsoft.com/italy/beit/Generic.aspx?video=a4b4a79e-7a2b-40c4-95fb-d4b82ee117c2#1

Page 16: Delphi Day 2009 Win7 Dev Overview

Tool per la gestione di VHD

Page 17: Delphi Day 2009 Win7 Dev Overview

API

Page 18: Delphi Day 2009 Win7 Dev Overview

Il Multi-Touch

Page 19: Delphi Day 2009 Win7 Dev Overview

Il Multi-touch

HardwareEsistono già dispositivi in grado di gestire il Multi-touch

SoftwareWindows 7 ha delle API native .NET 4.0

Page 20: Delphi Day 2009 Win7 Dev Overview

Surface Hardware

Windows 7

Surface Hardware

Windows VistaWindows 7

NativeWin32

Application

Roadmap per il supporto al Multi-touch

WPF 3.5

Surface SDK1.0

Managed Wrapper and

Interop

Managed Wrapper and Interop

WinForms Application

Windows 7 ReleaseNET 4.0 / Surface 2.0 Release

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 21: Delphi Day 2009 Win7 Dev Overview

Scenic Ribbon

Page 22: Delphi Day 2009 Win7 Dev Overview

In Windows 7, ci sarà anche per VistaWin32 API, COM-based

Windows Scenic Ribbon

Application Menu

Quick Access Toolbar

Tab Contextual Tab SetContextual

Tab

Help

Group (aka “Chunk”)

Dialog Launcher

Page 23: Delphi Day 2009 Win7 Dev Overview

Supporto ai Ribbon per piattaforma

MFC Win32WPF

Target:Managed

Target:MFC native

Target:Native

NET 3.5 Da Win2K Da Vista

Office 2007 & Windows styles

Office 2007 & Windows styles1

Windows visual style

Official release in 2009

In Visual Studio 2008 SP1

Windows 7

Page 24: Delphi Day 2009 Win7 Dev Overview

Grafica

Page 25: Delphi Day 2009 Win7 Dev Overview

Grafica – DirectX 11

DirectX è un’insieme di API, tra questeDirect3D: originariamente (1995) pensata per lo sviluppo di videogioghi e grafica 3D

Windows Vista introduce un DWM che usa Direct3DWindows 7

DWM usa Direct3D10.1Memoria per la gestione delle finestre ridotta del 50%

Le nuove API sono interoperabili tra loro e con GDI

Non è necessario disabilitare il DWM

DirectX 11 per Windows 7 e Windows Vista

Page 26: Delphi Day 2009 Win7 Dev Overview

Direct 3D10.1

API più facili da usare che con Direct3D9Performance migliorate nella pipeline, grazie a:

Programmable shader stageimmutable state objects

Geometry Shader Stageeseguito interamente nella GPU

Altre …Windows Advanced Rasterization Platform (WARP)

Rendering software, efficente perchè in grado di sfruttare CPU multi-core (no acceleratori HW)

3D10.1 Command RemotingAccelerazione sul client di sessioni Terminal Server

Page 27: Delphi Day 2009 Win7 Dev Overview

Direct 3D11

Estende Direct3D10/3D10.1Supporto alle nuove GPUFunziona su hardware D3D 9, 10 e 11 Estende la pipeline di D3D10 (Tassellation, etc.)Ottimizzazioni per l’uso in applicazioni multi –threadMiglioramento a HLSLUso dei core della GPU per calcoli non di grafica (GPGPU)

Page 28: Delphi Day 2009 Win7 Dev Overview

Nuove API DirectX

Direct 2DGrafica 2D accelerata, prestazioni superiori a GDI/GDI+, ma interoperabile, indipendente dalla risoluzione

Direct WritePer il rendering del testo, indipendente dalla risoluzione, acceleratoSupporto per ClearType, OpenType

Windows Imaging ComponentIntrodotto in VistaFramework per immagini e metadatiNuovi formati supportati

Page 29: Delphi Day 2009 Win7 Dev Overview

DxDiag.Exe

Windows\System32\DxDiag.exe

Page 30: Delphi Day 2009 Win7 Dev Overview

Web Services API

Page 31: Delphi Day 2009 Win7 Dev Overview

Windows Web Services API

Consumare ed esporre servizi in codice nativoNessuna dipendenza da .NET

Interoperabilità con lo stack WS-* SOAPWindows Communication Foundation (WCF)ASP .Net XML Web Services (ASMX)Non-Microsoft stacks

Parte di Windows 7Disponibile anche per Windows XP/Vista/2003/2008

Page 32: Delphi Day 2009 Win7 Dev Overview

Performance – Memory

RPC Sapphire WCF0

1000

2000

3000

4000

5000

6000

7000

Server Private Working Set (Kb) – Steady State

Server Private Working Set (Kb)

Configuration:Server: 2.2 GHz AMD (dual core), 64-bit Windows Server 2008Clients: 2.6 GHz AMD (dual core), 64-bit Windows Vista SP1

TCP/Binary

WWSAPI Message Sizes (bytes) Request: 153; Reply: 89

WWSAPI

Page 33: Delphi Day 2009 Win7 Dev Overview

Performance – TCP Throughput

RPC Sapphire WCF0

10000

20000

30000

40000

50000

60000

70000

80000TCP Server Throughput (operations/sec)

TCP Server Throughput (Operations per sec)

Configuration:Server: 2.2 GHz AMD (dual core), 64-bit Windows Server 2008Clients: 2.6 GHz AMD (dual core), 64-bit Windows Vista SP1

TCP/Binary

WWSAPI Message Sizes (bytes) Request: 153; Reply: 89

CPU Utilization > 98%

WWSAPI

Page 34: Delphi Day 2009 Win7 Dev Overview

Configurazioni supportate

TransportsHTTP, TCP, UDP

XML EncodingsText, Binary, and MTOM

EnvelopeSOAP 1.1 and 1.2

AddressingWS-Addressing 0.9 and 1.0

MetadataWSDL 1.1, XML Schema 1.0WS-MetadataExchange 1.1WS-Transfer March 2006

SecurityWS-Security 1.0 and 1.1 (partial)WS-Trust February 2005 and 1.3 (partial)WS-SecureConversation 1.1 and 1.3 (partial)

PolicyWS-Policy from March 2006 and v.1.2WS-Policy Attachment from March 2006 and 1.2WS-SecurityPolicy 1.1

Page 35: Delphi Day 2009 Win7 Dev Overview

Sensor & Location Platform

Page 36: Delphi Day 2009 Win7 Dev Overview

Sensor & Location PlatformOggi: diversi fornitori/diversi formatiUn modello di driver unificato

Sensori Fisici (e.g., GPS devices, Light Sensors)Sensori Logici(e.g., Wi-Fi triangulation resolver)

Emulazione di sensori in firmare

Fornisce API standardSensor API: C++/COM / Managed code (Windows Bridge)Location API: C++/COM, Managed code (Windows Bridge)

L’utente può decidere se abilitare o no un sensorehttp://msdn.microsoft.com/en-us/library/dd318936(VS.85).aspx

Page 37: Delphi Day 2009 Win7 Dev Overview

Formati per i documenti

Page 38: Delphi Day 2009 Win7 Dev Overview

Formati per i documenti

Vista ha introdotto XML Paper Specification (XPS) e Open Packaging Convention (OPC)

.NET Framework

Windows 7 supporta OPC e XPSNuove Packaging API

Supporta la firma digitale via certificati X509

Page 39: Delphi Day 2009 Win7 Dev Overview

“ Libraries are destinations where users can find and organize their data as collections of items that may span multiple locations “

Libraries

Page 41: Delphi Day 2009 Win7 Dev Overview

Tips & Tricks

Page 42: Delphi Day 2009 Win7 Dev Overview

Quando verrà rilasciato ?

Page 43: Delphi Day 2009 Win7 Dev Overview

blogs.msdn.com/pietrobr

Domande ?Risposte!

Download Windows 7 RChttp://msdn.microsoft.com/it-it/evalcenter/dd353271.aspx[Scadenza Giugno 2010]

“Evoluzione, non rivoluzione”

Page 44: Delphi Day 2009 Win7 Dev Overview

Altre API

Reliability Access Monitor WMI Interface Monitorare la stabilità della macchina

Windows PowerShell 2.0 IDE per debugging

Windows Installer Unica transazione di più package

Windows Filtering Platform Miglioramenti per chi sviluppa firewall, antivirus, etc Ispezione di traffico non-IP (MAC e ETHERNET filtering)

Page 45: Delphi Day 2009 Win7 Dev Overview

Altre API

Media API: api di alto livello (C++) semplificano il modello di programmazione

Windows AutomationW3C ARIAExtending Linguistic Service

Library API

Page 46: Delphi Day 2009 Win7 Dev Overview

Link utili

Windows 7 Developer Guidehttp://msdn.microsoft.com/en-us/library/dd371748(VS.85).aspx

Windows 7 (RC) SDKhttp://www.microsoft.com/downloads/details.aspx?FamilyID=6db1f17f-5f1e-4e54-a331-c32285cdde0c&displaylang=en

Windows Driver Kit (WDK)http://msdn.microsoft.com/en-us/library/aa972908.aspx

Ribbon Guidelinehttp://msdn.microsoft.com/en-us/library/cc872782.aspx

DirectX SDKhttp://www.microsoft.com/downloads/details.aspx?familyid=24A541D6-0486-4453-8641-1EEE9E21B282&displaylang=en

DirectX infohttp://www.xnagamefest.com/presentations08.htm

Page 47: Delphi Day 2009 Win7 Dev Overview

Link Utili

Sensor API:http://msdn.microsoft.com/en-us/library/dd318953(VS.85).aspx

Location API:http://msdn.microsoft.com/en-us/library/dd317751(VS.85).aspx

Service Trigger Eventshttp://msdn.microsoft.com/en-us/library/dd405513(VS.85).aspx

Page 48: Delphi Day 2009 Win7 Dev Overview

© 2008 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.