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

Les Rencontres Visual Basic Lille, 25 Novembre 2004

Présentations similaires


Présentation au sujet: "Les Rencontres Visual Basic Lille, 25 Novembre 2004"— Transcription de la présentation:

1 Les Rencontres Visual Basic Lille, 25 Novembre 2004
Alain Le Hegarat, Responsable Marketing Développeurs Éric Vernié, Relation technique Développeurs Franck Ella, Ingénieur Support Technique (Accès aux données)

2 Les Rencontres Visual Basic Nantes, 7 Décembre 2004
Nicolas Clerc Micropole-Univers Lucas, Responsable Marketing Développeurs Éric Vernié, Relation technique Développeurs Axel Guerrier, Ingénieur Support Technique (Accès aux Données)

3 HP Partenaire du tour Visual Basic
Intégrateur des technologies Microsoft : Plus de 10M de postes Windows 2000/XP déployés Plus de 13M de postes MS Exchange 2000/2003 déployés Services de support Microsoft Développement conjoint de solutions verticales : HP OpenBank – Banque HP CBI.NET – Industrie HP ISM.NET – Telecom Centre d’expertise et de benchmarks dédiés Microsoft Un portfolio de solutions pour une infrastructure Microsoft étendue Serveurs 32 et 64 bits Stockage NAS, SAN Postes de travail… Windows Mobile Phone Edition Windows XP Edition Tablette PC

4 LearningTree, partenaire du tour Visual Basic
Des cursus cohérents pour : C eux qui sont nouveaux dans le développement logiciel Les programmeurs existants qui transfèrent leurs compétences issues d’autres disciplines de programmation sous Windows Des questions / réponses par stage pour vérifier l’adéquation du besoin au stage proposé Les avantages de Learning Tree Indépendance par rapport aux technologies Des formateurs experts avec une expérience de terrain Jeu Concours gagnez une formation .NET chez Learning Tree Tirage au sort à 16h00

5 Visual Basic .NET 2003 initiation
Permet la création de projet WinForm, WebForm et comprend l’assistant de migration VB6 vers VB .NET Ne permet pas la création d’applications Web Forms Mobile ou la création de “User Control” ou “Class Library” Vous permet aussi de Bénéficier du support VS .NET Pro au prix de la mise à jour

6 Découvrez la nouvelle génération d’environnement de développement pour les Professionnels à prix spécial ! Visual Studio .NET 2003 offre un environnement de développement complet et intégré pour créer, déboguer et déployer des applications pour Microsoft Windows, le Web et les périphériques mobiles. Le nouveau Microsoft® Visual Studio .NET 2003 Professional Edition spéciale offre toute la productivité de Visual Studio .NET 2003 Professional et inclut également: Windows Server™ 2003 Standard Edition* SQL Server™ 2000 Developer Edition* Les outils Microsoft Visual Studio Tools pour Microsoft Office System – utilisez la puissance du .NET Framework pour écrire du code destiné à des applications Microsoft Word 2003 et Microsoft Excel 2003 Le CD des labs .NET – pour s’auto former sur les technologies de développement .NET. Un livre de formation à ASP .NET. Faites la mise à jour à partir d’outils Microsoft ou applications concurrentes VS .NET 2003 Ed Spéciale……… 927 €HT** Mise à Jour……………..……..……632 € HT ** * Licences de test et de developpement ** prix moyen estimés Utilisez Visual Studio .NET Professional 2003 Edition spéciale pour • Créer rapidement des applications Web • Augmenter votre productivité pour tout type d’application • Augmenter la performance de vos applications Pour en savoir plus vous pouvez consulter le site

7 http://www.microsoft.com/france/msdn/abonnements Visual Studio .NET
Les abonnements MSDN Soyez toujours à la pointe des derniers développements en cours Les abonnements MSDN donnent accès à l'intégralité des produits et ressources dont les développeurs professionnels ont besoin pour résoudre n'importe quelle problématique de développement, y compris les derniers outils de développement, systèmes d'exploitation et serveurs d'entreprise, ainsi que les applications de productivité personnelle, comme Office 2003 et Visio, la librairie MSDN et un accès au support technique, en fonction du niveau d'abonnement. Ces abonnements sont devenus un service primordial pour les développeurs leur fournissant un accès prioritaire à plus de 1000 produits mis à jour par DVD, CD ou téléchargements comprenant les derniers outils, plates-formes et technologies serveur * A chaque version de Visual Studio .NET (à partir de la version Pro) correspond une version d'abonnement MSDN. Visual Studio .NET est disponible au téléchargement sur le site réservé aux abonnés MSDN Visual Studio .NET inclus* MSDN Library Abonnement € HT** Mise à jour € HT** MSDN Operating System € HT** Mise à jour € HT** MSDN Professional € HT** Mise à jour € HT** MSDN Enterprise € HT** Mise à jour € HT** MSDN Universal € HT** Mise à jour € HT** Pour en savoir plus vous pouvez consulter le site ** Prix moyen éstimés

8 Pourquoi êtes-vous important ?
Visual Basic est dans nos gênes ! Vous êtes développeurs Visual Basic en France fédérés par des communautés : vbfrance.com et vb.developpez.com Les idées reçues « VB.NET est mort, vive C# » « .NET n’a pas de valeur ajoutée, et c’est compliqué » « .NET c’est que de la programmation objet » « Je n’ai pas le temps » Nous avons mal communiqué « Mon chef ne veut pas passer à .NET, il n’a pas le budget » Visual Basic est quasiment aussi utilisé sur la plate forme .NET que C# 6/7 Millions dans le monde !

9 Visual Basic pour des missions critiques
Le CHU de Grenoble adopte une architecture orientée services Depuis 15 ans, le CHU de Grenoble a toujours suivi l'évolution des technologies Microsoft. Il est ainsi passé en douceur d'une architecture client-serveur VC++ à Visual Basic 6, puis d'ASP à Microsoft .NET. A chaque évolution technologique, les développements antérieurs ont été réutilisés pour construire progressivement une architecture orientée services. Prochaine étape : le partage du dossier médical. SG Corporate & Investment Banking : « Nous réalisons aujourd'hui en une heure, des calculs que nous ne pouvions tout simplement pas effectuer auparavant, faute de ressources et de temps ».» : 250 utilisateurs, dont 120 traders, disponibilité 24x7, paramètres pour une calculatrice financière temps réel connectée à des flux externes et solution « grid » sur 80 serveurs Enfin, sachez que en plus 3 ans, de nombreux développeurs, de nombreuses entreprises ont construit des applications qui reposent sur la technologie .NET, y compris ASP.NET, pour tout type d’applications, des plus modestes au plus stratégique. La journée est consacrée à montrer comment développer facilement et rapidement des applications Web. Et c’est vrai, que nos produits de permettent de faire facilement et rapidement les choses simples et moins simples. Mais c’est quelques référence illustre également que la plateforme .NET est tout à fait approrpiée pour des projets « critique » avec de fortes contraintes de montée en charge, de fiabilité, etc. On finira la journée par un panel de sites Web d’entreprises de toutes tailles, qui ont choisi de s’exposer sur le Web avec la technologie ASP.NET, mais sachez que .NET s’adapte à tous les types de projets, du plus simple au plus sophistiqué. GEAC adopte une architecture Web pour son ERP GEAC, 5ème éditeur mondial de progiciels de gestion intégrée (ou ERP) propose ses nouveaux modules Paie, Comptabilité et Ressources humaines en architecture Web. Pour développer sa nouvelle offre, GEAC a retenu la plate-forme ASP .NET. Objectif : réduire les temps et les coûts de développements tout en assurant la fiabilité et la pérennité de sa solution et convertir ses développeurs AS 400 à Visual Basic .NET.

10 VB.NET Construire une application avec VB.NET
Construire une application simple en VB.NET Toutes les nouvelles possibilités de développement d’applications Programmation d’applications d’entreprises Les apports de la plate-forme .NET pour les développeurs VB Le développement d’une application VB.NET en utilisant l’architecture n-tiers Interopérabilité avec l’existant Migration d’une application existante vers VB.NET Échanges avec nous 3 parties dans cette présentation : Vous donner envie de manipuler VB.NET et vous faire une idée par vous-même. Développer des applications en utilisant des techniques modernes. Venir nous rencontrer et nous parler de vos problématiques et échanger avec nous.

11 VB.NET Agenda Construire une application simple en VB.NET
Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

12 Démonstration VB.NET Démonstration Fonctionnelle Commentaires :
Idées a faire passer Transition :

13 VB.NET Interface riche « look and feel XP» Interface de type MDI
Utilisation de l’accès aux données ACCESS Utilisation du moteur graphique (GDI+) Utilisation de contrôles riches Commentaires : C’est une application que l’on va faire évoluer d’un point de vue de l’architecture car aujourd’hui elle n’a pas été conçu pour évoluer de manière satisfaisante. A peu près tous les deux mois nous essaierons sur notre site d’y apporter des modifications

14 VB.NET Appel à un composant externe (WEB service)
Liaison avec Office 2003 Client mobile Base de données locale SQL CE

15 VB.NET Agenda Construire une application simple en VB.NET
Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

16 VB.NET Démonstration Démonstration Construire un Formulaire d’authentification Commentaires : Idées a faire passer Transition : :

17 Windows forms Operating System Common Language Runtime
Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript® J# Visual Studio® .NET

18 Les Windows Forms Intégration à Microsoft .NET Framework
Qu'est-ce que les « Windows Form »? Un Framework pour créer des applications riches tirant parties de Microsoft .NET et des APIs Win32® Une architecture pour créer des contrôles Un développement de type « RAD » Intégration à Microsoft .NET Framework Appel simple à des Services Web Intégration avec la couche « d’accès aux données » Commentaires : Idées a faire passer Transition : :

19 Les Windows Forms VB 6 VB.NET Outil RAD Programmation événementiel
Contrôles personnalisés Agrégation Héritage visuelle Nouvelles fonctionnalités Nouveaux contrôles Thèmes Windows XP Etc… Nouvelles fonctionnalités Ancrage Docking Nouveaux contrôles Aperçu avant impression Partager facilement des écrans Etc.. Différences entre les contrôles VB 6.0 et VB.NET

20 Les Windows Forms Un ensemble riche de composants Contrôles standard
Label, LinkLabel, TextBox, RadioButton, Checkbox, GroupBox, Panel, ListBox, CheckedListBox, ComboBox, Button, Menu, Panel PictureBox, MaskedEdit, Up-Down, Scrollbar, Splitter, Tooltip, Menus, Help, PropertyGrid Fenêtres de dialogues RichEdit Contrôles avancés Progress Bar, Status Bar, Toolbar, ListView, TreeView,Tab Control,DateTime Picker, Calendar,Tooltip, Trackbar,ImageList Contrôles liés à l’Accès aux données DataGrid, ErrorProvider

21 VB.NET Agenda Construire une application simple en VB.NET
Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

22 Démonstration VB.NET Démonstration Utilisation des assistants DataForm
Commentaires :

23 L’accès et la manipulation de données
Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript® J# Visual Studio® .NET Commentaires : Idées a faire passer Transition : :

24 ADO.NET… Une évolution plus qu’une révolution…
Même philosophie que ADO, mais modèle différent Meilleure montée en charge Le mode déconnecté est le facteur clé Peut-être utilisé par tous les langages de la plate-forme .NET

25 ADO Architecture : 2 Modes
Commentaires : Idées a faire passer Transition : : Mode déconnecté Dataset qui cache les données sans maintient de la connexion Mode Connecté Managed Provider Accès physique à la base

26 Démonstration VB.NET Démonstration Ventes par catègories avec ADO.NET
Commentaires :

27 Correspondance entre ADO.NET et XML
Managed Provider DataReader Command Connection Sync Controls, Designers, Code-gen, etc DataSet XmlReader XmlText- Reader XmlNode- XSL/T, X-Path, Validation, etc XmlData- Document DataAdapter Commentaires : Idées a faire passer Transition : :

28 Démonstration VB.NET Démonstration Création objet ADO via Code
Commentaires :

29 ADO.NET ADO ADO.NET Fournisseurs OLEDB Fournisseurs Managés Recordset
DataSet /DataTable connexion commande XML natif Migration du code et des concepts

30 VB.NET Agenda de la matinée
Construire une application simple en VB.NET Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

31 Résumé des changements dans Visual Basic.NET
Gestion structurée des exceptions Les types de données Syntaxe de déclaration Mots-clés supprimés UDTs sont désormais des structures Mots-clés remplacés par le Framework .NET

32 Gestion structurée des exceptions
Try, Catch, Finally Vous pouvez "Throw" une exception – équivalent à Err.Raise "On Error Goto" est encore supportée L’objet Err est encore disponible Il dépend de classes « Exception » qui contiennent l’information sur l’erreur

33 Gestion structurée des exceptions Exemple: interception
A noter le mot clé finally

34 Démonstration VB.NET Démonstration gestion d’erreur Globale
Commentaires :

35 Changements dans les types de données
Integer devient Short Long devient Integer Le nouveau Long est une valeur 64-bit Currency devient Decimal Variant devient Object La chaîne de caractères fixe n’est pas un type de base.

36 Changement dans la syntaxe de déclaration
Plusieurs déclarations sur la même ligne impliquent le même type Valeur initiale supportée

37 Changements dans la déclaration des tableaux
Utilisez Dim pour la déclaration initiale des tableaux – Redim pour modifier la taille seulement. Valeurs initiales pour les tableaux Option base toujours égal zéro

38 Mots-clés retirés Ces mots-clés sont retirés et ne sont plus supportés : GOSUB DefType (comme DefInt, DefStr, etc.) On x GoTo Let Option Base 0 | 1 VarPtr ObjPtr StrPtr Comme Visual Basic s’appuie désormais entièrement sur la plate-forme .NET, certain mots clés n’ont plus de raisons d’être.

39 Les alternatives .NET Un certain nombre de mots-clés VB ont une alternative dans la librairie .NET RSet, LSet PadRight, PadLeft dans System.String Rnd, Randomize Voir System.Random Les mots clefs ont été principalement remplacer par des librairies .net Le réflexe à avoir, c’est de vérifier si dans le Fx, il n’existe pas l’équivalent.

40 VB.NET Démonstration Trim Rtrim, etc Et OrElse andAlso Commentaires :

41 Divers changements Syntaxes raccourcies : +=, -+, *=, etc.
Pas de chargement implicite d’une form (une form n’est rien d’autre qu’une classe comme une autre)

42 Divers changements Utilisez systématiquement des parenthèses pour les méthodes et fonctions Les paramètres sont ByVal par défaut Visibilité des variables au niveau des blocks

43 VB.NET PAUSE

44 VB.NET Agenda Construire une application simple en VB.NET
Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

45 Service WEB Operating System Common Language Runtime
Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript® J# Visual Studio® .NET

46 Un Service Web, c’est quoi ?
Aujourd’hui nous avons : Des applications, composants, librairies … ObjetMetier.DLL Méthode CalculerTVA(byval param as integer, …) En VB6 si je veux accéder à CalculerTVA Ajout d’une référence à ObjetMetier.DLL Set obj = new ObjetMetier obj.CalculerTVA(param,…) La mécanique est cachée (protocole, données) c’est du RPC/COM/TLB. ObjetMetier.dll me rend un service le calcul de la TVA.

47 Services Web XML Exposer les services de ObjetMetier.dll (CalculerTVA) au travers : Protocole et format de données Standards du W3C Échanges standards XML (SOAP) via HTTP

48 Un Service Web, c’est quoi ?
Un service Web est une « unité logique applicative » accessible en utilisant les protocoles standard d’Internet Caractéristiques : Réutilisable Indépendamment de la plate-forme (UNIX, Windows, …) l’implémentation (VB, C#, Java, …) l’architecture sous-jacente (.NET, J2EE, …)

49 Un Service Web, c’est quoi ?
Ce sont des «librairies» fournissant des données et des services à d’autres applications Combinent les meilleurs aspects du développement à base de composant et du Web La base de la «vision» .NET

50 Quel service me proposes-tu et quel est le format d’appel?
Concepts Contrat SOAP** Quel service me proposes-tu et quel est le format d’appel? Voici mon contrat (WSDL)* XML décrivant CalculerTVA() Client Serveur SOAP/XML J’ai compris comment invoquer ton service et je t’envoie un document XML représentant ma requête HTTP=RPC SOAP=COM WSDL=TLB SOAP/XML J’ai exécuté ta requête et je te retourne le résultat

51 Services Web XML Indépendants des implémentations techniques, syntaxes et OS Savoir « analyser » du XML

52 Démonstration VB.NET Consommer un service Web sur une autre plateforme
Démonstration Créez un service Web Vente par catégories

53 VB.NET Agenda Construire une application simple en VB.NET
Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

54 Windows forms Operating System Common Language Runtime
Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript® J# Visual Studio® .NET

55 Problème de fond des Utilisateurs Contrôle et accès permanent à l’information
Fax Appels Mobiles Messagerie vocale Pagers Messages instantanés Réseau Mobile Adaptation du contenu en fonction du contexte … et de la localisation MSReader & eBook

56 .NET et les nouveaux périphériques
Visual Studio.NET .NET Framework Web pages code Mobile Web Browser .NET Compact Framework

57 Compact Framework Fonctionnalités supportées Common Base Classes
IO, collections, reflection, math, drawing Connectivity Networking, HTTP classes, calling XML Web services Data Access ADO.NET, SQL Server CE, SQL Server XML XmlDocument, XmlReader/Writer Windows Forms

58 VB.NET Démonstration Démonstration Application Mobile

59 VB.NET Agenda Construire une application simple en VB.NET
Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

60 Visual Tools for Office
Utiliser VB.NET et la puissance du Framework .NET pour étendre office Utiliser l’environnement de développement de Visual Studio .NET Bénéficier de la richesse en objet du Framework dans vos applications Office

61 VB.NET Démonstration Démonstration Application Office

62 VB.NET Agenda Construire une application simple en VB.NET
Ma première application VB.NET Développement d’interfaces « clients riches » L’accès et la manipulation de données Les changements dans le langage Toutes les nouvelles possibilités de développement d’applications Développement d’un service web Développement d’interfaces pour périphériques mobile Développement pour Office 2003 Développement d’interfaces WEB Commentaires : Idées a faire passer Transition : :

63 Développement WEB Operating System Common Language Runtime
Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript® J# Visual Studio® .NET

64 Windows Operating System
Architecture ASP.NET Web Clients ASP.NET Apps IIS Framework.NET Windows Operating System

65 Évolution des ASP Objectifs: Simplifier, structurer le développement
Indépendance vis à vis des langages Séparation du code et de la représentation Déploiement simplifié Supporter différents types de clients S’appuyer sur le Framework.NET Améliorer la haute disponibilité Assurer la montée en charge dans des fermes de serveurs WEB

66 Modèle d’exécution ASP.NET
Parser Moteur ASPX Fichier classe Code- behind Fichier classe généré de la page Générer ASPX File Requête Fichier ASPX Instancier Requête Classe de la page Instanciation, traitement et rendu ASP.NET compile à la demande le code en fonction des dépendances du code source (comme NMAKE) Le code ASP.NET est toujours compilé dans un assembly avant son exécution ASP.NET compile les fichiers .ASPX une fois et cache la DLL résultant Si le fichier source est plus récent que la DLL cachée, une nouvelle compilation a lieu et la DLL résultat est, à son tour, cachée Si le fichier source n’est pas plus récent que la DLL cachée, on utilise la DLL cachée On utilise des « copies mirroir » des DLL pour traiter les requêtes existantes en utilisant l’ancien code Cette page montre comment le moteur CLR ASP fonctionne quand l’utilisateur visite une page. Quand l’utilisatur demande une page depuis un navigateur ou une application, le fichier ASPX est parsé par le moteur ASPX. Ce moteur génère un fichier classe pour la page qui est traîté (compilé) par le CLR avant que la sortie soit affichée. Ces informations compilés sont persistées (sauvegardées) sur un disque. De telle façon que la prochaine fois que l’utilisateur visitera la page, le code exécuté sera le code compilé sauvegardé sur disque. Le fichier n’est pas recompilé tant qu’un changement n’est pas intervenu. Le fichier code-behind ASPX est compilé en une seule DLL. Ceci peut constituer un problème pour le développement en groupe, dans le cas où différents développeurs construisent des pages pour la même DLL. Il est donc préférable de travailler en local en utilisant régulièrement un mécanisme de synchronisation afin de permettre un travail en groupe efficace. Ensuite, tous les développeurs construisent pour le même Web. La DLL en question est un objet fortement typé. L’environnement CLR requiert moins d’effort de codage de votre part car Visual Studio .NET pre-remplit plus d’informations de base dans vos pages Web ASP.NET lors de la création de votre projet. La séparation du code de l’application des balises HTML et de la présentation permet de mieux visualiser son environnement de programmation et donc d’être plus efficace. 1/ Le « pager » Parse et transforme en fichier source en langage cible (target language) 2/ Ce fichier est ensuite compilé en MSIL et stocké par défaut dans C:\WINNT\Microsoft.NET\Framework\<version>\Temporary ASP.NET Files Configuration de ce chemin dans web.config 3/ Stocké en cache 4/ Recompilé si modification du source ou fichier dépendant tel que web.config ou global.asax Processus coûteux Choix entre 2 types de compilation Préservation Evite une recompilation lorsque IIS ou l’appDomain redémarre. Conserve les assembly compilées dans Temporary ASP .NET Files directory. Si les assemblies et les fichiers dépendants inchangées alors pas de recompilation (contrôle par un fichier hash). The DLL’s that we generate have auto-generated names that look like xxxxxxxx.dll (e.g. oxahun2t.dll). The idea of preservation is to keep these DLL’s across app domain restart, in order to avoid having to recompile them every time. In order to do this, we need to keep track of what DLL is used for what page. To do this, we create a .xml file that has a name derived from the name of the page we compiled. E.g. suppose we are compiling a page named MyPage.aspx. Its corresponding data file will have a name like MyPage.aspx.2d53e27.xml. The cryptic number in the name (here 2d53e27) is a hash code of the virtual directory that MyPage.aspx lives in. This is needed because there can be multiple files with the same name in different directories Batching Lors de la demande d’une page, toutes les pages du répertoire sont recompilées. En cas d’erreur de parsing, le fichier est skipped et la compilation continue (‘Parse error: a syntax error detected by the ASP.NET parser. E.g. a malformed … %> tag would cause such error). En cas d’erreur de compilation, la compilation est annulée. The main purpose of this feature is to reduce the amount of time spent doing compilations, and to reduce the memory footprint of the code we compile. These goals are achieved using two different techniques, both of which are addressed in this spec: Preservation and Batching. The idea of Preservation is to avoid having to recompile all the pages every time IIS is restarted (or more precisely every time the appdomain is restarted), which is what was previously happening. Instead, we preserve the compiled binaries in the codegen directory, along with some files that contain information about them (e.g. what files the binary depends on). The idea of Batching is to compile multiple pages at the same time, instead of compiling each of them individually (as was the case until recently). This reduces the overall time spent doing compilations. It also creates many less binaries, which ends up greatly reducing the memory used by the loaded assemblies (since there is a significant price for each loaded assembly, not matter how small it is). Réponse Réponse

67 ASP.NET Différenciation entre la représentation et le traitement.
Code behind Contrôle serveur Même modèle que les Windows forms Performances Les pages sont compilées pas interprétées VB.NET vs VBscript

68 Démonstration VB.NET Tour ASP.NET
07 – Application WEB Consommation de l’objet venteParCategories.dll

69 VB.NET Pause (rapide)

70 VB.NET Construire une application avec VB.NET
Construire une application simple en VB.NET Toutes les nouvelles possibilités de développement d’applications Programmation d’applications d’entreprises Les apports de la plate-forme .NET pour les développeurs VB Le développement d’une application VB.NET en utilisant l’architecture n-tiers intéropérabilité avec l’existant Migration d’une application existante vers VB.NET Commentaires : Idées a faire passer Transition : :

71 VB.NET Agenda VB et l’objet Principe de l’architecture .NET
La Programmation Orientée Objet pourquoi ? Principe de l’architecture .NET L’intéropérabilité Migration de l’existant. Rencontrez-nous.

72 La programmation Orientée Objet Pourquoi ?
Maîtrise de la complexité Fiabilité des applications Réutilisation du code Confort de développement Maintenabilité des applications • Maîtriser la complexité Les logiciels Modernes sont interactifs et composés de nombreux éléments, les programmes doivent posséder un nombre croissant de fonctionnalités dû à l’apparition de nouveaux domaines applicatifs. La décomposition en niveaux d’abstraction de plus en plus détaillés est une solution à ce problème. • Construire un logiciel Fiable et robuste La fiabilité d’un logiciel dépend de sa correction et de sa robustesse. Un logiciel est correct si il réalise les fonctionnalités incluses dans les spécifications. Un logiciel est robuste si il sait gérer raisonnablement les situations de fonctionnement exceptionnel. (Il ferme les fichiers ouverts avant de s’arrêter) • Pouvoir réutiliser du code C’est la capacité d’utiliser le plus possible des fonctionnalités déjà développées • Assurez un confort de développement Le confort de développement, dépend de la facilité de prototypage et la lisibilité du code en cours de développement. • Assurez une bonne Maintenabilité Inclut, la facilité de débogage, la flexibilité c'est-à-dire sa capacité à pouvoir changer son implémentation facilement. Il ne faut pas se voiler la face, la programmation orientée Objet nous permettra plus facilement d’atteindre ces objectifs. Mais est-ce que cela veut dire que les développeurs Visual Basic ont attendu les bras croisés pour développer des applications qui tiennent compte de ces objectifs? La Programmation Orientée Objet nous permettra d’atteindre plus simplement ces objectifs

73 Méthodes à suivre Décomposition logique Modularité Abstraction
Masquage de données Encapsulation de données Réutilisation Décomposition logique : Consiste a subdiviser un problème complexe en sous-ensemble plus petits et plus simples. Modularité : Consiste à décomposer le programme en entités indépendantes décrites par des interfaces bien définies Abstraction de données : consiste à définir un type de données par ses fonctionnalités plutôt que par son implémentation. L’avantage de cette approche, c’est que l’on peut continuer à modifier l’implémentation interne du module. On améliore également la maintenabilité L’encapsulation de l’information consiste a séparer l’implémentation de l’interface. On place les données et l’implémentation dans une même coquille et on limite l’accessibilité aux données par l’interface. On masque les détails qui ne sont pas indispensable, on simplifie l’accès à l’information La réutilisation du code permet de réutiliser le même code de manière analogue dans des situations différentes Polymorphisme: : Rugbyman : le poing dans la gueule.

74 VB 6 vs VB.NET VB 6 VB.NET Décomposition Sub/Function Modularité
ObjetMetier.dll Abstraction Interface* Class abstraite/Interface Masquage de données Public/Private/Friend Public/Private/Friend/Protected Encapsulation de données Class Réutilisation Agrégation Inherits (Héritage) Polymorphisme Implements Implements/Inherits Qu’est-ce qu’un objet ? Une entité physique du monde réel Un concept Caractérisé par : Son état Son Comportement Conceptuellement les objets interagissent les uns avec les autres, en envoyant et en recevant des messages. En pratique, envoyer un message, c’est appeler une fonction spécifique d’un objet. Les objets répondent aux messages en exécutant les fonctions membres correspondantes (que l’on appelle aussi méthodes) Type de données Abstraits. L’état des objets est implémenté au travers des données membres (variable globale) Leur comportement est implémenté au travers des fonctions membres (en général des appels de fonctions) Mais L’état peut être complètement décrit en terme de comportement. Le résultat est un type de données abstrait Abstraction : On peut passer d’une implémentation à l’autre sans modifier l’interface en quoi que ce soit. Masquage de l’information Moyen de protéger les données Un support total de l’abstraction des données nécessite des mécanismes de masquage de l’information au niveau du langage C’est un allié précieux lorsqu’il faut véirifier l’exactitude du code Encapsulation Mécanisme inclus dans les langages oriéntés objets qui favorise l’approche en boite noire, plutôt que de compter sur la rigueur du programmeur Supportés en VB grâce au mécanisme de classes Qu’est-ce qu’une classe C’est la description des caractéristiques communes à un ensemble d’objet Une moto et une voiture sont : Des objets différents mais Ils ont la même interface et la même implémentation Les classes combinent : les données membres (attributs) techniquement parlant ce sont des variables globales qui doivent être privées: Par exemple le Nombre de roues les fonctions membres (méthodes) : Par exemple démarrer Héritage : La capacité donnée à une classe d’hériter du comportement et/ou de l’implémentation d’une autre classe Polymorphisme : La capacité donnée à différent objets de répondre différemment au même message Un mécanisme fourni dans les langages de programmation plutôt qu’une astuce de progammation * Interface COM, masquée dans Visual Basic 6.00

75 Via paramètre optional de type variant Substitution de méthode**
VB 6 vs VB.NET (suite..) VB 6 VB.NET Constructeur Initialize* New() Destructeur Terminate Finalize Surcharge Via paramètre optional de type variant Oui Substitution de méthode** Non Sous classe *Pas de passage de paramètres possible **La classe dérivée modifie le comportement de la méthode

76 Les objets Qu’est-ce qu’un objet ? Un objet est caractérisé par :
Une entité physique du monde réel Un employé Un objet est caractérisé par : Son état Nom, Prénom, Age (Propriétés) Son comportement, ses actions Creer () (méthode) CalculerSalaire() (méthode)

77 Je peux avoir différents types d’employés
CDD Nom/Prenom/Age Creer () CalculerSalaire() CDI Nom/Prenom/Age Creer () CalculerSalaire() Stagiaire Nom/Prenom/Age Creer () CalculerSalaire() FairePhotocopies() ;-) Intérimaire Nom/Prenom/Age Creer () CalculerSalaire() Autres Nom/Prenom/Age Creer () CalculerSalaire() Comment l’implémenter ?

78 Comment l’implémenter ?
Dupliquer toutes les fonctions dans des objets séparés ? Écrire un gros objet avec un drapeau précisant le type (CDI, CDD, Stagiaire ….) ? Si j’ai un bug dans une méthode, je dois vérifier pour tous les autres méthodes dupliquées

79 Nous sommes tous d’accord
Pour dire que CDI, CDD, Stagiaire, etc… Sont des employés Avec des caractéristiques communes Non/Prénom/Age Creer () Des caractéristiques différentes CalculerSalaire() Autres…

80 On va utiliser l’héritage
Employe Stagiaire CDI CDD Chef On va utiliser l’héritage

81 VB.NET Démonstration Demo VB6 et VB.net

82 Les fonctionnalités “Objet” dans VB.NET
Namespaces Constructeurs paramétrables Plus de : “Instanciation puis affectation” Classes avec des membres statics Surcharges de méthodes (mais pas d’opérateurs)

83 Les fonctionnalités “Objet” dans VB.NET
Une seule manière d’instancier: New Héritage Inherits redéfinition de méthodes et propriétés

84 Changement de syntaxe Plus de propriétés par défaut
Les fichiers sources peuvent contenir une ou plusieurs classes Nouvelle syntaxe pour les propriétés Dans la déclaration des propriétés pas dans l’utilisation

85 Namespaces Une hiérarchie logique de classes
Un namespace + nom des classes forment un nom unique pour ces classes Mot clé “Imports” utilisé pour faire référence aux namespaces Les namespaces peuvent être éclatés entre plusieurs modules

86 Structure d’une classe en Visual Basic .NET

87 Les propriétés

88 Surcharge de méthodes Une classe peut contenir plus d’une méthode portant le même nom Chacune d’elles doit être déclarées avec une liste d’argument unique

89 Surcharge de méthodes

90 Constructeurs Class_Initialize  Sub New
« Sub New » peut prendre des paramètres qui seront alors demandés à l’instanciation Les constructeurs comme les méthodes et propriétés peuvent être surchargés

91 Constructeurs

92 Héritage en Visual Basic .NET
L’héritage était absent des versions précédentes Visual Basic .NET inclut l’héritage car tout le framework .NET est basé dessus

93 Rappel rapide sur l’héritage
Avantages de l’héritage Accroît les possibilités de réutilisation du code Simplification de la maintenance Les nouvelles fonctionnalités de la classe de base sont automatiquement disponibles aux sous-classes

94 Les mots-clés de l’héritage
Inherits – Hérite d’une classe de base NotInheritable – Empêche une classe d’être héritée Overrides – Utilisé sur une méthode d’une sous-classe pour redéfinir l’implémentation de cette fonction dans la classe de base

95 Les mots-clés de l’héritage
Overridable – Utilisé sur un membre de la classe de base pour indiquer qu’il peut être redéfini par les sous-classes (par défaut, le membre est « non-overridable ») MyBase – Utilisé pour faire une référence à la classe de base MustInherit – Permet de rendre une classe « Ininstanciable ». Obligation d’hériter MustOverride – Indique qu’une méthode de la classe de base DOIT être redéfinie

96 Les propriétés par défaut sont parties
Résout le problème de l’ambiguïté en VB6 txtNom1 = txtNom2 doit être distingué de Set txtNom1 = txtNom2 Puisqu’il n’y a plus d’ambiguïté possible, Set a été supprimé

97 VB.NET VB et l’objet Principe de l’architecture .NET
La Programmation Orientée Objet pourquoi ? Principe de l’architecture .NET L’intéropérabilité Migration de l’existant. Rencontrez-nous. KEY MESSAGE: Session prerequisites. SLIDE BUILDS: None SLIDE SCRIPT: This session assumes that you have some knowledge of Visual Basic 6, Visual Basic .NET, C#, or C++ and that you have a minimal understanding of the differences between Visual Basic 6 and Visual Basic .NET. SLIDE TRANSITION: So why this presentation? ADDITIONAL INFORMATION FOR PRESENTER:

98 Unification du développement
.NET Framework RAD, Héritage, contrôle et performance, WebDynamic et WebServices ASP Stateless, mélange de code/HTML VB Forms RAD, Composition, Délégation Héritage, Contrôle, performance MFC/ATL Windows API

99 Démarrer avec .NET Framework, Langages et outils
Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# JScript® J# Visual Studio® .NET

100 Démarrer avec .NET Framework, Langages et outils
VB C++ C# JScript J# Visual Studio .NET Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Operating System

101 Common Langage Runtime
Threads Interoperabilité COM Vérification des Types Exceptions Sécurité Debuggeur Compilation IL Gestionnaire De code Garbage Collector Class Loader

102 Développement DEVELOPMENT Compiler Assembly Source code C# J# VB Cobol
public static void Main(String[] args ) usr=Environment.GetEnvironmentVariable("USERNAME"); try { { String usr; FileStream f; StreamWriter w; w.WriteLine(usr); w=new StreamWriter(f); f=new FileStream(“C:\\test.txt",FileMode.Create); Console.WriteLine("Exception:"+e.ToString()); } catch (Exception e){ w.Close(); } Compiler public static void Main(String[] args ) usr=Environment.GetEnvironmentVariable("USERNAME"); try { { String usr; FileStream f; StreamWriter w; w.WriteLine(usr); w=new StreamWriter(f); f=new FileStream(“C:\\test.txt",FileMode.Create); Console.WriteLine("Exception:"+e.ToString()); } catch (Exception e){ w.Close(); } Source code C# J# VB Cobol MSIL Metadata Resources

103 Global Assembly Cache (GAC) Application Directory
Déploiement Compiler Assembly DEVELOPMENT C# J# VB.NET C++ Cobol MSIL Metadata Resources public static void Main(String[] args ) usr=Environment.GetEnvironmentVariable("USERNAME"); try { { String usr; FileStream f; StreamWriter w; w.WriteLine(usr); w=new StreamWriter(f); f=new FileStream(“C:\\test.txt",FileMode.Create); Console.WriteLine("Exception:"+e.ToString()); } catch (Exception e){ w.Close(); } Source code Assembly DEVELOPMENT DEPLOYMENT Global Assembly Cache (GAC) Install Setup Copy Browser Application Directory Download Cache

104 Exécution DEPLOYMENT DEVELOPMENT EXECUTION Assembly on Target Machine
Application Directory Setup Copy Browser Download Cache DEPLOYMENT Global Assembly Cache (GAC) Assembly on Target Machine Install Policy <security> <mscorlib> <configuration> <?xml version="1.0" encoding="utf-8" ?> <policy> version="1" <CodeGroup class="UnionCodeGroup" <PolicyLevel version="1"> PermissionSetName="Nothing" Description="Code group grants no permissio ns and forms the root of the code group tree."> Name="All_Code" <IMembershipCondition clas s="AllMembershipCondition" version="1"/> PermissionSetName="FullTrust" EXECUTION IL to Native Compiler Class Loader Security Assembly Loader Garbage Collection Native .exe + GC table Code Manager Exception Manager Thread Support COM Interop Debug Engine

105 Démarrer avec .NET Framework, Langages, et outils
VB C++ C# JScript J# Visual Studio .NET Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Operating System

106 Libraries des classes de bases
System System.Data System.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Common OleDb SQLTypes SqlClient XPath XSLT Runtime InteropServices Remoting Serialization SessionState Caching Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Printing System.Windows.Forms Design ComponentModel

107 Démarrer avec .NET Framework, Langages et outils
VB.NET C++ C# JScript J# Visual Studio .NET Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Operating System

108 Unification des syntaxes
Common Language Specification VB C++ C# J# Le développeur est indépendant du langage Tous les langages accèdent aux services fournis par la CLR Commun Langage Spécification (CLS) Spécification d’écriture des compilateurs « syntaxiques » Chaque langage utilise et étend le framework .NET Les langages .NET sont neutres. Déposé à L’ECMA

109 Pourquoi une nouvelle plateforme ?
Modèle de programmation cohérent Modèle de programmation simplifié Résoudre ‘l’Enfer des dlls’ Déploiement simplifié Utilisation de nombreuses plateformes Intégration de nombreux langages Réutilisation simplifiée du code

110 Pourquoi une nouvelle plateforme ?
Gestion de la mémoire automatique Vérification des types Pas de débordement tampon, casts invalides, variables non initialisées Debugging/Profiling avancés Gestion d’erreurs cohérente Sécurité Interopérabilité Exécution côte à côte

111 VB.NET Démonstration Deploiement simplifier

112 Pourquoi une nouvelle plateforme ?
Facilite le développement en couches

113 .NET et le modèle en couches
Couche Présentation Windows Form WebForm Office mobile Couche Métier Assemblies .NET Application COM+ Services Web XML Couche Données ADO.NET Support XML Mon.exe Browser Internet Intranet XML Windows Form Web Form Présentation Tiers WebServices Business Tiers Data Tiers Data Communication: WebService HTTP Remoting(http,tcp…) COM+ (dcom)

114 VB.NET Démonstration Création d’un composant Enterprise

115 VB.NET PAUSE

116 C’est beau tout cela mais mon existant j’en fais quoi ?

117 VB.NET Agenda VB et l’objet Principe de l’architecture .NET
La Programmation Orientée Objet cela veut dire quoi ? Les fonctionnalités objet de VB.NET Principe de l’architecture .NET L’intéropérabilité avec l’existant Migration de l’existant Venez à notre rencontre

118 Appelez l’existant Appel de composants existant
Appel de composants COM Appel d’API win32

119 COM Interop 2 manières Utilisation d’un composant COM depuis .NET
.NET Object COM Object RCW IUnknown IDispatch Utilisation d’un composant .NET depuis COM COM Object CCW .NET Object IUnknown IDispatch

120 Com Interop .NET vers COM COM vers .NET Runtime callable wrapper
Crée via Visual Studio® .NET Crée via tlbimp.exe Primary interop assembly Transparent pour .net mais on a un composant COM. COM vers .NET COM Callable Wrapper Création d’une assembly dans Visual Studio .NET Exporte une Type library via tlbexp.exe Déploiement dans le Monde COM regasm.exe Désavantage du monde COM (régression)

121 Com Interop .NET vers COM
Rentré dans le monde COM GUID, CLSID, etc. Registre Windows Les problèmes de déploiements lorsqu’on utilise COM depuis .NET sont toujours là ! Runtime callable wrapper Crée via Visual Studio® .NET Crée via tlbimp.exe Primary interop assembly Marshal.ReleaseComObject()

122 COM Interop .NET vers COM/Considérations
RCW Crée et se lie à l’objet COM Consomme les interfaces COM et en construit des versions « Managées » Translate et Marshall les données Gère la durée de vie des objets COM utilisés ERREUR COM HRESULT  .NET exceptions Il est important de garder à l’esprit : Data types (variants, ...) Le nom des Méthodes Primary Interop Assemblies (PIA) ...

123 Com Interop COM vers .NET
COM Callable Wrapper Création d’une assembly dans Visual Studio .NET Exporte une Type library via tlbexp.exe Déploiement dans le Monde COM Global Assembly Cache (GAC) regasm.exe

124 COM Interop COM vers .NET/Considérations
CCW Crée et se lie à l’objet managé Synthétise d’importante interface COM (telles que IUnknown et IDispatch) Marshal et translate les données Gère la durée de vie des composants .NET .NET exceptions  values COM HRESULT Gardez à l’esprit Data types (variants, ...) Constructeur Déploiement ...

125 COM Interop Considérations des Performances
Par défaut on a le wrapper COM/.NET Verbeux Beaucoup d’échange On rajoute une couche avec le RCW Si Problème de performance Écrire son propre Wrapper (office) Limiter les appels et échanges Attention au type de données (recordset…)

126 VB.NET Démonstration Interop

127 Interopérabilité API Win32
Travailler avec les DLL Win32/64 Déclaration et importation d’une fonction depuis une dll… Déclaration de la signature de la fonction API Windows Toute autre DLL WIN32 Mot clé « Declare » ou Attribut <DllImport>

128 VB.NET Agenda VB et l’objet Principe de l’architecture .NET
La Programmation Orientée Objet cela veut dire quoi ? Les fonctionnalités objet de VB.NET Principe de l’architecture .NET L’intéropérabilité avec l’existant Migration de l’existant Restez pour nous rencontrer 

129 Dois-je convertir mon application en VB.NET ?
NON Mode maintenance: pas évolutive Pas de soucis Déploiement Performances Pas le temps, ni le budget OUI Tirer profit des capacités du Framework .NET Tirer profit des capacités de Visual Basic .NET Je dois faire évoluer mon application Limite du support de Visual Basic 6.00

130 Oui je veux la convertir en VB.NET
Dois-je migrer ? Assistant de migration Ne migre pas tous les projets (rdo, dao, contrôles … ) Gros projets Expérience terrain a montré les limites (80*20) Demande encore du travail de développement et du Testing Ou passer en douceur ? Remise à plat de l’architecture L’application n’est pas encore achevée Les apports de .NET résolvent des problèmes importants (versioning, déploiements Xcopy, redéploiements à chaud sur IIS, performances ASP .NET, productivité WebForms et Windows Forms, Support XML et Services Web…)

131 Passer à .NET en douceur Approche Horizontale ou Verticale ?
Approche Verticale Approche Horizontale Tier Présentation Forme VB Forme VB Tier Métier SQL Server Tier Données

132 Mise à niveau d’applications
Ne pas commencer par convertir des projets de taille importante Se familiariser avec .NET Utiliser des outils (CodeAdvisor), Visual Expert (Novalys) Ne pas convertir l’ensemble de l’application. « Diviser pour conquérir » [Message] Si dans un monde parfait on a développé en mode « Componentisation » VB.NET RCW VB.NET (web service, remoting,…) RCW VB Migration Migration

133 Et moi dois-je passer à VB.NET ?
OUI Comment me former en douceur ? Par quoi dois-je commencer ? Quels sont les écueils à éviter ? Ou trouver de l’information ? Trop d’information tue l’information

134 Comment débuter avec .NET
Pour bien débuter ne pas s’attaquer à des projets trop gros dés le départ. Il faut y aller étape par étape. Se familiariser avec les nouveautés du langage et de l’IDE Exemple : Imprimer les nouveaux mots clés et regarder l’aide Classes de Base Apprentissage de la plate-forme Architecture Nouveautés (delegate, event, multi-threading, sécurité etc..) Bonnes pratiques du développement Programmation Orientée Objet Performances Modèles de conception (Design pattern)

135 Vous n’êtes pas seul Les bons réflexes à avoir.
Les liens sur les sites communautaires Les exemples et Vidéos du tour VB.NET Les LABS VB.NET ADO.NET ASP.NET J’attends vos remarques et suggestions ( Venez nous retrouver sur les news groups Microsoft Démonstration Les sites de communautés Française bidou nous a préparé un super article qui vulgarise la Programation Orientée Objet, n’hésitez pas à y jeter un coup d’oeil. (code-source) Nix vous attend, venez poster vos codes Richard Clarck Patrice Lamarche

136

137 VB.NET Venez nous voir

138 Microsoft Votre potentiel, notre passion

139 Visual Basic.NET 2005 Plus de productivité (RAD) Plus de puissance
Plus de RAD !!! Encore plus de puissance !! Les solutions Whidbey My : Qui n’a pas écrit sa propre bibliothèque ? Fragment de codes réutilisables Simplification de l’IDE Assistant des Exceptions EnC, Immediate windows, Etc.. Dynamiser l’IDE :


Télécharger ppt "Les Rencontres Visual Basic Lille, 25 Novembre 2004"

Présentations similaires


Annonces Google