Vous êtes sur la page 1sur 33

© Nissrine SOUISSI

Département Informatique 2009-2010

Objectifs du cours
„ Répondre à la question « pourquoi .NET ?»

„ Comprendre ce qu
qu’est
est le .NET
NET

„ Comprendre la stratégie Microsoft

„ Mesurer les impacts de .NET sur les développements

„ Que p
propose
p Microsoft p
pour faciliter l’adoption
p de .NET ?

„ Se préparer au futur…

Microsoft .Net - N. SOUISSI 2

1
Plan du cours
X Microsoft .NET ?
Y Microsoft .Net Framework
Z Microsoft Visual Studio .Net
[ Atelier pratique X
\ Atelier pratique Y
] Microsoft ADO.Net
^ Atelier pratique Z
_ Microsoft .Net Compact Framework
` Atelier pratique [
Microsoft .Net - N. SOUISSI 3

Partie X
Partie Z
Microsoft .Net ?

© Nissrine SOUISSI
2009-2010

2
Pourquoi .NET ?
„ Les décideurs reconnaissent :
… Fiabilité,
performance et interopérabilité
… Stratégie « Architecture Orientée Services »
„ S.O.A
… Productivité

„ Les développeurs apprécient :


… Richesse fonctionnelle
… Productivité
… Stabilité
……

Microsoft .Net - N. SOUISSI 5

S.O.A ?

S : La notion de service
Un point d’accès qui réagit à un message

O : On prend un peu de recul avec l’orientation service


Un paradigme d’architecture qui s’appuie sur des piliers

A : On capitalise sur une architecture orientée service


Toute architecture qui adhère aux piliers de l’orientation
l orientation service

Un socle technologique robuste et évolutif pour la mise en œuvre

Microsoft .Net - N. SOUISSI 6

3
Pourquoi .NET ?
?
3
.net
2 Navigation
web
1
Interface
Graphique Informatique distribuée via Internet
---
PC Exploitation de tous les moyens de communication
Mode
Caractère
---
Intégration des applications aux terminaux mobiles
---
Terminal
Le logiciel en tant que “service”
Microsoft .Net - N. SOUISSI 7

Pourquoi .NET ?
„ Intégration
… Interopérabilité
… Support
pp de l’existant et de la p
plate-forme Windows

„ Efficacité, simplicité
… Briques réutilisables
Æ Rapidité de développement
… Performance du code

„ Productivité
… Cycle de développement plus court
… Déploiement plus simple
… Support technique

Microsoft .Net - N. SOUISSI 8

4
C’est quoi .NET ?
„ La plus grande évolution chez Microsoft
… DOS Windows

„ Des nouveaux langages (Langages .NET)

„ Une bibliothèque de fonctions


… La totalité de l’API Windows

„ Une programmation orientée métier plutôt que matériel

„ Nouvelle terminologie

„ Nouvelles habitudes

Microsoft .Net - N. SOUISSI 9

C’est quoi .NET ?


„ .NET est une plateforme complète pour développer,
déployer et exécuter des Applications Web, Windows et
Mobiles.
… Un modèle de programmation
… Un environnement de développement
… Un environnement d’exécution
… Une architecture de stockage
… Une infrastructure d’intégration
… Une infrastructure de gestion

„ Une gamme de produits intégrés


… Des outils de développement
… Un ensemble de systèmes serveurs
… Un ensemble de systèmes clients

Microsoft .Net - N. SOUISSI 10

5
C’est quoi .NET ?

Modèle
M dèl
de développement

Infrastructure
pour Outils de
Applications développement
distribuées

Microsoft .Net - N. SOUISSI 11

C’est quoi .NET ?

Modèle
M dèl
de développement

Infrastructure
pour Outils de
Applications Développement
distribuées

Microsoft .Net - N. SOUISSI 12

6
.Net Compact Framework / .Net Framework
Fonctions croissantes

Systèmes supportés

Pocket PC Tablet PC
Windows CE

Smartphone Portable

.NET Compact Framework .NET Framework

Microsoft .Net - N. SOUISSI 13

Partie Y
Partie Z
Microsoft .Net Framework

© Nissrine SOUISSI
2009-2010

7
.Net Framework ?
„ .Net Framework est un composant logiciel pouvant être
ajouté au système d'exploitation Microsoft Windows.

„ .Net Framework peut être téléchargé sur le site de


Microsoft et est également partiellement fourni dans
certaines déclinaisons commerciales.

„ .Net Framework a pour but de faciliter la tâche des


développeurs en proposant une approche unifiée à la
conception d'applications Windows ou Web, tout en
introduisant des facilités pour le développement, le
déploiement et la maintenance d'applications.

„ .Net Framework = {Technologies + Outils}


Microsoft .Net - N. SOUISSI 15

Architecture de .Net Framework

Langages de
programmation

WebForms WinForms

Librairies systèmes

Environnement
d’exécution

Microsoft .Net - N. SOUISSI 16

8
Langages .Net
„ Ada „ CAT
„ APL „ Cobol
„ AsmL „ CULE
„ Visual Basic.Net „ E#
„ BETA.Net „ Eiffel
„ BF.Net „ Flash
„ Boo „ Forth
„ C „ Fortran
„ Visual C# „ G#
„ C++ „ Haskell
„ Caml „ IL/MSIL

Microsoft .Net - N. SOUISSI 17

Langages .Net (suite)


„ Visual J# „ Pascal
„ JScript..Net „ Delphi.Net
„ Lexico „ PHP#
„ LI# „Prolog.Net
„ LOGO „ Python
„ Lua „ Ruby.Net
„ Mercury „ RPG
„ Mondrian „ Scala
„ Oberon „ Scheme.Net
„ Nemerle „ Smalltalk
„ Pan# „ SML.Net
„ Perl.Net „ Spry
„ Perl# „Tcl/Tk

Microsoft .Net - N. SOUISSI 18

9
CLS
„ CLS définit un ensemble de règles que tout langage et
compilateur de la plateforme .Net doit respecter.

„ CLS utilise un système de types commun (CTS)


permettant d'avoir le même système de type entre les
différents langages et le même système de type entre
les types prédéfinis et les types définis par l'utilisateur.
… Fournisseurs de bibliothèques : plus besoin de créer des
versions différentes pour chaque langage de programmation ou
compilateur.
… Développeurs d’applications : non limités aux bibliothèques
développées pour le langage de programmation utilisé.

Microsoft .Net - N. SOUISSI 19

WinForms
„ Ensemble d'éléments graphiques standards
„ Développement d'applications Windows

Microsoft .Net - N. SOUISSI 20

10
WebForms
„ Une couche ajoutée pour permettre une
programmation d’interface orientée Web.
… Côté développeurs :
„ Réduire la quantité du code

„ Organiser clairement la logique des pages


Web

… Côté outils de développement :


„ Assurer une prise en charge forte du design
WYSIWYG des pages Web.

Microsoft .Net - N. SOUISSI 21

DATA - XML
„ Il s’agit de deux bibliothèques de classes d’accès aux
données.

„ La 1ère bibliothèque permet l’accès aux interfaces de


bases de données SQL Server, Access, Oracle… et aux
fichiers XML.

„ La 2ème bibliothèque de classes regroupe les « XML


Classes » qui permettent de manipuler les données
XML.

Microsoft .Net - N. SOUISSI 22

11
BCL
„ BCL est une bibliothèque de classes accessibles par
tous les langages capables de compiler pour .Net.

„ BCL propose toutes les fonctionnalités nécessaires au


fonctionnement d'un langage de programmation, et à
ses échanges avec le système d'exploitation et les
composants qui y sont installés :
… Graphisme
… Son
… Base de données
… Manipulation XML
… Connexion réseau...

Microsoft .Net - N. SOUISSI 23

CLR
„ CLR est le composant central de l'architecture .NET.

„ CLR estt un environnement


i t d'exécution
d' é ti pour des
d
applications écrites dans des langages différents (.NET).

„ CLR contient un ensemble de classes de base :


… Gestion de la sécurité
… Gestion de la mémoire
… Gestion des processus et des threads

Microsoft .Net - N. SOUISSI 24

12
Développement
DEVELOPPEMENT
public static void Main(String[] args )
{ String usr; FileStream f; StreamWriter w;
try {
usr=Environment.GetEnvironmentVariable("USERNAME");
f=new FileStream(“C:\\test.txt",FileMode.Create);
public static void Main(String[] args )
w=new StreamWriter(f);
{ String usr; FileStream f; StreamWriter w;
w.WriteLine(usr);
w.Close(); try {

Assembly
} catch (Exceptionusr=Environment.GetEnvironmentVariable("USERNAME");
e){

Compiler
Console.WriteLine("Exception:"+e.ToString());
f=new FileStream(“C:\\test.txt",FileMode.Create);
} w=new StreamWriter(f);
} w.WriteLine(usr);
w.Close();
} catch (Exception e){
Console.WriteLine("Exception:"+e.ToString());
}
}

Source code C# MSIL


J# Metadata
VB Resources
Cobol

„ Assembly est un exécutable (.exe)


( exe) ou une bibliothéque (.dll)
( dll) contenant un
manifeste, du code exécutable sous la forme d'une liste d'instructions en
langage intermédiaire, des métadonnées et des ressources.
… Manifeste : fichier de description de l’assemblage
„ Metadata (version, types, dépendances, etc.)

… Code IL : langage intermédiaire de Microsoft (MSIL)


„ Tous les langages sont compilés en IL

… Ressources : .bmp, .jpg

Microsoft .Net - N. SOUISSI 25

Déploiement

DEVELOPPEMENT DEPLOIEMENT
Global
Assembly Install Assembly
Cache (GAC)
Setup
Copy
Browser Application
Directory

GAC estt un répertoire


é t i
Ex. C:\Windows\assembly Download
Cache

„ GAC (Global Assembly Cache)


Un répertoire dans lequel se trouvent tous les composants .Net
destinés à être partagés entre les applications.
Microsoft .Net - N. SOUISSI 26

13
Exécution
DEVELOPMENT DEPLOIEMENT
Assembly
Global
Assembly
y Install g
on Target
Assembly
Machine
Cache (GAC)

EXECUTION
IL to Native Class Assembly
Compiler Loader Security
Loader

Native .exe Managed Exception Manager


+ GC table Code Thread Support

Debug Engine

Microsoft .Net - N. SOUISSI 27

CLR - Services
„ Gestion du Code (MSIL, Managed code)
„ Conversion du code MSIL en code natif
„ Chargement et exécution du « Managed code »
„ Création et gestion des metadata
„ Insertion et exécution des politiques de sécurité
„ Gestion mémoire
„ Gestion multi-langage
multi langage des exceptions

Microsoft .Net - N. SOUISSI 28

14
Partie Z
Partie Z
Microsoft Visual Studio .NET

© Nissrine SOUISSI
2009-2010

Visual Studio .Net ?


„ Visual Studio .NET est l'outil de Microsoft pour la conception,
le développement et la mise en production d'applications de
nouvelle génération sur la plate-forme .NET.

„ Visual Studio .NET propose un modèle de développement


commun pour les applications Windows, Web ou mobiles.

„ Visual Studio .NET simplifie le développement d'applications


professionnelles en offrant des fonctionnalités de
développement intégrées et des composants réutilisables.

„ Visual Studio .NET accroît la productivité du développeur en


le libérant des tâches ingrates et répétitives et lui permet ainsi
de se consacrer à l'exploration de nouveaux scénarios au
bénéfice de l'utilisateur.

Microsoft .Net - N. SOUISSI 30

15
Fonctionnalités
„ Gestion des solutions (projets, fichiers…)
„ Editeur de code source
„ Outils de navigation dans le code source
„ Parseur de code source
„ Editeur WYSIWYG
„ Documentation d’aide dynamique
„ Gestion du déploiement
„ Compilateur
p
„ Débogueur

Microsoft .Net - N. SOUISSI 31

Caractéristique
VS.NET prône le RAD
Rapid Application Development

rapide ≠ précipitation

ƒ Concevoir proprement votre architecture


ƒ Développer votre application

Microsoft .Net - N. SOUISSI 32

16
Avantages
„ De très nombreux outils sont disponibles et peuvent
interagir.
… Modéliser une base de données avec VS.NET puis glisser les
tables sur une application.
… Le compilateur est sollicité durant l’édition du code source pour
traquer les erreurs de syntaxes.
… Certaines fenêtres apparaissent et disparaissent aux moments
opportuns.

„ Design WYSIWYG

„ Intégration en local des MSDN et accès dynamique.

Microsoft .Net - N. SOUISSI 33

Avantages (suite)
„ Personnalisation complète de VS.NET

… Positiontaille et ancrage des fenêtres


… Raccourcis clavier
… Comportement de l’aide
… Couleur du code

„ Extensibilité : possibilité de créer vos propres plug-in

„ IDE très optimisé : accès immédiat aux fonctionnalités

Microsoft .Net - N. SOUISSI 34

17
Inconvénients
„ Le prix !
„ Le nombre de fenêtres
… Élevé
… Nécessite une haute résolution

„ VS.NET est très gourmand en RAM


„ Le nombre d’options
p
… Élevé
… Certaines paraissent parfois cachées

Microsoft .Net - N. SOUISSI 35

Gammes

Visual Studio Chefs de projets


T
Team Suite
S it
Testeurs
Visual Studio Visual Studio Visual Studio
Team Edition Team Edition Team Edition Architectes
Software Software Software Développeurs
Developers Architects Testers Entreprise

Visual Visual Consultants


Studio
Studio Professionnels
Professional Tools for Office

Dév. occasionnels
Visual Studio Edition Standard Etudiants

Editions Passionnés
C# VB C++ J# Web
Express Débutants

Microsoft .Net - N. SOUISSI 36

18
Partie ]
Partie Z
ADO.NET (ActiveX Database Object)

© Nissrine SOUISSI
2009-2010

ADO.NET ?
„ ADO.NET est une collection de classes pour accéder à
des données dans le Framework .NET
„ La collection est organisée dans différentes
ff
bibliothèques (dll)
„ ADO.NET est une évolution d’ADO
… Ne partage pas le même modèle objet
… Mais partage plusieurs fonctionnalités

„ Gestion robuste du mode déconnecté


„ Support du modèle hiérarchique et du modèle relationnel
… support des données XML

Microsoft .Net - N. SOUISSI 38

19
Modes d’accès aux données
„ Mode connecté
… Mobilisation de la connexion
… Manipulation de données locales ou distantes

„ Mode déconnecté
… Mise en cache des données
… Manipulation de données locales

Microsoft .Net - N. SOUISSI 39

Fournisseurs de données
„ OleDb (System.Data.OleDb) : pour l'accès aux bases
Oracle, Access, Active Directory, LDAP, ... ou toute
autre source de données possédant un fournisseur
OleDb.
OleDb

„ SqlClient (System.Data.SqlClient) : fournisseur de


données optimisé pour SQLServer 7 et 2000.

„ Le fournisseur ODBC existe et est disponible en


téléchargement chez Microsoft.

„ D'autres fournisseurs natifs optimisés (tels que SqlClient


avec SqlServer) apparaitront (exemple : DataDirect
fournit un provider pour DB2, Sybase et Informix, ou
encore celui de MySQL sur SourceForge...).

Microsoft .Net - N. SOUISSI 40

20
La classe Connection
„ Permet de créer un lien vers la source de
données (manière transparente).
… La nature de ce lien peut être quelconque
(SGBDR, LDAP...).

„ Fonctionnalités
… Ouvrir et fermer les connexions

Fermez la connexion !
Microsoft .Net - N. SOUISSI 41

La classe Command
„ Représente une requête SQL qui peut
être envoyée à une base de données.

„ Fonctionnalités
… Définir
une requête SQL à exécuter
… Exécuter la requête

Microsoft .Net - N. SOUISSI 42

21
La classe DataReader
„ Permet d'accéder aux données en lecture et en
mode connecté.

„ Evite la mise en cache nécessaire en mode


déconnecté.

„ Mobilise une connexion à la source de données.

Fermez le DataReader !

Microsoft .Net - N. SOUISSI 43

La classe DataSet
„ Une vision déconnectée des données. Cette vision
est paramétrable (classe DataView) et se fait sous
forme de lignes (DataRow) et de colonnes
(DataColumn).

„ Permet d'effectuer des modifications sur les


données.

„ Gère « en interne » les données dans le format


XML.

Microsoft .Net - N. SOUISSI 44

22
La classe DataSet - Illustration

Microsoft .Net - N. SOUISSI 45

La classe DataSet - Architecture


DataSet

DataTable

DataColumn

DataRow

DataRelation

Microsoft .Net - N. SOUISSI 46

23
La classe DataTable
„ Objet mémoire représentant une table
… Colonnes
… Lignes

„ Le schéma est défini dans :


… La collection Columns

„ L’intégrité des données est assurée par :


… Les objets Constraint

„ Évènements publiques
… Modification / suppression de lignes
… Modification des colonnes

Microsoft .Net - N. SOUISSI 47

La classe DataColumn
„ Élément fondamental d’un objet DataTable

„ Type de données stockées dans la table


… DataType

„ Autres propriétés : AllowNull - Unique - ReadOnly

„ Peut aussi contenir Constraints

„ Peut aussi contenir Relations

Microsoft .Net - N. SOUISSI 48

24
La classe DataRow
„ Représente une ligne dans DataTable
„ Conforme au schéma défini par DataColumns
„ Propriétés pour déterminer l’état de la ligne :
… New
… Changed
… Deleted
… Etc.
Etc

„ Ajouts/modifications validées

Microsoft .Net - N. SOUISSI 49

La classe DataRelation
„ Met en relation deux DataTables via des
DataColumns.

„ Les valeurs des DataType des deux


DataColumns doivent être identiques.

„ Les modifications peuvent être propagées au fil


des DataTables.

„ Les modifications qui invalident les relations


sont interdites.

Microsoft .Net - N. SOUISSI 50

25
La classe DataAdapter
„ Spécifier pour un DataSet, les commandes
nécessaires pour :
…L
L'extraction
extraction
… La modification
… L'ajout
… La suppression

„ Définir les objets (objets Command) :


… SelectCommand
… UpdateCommand
… InsertCommand
… DeleteCommand

Microsoft .Net - N. SOUISSI 51

La classe DataAdapter - Illustration

Microsoft .Net - N. SOUISSI 52

26
Fournisseur/Classes
„ ADO.Net fixe des règles que doivent respecter
tous les fournisseurs de données.
… une normalisation et une simplification de l’accès aux
données.

„ Chaque fournisseur doit mettre à disposition des


classes en respectant des interfaces précises.

Microsoft .Net - N. SOUISSI 53

Classes du mode connecté


„ Extraction des données à l'aide de DataReader
… Extraction d’un flux de données en lecture seule
… Retour
R t d résultats
des é lt t suite
it à l’exécution
l’ é ti de d la
l requête
êt
… Stockage des résultats dans la mémoire tampon du
réseau sur le client
… Demande de disponibilité par la méthode Read de
DataReader

„ Le mode connecté se révèle être un bon choix lors


de l'extraction de grandes quantités de données
… Extraction des données dès qu'elles sont disponibles
… Pas de mises en cache dans la mémoire

Microsoft .Net - N. SOUISSI 54

27
Classes du mode déconnecté
„ Les données sont « cachées » dans les
DataSets
… Limite les allers/retours vers le serveur
„ Lecture/Ecriture sur le DataSet (un cache des données de la
base)
… Notion de « virtual data store »

„ Un DataSet est structuré comme la base de


données
… Contient une ou plusieurs « tables »
… DataAdapters assurent le transfert (bi-directionnel)
des données entre le DataSet et la base de données

Microsoft .Net - N. SOUISSI 55

Parcours connecté/déconnecté

Microsoft .Net - N. SOUISSI 56

28
Partie _
Partie Z
Microsoft .Net Compact Framework

© Nissrine SOUISSI
2009-2010

.Net Compact Framework ?

Microsoft a développé une version allégée du .Net Framework pour le


développement d'applications pour son système d'exploitation pour les
terminaux mobiles : .NET Compact Framework.
Microsoft .Net - N. SOUISSI 58

29
Emulateurs

Pocket PC Smartphone
Microsoft .Net - N. SOUISSI 59

Règles de développement d’applications mobiles


„ L’interface doit être la plus simple pour l’utilisateur
… Fonctionnalités les plus courantes
… Navigation
N i ti simplei l

„ L’application doit être utilisable


… Exécution rapide et facile des tâches utilisateur

„ L application doit être compréhensible et adaptée à


L’application
l’utilisateur final

Microsoft .Net - N. SOUISSI 60

30
Règles de développement d’applications mobiles
„ L’application ne doit pas contraindre l’utilisateur à se
souvenir d’information

„ L’application doit prendre en charge tous les traitements

„ Respect du modèle d’interaction de la plate-forme sur


laquelle l’application est destinée

„ La façon d’entrer le texte est importante

Microsoft .Net - N. SOUISSI 61

Accès aux Bases de données locales


„ Les périphériques mobiles ne sont pas
connectés en permanence au réseau de
l’ t
l’entreprise.
i
… Online/Offline
+ synchronisation des données
… Stockage des données en local

„ Solutions de stockage
… DataSet
… XML
… SQL Server CE

Microsoft .Net - N. SOUISSI 62

31
Stockage des données - DataSet
„ ADO.Net : mode déconnecté (BD en mémoire)

„ Création du DataSet (ensemble de DataTable)

„ Définition de contraintes
… clé primaire
… clé étrangère (DataRelation)

„ Remplissage (DataRow/DataAdapter)

„ Consultation (DataGrid)

„ Sauvegarde (espace de stockage du périphérique mobile)


… Fichier XML (WriteXML, ReadXML)

Microsoft .Net - N. SOUISSI 63

Stockage des données - SQL Server CE


„ La version allégée de SQL Server

„ Il n’est
’ t pas un SGBD Client/Serveur
Cli t/S

„ Une BD SQL Server CE est un fichier .sdf

„ SQL Server CE permet de :


… Disposer d’un
d un moteur de BDR très léger
… Synchroniser les données vers un SQL Server 6.5 ou +

Microsoft .Net - N. SOUISSI 64

32
Stockage des données - SQL Server CE
„ Connexion et exécution des requêtes SQL :
SQLCeConnection et SQLCeCommand

„ Lecture des données


… Mode déconnecté : SQLCeDataAdapter et DataSet
… Mode connecté : SQLCeDataReader

„ Possibilité de construire une BD via ll’outil


outil « Query
Analyzer »

Microsoft .Net - N. SOUISSI 65

Query Analyzer
„ Query Analyzer permet de gérer
les bases SQL Server CE.

„ Query Analyzer est très utile :


… démarrer ou arrêter des bases
… visualiser les propriétés et le contenu
des tables
… créer et exécuter des requêtes SQL

„ Il est préférable
f de créer la BD via
le code et non via cet outil !

Microsoft .Net - N. SOUISSI 66

33

Évaluer