Archive

Archives pour la catégorie ‘.NET’

NDepend 6 est arrivé!

Ndepend6@Hello!

NDepend 6 est arrivé!

La version 6 d’un des puissants outils d’analyse de code a été releasé il y a maintenant quelques jours.

Bref, je prépare des démos que je me ferrai plaisir de publier sur ce blog pour le bonheur des lecteurs.

La version 6 de NDepend apporte quelques nouveautés: Lire la suite…

462 total views, 1 views today

Categories: .NET, Add-in / Tool Tags:

Les Contrats de Code (Code Contacts): Dernières release

NDependHello!

 

En Aout et Septembre dernier, l’équipe responsable du projet “Code Contracts” a publié des release majeures:

 

 

  • La release d’Août apporte des améliorations majeures:
    • Possibilité d’utiliser Contract.Result<T>()  au lieu de Contract.Result<Task<T>>().Result
    • Support pour VS 2013
    • Mise à jour de cccheck
  • La realease de Septembre fixe une panoplie d’anomalies de cccheck.

Pour en connaitre d’avantage, visiter le site dédié au projet ici: Code Contracts Project

Vous pouvez télécharger Code Contract ici: Code COntracts for .NET

494 total views, no views today

Categories: C#, Performance, Qualité Tags:

Sources du sprint sur ASP.NET MVC 4 disponibles!

Certains d’entre vous l’on souhaité.

Les sources de l’application sont disponibles ici.

546 total views, no views today

Categories: ASP.NET MVC Tags:

ASP.NET MVC 4 [Septième partie] : Conclusion

Vue2

  1. ASP.NET MVC 4 [Première partie]   : Introduction
  2. .NET MVC 4 [Deuxième partie]  : Ajout d’un model
  3. ASP.NET MVC 4 [Troisième partie]  : Ajout d’un contrôleur
  4. ASP.NET MVC 4 [Quatrième partie] : Ajout d’une vue
  5. ASP.NET MVC 4 [Cinquième partie] : Page Inspector
  6. ASP.NET MVC 4 [Sixième partie]      : Razor ou ASPX
  7. ASP.NET MVC 4 [Septième partie]   : Conclusion
    Nous arrivons à la fin de notre sprint sur ASP.NET MVC 4. Dans notre périple, j’ai abordé les thèmes tels :
    • Modèle
    • Vue
    • Contrôleur
    • Moteur de rendu
    • Inspecteur de page
    • RAZOR ou ASPX

    De nos jours il est plus simple de développer et déployer une application ASP.NET MVC 4.

En ce qui concerne le moteur de rendu RAZOR, ce dernier offre de meilleurs options pour les développeurs. Le codage est plus rapide, expressif et très simple. Sa syntaxe est assez compact et rend la lisibilité globale du balisage et du code plus fluide.

Dans un futur, je consacrerai une série de billets exclusivement sur le moteur “RAZOR”.

828 total views, no views today

Présentation « Les contrats de code »

La première partie de ma présentation sur les “Contrats de code” est disponible sur SlideShare à cette adresse ici.

 

Be connected!

652 total views, no views today

Categories: C#, Performance, Qualité Tags:

Utiliser la « CIA » lorsqu’on cible une version plus ancienne du Framework

Dans ce billet, nous verrons comment utiliser les attributs d’informations de l’appelant (Caller Info Attributes – CIA ) lorsqu’on cible une version plus ancienne du Framework.

Dans le billet précédent, j’ai parlé des attributs d’informations de l’appelant  comme l’une des nouveautés de C# 5 et disponible sous le Framework 4.5.

À supposer que l’on souhaite cibler une version du Framework plus ancien (Par exemple 4), les attributs d’informations de l’appelant ne sont disponibles que dans la version 4.5, que faire? Y a t-il une astuce qui permettrait l’utilisation des attributs d’informations de l’appelant si l’on cible une version ancienne du Framework? Et bien, oui!

Si on définit nos propres attributs et qu’on les placent dans l’espace de noms où le compilateur s’attend à les trouver, on ferra croire au compilateur que nos attributs sont bien présents.

 

Démo :

  • Ajoutons un nouveau projet dans la solution “CallerInformation"

 

 

  • Affichons les propriétés de notre projet et modifions la cible du Framework (Dans notre cas la version 4)

 

  • Ajoutons notre classe d’attributs :
 
namespace System.Runtime.CompilerServices
{
    class CallerInfoAttributes
    {
        //CallerMemberNameAttribute
        [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
        public sealed class CallerMemberNameAttribute : Attribute
        {
        }

        // CallerFilePathAttribute
        [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
        public sealed class CallerFilePathAttribute : Attribute
        {
        }

        // CallerLineNumberAttribute
        [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
        public sealed class CallerLineNumberAttribute : Attribute
        {
        }
    }
}

 

Après compilation et exécution, l’on s’aperçoit que nos attributs ont été pris en compte par le compilateur.

Cette fonctionnalité peut être utilisée pour cibler les versions 2.0, 3.0, 3.5 et 4 du Framework, bien évidemment sous Visual Studio 2012.

N.B. : Le compilateur vérifie uniquement que les trois types d’attributs existent, peu importe la DLL dans laquelle ils se trouvent.

 

Be connected!

669 total views, 1 views today

Categories: C# Tags:

C# 5 : Les attributs d’informations de l’appelant (Caller Info attributes)

L’une des nouvelles fonctionnalité de C# 5 sont les attributs d’informations de l’appelant.

Ces attributs sont en fait trois attributs (CallerMemberName, CallerFilePath, CallerLineNumber) des trois classes(CallerMemberNameAttribute, CallerFilePathAttribute,  CallerLineNumberAttribute) que l’on peut utiliser dans les arguments des méthodes, afin d’obtenir plus d’informations sur l’élément appelant. Avec ces trois attributs, l’on peut ainsi récupérer le nom du fichier source qui a appelé, le numéro de ligne dans ce fichier et le nom de l’élément appelant.

Petit résumé :

  • CallerMemberName: Retourne le nom du fichier code source de l’appelant.
  • CallerFilePath: Retourne le numéro de ligne du fichier code de l’appelant.
  • CallerLineNumber: Retourne le nom de l’élément appelant.

Avant d’entre dans le vif du sujet pour une démonstration, il est important de comprendre le fonctionnement des paramètres optionnels.

Paramètres optionnels

Les paramètres optionnels ont vu le jour avec la sortie de C# 4.

Chaque paramètre optionnel est associé à une valeur par défaut dans le cadre de sa définition. Si aucun argument n’est envoyé pour ce paramètre, la valeur par défaut est utilisée.

La bonne utilisation des paramètres optionnels, réduit de façon significative l’usage des surcharges des méthodes.

Exemple de surcharge de méthodes :

 
public void  Display(string nom, int age,string pays)
{
    Console.WriteLine("Nom : " + nom);
    Console.WriteLine("Âge : " + age);
    Console.WriteLine("Pays : " + pays);
}

public void Display(string nom, string prenom, int age, string sexe)
{
    Console.WriteLine("Nom : " + nom);
    Console.WriteLine("Prénom : " + prenom);
    Console.WriteLine("Âge : " + age);
}

Depuis la sortie de C# 4, se serait un gâchis de coder de cette façon. Le code ci-dessus deviendrai :

 
public void Display(string nom, string prenom, string age, string sexe = "Masculin", string pays = "Canada")
{
    Console.WriteLine("============================================================");
    Console.WriteLine("Les attributs optionnels");
    Console.WriteLine("============================================================");
    Console.WriteLine("Nom : " + nom);
    Console.WriteLine("Prénom : " + prenom);
    Console.WriteLine("Âge : " + age);
    Console.WriteLine("Sexe : " + sexe);
    Console.WriteLine("Pays : " + pays);
}

 

Exécutons notre classe :

 
public class Program
{
   static void Main(string[] args)
   {
      new ParametresOptionnels().Display("K", "Nestor Aimé", 15, "Masculin" );
   }
}

 

Résultat :

Dans cet exemple, l’on constate que l’un des paramètres optionnels (pays) a pris la valeur par défaut (“Canada”).

 

Les attributs d’informations de l’appelant (Caller Info Attributes)

Comme mentionné au début de ce billet, avec C# 5, nous pouvons désormais utiliser certains attributs (CallerMemberName, CallerFilePath, CallerLineNumber) pour obtenir de l’information sur l’appelant. Ces trois attributs peuvent s’avérer très efficace lors du développement des solutions de logs et de diagnostiques. Ces attributs sont définis dans l’espace de nom System.Runtime.CompilerServices.

Démo :

 
public class CallerInfoAttributes
{
   public void Display(string nom, string prenom, int age, string sexe = "Masculin", string nationalite = "Canadien",
  [CallerMemberName] string appelant = "",
  [CallerFilePath] string fichier = "",
  [CallerLineNumber] int noLigne = 0)
  {
      Console.WriteLine("============================================================");
      Console.WriteLine("Les attributs d'informations de l'appelant");
      Console.WriteLine("============================================================");
      Console.WriteLine("Bonjour " + prenom + " " + nom + ", vous avez " + age + " ans " + " et êtes de nationalité " + nationalite);
      Console.WriteLine("Cette méthode est appelée dans la méthode: " + appelant + ", du fichier " + fichier + ", à la ligne " + noLigne);
  }
}

static void Main(string[] args)
{
   new ParametresOptionnels().Display("K", "Nestor Aimé", 15, "Masculin");
   new CallerInfoAttributes().Display("K", "Nestor Aimé", 15, "Masculin");
}

 

Résultat :

 

N’est ce pas merveilleux!

Quelques détails de la démo:

CallerMemberName : permet de récupérer le nom du membre ayant appelé la méthode Display. Ici l’« élément » est une méthode (Dans certains cas l’élément peut -être une propriété, un constructeur ou encore un destructeur).

CallerFilePath : permet de récupérer le nom du fichier code source d’où provient l’appel (Main).

CallerLineNumber : permet de récupérer la ligne du fichier code source d’où provient l’appel (14).

Bon à savoir : L’attribut CallerMemberName  implémente l’interface INotifyPropertyChanged.

 

Be connected!

1,360 total views, no views today

Categories: C# Tags: ,

Évolution du langage C#

Depuis la sortie de sa version 1 en 2001, le langage C# n’a cessé d’évoluer, en apportant à chaque version un lot de nouveautés. Avec la sortie de Visual Studio 2012, C# 5 a vu le jour.

Il m’a donc semblé utile d’écrire un billet qui résume l’évolution de ce langage tant prisé par les développeurs.

Le diagramme ci-dessous présente l’évolution du langage C#, depuis la sortie de la version 1 jusqu’à la toute récente : C# 5.

Encore bravo à toute l’équipe C# de Microsoft!

Be connected!

956 total views, no views today

Categories: C# Tags: ,

ASP.NET MVC 4 : Quelques nouveautés du moteur de rendu Razor

Vue2

 

Avec la sortie de Visual Studio 2012, voici quelques nouveautés du moteur de rendu RAZOR (version 2) :

 

 

1. Résolution automatique des URLs relatives

Lors de la sortie de ASP.NET MVC 3, l’on devait se servir de la méthode Content de la classe UrlHelper si l’on souhaitait convertir le chemin d’accès virtuel (relatif) en chemin d’accès absolu. Dans la version 2 de RAZOR, plus besoin de cette méthode.

Version RAZOR 1

 

Lire la suite…

1,264 total views, 1 views today

Categories: ASP.NET MVC, VS2012 Tags:

ASP.NET MVC 4 [Sixième partie] : Razor ou ASPX

Vue2

  1. ASP.NET MVC 4 [Première partie]   : Introduction
  2. .NET MVC 4 [Deuxième partie]  : Ajout d’un model
  3. ASP.NET MVC 4 [Troisième partie]  : Ajout d’un contrôleur
  4. ASP.NET MVC 4 [Quatrième partie] : Ajout d’une vue
  5. ASP.NET MVC 4 [Cinquième partie] : Page Inspector
  6. ASP.NET MVC 4 [Sixième partie]      : Razor ou ASPX
  7. ASP.NET MVC 4 [Septième partie]   : Conclusion

Dans cette partie nous aborderons le thème “Razor ou ASPX”.

Je ne m’attarderai pas sur ce thème, cette partie sera brève.

Razor et ASPX sont des moteurs de rendu (template).

Lire la suite…

3,366 total views, 2 views today

ASP.NET MVC 4 [Cinquième partie] : L’inspecteur de page

Vue2

  1. ASP.NET MVC 4 [Première partie]   : Introduction
  2. .NET MVC 4 [Deuxième partie]  : Ajout d’un model
  3. ASP.NET MVC 4 [Troisième partie]  : Ajout d’un contrôleur
  4. ASP.NET MVC 4 [Quatrième partie] : Ajout d’une vue
  5. ASP.NET MVC 4 [Cinquième partie] : Page Inspector
  6. ASP.NET MVC 4 [Sixième partie]      : Razor ou ASPX
  7. ASP.NET MVC 4 [Septième partie]   : Conclusion

Dans cette partie nous parlerons de l’inspecteur de page.

L’inspecteur de page  est l’une des nouvelles fonctionnalités de Visual Studio 2012, qui   affiche une page Web directement dans l’IDE de Visual Studio.

Il permet de modifier des propriétés CSS et des attributs des éléments DOM et de consulter les modifications répercutées immédiatement dans le navigateur intégré. Les modifications faites ne sont pas persistantes et les fichiers sources d’origine ne sont pas affectés.

Lorsque vous choisissez un élément rendu, l’inspecteur de page ouvre le fichier dans lequel le balisage a été généré et met en surbrillance la source.

Lire la suite…

977 total views, 2 views today

ASP.NET MVC 4 [Quatrième partie] : Ajout d’une vue

Vue2

  1. ASP.NET MVC 4 [Première partie]   : Introduction
  2. ASP.NET MVC 4 [Deuxième partie]  : Ajout d’un model
  3. ASP.NET MVC 4 [Troisième partie]  : Ajout d’un contrôleur
  4. ASP.NET MVC 4 [Quatrième partie] : Ajout d’une vue
  5. ASP.NET MVC 4 [Cinquième partie] : Page Inspector
  6. ASP.NET MVC 4 [Sixième partie]      : Razor ou ASPX
  7. ASP.NET MVC 4 [Septième partie]   : Conclusion

Petit rappel, La vue : affiche le contenu envoyé par le contrôleur dans un fureteur (navigateur). Utilisé par l’application pour générer dynamiquement des réponses HTML.

Modification du fichier _Layout.cshtml

Nous allons modifier le contenu du fichier _Layout.cshtml qui se trouve dans le dossier “Views/Shared”.

 

Lire la suite…

1,665 total views, 1 views today

ASP.NET MVC 4 [Troisième partie] : Ajout d’un contrôleur

ASP NET MVC4

  1. ASP.NET MVC 4 [Première partie]   : Introduction
  2. ASP.NET MVC 4 [Deuxième partie]  : Ajout d’un model
  3. ASP.NET MVC 4 [Troisième partie]  : Ajout d’un contrôleur
  4. ASP.NET MVC 4 [Quatrième partie] : Ajout d’une vue
  5. ASP.NET MVC 4 [Cinquième partie] : Page Inspector
  6. ASP.NET MVC 4 [Sixième partie]      : Razor ou ASPX
  7. ASP.NET MVC 4 [Septième partie]   : Conclusion

Petit rappel, Le contrôleur : interprète les actions à réaliser et ordonne l’exécution de celles-ci; c’est le pilote de l’application.

Dans cette partie, nous ajouterons un contrôleur à notre application.

Lire la suite…

1,715 total views, 1 views today

Windows Phone 8 annoncé

WP 8

Windows Phone est annoncé. Terry Myerson et son équipe ont montré les premiers éléments de WP 8 et de la plateforme SDK lors du Windows Phone Summit  tenu à San Francisco.

Vous retrouverez la keynote et d’autres vidéos sur Channel 9 ici.

Pour en savoir plus visitez le le blog WP.

544 total views, no views today

Categories: Windows Phone Tags:

ASP.NET MVC 4 [Seconde partie] : Ajout d’un model

ASP NET MVC4

  1. ASP.NET MVC 4 [Première partie]   : Introduction
  2. ASP.NET MVC 4 [Deuxième partie]  : Ajout d’un model
  3. ASP.NET MVC 4 [Troisième partie]  : Ajout d’un contrôleur
  4. ASP.NET MVC 4 [Quatrième partie] : Ajout d’une vue
  5. ASP.NET MVC 4 [Cinquième partie] : Page Inspector
  6. ASP.NET MVC 4 [Sixième partie]      : Razor ou ASPX
  7. ASP.NET MVC 4 [Septième partie]   : Conclusion

Dans cette partie, nous ajouterons un fichier Model dans notre projet GCS MVC.

Dans un projet MVC, le modèle décrit les données manipulées par l’application. Il assure la gestion et garantit leur intégrité de ces données. En gros le modèle représente tout le comportement de l’application : le traitements des données, les interactions avec la base de données,…

Dans le cas d’une base de donnée, le modèle offre des méthodes pour manipuler les données : insertion, suppression, modification, récupération.

Passons aux choses sérieuses Sourire

Lire la suite…

1,592 total views, no views today