|
1
|
- « Tour d’horizon .NET »
- 13 Juin 2002
|
|
2
|
- .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
|
|
|
4
|
|
|
5
|
|
|
6
|
|
|
7
|
|
|
8
|
|
|
9
|
|
|
10
|
|
|
11
|
- 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
|
|
|
13
|
|
|
14
|
|
|
15
|
- 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
|
|
|
17
|
- Notion d’assembly : Assemblage exposant une ou plusieurs class (type).
|
|
18
|
|
|
19
|
|
|
20
|
|
|
21
|
- 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
|
- Perl
- Python
- Cobol
- Haskell
- ML
- Jscript
- Ada
- APL
- Eiffel
- Pascal
|
|
23
|
- 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
|
- 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
|
- Framework .NET orienté objet
- La Base Class Library (BCL) est organisée en Namespace
|
|
26
|
- Garantir une gestion d’erreur cohérente et robuste au travers des
différentes syntaxes
|
|
27
|
|
|
28
|
|
|
29
|
- 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
|
|
|
31
|
- 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
|
- Forme de « super » assembleur, indépendant du hardware…
- Notion de « Pseudo » code
|
|
33
|
|
|
34
|
|
|
35
|
|
|
36
|
- 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
|
- 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
|
|
|
39
|
- Travailler avec des objets COM
- Interopérabilité dans les 2 sens
- Assembly .Net utilise des objets COM
- Unmanaged Code utilise des Assemblies .NET
|
|
40
|
- 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
|
- 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
- Compatible COM+
- IObjectControl et ComponentsServices
- DCOM
- Remoting .NET
- Standard sur WebServices et Soap
|
|
42
|
- Maintien du modèle (n) tiers
- Couche Présentation
- Couche Métier
- Assemblies .NET
- Application COM+
- WebServicesXML
- Couche Données
- ADO.NET
- Data Source standard
- Support XML
|
|
43
|
- 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
|
- 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
|
|
|
46
|
|
|
47
|
|
|
48
|
|
|
49
|
|
|
50
|
- Modèle de formulaire unifié pour .NET
- 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
|
|
|
52
|
- Héritage possible entre 2 forms
- Il s’agit de classes .Net …. ;-)
|
|
53
|
|
|
54
|
|
|
55
|
|
|
56
|
- 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
|
- 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 »
|
|
58
|
|
|
59
|
- 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
|
- 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
|
- 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
|
- 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
|
|
|
64
|
|
|
65
|
- 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
|
- 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
|
- 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
|
|
68
|
|
|
69
|
- 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
|
|
|
71
|
|