Bátorfi Zsolt batorfizsolt.spaces.live.com fejlesztési platform szakértő Microsoft Magyarország
ARCHITECT Academy Foundations WPF Architektúra Szolgáltatások Eszköztámogatás Silverlight
ARCHITECT Academy Foundations Immediate vs. Retain mode „Megjelenítés” a video memóriában Visual Tree vs. Composition Tree UCE alrendszerek Kommunikáció Ütemezés Rendering
ARCHITECT Academy Foundations Property Engine Input / Eventing System.NET Framework 2.0 Desktop Windows Manager Media Integration Layer DirectX Windows Vista Display Driver (LDDM) Windows Media Foundation Composition Engine Print Spooler ManagedUnmanaged Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES DOCUMENT SERVICES Packaging Services XPS Documents Animation 2D 3D AudioImaging Text VideoEffects Composition Engine MEDIA INTEGRATION LAYER Controls Layout Windows Presentation Foundation XPS Viewer
ARCHITECT Academy Foundations Button b1 = new Button(); b1.Content = "OK"; b1.Background = new SolidColorBrush(Colors.LightBlue); b1.Width = 100; C# Dim b1 As New Button b1.Content = "OK" b1.Background = New _ SolidColorBrush(Colors.LightBlue) b1.Width = 100 VB.NET OK LightBlue XAML
ARCHITECT Academy Foundations XAML = XML Application Markup Language Tetszőleges CLR objektumgráf deklaratív leírása Kompaktabb mint a kód! (lásd. hiarchikus egymásba ágyazás) Deklaratív UI A vizuális „fa” leírása Bármely alkalmazás (pl. webszerver) előállíthatja Expression Design/Blend támogatás Dinamikus DOM építés (createFromXaml) Minden elem azonosítható {x:Name=„objNév”} var myPath = Canvas.findName(„objNév”) Több mint egy DOM Erőforrások Stílusok Adatkötés Animáció
ARCHITECT Academy Foundations Saját objektumok példányosítása MyObject obj = new MyObject(); xmlns:mydata = „clr-namespace: MyDataClass; assembly=MyAssembly” Property Element-ek Markup Extension-ök Attached Property-k Típus konverterek
ARCHITECT Academy Foundations Deployment ClickOnce XBAP Loose XAML Ablakkezelés SDI, Dialog, Navigation Navigáció Window Struktúrált navigáció
ARCHITECT Academy Foundations Eseménykezelés RoutedEvents Hiearchiákban történt események kezelése Az objektumok beregisztrálják magukat A kiértesítést a rendszer végzi Stratégiák: Tunneling, Bubbling, Direct Felhasználási terület Keyboard, Mouse, Ink input Trigger-ek
ARCHITECT Academy Foundations Dependency Property-k Külső körülményektől függő tulajdonságok Regisztrálni kell őket Az állapotváltozásokat a rendszer kezeli Felhasználási terület Animáció Adatkötés Trigger-ek
ARCHITECT Academy Foundations Közös projekt rendszer (msbuild) Vágóasztal támogatás Erőforrások szerkesztése Egyedi stílusok Adatkötés
ARCHITECT Academy Foundations Visual StudioExpression Blend Projektváz létrehozásaProjekt váz létrehozása, erőforrások kezelése Layout finomításLayout tervezés Eseményvezérlők hozzárendeléseControl Template szerkesztés WPF speficikus kódszerkesztésTriggerek hozzáadása XAML editorData template szerkesztés Data Access Layer fejlesztésAnimációk hozzáadása DebuggolásTranszformációk kezelése DeploymentVektor szerkesztés, import
ARCHITECT Academy Foundations Felbontásfüggetlenség! 1 pixel = 1/96 inch Pixel snapping Transzformációk: translate, scale, rotate Geometrikus struktúrák Ellipse, Line, Rectangel, Path Figure -> Segment (Bezier) Csoportosítás Kivágás
ARCHITECT Academy Foundations Modell GeometryModel3D MeshGeometry3D Material Diffuse, Emissive, Specular Light Ambient Directional Point Camera Matrix Projection Megtekintés Viewport3D
Hardware optimalizált megjelenítés Text rendering pipeline DirectX támogatás Universal Compostion ClearType fejlesztések Sub-pixel positioning Y-Direction Antialiasing Szövegformázás Teljes tipográfiai kontrol (weight, stretch, style, line spacing) Beépített elválasztás (EN) Unicode, Font embedding Effektusok, dekoráció Teljeskörű OpenType támogatás Variants, Capitals, Ligatures, Swashes, Fractions, Numeric Styles, Stylistic Alternates, Tabular Style, Slashed Zero
WMV/WMA/MP3 lejátszás 1.5 MB-ban... Progresszív letöltés Streaming DRM! Tulajdonságok Width/Height, Volume, IsMuted, Position Események MediaOpened/MediaEnded DownloadProgressChanged BufferingProgressChanged Vizuális testreszabás Egyedi alakzat (clip geometry) Átfedés Átlátszóság (Opacity/Mask) Kifeszítés (Stretch) Animáció <MediaElement x:Name="media" Source="xbox.wmv" Width="300" Height="300„ CurrentStateChanged="javascript:state_changed " /> <MediaElement x:Name="media" Source="xbox.wmv" Width="300" Height="300„ CurrentStateChanged="javascript:state_changed " />
ARCHITECT Academy Foundations Adaptív UI szolgáltatások Iteratív méretező algoritmus (measure, arrange) Egymásba ágyazhatóság A fontosabbvezérlők részt vesznek benne (UIElement:Visual) A méretek határok közé szoríthatók (FrameworkElement:UIElement) Egyéb szolgáltatások: margók, igazítás, clipping Layout panelek: Canvas, StackPanel, DockPanel, WrapPanel, UniformGrid, Grid, Layout transzformációk: Scale, Rotate, Translate Saját panel-t is írhatunk
ARCHITECT Academy Foundations Control “Data Item” Source Property Binding Target Property ADO.NETXML CLR Objects LINQ Web Services WPF Elements
ARCHITECT Academy Foundations Stílus = tulajdonság/érték párok csoportja Csak Dependecy Property-ket támogat Kaszkádolható, örökölhető Vezérlőfajták közt megosztható Leszűkíthető vezérlő típusra Ha nincs azonosítva mindenre vonatkozik
ARCHITECT Academy Foundations
ARCHITECT Academy Foundations
Name Title Group
ARCHITECT Academy Foundations Minden kód ezen belül fut Hasonló a HTML DOM-hoz Minden alkalmazás egy weboldalban fut Egységes jogkör, nincs prompt Nincs kihívási lehetőség Hozzáadott szolgáltatások: Offline storage File upload controls Cross domain support
ARCHITECT Academy Foundations
ARCHITECT Academy Foundations Silverlight 1.0 Default.htm Page.xaml <OBJECT TYPE="application/x-silverlight" SOURCE="Page.xaml" … Silverlight 2.0 Default.htm Foo.xap <OBJECT TYPE="application/x-silverlight" SOURCE="Foo.xap" …
ARCHITECT Academy Foundations Csak böngészőben futhat Be van csomagolva Application osztály implementálja Manifes-ben kerül leírásra Külső assembly-ket hivatkozhat Futási időben is letölthet komponenseket AppManifest.xaml AppAssembly.dll MyImage. jpg UserControl.dll Foo.xap
ARCHITECT Academy Foundations <Deployment xmlns=" xmlns:x=" EntryPointAssembly="MyApp" EntryPointType="MyNamespace.MyApplication" >... <Deployment xmlns=" xmlns:x=" EntryPointAssembly="MyApp" EntryPointType="MyNamespace.MyApplication" >...
ARCHITECT Academy Foundations A kód DLL-ekbe fordul A XAML resource-ként ágyazódik be Az egész egy ZIP konténerbe kerül Kiterjesztés:.xap MIME type: application/x-silverlight-app Előnyök Gyors I/O, kis méret Hordozható Egyszerű karbantartani Rugalmas
Name Title Group
ARCHITECT Academy Foundations Multi gigapixeles képek valósidejű megjelenítése (zoom/pan) Sávszélesség független Új vizuális osztály: MultiScaleImage A képeket elő kell készíteni (Expression DeepZoom Composer) Az egérmozgás (pan) és mouswheel események (zoom) kezelésést nekünk kell megvalósítani (MouseWheelHelper.cs)
ARCHITECT Academy Foundations Először a legalacsonyabb felbontás jön le A később érkező nagyobb felbontású részek ráanimálódnak a képre
ARCHITECT Academy Foundations Először a legalacsonyabb felbontás jön le A később érkező nagyobb felbontású részek ráanimálódnak a képre
ARCHITECT Academy Foundations Először a legalacsonyabb felbontás jön le A később érkező nagyobb felbontású részek ráanimálódnak a képre
Name Title Group
ARCHITECT Academy Foundations WPFSilverlight2 Offline használatCsak online Hardver gyorsításSzoftver alapú rendering 3D van3D nincs Professzionális szövegkezelésElemi szövegkezelés Trigger támogatás vanTrigger támogatás nincs Datagrid van (3.5 SP1 után)Datagrid beépítve Deepzoom nincs (tervezve)Deepzoom van VSM nincsVSM van + eszköztámogatás Professzionális layoutElemi layout
Könyvek WPF Unleashed (Adam Nathan), Essential Window Presentation Foundation (Chris Anderson) Platform SDK Channel9 Blogok xhttp://blogs.msdn.com/tims/articles/ asp x
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Name Title Group