jobs
about

Toutes les ressources pour développer sur Windows 10

Microsoft nous met à disposition un ensemble d’outils, de guides, de cours en ligne ; Une panoplie complète pour concevoir une application Universal Windows Platform (UWP)

L’outil pour développer :

visual studio

Les guides pour le Design :

Design-Universal-Design-Basics_InvariantCulture_Default

Des émissions sur Channel9 :

channel9

Des cours en ligne :

mva

0  
help

Filtres d’Exceptions et code asynchrone dans les catch

Avec l’arrivée de Visual Studio 2015, on va enfin pouvoir se mettre au C#6 du Framework 4.6. La gestion des exceptions Try … catch … finally s’enrichi avec la possibilité de filtrer les exceptions. C’est nouveau en C# mais ça existe en VB.NET.
Voici ce qu’on peut faire en VB.NET :

Try
    ' notre bloc de code ici
Catch ex As Exception When Err.Number = 5
    ' gestion de l'erreur 5
End Try

catch …. if …

Et bien plus de jaloux, on peut faire de même en C# :

try
{
    // notre bloc de code ici
}
catch(Exception ex) if (ex.HResult == 0x80070035)
{
    // gestion du pb de chemin
}

Auparavant dans le catch(Exception ex), il suffisait de mettre un bloc de if … else if … else et cela remplissait quasiment le même rôle.

code asynchrone dans les catch

Finalement ça pouvait être naturel de faire ça auparavant mais c’est possible que maintenant :

try
{
    // notre bloc de code ici
}
catch
{
    await asyncMethodCool();
}
finally
{
    await asyncMethodSupraCool(xxx);
}

Avant il aurait fallu ruser en utilisant par exemple une variable et après le finally tester la variable et appeler notre méthode asynchrone. Mais ça, c’était avant.

trademarks
0  
guidelines

nameof() du C#6

Parmis les nouveautés qui arrivent avec C#6 du Framework 4.6, voici nameof()

nameof()

Cette expression est utilisée pour retourner le nom d’une variable. Ca va pouvoir être bien utile dans notre système de log d’erreurs par exemple !

var mystring = "maison";
Console.WriteLine (nameof(mystring));

//retournera : mystring

On va aussi éviter de passer en dur certaines chaines de caractères :

avant C#6

private bool _checking;
public bool Checking
{
    get {  return this._checking; }
    set
    {
        this._checking = value;
        this.OnPropertyChanged("Checking");
    }
}

Dès C#6

private bool _checking;
public bool Checking
{
    get {  return this._checking; }
    set
    {
        this._checking = value;
        this.OnPropertyChanged(nameof(Checking));
    }
}
0  
about

Essayer C# 6 avec TryRoslyn

Je viens de découvrir TryRosyln ! Microsoft “Roslyn” est un nouveau compilateur C# et VB open source de la plateforme .NET (cela introduit ce que l’on appellera « Compiler-as-a-service »). Roslyn est aussi un petit village de 900 habitants à 1h30 de Redmond où est née la tata du gars qui a eu l’idée #joke.

Testons TryRoslyn avec quelques nouveautés qui arrivent avec C#6 du Framework 4.6

http://tryroslyn.azurewebsites.net/

try roslyn

Je trouve cet outil fantastique qui permet de voir en vis-à-vis le code décompilé. En C# ou VB.NET .

1  
help

initiation aux Extensions pour Visual Studio

Ce tutoriel est juste une petite approche pour créer vos propres extensions pour Visual Studio. Inutile de vouloir en mettre plein la vue pour au final embrouiller tout le monde. J’utilise encore pour quelques semaines en production la version Visual Studio 2013 #bientôt2015.

Dans une premier temps il vous faut installer le Visual Studio 2013 SDK ainsi vous pourrez créer une extension « Visual Studio Package » :

Visual Studio Package
Un assistant de 7 étapes s’ouvrira automatiquement vous demandant par exemple dans quel langage souhaitez vous développer votre extensions (C++, C# ou VB)  . Juste, à l’étape 3/7 je vous invite à sélectionner au moins un des choix proposé. ainsi le SDK vous mâchera bien le travail en créant plusieurs fichier nécessaire pour bien démarrer avec votre première extension:

Visual Studio Package Wizard

Comment se présente notre solution

explorateur de solution du vspackage

Et bien à ce stade, sans avoir rien fait, vous pouvez déjà tester votre extension ! Visual Studio va lancer une « instance expérimentale » et vous retrouverez dans le menu Tools votre première Extension ! Enjoy!!

instance experimental de visual studio

Au revoir et à bientôt 🙂 !

 

le fichier VSCT

Si on regarde de plus près ce fichier .VSCT , on observe une arborescence XML contenant des MENUS, GROUPS (visuellement séparé par deux lignes) et les BUTTONS (auquel sera associé les BITMAP)

Une guid est nécessaire pour toutes commandes qui sera ajouté dans Visual Studio, c’est dans le fichier Guids.cs que vous trouverez le guid qui y est déclaré et utilisé dans ce VSCT.

guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600">

De plus vous remarquerez un champ id qui est codifié IDM_VS_MENU_TOOLS, ici il stipule que notre extension se trouvera dans le menu TOOLS .

MSDN liste l’ensemble de ces variables : GUIDs and IDs of Visual Studio Menus

Enfin le paramètre priority qui détermine la position du GROUP dans le MENU, exemple 0x000 placera votre groupe au début du menu, 0x100 en seconde position etc…

 La partie code

Si vous ouvrez maintenant le fichier *Package.cs vous trouverez dans la méthode d’initialisation la partie qui crée la commande de votre bouton et la méthode MenuItemCallback dans laquelle vous retrouverez le code qui affiche votre jolie MessageBox !

Et voilà, Visual Studio est à vous !

Par exemple afficher un message dans la fenêtre de sortie :

var dte = (DTE2)GetService(typeof(DTE));
var outputWindow = dte.ToolWindows.OutputWindow;

var outputWindowPane = outputWindow.OutputWindowPanes.Add("-------------------");
outputWindowPane.OutputString("Hello word");

 

et personnellement, une chose qui me gonflait à la création d’un nouveau projet est la création des dossiers : J’ai donc fait ma propre extension en 5 min ! Voici à quoi elle me sert :

Create My Folders

Et vous pouvez la retrouver ici : Extension CreateMyFolders pour Visual Studio

Alors faites vous plaisir, faites nous plaisir !

trademarks
0  
guidelines
about