Одна новая вещь CLR, о которой я знаю, это форма структурной типизации для интерфейсов, структур и делегатов ради поддержки NoPIA - в основном, это позволяет среде выполнения обрабатывать различные типы с эквивалентными определениями, как если бы они были одинаковыми - поэтому, если две сборки A
и B
каждая имеют объявленный в них COM-импортированный интерфейс IFoo
с одинаковым IID и одинаковыми элементами, среда выполнения будет рассматривать их как эквивалентные типы; так что если есть экземпляр некоторого класса Foo
, реализующего [A]IFoo
, вы можете привести его к [B]IFoo
, и приведение будет работать.
Еще одна вещь - это возможность одновременно разместить несколько версий CLR в одном процессе. Например, вы не можете разместить 1.x и 2.0 в одном процессе, но вы можете разместить 2.0 и 4.0. Основным преимуществом этого является возможность одновременной загрузки плагинов, написанных для любой версии CLR.
Еще один незначительный бит заключается в том, что еще несколько исключений стали неуловимыми, как StackOverflowException
в 2.0 - например, вы не можете перехватить AccessViolationException
.
Кроме того, здесь - это презентация PowerPoint для CLR 4.0 из PDC 2008. Возможно, она немного устарела, но большинство упомянутых там вещей, по-видимому, содержится в бета-версиях.