Windows NT/2000/XP Enjeux et contraintes techniques Septième partie Présentation de.NET C. Casteyde Document diffusé sous licence GNU FDL.

Slides:



Advertisements
Présentations similaires
L’architecture .net et ASP.net
Advertisements

Microsoft .NET.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
Projet de fin d'étude pour l'obtention du Diplôme Nationale d'Ingénieur en Informatique Conception et développement des modules de GED pour l’ indexation.
Windows NT/2000/XP Enjeux et contraintes techniques Troisième partie La GDI C. Casteyde Document diffusé sous licence GNU FDL.
AbulEdu – Solution libre pour l'école AbulÉdu Solution logicielle sur mesure pour l'Éducation.
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Présentation du projet JAVA Système de messagerie instantanée cryptée.
Créat. : 23/09/2016 Modif. : 23/09/2016 Bogdan Stefanescu > Connectivité CPS et Eclipse Solutions Linux 2006.
Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.
PILOTER VOTRE INFRASTRUCTURE VIRTUALISEE AVEC PYTHON ( UN RETOUR D’EXPÉRIENCE EN ENVIRONNEMENT VMWARE ET IRONPYTHON) Jean-marc Pouchoulon PYCON FR 2009.
Le système Raid 5 Table des matières Qu'est ce que le RAID ? Les objectifs Le raid 5 Les avantages et les inconvénients Les composants d’un Raid.
Windows NT/2000/XP Enjeux et contraintes techniques Douzième partie La sécurité C. Casteyde Document diffusé sous licence GNU FDL.
Le DOM Le Document Object Model (DOM) est une interface de programmation pour les documents HTML et XML Il fournit une représentation structurée du document.
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
Plugin Eclipse pour le langage LUA Responsable Fabrice Huet Chef de Projet Jérôme Poisson Développeurs Lu Deng Guillaume Ghibaudo Julien Raverdino Anthony.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Février 2006X. Belanger / Guilde Introduction à. Février 2006X. Belanger / Guilde Qu'est ce que Samba ? ● Implémentation libre du protocole CIFS/SMB (client.
1 / 15 Animation - 3 décembre 2008 Les Logiciels libres éducatifs, Des Solutions pour les écoles.
Fadhel jied Oussama hédhili V - conclusion IV - Les avantages et les inconvénients III - exemples II - aspect informatique I - introduction.
Windows NT/2000/XP Enjeux et contraintes techniques
Interfaçage entre Maple et du code externe
Android PACT 2016 Encadrement Informatique.
JAVA.
Communication client-serveur
Environnement de développement des BD
Introduction au Langage Pascal
JavaScript.
Javadoc et débogueur Semaine 03 Version A17.
Les Tests de performances
Principes de programmation (suite)
Clients riches RIA (Rich Internet Application) / RDA
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Développement JAVA pour plateforme ANDROID
Les technologies AJAX.
fonctionnalités iiS iis
CeMEB La plateforme MBB
Programmation système
CeMEB La plateforme MBB
Développement d’un réseau social de collaboration destiné aux médecins radiologues Soutenance de projet de fin d’étude En vue de l’obtention du diplôme.
Programmation en C++ C++ de base
SRT2 APACHE.
Programmation Android Introduction à Android
Plus de 4000 langages....
</Présentation de solutions documentaires>
Introduction à Internet
Calcul Scientifique Initiation à SCILB
Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni 1.
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Auditeur: Léonardo AMODIO Cours: NFE107
Catherine Cyrot - bibliothèques numériques - Cours 5
FENIX Aperçu GLOBAL DU Système
Programmation Web : Introduction à XML
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
Bases – Banques Entrepôts de données
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Lecture/Écriture de fichiers (I/O)
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
YII Yes It Is !.
Bases de données Singleton pour la connexion
Contenu Systèmes de test parallèles Multithreading Synchronisation
Présentation PISTE pour les partenaires raccordés en API
Qu’est ce qu’une page web? Comment fonctionne un site web?
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
Site web, Ce qu’il faut savoir ?
Transcription de la présentation:

Windows NT/2000/XP Enjeux et contraintes techniques Septième partie Présentation de.NET C. Casteyde Document diffusé sous licence GNU FDL

Plan ● Les objectifs de.NET ● Architecture ● Gestion des ressources ● La bibliothèque ● Fonctionnalités Web ● Présentation du langage C# ● Conclusion

Pourquoi.NET ? ● L'API Windows est riche mais hétéroclite : – base Win32, GDI, – OLE/COM, – scripting, Visual Basic, – XML, Web. ● Un empilement de bibliothèques et de technologies

Pourquoi.NET ? ● De nombreuses difficultés pour les programmeurs (pointeurs, gestion de la mémoire) ● Types de données hétéroclites : – chaînes : LPCSTR, LPWSTR, BSTR, – temps : FILETIME, SYSTEMTIME, DOSTIME, time_t, struct tm, DATE, en UTC ou local. ● Des encapsulations qui multiplient la complexité : – chaînes : CString (Unicode ou ASCII), CComBSTR, bstr_t, – temps : CTime, COleDateTime. ● Des fonctions éparpillées et / ou redondantes

Visual Basic vieillissant ● VB6 a été très utilisé dans le monde (RAD) ● Il est à la base des scripts ASP ● Mais il est dépassé : – monothreadé, – typage faible, – syntaxe laxiste, – fonctionnellement limité (APIs inaccessibles).

Émergence des services Web ● Microsoft devait apporter une solution pour contrer Java ● Besoin d'intégration au niveau des technologies serveur ● Développement d'applications Web Intranet / sites commerciaux

Les objectifs ● Fournir une plate-forme de développement unifiée ● Être indépendant des langages ● Fournir une API complète et cohérente ● Faciliter la vie des développeurs de tous bords ● Fournir une technologie Web cohérente ● Intégrer les dernières avancées technologiques ● Être compatible avec l'existant

Plan ● Les objectifs de.NET ● Architecture ● Gestion des ressources ● La bibliothèque ● Fonctionnalités Web ● Présentation du langage C# ● Conclusion

Architecture générale ● Technologie de compilation de code intermédiaire ● Utilisation d'un langage intermédiaire (« IL ») ● Interprétation et compilation à la volée (« Common Language Runtime ») ● Basée sur une bibliothèque complète et commune aux différents langages («.NET Framework ») ● Passerelles d'interopérabilité avec les anciennes bibliothèques

Schéma architecture if (i<j) System... Intermediate Language Code natif i = 2 If i = j Then... JIT csc vbc.NET Framework Windows API Common Language Runtime Interop

Machine virtuelle ● La CLR charge et exécute l'IL ● Compile à la volée si nécessaire ● Fournit un garbage collector performant ● Fournit les fonctions de base d'interopérabilité ● Isole les applications ● Isole les domaines d'application (« Application Domains »)

Code managé ou non managé ●.NET distingue deux types d'objets : – les objets managés (objets.NET), – les objets non managés (natifs). ● Les objets managés bénéficient : – du garbage collector, – des extensions.NET aux langages. ● Visual C++ permet de faire du C++ managé ou du C++ « standard »

Plan ● Les objectifs de.NET ● Architecture ● Gestion des ressources ● La bibliothèque ● Fonctionnalités Web ● Présentation du langage C# ● Conclusion

Le garbage collector ● Le garbage collector de la CLR est : – performant, – complexe mais documenté, – contrôlable applicativement. ● Il sait traiter les références circulaires ● Le revers de la médaille : – il n'est disponible que pour le code managé, – difficultés pour contrôler la destruction des objets, – performances des programmes très variables.

Algorithme du garbage collector ● Le GC ne se déclenche que lorsque tous les threads sont dans un état stable ● Il maintient une liste d'objets directement accessibles par le programme ● Il parcours cette liste et construit récursivement l'arbre des objets accessibles ● Les autres objets sont déclarés « détritus »

Algorithme du garbage collector ● Les objets inaccessibles sont détruits ● Le tas est compacté : – les objets sont déplacés en mémoire, – toutes les références du programme sont mises à jour. ● À des fins d'optimisations, le garbage collector utilise la notion de génération : – les objets les plus récents sont parcourus en premier, – les objets qui résistent à une passe sont de plus vieille génération.

Schéma du Garbage Collector Garbage a b Accessibles A a; Long f() { A b=new A }

Gestion des destructeurs ● Les objets qui doivent libérer des ressources implémentent la méthode Finalize ● Ils sont replacés dans une liste d'objets « f-reachable » par le garbage collector ● Ils sont « finalisés » sur un thread séparé ● Ils redeviennent inaccessibles après finalisation ● On ne maîtrise toujours pas la libération des ressources externes (objets COM,...)

Destruction explicite ● Pour contrôler explicitement la durée de vie des objets, il faut : – implémenter la méthode Dispose de IDisposable, – appeler cette méthode applicativement. ● La boucle est bouclée : – un oubli revient à un ressource leak classique (mais temporaire), – il est souvent nécessaire d'utiliser un compte de références en cas d'objets partagés.

Plan ● Les objectifs de.NET ● Architecture ● Gestion des ressources ● La bibliothèque ● Fonctionnalités Web ● Présentation du langage C# ● Conclusion

La bibliothèque.NET ● Le « Framework.NET » couvre presque toute l'API ● L'encapsulation fournie est hiérarchique ● Chaque groupe fonctionnel est dans un espace de nommage (« Namespace ») ● La racine est le namespace « System » ● La bibliothèque est extensible par import de code non managé

Les namespaces.NET System Text ServiceProcess Security Threading Trace Net IO Resources Diagnostics Configuration Collections Globalization Runtime Reflection Graphics

Fonctionnalités de base ● System contient l'objet Console permettant de faire les entrées / sorties en ligne de commande ● Diagnostics contient l'objet Trace qui permet d'envoyer des messages au débogueur ● IO contient les objets nécessaires aux entrées / sorties sur fichiers ● Graphics contient les objets nécessaires pour la réalisation d'application graphiques

Plan ● Les objectifs de.NET ● Architecture ● Gestion des ressources ● La bibliothèque ● Fonctionnalités Web ● Présentation du langage C# ● Conclusion

Architecture Web ● IIS sait traiter des scripts ASP.NET ● Les pages ASP.Net peuvent contenir des scripts inlinés ou seulement référencés ● Elles sont compilées une seule fois ● Le code est invoqué pour générer le code HTML ● Un cache de sortie peut être utilisé pour optimiser

Schéma Web IIS Script.NET Navigateur Client Web Cache de page Page ASP Objet.NET Objet.InnerHTML =... Runtime.Net

Pages ASP.NET ● Un en-tête permet de déclarer la page et les modules utilisés ● Le code de traitement des événements de la page est écrit dans un script ● Le script génère le contenu HTML des objets de la page ● Le code HTML référence ces objets

Exemple de page ASP.NET void Page_Load(Object sender, EventArgs, EvArgs) { MonObjet.InnerHtml = "Coucou !" }

Les domaines d'application ● Une même application peut définir des domaines d'application ● Les objets d'un domaine ne peuvent accéder aux autres domaines ● Isolation des services vis-à-vis des bogues ● Utilisé par ASP.NET pour séparer les clients

Schéma domaines d'application IIS Service Web Application Domain 1 Application Domain 2

Plan ● Les objectifs de.NET ● Architecture ● Gestion des ressources ● La bibliothèque ● Fonctionnalités Web ● Présentation du langage C# ● Conclusion

Le langage C# ● Étymologiquement, c'est C++ ++ ● C'est une copie de Java à la sauce Microsoft ● Complètement orienté objet ● Pas de préprocesseur ● Utilisation intensive d'attributs (méta code)

La syntaxe de C# ● Le C# utilise la même syntaxe que C++ et Java ● Il prend en compte la casse des caractères ● Comme en Java, le point d'entrée est la méthode statique « Main » de la classe de l'application ● La directive « using » permet de simplifier l'accès aux fonctionnalités des namespaces

Hello World // Introduit les fonctionnalités de System : using System; // Classe de l'application : class MonApp { // Fonction principale : public static void Main() { // Équivalent de System.Console.WriteLine : Console.WriteLine("Hello World!"); }

Plan ● Les objectifs de.NET ● Architecture ● Gestion des ressources ● La bibliothèque ● Fonctionnalités Web ● Présentation du langage C# ● Conclusion

Les objectifs atteints ● En résumé,.NET c'est : – le regroupement de toutes les technologies Windows, – une uniformisation de l'API Windows, – une hiérarchisation des fonctionnalités, – une refonte complète de VB (multithread, objet, API), – un nouveau langage (C#), – un environnement de développement (Visual Studio), – une intégration à IIS.

Les avantages de.NET ● C'est un RAD efficace et puissant ● Il fournit une API uniforme et cohérente ● Facile à programmer ● Relativement performant ● Sécurité mémoire assurée (garbage collector, isolation des applications, machine virtuelle) ● Forte orientation Web

Les inconvénients ● Remise à zéro des compteurs : – pratique du langage à acquérir, – bibliothèque à ré-apprendre. ● Perte de tous les programmes VB : – nécessité de recoder 50% en moyenne. ● Non portable et propriétaire – sécurité des données, – pérennité des programmes (ex VB). ● Inadapté à certains projets (performances)

Le choix.NET ● Choisir.NET impose donc : – formation des anciens développeurs, – engagement fort envers Microsoft (alternative : Mono). ● Environnement de prédilection pour : – sites Web, – applications graphiques simples, – maquettage. ● Pour les autres applications, il faut évaluer les inconvénients (temps réel, performance...)