PDC : la CLR4 dévoilée

Eric et moi même avons assisté à une session super sympa sur la CLR4, en voici le compte rendu... ne vous inquitez pas nous en reparlerons au TechDays prochain (Février 09)

 

Le CLR 4.0 est une release majeure depuis la version 2.0 en effet, jugez plutôt les nouveautés :

 

- In process Side by Side: On va pouvoir avoir 2 versions du CLR chargées dans le même process.

On garanti ainsi une meilleurs compatibilité ascendante.

- Il existe de nouvelle api de hosting, pour une meilleur intégration, on en reparle bientot sur MSDN.

 

-La technologie NoPIA arrive. C'est quoi ?

Lorsqu'on utilise par exemple VSTO pour développer un Add-In Excel, lors du déploiement, nous embarquons les xMega octets de chaque PIA (Primary interop Assembly).

Désormais, les appels et uniquement les appels fait dans votre addin, seront directement incorporer dans l'assembly.

 

-P/Invoke: En tant que développeurs C++, j'utilise C++/CLI pour réutiliser mon code C++ avec .NET c'est toujours le choix du roi.

Mais en tant que développeur C#, j'utilise plutôt P/Invoke. Désormais avec le CLR 4.0, il existe un outil qui lit Windows.h et SAL.H, pour générer automatiquement les Wrappers correspondant.

 

-Pour permettre une meilleur interactivité des langages classiques tels que C# et VB avec l'intégration, dans le FX 4.0 de langage tel que F#, IronPython et autre, l'ajout dans le CLR de type propre a ces derniers langages a été nécessaire, tels que : Les BigIntegers, les tupples, et autre Tail Recursion.

 

-Amélioration du Garbage collector en situation de concurrence forte (ce qui nous semble inévitable, surtout avec l'arrivée de librairie comme PFX)

 Avec le garbage collecteur sur serveur (différent de celui d'une station de travail), ont peut être notifié et donc avoir des actions, lorsqu'une génération de niveau 2 aura lieu. (on peut alors éviter des collections consommatrice de ressources, surtout sur un serveur).

Avec le GC station de travail, ont a désormais des collections en arrières plan, ce qui évite tout gèle intempestif du thread qui est en cours de travail.

 

 

- Profiling. Ont pourra attacher simplement un profiler sur un serveur, sans être obligé d'avoir Visual Studio d'installé.

 

-Ajout des Corruptions state exceptions

-Debugging, pour ceux qui souhaite allez plus loin dans le debug, et dumper la mémoire facilement dans son application .NET lors d'un crash, le support de ICorDebug en .NET a été ajouté.

-Enfin on pourra débugger en Mode Mixte (Debug Natif et .NET dans la même session) sur du Windows 64 Bits.

-Ajout d'API qui permettront de faire de l'introspection de vérroux (utile pour le code parallèle)

-CodeContract.

Va pour permettre d'informer le compilateur de vos intentions, et donc d'ajouter de la robustesse à vos APIs.

Par exemple, vous pourrez indiquer au compilateur votre intention que, tel appel de méthode doit être impérativement tester en retour que tel paramètre doit avoir comme condition non null, ou vrai, ou doit forcement etre initialisé etc...

Si tel n'est pas le cas, le compilateur vous en informera avec un warning, voir une erreur. Pour les développeurs C++, cela me semble ressemblé un peu à SAL.

 

Eric & Eric