Première CTP le 4 décembre Nouvelle CTP depuis le 1 er février RTM milieu de cette année
A terme, WPF/e sera aussi disponible sur Smartphone et PDA
Déploiement dans IE Plugin de type ActiveX ~1MB Déploiement dans Firefox et Safari Plugin de type Netscape ~1MB sous Windows ~2MB sous Macintosh (PowerPC et Intel)
XAML est utilisé pour le rendu Possibilité de charger du code XAML à la volée Couplage fort avec javascript (HTML et AJAX) Définition des événements Définition de la logique applicative Support du code IL pour la V2 Le moteur « Telesto » supportera C# et VB.NET D’autres langages seront supportés… Le code WPF/e s’exécute dans une Sandbox Impossibilité d’accéder à des ressources locales Mode full screen supporté
BrowserApplication / OS Content Package XAML Programming Model “WPF/E” Runtime Plug-ins Platform Specific Hosting Model Platform Specific Hosting Model JavaScript C# / VB.NET Native API XML - DataFontsVideo/AudioImages Native “WPF/E” API UI & Rendering Core Platform Abstraction Layer
Core Runtime Media Integration Layer Audio Video Composition Engine Base Services XML/XAML Parser Accessibility Property System Input and Eventing Text Imaging 2D Animation Other Services Core Controls Basic Layout Container Controls
WPF/e != WPF Runtime, librairie de base et espace de nom différents Empreinte mémoire différente WPF =.NET 3.0 = 60Mo WPF/e = 2Mo max
La syntaxe XAML instanciation d’objets notions de propriété simple et attachée La plupart des concepts de WPF technique de tracés, animation et composants Les outils l’intégration avec les graphistes l’expérience des développeurs
Pas de notion de styles et de templates Pas de notion de ressources Pas de flowdocument Les composants de WPF…
HTML Contrôle WPF/e Code javascript Site Web XAML Audio/Video Code javascript
Instanciation spécifique à chaque navigateur Un script d’instanciation universel disponible aghost.js est un code cross plateforme Possibilité d’utiliser les extenders ASP.NET Ajax 1.0
ActiveX sous Windows Script générique aghost.js new agHost("wpfeControl1Host“, // hostElementID (HTML element to put WPF/E // ActiveX control inside of -- usually a ) "wpfobj", // ID of the WPF/E ActiveX control we create "900", // Width "710", // Height "#ffB42600", // Background color null, // SourceElement (name of script tag containing xaml) "xaml/MainPage.xaml", // Source file "false", // IsWindowless "24", // MaxFrameRate null); // OnError handler (method name -- no quotes) <object id="wpfobj" width="900" height="710" classid="CLSID:32C AE-40F7-AC40-81F62CB2C1DA" obligatoire
Exprime des tracés de base Path, Line, Clipping, etc. Instancie et manipule des objets Image, Rectangle, Ellipse, etc. Manipule les opérations de transformation RotateTransform, ScaleTransform, SkewTransform et TranslateTransform Manipule les animations Trigger, Storyboard, etc.
<Canvas xmlns=" xmlns:x=" x:Name="Untitled2"> <Ellipse x:Name="Ellipse" Width="582" Height="534" Canvas.Left="156" Canvas.Top="96" Stretch="Fill" StrokeThickness="6" > <Canvas xmlns=" xmlns:x=" x:Name="Untitled2"> <Ellipse x:Name="Ellipse" Width="582" Height="534" Canvas.Left="156" Canvas.Top="96" Stretch="Fill" StrokeThickness="6" > Espace de nom de WPF/e
Expression WebExpression Web Projet minimal WPF/eProjet minimal WPF/e
Le DOM de la page HTML est accessible au code WPF/e Le DOM du code WPF/e est accessible au code javascript
Evenements exposés par WPF/e cycle de vie d’une application clavier et focus curseur actions de la souris États du composant MediaElement
V1 : Evénements en javascript V2 : Les langages C# et VB.NET <Canvas xmlns=" t.com/client/2007" xmlns:x=" oft.com/winfx/2006/xaml" Loaded="javascript:onMainPageL oaded" > <Ellipse x:Name="MyEllipse“ Height="200" Width="200“ Canvas.Left="10“ Canvas.Top="10“ Fill="Blue"/> <Canvas xmlns=" t.com/client/2007" xmlns:x=" oft.com/winfx/2006/xaml" Loaded="javascript:onMainPageL oaded" > <Ellipse x:Name="MyEllipse“ Height="200" Width="200“ Canvas.Left="10“ Canvas.Top="10“ Fill="Blue"/> function onMainPageLoaded(sender, eventArgs) { ellipse1 = sender.findName("MyEllipse"); ellipse1.Fill = "Red"; ellipse1.mouseLeftButtonDown = "javascript:hdleEllipseClick"; } function onMainPageLoaded(sender, eventArgs) { ellipse1 = sender.findName("MyEllipse"); ellipse1.Fill = "Red"; ellipse1.mouseLeftButtonDown = "javascript:hdleEllipseClick"; } function hdleEllipseClick(sender, eventArgs) { alert("On clique sur moi !"); } function hdleEllipseClick(sender, eventArgs) { alert("On clique sur moi !"); }
Une animation est définie par un Storyboard Un Storyboard est déclenché par un trigger Problème : un seul trigger disponible ! Loaded du composant Astuce : Définir plusieurs Storyboard avec un BeginTime=« 1 » Dans les événements rechercher un Storyboard Appeler la méthode Begin du Storyboard
Composants Image et MediaElement Plusieurs formats supportés Image : jpg, gif, png ? Audio : Windows Media Audio, Mp3 Vidéo : Windows Media Video 2 modes d’accès pour la vidéo Vidéo streaming Progressif download
Evénement, animation et médiaEvénement, animation et média
L’assistant VS disponible dans le SDK de WPF/e Nécessite le plugin de projet ASP.NET Avantages de VS Coloration syntaxique pour la page HTML, ASP.NET et le code XAML Possibilité de débogage
Expression Web Gestion du site (css, pages HTML, ASP.NET) et du code javascript Expression Design Génère des visuels WPF/e Expression Blend Aide à la constitution des animations en V1 À terme, supportera les applications WPF/e Expression Media Encoder Génère des applications WPF/e pour la vidéo
Expression Media EncoderExpression Media Encoder
S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique Visual Studio Abonnement MSDN Premium Abonnement TechNet Plus : Versions d’éval + 2 incidents support
© 2007 Microsoft France Votre potentiel, notre passion TM