C# Localisation à l'aide de Windows Forms - Accès direct aux ressources

Posted on February 5th, 2015

Le code ci-dessous est un exemple de récupération du gestionnaire de ressources de Windows Forms. Vous pouvez l'utiliser pour réutiliser des ressources déjà définies par Windows Forms.

Notez que vous devrez remplacer "Forms1" par le nom de votre classe de formulaire.

ATTENTION! Les ressources d'un formulaire Windows ne sont pas faites pour être enrichies de nouvelles entrées. Référez vous aux ressources personnalisées pour créer du nouveau contenu si celui-ci n'est pas déjà dans le formulaire.

C# Localisation - Forcer une culture

Posted on February 5th, 2015

Quand vient le temps de tester le multilinguisme d'une application, il peut être intéressant de forcer celle-ci dans une autre culture. Pour ce faire, il suffit de changer la culture du fil d'exécution à l'aide de la commande suivante.
Placez-la dans le "Main", idéalement le plus tôt possible afin de ne pas avoir de mélange linguistique. S'il s'agit d'une application Windows Forms, les composantes ne sont pas réinitialisées automatiquement. Si vous voulez changer après l'initialisation, il faudra réinitialiser toutes les composantes graphiques affectées par la localisation.


...

ou

ou



C# Localisation à l'aide de ressources personnalisées.

Posted on February 5th, 2015

Pour utilisées des ressources personnalisées, il faut d'abord créer un fichier ressource (.resx) dans votre projet. Pour ce faire, avec le bouton de droite sur le projet, sélectionnez "Ajouter" > "Nouvel élément...". Dans la catégorie "Général" sélectionnez "Fichier de ressources".

Prenez le temps de bien nommer le fichier .resx car celui-ci sera compilé en classe directement accessible dans votre code. Le fichier est la classe et les entrées sont des attributs.


C# Localisation à l'aide de ressources Windows Forms

Posted on February 1st, 2015

La première étape consiste à activer la fonction de localisation de votre application. Pour ce faire, ouvrez votre formulaire en mode création. Dans le panneau de propriétés, activez la localisation:

La propriété "Language" indique la langue dans laquelle est saisie le texte au moment de la conception. Changez-la pour la locale de votre choix pour créer automatiquement le fichier ressource associé.


Dans ce cas-ci, le fichier Form1.fr-CA.resx contiendra les ressources spécifiques au français canadien. Il s'agit d'un fichier XML pris en charge par Visual Studio. Il peut contenir du texte, du son, des images, des vidéos et d'autres objets au besoin.

Vous pouvez créer des ressources générales ou par langue ou encore localisée spécifiquement pour une région à l'aide de ce système. La beauté réside dans sa capacité d'être le plus spécifique possible quand une ressource spécifique existe et de se rabattre sur une ressource plus générale si elle n'existe pas.

Pour accéder par programmation aux ressources des formulaires, il faut les mettre leur modificateur d'accès à "public". La ressource sera alors compilée et accessible sous Properties.Resources.



La langue par défaut de votre application est celle du système. Vous pouvez aussi changer manuellement la localisation en cours d'exécution :




C# Classes partielles

Posted on January 30th, 2015


Il est possible de fractionner le code source des structures, classes, interfaces et méthodes sur plusieurs fichiers afin d'isoler les portions de code que l'on souhaite mettre à jour de façon indépendante. Le cas le plus fréquent est celui du code généré d'une classe auquel on greffe manuellement des comportements et autre composantes. On évite ainsi que la mise à jour du code généré n'écrase les changements qu''on y a apporté manuellement.

Notez qu'il s'agit d'un simple artifice de compilation. Contrairement aux interfaces et aux classes abstraites, la notion de classe partielle n'existe pas une fois le code compilé.

Plus de détails sur le site de microsoft

C# Conventions de nomenclatures

Posted on January 30th, 2015

Principes généraux:
  1. Règle de la moindre surprise. Favorisez l'homogénéité des conventions plutôt que le purisme.
    • Respectez les conventions en place, même si elles ne sont pas explicitement documentées.
    • L'anglais domine largement en informatique, mais dans certains contextes la langue locale peut être exigée pour les commentaires ou même le code. Respectez ces choix.
    • Microsoft offre un ensemble de règles pour le C#, mais il est très fréquent qu'un organisme ou un groupe de travail ait ses propres règles. S'il est confirmé qu'elles s'appliquent à votre code, apprenez-les et suivez-les! Et ce, même si elles sont en contradiction avec le reste de l'industrie.
  2. Favorisez la lisibilité avant tout.
    • Les éditeurs modernes vous font gagner du temps en complétant facilement votre rédaction. Faites-en bon usage. Inutile d'être concis quand c'est au détriment de la lisibilité. Évitez-donc:
      • Les abréviations ou diminutifs;
      • Les acronymes qui ne sont pas d'usage très courant;
      • Les préfixes inutiles en typage fort comme la notation hongroise. Cette dernière est parfois appréciée dans les langages dynamiques, mais généralement superflue en C#.
  3. Nommez les choses en fonction de leur sens dans le contexte.
    • Évitez d'utiliser de simples lettres ou des mots insignifiants.
    • Portez une attention particulière aux ambiguïtés. Il existe généralement un terme plus spécifique.
    • Selon le contexte, utilisez un nom, un verbe d'état ou d'action. Accordez les pluriels et les temps au besoin.
      • Les attributs seront généralement des noms, des formes passives (termes d'états).
      • Les listes et énumérations seront généralement au pluriel.
      • Les méthodes seront généralement des verbes d'action.
        • Utilisez le temps des verbes pour dénoter le présent, passé et futur.
      • Les interfaces sont des adjectifs.
    • Utilisez une phrase nominale au besoin pour clarifier. La modération s'impose, mais la clarté gagne.
  4. N'utilisez pas le même terme avec seulement la casse comme différence. Bien que le C# soit sensible à la casse, ce ne sont pas tous les langages du CLR qui le sont.
  5. Attention aux interférences les autre langages. En C#, la casse Pascal domine largement!
CasseContexte
Pascal (PascalCasing)
Namespace
Classes
Énumérations et items d'énumérations
Interfaces (ajoutez le préfixe "I" suivi d'une lettre en majuscule)
Attributs, qu'ils soient propriétés et champs(C'est différent du Java!)
Événements
Mixte (camelCasing)paramètres
Majuscule

Voir aussi :

C# Les tests unitaires

Posted on January 29th, 2015

Introduction

Les projets de tests unitaires contiennent un type particulier de classes qui ont pour rôles de valider un ensemble de conditions auxquelles doit répondre une classe cible.

Essentiellement, dans Visual Studio il suffit de :

  1. Créer un projet de test unitaire
  2. Ajouter notre projet cible (celui à tester) en référence au projet
  3. Créer des classes qui contiendront des ensembles de tests (pensez couplage et cohésion!)
  4. Écrire pour chaque cas d'utilisation au moins un cas de test (Assert) qui compare le comportement aux attentes.

Documentation de Microsoft :


C# Passage d'un nombre variable d'arguments

Posted on January 29th, 2015

Une méthode peut avoir un nombre variable d'arguments dans les cas combinables suivants:

  • Le polymorphisme permet de définir différentes variantes d'arguments et de nombre d'arguments;
  • L'utilisation de valeurs par défaut rend ces arguments facultatifs;
  • L'utilisation de listes de paramètres. Dans cette dernière un tableau accueille l'ensemble des arguments.

À cela s'ajoute la capacité de nommer des paramètres et ainsi pouvoir spécifier un argument dans un ordre différent de la signature de méthode. Cette approche est cependant peu recommandable car elle peut engendrer des méthodes fourre-tout. Elle est cependant très utile pour accéder à des objets encapsulés provenant de l'extérieur de la machine virtuelle CLR.


C# Le modificateur "static"

Posted on January 29th, 2015

Le modificateur "static" s'applique sur un attribut ou une méthode pour le rendre commun a toutes les instances. n'étant pas lié à une instance en particulier, cet attribut ou méthode doit être invoqué directement à partir du nom de la classe dans laquelle il est défini.

Les méthodes et attributs statiques peuvent être utilisés même s'il n'existe aucune instance de la classe porteuse.

Compte tenu des effets secondaires associés à une telle centralisation, l'usage d'attributs statiques est rarement prescrit.


C# Le mot clé "this"

Posted on January 29th, 2015

Le mot clé "this" fait référence à l'instance d'objet en cours.

  • Il est utilisé en argument de méthode pour passer une référence de l'appelant.
  • Il est aussi souvent utilisé pour désambiguïser un terme utilisé comme attribut d'un autre déclaré localement.

Voir le site de MSDN pour plus de détails.


Stéphane Denis

Contrat Creative Commons
Ces articles produits par Stéphane Denis sur stephanedenis.cc sont mis à disposition selon les termes de la licence Creative Commons Paternité 4.0 International.