Introduction à.net et au langage C#



Documents pareils
Module.NET 3 Les Assemblys.NET

DotNet. Plan. Les outils de développement

Notions fondamentales du langage C# Version 1.0

Le Framework.Net. Introduction. Pourquoi.Net?

Urbanisation et architecture des systèmes d information

DotNet. Présentation de l'offre

Technologies DotNET. Vision de Microsoft

Le framework contient deux éléments principaux : le Common Language Runtime et la bibliothèque de classes du.net Framework.

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Mise en œuvre des serveurs d application

Déployer une application cliente avec le Framework.NET 3.5 Client Profile

Introduction aux Machines Virtuelles avec VMKit

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Machines Virtuelles. et bazard autour. Rémi Forax

Environnements de développement (intégrés)

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Documentation d information technique spécifique Education. PGI Open Line PRO

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Plan du cours. Historique du langage Nouveautés de Java 7

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Le langage C. Séance n 4

TP1 : Initiation à Java et Eclipse

Java - la plateforme

< Atelier 1 /> Démarrer une application web

Le nouveau Windows Runtime

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Création d objet imbriqué sous PowerShell.

Derrière toi Une machine virtuelle!

Développement d une application ASP.NET avec Base de données SQL Server

Introduction au développement SharePoint. Version 1.0

Assurances & Mutuelles, Industrie, Santé, Énergie, Transport, Médias / Multimédias, Télécoms, Services

Ronan EZANNO. 20 ans d'expérience PowerBuilder.NET

as Architecture des Systèmes d Information

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Analyse de sécurité de logiciels système par typage statique

TP1 : Initiation à Java et Eclipse

CAHIER DES CHARGES D IMPLANTATION

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Formateur.NET expérimenté Forte expertise dans la conception et le développement d applications.net, associée à une grande pédagogie

Génération de code binaire pour application multimedia : une approche au vol

Alexandru V. Vlad RADIAN Solution Architect, Lead IT developer

Corrigé de l'atelier pratique du module 5 : Analyse de SQL Server

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Rapport de Mini-Projet en ArcGIS Engine

Comparaison des architectures J2EE et.net

Dominic Jobin. Profil. Expérience professionnelle avenue de l Hôtel-de-Ville #606, Montréal (Qc) H2T 2A djobin@gmail.

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Programmation en Java IUT GEII (MC-II1) 1

Java Licence Professionnelle CISII,

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

2010 Catalogue Formation

Évaluation et implémentation des langages

Recommandations techniques

Développement logiciel, Technologies.NET

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Configuration requise Across v6 (Date de mise à jour : 3 novembre 2014)

Programmer en JAVA. par Tama

Olivier Deheurles Ingénieur conception et développement.net

Procédure d'installation complète de Click&Decide sur un serveur

Java Licence Professionnelle CISII,

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

WebParts. Version 1.0

Point sur les solutions de développement d apps pour les périphériques mobiles

Création d application d entreprise

Le partenaire tic de référence. Gestion des ressources humaines INOVA RH

Diminuer les taches administratives, mieux gérer les objectifs, valoriser le travail, mettre à disposition un support de vente de qualité.

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Hébergement et configuration de services WCF. Version 1.0

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

Programmation MacOSX / ios

Préparation à l examen EFA en Macro

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Cadrage fonctionnel et technique des sites Visa Premier et Infinite. Réalisation des déploiements pour l hébergeur.

Ingénieur Développement Nouvelles Technologies

CHEF DE PROJET - DÉVELOPPEUR SENIOR DELPHI. 50 ans - 16 ans d'expérience

UE Programmation Impérative Licence 2ème Année

Systeme d'exploitation

Chapitre 2. Classes et objets

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Généralités sur le Langage Java et éléments syntaxiques.

formations microsoft www www www www aux nouvelles technologies Catalogue 2011 Azure Azure Azure SharePoint 2010 Surface Visual Studio Surface Surface

Bases Java - Eclipse / Netbeans

Installation et configuration de base de l active Directory

COMPARAISONDESLANGAGESC, C++, JAVA ET

Projet de développement

Bien aborder un projet SharePoint 2013

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Collaborateur GdP Leader Technique/Architecte

Une introduction à Java

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Introduction au langage C

Chapitre I Notions de base et outils de travail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Transcription:

Analyse et programmation 2 Introduction à.net et au langage C# Thèmes abordés La plateforme.net Architecture. re Code MSIL, compilation à la volée. Multi-langage. Gestion de la mémoire. Performances Le langage C# Similitudes et différences avec C++. Développement visuel en C# avec Visual Studio Analyse et programmation 2 - La plateforme.net et le langage C# 1 1

La plateforme.net Pour la petite histoire Anders Hejlsberg Concepteur de Turbo Pascal et de Delphi. A l origine des concepts qui ont fait le succès de ces outils. Débauché par Microsoft en 1996. Concepteur de la plateforme.net. On retrouve dans.net les concepts qui donnent à Delphi sa puissance expressive, sous une forme encore améliorée. Nombreuses similarités entre les concepts.net et Delphi. Analyse et programmation 2 - La plateforme.net et le langage C# 2 La plateforme.net. Architecture multi langage et multi plateforme VB.Net C#.Net J#.Net C++.Net.Net J#.Net Web Forms ASP.Net XML Web Services Win Forms.Net Framework Class library Common Language Runtime Win32, Windows CE, Analyse et programmation 2 - La plateforme.net et le langage C# 3 2

La plateforme.net. Génération de code.net Outils et compilateurs Code source Compilateur du langage Environnement d exécution CLR (Common Language Runtime) Code intermédiaire MSIL Compilateur JIT (Just In Time) Code machine natif Analyse et programmation 2 - La plateforme.net et le langage C# 4 La plateforme.net. Avant: génération de code machine Code C++ Code Delphi Code Visual Basic Visual C++ Borland C++ Delphi 5 Delphi 6 Visual Basic Modèle objet différent traduit directement En code x86 Analyse et programmation 2 - La plateforme.net et le langage C# 5 3

La plateforme.net. Génération de code.net Code C++ Code C# Code Delphi Code Visual Basic Code Java like Code Ada Visual C++ Visual C# Delphi 8 VB.Net J# A# MSIL (Pseudo code) CTS (Common Type System) + Méta données CLR : compilation à la volée Code x86 Analyse et programmation 2 - La plateforme.net et le langage C# 6 La plateforme.net Conséquences de cette approche Interopérabilité Tous les langages génèrent un pseudo code basé sur le même modèle objet. Des appels entre langages différents sont supportés sans coût. Les méta données permettent à tous les compilateurs d accéder aux éléments contenus dans un assemblage compilé. Sécurité Le CLR peut interdire le code non sûr s il provient d Internet. Permet de supprimer de nombreux types d attaques virales. Portabilité Le code produit n est pas spécifique à un micro processeur..net allégé pour l informatique embarquée:.net Compact Framework. Portage sur Linux partiellement opérationnel (Mono). Non déterminisme La compilation à la volée induit des temps d exécution non prévisibles. Analyse et programmation 2 - La plateforme.net et le langage C# 7 4

La plateforme.net Gestion de la mémoire.net Seuls les objets alloués peuvent être accédés. Plus de risque de corruption de mémoire difficile à localiser. Empêche un grand nombre d attaques virales. Comptage de référence Le nombre de références sur un objet est automatiquement géré par le système. Un objet est libéré par le CLR lorsqu il n est plus référencé. Pas de risque d oubli de libération de mémoire. Allocation et libération des blocs de mémoire par le CLR. Gestion de la mémoire sous contrôle du CLR. Aucune attention requise du programmeur. Ramasse miettes : non déterminisme. Analyse et programmation 2 - La plateforme.net et le langage C# 8 La plateforme.net Gestion de la mémoire.net Illustration int[] tableau; tableau = new int[100]; delete tableau; Plus de libération explicite L opérateur delete n existe pas! La mémoire est libérée automatiquement. Le moment de la libération est défini par le CLR. GC: Garbage Collection. Analyse et programmation 2 - La plateforme.net et le langage C# 9 5

Le langage C# Aperçu de la syntaxe Principe Syntaxe proche du C++, mais allégée. Instructions et types de données similaires au C++. Différences essentielles Langage orienté objet pur. Il n est pas possible de créer une fonction! Toute fonction est nécessairement rattachée à une classe. Les fonctions appelables sans créer d objet doivent être déclarées statiques. Classes de visibilité La classe de visibilité doit être rappelée à chaque déclaration. Fichiers en-tête Il n y a plus lieu de créer un fichier en-tête séparé. Analyse et programmation 2 - La plateforme.net et le langage C# 10 Le langage C# Aperçu de la syntaxe - exemple public class Complexe private double _reel, _imaginaire; public double Reel get return _reel; set _reel = value; public double Imaginaire get return _imaginaire; set _imaginaire = value; public void Afficher() Console.Write("0 + 1. i", _reel, _imaginaire); Analyse et programmation 2 - La plateforme.net et le langage C# 11 6

Le langage C# Aperçu de la syntaxe - exemple public static Complexe Somme(Complexe a, Complexe b) Complexee resultat = new Complexe(); e() resultat._reel = a._reel + b._reel; resultat._imaginaire = a._imaginaire + b._imaginaire; return resultat; public static Complexe operator+(complexe a, Complexe b) Complexe resultat = new Complexe(); resultat. tat._ reel = a._ reel + b._ reel; resultat._imaginaire = a._imaginaire + b._imaginaire; return resultat; Analyse et programmation 2 - La plateforme.net et le langage C# 12 Le langage C# Aperçu - création de collections d objets Tableaux const int NombreMesures = 1000; double mesures[] = new double[nombremesures]; Liste générique List<double> liste; liste = new List<double>(); liste.add(1.5); MessageBox.Show(liste[0].ToString()); Analyse et programmation 2 - La plateforme.net et le langage C# 13 7

Le développement visuel WinForms Aperçu Création interactive d interfaces graphiques. Développement basé sur des objets Composants graphiques Code généré automatiquement par l outil de développement. Analyse et programmation 2 - La plateforme.net et le langage C# 14 Le développement visuel WinForms Aperçu le glisser-déposer de composants graphiques Palette de composants Fenêtre en cours de conception Choix entre l affichage des propriétés ou des évènements du composant Editeur de propriétés pour paramétrer le composant sélectionné Analyse et programmation 2 - La plateforme.net et le langage C# 15 8

Le développement visuel WinForms Aperçu la cération de gestionnaires d évènements Double cliquer sur l évènement auquel on veut associer un gestionnaire Ou doublecliquer tout simplement sur le composant Analyse et programmation 2 - La plateforme.net et le langage C# 16 Le développement visuel WinForms Aperçu la génération de code pour gérer les évènements Analyse et programmation 2 - La plateforme.net et le langage C# 17 9

Le développement visuel WinForms Aperçu le code généré automatiquement pour les composants #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() // // label1 // this.label1.autosize = true; this.label1.backcolor = System.Drawing.Color.Lime; this.label1.location = new System.Drawing.Point(21, 33); this.label1.name = "label1"; this.label1.size = new System.Drawing.Size(35, 13); this.label1.tabindex = 0; this.label1.text = "label1"; // // button1 // this.button1.location = new System.Drawing.Point(27, 97); this.button1.name = "button1"; this.button1.size = new System.Drawing.Size(75, 23); this.button1.tabindex = 2; this.button1.text = "button1"; this.button1.usevisualstylebackcolor = true; Analyse et programmation 2 - La plateforme.net et le langage C# 18 Le développement visuel WinForms Résultat une application graphique Windows Analyse et programmation 2 - La plateforme.net et le langage C# 19 10

Analyse et programmation 2 - La plateforme.net et le langage C# 20 11