septembre
2007
L’attribut InternalsVisibleTo permet à un assembly A1 de voir les éléments internal d’un autre assembly A2. Cela fonctionnait très bien avec C# 2.0 mais pas avec VB .NET 2005. Comme l’explique Bart de Smeth, VB9 gère cette notion. Attention tout de même à l’utilisation de cet attribut. C’est très pratique (notamment pour faire des tests unitaires) mais c’est aussi souvent révélateur d’une architecture mal pensée.
août
2007
Bart de Smet a commencé sa présentation des nouveautés VB9. Pour l’instant, il a traité les implicitly typed local variables les extension methods les object initializers les anonymous types les lambda expressions La suite en commentaire…
août
2007
L’Entity Framework Beta 2 est disponible ici. Le post de l’ADO .NET team blog précise la liste des nouveautés. Cette sortie coïncide avec la sortie de Entity Framework Tools CTP 1. Vous trouverez également des démos sur codeplex. Mike Taulty a réalisé une série de posts sur cette version ainsi qu’un webcast.
août
2007
Après avoir traité plusieurs nouveautés VB9, Bart de Smeth s’attaque maintenant à quelque chose de moins évident mais fondamental pour comprendre LINQ : les expression trees. Pour info, Bart de Smeth avait déjà publié un article sur le sujet (orienté C#).
août
2007
Scott Guthrie vient de poster son 7ème post sur sa série de post consacrée à l’utilisation de LINQ To SQL avec Visual Studio 2008.
août
2007
Comme l’explique Bart de Smet, en VB9, l’option Infer permet d’activer / désactiver l’utilisation des implicitly typed local variables. Par défaut, celle-ci sera activée.
août
2007
Dans le cas d’une méthode (non statique) qui renvoit this, l’IL fait un pop même s’il a besoin de l’instance juste derrière : private static void Main(string[] args) { StringBuilder sb = new StringBuilder(); sb.Append("azerty"); Console.WriteLine(sb); } donne l’IL suivant : .method private hidebysig static void Main(string[] args) cil managed { .entrypoint .maxstack 2 .locals init ( [0] class [mscorlib]System.Text.StringBuilder sb) […]
août
2007
Quand une méthode est définie internal protected, c’est un OU qui est fait (idem pour protected internal). Par conséquent, cette méthode sera utilisable depuis une classe fille ou une classe de l’assembly. En C#, il n’y a pas de internal ET protected. Pourtant, cette possibilité existe au niveau de l’IL. En effet, quand on crée une méthode à la volée via MethodBuilder, on peut définir la méthode Private, FamANDAssem, Assembly (internal), Family (protected), FamORAssem ou […]
août
2007
Je me suis aperçu que cette notion était très peu connue. Du coup je fait un post dessus. Dans le cas où une méthode est marquée virtual ou abstract elle pouura être surcharger dans les classes dérivées. Dans certains cas rares, on souhaite surcharger la méthode et empêcher les classes dérivées de surcharger cette surcharge. Pour cela, il suffit d’utiliser le mot clé sealed conjugué avec override (override sealed ou sealed override) : class CBase […]
août
2007
Scott Guthrie nous propose ici une belle illustration du gain apporté par Visual Studio 2008 et le framework 3.5 à travers la personnalisation d’un ListView.