Когда предоставляются двоичные файлы .NET 2.0 и .NET 4.0, каковы преимущества использования последних? - PullRequest
0 голосов
/ 19 декабря 2011

Я знаю, что версия .NET 2.0 предоставляется в целях совместимости.Но почему некоторые библиотеки имеют обе версии?Есть ли причина публиковать версию библиотеки .NET 4.0?

Возьмем, к примеру, библиотеку Oracle.DataAccess.

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Возьмем, к примеру, библиотеку Oracle.DataAccess.

Это было бы хорошим примером сборки в смешанном режиме.Написан на C ++ / CLI и содержит нативный код с обёртками управляемого класса.Поставщикам баз данных очень часто нужно использовать собственный API для связи с сервером баз данных.Конечно, дело в Oracle.

Использование версий таких сборок .NET 2.0 в программе, ориентированной на .NET 4.0, является проблемой.Им требуется файл .exe.config с атрибутом useLegacyV2RuntimeActivationPolicy, чтобы убедить CLR, что такая сборка может выполняться в версии CLR 4.0, даже если она запрашивает 2.0.Отсутствие атрибута приводит к неприятной ошибке при запуске.Документация здесь .

Слишком больно.Простое решение состоит в том, чтобы просто предоставить отдельную версию .NET 4.0 такой сборки.

3 голосов
/ 19 декабря 2011

Как правило, версия библиотеки, предназначенная для более новой версии платформы, предоставляет новые функции, для работы которых требуется новая версия платформы.В .NET 4.0 появилось много новых вкусностей, которых не было в .NET 2.0.

Разработчикам нравится работать с новейшей платформой, поэтому весь новый код будет реализован для этой платформы.Старая версия, нацеленная на старую версию платформы, предоставляется только из соображений совместимости, поскольку она, вероятно, предоставляет только минимально необходимый набор функций.

Другая возможность состоит в том, что более новая платформа обеспечивает производительность или другие улучшения.для кода библиотеки.Их можно [иногда] перенести в более ранние версии платформы, но они часто неоптимизированы и поэтому должны использоваться только в случае крайней необходимости.

...