Наверное, каждый пользователь операционной системы Windows сталкивался с таким понятием как Microsoft .NET Framework, но не каждый знает, что это такое, для чего он нужен, где его скачать и как его установить, поэтому сейчас мы рассмотрим все это и в качестве примера установим Microsoft .NET Framework 4.0 на Windows 7.
В дополнение ко всему прочему мы узнаем, что такое клиентский профиль Microsoft .NET Framework 4 и также рассмотрим процесс его установки.
Начнем мы конечно с основ, т.е. что такое Microsoft .NET Framework и для чего вообще он нужен?
Что такое Microsoft .NET Framework и для чего он нужен?

.NET Framework – это платформа, которая служит для создания и выполнения приложений и веб-служб. Разработчиком является компания Microsoft поэтому как не странно в большей степени .NET Framework создан и рассчитан на операционную систему Windows, но также есть проекты которые позволяют запускать программы .NET и в других операционных системах, например в Linux.
Основными компонентами .NET Framework являются среда выполнения (CLR) и библиотека классов, которая включает ADO.NET, ASP.NET, Windows Forms и Windows Presentation Foundation (WPF). Средой разработки в первую очередь выступает Microsoft Visual Studio, что и понятно, так как VS разработка тоже компании Microsoft, и в этом случае языками программирования выступают: C#, Visual Basic .NET, C++. Но так же, как было уже сказано выше, есть и независимые проекты, в которых можно писать программы под .NET Framework на других языках.
Для обычных пользователей, если говорить по-простому то Microsoft .NET Framework это всего лишь программа или компонент операционной системы, без которой программы или игры, написанные под .NET Framework просто не будут работать, даже не запустятся. Поэтому если кто сомневается, нужна ли программа Microsoft .NET Framework или нет, то ответ, конечно же, нужна, так как в современном мире огромное количество программ и игр, которые используют библиотеки .NET Framework. И если Вы до сих пор не столкнулись с программами или играми, которые требуют установки Microsoft .NET Framework то рано или поздно Вы с этим столкнетесь. А если говорить о том какую версию устанавливать то, конечно же, чем новей, тем лучше, для примера мы будем устанавливать версию 4.0, это, кстати, последняя версия .NET Framework которую можно установить на Windows XP, а на сегодняшний день доступна версия .NET Framework 4.5.2.
Примечание! Как видно из названия материала устанавливать Microsoft .NET Framework 4.0 мы будем на операционную систему Windows 7, кстати говоря, по умолчанию в ней уже установлен .NET Framework 3.5, в Windows 8 по умолчанию идет версия 4.0, а в Windows 8.1 уже 4.5. Поэтому если у Вас, например ОС Windows 8 то .NET Framework 4.0 устанавливать не нужно.
Прежде чем переходить к установке, давайте поговорим о так называемом Microsoft .NET Framework 4 Client Profile клиентском профиле .NET Framework 4.
Клиентский профиль .NET Framework 4
Клиентский профиль .NET Framework 4 — это некий поднабор компонентов .NET Framework 4, которые оптимизированы для клиентских приложений. Он включает в себя необходимый набор функций и компонентов, которых достаточно большинству клиентских приложений. Сюда входит Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF). Если говорить о том, что сюда не включено то это: ASP.NET, расширенный набор функций WCF, поставщик данных .NET Framework для Oracle и система MSBuild для компиляции, если Вам необходимы эти компоненты то нужно уже устанавливать полноценный .NET Framework 4. Как Вы, наверное, уже поняли клиентский профиль .NET Framework 4 это своего рода урезанная версия .NET Framework 4.
И теперь давайте перейдем к установке данных компонентов и начнем мы с Microsoft .NET Framework 4 Client Profile.
Примечание! Если Вы хотите сразу установить полноценный Microsoft .NET Framework 4.0, то клиентский профиль устанавливать не обязательно.
Установка Microsoft .NET Framework 4 Client Profile
И для того чтобы установить данный компонент необходимо, конечно же, его скачать, а это можно и лучше сделать с официального центра загрузки Microsoft.
Возможно два варианта установки это через веб установщик, т.е. мы, скачали небольшую по размеру программку и запустили ее, а она уже будет скачивать все необходимые компоненты и второй вариант так называемая автономная (классическая) установка при которой мы скачиваем полный пакет, а затем устанавливаем его. В принципе они ни чем не отличаются просто при первом варианте у нас на компьютере не останется своего рода дистрибутива, а при втором он у нас будет. При этом мы его сможем перенести и установить на компьютер, который не подключен к Интернету, в свою очередь веб установщик требует обязательного подключения к Интернету.
Я предлагаю клиентский профиль .NET Framework 4 установить с помощью веб установщика, а затем, когда мы будем рассматривать установку полноценного .NET Framework 4.0 использовать автономный установщик.
Скачать клиентский профиль .NET Framework 4 (веб установщик) можно вот на этой странице.
Вы переходите на страницу и жмете «Скачать»
Затем Вам будет предложено отметить для загрузки дополнительные пакеты приложений, но так как в данном случае нам ничего больше не нужно мы просто жмем «Отказаться и продолжить» в правой части экрана

В итоге у Вас загрузится файл dotNetFx40_Client_setup.exe, который нужно запустить.
И сразу после запуска нам необходимо согласиться с лицензионным соглашением, т.е. поставить галочку напротив «Я прочитал и принимаю условия лицензионного соглашения» и нажать «Установить».

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

Установка займет не много времени всего минуты 3, после чего установщик скажет, что «Установка завершена», и мы жмем «Готово».

Как видите в установке клиентского профиля .NET Framework 4 нет ничего сложного как впрочем, и в установке самой платформы Microsoft .NET Framework 4, но это Вы сейчас сами и увидите.
Установка Microsoft .NET Framework 4.0
Для установки Microsoft .NET Framework 4.0 мы будем использовать автономный установщик. Скачать его можно вот здесь.
Также жмем «Скачать» и если мы не хотим устанавливать что-то дополнительное, то жмем «Отказаться и продолжить»

У нас загрузится файл dotNetFx40_Full_x86_x64.exe мы его и запускаем. И также сначала соглашаемся с лицензионным соглашением, т.е. ставим галочку и жмем «Установить»

Затем начнется установка, которая также пройдет очень быстро.


Теперь на нашем компьютере установлен Microsoft .NET Framework 4.0 это, кстати, мы можем посмотреть в списке установленных программ, а именно
Панель управления->Программы и компоненты
Клиентский профиль .NET — это подмножество платформы .NET Framework, которое предоставлялось с .NET Framework 4 и более ранними версиями и было оптимизировано для клиентских приложений. The .NET Client Profile is a subset of the .NET Framework, which was provided with .NET Framework 4 and earlier versions and was optimized for client applications. .NET Framework — это платформа разработки для Windows, Windows Phone и Microsoft Azure, которая включает в себя управляемую среду выполнения приложений и библиотеку классов .NET Framework. The .NET Framework is a development platform for Windows, Windows Phone and Microsoft Azure and provides a managed app execution environment and the .NET Framework class library. В .NET Framework 4 и более ранних версиях предоставлялось два варианта развертывания: полная платформа .NET Framework и клиентский профиль. The .NET Framework 4 and earlier versions provided two deployment options: the full .NET Framework and the Client Profile. Клиентский профиль позволял ускорить развертывание и уменьшить установочные пакеты приложений по сравнению с полной платформой .NET Framework. The Client Profile enabled faster deployment and smaller app installation packages than the full .NET Framework.
Начиная с .NET Framework 4.5 доступен только полный распространяемый пакет. Starting with the .NET Framework 4.5, the Client Profile has been discontinued and only the full redistributable package is available. Оптимизации, предоставляемые платформой .NET Framework 4.5, такие как меньший размер загружаемых файлов и повышенная скорость развертывания, исключили необходимость в отдельном пакете. Optimizations provided by the .NET Framework 4.5, such as smaller download size and faster deployment, have eliminated the need for a separate deployment package. Один распространяемый пакет упрощает процесс установки и параметры развертывания приложения. The single redistributable streamlines the installation process and simplifies your app’s deployment options.
Но если приложение предназначено для .NET Framework 4 или 3.5 и вы хотите больше узнать о клиентском профиле и его использовании, см. раздел Клиентский профиль .NET Framework в документации по платформе .NET Framework 4. However, if you are targeting the .NET Framework 4 or 3.5 and want to learn more about the Client Profile and when to use it, see .NET Framework Client Profile in the .NET Framework 4 documentation.
При установке .NET Framework 4.5 клиентский профиль платформы .NET Framework 4 обновляется до полной версии платформы .NET Framework. When you install the .NET Framework 4.5, the .NET Framework 4 Client Profile is updated to the full version of the .NET Framework. Сведения об установке .NET Framework 4.5 см. в разделе Установка .NET Framework для разработчиков. For information about installing the .NET Framework 4.5, see Install the .NET Framework for developers.
Как известно размер .NET фреймворка увеличивается от релиза к релизу. Но, к сожалению, не у всех потенциальных пользователей широкий безлимитный канал.
Стояла задача — определить какой .NET Framework, поддерживающий WPF, оптимален с точки зрения простоты распространения. Ведь не хочется терять пользователей из-за лишних мегабайт в установщике.
Т.е. надо было принять решение какой .NET Framework использовать: .NET 3.0 или .NET 3.5.
Главный плюс .NET 3.0 — он предустановлен в операционной системе Vista
Плюсы .NET 3.5
- функционально более богат по сравнению с предшественником
- имеет Client Profile версию (подробности ниже)
В результате был выбран .NET Framework Client Profile. Т.к. в этом случае пользователи XP должны будут скачать приблизительно 30 мегабайт (фреймворк + приложение), а пользователи виста около 12ти. Следует заметить, что некоторые пользователи Windows Vista получат .NET 3.5 через Windows Update и для них установка обойдется скачиванием только самого приложения.
После принятия решения появилось желание узнать мнение хабра-сообщества по этому вопросу. Но публикаций, где бы затрагивался .NET Framework Client Profile, я не нашел. Поэтому решил осветить этот воброс.
Описание .NET Framework Client Profile
.NET Framework Client Profile, это 28 MB сборок, чаще всего используемых при создании десктоп приложений на .NET.
В него вошли:
- Common Language Runtime (CLR)
- ClickOnce
- Windows Forms
- Windows Presentation Foundation
- Windows Communication Foundation
Детальное описание — Introducing the .NET Framework Client Profile
Подробный список сборок — .NET Framework Client Profile Assemblies
Размер закачки полного фреймворка (3.5SP1)
Нет установоленных фреймворков
56 MB
Установлен 2.0
50 MB
Установлен 2.0SP1
33 MB
Установлен 3.0SP1
P.S. Было бы интересно услышать ваши мнения по этому поводу.
Читают сейчас
![]()
Похожие публикации
- 20 февраля 2012 в 20:57
Полу-Prezi за 10 минут в .NET и WPF
DXperience v2011 vol 1 — Новая версия .NET компонентов от DevExpress
Вышла новая версия набора компонентов для .NET — DXperience 10.2
Вакансии AdBlock похитил этот баннер, но баннеры не зубы — отрастут
Комментарии 24
Щас тут набегут тролли с их модемным каналом и будут орать .net отстой даешь asm
Если по существу, ключевой вопрос для меня когда выбирал framework это кто ваш пользователь. Если это буржуй (Европа или штаты) у них там безлимитка стоит просто смешные деньги и тарифицированных пакетов почти нет — поэтому тут однозначно что вам удобнее и с чем у вас будут быстрее выпускаться версии.
Если это наш родной советский пользователь — то тут конечно проблема, ибо 50 метров это большая проблема (для жителей вне столиц)
Возьмем Тотал-Коммандер-подобную программу. Я лучше скачаю быстрый, мало-памяти-требующий и весящий пару мегабайт Total Commander, чем его воображаемый аналог весом в 58 Мб, который еще и тормозить будет. Зачем, спрашивается?
Ставьте свой .NET себе на многогигабайтный 8-ядерный сервер, если уж жить без него не можете, а пользователям сырые, кривые и неэффективнфые технологии не предлагайте. Что в нем такого, что оправдывает такую трату ресурсов?
p.s. Я хоть и провинциал (а не тролль с модемным каналом), но на скорость не жалуюсь — до нескольких мегабит в секунду, но памяти, диска и процессора мне на всякую .NET-ную фигню жалко. научитесь сначала писаьт эффективные программы.
К тому же неэффективному сборщиуку мусора, неэффективной CLR и JIT-у на моем компьютере делать нечего.
p.p.s. Вы бы еще тут на php + GTK предлагали писать — такая же фигня (хотя нет, .NET весит больше).
p.p.p.s Бесят дистрибутивы размером десятки и сотни мегабайт. такое ощущение, что платят зарплату программистам помегабайтно.
> Ты ограничен, у тебя нету фантазии.
Это к чему?)) Или .NET только для фантазеров? Далеких от рещения реальных задач?
> Кстати за счет GC код типа for (;;) new obj; delete obj; будет выполняться быстрей чем на твоем asm или ещё на чем ты там помешан.
И памяти потратит столько же? И где интересно нужен пустой цикл, создающий и удаляющий объекты? И зачем delete при использовании GC?
У GC есть вполне конкретные недостатки — подвисания в работе программы, большой расход памяти, кроме того с увеличением адресного пространства и количества объектов он становится не шибко эффективным.
В любом случае, .NET тормозной не только из-за GC.
>> Что в нем такого, что оправдывает такую трату ресурсов?
> Ты идиот.
Ого)) Стоило уперекнуть тролля в школинге — посыпались нормальные факты.
Уверен, что TC не зависит от «Qt, GTK, DirectX, виртуальная машина Java с базовыми библиотеками, .NET framework, Adobe Flash и множество множество других». Более того, кроме Qt/GTK вы забыли упомянуть еще и XUL — тоже дурацкую и тормозную библиотеку (или платформу?).
MFC/MSVCRT — входят в Windows с незапамятных времен, и не содержат пакостей вроде JIT или байт-кода (хотя и великоваты), так что не надо их трогать.
DirectX — нужен для прямого доступа к оборудованию, без него никак.
Остальное — уродливые монстроподобные библиотеки/рантаймы, создатели которых плевали на всякую оптимизацию (и на использование нативных контролов, вот это им точно простить нельзя!), и которые пытаются из C++ имитировать какой-то более высокоуровневый язык. Цели, преследуемые ими были другие. Кратко они называются RAD.
Во-первых, стоит заметить что программирование на C/C++ — сомнительное удовольствие в силу абсолютной невменяемости синтаксиса да и многих неудобств языка, нехватки автоматического управдения памятью, и т.д. Отладка программ на них довольно сложна, а ошибку допустить легко. Ручная работа с указателями, например, очень даже этому способствует.так же неопытный программист легко может оставить какое-нибудь переполнение буфера к примеру. Понятно, что для нормального программирования на них нужен большой опыт и знания. Это никак не может устроить современную индустрию разработки ПО. Да и думаю, самими программистам вряд ли нравится, вот они и убегают на Питон, Руби и прочие пакости.
Первая цель java/.NET — снижение требуемой квалификации для написания кода. Если язык устроен так, что не позволяет переполнить буфер, или создать утечку памяти без специальных намерений — значит зха программирование можно посадить индксов или студентов. Это очень хорошо. так как денег они просят намного меньше чем опытный программист.
Ну и второй фактор. Скорость разработки на яве и дотнете тоже (вроде как) выше. Опять же это не может не радовать разработчиков, ибо позволяет как можно быстрее выпустить (пусть сырой, пусть неэффективный) прототип/продукт и оставить конкурентов позади. Именно этому учат нас современные книги о разработке. Правда, там потом рекомендуется делать оптимизацию, рефакторинг, но если продукт уже продается — стоит ли с этим заморачиваться, тратить на это деньги? Наверно нет. тем более что рефакторинг «индусского» кода — сомнительное удовольствие.
Ну и третий фактор (зачем, зачем же нужен байт-код?) — возможность использовать при разработке 3rd-party closed-source компоненты. ведь на Си/Си++ тому, кто хочет продавать свой компонент, придется делать обфускауцию, или как то по другому защищать свои права (чтоб никто не узнал что их код писали студенты, ага), а в случае с java/.NET можно продавать/покупать компоненты, не получая исходников. Считается (видимо), что это развивает индустрию. Считается, что это одна из причин успеха java.
Ну и в случае с .NET думаю есть еще хитрый план очередного подсаживания программистов (и всех конечных пользователей) на Windows (+MSSQL +IIS +что они там еще накодили).
Нужен ли конечному пользователю ПО байт-код? Нафиг не нужен. ибо ему плевать кто там от кого прячет свой код. Нужен ли JIT? Нет байт-кода — нет компилятора. Нужно ли конечному пользователя 58 Мб библиотек на все случаи жизни? Тоже не нужно. Напишите уже пакетный менеджер и ставьте/распространяте с прграммой только непосредственно используемые библиотеки.
Нужно ли переходить с C++ на более удобный язык? Нужно ли упрощать отладку и разработку? Конечно нужно, я тоже за то чтобы отобрать возможность ручной работы с указателяим без особой надобности. Но нужно ли «более удобный» язык делать намного менее производительным, из-за всяких байт-кодов и многоэтажных фреймворков? Не уверен.
Кстати, фреймворк существует (вроде как) в 4 версиях: 1.0, 1.1, 2.0, 3.* — и новая версия *не замещает* старую (сам видел компьютеры с несколькими версиями фреймворка)! Значит количество хлама на диске пользователя будет только расти.
Еще один фактор, снижающий производительность — многоэтажные объекты, построенные друг на друге, фреймворк, содержащий кучу кода на все случаи жизни.
Ну и стремление к мультитредингу приводит к появлению тормозного кода, со всякими блокировками (в результате чего 2-поточная программа может работать на 2 ядрах медленнее однопоточной).
Есть ли среди целей создания java/.NET цель получения хорошимх/быстрых программ? Нет, нет и нет. Быстрой должна быть разработка, а то что программа получилась тормозной — не страшно, сейчас же у всех 4ядерные процессоры и 4 Гб памяти, разве нет?
Имхо, Этот подход приемлем к серверному ПО — ну написал индусский код, ну плати уж тогда за более мощный сервер, или купи 2 сервера там. Но почему платить должен конечный пользователь? — ума не приложу.
Я готов поверить, что в простых циклах выделения/удаления объектов Java/GC обгоняет ручное управление памятью (за счет более качественной оптимизации кода в первую очередь, ну и за счет того что там объекты тупо не удалются). Но посмотрите на реальный Java/.NET приложения.Я не видел ни одного, которое бы запускалось мгновенно (это при том что считается якобы java-компилатор+GC более эффективен чем C++). Отъесть по 100-200 Мб памяти у них считается нормльно. Видимо в представлении разработчиков пользователь работает исключительно с одной программой одновременно, и закрывает ее прежде чем запустимть другую. И еще этому гипотетическому пользователю доставляет удовольствие смортеть на сплеши.
Эффективный код, кроме отдельных пользователей, сегодня никому не нужен (да и никогда не был нужен видимо).
Win-Разработчики идут сейчас «путем Линукса» — цеплять даже к простому GUI-приложению по 100 Мб библиотек.
> Некоторые же недостатки по производительности из за сборщика мусора можно устранить если подойти к конкретной задаче с умом, так например подвисание при сборке можно убрать используя так называемый pooling, расход — вызовом сборщика в ручную в нужных местах.
Приложение — браузер. Когда можно вызывать сборщик так, чтобы не помешать пользователю? Объясните ка это товарищам-инвалидам из Оперы.
> Но учитывая развитие аппаратной составляющей, и развитие технологий в целом, большая часть прикладных и системных программ (если пишет не школьник) не требует этих специальных методов оптимизации при работе на среднем современном компьютере.
Какой компьютер вы считаете средним? На селероне с 512 Мб памяти тормоза есть. Увеличивать память (а память дешева как никогда this days) лениво, и кроме того есть подозрение что засыпание будет намного медленее с большим объемом.
> если вы себе не можете позволить купить лоу-енд более менее современный компьютер, вам наверно лучше вместо сидения на хабре, учится хорошо что бы потом найти работу (даже такой асоциальный элемент как я смог себе найти работу).
Пишите уж сразу прямо — .NET не для провинциалов-замкадышей-нищебродов. Хотя работа у меня есть (и слава богу она не требует использования ни java ни .NET приложений!) и я могу позволить себе регулярно апгредить железо — но зачем? лазать по форумам, отслеживать кто там какую видеокарту выпустил, путаться в аббревиатурах и каждые полгода обновлять все железо мне абсолютно неинтересно.
У дешевого железа еще одно преимущество — если что-то сломается, его просто можно выкинуть и не мучаться с гарантиями и прочей мутью.
> А там более если пишешь для удовольствие — можно взять любой язык или платформу которая вам нравиться. Главное только не нести чушь о том чего не знаете.
Только не надо называть эти технологии передовыми, и расписывать во всю, и так далее. хелловорлд на любом нормальном языке должен быть хелловорлдом, а не тянуть за собой тонну библиотек и запускаться по полминуты.
> Сам .NET версии 3.5 включает в себя огромнейшее количество готовых р�! �шений с хорошей документацией и выполненных в одном едином стиле,
придерживаясь концепций ООП. Такой функционал и возможности тотал командеру вашему и не снились, и это 50 мегабайт,
Зато «мой» тотал коммандер умеет хорошо работать с файлами, и не тормозит — вашему .NET такое и не снилось тем более. А используется ли там ООП (хотя он по моему во всех программах за последние лет 20 точно есть), и какой там стиль кода — мне по барабану.
> И сравнение объёма с объёмом готовой программы чёткой направленности является форменной спекуляцией и лицемерием.
Да просто халявщики из МС не могут нормально ничего сделать. Ну слинкуйте вы нужные библиотеки статически (если конечно ваш .NET это позволяет), если у вас небольшая программа — в чем проблема то?
> который в ближайшее время будут поставляться вместе с OS Win7 которую вы готовь поспорить первые побежите ставить как только выйдет релиз.
Нет. Лучше уж тогда сразу макось или линукс, чем пародию на них.
> Я могу вам например дать линк использования pooling при создании игр на XNA и .NET.
Бугога)) Сначала они придумывают GC, потом придумывают способ как им не пользоваться.
И вообще, все преимущества которые вы тут расписываете, я могу так же применить например к PHP или ruby. Множество библиотек, фреймворков (да-да, со стройными концепциями, вы rails например видели?), автоматическое управление памятью тоже имеется. Только если вы захотите что-то на них написать для десктопа — получится тормозная фигня, как ни оптимизируй. Десктоп — это вам не серверные приложнеия писать, тут свои особенности.





