Commentaires
Diaporama
Plan
1
SUPINFO
  • « Tour d’horizon .NET »
  • 13 Juin 2002
2
Plan de la journée
  • .NET Plateform
    • Introduction
    • Overview de la plate forme .NET
    • CLR et Framework

  • Developpement avec .NET
    • Création d’application « Rich Client » en .NET
    • WEB Application
    • WEB Service
3
Introduction
4
Une histoire riche…
5
Une nouvelle ère
6
 
7
La plate forme .NET
8
.NET Clients
Nouvelle génération de périphériques
9
.NET Framework
10
Objectifs du .NET Framework
11
Common Language Runtime
…kesaco ?
  • Common Language:
    • Ouvert à différentes syntaxes (CLS)
    • FrameWork Objet pour le développeur

  • Runtime
    • Une exécution managée et contrôlée
    • Managed Code, Managed Memory
    • Services ( XML, DATA, WEB …)

  • Basée sur :
    • Win32, XML, SOAP
    • Inter opère avec DCOM/COM, COM+1.0


12
The big picture
…Application .NET ?
13
CLR : Vue d’ensemble
14
.NET Framework
15
.NET et les standards
  • Site de l'ECMA
    • ECMA : Standardizing Information and Communication Systems
    • ECMA is an international industry association founded in 1961 and dedicated to the standardization of information and communication systems.
    • http://www.ecma.ch/


  • C# et CLI qui sont déposés à l'ECMA


    • CLI est très précis quand a ce que l'on doit trouver dans le "framework " et le "runtime " et laisse champ libre sur la manière de l'implémenter


    • ECMA-334, C# (C sharp) Language Specification.


    • ECMA-335, Common Language Infrastructure, approved by the ECMA General Assembly of 13th December 2001.


    • ECMA TR/84, related to Standard ECMA-335
16
Un peu de code
  • Le baBA…
17
Assembly (1)
  • Notion d’assembly : Assemblage exposant une ou plusieurs class (type).
18
ba BA du code .NET
19
Unification
20
Unification du développement
21
Unification des syntaxes
  • La plate-forme .Net est indépendante 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 interopérables.
    • Déposé à L’ECMA
22
Unification des syntaxes
  • Perl
  • Python
  • Cobol
  • Haskell
  • ML
  • Jscript
  • Ada
  • APL
  • Eiffel
  • Pascal
23
Common Type System
Unification des types
  • CTS Déposé a l’ECMA
  • Types définit au niveau du CLR
    • Unique, mais « mappés » par les syntaxes
    • Int vers INT32…

  • Value et Object
    • Structure et class
    • Boxing
24
C# Primitive Types
  • Runtime Type C# Type Description
    System.SByte sbyte Signed 8-bit value
    System.Byte byte Unsigned 8-bat value
    System.Int16 short Signed 16-bit value
    System.UInt16 ushort Unsigned 16-bit value
    System.Int32 int Signed 32-bit value
    System.UInt32 uint Unsigned 32-bit value
    System.Int64 long Signed 64-bit value
    System.UInt64 ulong Unsigned 64-bit value
    System.Char char Unicode character
    System.Single float IEEE 32-bit float
    System.Double double IEEE 64-bit float
    System.Boolean bool True/False value
    System.Decimal decimal 96-bit integer x 100 -> 1028
    System.Object object Base of all types
    System.String string String type
25
Unification des concepts Objets
Héritage inter langages
  • Framework .NET orienté objet
    • La Base Class Library (BCL) est organisée en Namespace




26
Unification de l’Exception Handling
  • Garantir une gestion d’erreur cohérente et robuste au travers des différentes syntaxes




27
Unification de l’IDE
28
Assembly .NET
« le retour »
29
Assemblies .NET
  • Contient  MetaData et MSIL
    • Format PE,
      • Version, configuration,légal…
  • Caractérisés par un MANIFEST
    • Assembly externes + version
    • Description des types + version
    • Description des modules
  • Peuvent être signées
      • Strong Name et GAC
      • Sécurité et configuration s’applique sur les assemblies
  • Unités de déploiement


30
Assembly,module…
31
Compilation des Assemblies .NET
  • Compilation en deux temps
    • Source vers Intermediate Language (MSIL)
      • (indépendance syntaxique)
    • MSIL vers code natif
      • Jit Compilation, (pré JIT possible)
      • Compteurs PerfMon associés

  • Exécution du code en Binaire (compilé)
      • Vrai pour toutes les assemblies ie dll, exe, page ASP.NET WebServices, HttpHandler…
32
MS Intermediate Language
  • Forme de « super » assembleur, indépendant du hardware…
    • Notion de « Pseudo » code
33
Développement
34
Déploiement
35
Exécution
36
Managed – UnManaged
  • Managed :
    • Code s’appuyant sur CLR et Framework
    • Garbage collector
    • ClassLoader et check security

  • UnManaged :
    • « Legacy code » ie Win32
    • VStudio 6.0 et <
    • Interopératibilté depuis/avec toute les syntaxes
      • Switch dans le source direct : uniquement c++
37
Déploiement
  • Side by Side
    • Par simple copie (MSI, .CAB …)
    • EXE et DLL dans même répertoire
      • Ou sous répertoires : Probing
      • /bin pour les sites WEB

38
Configuration et Sécurité
39
Interopérabilité COM et COM+
  • Travailler avec des objets COM


  • Interopérabilité dans les 2 sens
  • Assembly .Net utilise des objets COM
  • Unmanaged Code utilise des Assemblies .NET
40
Interopérabilité API Win32

    • Déclaration et importation d’une fonction depuis une dll…
      • Déclaration de la signature de la fonction
      • API Windows
      • Toute autre DLL WIN32


    • Dans le source code
      • Managed C++ uniquement
      • # pragma unmanaged
41
.NET vs COM/DNA
  • Nom de code de la CLR : COM+2.0 J
    • .NET est une évolution de COM… en profondeur mais sur les mêmes concepts


  • Concepts identiques:
    • Classes exposants des méthodes…
      • Tlb et manifest et metadata en remplacement de la registry
    • ClassFactory
      • CLR Runtime et class/assembly loader
    • Indépendance syntaxique
      • Encore plus loin en .NET
    • Compatible COM+
      • IObjectControl et ComponentsServices
    • DCOM
      • Remoting .NET
      • Standard sur WebServices et Soap


42
.NET vs COM/DNA
  • Maintien du modèle (n) tiers


  • Couche Présentation
    • Windows Form
    • WebForm


  • Couche Métier
    • Assemblies .NET
    • Application COM+
    • WebServicesXML


  • Couche Données
    • ADO.NET
    • Data Source standard
    • Support XML
43
.NET Framework Data
  • ADO.NET
    • Fastest way to access SQL
    • Native XML support
    • Managed providers give stream-level access
  • System.Xml
    • Great support for XSLT 1.0, XPath 1.0, XSD 1.0, DOM2
    • Extensible architecture
  • XSLT/XPath
    • Transforms on relational data
    • W3C compliant
44
ADO et ADO.NET
  • Evolution NOT Révolution
    • ADO au cœur du framework .NET
    • Accessible facilement aux développeurs ADO
    • ADO .NET propose un support optimum au modèle  déconnecté
    • Support d’XML natif au framework
45
ADO Architecture : 2 Modes




46
Data Access Architecture
47
ADO.NET et XML
48
ADO.NET
  • Démos…


49
.NET Framework Presentation
50
Windows Forms
  • Modèle de formulaire unifié pour .NET
    • Approche RAD
  • Construction visuelle en VStudio.NET
    • En fait le code est généré dans le source
    • Construction dynamique possible
  • Support de l’internationalisation
    • Gestion des cultures…au niveau assembly
  • Support de l’héritage


51
Winform : Visual designer
52
Winform : Héritage
  • Héritage possible entre 2 forms
    • Il s’agit de classes .Net …. ;-)
53
Windows form
  • Démos…
54
.NET Framework Presentation
55
Architecture ASP.NET
56
É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 .NET Framework
    • Améliorer la haute disponibilité : « Process Based »
    • Assurer la « scalability » dans les « Web Farms »


57
Les Pages ASP.NET
  • Extension ASPX
    • Les pages ne sont pas interprétée mais compilées
  • Langages typés : Au choix…
  • Séparation code/représentation : « code behind »
  • Modèle Objet consistant:
    • Page, Objets et éléments HTML sont vus comme des « Runtime Component Object »
      • Héritage
      • Surcharge
      • Polymorphisme
  • Prêt pour les « Internet Devices »
    • PDA
    • WEB TV, Consoles…
58
Pages ASP.NET « processing »
  • Processus d’exécution
59
Configuration et Déploiement
  • Simplicité de déploiement:
    • Déploiement par simple copie de fichier
    • Lock image et non du fichier lui-même
      • Permet la mise à jour « dynamique » des applications
  • Configuration de l’application par :
    • Web.config
    • Global.asax
    • Le répertoire /bin est l’assembly de l’application
60
Sever-Side HTML controls
  • Aucun état sur le serveur :
    • data émise/renvoyé dans le formulaire : champ caché
    • Mécanisme de PostBack sur la même page


  • Control générant un postback :
    • Boutons, case à cocher, radio bouton…
    • Test IsPostBack() dans le source

  • Possibilité de créer de nouveaux contrôles
    • Custom control et héritage possible
    • PageLet
61
Server-Side Event Processing
  • Modèle de programmation proche de VB
    • Evénementiel
    • Déclaration d’un handler, puis implémentation de celui-ci

  • Dans la page ASPX
  • <asp:button id="b1" OnClick="b1_OnClick"  text="PostBack"  runat="server"/>


  • Dans le code behind
    • private void b1_OnClick(Object sender, EventArgs e)
    • {
    • Message.InnerHtml = Name.Text + " a choisi : " + Syntaxe.SelectedItem ;
    • }
62
Code behind
  • Séparation entre page et code
    • La page hérite d’une classe elle même dérivée de Page.



    • <%@Page Language="C#" Inherits="Demo2Code" Src="Demo2Code.cs" %>
    • {…}


    • public class Demo2Code : Page
    • {…}


  • Mapping des noms de contrôles « automatique » (même nom)




63
Webform
  • Démos…
64
.NET Framework Presentation
65
Services Web : Définition
  • Définition :
    • « Unité logique applicative » accessible via les protocoles standard d’Internet
  • Pour Don Box :
    • « Software that is exposed to other software over Internet-friendly protocols »

66
Qu’est ce qu’un Service Web?
  • Evolution logique des sites Web et du logiciel
    • Accessible par d’autres ordinateurs (pas simplement des utilisateurs)
    • Transforme les sites en services réutilisables
    • Peut exposer ou réutiliser des services Web


  • Méthodologie native d’intégration sur Internet
    • Interactions basées sur XML
    • Standards ouverts
    • Fonctionne avec tout système d’exploitation, modèles de programmation,  types de machines ou réseaux
    • Peut exposer un système existant comme un Web service
67
Services Web XML
Concepts /Architecture
  • Exposer un Objet = exposer ses Méthodes, Attributs…
    • Echanges standards XML via HTTP (SOAP)
    • Basé sur les Standards du W3C


  • Indépendants des implémentations techniques, syntaxes et  OS
    • Savoir « parser » du XML

68
Concepts
69
WebService
  • Approches Microsoft


    • Sans .NET
      • SOAP Toolkit ( client et serveur)
        • Listener pour IIS
        • SoapClient

    • Avec .NET
      • Intégration native au CLR, s’appuie sur IIS
      • Intégration « naturelle » dans VStudio.NET
70
WebServices
  • Démos…
71