delphi day 2009 win7 dev overview
DESCRIPTION
Slide usate al Delphi Day 2009 a PiacezaTRANSCRIPT
Pietro BrambatiMicrosoftblogs.msdn.com/pietrobr
Windows 7 (RC)Developer overview
Agenda
KernelVirtualizzazione & VHDAPI
Supporto al Multi-TouchSupporto ai RibbonFormati per i documentiGraficaWeb ServicesSensor & Location Platform[Altre]
Tips & Tricks UI
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
Kernel
Performance
MemoryReference set, Graphics
Disk I/ORegistry Reads, Indexer
PowerDVD Playback, Panel, Timers
SpeedFaster Boot, Device Ready
ResponsivenessStart menu, Taskbar
Scale256 cores
MiglioramentoRiduzione di
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
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 );
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
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
Virtualizzazionee VHD
Windows Virtual PC [beta]
Nuovo software di virtualizzazione clientSupporto a USB 2.0 Richiede virtualizzazione hardware AMD-V Intel-VT
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 …
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
Tool per la gestione di VHD
API
Il Multi-Touch
Il Multi-touch
HardwareEsistono già dispositivi in grado di gestire il Multi-touch
SoftwareWindows 7 ha delle API native .NET 4.0
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
Scenic Ribbon
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
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
Grafica
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
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
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)
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
DxDiag.Exe
Windows\System32\DxDiag.exe
Web Services API
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
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
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
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
Sensor & Location Platform
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
Formati per i documenti
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
“ Libraries are destinations where users can find and organize their data as collections of items that may span multiple locations “
Libraries
Windows 7 Library per .NET
http://tinyurl.com/win7net
Tips & Tricks
Quando verrà rilasciato ?
blogs.msdn.com/pietrobr
Domande ?Risposte!
Download Windows 7 RChttp://msdn.microsoft.com/it-it/evalcenter/dd353271.aspx[Scadenza Giugno 2010]
“Evoluzione, non rivoluzione”
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)
Altre API
Media API: api di alto livello (C++) semplificano il modello di programmazione
Windows AutomationW3C ARIAExtending Linguistic Service
Library API
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
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
© 2008 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.