La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction à la Technologie .NET

Présentations similaires


Présentation au sujet: "Introduction à la Technologie .NET"— Transcription de la présentation:

1 Introduction à la Technologie .NET
Présenté par Franck GIL Ingénieur .Net

2 © 2007 Franck GIL – franck.gil@free.fr
Objectif de ce cours Introduction à la plateforme .Net Présentation de l’AGL Visual Studio Apprentissage du langage C# Création d’une Architecture 3-tiers Mise en place d’un client léger Mise en place d’un client lourd © 2007 Franck GIL –

3 Présentation

4 © 2007 Franck GIL – franck.gil@free.fr
Un peu d’histoire 1983 : C++ 1991 : Green 1996 : Java 1 2001 : .NET 1 2005 : .NET 2 1972 : SmallTalk 1992 : Oak 1997 : J++ 2002 : Web Services 2007 : .NET 3 Une petite équipe de chez Sun dirigée par James Gosling travaillée sur le projet green (plateforme de communication pour les appareils électroniques ménagers) => OAK Naissance de JAVA 1 car la technologie basé sur OAK était polyvalente Microsoft réactif voulu standardisé et intégré ce langage dans son environnement de développement Visual studio sous le nom de J++. Anders Hejisberg créateur du turbo pascal et de delphi © 2007 Franck GIL –

5 © 2007 Franck GIL – franck.gil@free.fr
Un peu d’histoire © 2007 Franck GIL –

6 © 2007 Franck GIL – franck.gil@free.fr
Qu’est-ce que .Net Plateforme de développement qui regroupe : Un runtime pour exécuter des applications Plusieurs langages Une API complète Un environnement de développement .Net se lit dot net Runtime permet d’exécuter les applications. CLR = Common langage runtime © 2007 Franck GIL –

7 © 2007 Franck GIL – franck.gil@free.fr
Qu’est-ce que .Net Définition : .Net .NET est une plateforme complète pour développer, déployer et exécuter des Applications Web, Windows, Mobiles et serveur mais aussi des webServices. © 2007 Franck GIL –

8 © 2007 Franck GIL – franck.gil@free.fr
Les concurrents de .Net Application Windows Delphi Windev Anciens outils Microsoft (VB6 et C++/MFC) Application web PHP ASP et les script CGI Flash Applets JAVA Aucun concurrent pour la mobilité } Dynamique côté serveur MFC => Microsoft Foundation Class Différencier la partie serveur et client dynamique. .Net inutilisé pour faire des applets, ca va changer avec l’apparition du XAML inclus dans le framework 3.0 = APPLET JAVA. Pour la mobilité .Net est le plus utilisé à cause de Windows CE majoritaire sur le parc mondial de PDA qui est conçu principalement pour le développement à l’aide du .NET framework } Dynamique côté client © 2007 Franck GIL –

9 Les principaux langages
Continuité de C et C++ Ressemble au JAVA VB .NET Langage VB6 remanié Entièrement objet C++ .NET Identique au C++ Ajout des classes dites « managés » J# Se veut être compatible JAVA VB .Net est entièrement intégré à .Net contrairement a VB6 qui lui était purement orienté COM/Win32. VS fournit un convertisseur pour les vieux projets VB6 Classes managés=> gérées par un environnement d’exécution © 2007 Franck GIL –

10 © 2007 Franck GIL – franck.gil@free.fr
Les autres langages .Net intégre des compilateurs pour : Fujitsu netCOBOL, Eiffel, Mercury, Active Oberon, Jscript.Net, Delta Forth, SmallScript, SmallTalk, Fortran, Perl, Mondarian, Pascal, Dynalog, Standart Ml, ANSA RPG, Python, Delphi.NET … Possibilité d’écrire directement en MSIL Windev et .NET Import et export .NET Utilise la machine virtuelle de windev MSIL => langage intermédiaire interprété par la CLR. Windev = > impossible de générer des application .Net pure exécuté à l’aide du runtime .NET (CLR) © 2007 Franck GIL –

11

12 Installation du Framework .NET 2.0

13 © 2007 Franck GIL – franck.gil@free.fr
Contenu du Framework Le Common Language Runtime (CLR) Suffisant et nécessaire pour WindowsForms Les WebForms utilisent un runtime lié à IIS. Un garbage collector Gère la mémoire utilisée par les applications Une bibliothèque de classes Regroupe les briques logicielles de bases IIS => serveur web de Microsoft équivalent à Apache pour les applications php. © 2007 Franck GIL –

14 Compilation et exécution
Compilation : - traduction des fichiers source dans le langage MSIL(Microsoft intermédiaire langage) - Les définitions des types (métadonnées) et les fichiers de ressources sont récupérées - Le tout abouti à la création d’un .EXE ou .DLL appelé assemby. Exécution : - Interprétation du code MSIL par le JIT - Méthodes ainsi compilé sont stockées dans le gac - Méthode compilé une seule fois sauf si le num d’assembly change Première exec très lente. © 2007 Franck GIL –

15 © 2007 Franck GIL – franck.gil@free.fr
Les Namespaces Les Namespaces équivalent des Packages en JAVA Les Namespaces regroupent un ensemblent de classes de même nature. INSISTER SUR L’INTELLISENCE Java = Javadoc et .Net=librairie msdn © 2007 Franck GIL –

16 Les principaux Namespaces du Framework 2.0
Tout hérite de la classe System.Object System Byte, Int16, Int32, Int64, Float, Double, Decimal, Char, String, Console, … System.Collections ArrayList, Hashtable, Queue, Stack, SortedList, … System.Collections.Generics List<Type>, Queue<Type>, Stack<Type>, … System => Type de base et accès Console System.Collections => collection d’objet System.Collections.Generic => collection d’objet typé © 2007 Franck GIL –

17 Les principaux Namespaces du Framework 2.0
System.Data Dataset, DataTable, DataRow, DataView, … System.Data.Common DbCommand, DbConnection, DbTransaction, … System.IO File, Directory, Stream, FileStream, TextReader, TextWriter, … System.Security Permissions, Policy, Cryptography, … System.Data => Récupération des données de la base à l’aide des classes représentant l’architecture ADO.NET. System.Data.Common => Accés aux sources de données de façon générique (connection, transaction et commande sql). Existance de namespace spécifique à chaque source de données (OracleClient,SQL Client,OleDB,Odbc, …) System.IO => Accès aux fichiers System.Security => Contrôle de la sécurité © 2007 Franck GIL –

18 Les principaux Namespaces du Framework 2.0
System.Threading Thread, Mutex, Monitor, Timer, … System.Windows.Forms Control, Form, Button, ListBox, MainMenu, StatusBar,DataGrid, … System.Web HttpRequest, HttpResponse, HttpCookie… System.Web.UI Page, Button, ListBox, HyperLink, DataGrid, … System.Threading => classes permettant la programmation multithread et la synchronisation des processus. System.Windows.Forms => classes permettant la création d'applications Windows qui tirent parti des fonctionnalités d'interface utilisateur évoluées disponibles dans le système d'exploitation Microsoft Windows. System.Web=> classes permettant la communication entre le navigateur et le serveur. Il inclut la classe HttpRequest qui fournit des informations sur la demande HTTP en cours et la classe HttpResponse qui gère la sortie HTTP vers le client. Il inclut également les classes de manipulation des cookies. System.Web.UI => fournit des classes qui permettent de créer des pages ASP.NET. © 2007 Franck GIL –

19 Maturité de la plateforme : vous n’êtes pas seul !
Les décideurs reconnaissent : Fiabilité, performance et interopérabilité Stratégie « Architecture Orientée Services » et les Services Web Productivité Les développeurs apprécient : Richesse fonctionnelle Stabilité Et … © 2007 Franck GIL –

20 Les Communautés de développeurs .NET

21

22 La gamme Visual Studio Chefs de projets Team Suite Testeurs
Visual Studio Team Edition Software Developers Visual Studio Team Edition Software Architects Visual Studio Team Edition Software Testers Architectes Développeurs Entreprise Visual Studio Professional Visual Studio Tools for Office Consultants Editions Express Cinq produits d’entrée de gamme Ces outils légers à télécharger et à installer sont spécialisés par langage de développement ou par scénario. Adaptés aux amateurs et aux étudiants vu qu’il est gratuit, leur interface simplifiée permet de découvrir la programmation pour Windows et le Web. On va s’intéréser plus particulièrement à Visual Web Developer 2005 Express Edition, Visual C# 2005 Express Edition Visual Studio 2005 Standard Ce produit d’entrée de gamme regroupe en un seul produit les éditions Express plus quelques fonctionnalités comme le développement pour Pocket PC, le diagramme de classes et la possibilité de faire des composants. Visual Studio 2005 Professional Il inclut le développement et débogage pour SQL Server, une édition de Crystal Reports®, Windows Server 2003 et SQL Server utilisables à des fins de développement ainsi que des fonctionnalités XML avancées. Complété par VSTO, il vous permet de développer facilement des applications pour Office Visual Studio 2005 Team System Un ensemble d’outil pour gérer le cycle de vie des applications et le travail en équipes. 3 éditions : Et un serveur Visual Studio 2005 Team Foundation (partie serveur, toujours vendue à part) La combinaison de Team Foundation avec les autres éditions a pour objectifs : d’améliorer la productivité individuelle des architectes, développeurs, testeurs et chefs de projet ; d’améliorer la qualité du code sans perturber les habitudes des développeurs ; d’avoir à tout moment la meilleure visibilité possible sur l’état d’avancement et la qualité du projet. Professionnels Dév occasionnels Visual Studio Edition Standard Hobbyists C# VB C++ J# Web Editions Express Edudiants Passionnés Débutants

23 Visual Web Developper Express
L’installation du framework englobe : l’installation du CLR, d’un garbage collector, d’une bibliothèque de base

24 Visual C# Express Edition
L’installation du framework englobe : l’installation du CLR, d’un garbage collector, d’une bibliothèque de base

25 Le langage C#

26 Généralités du langage C#
Reprend la syntaxe de C++ et Java Le C# est case sensitive Les mots clés : C# Java using import Console.WriteLine System.out.println Console.Write System.out.print string / String String System.Object java.lang.Object is instanceof internal protected sealed final base super ToString() toString() ... © 2007 Franck GIL –

27 © 2007 Franck GIL – franck.gil@free.fr
Types numériques Les entiers : Le type int reste le plus utilisé Alias Type Signé Valeurs stockables Taille byte System.Byte Non De 0 à 255 8bit sbyte System.Sbyte Oui De à 127 ushort System.UInt16 De 0 à 65536 16bit short System.Int16 De à 32767 uint System.UInt32 De 0 à 4 milliards 32bit int System.Int32 De -2 à 2 milliards ulong System.UInt64 De 0 à 18 milliards de milliards 64bit long System.Int34 ± 9 milliards de milliards © 2007 Franck GIL –

28 © 2007 Franck GIL – franck.gil@free.fr
Types numériques Les flottants : Double => préconisé par le C# Decimal => idéal pour les monétaires Alias Type Base Valeurs stockables Taille float System.Single Binaire ±1.5×10-45 à ±3.4×1038 32bit double System.Double ±5.0× à ±1.7×10308 64bit decimal System.Decimal Décimal ±10-28 à ±7.9×1028 128bit Float tende à disparaître Double utilisé pour les constantes à virgules et par la classe math. Décimal stocke le nombre sous forme d’entier divisé par une puissance de dix. Les types numériques ne peuvent pas avoir la valeur nul © 2007 Franck GIL –

29 © 2007 Franck GIL – franck.gil@free.fr
Chaînes de caractères Affectation de null possible En java string = objet , en C# string = type Les caractères spéciaux Les concaténations Remplacer \r\n par Environment.NewLine toString() en java et ToString() en C# /*** Java ***/ String s = "salut"; String s2; s2 = s.clone(); /*** C# ***/ String s = "salut"  ; s2 = string.Copy(s) //la méthode Copy est STATIQUE!!! string chemin01 = "C:\\mon répertoire\\projet2\\csharp.cs"; string chemin02 répertoire\projet2\csharp.cs"; string texte01 = "c'est pas très\nlisible\t\tdes textes formatés\n comme ça"; string texte02 pas très lisible des textes formatés comme ça"; /*** Concaténation simple ***/ String s = "salut"  ; string s2= "ça va"  ; s += ", " + s2 + " !"; // s contient alors « salut, ça va ! » /**** Concaténation multiple ***/ StringBuilder s = new() StringBuilder; s.Append(" Select * "); s.Append(" From Eleve "); s.Append(" Where Eleve.Nom = ‘Toto’ "); s.ToString() ;// affiche « Select * From Eleve Where Eleve.Nom = ‘Toto’ Les chaînes peuvent avoir la valeur nulle contrairement aux numériques. Le reste des méthodes est globalement le même qu'en Java. Ainsi on retrouve avec la même syntaxe Equals (attention à la Majuscule), Substring, ... Mais Length est un attribut en C#. StringBuilder utile dans le cas de nombreuses concaténations consécutives Append() © 2007 Franck GIL –

30 Tableaux et collections
Les tableaux statiques (classe Array) Les tableaux dynamiques /*** Déclaration ***/ int [ ] tab1 = new int[10]; Int[,] tab2 = new int[4,5]; Int [ ][ ] tab3 = new int [4][]; /*** Affectation ***/ tab1[1] = 4; tab2[1,1] = 4; tab3[1] = tab1; /*** Méthodes ***/ int tailleDimension = tab2.GetLength(1); // tailleDimension 5 int nbDimension = tab2.Rank; // nbDimension 2 /*** Déclaration ***/ List<int> list1 = new List<int>(); List<List<int>> list2 = new List<List<int>>(); /*** Affectation ***/ list1.Add(1); list1.Add(2); /*** Méthodes ***/ int taille = list1.Count; // taille 2 int indice = list1.IndexOf(2,0); // indice 1 list1.Insert(indice,4); Int valeur = tab[indice]; // valeur 4 Les tableaux sont des instances de la classe Array © 2007 Franck GIL –

31 © 2007 Franck GIL – franck.gil@free.fr
Le casting La classe Convert L’upcast Le DownCast Nouveau casting Decimal d = Convert.ToDecimal("10,2"); Vache maVache = new Vache(); Animal monAnimal = maVache; Animal monAnimal = new Vache(); Vache maVache = (Vache) monAnimal; Le downcast déclenche une erreur si mon animal n’est pas une vache. Le nouveau cast retourne null si monAnimal n’est pas une vache Animal monAnimal = new Vache(); Vache maVache = monAnimal as Vache; © 2007 Franck GIL –

32 Structures de contrôles
La condition : if Le switch La boucle for La boucle While La boucle foreach int maValeur; if (maValeur == 1) { Console.WriteLine("maValeur est égal à 1"); } else if(maValeur) Console.WriteLine("maValeur est égal à 2"); else Console.WriteLine("maValeur n’est ni égal à 1 ni égal à 2"); int maValeur; switch(maValeur) { case 1 : Console.WriteLine("maValeur est égal à 1"); break; case 2 : case 3 : Console.WriteLine("maValeur est égal à 2 ou 3"); default : Console.Write("maValeur est différent de 1,2 et 3"); } int maValeur; int i; for (i=0;i<mavaleur;i++) { Console.WriteLine(" i est égal à " + i.ToString()); } int maValeur; int i = 0; while (i<maValeur) { Console.WriteLine(" i est égal à " + i.ToString()); i++; } List<int> maList = new List<int>(); foreach( int i in maList) { Console.WriteLine(" i est égal à " + i.ToString()); } Switch => il faut un break dans chaque case s’il ya du code. Foreach = nouveauté du c# permet d’énumérer simplement les objets d’une listes ou tableau d’objets. Utile quand on veut parcourir l’intégralité de la collection. © 2007 Franck GIL –

33 © 2007 Franck GIL – franck.gil@free.fr
Les classes Les attributs Les constructeurs Les propriétés Les méthodes normales, abstraites et virtuelle Les interfaces Les classes abstraites L’héritage La documentation XML © 2007 Franck GIL –

34 © 2007 Franck GIL – franck.gil@free.fr
Les exceptions Pas de vérification à la compilation (throws) Déclencher une exception Capturer une exception throw new Exception("T'as tout planté!"); try { … } catch (TypeException ex) finally Try = Placer ici les instructions susceptibles de déclencher une exception Catch = Instruction exécuter dans le cas d'une exception de Type "TypeException" Finally = Série d'instructions exécutée dans tous les cas © 2007 Franck GIL –

35 © 2007 Franck GIL – franck.gil@free.fr
Pour aller plus loin La reflection Récupérer des types dans un assembly (fichier dll) sans faire d’import Invoquer ses méthodes et ses attributs TRES LENT !!!! Les classes partielles Couper une classe en plusieurs fichiers Les traces Namespace qui permet de gérer un fichier log © 2007 Franck GIL –

36 Règles de nommage et programmation
Donner des noms qui représentent au mieux les choses (préfixe de type à bannir) Méthodes, propriétés et classes commencent pas une majuscule Les champs, variables et paramètre par une minuscule Privilégier les propriétés aux attributs publics Utiliser la notation hongroise (maVariableAMoi) Utiliser la documentation XML Mettre une classe par fichier © 2007 Franck GIL –

37 Architecture 3-tiers

38 © 2007 Franck GIL – franck.gil@free.fr
Principe Couche présentation Mobile Web Windows B2B Web Service SOAP ? UTILS Couche métier BL DAL Couche de persistance Procédures stockées SGBD © 2007 Franck GIL –

39 © 2007 Franck GIL – franck.gil@free.fr
Exemple Enoncé de l’exemple L’exemple consiste à développer une application de gestion d’un ensemble de candidats. Il faudra pour cela, réaliser un écran permettant d’afficher la liste des candidats, ainsi qu’un formulaire d’ajout et de modification d’un candidat. Il est demandé de construire un client lourd et un client léger permettant de réaliser ces actions. Les deux clients appelleront des webServices qui permettent de gérer une liste de candidats. © 2007 Franck GIL –

40 © 2007 Franck GIL – franck.gil@free.fr
Modèle de données Modèle Conceptuel de Données (MCD) Modèle Logique de Données (MLD) © 2007 Franck GIL –

41 Data Access Layer (DAL)
L’objet Connection Chaine de connexion Visual studio La couche d’accès aux données consiste à définir tous le codes qui exécutera tous les traitements SQL Cette couche est très importante car elle permet de séparer le code SQL (spécifique au SGBD) au code métier qui lui doit rester totalement indépendant du SGBD utilisé. .Net met à la disposition des développeurs une panoplie d’objets permettant de réaliser cette couche c’est la technologie ADO.NET Connection va permettre de définir une connexion de l’ouvrir et de la fermer. © 2007 Franck GIL –

42 Data Access Layer (DAL)
L’objet Command L’objet command permet d’exécuter la requête qui lui sera affecter. Il ya trois façon d’exécuter la requête : ExecuteNonQuerry = UPDATE, INSERT, DELETE ExecuteScalar = SELECT COUNT(*) retournant un seul résultat ExecuteDataReader = SELECT * retourne un tableau d’enregistrement mais utilise un autre objet le DataReader => à Eviter car trop gourmant en mémoire et trop lié avec la base préféré la méthode suivante. © 2007 Franck GIL –

43 Data Access Layer (DAL)
Les objets Dataset et DataAdapter Les dataset sont plus léger que les datareader. Mais le code est plus complex vu qu’il faut utiliser un DataAdapter qui convertira le résultat de la requête en Dataset grâce à la méthode FILL. Remarque Dataset ne commence pas par SQL donc c’est un objet générique. Structure du Dataset complexe avec table et rows © 2007 Franck GIL –

44 Data Access Layer (DAL)
Command paramétré => objet Parameter Il est possible d’appelé des requêtes paramêtré ou bien des procédures stockés. Il existe donc des objets Parameter. Il faut préciser un nom , une valeur , un type, une direction © 2007 Franck GIL –

45 Data Access Layer (DAL)
L’objet Transaction L’objet transaction permet de lancer un certain nombre de requête …. © 2007 Franck GIL –

46 Data Access Layer (DAL)
Deux namespaces pour accéder aux données System.Data => regroupe des namespaces spécifiques pour chaque SGBD System.Data.Common => Contient des objets génériques Création d’un DAC Factoriser et rendre générique le code La classe DbFactories et la classe DbFactory Création d’une classe servant de DAC DbFactories c'est elle qui renvoie les objets des différents providers selon le paramètre qui lui est passé. C'est pourquoi les méthodes de cette classe sont statiques. Nous retourne la bonne fabrique d’objet ado en fonction du paramêtre passé = Provider DbFactory = Fabrique retourant les objets command, connection, etc …. Créer avec le bon constructeur SQL ou ect qui implemente l’interface IDB = interface pour lesquelles ont ne peut pas créer d’objet. L'utilisation d'une classe fabrique n'est pas "la" solution dans tous les cas. Effectivement, les différents systèmes de bases de données n'implémentent pas tous de la même manière le langage SQL. Il s'agit donc tout de même de réécrire les requêtes pour certaines de ces bases de données. © 2007 Franck GIL –

47 © 2007 Franck GIL – franck.gil@free.fr
Business Layer (BL) Dérivation du schéma UML Aucun code SQL Chaque classe de la BL doit avoir sa propre classe dans la DAL Utilise les méthodes statiques de la DAL pour les accès aux données Evite d’instancier des classes inutilement Gain de place en mémoire Gain de performance © 2007 Franck GIL –

48 © 2007 Franck GIL – franck.gil@free.fr
Web Services SOAP Les protocoles HTTP et HTTPS servent à transporter les données sur le réseaux entre le service web et le consommateur de service web. Les données transportées utilise le formats xml associée à la technologie SOAP. La machine ou se trouve le service web devra comporté le serveur IIS pour rendre disponible de service web au reste du monde et le Framework pour exécuter le code du service web. La machine du consommateur devra quand à elle posséder IIS. © 2007 Franck GIL –

49 © 2007 Franck GIL – franck.gil@free.fr
Web Services SOAP Les autres protocoles COM/DCOM (Component Object Model) Plateforme Windows en Intranet Port d’écoute statique => problèmes de sécurité CORBA Langage neutre de définition d’interface IDL Protocole commun de transport de données Architecture très lourde à déployer RMI (Remote Method Invocation) Très simple d’utilisation et très efficace Fonctionne uniquement sous JAVA COM et DCOM développé par Microsoft pour faire communiqué ces composants, il ya eu un portage UNIX. Corba facilite la communication sous n’importe qu’elle plateforme IDL = Interface definition langage © 2007 Franck GIL –

50 © 2007 Franck GIL – franck.gil@free.fr
Web Services SOAP Le fichier WSDL Décrit le fonctionnement du web service Structuré en XML Généré automatiquement par le Framework Le fichier Proxy Créé à partir du contrat WSDL Contient des objets retournés par le web service Généré lors de la création d’une référence web dans les interfaces clients Il faut savoir avant toute chose que chaque web service possède un fichier WSDL WSDL = WEB SERVICE DESCRIPTION LANGUAGE © 2007 Franck GIL –

51 Application Web

52 Fonctionnement général
L’utilisateur envoie une requête HTTP Le serveur construit la réponse La réponse est affichée sur le navigateur Appli traditionnelle on fait un post du formulaire => le serveur n’a que des données Aplli ASP.NET le contexte de la page est transmis au serveur avec tout les composants. Une page web ASP.NET n’est plus un tas de code HTML avec des parties dynamiques à l’intérieur, mais un ensemble d’objets structurés ayant des champs, des méthodes et des événements. © 2007 Franck GIL –

53 © 2007 Franck GIL – franck.gil@free.fr
Côté serveur L’action du client provoque un Post Back Un rechargement de la page Déclenché par les événements associés aux contrôles A chaque post Back de la page une instance est recrée donc aucun attribut de la page n’est conservé. Par contre tout les contrôles sont réaffectés avec leurs valeurs d’avant Post Back. © 2007 Franck GIL –

54 Les variables de l’ASP.NET
Les variables d’applications Stockent la valeur tant que le serveur web marche Communes à tous les utilisateurs Les variables ViewState Conservent des données entre 2 Post Back Pour la même page Pour le même utilisateur Dans la même fenêtre du navigateur © 2007 Franck GIL –

55 Les variables de l’ASP.NET
Les variables de session Conservent des données d’une page à l’autre Pour le même utilisateur Dans la même fenêtre du navigateur Les cookies Stockent des données sur la machine du client © 2007 Franck GIL –

56 © 2007 Franck GIL – franck.gil@free.fr
Les fichiers spéciaux Le fichier Web.Config Gestion des utilisateurs, rôles et droits d’accès Configuration de l’application Configuration de fournisseur Le fichier Global.asax Evénements liés aux serveurs Evénements liés aux sessions Les fichiers de ressources Fichier XML Standard pour stocker les messages d’erreur © 2007 Franck GIL –

57 © 2007 Franck GIL – franck.gil@free.fr
Les contrôles Les contrôles HTML (client) Indépendant s du serveur Le littéral permet d’ajouter du HTML dynamiquement Les contrôles ASP.NET (serveur) Instances de classes .NET Ajout d’événements Les contrôles utilisateurs (réutilisable) Pages au format ASCX Permet de définir le code propre au contrôle © 2007 Franck GIL –

58 Conseils ergonomiques
Position de la fenêtre après un Post Back Cas particulier Cas général Gestion du focus Par défaut sur la page Pour un champ particulier Messages d’alerte OnClientClick est une nouveauté d’ASP.NET 2.0 LinkButton, Button et ImageButton Pour le focus => Chaque contrôle de saisie ASP.NET 2.0 dispose de cette méthode focus(). Pour les contrôles composites, ex le contrôle Login, c’est la première TextBox qui reçoit le focus. © 2007 Franck GIL –

59 Conseils ergonomiques
Ordre de tabulation Propriété TabIndex Respecté par les navigateurs Raccourci clavier Propriété AccessKey à combiner avec ALT Taille des champs de saisie Propriété Columns: nombre de caractères affichés Propriété MaxLength : nombre maximal de caractères autorisés De nombreux utilisateurs utilisent la touche Tab pour se déplacer entre les champs d’un formulaire. Les raccourci clavier peuvent être utiles pour accéder à une fonction spéciale présente sur toutes vos pages, une zone de recherche avec ALT+4 par exemple. Attention certaines touches sont réservées au navigateur, ex : ALT+F pour ouvrir le menu Fichier sous Internet Explorer. Rester cohérent avec la taille définit en base de données, il faut que la taille de la textbox soit égal à la taille du champ dans la base. © 2007 Franck GIL –

60 Conseils ergonomiques
Premier élément dans les listes Propriété AppendDataBoundItems Aides à la saisie Signalez les champs obligatoires Propriété ToolTip Cohérence des interfaces Balise HTML <fieldset> suivie de <legend> pour définir un titre Contrôle serveur Panel et propriété GroupingText pour que ces éléments statiques ne soient pas écrasés lors du databinding avec votre source de données. ToolTip pour indiquer une aide lors du passage de la souris sur le champ. Il s’agit aussi d’informations sur le format attendu, par exemple précisez « JJ/MM/AAAA » pour une date. Aucune aide n’est superflue et cela limitera les hésitations des utilisateurs. Une bonne ergonomie passe aussi par une interface soignée et efficace. Veillez à ce que vos formulaires soient clairs, bien présentés, les zones bien délimitées, et l’ensemble doit être cohérent sur toutes les pages du site. © 2007 Franck GIL –

61 Conseils ergonomiques
© 2007 Franck GIL –

62 Harmonisation des interfaces
Utilisez la notion de thèmes Les fichiers Skin Les fichier CSS Contenus dans le dossier App_Themes Appliquer un thème à une page dans l’événement Appliquer un thème à toute l’application Vous pouvez complètement décrire comment s’afficheront vos contrôles serveur dans un fichier externe. Cela vous permet de dissocier totalement le contenu de la mise en forme dans vos pages. © 2007 Franck GIL –

63 © 2007 Franck GIL – franck.gil@free.fr
La Master Page Permet de décrire les éléments qui seront présent sur toutes les pages du site web © 2007 Franck GIL –

64 © 2007 Franck GIL – franck.gil@free.fr
Les validateurs RequiredFieldValidator Pour les champs obligatoires RangeValidator Limite la saisie à un intervalle de valeurs RegularExpressionValidator Saisie contrôlée par une expression régulière CompareValidator Compare la valeur de 2 contrôles Contrôle le type saisi dans un contrôle CustomValidator La saisie est Contrôlée par une fonction Les vérifications se font coté client si javascript est activé sinon coté serveur. Il est important de vérifié si la page est valide avant de réaliser le code d’une action par la syntaxe suivante If (Page.IsValid) © 2007 Franck GIL –

65 © 2007 Franck GIL – franck.gil@free.fr
Web 2.0 vers AJAX Pas une techno mais un ensemble de techno HTML,XHTML et CSS pour le design Le javascript, le DOM et le Flash pour le dynamisme sur la page XML, XSLT et l’objet XMLHttpRequest pour échanger et manipuler les données de manière asynchrone avec le serveur web (sans rechargement de page). © 2007 Franck GIL –

66 © 2007 Franck GIL – franck.gil@free.fr
Web 2.0 vers AJAX Avantages Gain de bande passante Délais d’attente pour l’utilisateur diminués Surcharge du serveur http diminuée Un plus grand dynamisme des pages pour l’utilisateur, dû à une réponse instantanée Inconvénient Une connaissance poussée du JavaScript Des tests importants afin de vérifier le bon fonctionnement (compatibilité des navigateurs…) Le support du JavaScript doit être activé dans le navigateur du client Les applications Ajax permettent donc de ne pas gaspiller de bande passante. On  obtient alors une réactivité plus importante, puisque les requêtes http sont réduites. Les applications sont moins lentes pour l’utilisateur puisque la requête côté serveur est réduite. En effet, une grande partie du traitement se fera du coté client. © 2007 Franck GIL –

67 © 2007 Franck GIL – franck.gil@free.fr
Le projet Atlas Microsoft Ajax Library ScriptManager UpdatePanel UpdateProgress AJAX Control ToolKit Les Extender ScriptManager : permet d’inclure les bons fichiers JavaScripts par rapport au navigateur. Obligatoire pour utiliser le Framework Microsoft Ajax Library. Vous ne devez mettre qu’un seul script manager par page. UpdatePanel : Tout ce qu’il y’a à l’intérieur de cet objet sera traité en asynchrone. C’est un peu l’Ajax du feignent. Il suffit d’y glisser vos composants asp.net 2.0 pour qu’ils deviennent asynchrones. Merci Microsoft. UpdateProgress : Permet d’afficher une image pendant le traitement de la requête. Il fonctionne associé avec un UpdatePanel. © 2007 Franck GIL –

68 Application Windows


Télécharger ppt "Introduction à la Technologie .NET"

Présentations similaires


Annonces Google