SlideShare uma empresa Scribd logo
1 de 48
.NET & C#
Sandra CHAVES
Sylvain CUAZ
DESS GI SRR 2002-2003
IMA - Université Grenoble 1
.NET & C#
Plan
I. Origine de .NET
II. .NET
III. Le langage C#
IV. Les alternatives
V. Conclusion
.NET & C#
Origine de .NET
 1995 : Microsoft se tourne vers le net
 gros compromis pour vite produire des
outils et technologies basés sur l’Internet
 tentative de ramener un peu d’ordre avec
le concept DNA
.NET & C#
DNA
 3 niveaux
 Active Server Pages pour la présentation,
 Objets métiers en COM au milieu,
 Une base de donnée pour le bas.
 Concept sain, mais difficile à mettre en oeuvre
 D’autres plateformes offrait de bien meilleures
solutions (Unix, J2EE)
 essentiel pour Microsoft de résoudre les
limitations de DNA
.NET & C#
Le remplaçant
 1998 : début de Next Generation Windows
Services (NGWS).
 Développement confidentiel
 NGWS rebaptisé .NET le 22 Juin 2000
.NET & C#
.NET : une plateforme
logicielle
Description
Le framework
.NET & C#
Description
 Plateforme logicielle : programmes ne
cible pas une combinaison matériel/OS
mais .NET
 => marcheront partout où est implémenté
.NET
 environnement indépendant d'un langage
 But : écrire des programmes qui
interopère facilement et de façon sécurisé.
.NET & C#
Description
 .NET nom collectif pour des logiciels
variés qui sont construit sur la plateforme
.NET
 produits : Visual Studio.NET, Windows.NET
Server, …
 services : Passport, HailStorm, …
 Les composants qui constituent .NET-la-
platforme sont appelés le Framework
.NET.
.NET & C#
.NET Framework
 2 parties principales:
 1. La CLR (Common Language Runtime)
 2. Un ensemble hièrarchique de
bibliothéques de classes
.NET & C#
La CLR
 Le “moteur d’exécution” de .NET
 Les caractéristiques :
 Conversion IL -> code natif
 Gestion Mémoire (garbage collection)
 Vérifie et applique la sécurité
 Charge et exécute les programmes
.NET & C#
Intermediate Language
 Indépendant du CPU
 Indépendant du langage
 => chaque langage choisi un sous-ensemble
 Code accessible depuis d’autres langages
 => respect de la Common Language
Specification (CLS)
Code source IL
compilation
Exécution par
la CLR
.NET & C#
Managed Code
 code qui cible .NET
 contient des informations supplémentaires
(metadonnées) pour se décrire
 => CLR peut garantir la sécurité,
l’interopérabilité…
.NET & C#
Common Type System
 sert à décrire les types indépendamment
du langage =>
 type-fidelity : permet à des types d'un langage
d'interagir avec des types d'un autre langage
 type-safety : garanti que le code n'accède pas
à des zone mémoires interdites
.NET & C#
Unmanaged Code
 .NET peut utiliser du code sans métadonnées :
1. non « géré »
• peut utiliser la bibliothéque de .NET
• peut compiler en IL
• ne peut bénéficier du GC
2. natif
• pour de meilleures performances
• par exemple WinForms
.NET & C#
Assemblies
 Briques des programmes .NET
 unité fonctionnelle atomique
 Collection de code et de métadonnées
 Contient un Manifest, qui décrit
 son nom
 sa version
 la liste des fichiers
 les dépendances
 les fonctions fournies…
.NET & C#
Module
 Code compilé sans Manifest
 Sert à modularisé le développement
.NET & C#
JIT
 La CLR utilise la compilation Just-In-Time
 Chaque méthode appelée est compilée en
code natif
 appels suivants n’ont pas à être recompilés
 Qq problèmes : exige des resources
 mémoire
 processeur
.NET & C#
JIT
 2 compileurs JIT:
 un normal : optimise pas mal, mais intensif au niveau
de la mémoire et du processeur
 un "EconoJIT” : optimise pas aussi bien, mais requiert
moins de ressources
 Promesse d’un 3eme : un compileur pre-JIT
 = un compileur normal !
 Le seul plus : compile à l’installation => pas
besoin de distribuer du code spécifique pour
chaque plateforme
.NET & C#
Attributes
 Façon flexible et extensible de modifier
l’environnement à la compilation ou à
l’exécution
 Marquer une fonction comme étant
obsolète => warning à la compilation
 Attacher un auteur à chaque bout de code
=> on interroge ces attributs à l’exécution
.NET & C#
La bibliothéque de Classes
 Namespace : ensemble de classes
 La racine des namespaces est System
 Contient les types basiques comme Byte,
Double, Boolean, and String, Object…
 Tous les objets dérivent de System.Object
 value types ≠ objets
 Moyens efficace de convertir des value
types en objets
.NET & C#
Côté client
 L’ensemble des classes est assez complet :
 Collections
 File
 Screen
 network I/O
 Threading
 XML
 Connection aux bases de données…
 Windows Forms alternative au
développement traditionnel pour Windows
.NET & C#
Côté serveur
 Web Services :
composant sur un
serveur web utilisé
par :
 Une application
 Un autre Web Service
.NET & C#
Web Services
 SOAP (Simple Object Access Protocol)
 RPC qui utilise XML sur HTTP
 WSDL (Web Service Description Language)
 décrit la structure des messages
 UDDI (Universal Description, Discovery and
Integration)
 annuaire global des services web
.NET & C#
Web Services
WebServiceA
SOAP
AppA
Recherche service d’info sur WallStreet
WSDL
WSDL
Je fournis des services d’info sur WallStreet
WSDL
Annuaire
UDDI
WSDL
.NET & C#
Plan
 Présentation générale de C#
 Syntaxe du langage
 Les plus de C#
.NET & C#
I. Présentation générale
 Nouveau langage de Microsoft
 Langage orienté objet
 Ressemble à C++
 Utilise les classes définies dans .NET
 Pas une partie de .NET, langage comme
un autre
 Permet d’utiliser les concepts de .NET
proprement
.NET & C#
II. Syntaxe du langage
 Définition d’une classe
 Définition d’une méthode
 Principales instructions
 Types valeur et référence
.NET & C#
Définition d’une classe
namespace namespaceName {
using Namespace(s);
[access] [sealed | abstract] class NomClasse
[: Classe, Interface(s)] {
[définition de la classe]
} }
 Accessibilité à la classe
public private
protected internal
protected internal
.NET & C#
Définition d’une méthode
 Une méthode
[access] [new] [static] [abstract] [sealed] [extern]
[virtual | override] [TypeRetour | void] NomMethode
([TypeParam param]) [: base ([param])] {
[corps de la méthode]
}
 La méthode Main
public static [int | void] Main([String[] args]){
[corps de la méthode]
}
.NET & C#
public class Parent{
public void DoStuff(string str) {
Console.WriteLine("In Parent.DoStuff: "); }
}
public class Child: Parent {
public void DoStuff(string str) {
Console.WriteLine("In Child.DoStuff: "); }
}
public class VirtualTest {
public static void Main(string[] args) {
Child ch = new Child();
ch.DoStuff("Test");
((Parent) ch).DoStuff("Second Test");
} }
.NET & C#
 Méthode m(), liste arguments A, une
instance I dont type à la compilation est C
et le type àl’exécution est R (R = C ou
sous classe de C)
 lors de l’appel de méthode m() sur I
1. Recherche méthode dans C (peut être
héritée)
2. Si la méthode de C non virtuelle, on l’appelle
3. Si la méthode de C virtuelle, on recherche
méthode de même signature la plus dérivée
que R peut appeler
.NET & C#
Principales instructions
 if
 while
 do
 for
 switch
 Foreach
foreach (typeObj identifiant in collectionObj)
action;
.NET & C#
Types valeur et référence
 Type référence
 créé sur le « tas » (grâce à new)
 libéré par le ramasse miettes
 Type valeur
 créé sur la pile
 supprimé au retour d’un appel de méthode
 pas sous la responsabilité du ramasse miettes
 Déclaration : mot-clé struct (au lieu de classe)
.NET & C#
III. Les plus de C#
 Structures
 Le boxing/unboxing
 Les properties
 Les attributs
 Les indexeurs
 Les délégués
 Pointeur et code non protégé: unsafe code
 Le versionning
.NET & C#
Structs
 Mot-clé struct
 Objets de type valeur
 Déclaration des mêmes types de membres
qu’une classe possible
 Pas d’héritage possible
 Peut implémenter des interfaces
 La visibilité par défaut = protected
.NET & C#
Le boxing / unboxing
 Conversion type valeur <-> type référence
 Boxing (type valeur -> type référence) :
une instance de type objet allouée et la valeur copiée
dans cet objet
 Unboxing (type référence -> type valeur) :
. Vérifie que le type de la valeur de l’instance et le type
du type valeur voulu correspondent
. sort la valeur de l’instance
 ex : object box = 123;
int i = (int)box;
.NET & C#
Les properties
 extension des champs (objet.prop)
 Ne définit pas d’emplacement mémoire
 Définit des accesseurs décrivant instructions à exécuter
 propriétés en lecture, écriture ou lecture/écriture
 public class User {
private string name;
public string Name{
set { name = value; } // ecriture
}
}
.NET & C#
Les attributs
 un moyen d'insérer des annotations (i.e méta-
données)
 Ex:
[Serializable]: Similaire à l'implémentation de
l'interface java.io.Serializable de Java.
 Peut créer ses propres attributs en sous-classant
System.Attribute
.NET & C#
[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute: Attribute {
private string url;
public HelpAttribute(string url) { this.url = url; } }
[Help("http://www.mycompany.com/.../Class1.htm")]
public class Class1 {
public void F() {} }
class Test {
static void Main() {
Type type = typeof(Class1);
object[] arr =
type.GetCustomAttributes(typeof(HelpAttribute), false);
HelpAttribute ha = (HelpAttribute) arr[0];
Console.WriteLine("Url = {0}", ha.Url);
} }
.NET & C#
Les indexers
 Permet à un objet d’être indexé
 Exemple : peut accèder aux éléments d’une
pile sans dépiler les éléments
 déclaration similaire à la déclaration d’une
property
 différences :
. nom de la propriété est « this »
. Paramêtre représentant l’indexe
 ex : public object this[int index] {
get { … }
set { … } }
.NET & C#
Les délégués
 proche des pointeurs de fonction en C ou C++
 Encapsule 1 methode ou plus : «callable entity»
 Pour methode d’instance, callable entity = 1 instance et la
méthode à appliquer sur l’instance
 Pour methode statique, callable entity = la methode
 L’appel à la méthode = appel au délégué auquel on fournit
les bons paramêtres
 Déclaration, instanciation, appel:
 delegate [type | void] delegateName ([type param]*);
 delegateName d = new delegateName (nomFonction);
 D(param);
.NET & C#
Unsafe code
 déclare des pointeurs (noté type*)
 void* = pointeur vers un type inconnu
 Du code « unsafe » doit être marqué avec le
mot-clé « unsafe »
 Pointeurs ne sont pas gérés par le GC
 un pointeur peut être null
 opérateurs
 & adresse d’une variable
 * déréférencement
 [] indexe un pointeur
 ==, !=, <, >, <= et => pour comparer des pointeurs
.NET & C#
Le versionning
 possibilité d'exécuter plusieurs versions différentes d'une
même classe
 les programmes C# référencent statiquement des
bibliothèques de classes à l'aide de leur nom mais aussi
de leur version
 Une nouvelle version est
 source compatible : si du code qui en dépend doit être recompilé
pour marcher
 binary compatible : si du code qui en dépend marche sans rien
avoir à faire
.NET & C#
Les alternatives
 J2EE (JOnAS, JBoss)
 Mono (Ximian)
 Compilateur C#
 CLR
 Bibliothéques
 Très actif
 DotGnu (FSF)
 Remplaçant complet de .NET
 Fonctionalités de HailStorm
 Pas très actif
.NET & C#
Microsoft .NET vs. J2EE
 Offrent les mêmes fonctionnalités
 Seule ≠ de .NET : indépendant du langage
 + : paradis pour dévelopeur
 - : enfer pour chef de projet
 La barrière Java est vite franchie
.NET & C#
Conclusion
 Microsoft se vante de la portabilité et de
l’ouverture mais :
 Si app accède à des services natifs « pour
la performance » alors réduit à une app
Windows
 Exemple : WinForms
 Peut faires des extensions propriètaires
 cf J++, HTML, WMP plug-in, …
.NET & C#
Références
 http://arstechnica.com/paedia/n/net/net-1.html
 http://www.osnews.com/topic.php?icon=36
 http://www-adele.imag.fr/~donsez/cours/
 http://microsoft.com/net
 http://www.linuxdevices.com/files/misc/prasad-
28oct01.html
.NET & C#
Références
 http://www.dotnetguru.org/article.php?sid=18
 http://tutorials.beginners.co.uk/index/category/
87
 http://www.jaggersoft.com/csharp_standard/
 http://www.go-mono.com/
 http://dotgnu.org/

Mais conteúdo relacionado

Mais procurados

Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#Youness Boukouchi
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)Mahfoud EL HOUDAIGUI
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancéeMahfoud EL HOUDAIGUI
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Jean-Baptiste Vigneron
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Aziz Darouichi
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Aziz Darouichi
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp FrGregory Renard
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduralekemenaran
 
Cours c#
Cours c#Cours c#
Cours c#zan
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIJihenHedhli1
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1Beligh HAMDI
 

Mais procurados (20)

Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)
 
C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp Fr
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procédurale
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Cours c#
Cours c#Cours c#
Cours c#
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
 

Semelhante a Dotnet csharp

Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 OverviewGregory Renard
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxLuneSabsPericolo1
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
La technologie net par karim kalti
La technologie net par karim kalti La technologie net par karim kalti
La technologie net par karim kalti Imen Naés
 
ESGAE_C#_2021-2024 Cours Avancé (('.pptx
ESGAE_C#_2021-2024 Cours Avancé (('.pptxESGAE_C#_2021-2024 Cours Avancé (('.pptx
ESGAE_C#_2021-2024 Cours Avancé (('.pptxLagloireSouamounou
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tousMicrosoft
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPfrwebhelp
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 

Semelhante a Dotnet csharp (20)

C#
C#C#
C#
 
Tour Horizont.Net
Tour Horizont.NetTour Horizont.Net
Tour Horizont.Net
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
De Java à .NET
De Java à .NETDe Java à .NET
De Java à .NET
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
Apple : iOS
Apple : iOSApple : iOS
Apple : iOS
 
La technologie net par karim kalti
La technologie net par karim kalti La technologie net par karim kalti
La technologie net par karim kalti
 
ESGAE_C#_2021-2024 Cours Avancé (('.pptx
ESGAE_C#_2021-2024 Cours Avancé (('.pptxESGAE_C#_2021-2024 Cours Avancé (('.pptx
ESGAE_C#_2021-2024 Cours Avancé (('.pptx
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APP
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Apache ANT
Apache ANTApache ANT
Apache ANT
 

Último

SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 

Último (20)

SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 

Dotnet csharp

  • 1. .NET & C# Sandra CHAVES Sylvain CUAZ DESS GI SRR 2002-2003 IMA - Université Grenoble 1
  • 2. .NET & C# Plan I. Origine de .NET II. .NET III. Le langage C# IV. Les alternatives V. Conclusion
  • 3. .NET & C# Origine de .NET  1995 : Microsoft se tourne vers le net  gros compromis pour vite produire des outils et technologies basés sur l’Internet  tentative de ramener un peu d’ordre avec le concept DNA
  • 4. .NET & C# DNA  3 niveaux  Active Server Pages pour la présentation,  Objets métiers en COM au milieu,  Une base de donnée pour le bas.  Concept sain, mais difficile à mettre en oeuvre  D’autres plateformes offrait de bien meilleures solutions (Unix, J2EE)  essentiel pour Microsoft de résoudre les limitations de DNA
  • 5. .NET & C# Le remplaçant  1998 : début de Next Generation Windows Services (NGWS).  Développement confidentiel  NGWS rebaptisé .NET le 22 Juin 2000
  • 6. .NET & C# .NET : une plateforme logicielle Description Le framework
  • 7. .NET & C# Description  Plateforme logicielle : programmes ne cible pas une combinaison matériel/OS mais .NET  => marcheront partout où est implémenté .NET  environnement indépendant d'un langage  But : écrire des programmes qui interopère facilement et de façon sécurisé.
  • 8. .NET & C# Description  .NET nom collectif pour des logiciels variés qui sont construit sur la plateforme .NET  produits : Visual Studio.NET, Windows.NET Server, …  services : Passport, HailStorm, …  Les composants qui constituent .NET-la- platforme sont appelés le Framework .NET.
  • 9. .NET & C# .NET Framework  2 parties principales:  1. La CLR (Common Language Runtime)  2. Un ensemble hièrarchique de bibliothéques de classes
  • 10. .NET & C# La CLR  Le “moteur d’exécution” de .NET  Les caractéristiques :  Conversion IL -> code natif  Gestion Mémoire (garbage collection)  Vérifie et applique la sécurité  Charge et exécute les programmes
  • 11. .NET & C# Intermediate Language  Indépendant du CPU  Indépendant du langage  => chaque langage choisi un sous-ensemble  Code accessible depuis d’autres langages  => respect de la Common Language Specification (CLS) Code source IL compilation Exécution par la CLR
  • 12. .NET & C# Managed Code  code qui cible .NET  contient des informations supplémentaires (metadonnées) pour se décrire  => CLR peut garantir la sécurité, l’interopérabilité…
  • 13. .NET & C# Common Type System  sert à décrire les types indépendamment du langage =>  type-fidelity : permet à des types d'un langage d'interagir avec des types d'un autre langage  type-safety : garanti que le code n'accède pas à des zone mémoires interdites
  • 14. .NET & C# Unmanaged Code  .NET peut utiliser du code sans métadonnées : 1. non « géré » • peut utiliser la bibliothéque de .NET • peut compiler en IL • ne peut bénéficier du GC 2. natif • pour de meilleures performances • par exemple WinForms
  • 15. .NET & C# Assemblies  Briques des programmes .NET  unité fonctionnelle atomique  Collection de code et de métadonnées  Contient un Manifest, qui décrit  son nom  sa version  la liste des fichiers  les dépendances  les fonctions fournies…
  • 16. .NET & C# Module  Code compilé sans Manifest  Sert à modularisé le développement
  • 17. .NET & C# JIT  La CLR utilise la compilation Just-In-Time  Chaque méthode appelée est compilée en code natif  appels suivants n’ont pas à être recompilés  Qq problèmes : exige des resources  mémoire  processeur
  • 18. .NET & C# JIT  2 compileurs JIT:  un normal : optimise pas mal, mais intensif au niveau de la mémoire et du processeur  un "EconoJIT” : optimise pas aussi bien, mais requiert moins de ressources  Promesse d’un 3eme : un compileur pre-JIT  = un compileur normal !  Le seul plus : compile à l’installation => pas besoin de distribuer du code spécifique pour chaque plateforme
  • 19. .NET & C# Attributes  Façon flexible et extensible de modifier l’environnement à la compilation ou à l’exécution  Marquer une fonction comme étant obsolète => warning à la compilation  Attacher un auteur à chaque bout de code => on interroge ces attributs à l’exécution
  • 20. .NET & C# La bibliothéque de Classes  Namespace : ensemble de classes  La racine des namespaces est System  Contient les types basiques comme Byte, Double, Boolean, and String, Object…  Tous les objets dérivent de System.Object  value types ≠ objets  Moyens efficace de convertir des value types en objets
  • 21. .NET & C# Côté client  L’ensemble des classes est assez complet :  Collections  File  Screen  network I/O  Threading  XML  Connection aux bases de données…  Windows Forms alternative au développement traditionnel pour Windows
  • 22. .NET & C# Côté serveur  Web Services : composant sur un serveur web utilisé par :  Une application  Un autre Web Service
  • 23. .NET & C# Web Services  SOAP (Simple Object Access Protocol)  RPC qui utilise XML sur HTTP  WSDL (Web Service Description Language)  décrit la structure des messages  UDDI (Universal Description, Discovery and Integration)  annuaire global des services web
  • 24. .NET & C# Web Services WebServiceA SOAP AppA Recherche service d’info sur WallStreet WSDL WSDL Je fournis des services d’info sur WallStreet WSDL Annuaire UDDI WSDL
  • 25. .NET & C# Plan  Présentation générale de C#  Syntaxe du langage  Les plus de C#
  • 26. .NET & C# I. Présentation générale  Nouveau langage de Microsoft  Langage orienté objet  Ressemble à C++  Utilise les classes définies dans .NET  Pas une partie de .NET, langage comme un autre  Permet d’utiliser les concepts de .NET proprement
  • 27. .NET & C# II. Syntaxe du langage  Définition d’une classe  Définition d’une méthode  Principales instructions  Types valeur et référence
  • 28. .NET & C# Définition d’une classe namespace namespaceName { using Namespace(s); [access] [sealed | abstract] class NomClasse [: Classe, Interface(s)] { [définition de la classe] } }  Accessibilité à la classe public private protected internal protected internal
  • 29. .NET & C# Définition d’une méthode  Une méthode [access] [new] [static] [abstract] [sealed] [extern] [virtual | override] [TypeRetour | void] NomMethode ([TypeParam param]) [: base ([param])] { [corps de la méthode] }  La méthode Main public static [int | void] Main([String[] args]){ [corps de la méthode] }
  • 30. .NET & C# public class Parent{ public void DoStuff(string str) { Console.WriteLine("In Parent.DoStuff: "); } } public class Child: Parent { public void DoStuff(string str) { Console.WriteLine("In Child.DoStuff: "); } } public class VirtualTest { public static void Main(string[] args) { Child ch = new Child(); ch.DoStuff("Test"); ((Parent) ch).DoStuff("Second Test"); } }
  • 31. .NET & C#  Méthode m(), liste arguments A, une instance I dont type à la compilation est C et le type àl’exécution est R (R = C ou sous classe de C)  lors de l’appel de méthode m() sur I 1. Recherche méthode dans C (peut être héritée) 2. Si la méthode de C non virtuelle, on l’appelle 3. Si la méthode de C virtuelle, on recherche méthode de même signature la plus dérivée que R peut appeler
  • 32. .NET & C# Principales instructions  if  while  do  for  switch  Foreach foreach (typeObj identifiant in collectionObj) action;
  • 33. .NET & C# Types valeur et référence  Type référence  créé sur le « tas » (grâce à new)  libéré par le ramasse miettes  Type valeur  créé sur la pile  supprimé au retour d’un appel de méthode  pas sous la responsabilité du ramasse miettes  Déclaration : mot-clé struct (au lieu de classe)
  • 34. .NET & C# III. Les plus de C#  Structures  Le boxing/unboxing  Les properties  Les attributs  Les indexeurs  Les délégués  Pointeur et code non protégé: unsafe code  Le versionning
  • 35. .NET & C# Structs  Mot-clé struct  Objets de type valeur  Déclaration des mêmes types de membres qu’une classe possible  Pas d’héritage possible  Peut implémenter des interfaces  La visibilité par défaut = protected
  • 36. .NET & C# Le boxing / unboxing  Conversion type valeur <-> type référence  Boxing (type valeur -> type référence) : une instance de type objet allouée et la valeur copiée dans cet objet  Unboxing (type référence -> type valeur) : . Vérifie que le type de la valeur de l’instance et le type du type valeur voulu correspondent . sort la valeur de l’instance  ex : object box = 123; int i = (int)box;
  • 37. .NET & C# Les properties  extension des champs (objet.prop)  Ne définit pas d’emplacement mémoire  Définit des accesseurs décrivant instructions à exécuter  propriétés en lecture, écriture ou lecture/écriture  public class User { private string name; public string Name{ set { name = value; } // ecriture } }
  • 38. .NET & C# Les attributs  un moyen d'insérer des annotations (i.e méta- données)  Ex: [Serializable]: Similaire à l'implémentation de l'interface java.io.Serializable de Java.  Peut créer ses propres attributs en sous-classant System.Attribute
  • 39. .NET & C# [AttributeUsage(AttributeTargets.All)] public class HelpAttribute: Attribute { private string url; public HelpAttribute(string url) { this.url = url; } } [Help("http://www.mycompany.com/.../Class1.htm")] public class Class1 { public void F() {} } class Test { static void Main() { Type type = typeof(Class1); object[] arr = type.GetCustomAttributes(typeof(HelpAttribute), false); HelpAttribute ha = (HelpAttribute) arr[0]; Console.WriteLine("Url = {0}", ha.Url); } }
  • 40. .NET & C# Les indexers  Permet à un objet d’être indexé  Exemple : peut accèder aux éléments d’une pile sans dépiler les éléments  déclaration similaire à la déclaration d’une property  différences : . nom de la propriété est « this » . Paramêtre représentant l’indexe  ex : public object this[int index] { get { … } set { … } }
  • 41. .NET & C# Les délégués  proche des pointeurs de fonction en C ou C++  Encapsule 1 methode ou plus : «callable entity»  Pour methode d’instance, callable entity = 1 instance et la méthode à appliquer sur l’instance  Pour methode statique, callable entity = la methode  L’appel à la méthode = appel au délégué auquel on fournit les bons paramêtres  Déclaration, instanciation, appel:  delegate [type | void] delegateName ([type param]*);  delegateName d = new delegateName (nomFonction);  D(param);
  • 42. .NET & C# Unsafe code  déclare des pointeurs (noté type*)  void* = pointeur vers un type inconnu  Du code « unsafe » doit être marqué avec le mot-clé « unsafe »  Pointeurs ne sont pas gérés par le GC  un pointeur peut être null  opérateurs  & adresse d’une variable  * déréférencement  [] indexe un pointeur  ==, !=, <, >, <= et => pour comparer des pointeurs
  • 43. .NET & C# Le versionning  possibilité d'exécuter plusieurs versions différentes d'une même classe  les programmes C# référencent statiquement des bibliothèques de classes à l'aide de leur nom mais aussi de leur version  Une nouvelle version est  source compatible : si du code qui en dépend doit être recompilé pour marcher  binary compatible : si du code qui en dépend marche sans rien avoir à faire
  • 44. .NET & C# Les alternatives  J2EE (JOnAS, JBoss)  Mono (Ximian)  Compilateur C#  CLR  Bibliothéques  Très actif  DotGnu (FSF)  Remplaçant complet de .NET  Fonctionalités de HailStorm  Pas très actif
  • 45. .NET & C# Microsoft .NET vs. J2EE  Offrent les mêmes fonctionnalités  Seule ≠ de .NET : indépendant du langage  + : paradis pour dévelopeur  - : enfer pour chef de projet  La barrière Java est vite franchie
  • 46. .NET & C# Conclusion  Microsoft se vante de la portabilité et de l’ouverture mais :  Si app accède à des services natifs « pour la performance » alors réduit à une app Windows  Exemple : WinForms  Peut faires des extensions propriètaires  cf J++, HTML, WMP plug-in, …
  • 47. .NET & C# Références  http://arstechnica.com/paedia/n/net/net-1.html  http://www.osnews.com/topic.php?icon=36  http://www-adele.imag.fr/~donsez/cours/  http://microsoft.com/net  http://www.linuxdevices.com/files/misc/prasad- 28oct01.html
  • 48. .NET & C# Références  http://www.dotnetguru.org/article.php?sid=18  http://tutorials.beginners.co.uk/index/category/ 87  http://www.jaggersoft.com/csharp_standard/  http://www.go-mono.com/  http://dotgnu.org/