Créer une bibliothèque de classes pour le Web

Documents pareils
Rafraichissement conditionné d'une page en.net

.NET - Classe de Log

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

Module.NET 3 Les Assemblys.NET

Programme Compte bancaire (code)

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

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

Notions fondamentales du langage C# Version 1.0

Utilitaires méconnus de StrataFrame

Hébergement et configuration de services WCF. Version 1.0

Gestion du cache dans les applications ASP.NET

Création d objet imbriqué sous PowerShell.

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

Rapport de Mini-Projet en ArcGIS Engine

WebParts. Version 1.0

Thomas Petillon. les Cahiers du. Programmeur ASP.NET. Groupe Eyrolles, 2003 ISBN :

TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZURE

Convers3 Documentation version Par Eric DAVID : vtopo@free.fr

Déploiement et monitoring

Programmer en JAVA. par Tama

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

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

ADO.NET. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté.

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

ASP.NET 2.0, C#, Spring.Net et NHibernate

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

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

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

Ce document décrit la démarche à suivre pour installer les outils de développement et compiler le projet TANAGRA.

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

< Atelier 1 /> Démarrer une application web

Approche Contract First

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

DotNet. Plan. Les outils de développement

Microsoft Technopoche

Introduction à ADO.NET

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2014

Introduction à la programmation concurrente

DotNet. Présentation de l'offre

Premiers Pas en Programmation Objet : les Classes et les Objets

Installation de GFI Network Server Monitor

Reporting Services - Administration

FORMATION Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions

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

TP3 1 : WEB APPLICATIONS AVEC ASP.NET

Alfstore workflow framework Spécification technique

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

Une introduction à Java

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Vue d ensemble de Windows PowerShell

Construire des plug-ins pour SAS Management Console SAS 9.1

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Sélection du contrôleur

Atelier n 12 : Assistance à distance

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

Problèmes liés à la concurrence

1. Création de l objet de stratégie

Projet de programmation (IK3) : TP n 1 Correction

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

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Thibault Denizet. Introduction à SSIS

Procédure d installation des logiciels EBP sous environnement ESU4. Serveur SCRIBE ou Windows

Placez vous au préalable à l endroit voulu dans l arborescence avant de cliquer sur l icône Nouveau Répertoire

Programmation en Java IUT GEII (MC-II1) 1

Crédit Agricole en ligne

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Interagir avec le SharePoint. Version 1.0

Microsoft Application Center Test

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Restauration d AdmiCash sur un nouveau PC ou système d exploitation

Sauvegarde d'une base de données SQL Server Express 2005

Construire une application marketing Facebook sur la plateforme Windows Azure

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Gestion de stock pour un magasin

CREATION COMPLETE D UN DOMAINE WINDOWS 2000 AVEC UN SERVEUR DE FICHIERS

Technologies DotNET. Vision de Microsoft

Programmation avec des objets : Cours 7. Menu du jour

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

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction de Windows Form

Création et Gestion des tables

Recherche dans un tableau

Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012

Documentation CAS à destination des éditeurs

Consommer des services distants dans les pages ASP.NET Ajax

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Le hub d entreprise est une application de déploiement des applications mais aussi un outil de communication

Visual Basic.NET Interaction avec Excel

Création d outils d intégration de données

REMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION.

Génie Logiciel avec Ada. 4 février 2013

PRO-G-DIS. Installation et utilisation de la banque Claude Bernard

Présentation du langage et premières fonctions

Aspects techniques : guide d interfaçage SSO

Une introduction à la technologie EJB (2/3)

Transcription:

Créer une bibliothèque de classes pour le Web Dans ce document, nous allons suivre pas à pas toutes les étapes permettant de créer une bibliothèque de contrôles pour le Web, l ajouter dans la boite à outil, utiliser ces contrôles sur des pages Aspx. 1. Création du projet a. Dans Visual Studio, il faut créer un Nouveau Projet «Contrôle Serveur ASP.NET», dans les projets Web VB C# b. Votre projet est créé avec une première définition de classe que vous pouvez supprimer immédiatement

c. Si nécessaire ajoutez les références aux assembly de StrataFrame, que vous trouverez dans C:\Program Files\Common Files\MicroFour\StrataFrame\ (sélectionnez au moins Base, Business, et UI) 2. Création des classes a. Dans le menu «Projet», choisissons «Ajouter un nouvel élément», et dans la boite de dialogue, pointons sur la catégorie Web et sélectionnons un élément de type «Contrôle Serveur ASP.NET» Nommez votre nouveau contrôle, vous obtenez le nouvel élément avec du code par défaut.

b. Remplacez ce code par le code de définition de la classe que vous voulez. Dans un premier exemple, nous allons créer une classe de Web textbox dérivée du Web textbox de StrataFrame. Nous lui ajouterons 2 propriétés supplémentaires (une de type String, une de type Booléen), et une méthode Overrides qui affichera le premier plan en noir, quand on demandera un affichage en bleu. i. VB Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Text Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls <DefaultProperty("Text"), ToolboxData("<0:MyTextBox runat=server></0:mytextbox>")> _ Public Class MyTextBox Inherits MicroFour.StrataFrame.UI.Web.TextBox #Region "Propriétés Privées" Private _MaProp As String = "" Private _AutreProperty As Boolean = False #End Region #Region "Propriétés Publiques" <Bindable(True), Category("Mes Propriétés"), DefaultValue(""), Description("Ma propriété de type String nouvelle dans ma classe à moi"), Localizable(True)> Property MaProperty() As String Get Return _MaProp End Get

Set(ByVal Value As String) _MaProp = Value End Set End Property <Category("Mes Propriétés"), DefaultValue(False), Description("Ma propriété de type booléen")> Property AutreProperty() As Boolean Get Return _AutreProperty End Get Set(value As Boolean) _AutreProperty = value End Set End Property ''' <summary> ''' si la couleur de premier plan est bleu, on affiche noir ''' </summary> ''' <value></value> ''' <returns></returns> ''' <remarks></remarks> Public Overrides Property ForeColor As System.Drawing.Color Get Return MyBase.ForeColor End Get Set(value As System.Drawing.Color) If value = Drawing.Color.Blue Then MyBase.ForeColor = Drawing.Color.Black Else MyBase.ForeColor = value End If End Set End Property #End Region End Class Il n y a absolument rien d extraordinaire dans ce code, qui est très ressemblant à celui que nous aurions écrit pour une bibliothèque de classe pour WinForms. La seule particularité est dans la balise ToolBoxData. La valeur du ToolBoxData définit le code de la balise qui sera généré sur notre page aspx, quand on déplacera le contrôle depuis la boite à outil vers la surface de design. ii. C# using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.ComponentModel; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;

[DefaultProperty("Text"), ToolboxData("<0:MonTextBoxCsharp runat=server></0:montextboxcsharp>")] public class MonTextBoxCsharp : MicroFour.StrataFrame.UI.Web.TextBox #region "Propriétés Privées" private string _MaProp = ""; private bool _AutreProperty = false; #endregion #region "Propriétés Publiques" [Bindable(true), Category("Mes Propriétés"), DefaultValue(""), Description("Ma propriété de type String nouvelle dans ma classe à moi"), Localizable(true)] public string MaProperty get return _MaProp; set _MaProp = value; [Category("Mes Propriétés"), DefaultValue(false), Description("Ma propriété de type booléen")] public bool AutreProperty get return _AutreProperty; set _AutreProperty = value; /// <summary> /// si la couleur de premier plan est bleu, on affiche noir /// </summary> /// <value></value> /// <returns></returns> /// <remarks></remarks> public override System.Drawing.Color ForeColor get return base.forecolor; set if (value == System.Drawing.Color.Blue) base.forecolor = System.Drawing.Color.Black; else base.forecolor = value; #endregion Ici aussi, on retrouve la balise ToolBoxData.

Dans un deuxième exemple, nous allons créer une classe de Web Button dérivée du Web Button natif de.net. Les seules surcharges dans cette classe seront la couleur par défaut, et le texte affiché par défaut. i. VB Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Text Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Drawing <DefaultProperty("Text"), ToolboxData("<0:MyButton runat=server></0:mybutton>"), ToolboxBitmap(GetType(Button))> _ Public Class MyButton Inherits Button #Region "Propriétés Privées" #End Region #Region "Propriétés Publiques" #End Region Public Sub New() Me.BackColor = Drawing.Color.Aquamarine Me.Text = "Coucou!" End Sub End Class ii. C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; namespace MesClassesWeb [DefaultProperty("Text")] [ToolboxData("<0:MonBoutonCsharp runat=server></0:monboutoncsharp>")] [ToolboxBitmap(typeof(Button))] public class MonBoutonCsharp : Button [Bindable(true)] [Category("Appearance")] [DefaultValue("")] [Localizable(true)]

public string Text get String s = (String)ViewState["Text"]; return ((s == null)? String.Empty : s); set ViewState["Text"] = value; public MonBoutonCsharp() this.text = "Coucou C#"; this.backcolor = Color.Aqua; La particularité supplémentaire ici est la balise ToolBoxBitmap, qui permet de spécifier l icône qui figurera dans la boite à outils : sans cette balise, votre composant apparaitra dans la barre d outils avec une icône par défaut Vous pouvez spécifier un fichier image sur le disque, mais dans notre exemple, nous récupérons l image associée par défaut à la classe parent. 3. Compilation Nous pouvons compiler le projet, mais faîtes attention à la version du framework dans laquelle vous allez compiler. Si vous voulez pouvoir utiliser ces contrôles dans des projets existants préalablement, alors vous devez compiler dans une version compréhensible pour ces projets. 4. Utilisation de ces classes a. Configurer la Boite à Outils Nous allons commencer par ajouter un nouvel onglet à notre boite à outils (Click droit, puis ajouter un Onglet) Puis dans ce nouvel onglet, nous allons ajouter les éléments voulus ; même s il est possible de «jeter» directement la dll compilée depuis l explorateur de fichier vers ce nouvel onglet, je déconseille cette méthode qui ne permet pas de choisir les éléments à ajouter de façon individualisée. Cliquez plutôt sur «Choisir les éléments...» dans le menu contextuel du click droit dans ce nouvel onglet vide, et allez chercher la dll compilée. Vous pouvez choisir les élémnts de façon individualisée.

Si vous ne voyez pas immédiatement votre nouvel onglet et vos contrôles ajoutés, commencez par ouvrir une page aspx. Vous devriez alors voir ceci : On remarque que les classes issues de «Button» sont bien identifiées par l icône correcte. b. Consommer dans une page ASPX N oubliez pas de référencer votre bibliothèque de classe dans votre projet, ensuite il suffit de procéder comme pour tout autre contrôle, en le faisant glisser depuis la boite à outil vers la surface de design ou la surface de source. i. En mode de Design ii. En mode Source c. Les propriétés on retrouve bien la catégorie créée, ainsi que les 2 propriétés ajoutées. On voit que notre classe dérive bien du TextBox de StrataFrame.

d. Le code behind Protected Sub MonBoutonCsharp1_Click(sender As Object, e As EventArgs) _ Handles MonBoutonCsharp1.Click Me.MyTextBox1.ForeColor = Drawing.Color.Blue End Sub Protected Sub MyButton1_Click(sender As Object, e As EventArgs) _ Handles MyButton1.Click Me.MyTextBox1.Text += Me.MyTextBox1.MaProperty.ToUpper() + Me.MyTextBox1.AutreProperty.ToString Me.MyTextBox1.ForeColor = Drawing.Color.Red End Sub Cet exemple nous permet de vérifier que nos propriétés définies dans les classes sont accessibles et utilisables, et que le code que nous avions écrit dans les classes est bien exécuté. En conclusion... Nous avons appris à créer une bibliothèque de contrôles web pour des pages aspx, dans le langage de notre choix. Nous savons ajouter ces contrôles à notre boite à outils, et utiliser ces contrôles comme tout autre.