J'ai entendu l'affirmation précédente que .Net 3.5 n'a apporté aucune modification à l'IL qu'il compile. En réfléchissant à toutes les fonctionnalités du compilateur que je connais ont été introduites, il semble, en fait, qu'ils pourraient tous être mis en œuvre dans la même ancienne IL, mais je ne peux pas trouver une source officielle pour corroborer cette affirmation. Est-ce vrai?Est-ce que .Net IL a changé du tout depuis .Net 2.0?
Répondre
Je pense qu'il n'y a pas eu de changements IL en tant que tels, mais ont eu des changements importants dans la mise en œuvre du CLR pour rendre les méthodes dynamiques plus efficaces, permettent l'expression etc. compilation des arbres, je me souviens il y a eu des changements autour de la sécurité de construction de méthodes dynamiques, pour rendre possible le fait que les expressions lambda générant des arbres d'expression appellent des méthodes privées à travailler même dans des environnements de confiance relativement faibles. Le compilateur sait qu'il est valide d'appeler la méthode privée car le point de compilation du code source y a accès. Prouver que c'est difficile cependant :) Voir this note by Eric Lippert.
L'IL n'a pas changé mais le compilateur aura. Nous avons remarqué, par exemple, que les outils internes de WCF créaient des C# assez différents pour les proxys et autres, qui à leur tour créaient des IL différents lors de la compilation. Voir aussi la discussion sur les "bits rouges" et les "bits verts" dans l'entrée du journal de Soma http://blogs.msdn.com/somasegar/archive/2006/05/18/601354.aspx. –
La livraison CLR (Version 2.0.50727) n'a pas changé depuis .NET 2.0, donc votre IL est identique. (Voir aussi this SO QA)
Non, le CLR lui-même * a * changé - une partie de .NET 2.0 SP1 était un changement CLR, je crois. –
Il existe plusieurs versions de la version 2.0.50727 CLR depuis la version .NET Framework 2.0 d'origine. La version originale RTM était par exemple. Version 2.0.50727.42. Sur ma machine (Vista SP2) la version complète est la version 2.0.50727.4016. Cependant, AFAIK il n'y a eu aucun changement fonctionnel depuis la version originale. –
..et par conséquent, si vous voulez, vous pouvez utiliser un grand nombre de fonctionnalités .NET 3.5 dans un projet .NET 2.0, tant que vous utilisez le dernier compilateur:
- propriétés automatiques
- méthodes d'extension (nécessite un peu tho sale tour)
- objet initializers
- inférence de type (mot-clé var)
- Lambda expressions
- 1. Tout outil qui peut mettre à jour le code .NET 2.0 WinForm vers .NET 2.0 "style"?
- 2. .NET 2.0 Préalable Installer
- 3. .NET 2.0 - Conversion TimeZone
- 4. Performance de .Net 2.0 vs .Net 3.5
- 5. System.DirectoryServices.AccountManagement dans .net 2.0
- 6. .net 2.0 Composant IRC
- 7. Tout Smalltalk sur .NET?
- 8. SAML avec .NET 2.0
- 9. informations dans .NET 2.0 TimeZone
- 10. Assemblage .NET 1.1 dans le projet .NET 2.0: .NET 1.1 est-il requis?
- 11. Conversion .NET 2.0 DateTime UTC
- 12. Y a-t-il des changements significatifs dans les fonctionnalités de localisation entre VS2005/.NET 2.0 et VS2008/.NET 3.5?
- 13. HylaFax, Comment l'utiliser depuis l'application .net
- 14. Utilisation d'espaces de noms .net 3.0 dans .net 2.0
- 15. asmx .net 2.0 service web
- 16. Chargement .net 3.5 wpf-forms dans une application .net 2.0
- 17. Pièges pour convertir une solution .net 2.0 en .net 3.5
- 18. D'où mon assembly .net lit-il sa configuration depuis lorsqu'il est hébergé en tant que COM?
- 19. .Net Framework 2.0 Outil de configuration
- 20. Existe-t-il une version 2.0 SP2 .NET redistribuable?
- 21. Cibler .NET 2.0 pour une petite application
- 22. Qu'est-ce que nos clients ont de migrer de .Net 2.0 à .Net 3.5?
- 23. .net 2.0 SP1 sur Windows 98
- 24. Est-ce que le STL a beaucoup changé?
- 25. Actualisation d'une grille .net 2.0 standard/XMLsource
- 26. Comment lire un fichier mp3 depuis un serveur différent dans .NET 2.0 (C#/vb.net)?
- 27. Code .NET 2.0 - Tests unitaires avec MoQ
- 28. HtmlForm.Action et Framework .Net 2.0/3.5 Interrogation
- 29. Erreur .NET Runtime 2.0 dans un service
- 30. Utilisation de méthodes d'extension dans .NET 2.0?
pourquoi demandez-vous? –
Pourquoi demandez-vous pourquoi je demande? – sblom
Question supplémentaire: Je sais que 4.0 a définitivement un nouveau CLR, mais a-t-il des changements d'IL? –