Archive pour le ‘.NET’ catégorie

Nouveautés de VS 2010

23 octobre 2009

image Je vous propose de partager un ensemble de ressources à l’occasion de la sortie de la Beta 2 de Visual Studio 2010.

Coté MSDN :
- J’en ai rien à coder 2009 Chapitre 2 : VS 2010

- Détails complets des nouveautés de la Beta 2(MSDN – News de la beta 2):

Du Coté des bloggers, chez Scott Guthrie on retrouve :

- Recherche & Navigation dans le code

- Amélioration de l’intellisense

- Déclinaison des Offres de VS2010 (Express, Professional, Prenium, Ultimate)

Les deux premiers points ne vont pas sans rappeler Resharper qui ne doit pas être étranger à ses améliorations.

Retrouvez toute la série de postes sur VS2010 & .NET 4 :  ici

L’astuce du jour : Thread ou ThreadPool

6 octobre 2009

Aujourd’hui, retour sur une question fondamentale : faut-il utiliser Thread ou ThreadPool ?

Contrairement à ce que la francisation du mot anglais « thread » laisse entendre, la création de threads n’est pas vraiment sans conséquences. Si vous démarrez beaucoup de threads réalisant des tâches simples dont le seul objectif est d’être asynchrones, le coût de la création va significativement nuire à vos performances. ThreadPool résout ce problème en offrant un ensembe de threads déjà initialisés, et qui n’attendent que vos instructions pour démarrer.

Si théorie ne vous suffit pas, n’hésitez pas à consulter l’article de Vko sur le sujet : il y a mesuré la différence de performance entre l’utilisation de Thread et de ThreadPool. C’est édifiant.

L’astuce du jour : LinqPad pour vos requêtes

2 octobre 2009

L’astuce du jour, qui nous vient de Wilfried Woivre (étudiant à l’INSTA – Paris XI), servira à tous les utilisateurs de LINQ qui sont fatigués de devoir utiliser SQL Management Studio pour écrire leurs requêtes SQL.

LinqPad vous permet de lancer vos requêtes sur vos bases directement en LINQ, mais ce n’est pas son seul intérêt. LinqPad supporte entièrement LINQ jusqu’au framework 3.5. A vous les joies de LINQ to Objects, LINQ to XML et Entity Framework !

LinqPad est gratuit et n’a pas besoin d’être installé.

6 nouveautés du Framework .NET 4.0

23 septembre 2009

Logo Microsoft .NetLe framework .NET (qui arrive gentiment sur ses 10 ans) évolue de version en version. La deuxième version a apporté les Génériques, la 3.0 a propulsé LINQ et tout ce qui était nécessaire à son intégration. Quelle surprise nous réserve le Framwork 4.0 ?

Pour répondre à cette question, il faut comprendre les grandes tendances actuelles en matière de développement :

  • Les développeurs  se tournent de plus en plus vers des langages déclaratifs, qui leurs permettent de se concentrer d’avantage sur ce qu’ils doivent faire et pas sur la façon dont ils pourront rendre leur code impératif fonctionnel.
  • Les langages dynamiques tels que Php, Javascript, Ruby… connaissent un succès qui ne se dément pas. La simplicité du développement, le typage implicite et l’absence de compilation y sont pour beaucoup.
  • Paradoxalement, on observe un intérêt sans cesse renouvelé pour les langages statiques. Ils apportent leur lot de robustesse, de performance et d’outils intelligents comme IntelliSense dans Visual Studio, ainsi que, généralement, une meilleure sécurité lors de la montée en charge (le code étant compilé, il est moins évident de passer à côté d’une erreur, même si le projet fait plusieurs millions de lignes).
  • Enfin, un besoin important d’économiser de l’énergie en privilégiant les technologie multicoeurs, et donc de maitriser les problématiques d’accès concurrent et de gestion de ressources démultipliées.

Voici la réponse de Microsoft à ces problématiques.

1. Le Dynamic Language Runtime

C# 4.0 poursuivra le travail de C# 3.0 et continuera à promouvoir l’utilisation de LINQ, afin de rendre le code plus fonctionnel et d’en faciliter la relecture., mais il fournira également de nouvelles fonctionnalités, orientées « programmation dynamique » grâce à la DLR, un socle de création de langages dynamiques implanté en surcouche de la CLR qui donnera accès aussi bien à un Object Binder .NET qu’à des Binder Silverlight, Python ou Ruby…

2. Le typage dynamique des objets

La grosse révolution de C# 4.0 est le typage dynamique d’objets. C# 4.0 introduira un type statique dynamic dont la résolution se fera non pas à la compilation, mais à l’exécution (la compilation générant en fait du script). Une vraie révolution dans le monde du .NET et une annonce très attendue par ceux qui utilisent la réflexion à outrance. L’exemple donnée est assez parlant.

Imaginez que vous ayez une méthode GetCalculator() en provenance d’une usine logicielle, qui renvoie un objet de type Object (mais dont vous savez qu’il s’agit d’un calculateur). Voici ce qu’il fallait écrire avant pour calculer 10+20 :

object calc = GetCalculator();
Type calctype = calc.gettype();
object res = calctype.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] {10, 20});
int sum = convert.ToInt32(res).

Le code n’est pas très intuitif, et cela est principalement dû à la phase d’appel à la procédure par invocation… Voilà ce que cela pourra donner en C# 4.0 :

dynamic calc = GetCalculator();
int sum = calc.add(10,20);

3. Paramètres optionnels et nommés

C# 4.0 introduira la possibilité de définir des paramètres optionnels et nommés (oui, il aura fallu un certain temps diront les détracteurs…). Il ne sera donc plus la peine de développer 8 signatures d’une même méthode pour définir des valeurs par défaut ; autant de temps gagné par les développeurs pour s’interroger sur de vrais problèmes.

4. Améliorations relatives à l’usage de COM

Outre les paramètres optionnels et nommés déjà décrits, qui permettront d’écrire :

var maVariable = comObject.method();

au lieu de :

var maVariable = comObject.method(System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);

C# 4.0 utilisera également ses nouvelles fonctionnalités « dynamiques » pour permettre le mapping automatique des objets (en réalité, il résoudra ce problème à l’exécution).

 

5. Covariance et contra-variance

Lorsque vous instanciez une classe générique avec un type référence B dérivant de A, le transtypage de B vers A des éléments de la liste était impossible. Via une astuce de déclaration de l’interface de la classe générique, cette covariance sera désormais autorisée :

IBoite<cookie> maBoiteACookies = new Boite<cookie>();
IBoite<biscuit> maBoiteABiscuits = maBoiteACookies;

Réciproquement, un second mot clé permettra des opérations de contra-variance (de la classe vers ses dérivées) et on peut dès lors imaginer des scénarios mixtes mélangeant co et contra-variance, comme l’écriture de délégués ayant des paramètres d’entrée et sortie (d’où les mots clés choisis… in et out).

6. Co-évolution des langages

Microsoft s’est engagé à faire évoluer conjointement C# et VB.NET à partir de cette version du Framework. Voilà une grande nouvelle qui devrait réjouir les développeurs VB.NET, jusque-là un peu moins bien traités que leurs camarades C#-istes.

Pour aller plus loin

Si vous désirez aller plus loin dans la compréhension des nouveautés du Framework .NET 4.0, Nexdotnet vous invite à imprimer le poster prévisionnel du Framework .NET 4.0 et à lire les articles suivants :

Free eBook : Mastering PowerShell

6 août 2009

imageLa team Windows PowerShell annonce sur son blog la mise  à disposition gratuite d’un ebook sur power shell. Ce livre écrit par Tobias Weltner (M.V.P. PowerShell  & inventeur de  PowerShell Plus) intitulé  “Mastering PowerShell” est disponible en libre téléchargement.

Pour plus d’information, je vous invite à vous référer aux liens suivants :

- Windows PowerShell Blog

- Mastering PowerShell

Silverlight 3 is out!!!

23 juillet 2009

imageC’est une bonne nouvelle pour les développeurs RIA (Rich Internet  Application), Silverlight est passé en version final il y a quelques jours.
Nous relayons la news avec un peu de retard mais pour le plus grands plaisirs de nos fans :) .

Microsoft Launches Silverlight 3

What’s New in Silverlight 3?