Vous êtes sur la page 1sur 20

Naoufel KHAYATI Cours « Développement d’Applications

d’Entreprises » (ASP.NET MVC 5)

IA2
Développement d’Applications
d’Entreprises
Naoufel KHAYATI
naoufel.khayati@eniso.u-sousse.tn

AU. 2019 - 2020

Contexte
2

 Le développement informatique s’appuie de plus en


plus sur des méthodes et des techniques complexes
et en pleine mutation.

 L’industriedu logiciel est passée de la fonction, au


module, à l’objet, au composant, au service, etc.

 Apparition de nouvelles architectures, nouveaux


protocoles, nouveaux systèmes et matériels.

ENISo – IA2 – 2019 / 2020 1


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Objectifs Généraux du Cours


3

 Présenter l’une des plateformes les plus demandées sur


le marché ainsi que quelques-uns des Frameworks sous-
jacents.

 Mettre en œuvre des Frameworks et des patterns pour


concevoir des applications d’entreprises.

 Acquérir des connaissances sur des technologies mises en


œuvre pour le développement d’applications d’entreprises.

 Maîtriser ces technologies, les outils et les composants inhérents


(Langages, IDE, ORM, etc.).

Exemples
4

ENISo – IA2 – 2019 / 2020 2


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Exemples
5

Exemples
6

ENISo – IA2 – 2019 / 2020 3


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Objectifs Spécifiques du Cours


7

 Maitriser la programmation objet avec C#.

 Développer des applications Web ASP.NET MVC / ASP.NET Core et se


servir de l’ORM Entity Framework.

 Maitriser les instructions LINQ / les expressions lambda.

 Maitriser les instructions RAZOR, utiliser les HTML Helpers prédéfinis et


développer d’autres personnalisés.

 Maitriser la validation des données côté client, grâce à jQuery, et côté


serveur.

 Sécuriser une application Web.

 Etc.

Chapitre 1

Introduction au Framework .NET

Naoufel KHAYATI
naoufel.khayati@eniso.u-sousse.tn

AU. 2019 - 2020

ENISo – IA2 – 2019 / 2020 4


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Plan du chapitre
9

 Qu’est-ce que .NET?

 Architecture de .Net

 Versions de .Net

 Structure d’une application .Net

 .Net & Linux

Le FrameWork .NET ?
10

 Un environnement de développement et d’exécution.

 Développement simplifié en proposant une approche unifiée


à la conception d'applications
 Windows (Windows Forms, WPF).
 Web (Web Forms, Web Services, MVC).

 Déploiement, Administration et Maintenance simplifiés.

 Environnement d’exécution robuste et sécurisé.

10

ENISo – IA2 – 2019 / 2020 5


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Le FrameWork .NET ?
11

 Une stratégie de développement

 basée sur un ensemble de produits et de technologies


informatiques,

 fondée sur des standards de l’industrie (HTTP, XML, SOAP, WSDL).

 Une bibliothèque de classes extensible, regroupées par


namespaces (espaces de noms).

 Une machine virtuelle basée sur la CLI multi-langage.

 Un sous-ensemble de la technologie .NET

11

Architecture de .NET
12

12

ENISo – IA2 – 2019 / 2020 6


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
13

La couche des langages


 .NET supporte jusqu’à 27 langages de programmation.

 C# est le langage de base de .NET, il correspond à une synthèse entre Delphi et


Java
 le concepteur principal de .NET. et de C# est l'ancien
chef du projet Turbo Pascal puis Delphi de Borland :
le danois Anders Hejlsberg.

 Le VB.NET : la version orientée objet de Visual Basic afin que ce dernier devient
interopérable sur .NET.

13

Architecture
14

La couche CLS

 Composée des spécifications communes à tous les


langages produisant des applications .NET.

 Une sorte de sous-ensemble minimal de


spécifications autorisant une interopérabilité
complète entre tous les langages de .NET.

14

ENISo – IA2 – 2019 / 2020 7


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
15

La couche (Services Web / Windows Forms)


 Des composants graphiques disponibles dans Visual Studio .NET,
permettant de construire des IHM :
 orientées applications classiques (Windows Forms),
 orientées Web (services Web, Web Forms).

 Les applications Web se basent sur ASP.NET


 Un ensemble de classes permettant à la fois la conception de sites
dynamiques, la création d’IHM pour le Web, les WebForms et la
conception de Services Web.

15

Architecture
16

La couche Données et XML

 Un ensemble de composants pour la gestion des


données (accès, échange, etc.).
 ADO.Net
 LINQ to SQL
 Entity Framework

 Dans le cas des services Web, ceci est possible grâce


aux protocoles de l'industrie : HTTP, XML et SOAP.

16

ENISo – IA2 – 2019 / 2020 8


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
17

La couche BCL (1)


 Constituée d'une vaste librairie de plusieurs centaines de composants de
base (sous-librairies, classes, objets, méthodes, etc.) accessibles par le
CLR.
 Ces composants fournissent les moyens pour écrire plus rapidement un
programme (accès réseau, graphisme, accès aux bases de données, etc.).

 Ces composants sont accessibles à tous les langages de .NET de la


même manière.

 Organisée en espaces de noms (namespaces : Identiques aux packages


en Java) hiérarchisés, comme par exemples, "System.Console" et
"System.Data.ADO.Dataset".

 Peut être étendue par adjonction de nouvelles classes.

17

Architecture
18

La couche BCL (2)

Unified Classes
Web Classes (ASP.NET)
Controls, Caching, Security, Session, Configuration etc

Data (ADO.NET) Windows Forms


ADO, SQL,Types etc Design, Cmpnt Model etc

XML Classes Drawing Classes


XSLT, Path, Serialization etc Drawing, Imaging, Text, etc

System Classes
Collections, Diagnostics, Globalization, IO, Security,
Threading Serialization, Reflection, Messaging etc

18

ENISo – IA2 – 2019 / 2020 9


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
19

La couche CLR (1)

 C’est une implémentation MicroSoft de la norme CLI (Common


Language Infrastructure)

 Le code répondant aux spécifications CLI est dit « managed


code » ou « code managé ».
 C’est un code exécuté sous la gestion d’une machine virtuelle.

 Tous les langages compatibles respectant la norme CLI ont


accès à toutes les bibliothèques installées dans l'environnement
d'exécution.

19

Architecture
20

La couche CLR (2)

 La couche CLR inclut des fonctions pour gérer les


erreurs, le ramasse-miettes, la sécurité et
l'interopérabilité avec le système.

20

ENISo – IA2 – 2019 / 2020 10


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
21

La couche CLR (3)

CLI.NET

21

Architecture
22

La couche CLR (4)

 Elle transforme et exécute un bytecode écrit dans


un langage intermédiaire (CIL / MSIL).

 Elle forme l'environnement d'exécution commun de


tous les programmes s'exécutant dans
l'environnement .NET.

22

ENISo – IA2 – 2019 / 2020 11


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
23

La couche CLR (5)


 Fonctionnement du CLR

 Quel que soit le langage utilisé pour écrire une application .NET:

 le code doit être transformé en CIL.


 Ce code intermédiaire ne comporte aucune instruction relative au matériel ou
au système d'exploitation. Il ne peut donc pas être exécuté directement.

 Nécessité d’une machine virtuelle (CLR).

 Une fois le code présent dans la couche CLR, il va enfin pouvoir être
compilé par le « JIT Compiler » en langage natif de la machine.

23

Architecture
24

La couche CLR (6)


 Just In Time Compiler

 Compilation juste-à-temps / à la volée

 Vise à améliorer la performance de systèmes bytecode-


compilés par la traduction du bytecode en code machine
natif au moment de l'exécution.

 Le pseudo code .NET n’est jamais interprété comme cela se


fait sous Java mais compilé avant d’être exécuté.

24

ENISo – IA2 – 2019 / 2020 12


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
25

La couche CLR (7)

 Gestion de la mémoire

 Le CLR décharge le développeur du fardeau qu'est la gestion de la mémoire.

 Tant qu'il existe une référence vers un objet, il est considéré comme étant utilisé par
la CLR.

 S’il n'y a plus de référence sur un objet (i.e. il ne peut plus être atteint ou utilisé), il
devient un déchet.
 Cependant, il continue d'utiliser la mémoire qui lui a été allouée.

 Ramasse-miettes (Garbage Collector) qui s'exécute périodiquement sur un processus


léger différent de celui de l'application, pour énumérer tous les objets inutilisés et
récupérer la mémoire qui leur était allouée.

25

Architecture
26

La couche CLR (8)


 Fonctionnement du Garbage Collector

 Le ramasse-miettes de .NET est non déterministe / évènementiel.

 Chaque application .NET possède un ensemble de pointeurs maintenus par


la CLR et qui pointent sur les objets du tas managé (managed heap).

 Ce dernier stocke des références aux objets statiques, à ceux définis


comme variables locales, aux paramètres définis dans la portée du
code, etc.

 Quand le ramasse-miettes s'exécute, il met en pause l'application et pour


chaque objet référencé par les pointeurs, il énumère récursivement tous les
objets qu'il peut atteindre et les marque.

26

ENISo – IA2 – 2019 / 2020 13


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Architecture
27

La couche CLR (9)

 Fonctionnement du Garbage Collector

 Se base sur un système de Générations


 Phase de marquage

 Phase de compactage
 Chaque pointeur rendu invalide par le déplacement de l'objet sur lequel il
pointait est mis à jour avec le nouvel emplacement par le ramasse-miettes.

 Après ces opérations, l'application poursuit son exécution.

27

Versions de .Net
28

 Microsoft a commencé le développement du .NET Framework à la fin


des années 1990 sous le nom de Next Generation Windows Services (NGWS
ou « Prochaine génération de services Windows »).

 La version bêta du Framework .Net 1.0 est apparue à la fin de l'an 2000.

 La première version (.Net 1.0) est née en février 2002.

 .Net 1.1 : C'est la première version faisant partie d'un système


d'exploitation Windows Server 2003 et aussi de la deuxième version de
Microsoft Visual Studio .NET (2003).

 .Net 2.0 : version apparue vers fin 2005 / début 2006 et a été disponible
avec Visual Studio 2005.

28

ENISo – IA2 – 2019 / 2020 14


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Versions de .Net
29

 .NET 3.0 : apparue en 2006, anciennement WinFX, inclut des


nouvelles API de code managé.

 Elle fait partie intégrante des systèmes d'exploitation Windows Vista et


de Windows Server 2008.

 Elle est constituée de 3 parties principales :

 Windows Presentation Foundation (WPF) : Il s'agit du sous-système d'interface utilisateur


basé sur XML et le dessin vectoriel.

 Windows Communication Foundation (WCF) : est un système de messagerie orienté


services qui permet aux programmes de communiquer localement ou à distance (d'une
façon analogue aux services web).

 Windows Workflow Foundation (WF) permet la construction de transactions ou tâches


automatisées à l'aide de workflows.

29

Versions de .Net
30

 .NET 3.5 est officiellement disponible depuis fin 2007. Elle intègre :

 LINQ (Language INtegrated Query) permettant de formuler des requêtes aussi


bien sur des Data, des Collections, du XML ou des DataSets.
 Ajax.Net avec de nouveaux protocoles (AJAX, JSON, REST, RSS, Atom) et
d'autres standards WS.
 ASP.Net MVC

 .Net 4.0 : publié en fin 2008, a ajouté un service de traitement parallèle


de l'information, applicable aux systèmes multi-cores ou distribués.

 PLINQ (Parallel Language Integrated Query), une implémentation de la librairie


LINQ, qui exécute les requêtes en tirant profit des capacités parallèles du
système.

30

ENISo – IA2 – 2019 / 2020 15


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Versions de .Net
31

 .NET 4.5

 Visual Studio 2012 (2013).


 Inclut la prise en charge de la génération des
applications Windows Style métro (Windows Store
Apps).
 Inclut des mises à jour de WPF, WCF, WF et ASP.NET.

 Calcul parallèle.

 Etc.

31

Versions de .Net
32

 .NET 4.6

 Lancée le 20 Juillet 2015 (VS 2015).


 Prend en charge un nouveau compilateur JIT pour les
systèmes 64 bits appelé RyuJIT.
 Mise à jour de WPF et de Windows Forms pour la
considération des hautes densités d’images.

 L'API cryptographique utilise la dernière version de


Windows CNG (AES, SHA-2 famille de algorithmes de
hachage, courbe elliptique Diffie-Hellman, et DSA).

 .NET 4.6.1 : Novembre 2015.


 .NET 4.6.2 : Août 2016.

32

ENISo – IA2 – 2019 / 2020 16


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Versions de .Net
33

 .NET 4.7
 Lancée en Mai 2017.

 .NET 4.7.1 : Octobre 2017.


 .NET 4.7.2 : Avril 2018

 .NET 4.8
 Lancée en Avril 2019.

33

Plateforme .NET
34

 Une plateforme .NET comprend en plus du Framework,


tout système / logiciel et matériel nécessaire au bon
développement et fonctionnement de l’application.

 Un IDE de développement utilisant


la métaprogrammation (langages de programmation,
compilateurs, générateurs de code, gestionnaires de
dépendance, templates, macros, etc.)
 Visual Studio
 Un nouveau langage : C# (apparu avec .NET).

 Serveur d’Application / Serveur de BD

34

ENISo – IA2 – 2019 / 2020 17


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Structure d’une application .Net


35

 L’unité de base d'une application .NET est appelée un


assemblage (assembly).

 C'est une unité de déploiement indivisible.

 Regroupe un ensemble d’éléments nécessaires au bon fonctionnement de


l’application : codes (CIL), ressources (images, etc.), autorisations et
métadonnées.

 Les assemblages .NET sont enregistrés au format PE (Portable


Executable : exe ou dll) sur les systèmes Windows.

35

Structure d’une application .Net


36

 Un assemblage est toujours accompagné d’un document XML


de métadonnées appelé manifeste (assembly manifest) qui
décrit ce que contient l’assemblage :

 nom,
 version,
 types de données exposées,
 liste de l'ensemble des fichiers utilisés (exe, dll, données, images,
ressources),
 autres assemblages utilisés par l’application,
 instructions de sécurité,
 etc.

36

ENISo – IA2 – 2019 / 2020 18


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

.Net & Linux


37

 Différents travaux et projets de « portage » du Framework


.Net

 MONO par le créateur de gnome


 http://www.mono-project.com
 GNU Portable DotNet (DotGNU)
 http://www.gnu.org/software/dotgnu/
 Shared Source CLI (anciennement ROTOR (FreeBSD) )
 http://www.dotnetheaven.com/

 Microsoft : .NET Core (cross-platform : Windows, Linux et


MacOS)

37

Dans la suite…
38

38

ENISo – IA2 – 2019 / 2020 19


Naoufel KHAYATI Cours « Développement d’Applications
d’Entreprises » (ASP.NET MVC 5)

Dans la suite… Références Bibliographiques


39

 A. Freeman, "Pro ASP.NET MVC 5


Platform", Wiley, Apress, 2014.

 J. Munro, "ASP.NET MVC 5 with


Bootstrap and Knockout.js", O’Reilly
Media, 2015.
 http://it-ebooks.info/book/6156/

39

40

A SUIVRE…

TO BE CONTINUED…

40

ENISo – IA2 – 2019 / 2020 20

Vous aimerez peut-être aussi