Mardi 01 juillet 03
Session DEV330: Microsoft Visual Studio
.NET IDE Tips and Tricks
Cette session fut présentée par Billy Hollis et Aris Bixhon
et avait pour but de montrer un ensemble de fonctionnalités offertes par Visual
Studio .NET pour faciliter le travail des développeurs.
Quelques Raccourcis VS.NET en entrée :
Ainsi, les présentateurs ont commencés par la présentation
de quelques raccourcis intéressants dans notre IDE préféré. En voici quelque
uns :
ctrl
+A : Sélectionne tout le code ;
CTRL + Alt + K : affiche la liste des
tâches ;
CTRL + Alt + A : affiche la fenêtre de
commande en dessous de la fenêtre d’édition. Il est ainsi possible de saisir
des commandes et exécuter des commandes systèmes sans avoir besoin de quitter
VS.NET ;
CTRL + I : Permet d’effectuer une recherche
incrémentale sur le texte du code dans l’éditeur.
Une fois activé, il suffit de
saisir les lettres du texte ou bout de code recherché et VS.NET positionne automatiquement
au fur et à mesure le curseur sur le mot possédant l’occurrence des lettres
recherchées (le pointeur de la souris change de forme pour vous indiquer que
vous êtes dans ce mode). Un nombre important de raccourcis fut donné dans cette
partie de cette session et il serait difficile de tous les énumérer ici. Il est
tout à fait possible de les retrouver en consultant l’aide de VS.NET ou
à l’aide de la configuration de l’environnement de VS.NET. Il est bien
entendu possible de créer ses propres raccourcis, ou de modifier ceux proposés
par VS.NET par défaut. Pour cela, il faut se rendre dans le menu « Outils »
et ensuite dans « Options ». La boite de dialogue « Options »
s’ouvrent et il ne reste plus qu’à sélectionner le dossier « Environnement »
et le nœud clavier pour accéder aux options de configuration du clavier.
On verra un peu plus bas que cela sera très intéressant lorsque l’on va
associer un raccourci clavier à une Macro. Il est inutile de détailler la
configuration du clavier et celle des raccourcis claviers, les différents noms
des zones de texte, éditions, boutons et autres sont explicite. Un peu de
pratique suffit pour maîtriser cette partie.


La description des options de VS.NET :
La boite de dialogue de configuration des options de VS.NET
regroupe on l’a dit plus haut un ensemble de fonctionnalités intéressantes.
Nous avons donc pu avoir une description des différents éléments de
configuration que l’on y retrouve. Voici un bref aperçu en sachant que
certains nœuds ne seront pas cités de part la simplicité de leur utilisation:
Le dossier environnement :
·
Général : permet de configurer les paramètres de
démarrage de Visual Studio .NET. Il est ainsi possible de choisir la page de
démarrage, l’utilisation des onglets ou non pour les différentes fenêtres, le
nombre de projets affichables dans l’onglet projet (ceux qui on été récemment
crées ou modifiés) ...etc.
·
Aide : Permet de choisir la langue par défaut de
l’aide ainsi que la source de l’aide utilisée par le développeur, en
l’occurrence interne (fournis avec VS.NET) ou externe (MSDN sur le net).
·
Liste des tâches : permet de gérer les tâches crées
avec VS.NET (voir plus bas pour la création des tâches). On va pouvoir par
exemple modifier les jetons des commentaires permettant la création automatique
des tâches dans le code.
·
Navigateur : permet de configurer la page de
démarrage par défaut du navigateur intégré à VS.NET et ainsi que l’éditeur par
défaut du code source HTML.
·
Police et couleurs : permet de personnaliser le texte
affiché dans les différentes fenêtres de VS.NET en modifiant sa taille, sa police
de caractères, sa couleur…etc.
·
Projets et solutions : permet de configurer
l’emplacement par défaut des projets crées sous Visual Studio.NET ainsi que les
options de générations et d’exécution du code source.

Contrôle de code source :
·
Général : Permet de configurer le comportement de
VS.NET par rapport à des projets soumis au contrôle des versions du code
source. Par défaut, les paramètres de contrôle de code source sont positionnés
sur Visual Source Safe.
·
Fournisseur SCC : sert à configurer l’accès
automatique à VSS ou un autre fournisseur de contrôle de code source. Indiquez
ici le compte VSS si vous en possédez un.
·
Editeur de texte : Permet de configurer le
comportement de la fenêtre d’édition du code source. Il est possible de le
faire pour l’ensemble des éditeurs fournis avec VS.NET ou de le faire
uniquement pour un éditeur. Inutile de s’attarder plus longtemps sur cette
partie, mais nous précisons qu’on va pouvoir afficher le numéro des lignes dans
notre éditeur de code favori, ce qui est intéressant lors du déboguage des
applications.

Projets :
·
Paramètres Web : permet de modifier la manière avec
laquelle VS.NET ouvre les projets Web. Ainsi, il est possible que ce dernier se
connecte au partage de fichier de vos projets Web (wwwroot par défaut sous
Win2000) ou se connecte au serveur Web en utilisant les extensions serveur
FrontPage. Il est aussi possible de configurer le dossier de mise en cache par
défaut de vos applications Web.
Description des fonctionnalités de l’explorateur de serveur :
En guise de plat de résistance, les présentateurs nous ont
servi une description de l’explorateur de serveurs accompagnée de
démonstrations fort sympathiques. Dans tous les cas, l’explorateur de serveur
possède deux nœuds principaux qui sont Serveurs et Connexion aux
données.
Serveurs : regroupe l’ensemble des outils
permettant la gestion d’une machine. Parmi ses outils, on retrouve :
Les compteurs de performances :
Ces derniers vont permettre de récupérer à partir d’une
application les valeurs des compteurs de performances du moniteur système
Windows.
La démonstration consistait à créer une mini application qui
permettrait de gérer une instance de compteur de performances en utilisant un
minimum de ligne de code. Le mieux est de développer pas à pas l’application
ayant servie à la démonstration. Notre application va donc incrémenter ou
décrémenter les valeurs du compteur choisis. Dans un premier temps, il est
question de créer un compteur personnalisé. En effet, les compteurs présents
sur une machine n’autorisent qu’un accès en lecture seule à leurs informations,
ce qui ne nous intéresse pas puisque nous voulons contrôler les valeurs de
notre compteur. Le nœud compteur de performances permet de choisir ou de créer
de nouveaux compteurs sur la machine locale ou sur une machine sur le réseau.
Pour pouvoir accéder à la liste des compteurs sur une machine sur le réseau, il
faut une référence à cette machine au nœud serveur de l’explorateur de serveur.

Dans notre cas, nous nous contentons de gérer les compteurs
de la machine locale. Nous allons ensuite créer un nouveau compteur
personnalisé. Il nous faut pour cela créer une nouvelle catégorie de compteurs
de performance. Pour cela, Bouton Droit
-> Nouvelle catégorie. Il suffit ensuite de renseigner les
champs « Nom » et « description » de la
catégorie depuis la boite de dialogue « Générateur de compteurs de
performances », nous allons ajouter un nouveau compteur de
performance à la machine locale.

Après avoir renseigner les informations sur le nouveau
compteur, il ne reste plus qu’à valider l’opération et notre nouveau compteur
apparaît dans la catégorie correspondante dans le nœud « compteurs de
performances » de notre machine locale.

Il est maintenant question de créer une application Windows
Form possédant 2 boutons possédant respectivement dans notre cas les noms et le
texte « btnAugmenter », « Augmenter » et
« btnDiminuer », « Diminuer ».
Nous allons maintenant associer à ces boutons les fonctions
d’incrémentation et de décrémentation de notre compteur. La première chose à
faire consiste à sélectionner le nouveau compteur créer dans notre nouvelle
catégorie et à glisser déposer notre compteur dans la forme principale
de notre application. Cela aura pour effet de rajouter un composant « non
visuelle » appelé « performanceCounter1 » dans la
barre des composants de VS.NET. Pour être sûr de pouvoir modifier les valeurs
de notre compteur, nous allons modifier la propriété « ReadOnly »
de notre nouvel objet en la positionnant à « False ».
|

|

|
On peut en passant regarder les valeurs de propriétés
« CategoryName » et « CounterName ». Il est
question maintenant d’incrémenter ou de décrémenter notre compteur en gérant
les évènement Click des boutons « Augmenter » et
« Diminuer ». Pour cela, il suffit de créer les gestionnaires de
l’évènement « Click » de chaque bouton en double-cliquant sur
ses boutons dans le Designer. Une fois cela fait, il suffit ensuite d’appeler
les méthodes « Increment » et « Decrement »
de la classe « PerformanceCounter ». Voici le code
correspondant :

Il est désormais possible d’utiliser le « moniteur
de performance » de Windows (Démarrer -> Outils d’administration
-> Performances sous Windows XP) pour effecteur les tests de notre
application et utiliser notre nouveau compteur.

Pour les besoins de notre test, nous allons supprimer les
compteurs existant en cliquant sur « la croix » (
) dans la
barre d’outils du viewer de notre moniteur système. Puis nous allons ajouter
notre nouveau compteur personnalisé dans le moniteur système en utilisant le
bouton + (
) du moniteur système. Comme
« objet performance », nous allons ajouter la catégorie
précédemment crée (PersonnalCounter) et choisir notre compteur dans cette
catégorie (ici CounterName).

Il suffit ensuite de cliquer sur le bouton « Ajouter »
pour ajouter notre nouveau compteur. Une fois de retour dans la fenêtre du
moniteur de performance de Windows, on se rend compte que l’activité relevée
par notre compteur est constante.
Maintenant, nous allons exécuter notre application. Une fois
lancé, on va cliquer sur chacun des boutons « Augmenter » ou
« Diminuer » pour se rendre compte que cela fait varier les
relevés instantanés du moniteur de performance sur notre compteur.

Il va donc être pouvoir possible de créer des compteurs
personnalisés dans nos applications, compteurs qui seront directement
utilisables dans le moniteur de performance et ceci avec un minimum de code.
Les Events Logs : Permettent de consulter
directement depuis VS.NET les journaux d’évènements d’une machine locale ou
distante. Il est donc inutile de lancer l’observateur d’évènement en cours de
développement d’une application.

Services : Il va permettre de gérer les services
sur une machine locale ou distante. On peut ainsi démarrer, arrêter, mettre en
pause un service directement depuis VS.NET.

Il est aussi possible de glisser déposer un service dans le
« Designer » ce qui aura pour effet de créer un objet de la
classe « ServiceController » portant par défaut le nom « ServiceController1".
Ceci va vous permettre de gérer un service spécifique directement depuis votre
application.



On peut imaginer que nous rajoutions un bouton qui nous
indique si on peut arrêter le service spécifique sur une machine ou non. Il
faut rajouter le code suivant dans la fonction évènementielle appelée lorsque
l’on effectue l’action de cliquer sur le bouton :

L’application ressemble donc a :

Lorsqu’on exécute l’application et que l’on clique sur le
bouton « Stoppable ? », elle renvoie le message suivant
(il faut noter que le service que nous avons ajouter est le service
d’administration de IIS) :

Serveur SQL (et la connexion aux données) :
Permet de récupérer de créer des connexions aux bases de données, de gérer ses
bases de données SQL Serveur depuis le gestionnaire de base de données intégrée
à VS.NET. C’est outils est présenté dans les cours du laboratoire Dotnet sur le
site www.labo-dotnet.com, je vous
recommande de les télécharger, notamment ADO.NET pour en savoir plus. Nous
allons néanmoins présenter une fonctionnalité forte intéressante pour les
développeurs ne disposant pas de suffisamment de temps pour développer des
applications exploitant des bases de données. Dans ce cas, ils vont pouvoir
utiliser les fonctionnalités dites de RAD de VS.NET. Supposons que vous
disposiez d’une base de données SQL SERVER sur laquelle vous avez crée un
ensemble de procédures stockées. Il vous suffira de procéder comme ci-dessus
(glisser- déposer sur votre Windows Form) pour vous les mettre à votre disposition
dans le code de votre application. Vous allez constater que VS.NET crée
automatiquement des objets de la classe « SqlConnetion »
et « SqlCommand » en leur attribuant le nom des classes
respectives terminés par « 1 ». On peut éventuellement jeter un coup
d’œil au code généré par VS.NET pour se rendre compte que ce dernier est
« propre ».


Déclaration des objets :

Initialisation des objets :

L’utilisation de l’aide : Nous avons ensuite eu
droit à la présentation de l’art et la manière d’utiliser l’aide au combien
riche fournis avec VS.NET grâce aux outils dédiés de ce dernier. Nous n’en
parlerons pas longuement ici puisque cette partie est quasi identique au
chapitre dédié à l’utilisation de l’aide de VS.NET du cours « Méthodologies
de développement » publié sur le site du laboratoire DOTNET.
Les Macros : Avec VS.NET vous avez la
possibilité d’en créer ou d’utiliser celles qui sont fournis de base. Le menu
« Macro » dans le menu « outils » va vous
permettre de gérer et d’utiliser vos macros.

Nous n’allons pas détailler toutes les commandes de ce menu.
Vous avez un ensembles de macros fournies avec VS.NET, elles sont disponibles depuis
la commande « Explorateur de macros » dans le menu « Macro ».

Voyons rapidement comment créer une Macro : Vous avez
le choix entre créer un nouveau projet de macro ou utiliser un projet
de Macro existant. Si vous choisissez la 1ère option, n’oubliez
pas de marquer votre nouveau projet de Macro comme étant votre projet
d’enregistrement, pour cela : « Bouton droit» sur le
projet de macro concerné, cochez l’option « Définir comme projet
d’enregistrement ». Une fois que cela est fait, vous allez pouvoir
utiliser votre nouveau projet pour créer vos Macros. Pour enregistrer vos
actions dans une Macro, utiliser la commande « Enregistrer Temporary
Macro », une nouvelle barre de menu apparaît vous permettant de suspendre
l’enregistrement de votre Macro, d’arrêter l’enregistrement de la Macro ou
simplement d’annuler l’enregistrement de votre Macro. Vous verrez qu’une macro
nommée « TemporaryMacro» apparaît sous votre projet de Macro dans
la fenêtre « Explorateur de Macro ». Vous allez pouvoir la
renommer à votre convenance et l’utiliser. Il est bien entendu possible de
modifier vos macro directement dans le code source de ces dernières. Pour cela,
« bouton droit -> Modifier » sur la macro correspondante
pour lancer la fenêtre de Design des Macros. Enfin, vous aller pouvoir associer
des raccourcis clavier VS.NET à l’exécution de vos Macro. Je vous laisse
devinez comment.
Quelques petites astuces sympathiques pour finir :
Gérer vos tâches : Vous pouvez créer des tâches
pour planifier (légèrement) de futures actions à accomplir dans telle ou telle
partie de votre application. Pour cela, en mode édition de votre code source,
il suffit en C# ou en VB.NET d’utiliser le jeton « TODO » en
début de commentaire (juste après les « // » ou « ‘ » ) ou
d’afficher la fenêtre des tâches (CTRL + ALT + K) et de rajouter une
tâche directement depuis cette fenêtre:


Garder un aperçu de votre code source dans la boîte à
outils : vous pouvez glisser une partie de votre code source dans la
boite à outils dans la section « Générale ». Pour cela,
sélectionner le bout de code dont vous voulez conserver un aperçu depuis la fenêtre
d’édition de code. Glissez et déposez ce bout de code dans la boite à outils.
Vous pourrez glisser et déposer cette partie de code à n’importe qu’elle
endroit dans l’éditeur de code VS.NET (autre fichiers de classe, XML et autre)
en effectuant l’action contraire de celle indiquée ci-dessus.


Revenir à la page de démarrage : Au cas ou vous
avez fermé la page de démarrage et que vous souhaitez revenir à celle-ci,
sélectionner la commande : « Afficher la page de démarrage »
depuis le menu Aide.

Voila pour l’essentiel de cette session baptisé Visual
Studio .NET Tips and Tricks. Il est bien sûr possible d’aller plus loin avec Visual
Studio .NET. Par contre j’ai volontairement oublié de restituer toutes les
informations délivrées au cours de cette séance pour éviter de rédiger un
document trop long.