Le premier site francophone dédié au développement Pocket PC

Calpin, votre premier programme en VB.NET (partie 1)
Auteur
Stéphane Sibué
Date 2 décembre 2002
 
   


Partie 1
Partie 2
Partie 3
Partie 4

C'est un grand moment pour moi. Cet article est le premier que je publie sur le développement Pocket PC avec le technologie .NET

Jusqu'à maintenant je me suis concentré sur le développement avec eVB et je me suis efforcé de vous donner toute l'expérience que j'ai avec ce langage, qui n'est pas parfait, certe, mais qui a le mérite d'exister et d'être gratuit. Merci encore à Microsoft de nous permettre de développer des applications avec des langages gratuits, il ne faut surtout pas qu'elle en perde l'habitude ;)

Avec la technologie .NET on passe à la vitesse supérieure. Comme je connais très bien Visual Basic (je développe avec ce langage depuis sa sortie en 1991), je me suis tout naturellement mis à VB.NET

Avec VB.NET beaucoup de choses changent (par rapport à VB et surtout à eVB) mais une fois qu'on a compris la logique qu'il y a là dessous les choses se simplifient et on se rend vite compte qu'il est possible de dégager beaucoup de puissance et de rentabilité avec ces nouveaux outils.

Fidèle à mon habitude, je commence par des notions simples qui vont vous permettre de comprendre comment démarrer avec VB.NET pour Pocket PC.

Un peu d'histoire

Cela fait maintenant plusieurs mois qu'il est possible de développer des applications avec .NET car Microsoft a déjà mis à disposition la béta 1 et la béta 2 des Smart Device Extensions et du Compact Framework.

Pour plus d'info à ce sujet je vous propose 3 articles généraux :

Article sur .NET Compact Framework et SDE Tech Preview
Article sur .NET Compact Framework béta 1
Article sur les Smart Device Extensions béta 1

Ainsi que 3 articles plus techniques qui vous donnerons une idée du contexte de développement d'une application .NET :

Le développement universel avec .NET
Le développement d'applications Pocket PC avec C# et les SDE
Compact Framework et XML

Pour résumer et faire simple (autant que possible) on peut dire que pour développer une application .NET pour votre Pocket PC il vous faut 3 éléments :

Un Visual Studio .NET 2002 Environnement de développement .NET
Les Smart Device Extensions Permet d'intégrer le développement Pocket PC ou Windows CE .NET dans Visual Studio
Le Compact Framework Le Framework propre aux machines de type PDA

Il faut savoir qu'avec la version Visual Studio 2003 (qui ne va pas tarder à sortir) les Smart Device Extensions et le Compact Framework sont inclus en standard.

Calpin, pour faire simple y a pas mieux !

J'ai décidé de créer une petite application, très simple, qui permet de comprendre le fonctionnement du développement en VB.NET et aussi qui aborde des thèmes de base comme la gestion des fenêtres, la lecture et l'écriture de fichiers texte, l'utilisation de boîtes de dialogue pour l'ouverture et l'enregistrement de fichiers, etc...

Quoi de plus simple qu'un bloc note ? Donc cette série d'articles va vous expliquer comment créer votre bloc note en VB.NET

Le cahier des charges de Calpin

Notre application doit pouvoir répondre au cahier des charges suivant :

Charger un fichier texte ou html depuis le dossier \My Documents
Permettre la saisie d'un nouveau texte ou la modification d'un texte déjà existant
Enregistrer les modifications dans le fichier d'origine ou enregistrer dans un autre fichier
Afficher un Splash Screen sympa (les goûts et les couleurs me direz-vous...)
Afficher le nom du fichier en cours de traitement à l'écran
Réagir correctement lorsque le SIP apparaît ou disparaît (retailler l'écran)

Comme vous pouvez le constater, rien de bien compliqué pour ce premier article, et c'est tant mieux...

La version de Visual Studio que j'ai utilisé

Pour écrire Calpin j'ai utilisé la "Final Beta" de Visual Studio 2003. A vous dire la vérité c'est la première version des Smart Device Extensions qui fonctionne très bien. Cette version est très stable et c'est vraiment un plaisir de l'utiliser.

Etape 1 : Création du projet "Calpin"

La première étape consiste à créer notre projet "Calpin". Pour cela nous allons demander à Visual Studio .NET (VSNET à partir de maintenant) la création d'un nouveau projet VB.NET avec les Smart Device Extensions :

Choisissez donc "Visual Basic Projects" (1), puis "Smart Device Application" (2). N'oubliez pas de donner à votre projet un nom et un dossier d'enregistrement (3).

Comme nous avons demandé un projet basé sur les "Smart Device Extensions" VSNET nous demande quelques précisions sur la nature exacte du projet.

Actuellement il est possible de créer des applications pour "Pocket PC" et "Windows CE". Nous allons choisir la plate-forme "Pocket PC". Il est aussi possible de choisir le type de projet (Windows Application, Class Library, etc...), nous allons choisir "Windows Application".

Voilà, nous nous retrouvons maintenant avec notre projet "Calpin" prêt. VBNET nous a automatiquement préparé les références habituelles (déterminées par le type de projet), et nous a ajouté une feuille "Form1".

Il ne faut pas oublier de donner à VSNET le chemin vers lequel l'exécutable sera déployé, que ce soit vers l'émulateur ou vers un véritable Pocket PC.

Par défaut VSNET prévoit de placer le fichier exécutable (et les ressources associées) dans le dossier "\Program Files\" + Nom du projet. Je trouve que pendant le développement ce n'est pas une bonne idée.

Perso j'utilise le dossier "\DVLP\" + Nom du projet pour les développements eVB et eVC++, et "\DVLP.NET\" + Nom du projet pour les développements avec VSNET.

Pour modifier cette valeur, cliquez sur le menu "Project", puis sur "Calpin Properties..."

Vous allez vous retrouver avec la fenêtre des propriétés du projet. Dans la colonne des types de propriétés (celle avec les dossiers) choisissez "Common Properties" puis "Device". Il ne vous reste plus qu'à modifier la zone "Output file folder".

Cette fenêtre vous permet de modifier d'autres paramètres, comme par exemple la cible (émulateur ou véritable device), et d'autres (à vous de voir). Pour ce projet, il n'y a pas d'autre paramètre à modifier.

Etape 2 : un peu de design

Pour créer notre interface, VSNET met à notre disposition une série de contrôles. Ils sont plus nombreux que ceux fournis avec eVB mais il en manque encore certains (comme le DateTimePicker par exemple). Bon, ne faisons pas trop la fine bouche...

Pour notre application "Calpin" nous avons besoin de plusieurs de ces contrôles. Voici la liste de ceux que nous allons utiliser avec le nom qu'il faut leur donner.

Type de contrôle Name

1

TextBox TXT_Texte
2
StatusBar SB_Calpin
3
MainMenu LeMenu
4
OpenFileDialog OpenDialog
5
InputPanel InputPanel1
6
SaveFileDialog SaveDialog

Note: Pour modifier les propriétés d'un contrôle, cliquez pour le sélectionner puis tapez sur le touche [F4] de votre clavier, la fenêtre des propriétés de ce contrôle s'affichera. Le nom d'un contrôle est saisi dans la propriété "Name".

Pour ce qui est du menu (LeMenu) il faut créer les différents éléments (c'est très intuitif). Notre menu doit avoir la structure suivante :

Fichier     MEN_Fichier
  Nouveau   MEN_Nouveau
  Charger   MEN_Charger
  Enregistrer   MEN_Enregistrer
  Enregistrer sous...   MEN_EnregisterSous
  - (séparateur)   (Nom par défaut)
  Quitter   MEN_Quitter
?     (Nom par défaut)
  A propos de Calpin   MEN_About

(J'ai pour habitude de faire précéder les nom des éléments de menus par MEN_, d'ou les noms de la colonne de droite).

Etape 3 : Et maintenant un peut de code

Nous allons dans cette première partie coder 2 fonctions de notre Calpin :

Quitter l'application

Avec Form1, activez le menu "Fichier->Quitter" que vous avez créé en cliquant sur "Fichier", puis en double cliquant sur "Quitter". Cette opération va ouvrir la fenêtre de code de Form1 (Form1.vb [Design]), et vous placer automatiquement dans le code d'événement du menu "Quitter". Là, tapez le code suivant :

Private Sub MEN_Quitter(Byval sender As System.Object.....

Application.Exit()
End Sub

Ce code nous permet de faire connaissance avec l'objet "Application". Cet objet permet de terminer le programme grâce à sa méthode "Exit" que nous venons d'utiliser. Il permet aussi de démarrer l'application (code placé automatiquement par VSNET) avec sa méthode "Run". Il permet aussi d'invoquer le bien connu "Doevents" des programmeurs VB.

Nouveau

Pour commencer, nous allons déclarer une variable privée à la fenêtre qui recevra le chemin du fichier en cours de traitement. Cette variable sera "FichierEnCours" de type "String" :

Pour déclarer cette variable placez vous dans le code de la fenêtre (cliquez sur la fenêtre puis sur la touche [F7]). Tapez la déclaration de la variable comme suit :

Public Class Form1

Inherits System.Windows.Forms.Form

Friend WithEvents....
....

Rem Déclaration des variables
Private FichierEnCours As String

[+][Windows Form Designer generated code]
.....

Nous allons aussi taper le code lié au menu "Nouveau". Comme pour le menu "Quitter", activer le menu "Nouveau" pour faire apparaître le code lié et tapez le code suivant :

Dans ce code, qui est très simple (mais si, mais si) on effectue 4 opérations :

TXT_Texte.Text = "" On efface la zone de texte
TXT_Texte.SetFocus() On place le focus sur la zone de texte
FichierEnCours = "" On vide la variable FichierEnCours
SB_Calpin.Text = "(sans nom)" On place le message "(Sans nom)" dans le contrôle StatusBar

Etape 4 : Tester le code

Pour tester votre code (bien maigre il est vrai, mais ça ne va pas durer) il suffit de taper sur [F5]. VSNET va compiler le programme (créer la solution en jargon .NET), et le déployer sur la cible que vous lui avez paramétré. Vous pourrez alors tester les menus "Nouveau" et "Quitter".

Conclusion de cette première partie

On va s'arrêter là pour aujourd'hui. Dans la seconde partie nous parlerons de la lecture d'un fichier texte, de son enregistrement et de la nouvelle manière de gérer les erreurs avec VB.NET.

N'oubliez pas qu'en cas de problème, ou si vous avez des questions, le forum .NET de CodePPC est à votre disposition.

Stéphane Sibué

 

 
   

Copyright 2001-2004 - Tous droits réservés
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.