Framework. NET & Windows Presentation Foundation UE Informatique ambiant Module Informatique graphique Morgan DIOT M Buta Kabengele 5 ème année EO Option Vision Embarquée
PROGAMME DE LA SEANCE I. Partie cours (30 min) II. Un TP de prise en main de WPF(1h) III. Débriefing(30 min) 7 avril 2009 / 2
Le WPF aujourd hui 7 avril 2009 / 3
PLAN du cours I. Framework II. Microsoft. NET III. Framework.NET IV. WPF 7 avril 2009 / 4
Framework Définition: ensemble de bibliothèques et de conventions permettant le développement rapide d'applications. 4 types de Framework: 1) Framework d infrastructure -> pour développer des systèmes d exploitation, des interfaces graphiques( exemples: Framework. NET) 2) Framework d'intégration intergicielle -> Pour mettre à disposition différentes technologies sous la forme d'une interface unique. 3) Framework d'entreprise -> pour développer des applications spécifiques au secteur d'activité de l'entreprise. 4) Framework de gestion de contenu -> pour la création, la collecte, le classement, le stockage et la publication de biens numérisés. Exemples de Framework: ActionScript Foundry pour l application web, Cocoa de Apple, et MFC et.net de Microsoft 7 avril 2009 / 5
Microsoft.NET Microsoft.NET est une solution complète pour développer, déployer et exécuter des Applications de tous types, y compris des Services Web. La plate-forme.net comprend un modèle de programmation homogène et des outils de développement multi langages qui accélèrent le développement et l'intégration de Services Web et de tout autre type d'application. Multi langages la plate-forme.net laisse la liberté de développer dans le langage de son choix. Microsoft.NET est fondée sur des standards de l'industrie comme XML et les standards associés aux Services Web (SOAP, WSDL, ). 7 avril 2009 / 6
Historique du.net Janvier 2002: sortie du visual studio.net 2002 et du Framework. NET 1.0 Avril 2003: sortie du visual studio.net 2003 et du Framework. NET 1.1 Novembre 2005: sortie de Visual Studio 2005, du Framework. NET 2.0 et de SQL Server 2005 Novembre 2006: sortie du Framework 3.0 + Windows Presentation Foundation (WPF) 7 avril 2009 / 7
La vision.net 7 avril 2009 / 8 Extrait de la présentation «Introduction à la plate-forme.net» par Pascal Belaud, Microsoft France
Les Technologies.NET Des protocoles de communication basés sur le Framework.NET et non plus sur les modèles COM ou OLE ; Un langage plus simple que C/C++, VB.NET, Java, J# comme le langage C# ; Une bibliothèque compatible Framework.NET et non plus MFC, GDI ; Une machine virtuelle basée sur la CLI multi-langage ; MSBuild : un outil de gestion de projet avec plusieurs compilateurs ; Visual Studio : un IDE de développement Windows Live ID, Framework.NET : un ensemble de bibliothèques de haut niveau ; une portabilité pour les systèmes d'exploitation Windows et Windows Mobile ; Des composants facilitant le développement de services (MapPoint) et d'applications locales ou web (ASP.NET). 7 avril 2009 / 9
Avantages du modèle de programmation et des outils.net Haut niveau d'efficacité et support multi langages pour la création et l'exécution des applications et des Services Web. Exécution sécurisée des applications, capacité de monter en charge, hautement performante. Prise en charge de nombreux périphériques. Avec Visual Studio.NET et le.net Compact Framework, les développeurs peuvent utiliser les compétences existantes pour créer des solutions adaptées à une gamme de périphériques étendue. Modèle de programmation entièrement unifié et homogène facilitant le développement d'application à destination de clients légers, riches et mobiles. 7 avril 2009 / 10
Application Web avec ASP.Net Le développement des applications Internet/ Intranet à base de La technologie ASP.net offre une organisation en terme d architecture de l application comme par exemple la séparation de la présentation et code, et une variété des contrôles serveur qui permettent la création des interfaces utilisateurs. Parmi ces contrôles, on trouve : Contrôle Standard : qui permettent soit l affichage, la saisie des données et le déclenchement des processus serveur. Contrôle de données : qui permettent l accès aux bases de données. Composants Système : qui permettent l accès aux ressources Système. 7 avril 2009 / 11
Framework.NET Le Framework.NET propose un Modèle de programmation unifié avec la prise en considération des différents types de clients (Web-HTML, Windows, PocketPC) et serveurs (services transactionnels, applications internet/intranet). Le Framework.NET est multi langages avec des langages supporté par Microsoft (VB.NET, C#, C++, J#) et par ses partenaires tels que Microfocus et Cobol, Borland (Delphi) Ils contient différentes librairies communes tel que ASP.NET et différentes Windows Forms. 7 avril 2009 / 12
Framework.NET Le Framework.NET constitue également une plate-forme de déploiement et d'exécution alliant simplicité de déploiement et de configuration avec une grande fiabilité des applications et des bonnes performances. Le framework gère tous les aspects de l'exécution d'une application dans un environnement d'exécution dit «managé» : il alloue la mémoire pour le stockage des données et des instructions du programme ; il autorise ou refuse des droits à l'application ; il démarre et gère l'exécution ; il gère la ré-allocation de la mémoire pour les ressources qui ne sont plus utilisée 7 avril 2009 / 13
7 avril 2009 / 14
Common Language Infrastructure (CLI) Le CLI est une spécification qui permet d exécuter des applications Pouvant être écrites dans de nombreux langage de haut niveaux pour différents OS sans nécessité de réécrire le code pour des architecture spécifiques. Le CLI apporte un environnement virtuel d exécution comparable à celui de Sun Microsystems pour les programmes Java. Dans ces deux environnements le CLI et Java utilisent un compilateur pour transformer un code source en une forme préliminaire de code exécutable appelé bytecode. Ensuite quand le programme est exécuté, le bytecode est compilé à la volée dans le langage natif de la machine. 7 avril 2009 / 15
Les spécifications CLI: Un language commun(common Language Specification) Un ensemble de type de données communes Une présentation de la structure composent Comment les exceptions sont gérées Le code répondant aux spécifications CLI est dit managed code 7 avril 2009 / 16
Common Language Intermediaire(CLI) le Common Intermediate Language (CIL) est le langage de programmation de plus bas niveau qui peut être lu par un humain. Le code de plus haut niveau dans l'environnement.net Framework est compilé en code CIL qui est assemblé dans un code dit bytecode. CIL est un code assembleur orienté objet et pile. Il est exécuté par une machine virtuelle. Le CIL était initialement connu sous le nom de Microsoft Intermediate Language ou MSIL durant les béta du langage.net. Après la standarisation du C sharp et de la CLI, le bytecode fut officiellement référencé sous le nom de CIL 7 avril 2009 / 17
Common Language Runtime Le common Language Runtime est la machine virtuelle qui permet l exécution du code.net. Il apporte de nombreuses fonctionnalités comme le garbage collector (la mémoire utilisée par l'application lors de l'exécution est optimisée), la BCL (Base Class Library)2, et le système de sécurité. Une fois le code présent dans le CLR, il va enfin pouvoir être compilé par le JIT Compiler (''Just in Time) en langage natif de la machine. Il existe trois types de JIT : Pre-JIT : le code entier est directement compilé ; Econo-JIT : le code est compilé par parties, et la mémoire libérée si nécessaire ; Normal-JIT : le code n'est compilé que quand c'est nécessaire, mais est ensuite placé en cache pour pouvoir être réutilisé. Quel que soit le type de JIT, le but est d'accélérer l'exécution du code en réutilisant dès que possible le cache 7 avril 2009 / 18
Bibliothèques de classes.net 1) Base Class Library (BCL), rassemblant des classes permettant les manipulations de chaînes de texte, la gestion des entrées/sorties, des communications réseaux, des processus légers et le design des interfaces graphiques. 2) deux bibliothèques de classes d'accès aux données: ADO.NET permettant l'accès sous format XML aux interfaces de bases de données Les XML Classes permettent de manipuler les données XML 3) XML Web Services, Web Forms, Windows Forms: utilisés pour la création de services Web, de pages Web et d applications windows. 7 avril 2009 / 19
Windows Presentation Foundation (WPF) Technologie apparue en 2006 Sortie avec le Framework.NET 3.0 Considéré comme le successeur des WinForms (difficilement personnalisable + problèmes de travail collaboratifs) Permet De créer des interface utilisateur riches en 2D/3D La réalisation d animation et d effets visuels 7 avril 2009 / 20
Utilisation du GPU Avantages de WPF Déléguer un partie du travail du GPU Séparation code/design Séparer le designer du code behind (Arrière-plan) Designer : Travail sur l aspect de l application via le langage XAML Développeur : Travail sur la couche métier via le code behind 7 avril 2009 / 21
Avantages de WPF Plus puissant que les WinForms WPF : Met en place des animations de façon très simple et très rapide 7 avril 2009 / 22
Inconvénients de WPF Manque d intéropérabilité Impossible du WPF sur un autre système d exploitation que Windows Manque de maturité Apparue après les WinForms Communauté WPF peu développée Tout est à refaire Impossible de migrer une application WinForm vers WPF 7 avril 2009 / 23
Les outils Possibilité de gérer la partie graphique sans Visual Studio Expression Blend Gère des graphiques vectoriels Permet à un graphiste de modifier une solution Visual Studio sans manipuler de code 7 avril 2009 / 24
XAML XAML : extensible Application Markup Language Basé sur la syntaxe du XML Décrit l interface du programme Permet de créer très facilement des objets <Button Width="150" Height="150">Bouton</Button> Balise Attribut Permet de restituer des graphiques vectoriels ou modèle 3D 7 avril 2009 / 25
XAML Quelques règles élémentaires Issues de la syntaxe du XML Les balises ouvertes doivent être refermées sans se chevaucher <Balise1><Balise2>Chevauchement des balises</balise1></balise2> <Balise1><Balise2>Pas de Chevauchement des balises</balise2></balise1> Chaque attribut doit obligatoirement avoir une valeur inscrite entre guillemets ou apostrophes. <Button Width="150" Height="150">Bouton</Button> 7 avril 2009 / 26
Un exemple de code <Window x:class="monexemple.window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="150" Width="200"> <Grid> <Button x:name="bouton1" Margin="20,20,20,20 Click="Bouton1_Click"">Texte du bouton</button> </Grid> </Window> private void Bouton1_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Hello world","message Box avec bouton", MessageBoxButton.OK); } 7 avril 2009 / 27
Avez-vous des questions? 7 avril 2009 / 28