Chapitre 1 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Chapitre 1: Architecture Framework .Net

Dr. Safa CHEBBI 2021-2022

Plan du cours 1. Microsoft .Net 2. Définition Framework .Net 3. Avantages Framework .Net

4. Objectifs .Net 5. Composantes Architecture .Net 6. Compilation avec CLR 7. Langage Intermédiaire 8. Langage C# 9. Visual Studio

C'est quoi Microsoft .Net? ❑ Microsoft .NET: ensemble de produits et de technologies informatiques introduits par Microsoft pour créer des applications sur différents systèmes d'exploitation. ❑ Les implémentations de la plateforme .Net sur les différents systèmes d'exploitation:

✓ Framework .Net: l'mplémentation originale du .Net pour exécuter des applications sur windows ✓ .Net Core (open source): implémentation multi-plateforme sur windows, linux et macOS ✓ Xamarin: implémentation .Net pour exécuter des applications sur la majorité des systèmes d'exploitation mobile comprenant ios et android.

framework .Net • C'est un langage de programmation? Framework? Technologie? Application .Net

• c'est un framework logiciel sur lequel on peut utiliser n'importe quel langage de programmation pour développer des applications de différents types : web, console, desktop Framework .Net

L'intention principale était de combler l'écart d'interopérabilité entre les services de divers langages de programmation.

Système d'exploitation + Hardware

Historique Framework .Net • Microsoft a annoncé l'initiative .NET en juillet 2000 avec la version beta 1.0 (dernière version avant la commercialisation). • Version 2.0 en 2004 avec des contrôles supplémentaires et améliorés.

• Version 3.0 avec windows server 2008 et windows vista. • Version 3.5 avec windows 7. • Version 4.0 avec des modèles de sécurité améliorés. • Version 4.5 en 2012. • Version 4.6 en 2014 avec le nouveau JIT pour le système 64 bits.

• Version 4.7 en 2017 • Version 4.8 en 2019 supporte approximativement plus de 300 langages de programmation.

Les objectifs du framework .net ❑Le framework .NET est conçu pour atteindre principalement les objectifs suivants: ✓Fournir un environnement de programmation orienté objet

✓Fournir un environnement pour développer divers types d'applications: web, Windows, mobile... ✓Pour s'assurer que le code basé sur le Framework .NET peut s'intégrer à tout autre code

caractéristiques du framework .net ❑Interopérabilité entre les différents langages de programmation via le Common Type System (CTS) ❑Problèmes de versionnage largement traités sans effort

❑Prise en charge de POO ❑Indépendance linguistique ❑Déploiement simplifié ❑Développement facile d'application Web ❑Sécurité des applications intégrées: .Net encapsule de nombreuses fonctionnalités dans des classes grâce au concept de la POO. ❑Portabilité: capacité de s'exécuter sous différents environnements (ordinateur, tablette,…)

Les composants du famework .NET ❖Common Language Runtime (CLR) ➢Environnement pour l'exécution contrôlée du code programmé: comme une machine virtuelle

➢Exécute des applications .NET ❖Bibliothèque de classes Framework (FCL) ➢Bibliothèque de classes standard pour le développement .NET ➢Fournit des fonctionnalités de base pour le développement : XML, ADO.NET, LINQ, ASP.NET, WPF, WCF, WWF,

➢Silverlight, Web services, Windows Forms, ... ❖SDK, compilateurs et outils

Architecture du framework .NET (1) ❑ L'OS gère les ressources, les processus et les utilisateurs de la machine ❑ Fournit aux applications certains services (threads, I/O, GDI+, DirectX, COM, COM+, MSMQ, IIS, WMI, …) ❑ CLR est un processus distinct dans le système d'exploitation

Operating System (OS)

Architecture du rfamework .NET (1) ❑ CLR gère l'exécution du code .NET

❑ Gère la mémoire, la simultanéité, la sécurité, ...

Common Language Runtime (CLR) Operating System (OS)

Architecture du rfamework .NET (1) ❑ Collection de classes réutilisables pour les tâches courantes et habituelles: gestion des Entrées-sorties, traitement de texte, mise en réseau, sécurité, multi-threading,...

Base Class Library (BCL)

Common Language Runtime (CLR) Operating System (OS)

Architecture du rfamework .NET (1) ❑ Accès à la base de données ❑ ADO.NET, LINQ, et Entity Framework ❑ Prise en charge XML forte

ADO.Net, LINQ, XML Base Class Library (BCL)

Common Language Runtime (CLR) Operating System (OS)

Architecture du rfamework .NET (1) ASP.Net

Windows Forms

WPF

ADO.Net, LINQ, XML Base Class Library (BCL)

Common Language Runtime (CLR) Operating System (OS)

❑ Technologies d'interface utilisateur : Web, interface graphique Windows, WPF, Silverlight, mobile,

Architecture du rfamework .NET C#

F# ASP.Net J# VB.Net

ASP.Net

JScript ...... ASP.Net

Windows Forms

WPF

ADO.Net, LINQ, XML Base Class Library (BCL)

Common Language Runtime (CLR) Operating System (OS)

Langage de programmation au choix!

Common Language Runtime (CLR): le cœur du framework .Net ❑ Le principal composant du framework .Net ❑ Environnement d'exécution géré: prend en charge des services communs tels que le ramasse-miettes et la sécurité ❑ Pas un interprète: La compilation à la demande est utilisée:connu sous le nom de compilation Just In Time (JIT)

❑ Compilation possible à l'avance (Ngen) ❑ Les applications .Net sont compilées en un langage commun connu comme MSIL ou IL code ❑ CLR convertit le langage haut niveau en langage machine en utilisant l'unité JIT (Just In Time)

Les Responsabilités du CLR ❑ ❑ ❑ ❑ ❑

❑ ❑ ❑ ❑

Exécution du code IL et de la compilation JIT Gestion de la mémoire et des ressources applicatives Assurer la sécurité des types Interaction avec l'OS Gestion de la sécurité ✓ Code de sécurité d'accès ✓ Sécurité basée sur les rôles Gestion des exceptions Gestion de la concurrence: contrôle de l'exécution parallèle des threads d'application Interaction avec du code non managé Prise en charge du débogage

Architecture CLR

Code manager: Code Géré ❑ .Net prend en charge deux types de codage : géré et non géré ❑ Le code exécuté par le CLR est appelé code géré ❑ Représente le code de programmation dans le langage de bas niveau MSIL (MS Intermediate Language) ❑ Description des classes, interfaces, propriétés, champs, méthodes, paramètres, etc. ❑ Les programmes, écrits dans n'importe quel langage .NET sont Orientés objet ❑ Sécurisé ❑ Fiable : Protégé contre l'utilisation irrégulière des types (type-safe) ❑ Permet l'intégration entre les composants et les types de données de différents langages de programmation ❑ Portable entre différentes plates-formes Windows, Linux, Max OS X, etc. ✓ Compilé en code managé (MSIL) ✓ Conditionné sous forme d'assemblys (fichiers .exe ou .dll)

Code manager: Code non Géré ❑Pas de protection de la mémoire et de la sécurité de type : ✓ Problèmes de fiabilité ✓ Problèmes de sécurité ❑Compilé en code dépendant de la machine : ✓ besoin de différentes versions pour différents plates-formes ✓ Difficile d'être porté sur d'autres plateformes

Gestion de la mémoire ❑CLR gère automatiquement la mémoire: ✓ Les objets chargés dynamiquement sont stockés dans le tas géré ✓ Les objets inutilisables sont automatiquement nettoyés par les ordures collectionneur ❑Certains des gros problèmes sont résolus ✓ Fuites de mémoire ✓ Accès à la mémoire libérée ou non allouée

Ramasses Miettes (Garbage Collector) ✓ il s'assure que la mémoire utilisée par une application est complètement libérée lorsque l'application n'est plus utilisée. ✓ Il inspecte régulièrement notre ordinateur et en retire tout ce qui n'est plus nécessaire. ✓ Il n'y a pas de délai pour inspecter la mémoire de l'ordinateur. Cela peut arriver des milliers de fois en une seconde, une toutes les quelques secondes ou n'importe quand. Mais nous veillons à ce que cela se produise.

Compilation et exécution

Langage Intermédiaire MSIL ❑ Langage de bas niveau (langage machine) pour le .NET CLR ❑ Possède un ensemble indépendant d'instructions CPU ✓ Chargement et stockage de données ✓ appel de méthodes ✓ Opérations arithmétiques et logiques ✓ Gestion des exceptions ✓ Etc.

❑ MSIL est converti en instructions pour le CPU physique actuel via le compilateur JIT.

Exemple d'un programme MSIL

Les langages .Net ❑Langages .NET de Microsoft : C#, VB.NET, Managed C++, J#, F#, JScript ❑Grace à l'interopérabilité offerte par le framework .net, différents langages peuvent être mélangés dans une seule application.

Le langage c# ❑ C# est un mélange entre C++, Java et Delphi: Entièrement orienté objet par conception ❑ Modèle de programmation orienté composants ✓ Composants, propriétés et événements ✓ Pas de fichiers d'en-tête comme C/C++ ✓ Convient aux applications GUI et Web ✓ Documentation basée sur XML ❑ En C# tous les types de données sont des objets, Exemple : 5.ToString() est un appel valide

Le langage c# Exemple d'un programme C#

L'éditeur Visual Studio ❑Visual Studio: environnement de développement intégré (IDE) puissant pour les développeurs .NET ✓Créer, éditer, compiler et exécuter des applications .NET ✓Différents langages – C#, C++, VB.NET, J#, …

✓Éditeur de code flexible ✓Débogueur puissant ✓Intégré à SQL Server et IIS

✓Forte prise en charge des services Web, WPF et WWF ✓Concepteur de formulaires Windows ✓Concepteur de formulaires Web ASP.NET

✓Concepteur de données ADO.NET / LINQ-to-SQL / XML

L'éditeur Visual Studio