Подтвердить что ты не робот

Как .NET Framework 4.5 Полная установка только 50 МБ (поскольку у них больше нет профиля клиента)?

(все ссылки на размер указаны в условиях пакетного размера, а не в развернутых/установленных размерах)

В принципе, предыдущая платформа .NET Framework 3.5 имела размер в несколько сотен МБ (231,5 МБ), а профиль клиента не существовал для 3,5, однако профиль клиента действительно существовал для версии 4.0 на уровне 41 МБ - это размер, в то время как полная установка (не CP) для 4.0 была размером 48,1 МБ.

Теперь они говорят (в ссылке, размещенной в конце вопроса), что большинство приложений, как правило, нуждаются в классах и пространствах имен, которые не были охвачены в профиле клиента 4.0, поэтому они решили не создавать профиль клиента для 4.5 по этой причине, Другая причина, по которой они цитировались, заключалась в том, что, поскольку они смогли получить версию полной установки .NET Framework 4.5 до 50 МБ, это также уменьшило необходимость создания версии профиля клиента (поскольку .NET 4.5 Full Install составляет всего 9 МБ больше, чем профиль клиента .NET 4.0), и только 1. MB больше эквивалентной полной установки (автономный автономный установщик).

Теперь мой вопрос действительно состоит всего из двух частей:

1). Как на самом деле (извините мой энтузиазм), как версии 3.5 и ниже (3.0, 2.0) будут иметь размер в несколько сотен МБ, когда версии 4.0 и 4.5 исправили так много проблем в 3.5 и ниже и добавили так много функций, поскольку 3.5 и ниже, в то время как в несколько раз меньше в упакованном размере?

2). Это последнее слово в профиле клиента, или мы можем увидеть его для .NET 4.5 когда-нибудь?

3). Как 4.5 может быть только на 1,9 МБ больше, чем 4.0, при исправлении проблем с человеком и добавлении многих функций?

Обновление: (и потенциальный 4-й вопрос любому желающему):

@Gromer поднял интересный момент, что языковые пакеты не включены. Поскольку их потребности в 1 языке включены, я предполагаю, что это английский, и это является дефолтом? Если это так, как средний пользователь Интернета хочет загрузить и установить языковые пакеты для собственного использования и языка, когда большинство людей даже не знают/не понимают, что такое ".NET Framework"? Я что-то упустил или это не важно? Как часто структура взаимодействует с конечным пользователем в разговорной речи или в диалоговых окнах?

В статье, где я получил некоторые из этих сведений, приведен ниже:

http://blogs.msdn.com/b/dotnet/archive/2012/10/12/improvements-in-net-framework-setup-for-developers-it-pros-and-users.aspx

4b9b3361

Ответ 1

Если вы заглянете в 3.5 "автономный" установщик, вы будете ошеломлены, найдя, сколько подстроек есть.

Возьмем, к примеру, dotnetfx35_with_sp1.exe: это большой 231MB прикованный установщик. Когда вы распаковываете его с помощью

dotnetfx35_with_sp1.exe /x:myfolder

вы получаете папку 240 Мб, разделенную на несколько других папок:

dotNetMSP [111.2Mb] ==> x64 [45.0Mb], ia64 [36.2Mb], x86 [29.7Mb], [other] 300k 
dotNetFX20 [47.6Mb] ==> about 50/50% between 32 and 64 bit
dotNetFX30 [46.8Mb] ==> x64 [24Mb], x86 [22Mb]
dotNetFX35 [31.5Mb] ==> ia64 [12.8Mb], x64 [10.8Mb], x86 [7.7Mb]
...and some other files around...

Как вы знаете,.NET 3.5 требует .NET 3.0 и .NET 2.0, что именно то, что вы видите здесь. Даже без использования языковых пакетов они должны были ориентироваться на несколько разных платформ (начиная с Windows XP) и включать множество патчей.

Переходя к .NET 4.x, эти зависимости от предыдущих фреймворков были отброшены и в то же время они поддерживают меньшие (и более новые) операционные системы и платформы (например, поддержка ia64, которая была довольно тяжелой размер файла - и теперь почти исчез).

Из того, что я вижу на более новых настройках, они также могли что-то изменить во внутреннем формате, в котором они отправляют фреймворк, возможно, еще более эффективно сжаты.

И последнее, но не менее важное: они изменили многие внутренние архитектуры, переписали множество вещей, которые, в свою очередь, вероятно, позволили им удалить другие старые вещи...

Вероятно, нет ни одного необычного изменения, которое позволило бы им значительно уменьшить размер: возможно, все вышеперечисленное и многое другое:)

Просто мой 2c:)

Ответ 2

Скотт Гензельн красноречиво говорит:

Почему этот установщик настолько большой?

Эта гигантская загрузка .NET - это одна вещь - она ​​предназначена для разработчиков или администраторов, которые могут захотеть перераспределить установку, которая содержит не только всю платформу .NET Framework, но и все возможных платформ. У этого есть установщики для x86, x64 и ia64.

http://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramework.aspx

и

Было некоторое замешательство в отношении размера .NET Framework. .NET Framework на самом деле не загружает более 200 мегабайт.

Какой установщик я использую? Здесь все в двух словах для Разработчиков, независимых поставщиков программного обеспечения и администраторов.

  • Offline Installer - один файл, который можно запустить в автономном режиме и может установить .NET Framework в любую систему, на которой он запущен. Он завершен, все платформы, устанавливаемые в автономном режиме.

  • Online Installer - программа установки 2,7 мега, которая будет определять, какие именно файлы вам нужны, а затем загрузите между 10 и 60 мегабайтами.

В этом сообщении в блоге подробно рассказывается о том, как Microsoft упростила установку платформы .NET 4. В частности:

Мы определили подмножество функциональных возможностей фреймворка, которое использовалось 95% клиентских приложений и выпустил пакет первого класса для этот сценарий. Результатом этого является то, что, если вы не принимаете преимущества таких функций, как ASP.NET, теперь вы можете использовать зависимость на меньших рамках.

Ответ 3

Я не могу найти источник для этого, но я считаю, что причина, по которой установщик .Net framework 3.5 был настолько велик, состоит в том, что он содержал версии JITed всех сборок (в том числе в некоторых случаях, которые не будут используются, поскольку они нацелены на неправильную платформу), если установщик .Net 4.0 не делает - он подключается к ним во время установки (поэтому установка .Net framework v4.0 занимает так много времени)

Я также вспоминаю, что мне сказали, что установка .Net 4.5 будет намного быстрее, чем сборка JITing как часть установки, она будет JIT их в фоновом режиме, пока ПК не работает (однако есть процесс для немедленных сборок JIT, которые приложение пытается загрузить, однако еще не было JITed)

Я изо всех сил пытаюсь найти какие-либо источники для этого, но я отправлю их, когда найду их.

Ответ 4

Мое личное мнение заключается в том, что с течением времени Microsoft интегрирует все больше и больше функций основной платформы .NET Framework непосредственно в операционные системы Windows с помощью пакетов обновлений и новых выпусков Windows.

Я считаю, что они переработали привязки операционной системы в V 4.0, поэтому база кода и дополнительные ресурсы, необходимые для увеличения и запуска .NET, уменьшаются для поддерживаемых операционных систем. Например. все специальные выпуски XP были удалены из списка поддержки между 3.5 и 4.0. В версии 4.5 база ОС еще больше сокращается (Vista/7/Win8 и Server 2008/2013).

Также как упомянутые выше функции, такие как языки, кроме английского, были обрезаны, а некоторые другие функции были извлечены в пакет .NET SDK.

Только мои два цента.