Environnement.NET. Par : Mme A. RETBI 2014-2015. Introduction à.net



Documents pareils
Module.NET 3 Les Assemblys.NET

DotNet. Plan. Les outils de développement

Technologies DotNET. Vision de Microsoft

Mise en œuvre des serveurs d application

Le Framework.Net. Introduction. Pourquoi.Net?

Alfstore workflow framework Spécification technique

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)

DotNet. Présentation de l'offre

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Compte Rendu d intégration d application

Construire une application marketing Facebook sur la plateforme Windows Azure

Web Tier : déploiement de servlets

Refonte front-office / back-office - Architecture & Conception -

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Notions fondamentales du langage C# Version 1.0

OPC Factory Server- Réglage des paramètres de communication

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Éléments de programmation et introduction à Java

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Vulgarisation Java EE Java EE, c est quoi?

< Atelier 1 /> Démarrer une application web

Architecture Orientée Service, JSON et API REST

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Urbanisation et architecture des systèmes d information

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Java et les bases de données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Devenez un véritable développeur web en 3 mois!

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

WEB page builder and server for SCADA applications usable from a WEB navigator

Module BD et sites WEB

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Les nouvelles architectures des SI : Etat de l Art

TP1 : Initiation à Java et Eclipse

4. SERVICES WEB REST 46

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Composants Logiciels. Le modèle de composant de CORBA. Plan

Bases Java - Eclipse / Netbeans

1. Installation d'un serveur d'application JBoss:

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

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

Introduction aux «Services Web»

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

BIRT (Business Intelligence and Reporting Tools)

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Architectures web/bases de données

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

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Visual Paradigm Contraintes inter-associations

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

Approche Contract First

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Rapport de Mini-Projet en ArcGIS Engine

Data Tier Application avec SQL Server 2008 R2

Serveur d Applications Web : WebObjects

Construire des plug-ins pour SAS Management Console SAS 9.1

OpenPaaS Le réseau social d'entreprise

Catalogue des formations 2014

Cours 1: Java et les objets

TP1. Outils Java Eléments de correction

Comparaison des architectures J2EE et.net

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

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

WebParts. Version 1.0

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

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

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

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Évaluation et implémentation des langages

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

CAHIER DES CHARGES D IMPLANTATION

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Sécurité des applications web. Daniel Boteanu

Consultant.NET / SharePoint

Paginer les données côté serveur, mettre en cache côté client

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Compétences fonctionnelles et techniques

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

Les processus métiers : concepts, modèles et systèmes

10. Base de données et Web. OlivierCuré

Programmation Web Avancée Introduction aux services Web

Automatisation de l administration système

Développement logiciel, Technologies.NET

Programme ASI Développeur

Cours en ligne Développement Java pour le web

Introduction au développement SharePoint. Version 1.0

Introduction aux Machines Virtuelles avec VMKit

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

3 Octobre Les Communautés MS

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Interagir avec le SharePoint. Version 1.0

Transcription:

Environnement.NET Par : Mme A. RETBI 2014-2015 Introduction à.net Par : Mme A. RETBI 2014-2015 1

Qu est ce que.net? Définition : [dot-net].net est une plateforme complète pour développer, déployer et exécuter des Applications Web, Windows, Mobiles et serveur.net Framework Un Modèle de programmation unifié Une plate-forme de déploiement et d exécution Framework.NET : Gratuit & intégré à Windows A.RETBI / 3 Un Modèle de programmation unifié Différents types de clients : Web-HTML, Windows, Smartphone Un Serveur d Application Services transactionnels, Services Web Le choix des langages : Le choix des langages : VB.NET, C#, C++, J#, A.RETBI / 4 2

Le modèle de programmation unifié.net Disponibilité d une API cohérente quel que soit le langage unifiant le modèle de programmation.net Framework RAD, Composition et délégation Modèle objet VB Héritage, Contrôle, Performance MFC/ATL Stateless, Code embarqué dans des pages HTML ASP API Windows 5 Une plate-forme de déploiement et d exécution Mécanismes de copie simple, de partage de composants et de versionning Simplicité de déploiement et de configuration Mécanismes de sécurité intégrés, code «managé» et de gestion de mémoire Une fiabilité des applications et des bonnes performances A.RETBI / 6 3

Principes fondateurs de la plateforme.net Intégration homogénéisation des solutions et produits Microsoft Faciliter les scénarios d intégration pour les clients qui choisissent la plate-forme Microsoft Interopérabilité avec le monde extérieur Reposer sur les Standards au maximum Délivrer de la valeur sur la productivité A.RETBI / 7 L achitecture.net VB C++ C# J# Common Language Specification Web Forms (ASP.NET) Web Services Mobile Forms Windows Forms ADO.NET : Données et XML Base Class Library Common Language Runtime Common Language Infrastructure (CLI) Visual Studio.NET 8 4

La gamme Visual Studio Visual Studio Team Edition Software Developers Visual Studio Professional Visual Studio Team Suite Visual Studio Team Edition Software Architects Visual Studio Team Edition Software Testers Visual Studio Tools for Office Chefs de projets Testeurs Architectes Développeurs Entreprise Consultants Professionnels Dév occasionnels Editions Express Visual Studio Edition Standard C# VB C++ J# Web Hobbyists Edudiants Passionnés Débutants A.RETBI / 9.Net : pour quelles applications? Conçu pour faciliter le développement d applications n-tiers Utilisation/création facile d objets distribués et de services Web Accès facile aux données (ADO.NET) Présentation par page Web dynamiques (ASP.NET) A.RETBI / 10 5

Les langages.net Le langage "dédié" : C# proche de java Les classiques VB.NET, C++, J# Mais aussi : ADA, Scheme, Python, Fortran, En tout une vingtaine de langages supportés A.RETBI / 11 Les langages.net et MSIL Un langage.net est compilé vers du MSIL est conforme à la CLS MSIL = CIL Microsoft Intermediate Language Common Intermediate Language Byte code Java Interprété par un moteur d exécution (machine virtuelle) A.RETBI / 12 6

Common Language Specification Contient la spécification d écriture des compilateurs «syntaxiques» Chaque langage utilise et étend le framework.net Les langages.net sont interopérables A.RETBI / 13 Common Language Runtime Le moteur d exécution de.net Les caractéristiques : Conversion IL -> code natif Gestion Mémoire (garbage collection) Vérifie et applique la sécurité Charge et exécute les programmes A.RETBI / 14 7

Services du Common Language Runtime A.RETBI / 15 Compilation A.RETBI / 16 8

Compilation Just In Time A.RETBI / 17 JIT La CLR utilise la compilation Just-In-Time Chaque méthode appelée est compilée en code natif Appels suivants n ont pas à être recompilés Qq problèmes : exige des resources mémoire processeur A.RETBI / 18 9

Code qui cible.net Managed Code Contient des informations supplémentaires (metadonnées) pour se décrire => CLR peut garantir la sécurité, l interopérabilité A.RETBI / 19 Unmanaged Code.NET peut utiliser du code sans métadonnées : 1. non «géré» peut utiliser la bibliothéque de.net peut compiler en IL ne peut bénéficier du GC 2. natif pour de meilleures performances par exemple WinForms A.RETBI / 20 10

Principaux composants du CLR Système de type : Common Type System CTS Système de métadonnées : Metadata Système d exécution : Virtal Exécution System VES A.RETBI / 21 Common Type System sert à décrire les types indépendamment du langage => types "valeur" (value types) de base ou construits par le programmeur types "référence" (reference type) objet Tous les objets héritent de la classe object Méthodes : equals, finalize, gethashcode, gettype, memberwiseclone, ToString interfaces pointeurs A.RETBI / 22 11

Les méta-données Description de l unité de déploiement (Assembly) Les compilateurs stockent des infos sur les types (nom, visibilité, classe de base, etc.) pour l'interopérabilité pour le moteur d'exécution (gestion mémoire par exemple) Extension des métadonnées possible (attributs personnalisés par exemple definis par utilisateur) A.RETBI / 23 Assemblies Briques des programmes.net unité fonctionnelle atomique Collection de code et de métadonnées Contient un Manifest, qui décrit son nom sa version la liste des types et l endroit où ils sont dans l assembly Informations de dépendances A.RETBI / 24 12

Système d exécution Code source.net écrit dans un langage.net Un compilateur.net Assembly DLL ou EXE (MSIL et métadonnées) Moteur d exécution.net Bibliothèque de classes de base Chargeur de classes Compilateur Just in Time (JIT) Instructions spécifiques à la plate-forme Exécution de l application! A.RETBI / 25 La bibliothéque de Classes Namespace : ensemble de classes La racine des namespaces est System Contient les types basiques comme Byte, Double, Boolean, and String, Object Tous les objets dérivent de System.Object value types objets Moyens efficace de convertir des value types en objets A.RETBI / 26 13

L espace de noms System A.RETBI / 27 ASP MVC.NET Par : Mme A. RETBI 2014-2015 14

Vue globale de MVC Dans le paradigme MVC l entrée utilisateur, la modélisation du monde extérieur, l aspect visuel présenté l utilisateur sont explictement séparés et gérés par trois types d objet, chacun spécialisé dans sa tâche. [Burbeck 92] A.RETBI / 29 MVC- Présentation globale L architecture Model-View-Controller permet d organiser une application interactive en séparant : les données la représentation des données le comportement de l application A.RETBI / 30 15

Structure de MVC Le modèle représente la structure des données dans l application et les opérations spécifiques sur ces données. Une Vue présente les données sous une certaine forme à l utilisateur, suivant un contexte d exploitation. Un Controller traduit les interactions utilisateur par des appels de méthodes (comportement) sur le modèle et sélectionne la vue appropriée basée sur l état du modèle. A.RETBI / 31 ASP.net MVC- BUT Cette séparation permet de coupler faiblement chacune de ces parties entre elles. Elle permet : De faciliter le développement de l application, De bien structurer l application, afin de faciliter son développement, ainsi que sa maintenance. De faciliter les tests de l application. A.RETBI / 32 16

Architecture du modèle MVC A.RETBI / 33 ASP.net MVC- Fonctionnement A.RETBI / 34 17

ASP.net MVC- Fonctionnement Le DLL System.Web.MVC contient un http module: UrlRoutingModule. Global.asax. routes.maproute("default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults); http://www.monsite.com/home/index/1 A.RETBI / 35 ASP.net MVC- Fonctionnement A.RETBI / 36 18

ASP.net MVC- Création A.RETBI / 37 TP1 : Controllers et Actions Répondre aux requêtes de l'utilisateur Rédiger les actions du contrôleur Utiliser des paramètres Transmettre des informations aux vues 19

Répondre aux requêtes When an MVC web application receives a user request, the following events occur: MVCHandler creates a controller factory. Controller factory creates a Controller object and MVCHandler calls the Execute method. ControllerActionInvoker examines RequestContext and determines the action to call. ControllerActionInvoker determines the values to be passed to the action as parameters. ControllerActionInvoker runs the action. : Ecrire Controller Actions Créez méthode publique Retourne une classe qui dérive de ActionResult Ajouter des paramètres à la méthode Insérer le code pour effectuer l'opération et retourner le résultat 20

Utilisation des paramètres http://www.adventureworks.com/session/getsessionbytitle?title=mvc101 DefaultModelBinder public ActionResult GetSessionByTitle(string title) { var query = from s in context.sessions where s.title == title select s Photo session = query.firstordefault(); return View("Details", session); } Transmettre les informations à la vue Modèle Vue (données) Fortement typée (vue partial) ViewBag un objet aux propriétés dynamiques (avec des données persistantes). Alias for ViewData Parfait pour l envoi de message à la vue Disponible seulement pour l action en question Redirects cause the ViewBag to be emptied TempData Fonctionne comme le ViewBag, mais disponible pour la page suivante (page de réponse) 21

TP2 : Vues avec la syntaxe Razor Ajout de vues Syntaxe Razor Liaison avec le modèle pour afficher ses propriétés Adding Views 22

Exemple : Razor Syntax @* Some more Razor examples *@ <span> Price including Sale Tax: @Model.Price * 1.2 </span> <span> Price including Sale Tax: @(Model.Price * 1.2) </span> @if (Model.Count > 5) { <ol> @foreach(var item in Model) { <li>@item.name</li> } </ol> } Ajout de code au niveau des vues Technique Inline code HTML helper methods Sections Partial views Utilisation Utiliser des morceaux autonomes de vue logique, comme if et foreach. C est l outil fondamental pour la création de contenu dynamique dans les vues Générer des éléments HTML simples ou des collections, généralement basés sur la vue modèle. Le MVC Framework inclut des méthodes d assistance HTML utiles, et il est facile de créer votre propre Helper. Créer des sections de contenu qui seront insérées dans le layout aux endroits souhaités. Partager des vues entre les vues, la vue partielle peut contenir du code inline, les méthodes d assistance HTML, et les références à d autres vues partielles. Child actions Créer des contrôles d interface utilisateur réutilisables ou des widgets qui doivent gérer de la logique. Lorsque vous utilisez une action de l enfant, il invoque une méthode d action, rend un visuel à afficher, et injecte le résultat. 23

Action Helpers Html.ActionLink() @Html.ActionLink("Click here to view photo 1", "Display", new { id = 1 }) Url.Action() <a href="/photo/display/1"> Click here to view photo 1 </a> <img alt="this image came from an action" src="@url.action("getimage", new { id = 1 })" /> <img alt="this image came from an action" src="/photo/getimage/1" })" /> Display Helpers Html.DisplayNameFor() @Html.DisplayNameFor(model => model.createddate) Created Date Html.DisplayFor() @Html.DisplayFor(model => model.createddate) 03/12/2012 24

Lier la vue au modèle A travers l utilisation de vue partiel fortement typée (créer dynamiquement) Liaison par les listes énumérables: @model IEnumerable<MyWebSite.Models.Product> <h1>product Catalog</h1> @foreach (var Product in Model) { <div>name: @Product.Name</div> } Entity Framework Par : Mme A. RETBI 2014-2015 25

TP3: MVC Models Développer le modèle Utiliser des annotations d affichage des données Validation des entrées des utilisateurs par des annotations de données Développer le modèle Photo -PhotoID : int -Title : string -PhotoFile : byte -Description : string -CreatedDate : object -Owner : string 1 0..* Comment -CommentID : int -User : string -Subject : string -Body : string -PhotoID : int public class Photo { public int PhotoID { get; set; } public string Title { get; set; } public byte[] PhotoFile { get; set; } public string Description { get; set; } public DateTime CreatedDate { get; set; } public string Owner { get; set; } public virtual List<Comment> Comments { get; set; } } 26

Annotations d affichage des données public class Photo { // other properties excluded [DisplayName("Picture")] public byte[] PhotoFile { get; set; } [DataType(DataType.MultilineText)] public string Description { get; set; } } [DataType(DataType.DateTime)] [DisplayName("Created Date")] [DisplayFormat(DataFormatString = "{0:dd/MM/yy}"] public DateTime CreatedDate { get; set; } Validation des données public class Person { public int PersonID { get; set; } [Required(ErrorMessage="Please enter a name.")] public string Name { get; set; } [Range(0, 400)] public int Height { get; set; } } [Required] [DataType(DataType.EmailAddress)] public string EmailAddress { get; set; } 27

TP3 (suite): Entity Framework Définition Les différentes approches d Entity Framework Qu est ce que Entity Framework? Définition Entity Framework est la solution de mapping objet-relationnel proposée par Microsoft. But : fournir la couche d'abstraction nécessaire aux développeurs pour qu'ils n'accèdent plus directement à la base de données. Applications libérées des dépendances codées en dur BD 28

Les différentes approches Database First vs Model First Database first (BD existante) se fonde sur une base de données existante Utilisation de EF Designer pour générer les classes en VB ou C# Model first (BD inexistante) modèle des entités via EF Designer Génération base de données et classes en VB ou C# 29

Database First vs Model First Code First Création simple des classes du domaine d application ( que la BD soit existante ou pas) Permet : Développer sans avoir besoin du Designer ni fichier XML de mapping Définir les objets du modèle selon la méthode «Plain Old CLR Objects» sans nécissiter les classes de base 30

Synthèse Designer Centric Code Centric New Database Model First Create.edmx model in designer Generate database from.edmx Classes auto-generated from.edmx Code First Define classes & mapping in code Database auto-created at runtime Existing Database Database First Reverse engineer.edmx model Classes auto-generated from.edmx Code First Define classes & mapping in code (Reverse engineer tools available) 31