40
Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and Windows Longhorn, Avalon and XAML XAML Daniele Bochicchio [email protected] Microsoft ASP.NET MVP Cristian Civera [email protected] Microsoft ASP.NET MVP

Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio [email protected] Microsoft ASP.NET MVP Daniele Bochicchio

Embed Size (px)

Citation preview

Page 1: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Windows Development Day28/01/05 Bologna

Windows Longhorn, Avalon and XAML Windows Longhorn, Avalon and XAML

Daniele [email protected] ASP.NET MVP

Daniele [email protected] ASP.NET MVP

Cristian [email protected] ASP.NET MVP

Cristian [email protected] ASP.NET MVP

Page 2: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

AgendaAgenda

Windows Longhorn PillarsWinFX: Avalon, AeroWinFSIndigo

Avalon: non solo LonghornXAML

Fondamenti, il code behind, i nuovi controlli, style

BAML e compilazione delle applicazioniCostruzione di applicazioni 3DBinding ed applicazioni data-centricEventi e il nuovo concetto di comandiRivoluzione e futuro

Windows Longhorn PillarsWinFX: Avalon, AeroWinFSIndigo

Avalon: non solo LonghornXAML

Fondamenti, il code behind, i nuovi controlli, style

BAML e compilazione delle applicazioniCostruzione di applicazioni 3DBinding ed applicazioni data-centricEventi e il nuovo concetto di comandiRivoluzione e futuro

Page 3: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

L’evoluzione delle “API”L’evoluzione delle “API”

1985: Win16 con Windows 1.01990: Win32 (Windows 3.0), VB11992: MFC (Microsoft Foundation Classes), OLE1993: COM1995: VB 41997: VB 5, DCOM1998: VB 62000: COM+2002: .NET Framework 1.02003: .NET Framework 1.12005: .NET Framework 2.02006: Longhorn Application Model

1985: Win16 con Windows 1.01990: Win32 (Windows 3.0), VB11992: MFC (Microsoft Foundation Classes), OLE1993: COM1995: VB 41997: VB 5, DCOM1998: VB 62000: COM+2002: .NET Framework 1.02003: .NET Framework 1.12005: .NET Framework 2.02006: Longhorn Application Model

Page 4: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Win32 ProgrammingWin32 Programming

VantaggiSi può fare tutto

SvantaggiA patto di sapere come si fa :)Bisogna conoscere le API di Windows

VantaggiSi può fare tutto

SvantaggiA patto di sapere come si fa :)Bisogna conoscere le API di Windows

Page 5: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

In principio erano VB, ATL, MFCIn principio erano VB, ATL, MFC

VantaggiLayer aggiuntivi per non passare direttamente per le API di WindowsPossibilità di componentizzare

SvantaggiDifficoltà di apprendimento (ATL, MFC)Poco controllo sul risultato (VB)

VantaggiLayer aggiuntivi per non passare direttamente per le API di WindowsPossibilità di componentizzare

SvantaggiDifficoltà di apprendimento (ATL, MFC)Poco controllo sul risultato (VB)

Page 6: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Poi venne COMPoi venne COM

VantaggiEstendibilità senza per forza usare le API di WindowsPossibilità di usare oggetti scritti in linguaggi diversi

SvantaggiDLL hellVersioningdeployment

VantaggiEstendibilità senza per forza usare le API di WindowsPossibilità di usare oggetti scritti in linguaggi diversi

SvantaggiDLL hellVersioningdeployment

Page 7: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Infine arrivò il .NET FxInfine arrivò il .NET Fx

VantaggiSecurity: Control Access Security (CAS)Versioning, side-by-side executionAPI uguali per ogni linguaggioCompilazione ed ottimizzazione del JIT-terProtezione da codice insicuro (buffer overrun)

SvantaggiInterop per molte funzionalitàRottura con il passato

VantaggiSecurity: Control Access Security (CAS)Versioning, side-by-side executionAPI uguali per ogni linguaggioCompilazione ed ottimizzazione del JIT-terProtezione da codice insicuro (buffer overrun)

SvantaggiInterop per molte funzionalitàRottura con il passato

Page 8: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

ClickOnce in pilloleClickOnce in pillole

Deployment semplificato da webIncluso in .NET Framework 2.0 (Whidbey)CAS in base al manifest ed al contesto in cui giraPossibilità di

eseguire le applicazioni onlineinstallarle in locale

Funzionalità di auto update incluse

Deployment semplificato da webIncluso in .NET Framework 2.0 (Whidbey)CAS in base al manifest ed al contesto in cui giraPossibilità di

eseguire le applicazioni onlineinstallarle in locale

Funzionalità di auto update incluse

Page 9: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Un giorno sarà LonghornUn giorno sarà Longhorn

Vantaggi.NET Fundamentals: CLR, CAS, versioning, side-by-side exec, ADO.NETTutto managed: da qualsiasi linguaggio, stesso tipo di accesso alle API di WindowsFlessibilità del web:

Interaccia a markup: XAMLNavigation ApplicationIsolamento da altre applicazioniDeployment rapido con ClickOnceMSBuild per “compilare” con azioni personalizzate

SvantaggiE’ un modo inesplorato ai più

Vantaggi.NET Fundamentals: CLR, CAS, versioning, side-by-side exec, ADO.NETTutto managed: da qualsiasi linguaggio, stesso tipo di accesso alle API di WindowsFlessibilità del web:

Interaccia a markup: XAMLNavigation ApplicationIsolamento da altre applicazioniDeployment rapido con ClickOnceMSBuild per “compilare” con azioni personalizzate

SvantaggiE’ un modo inesplorato ai più

Page 10: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Windows LonghornWindows Longhorn

Uscita prevista nel 2006Includerà Avalon, Aero ed IndigoWinFS è stato rimandato a data da destinarsiE’ il primo sistema operativo completamente managedE’ un consolidamento delle tecnologie esistenti: .NET Framework, Web Services, RemotingE’ l’innovazione: Aereo, Avalon, Click-once

Uscita prevista nel 2006Includerà Avalon, Aero ed IndigoWinFS è stato rimandato a data da destinarsiE’ il primo sistema operativo completamente managedE’ un consolidamento delle tecnologie esistenti: .NET Framework, Web Services, RemotingE’ l’innovazione: Aereo, Avalon, Click-once

Page 11: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Communication

Avalon WinFS IndigoWindows Forms

ASP.NET

ObjectSpacesObjectSpaces

DataSetDataSet

SQL XMLSQL XML

ProvidersProviders

Fram

ework

ServicesSchemas

Data Model

ADO.NET

Connectivity

Synchronization(WinFS, Win32..)Synchronization(WinFS, Win32..)

InfoAgent(PreferenceRules..)InfoAgent(PreferenceRules..)

FileSystem Services(MetaDataHandlers..)FileSystem Services(MetaDataHandlers..)

CalendarCalendar MediaMedia

DocumentDocument ……

ItemsItems

RelationshipsRelationships

ExtensionsExtensionsCommunications Manager (Port)Communications Manager (Port)

Messaging Services

Transport Channels(IPC, HTTP, TCP…)Transport Channels(IPC, HTTP, TCP…)

Channels (Datagram, Reliable, Peer, …)

Channels (Datagram, Reliable, Peer, …)

Policy EnginePolicy Engine

MessageEncoderMessageEncoder

ChannelSecurityChannelSecurity

QueuingQueuing

EventingEventing

RoutingRouting

TransactionTransaction

Desktop ServicesDesktop Services

Desktop WindowManagerDesktop WindowManager

Presentation Object ManagerPresentation Object Manager

Desktop Composition EngineDesktop Composition Engine

Animation andCompositionAnimation andComposition

Media Services

Hardware RenderingHardware Rendering

MediaProcessingMediaProcessing

Capture and SourcingCapture and Sourcing

Software Renderingand SinksSoftware Renderingand Sinks

Adaptive UIEngineAdaptive UIEngine

Page/SiteCompositionPage/SiteComposition

Personalization andProfiling ServicesPersonalization andProfiling Services

Membership and Security ServicesMembership and Security Services

Designer ServicesDesigner Services

Controls Interop EngineControls Interop Engine

ControlsControls

Windows Forms

ApplicationServicesApplicationServices

PeoplePeople GroupGroup

Collaboration

People andGroupsPeople andGroups

CollaborationHistoryCollaborationHistory

Real-TimeActivitiesReal-TimeActivities

SignalingSignalingFederationFederation

System Services

Transactions Storage

Protocols

Network Services

Kernel M

ode

Base Class LibrariesBase Class Libraries

Memory ManagerMemory Manager

Hosting LayerHosting Layer

Code ExecutionCode Execution LoaderLoader SecuritySecurity SerializationSerialization

LightweightTransactionsLightweightTransactions

TransactionCoordinatorTransactionCoordinator

KernelTransactionManager

KernelTransactionManager

LoggingServiceLoggingService

KernelKernel

Hardware Abstraction LayerHardware Abstraction Layer

ProcessManagerProcessManager

SecurityReference Monitor

SecurityReference Monitor

LPCFacilityLPCFacility

MemoryManagerMemoryManager

PowerManagerPowerManager

ConfigManagerConfigManager

Plug andPlayPlug andPlay

TransactedNTFSTransactedNTFS

Cache ManagerCache

ManagerUniversalData Format

UniversalData Format

FilterEngineFilterEngine

TCP, UDPIPV4, IPV6TCP, UDPIPV4, IPV6 IPSECIPSEC QOSQOS HTTP

ListenerHTTPListener

Internet Connection FirewallInternet Connection Firewall

Demand Activation and Protocol HealthDemand Activation and Protocol Health

PNRPPNRP NativeWiFiNativeWiFi SIPSIP TCP

ListenerTCP Listener

UDP ListenerUDP Listener

IPC ListenerIPC Listener

Network Class LibraryNetwork Class Library

GDI/GDI+GDI/GDI+ WindowManagerWindowManager

GlobalAudio Engine

GlobalAudio Engine

Direct 3DGraphicsDirect 3DGraphics

Graphics driversGraphics drivers

DDIDDI InputManagerInputManager

AudioDriversAudioDrivers

DirectX GraphicsMini port

DirectX GraphicsMini port

RedirectorsRedirectors

SCSI/FCSCSI/FC 802.3802.3 802.11802.11 ....

Device Drivers

ManagementServices

(Event Logs,Tracing,Probes,

Auto Update,Admin)

ManagementServices

(Event Logs,Tracing,Probes,

Auto Update,Admin)

IO ManagerIO Manager

Application DeploymentEngine (Click-Once)

Application DeploymentEngine (Click-Once)

Identity &SecuritySystem

Identity &SecuritySystem

FAT 16/32FAT 16/32

FilterManagerFilterManager

DistributedFile SystemDistributedFile System

Virtual ShadowCopy ServiceVirtual ShadowCopy Service

File ReplicationServiceFile ReplicationService

Virtual DiskServiceVirtual DiskService

Models

ServiceServiceObjectObject T/SQLT/SQL XMLXMLDocumentDocument UIUI MediaMedia

CLR

Presentation Data Communication

Base Operating System Services

Avalon WinFS Indigo

WinFXWinFX

Page 12: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Avalon WinFS IndigoWindows Forms

ASP.NET

ObjectSpacesObjectSpaces

DataSetDataSet

SQL XMLSQL XML

ProvidersProviders

Fram

ework

ServicesSchemas

Data Model

ADO.NET

Connectivity

Synchronization(WinFS, Win32..)Synchronization(WinFS, Win32..)

InfoAgent(PreferenceRules..)InfoAgent(PreferenceRules..)

FileSystem Services(MetaDataHandlers..)FileSystem Services(MetaDataHandlers..)

CalendarCalendar MediaMedia

DocumentDocument ……

ItemsItems

RelationshipsRelationships

ExtensionsExtensionsCommunications Manager (Port)Communications Manager (Port)

Messaging Services

Transport Channels(IPC, HTTP, TCP…)Transport Channels(IPC, HTTP, TCP…)

Channels (Datagram, Reliable, Peer, …)

Channels (Datagram, Reliable, Peer, …)

Policy EnginePolicy Engine

MessageEncoderMessageEncoder

ChannelSecurityChannelSecurity

QueuingQueuing

EventingEventing

RoutingRouting

TransactionTransaction

Desktop ServicesDesktop Services

Desktop WindowManagerDesktop WindowManager

Presentation Object ManagerPresentation Object Manager

Desktop Composition EngineDesktop Composition Engine

Animation andCompositionAnimation andComposition

Media Services

Hardware RenderingHardware Rendering

MediaProcessingMediaProcessing

Capture and SourcingCapture and Sourcing

Software Renderingand SinksSoftware Renderingand Sinks

Adaptive UIEngineAdaptive UIEngine

Page/SiteCompositionPage/SiteComposition

Personalization andProfiling ServicesPersonalization andProfiling Services

Membership and Security ServicesMembership and Security Services

Designer ServicesDesigner Services

Controls Interop EngineControls Interop Engine

ControlsControls

Windows Forms

ApplicationServicesApplicationServices

PeoplePeople GroupGroup

Collaboration

People andGroupsPeople andGroups

CollaborationHistoryCollaborationHistory

Real-TimeActivitiesReal-TimeActivities

SignalingSignalingFederationFederation

System Services

Transactions Storage

Protocols

Network Services

Kernel M

ode

Base Class LibrariesBase Class Libraries

Memory ManagerMemory Manager

Hosting LayerHosting Layer

Code ExecutionCode Execution LoaderLoader SecuritySecurity SerializationSerialization

LightweightTransactionsLightweightTransactions

TransactionCoordinatorTransactionCoordinator

KernelTransactionManager

KernelTransactionManager

LoggingServiceLoggingService

KernelKernel

Hardware Abstraction LayerHardware Abstraction Layer

ProcessManagerProcessManager

SecurityReference Monitor

SecurityReference Monitor

LPCFacilityLPCFacility

MemoryManagerMemoryManager

PowerManagerPowerManager

ConfigManagerConfigManager

Plug andPlayPlug andPlay

TransactedNTFSTransactedNTFS

Cache ManagerCache

ManagerUniversalData Format

UniversalData Format

FilterEngineFilterEngine

TCP, UDPIPV4, IPV6TCP, UDPIPV4, IPV6 IPSECIPSEC QOSQOS HTTP

ListenerHTTPListener

Internet Connection FirewallInternet Connection Firewall

Demand Activation and Protocol HealthDemand Activation and Protocol Health

PNRPPNRP NativeWiFiNativeWiFi SIPSIP TCP

ListenerTCP Listener

UDP ListenerUDP Listener

IPC ListenerIPC Listener

Network Class LibraryNetwork Class Library

GDI/GDI+GDI/GDI+ WindowManagerWindowManager

GlobalAudio Engine

GlobalAudio Engine

Direct 3DGraphicsDirect 3DGraphics

Graphics driversGraphics drivers

DDIDDI InputManagerInputManager

AudioDriversAudioDrivers

DirectX GraphicsMini port

DirectX GraphicsMini port

RedirectorsRedirectors

SCSI/FCSCSI/FC 802.3802.3 802.11802.11 ....

Device Drivers

ManagementServices

(Event Logs,Tracing,Probes,

Auto Update,Admin)

ManagementServices

(Event Logs,Tracing,Probes,

Auto Update,Admin)

IO ManagerIO Manager

Application DeploymentEngine (Click-Once)

Application DeploymentEngine (Click-Once)

Identity &SecuritySystem

Identity &SecuritySystem

FAT 16/32FAT 16/32

FilterManagerFilterManager

DistributedFile SystemDistributedFile System

Virtual ShadowCopy ServiceVirtual ShadowCopy Service

File ReplicationServiceFile ReplicationService

Virtual DiskServiceVirtual DiskService

Models

ServiceServiceObjectObject T/SQLT/SQL XMLXMLDocumentDocument UIUI MediaMedia

CLR

Avalon WinFS IndigoPresentation Data Communication

Base Operating System Services

WinFXWinFX

Page 13: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

E’ un insieme di tool, codice e strumenti per creare applicazioni per Longhorn

Tutto gestito da codice managed.NET Framework 2.x per l’accesso alle API

WinFX = API al 100%Se c’è un’API in Longhorn, esiste il corrispettivo in WinFXSe non esiste un’API in WinFX, non esiste in LH

Si scarica da http://longhorn.msdn.microsoft.com/

E’ un insieme di tool, codice e strumenti per creare applicazioni per Longhorn

Tutto gestito da codice managed.NET Framework 2.x per l’accesso alle API

WinFX = API al 100%Se c’è un’API in Longhorn, esiste il corrispettivo in WinFXSe non esiste un’API in WinFX, non esiste in LH

Si scarica da http://longhorn.msdn.microsoft.com/

Longhorn SDKLonghorn SDK

Page 14: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

I numeri di LH PDC buildI numeri di LH PDC build

100.000 API documentate200.000 pagine di DOC100.000 API documentate200.000 pagine di DOC

172 assemblies438 namespaces13.595 tipi

172 assemblies438 namespaces13.595 tipi

39 assemblies121 namespaces3.889 tipi

39 assemblies121 namespaces3.889 tipi

Longhorn .NET Framework 1.x

Page 15: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

WinFSWinFS

Sistema di ricerca basato su SQL Server Yukon, nel sistemaAggregatore logico di dati

Visualizzazione oggetti per proprietà (ordina per autore, dimensione) a prescindere dalla loro locazione sul disco fisso. Necessita di una partizione abilitata

Basato su XML Schema per l’arricchimento delle funzionalitàLavora in unione con NTFS per migliorare l’utilizzo del sistema operativoPosticipato a data da destinarsi

Sistema di ricerca basato su SQL Server Yukon, nel sistemaAggregatore logico di dati

Visualizzazione oggetti per proprietà (ordina per autore, dimensione) a prescindere dalla loro locazione sul disco fisso. Necessita di una partizione abilitata

Basato su XML Schema per l’arricchimento delle funzionalitàLavora in unione con NTFS per migliorare l’utilizzo del sistema operativoPosticipato a data da destinarsi

Page 16: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

AeroAero

La nuova interfaccia grafica, completamente 3DLavora direttamente sulla GPU

Se l’hardware non supporta tutte le funzionalità, verrà fatto il rendering minimoSupporto per trasparenze, alpha blending sugli oggetti, effetto “vetro”

Esiste una versione minima nella WinHec build

La nuova interfaccia grafica, completamente 3DLavora direttamente sulla GPU

Se l’hardware non supporta tutte le funzionalità, verrà fatto il rendering minimoSupporto per trasparenze, alpha blending sugli oggetti, effetto “vetro”

Esiste una versione minima nella WinHec build

Page 17: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

IndigoIndigoStrato di comunicazione di LonghornRiunisce:

Web ServiceRemotingMessage Queue

Basato su XMLApproccio SOA (Service Oriented Architecture)Riunisce gli standard di WSA per fornire servizi:

SicuriIntegriTransazionaliInteroperabili

Oggi parzialmente implementato con WS2

Strato di comunicazione di LonghornRiunisce:

Web ServiceRemotingMessage Queue

Basato su XMLApproccio SOA (Service Oriented Architecture)Riunisce gli standard di WSA per fornire servizi:

SicuriIntegriTransazionaliInteroperabili

Oggi parzialmente implementato con WS2

Page 18: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

AvalonAvalon

La nuova interfaccia di presentazioneOffre nuove managed APIs e controlsSupporto per rich e complex GUI

Filmati come sfondo di oggetti di una finestraPossibilità di posizionare gli oggetti in maniera inclinata nella finestra

E’ un insieme di classi offerte da WinFX attraverso il namespace System.Windows

La nuova interfaccia di presentazioneOffre nuove managed APIs e controlsSupporto per rich e complex GUI

Filmati come sfondo di oggetti di una finestraPossibilità di posizionare gli oggetti in maniera inclinata nella finestra

E’ un insieme di classi offerte da WinFX attraverso il namespace System.Windows

Page 19: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Avalon November 04 CTPAvalon November 04 CTPVersione di Avalon per Windows XP e Windows Server 2003Richiede il .NET Framework 2.0 Nov 04 CTPInclude un SDKPrima versione a supportare i sistemi operativi “vecchi”La versione finale di Avalon girerà su XP, 2003, 2003 R2 e LonghornVideo e audio non sono attivi

Versione di Avalon per Windows XP e Windows Server 2003Richiede il .NET Framework 2.0 Nov 04 CTPInclude un SDKPrima versione a supportare i sistemi operativi “vecchi”La versione finale di Avalon girerà su XP, 2003, 2003 R2 e LonghornVideo e audio non sono attivi

Page 20: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

XAMLXAML

Nuovo linguaggio XML per definire le GUIGli oggetti sono inseriti in maniera dichiarativa e convertiti da un motore in istanze di un oggetto

Gli oggetti sono convertiti in istanze di oggetti nel namespace MsAvalon.Windows .Controls/Shapes/Media/Data…

Nuovo linguaggio XML per definire le GUIGli oggetti sono inseriti in maniera dichiarativa e convertiti da un motore in istanze di un oggetto

Gli oggetti sono convertiti in istanze di oggetti nel namespace MsAvalon.Windows .Controls/Shapes/Media/Data…

<Window xmlns="http://schemas.microsoft.com/2003/xaml"> <Button Widht="100" Height="30">Questo e' un button</Button></Windows>

Page 21: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Due tipi di applicazioniDue tipi di applicazioni

Application ClassSupporto alle applicazioni Windows classiche

NavigationApplication ClassSupporto alle applicazioni con necessità di funzionalità di navigazione, stile web

Application ClassSupporto alle applicazioni Windows classiche

NavigationApplication ClassSupporto alle applicazioni con necessità di funzionalità di navigazione, stile web

Page 22: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Componenti di XAMLComponenti di XAML

Panelsil concetto che sta dietro è identico a quello dei Panels di ASP.NET, sono cioè dei contenitori di altri controls

Documentsè una delle novità, perché rappresenta un insieme di oggetti in grado di mostrare documenti

Controlsa cosa servono dovrebbe essere chiaro, ma lo ripetiamo. Sono utilizzati per interagire con l'utente.

Shapessono usati per inserire oggetti vettoriali.

Panelsil concetto che sta dietro è identico a quello dei Panels di ASP.NET, sono cioè dei contenitori di altri controls

Documentsè una delle novità, perché rappresenta un insieme di oggetti in grado di mostrare documenti

Controlsa cosa servono dovrebbe essere chiaro, ma lo ripetiamo. Sono utilizzati per interagire con l'utente.

Shapessono usati per inserire oggetti vettoriali.

Page 23: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

I nuovi controlliI nuovi controlliSystem.Windows.Controls.Primitives:controlli primitivi per fornire:

BottoniSelezioniMenuItemElementi che già conosciamo oggi…

Ogni controllo può contenere ulteriori controlli/shapes che ne definiscono il layoutLo style dell’attuale Windows è emulato tramite shapes

System.Windows.Controls.Primitives:controlli primitivi per fornire:

BottoniSelezioniMenuItemElementi che già conosciamo oggi…

Ogni controllo può contenere ulteriori controlli/shapes che ne definiscono il layoutLo style dell’attuale Windows è emulato tramite shapes

Page 24: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Windows Development Day28/01/05 Bologna

Avalon e XAML su Windows XPAvalon e XAML su Windows XP

Page 25: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Il code behindIl code behind

Design e source legati con l’uso di partial classIn file1.xaml

In file1.xaml.cs

Design e source legati con l’uso di partial classIn file1.xaml

In file1.xaml.cs

<Applicationdef:Class=“MyClass”def:CodeBehind=“MyClass.xaml.cs”

>

public partial class MyClass : [Application]{

// codice}

Page 26: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

BAML e compilazioneBAML e compilazione

Il file xaml viene trasformato in un file binario .BAMLOttimizzato nelle dimensioniInserito nelle risorse dell’assembly e caricato a runtimeE’ possibile sfruttare quindi la localizzazione delle risorseLe variabili vengono valorizzateEra previsto anche un secondo metodo CAML alla “ASP.NET”, ma verrà scartato

Il file xaml viene trasformato in un file binario .BAMLOttimizzato nelle dimensioniInserito nelle risorse dell’assembly e caricato a runtimeE’ possibile sfruttare quindi la localizzazione delle risorseLe variabili vengono valorizzateEra previsto anche un secondo metodo CAML alla “ASP.NET”, ma verrà scartato

Page 27: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

StyleStylePermettono di

Specificare proprietà comuniRidefinire un controllo

Variare il comportamento al mutare di proprietà dipendenti

Identificabili per nome o per tipo di controlloSono relativi al controllo padre e ereditabiliI controlli in Avalon sfruttano gli style per il loro layout

Permettono diSpecificare proprietà comuniRidefinire un controllo

Variare il comportamento al mutare di proprietà dipendenti

Identificabili per nome o per tipo di controlloSono relativi al controllo padre e ereditabiliI controlli in Avalon sfruttano gli style per il loro layout

<Style><Button FontSize=“40”

Foreground=“Red” />

Page 28: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

AnimazioniAnimazionixxxAnimation: oggetti che variano nel tempo il valore delle proprietà

Ne esiste una per ogni tipo di dato, non solo primitivo: Length, Color, Matrix…Possono essere applicate a qualsiasi proprietà di qualsiasi controlloControllabili da codiceCoordinabili con timeline e relative al padrePotenti con trasformazioni 2D / 3D sfruttando DirectX

xxxAnimation: oggetti che variano nel tempo il valore delle proprietà

Ne esiste una per ogni tipo di dato, non solo primitivo: Length, Color, Matrix…Possono essere applicate a qualsiasi proprietà di qualsiasi controlloControllabili da codiceCoordinabili con timeline e relative al padrePotenti con trasformazioni 2D / 3D sfruttando DirectX

<DoubleAnimation From=“0” To=“1” Duration=“2” RepeatDuration=“Indefinite” />

Page 29: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Costruzione di applicazioni 3DCostruzione di applicazioni 3DLa base di tutto è il controllo

Viewport 3DI concetti sono gli stessi dell’attuale DirectX, ma con la facilità di XAMLAvalon permette di definire:

CameraModelli

Luce: punti, ambiente, direzionaleGeometrie 3D: cubi, sfere, cilindri, meshMateriali

E’ possibile applicare animazioni e styleEsiste un convertitore mesh X -> xaml (DXMeshToXaml.exe)

La base di tutto è il controllo Viewport 3DI concetti sono gli stessi dell’attuale DirectX, ma con la facilità di XAMLAvalon permette di definire:

CameraModelli

Luce: punti, ambiente, direzionaleGeometrie 3D: cubi, sfere, cilindri, meshMateriali

E’ possibile applicare animazioni e styleEsiste un convertitore mesh X -> xaml (DXMeshToXaml.exe)

Page 30: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Windows Development Day28/01/05 Bologna

StyleStyleAnimazioniAnimazioniSupporto 3D in AvalonSupporto 3D in Avalon

Page 31: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

DataBindinding ed applicazioni data-centricDataBindinding ed applicazioni data-centric

L’oggetto System.Windows.Data.Bind permette di caricare da una fonte dati a n oggetti/proprietàLavora in modalità monodirezionale, bidirezionale, singolo carimentoPuò essere asincronoTramite le DataSource è possibile definire sorgenti a livello xamlRelativo al DataContext padreRiceve notifiche tramite IPropertyChange, ICollectionChange e DependencyObject

L’oggetto System.Windows.Data.Bind permette di caricare da una fonte dati a n oggetti/proprietàLavora in modalità monodirezionale, bidirezionale, singolo carimentoPuò essere asincronoTramite le DataSource è possibile definire sorgenti a livello xamlRelativo al DataContext padreRiceve notifiche tramite IPropertyChange, ICollectionChange e DependencyObject

Page 32: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Windows Development Day28/01/05 Bologna

Accesso ai dati con XAMLAccesso ai dati con XAML

Page 33: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Eventi in Avalon Eventi in Avalon Non sono più basati sui messaggi di Win32Possono viaggiare tra l’albero degli oggetti

Bubbling: dall’elemento che scatena l’evento fino al padreTunneling: dal padre fino al destinatario dell’evento

Si possono quindi intercettare e annullare e determinano eventi di tipo Preview / AfterLavorano su qualsiasi ThreadSupportano qualsiasi tipo di input, per es: stylus

Non sono più basati sui messaggi di Win32Possono viaggiare tra l’albero degli oggetti

Bubbling: dall’elemento che scatena l’evento fino al padreTunneling: dal padre fino al destinatario dell’evento

Si possono quindi intercettare e annullare e determinano eventi di tipo Preview / AfterLavorano su qualsiasi ThreadSupportano qualsiasi tipo di input, per es: stylus

Page 34: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Eventi: comandiEventi: comandi

Permettono di legare un controllo ad un altroEseguono operazioniLimitano l’uso di codice per le classiche operazioni evento->azioniUtili per ridefinire controlli, es: ScrollViewer

Permettono di legare un controllo ad un altroEseguono operazioniLimitano l’uso di codice per le classiche operazioni evento->azioniUtili per ridefinire controlli, es: ScrollViewer

Page 35: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Windows Development Day28/01/05 Bologna

ScrollViewerScrollViewerASPItalia.com per AvalonASPItalia.com per Avalon

Page 36: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Il futuro dello sviluppatoreIl futuro dello sviluppatore

Con XAML si può fare molto, ma ovviamente non tuttoNon dovremo più occuparci della presentazioneCreare classi che implementano interfacce per fornirle allo strato di presentazioneCreare controlli nuovi per dare funzionalità aggiuntive e rendere più facile il loro riutilizzo e definizione del layout

Con XAML si può fare molto, ma ovviamente non tuttoNon dovremo più occuparci della presentazioneCreare classi che implementano interfacce per fornirle allo strato di presentazioneCreare controlli nuovi per dare funzionalità aggiuntive e rendere più facile il loro riutilizzo e definizione del layout

Page 37: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

La vera rivoluzioneLa vera rivoluzioneAbbandono delle librerie Win32 usate dalle librerie ad alto livello:

Fine degli handle GDI/UserFine di coda dei messaggi e colli di bottigliaFine dei problemi relativi al threading

Uso delle potenzialità delle schede video

Buffer videoTrasformazioni ed effettiMinor problemi di memory leak (handle)

Il DCE resterà basato sui messaggi ancora per un po’, per compatibilità

Abbandono delle librerie Win32 usate dalle librerie ad alto livello:

Fine degli handle GDI/UserFine di coda dei messaggi e colli di bottigliaFine dei problemi relativi al threading

Uso delle potenzialità delle schede video

Buffer videoTrasformazioni ed effettiMinor problemi di memory leak (handle)

Il DCE resterà basato sui messaggi ancora per un po’, per compatibilità

Page 38: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Q&A TimeQ&A Time

Domande specifiche?

Le slides e le demo saranno online da domani su http://www.dotnetcircle.it/

Domande specifiche?

Le slides e le demo saranno online da domani su http://www.dotnetcircle.it/

Page 39: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Avalon ShowcaseAvalon Showcase

Per contattarci:[email protected]@aspitalia.com

I nostri blog:http://blogs.aspitalia.com

/daniele/

http://blogs.aspitalia.com/ricciolo/ Avalon Zone:

http://avalon.aspitalia.com

Per contattarci:[email protected]@aspitalia.com

I nostri blog:http://blogs.aspitalia.com

/daniele/

http://blogs.aspitalia.com/ricciolo/ Avalon Zone:

http://avalon.aspitalia.com

Page 40: Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio daniele@aspitalia.com Microsoft ASP.NET MVP Daniele Bochicchio

Dalla nostra esperienza su ASP, ASP.NET 1.0,

ASP.NET 2.0, XML, MCE, Longhorn

Corsi online, su CD Rom, in aula, per aziende e PA

http://corsi.aspitalia.com/

Dalla nostra esperienza su ASP, ASP.NET 1.0,

ASP.NET 2.0, XML, MCE, Longhorn

Corsi online, su CD Rom, in aula, per aziende e PA

http://corsi.aspitalia.com/