Another .NET Blog

To content | To menu | To search

Visual Studio

Entries feed - Comments feed

Wednesday 10 February 2010

[VS2010] La Release Candidate en téléchargement libre

Comme annoncé plus tôt dans la semaine, la release candidate de VS 2010 est désormais téléchargeable pour tous, à cette adresse.

Bon download et profitez bien de toutes les améliorations de cette version qui sera, je vous le rappelle, la dernière avant la version finale de la fin du mois d'avril!

[VS] Quelques astuces pour le debugger

Voici deux astuces qui je l'espère vous feront gagner du temps lorsque vous aurez à debugger vos applications.

Ne pas s'arrêter dans une propriété / fonction

La première astuce permet de gagner du temps lorsque vous suivez l'exécution d'un programme pas à pas, et que vous ne voulez pas, même en utilisant la commande Step Into (F11) aller dans le corps de propriétés / fonctions qui ne vous intéressent pas. L'exemple le plus flagrant étant les getters des propriétés, surtout quand il n'y a aucune logique dedans.

Par exemple, en utilisant le bout de code suivant:

using System;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Employee emp = new Employee("Mike", 28);

            Console.WriteLine(emp.Name);
            Console.WriteLine(emp.Age);
            Console.ReadKey();
        }

        public class Employee
        {
            private string name;
            private int age;

            public Employee(string name, int age)
            {
                this.name = name;
                this.age = age;
            }

            public string Name
            {
                [DebuggerStepThrough]
                get { return name; }
            }

            public int Age
            {
                get { return age; }
            }
        }
    }
}

Si vous mettez un point d'arrêt à la ligne : Console.WriteLine(emp.Name);, et que vous appuyez sur F11, vous allez directement à la ligne suivante, sans passer par le corps du getter de Name. Si vous ré-appuyez sur F11, vous allez cette fois-ci vous retrouver à la ligne get { return age; }.

Très pratique donc pour éviter de se retrouver dans des fonctions sans-intérêt particulier. A noter également que même si vous mettez un point d'arrêt dans le corps d'une fonction marquée par cet attribut, le debugger ne s'y arrêtera pas.

Affichage personnalisé d'une variable

Voici une petite astuce qui peut se révéler très très pratique lorsque vous êtes en plein session de deboguage dans VS, et qui peut surtout vous faire gagner du temps, dès lors que vous devez inspecter souvent les même valeurs d'une instance d'un type.

Si l'on garde le morceau de code précédent, que l'on garde le point d'arrêt au même endroit, et que l'on passe la souris au dessus de la variable emp, voici ce qu'on obtient:

DebuggerDisplay_Before.png

Le debugger affiche le nom du type de la variable au dessous de laquelle se trouve le curseur de la souris. Si vous voulez accéder aux membres de cette variable, vous devez cliquer sur le petit +.

Si vous êtes intéressés uniquement par quelques membres de cette variable, ou si le type de la variable contient un petit nombre de membres et que vous voulez y avoir accès directement sans cliquer sur le +, voici une astuce qui vous sera certainement utile: il vous suffit d'ajouter un attribut à la déclaration de votre classe, comme suit:

[DebuggerDisplay("Employee : {Name} - {Age}")]
public class Employee
{
    //...
}

Et maintenant, lorsque vous passez la souris au dessus de la variable emp, comme précédemment, voici ce que vous deviez obtenir:

DebuggerDisplay_After.png

Il est bon également de savoir que cette astuce fonctionne également avec les classes dérivant de Employee. Si l'attribut DebuggerDisplay n'est pas ajouté aux classes dérivées, c'est l'affichage personnalisé de Employee qui sera utilisé. Mais si vous définissez cet attribut pour les classes dérivées de Employee, vous pourrez bien sûr faire référence aux propriétés de la classe Employee dans le constructeur de l'attribut:

[DebuggerDisplay("Boss : {Department} - {Name} - {Age}")]
public class Boss : Employee
{
    private readonly string department;

    public Boss(string department, string name, int age) : base(name, age)
    {
        this.department = department;
    }

    public string Department
    {
        [DebuggerStepThrough]
        get { return department; }
    }
}

En espérant que cela vous évitera quelques prises de tête lors de vos séances de debugging futures ;)

Tuesday 9 February 2010

VS2010 RC

Bonne nouvelle!

On apprend sur le blog de Jason Zander qu'il est possible depuis ce matin pour les abonnés MSDN et TechNet de télécharger la toute dernière version de Visual Studio 2010. Ce téléchargement sera disponible pour le commun des mortels dès demain.

Au menu, bien évidemment des améliorations des performances de l'IDE, qui étaient assez décriées:

In particular many of you pointed out areas of performance where we were not at parity with VS2008 and it was impacting your ability to adopt the product. Some of those areas of feedback included general UI responsiveness (including painting, menus, remote desktop and VMs), editing (typing, scrolling, and Intelisense), designers (Silverlight and WPF in particular), improved memory usage, debugging (stepping, managed / native interop), build times, and solution/project load.

A demain donc :)

Monday 11 January 2010

Visual Studio 2010: "The application cannot start"

Surprise!

Je lance Visual Studio 2010, et alors que tout fonctionnait parfaitement bien vendredi dernier, aujourd'hui monsieur me fait un caprice et ne veut plus s'ouvrir, et me donne un message d'erreur assez laconique: "The application cannot start"

Après une petite recherche sur le web, il s'avère que cette erreur peut être due à un fichier de préférences corrompu, ou bien à une tentative d'import de police non TrueType créée avec une version de VS inférieure. Comme je n'ai jamais approché de près ou de loin ce deuxième point, je me suis donc douté que ça devait bien être le fichier des préférences (Elémentaire mon cher watson).

La solution proposée, qui a très bien fonctionné pour moi: lancer VS via la ligne de commande en utilisant le flag resetuserdata:

devenv /resetuserdata

Pour info, l'exécutable de VS2010 se trouve dans ce dossier : ''C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE''

Bien évidemment, attendez vous à perdre toutes vos customisations. Pensez donc à les sauvegarder en copiant le fichier CurrentSettings.vssettings qui se trouve ici : “%USERPROFILE%\Documents\Visual Studio 2010\Settings !

Saturday 9 January 2010

VS2010: Nouvelle page de résumé pour le profiler

Vu sur le blog de l'équipe en charge du développement du profiler pour VS2010, les nouveautés concernant la page de résumé du profiling d'une application. A lire ici.

A lire également ici, une sorte d'introduction à comment lancer une séance de profiling grâce au raccourci clavier ALT+F2

Et pour finir, leur tout dernier article explique comment lancer une session de profiling sur une série de tests unitaires.

Bonne lecture!

Tuesday 5 January 2010

VS2010 / xUnit / Resharper : enfin, ça marche!

Bonne nouvelle!

Cela faisait un moment que je tentais désespérément de lancer des tests unitaires sous VS2010 avec xUnit et Resharper 5, sans succès, comme vous vous en doutez. La seule solution avait été de recompiler le GUI de xUnit en .NET 4 et de l'utiliser pour les tests. Ce que je ne trouve pas très pratique, dans la mesure où ça oblige à jongler entre plusieurs applications. C'est toujours plus simple de rester dans son environnement de travail.

Eh bien c'est désormais possible. C'est extrêmement simple, en voici la procédure:

  1. Télécharger et installer la nouvelle version de Resharper 5.0, qui est désormais en Beta.
  2. Télécharger la dernière version de xUnit Contrib
  3. Installer xUnitContrib

Une fois ces 3 étapes faites, lancez VS2010 et ô surprise:

Preview_xUnit_R__VS2010.png

En voilà une bonne nouvelle pour une rentrée de Vacances :)

Wednesday 11 June 2008

Création de templates personnalisés dans VS2008

Ca faisait quelques jours que je me promettais de chercher sur la toile comment créer avec Visual Studio 2008 des templates de projets ou de fichiers, toujours bien pratiques lorsqu'on utilise souvent le même type de fichiers (comme les nombreux projets à créer pour [Euler Project] par exemple)

Coup de bol, je n'ai même pas à chercher, la [réponse] est venue d'elle-même dans mes feeds RSS.

Profitez-en au passage pour bookmarker ce nouveau [site], qui propose des vidéos d'apprentissage très bien foutues.

Have fun!

Thursday 22 May 2008

Ajouter le mot-clé public aux classes créées par défaut par VS2008

Par défaut, Visual Studio 2008 crée les classes sans le mot-clé public.

Voici une manière très simple de modifier ce comportement par défaut.

Continue reading...