Основное на чем сосредоточились разработчики – это Размер, Устойчивость к ошибкам и Производительность.
Размер распространяемого пакета был значительно уменьшен.
Сравнение размеров распространяемого пакета, начиная с 3.5 SP1
3.5 SP1 | 4 Beta1 | 4 Beta2 | 4 RTM | |
32bit Client Profile | X | 34.5 MB | 31.5 MB | 28.8 MB |
32bit Full | X | 77.5 MB | 38.5 MB | 35.3 MB |
32+64bit Client Profile | X | 72.5 MB | 48.2 MB | 41 MB |
32+64bit Full | 237 MB | 162.6 MB | 55.9 MB | 48.1 MB |
Для достижения такого результата были предприняты следующие шаги:
- улучшена используемая технология сжатия, что позволило сократить размер на 15%;
- разделены пакеты для AMD64 и IA64, так как в большинстве случаев они не требуются вместе;
- были идентифицированы сборки функционально идентичные, но включенные ранее в нескольких вариантах под разные архитектуры, несмотря на то, что они были процессорно-нейтральными (без зависимостей от x86 или amd64 архитектуры). Теперь эти сборки включены в одном экземпляре.
Устойчивость к ошибкам значительно повысилась по сравнению с предыдущими релизами. Этого удалось добиться за счет следующего:
- удаление большого числа зависимостей и объединение инсталлятора в единый MSI;
- упрощение MSI за счет удаления и упрощения большого числа скриптов (custom actions);
- было проанализировано огромное число вариантов сбоев при установке, которые поддаются исправлению тем или иным способом, и реализованы шаги, предложенные в соответствующих KB, тем самым добавилась возможность исправить многие известные проблемы при установке, приведя ПК в порядок и, при необходимости, успешно повторить установку;
- после исследования проблем загрузки было решено использовать все три доступных способа для получения файлов: Winhttp, URLMon, и BITS, так как они сбоят в разных ситуациях и в тех случаях, когда один из способов недоступен, второй или третий может исправить ситуацию;
- Client Profile инсталлятор так же упрощен за счет того, что конфигурирование компонентов наподобие ASP.NET и WCF было вынесено в полную версию, так как она зачастую они использовались только при установке на сервер и не использовались клиентскими приложениями.
Производительность. Ключевым показателем производительности является общее время установки. 3.5 SP1 устанавливался в среднем 12-15 минут. В 4й версии среднее время составляет 3-5 минут для клиентского профиля и 5-7 минут для полного. Проведены были следующие работы:
- исправлены ошибки при обработке файлов, устанавливающихся в несколько мест одновременно (Smart Cabbing), ранее их наличие в проекте (WiX) приводило к заметному падению производительности;
- одной из целей при разработке было упростить установку .NET Framewok, удалив различные зависимости, тем самым уменьшая и полное время установки, за счет уменьшения количества устанавливаемых компонентов. В некоторых случаях, это стало возможным, потому что требуемый функционал был встроен во все поддерживаемые ОС, либо был достаточно распространенным с тем, чтобы не беспокоиться о его наличии;
- было обнаружено, что интеграция большого числа патчей в продукт приводила к большой потере производительности в конце установки во время кэширования для защиты от сбоя исходного пакета. С помощью добавления всего набора непосредственно в MSI удалось убрать эти задержки;
- в CLR была реализована возможность генерации образов в машинном коде на нескольких ядрах параллельно, инсталлятор теперь использует эту возможность, значительно увеличивая скорость работы на многоядерных машинах. Кроме того, на 64битных системах большинство .NET кода по-прежнему использует 32бит, поэтому была убрана синхронная (во время установки) генерация образов в машинных кодах для 64битных сборок;
- можно использовать Web-вариант установки как для клиентского профиля, так и полной версии , при этом для полной версии происходит распараллеливание процессов: пока ставится клиентский профиль .NET Framework, продолжается загрузка остальной части, недостающей до полной версии и если ширина канала достаточна, то вполне может получиться значительная экономия времени, так как к окончанию установки клиентского профиля будет загружено все необходимое для продолжения установки.
Подробнее:
Блог Peter Marcu, пост об улучшениях в инсталляторе
Комментариев пока нет
Отправить комментарий