Nguyen Tuan Loc 10/04

24
Nguyen Tuan Loc 10/04

description

™. Microsoft .NET & Langage Intermédiaire du Web (C#). Nguyen Tuan Loc 10/04. Contenu. 1) Microsoft.NET .NET et Framework.NET .NET et les langages supportés Mécanisme de fonctionnement de .NET Installation .NET 2) C# et C++ Présentation C# Comment ça marche C# ? - PowerPoint PPT Presentation

Transcript of Nguyen Tuan Loc 10/04

Page 1: Nguyen Tuan Loc 10/04

Nguyen Tuan Loc

10/04

Page 2: Nguyen Tuan Loc 10/04

Contenu

1) Microsoft.NET– .NET et Framework.NET– .NET et les langages supportés– Mécanisme de fonctionnement de .NET– Installation .NET

2) C# et C++– Présentation C#– Comment ça marche C# ?– Pourquoi choisir C# ?– Comparaison entre C# et C++

Avantages Similaire Inconvénients

3) Perspective & conclusion

Page 3: Nguyen Tuan Loc 10/04

Présentation .NET & .NET Framework

Microsoft propose 4 langages– C#, C++,VB.NET,ASP.NET

dont C# est le premier recommandé par Microsoft

Autres langages supportés– Perl, Cobol, Eiffel, J#, Oberon,Component Pascal,

Python, Smalltalk

Page 4: Nguyen Tuan Loc 10/04

.NET & CLR Common Language Runtime

Page 5: Nguyen Tuan Loc 10/04

Architectures intelligentes

Intelligence : -Intégration, -Réutilisation, -Interopérabilité.

sourisMSIL

chat.cs

chienMSIL

chatMSIL

chien.pl

deploymentWindows

JIT

Linux (?)

JIT

souris.vb

Exemple :

CLRCLR

JIT : Machine virtuelle de Microsoft

Microsoft Framework.NETMicrosoft Framework.NET

7/32CLR : Common Runtime LanguageMSIL : Langage Intermédiaire de Microsoft

Page 6: Nguyen Tuan Loc 10/04

Mécanisme de fonctionnement de MS.NET

chienMSIL

chat.cs

sourisMSIL

chien.vb

chatMSIL

souris.pl

déploiement

Windows

JIT

Linux (?)

JIT

CLR : moteur exécution en langage commun

CLR : Common Language RuntimeJIT : Just in Time (2eme compilateur)

Page 7: Nguyen Tuan Loc 10/04

Assemblage de composants

Bonne conception ?

Nombre de composants

Prix de composants

Prix d’interfaces

Prix

Prix minimum

c

J

VBC

J

Page 8: Nguyen Tuan Loc 10/04

Résumé

Architectures intelligentes de .NET :– Rapidité, qualité : l’intelligence se trouve dans

la logique de services, pas dans le traitement de services.

– Ouvertes dans un monde « fermé » : l’implémentation propriétaire (.Net sur Linux?).

Page 9: Nguyen Tuan Loc 10/04

Installation Microsoft.NET

Que faut-il avoir pour une application .NET tourne ?– Windows OS (XP n’a pas besoin)

Windows 2000 recommandé ou Microsoft .NET SDK (30 mb)

– http://msdn.microsoft.com/netframework

– Editeur de texte (notepad) ou Visual Studio.NET (option) (10 licences déjà dans l’équipe TDD, 3 utilisées)

La production avec Perl : Visual Perl de ActiveState (partenaire .Net de Microsoft) (495 $) (option)

Page 10: Nguyen Tuan Loc 10/04

Qu’est-ce c’est C# ?

Langage proposé par Microsoft, standardisé par ECMA, ressemble la syntaxe de Java

– Langage orienté objet– Une partie évolue vers langage orienté et langage de

programmation de component– Dérivé de C++– MFC est remplacée par librairie .NET Framework

Combinaison entre la force de C++ et la simplicité de Visual Basic

Cross Plate-forme Cross Langage

Page 11: Nguyen Tuan Loc 10/04

C# : comment ça marche ?

C#

Codenatif

(selon OS)

JIT.cs

Code source

‘.exe’‘.dll’

Microsoft Intermediate Language (MSIL)

CLS ‘Règle de

tranformation en .NET’

Just in Time Compiler

CLR Common Runtime Language

Page 12: Nguyen Tuan Loc 10/04

Avantages C#Avantages C#Plus ouvertPlus ouvertInteropérabilité dans le futur avec Framework Interopérabilité dans le futur avec Framework .Net (Windows, »Linux,Unix »).Net (Windows, »Linux,Unix »)Supporter XML (standard de l’Internet W3c)Supporter XML (standard de l’Internet W3c)Composant.Net (complexité, time to market, Composant.Net (complexité, time to market, plug and play)plug and play)

Inconvénients C#Inconvénients C#Apprendre nouveau concept de base (.Net)Apprendre nouveau concept de base (.Net)Apprendre nouveau langage Apprendre nouveau langage (temps d’estimation (temps d’estimation environ 4 semaine)environ 4 semaine)

C# versus C++ C# versus C++ Pourquoi choisir C# ?Pourquoi choisir C# ?

Page 13: Nguyen Tuan Loc 10/04

Peu de pointeur Conversion automatique (boxing)

– list.Add(1); – list.Add(13.12);

Versioning– C# demande le développer de clarifier la création de la

version librairie créée. Utilise le keyword ‘new’ et ‘override

Utiliser la librairie de framework .NET Threading, Collection, XML, ADO+, ASP+, GDI+ & WinForms

libraries

Avantages C#

Page 14: Nguyen Tuan Loc 10/04

Avantages C#

C# élimine header .h C# non pointeur (très limité). C# est un langage objet orienté pur avec tous les

objets et types dérivés de la classe Object. Codé géré (pas besoin de ‘’free’’ et ‘’delete’’)-> plus de paniques MFC(CString, string) en

COM,VB(_bstr, BSTR) !-> classe Systeme CLR remplacée.

Plus détails :– http://msdn.microsoft.com/library/default.asp?url=/library/enus/

cscon/html/vclrfcomparisonbetweenccsharp.asp

Page 15: Nguyen Tuan Loc 10/04

Similaire C++ et C#

– Keywords similaires (dérive de C++)– Classe hiérarchie par arbre avec un Root– Machine virtuelle & IL/CLR– Garbage Collection– Pas de méthode globale– Pas d’inhérence Multiple

Page 16: Nguyen Tuan Loc 10/04

Inconvénients de C#

Technologie Windows 100%, porter Framework sur Linux “à voir” (projet Mono)

.NET et C# sont des "standards ouverts" ne signifie pas nécessairement des "environnements ouverts". (IBM-ZDNet)

La première fois est lente (à cause de compilateur 2-time) Les tests du produit non extensifs (large utilisé par

communauté des utilisateurs) Trop nouveau, vient d’être soumis et accepté par ECMA

Page 17: Nguyen Tuan Loc 10/04

Orienté vers l’évolution de l’Internet et les Web Services

Perspective :

– .NET est une architecture ouverte

Et Pourquoi ?

.NET et perspective

Page 18: Nguyen Tuan Loc 10/04

XML, C# et .NET :

Source Microsoft DevDay 2003

Page 19: Nguyen Tuan Loc 10/04

EvolutionEvolution

Basic InterpreterBasic Interpreter

MicroMicrocomputercomputer

19751975

WindowsWindows19901990

Visual Visual

ToolsTools

PCPC19811981

Quick Quick LanguagesLanguages

.NET,C#.NET,C#

Web ServicesWeb ServicesWin.NET, 200xWin.NET, 200x

Visual Visual Studio 6Studio 6

InternetInternet19971997

Page 20: Nguyen Tuan Loc 10/04

C# et .NET: orientation tothe Internet evolution

Application to application(B2B)

Web services

Web services

XML/SOAP

Architecture “n-tiers”

Person to person(C2C)

Data echange

PC

PC

Architecture 1-tiers

Evolution de l’architecture

Application to person (B2C)

Web server

Web browser HTTP/HTML

Architecture 2-tiers Architecture 2-tiers

Web browser

Application to person (B2C)

HTTP/HTML

Web server

Databases

Page 21: Nguyen Tuan Loc 10/04

.NET et perspective

Boîte blancheUtiliser le code monolithique dans programme

Boîte noireAssembler les codes compilés dans un programme

Boîte grise (.NET et autres langages)

Entre boîte noir et boîte noir plus interface de wrapping

Page 22: Nguyen Tuan Loc 10/04

.NET conclusion

Solution pour résoudre 3 problèmes de base:– Intégration– Réutilisation– Interopérabilité

Supporter SOAP, XML -> Nouveau standard de l’industrie

Page 23: Nguyen Tuan Loc 10/04

C# conclusion

C# = Power C++ + Simplicity Visual Basic

+ Interoperability Java

C# = Langage ouvert et du futur

Page 24: Nguyen Tuan Loc 10/04

Références

NET Framework SDK (includes C# compiler)– http://msdn.microsoft.com/netframework– http://www.gotdotnet.com

ECMA C# Standardhttp://www.ecma.ch/ecma1/stand/ecma-334.htm

Microsoft Visual C# .NET– http://msdn.microsoft.com/vcsharp– http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cscon/html/

vcoricstartpage.asp– http://www.csharphelp.com/– http://msdn.microsoft.com/msdnmag/issues/01/07/ctocsharp/ctocsharp.asp– http://windows.oreilly.com/news/hejlsberg_0800.html – http://msdn.microsoft.com/msdnmag/issues/0900/csharp/default.aspx

Microsost.NET, C#, groupes françaises :– http://www.dotnet-fr.org– http://www.c2i.fr