Articles Taggés ‘Framework’

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 :

Code 7 : concours d'applications Windows 7

28 août 2009

code7contestCode 7 est un concours organisé par Microsoft, visant à démontrer les possibilités offertes par le nouveau système d’exploitation de la firme, les applications soumises proposant chacune une vidéo explicative qui vaut le détour.

Pour pouvoir participer, vous devez téléchargez Visual Studio et le SDK Windows 7, développer votre application et la soumettre sur Code 7. Il devra s’agir d’une application originale, orientée utilisateur, qui s’inscrit dans une de ces catégories :

  • Vie quotidienne
  • Gestion des médis
  • Jeu
  • Travail & Mobilité
  • Protéger votre travail
  • Améliorer demain

Et qui utilise au moins l’une de ces fonctionnalités, même si vous êtes fortement encouragés à en utiliser plusieurs :

  • Windows 7 « Libraries »
  • Windows Touch
  • Shell Integration
  • DX11 (DirectX 11)
  • Sensor and Location Platform

Quelques applications ont déjà été proposées, comme WPF Explorer d’Imlex (une application WPF supplantant l’explorateur et permettant une navigation par onglets), ou LibraQuick d’Idanz (une application permettant d’ajouter rapidement des fichiers aux « Librarie » Windows 7) mais ma préférence va pour l’instant à BLUntrl de Sonic, une application utilisant la plateforme de détecteurs et capteurs Windows 7 pour tirer parti d’une webcam branchée sur le système afin d’adapter en temps réel la luminosité des écrans à l’éclairage ambiant.

Voilà une bonne idée, qui va à coup sûr réduire la facture énergétique et la fatigue oculaire des informaticiens du monde entier !

J'en ai rien à coder ! Edition 2009

23 juillet 2009

rienacoderComme chaque année, Microsoft propose son programme de tutoriels et de mises à niveau pour les développeurs qui n’auraient pas suivi l’actualité…

Les premiers chapîtres sont déjà revenus sur le Framework 4.0, Visual Studio 2010, l’intéropérabilité et… Silverlight 3.0 !

Nous attendons avec impatience de voir ce que nous réservent les prochaines semaines.

Astuce du jour : des posters pour redécorer votre bureau

30 avril 2009

.Net 3.5 Framework PosterSi vous avez un mur de libre et que vous ne savez pas comment le décorer, voici quelques propositions made in NexDotNet…

Si vous en connaissez d’autres, n’hésitez pas à nous en parler, nous serons ravis de les ajouter à la liste !