Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML Daniele Bochicchio...
-
Upload
xaviero-testa -
Category
Documents
-
view
215 -
download
2
Transcript of Windows Development Day 28/01/05 Bologna Windows Longhorn, Avalon and XAML 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
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
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
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
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)
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
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
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
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ù
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
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
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
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
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
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
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
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
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
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
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>
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
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.
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
Windows Development Day28/01/05 Bologna
Avalon e XAML su Windows XPAvalon e XAML su Windows XP
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}
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
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” />
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” />
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)
Windows Development Day28/01/05 Bologna
StyleStyleAnimazioniAnimazioniSupporto 3D in AvalonSupporto 3D in Avalon
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
Windows Development Day28/01/05 Bologna
Accesso ai dati con XAMLAccesso ai dati con XAML
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
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
Windows Development Day28/01/05 Bologna
ScrollViewerScrollViewerASPItalia.com per AvalonASPItalia.com per Avalon
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
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à
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/
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
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/