Оглавление
Случаи использования .NET
В следующих разделах более подробно описаны ранее перечисленные причины для выбора платформы .NET вместо .NET Framework.
Создание кроссплатформенных приложений
Если веб-приложение или служба будут работать на нескольких платформах (Windows, Linux и macOS), используйте платформу .NET.
В среде .NET также можно использовать упомянутые ранее операционные системы в качестве рабочих станций для разработки. Visual Studio предоставляет интегрированную среду разработки (IDE) для Windows и macOS. Можно также использовать редактор Visual Studio Code, который выполняется на платформах macOS, Linux и Windows. Visual Studio Code поддерживает .NET, включая технологию IntelliSense и отладку. С .NET работает большинство сторонних редакторов, например Sublime, Emacs и VI. Эти сторонние редакторы получают доступ к функциям в редакторе IntelliSense с помощью Omnisharp. Вы также можете использовать вместо редакторов кода непосредственно .NET CLI, доступный для всех поддерживаемых платформ.
Архитектура микрослужб
Архитектура микрослужб позволяет использовать сочетание технологий за пределами службы. Такое сочетание технологий позволяет постепенно добавлять новые микрослужбы в .NET для параллельного использования с другими службами и микрослужбами. Например, можно комбинировать микрослужбы или службы, созданные на основе .NET Framework, Java, Ruby или других монолитные технологий.
Пользователям на выбор предоставляется множество инфраструктурных платформ. Для больших и сложных систем микрослужб можно использовать Azure Service Fabric. Служба приложений Azure лучше всего подойдет для микрослужб без сохранения состояния. Альтернативы микрослужб на основе Docker поддерживают любые подходы, как описано в разделе . Все эти платформы поддерживают .NET и идеально подходят для размещения микрослужб.
Дополнительные сведения об архитектуре микрослужб см. в статье Микрослужбы .NET: архитектура контейнерных приложений .NET.
Контейнеры
Контейнеры обычно используются вместе с архитектурой микрослужб. Их также можно использовать, чтобы поместить в контейнер веб-приложения или службы на базе любого архитектурного шаблона. Среду .NET Framework можно использовать для контейнеров Windows, но упрощенные возможности и модульный принцип среды .NET делают ее оптимальной для контейнеров. При создании и развертывании контейнера размер его образа гораздо меньше в среде .NET. Так как эта среда поддерживает разные платформы, серверные приложения можно развертывать, например, в контейнеры Docker в Linux.
Затем эти контейнеры можно размещать в собственной инфраструктуре Linux или Windows или в облачной службе,такой как Служба Azure Kubernetes. Служба Azure Kubernetes может выполнять оркестрацию и масштабировать приложения на основе контейнеров, а также управлять ими в облаке.
Масштабируемые системы с высокой производительностью
Если для вашей системы требуется максимальная производительность и возможности масштабирования, мы рекомендуем использовать среды .NET и ASP.NET Core. Высокопроизводительная серверная среда выполнения для Windows Server и Linux делает ASP.NET Core самой эффективной веб-платформой в .
Производительность и масштабируемость особенно важны для архитектур микрослужб, где могут выполняться сотни микрослужб. Среда ASP.NET Core позволяет уменьшить количество серверов и виртуальных машин, необходимых для системы. В конечном счете это способствует сокращению расходов на архитектуру и размещение.
Создание приложений с поддержкой разных версий .NET
Если требуется установить приложения с зависимостями в разных версиях платформ .NET, рекомендуется использовать среду .NET. Такая реализация .NET поддерживает параллельную установку разных версий среды выполнения .NET на одном компьютере. За счет простой параллельной установки на одном сервере можно размещать несколько служб, каждая из которых устанавливается в собственной версии .NET. Это позволяет устранить риски и сократить расходы на обновление приложений и ИТ-операции.
Параллельная установка невозможна при использовании .NET Framework. Это компонент Windows, и на компьютере может существовать только одна версия этого компонента. Каждая версия .NET Framework заменяет предыдущую версию. При установке нового приложения, предназначенного для более поздней версии .NET Framework, может быть нарушена работа существующих приложений, запущенных на компьютере, поскольку предыдущая версия была заменена.
Типы выпусков
Сведения о типе каждого выпуска закодированы в номере версии в формате основной.дополнительный.исправление.
Пример:
- .NET Core 3.0 и NET 5.0 являются основными выпусками.
- .NET Core 3.1 — это первый дополнительный выпуск после основного выпуска .NET Core 3.0.
- .NET Core 3.1.7 — это седьмое исправление для .NET Core 3.1.
Основные выпуски
Основные выпуски включают новые функции, контактные зоны нового общедоступного API и исправления ошибок. К примерам относятся .NET Core 3.0 и .NET 5.0. Ввиду характера изменений эти выпуски должны включать критически важные изменения. Основные выпуски устанавливаются параллельно с предыдущими основными выпусками.
Дополнительные выпуски
Дополнительные выпуски также включают новые функции, контактные зоны общедоступных API и исправления ошибок, а также могут включать критически важные изменения. К примерам относятся .NET Core 2.1 и .NET Core 3.1
Разница между этими и основными выпусками заключается в том, что важность изменений ниже. Важность обновления приложения с .NET Core 3.0 до 3.1 ниже важности перехода на следующую версию
Дополнительные выпуски устанавливаются параллельно с предыдущими дополнительными выпусками.
Сервисные обновления
Сервисные обновления (исправления) выпускаются почти каждый месяц, и эти обновления включают исправления ошибок в системе безопасности, а также исправления, не связанные с безопасностью. Например, .NET Core 3.1.8 является восьмым обновлением для .NET Core 3.1. Когда эти обновления включают исправления для системы безопасности, они выпускаются в «день установки исправлений», который всегда приходится на второй вторник месяца. Сервисные обновления должны обеспечивать совместимость. Начиная с .NET Core 3.1 сервисные обновления — это обновления, которые удаляют предыдущее обновление. Например, последнее сервисное обновление для 3.1 после успешной установки удаляет предыдущее обновление 3.1.
Пакеты функций (только для пакетов SDK)
Управление версиями для пакетов SDK для .NET работает немного иначе, чем для среды выполнения .NET. Для обеспечения соответствия новым выпускам Visual Studio обновления пакета SDK для .NET иногда содержат новые функции или новые версии таких компонентов, как MSBuild и NuGet. Эти новые функции или компоненты могут быть несовместимы с версиями, поставляемыми в предыдущих обновлениях пакета SDK для той же основной или дополнительной версии.
Для различения таких обновлений пакет SDK для .NET использует концепцию пакетов функций. Например, первым пакетом SDK для .NET Core 3.1 был 3.1.100. Этот выпуск соответствует пакету функций 3.1.1xx. Пакеты функций определяют сотни в обозначении исправления в номере версии (три последних цифры). Например, в версиях 3.1.101 и 3.1.201 пакеты функций различаются, а в версиях 3.1.101 и 3.1.199 они одинаковы. При установке пакета SDK для .NET Core 3.1.101 пакет SDK для .NET Core 3.1.100, если он есть на компьютере, удаляется. Когда на тот же компьютер устанавливается пакет SDK для .NET Core 3.1.200, пакет SDK для .NET Core 3.1.101 не удаляется.
Накат и совместимость среды выполнения
Основные и дополнительные обновления устанавливаются параллельно с предыдущими версиями. Приложение, созданное для конкретной основной.дополнительной версии, по-прежнему будет использовать эту целевую среду выполнения, даже если установлена более новая версия. Приложение не выполняет автоматический накат для использования более новой основной.дополнительной версии среды выполнения, если только вы не выберете это поведение. Приложение, разработанное для .NET Core 3.0, не запускается автоматически с .NET Core 3.1. Перед развертыванием в рабочей среде рекомендуется перестроить приложение и выполнить тестирование на соответствие более новой основной или дополнительной версии среды выполнения. Дополнительные сведения см. в статьях и Обновление версии среды выполнения автономного развертывания.
Сервисные обновления обрабатываются иначе, чем основные и дополнительные выпуски. Приложение, созданное для платформы .NET Core 3.1, по умолчанию выполняется в среде выполнения 3.1.0. При установке сервисного обновления оно автоматически выполняет накат, чтобы использовать более новую среду выполнения 3.1.1. Это поведение используется по умолчанию, поскольку требуется, чтобы исправления для системы безопасности использовались сразу после установки без каких-либо других действий. Можно отказаться от такого поведения наката по умолчанию.
.NET Framework 4.6
.NET Framework 4.6 был анонсирован 12 ноября 2014 года. Он был выпущен 20 июля 2015 года. Он поддерживает новый JIT -компилятор (JIT) для 64-разрядных систем под названием RyuJIT, который отличается более высокой производительностью и поддержкой SSE2 и AVX2. наборы инструкций. WPF и Windows Forms получили обновления для сценариев с высоким разрешением. В WCF добавлена поддержка TLS 1.1 и TLS 1.2. Для этой версии требуется Windows Vista SP2 или более поздняя версия .
Криптографический API в .NET Framework 4.6 использует последнюю версию криптографического API Windows CNG . В результате для .NET Framework доступна криптография NSA Suite B. Пакет B состоит из AES , семейства алгоритмов хеширования SHA-2 , эллиптической кривой Диффи – Хеллмана и эллиптической кривой DSA .
.NET Framework 4.6 поддерживается в Windows Vista , Server 2008 , , Server 2008 R2 , , Server 2012 , 8.1 , Server 2012 R2 , и Server 2016 . Однако .NET Framework 4.6.1 и 4.6.2 отказывается от поддержки Windows Vista и Server 2008 , а .NET Framework 4.6.2 отказывается от поддержки Windows 8 .
.NET Framework 4.6.1
О выпуске .NET Framework 4.6.1 было объявлено 30 ноября 2015 года. Для этой версии требуется Windows 7 SP1 или более поздняя версия . Новые функции и API включают:
- Улучшения WPF для проверки орфографии, поддержка пользовательских словарей и улучшенная сенсорная производительность.
- Расширенная поддержка сертификатов X509 алгоритма цифровой подписи на эллиптических кривых (ECDSA).
- Добавлена поддержка подключения к SQL для AlwaysOn, Always Encrypted и улучшена отказоустойчивость при открытии подключения при подключении к базе данных SQL Azure.
- База данных SQL Azure теперь поддерживает распределенные транзакции с использованием обновленных API-интерфейсов System.Transactions.
- Многие другие исправления, связанные с производительностью, стабильностью и надежностью, в RyuJIT, GC, WPF и WCF.
.NET Framework 4.6.2
Предварительная версия .NET Framework 4.6.2 была анонсирована 30 марта 2016 г. Она была выпущена 2 августа 2016 г. Для этой версии требуется Windows 7 SP1 или более поздняя версия . Новые функции включают:
- Поддержка путей длиннее 260 символов
- Поддержка FIPS 186-3 DSA в сертификатах X.509
- Поддержка TLS 1.1 / 1.2 для ClickOnce
- Поддержка локализации аннотаций данных в ASP.NET
- Включение настольных приложений .NET с помощью Project Centennial
- Мягкая клавиатура и поддержка DPI для каждого монитора для WPF
.NET Framework 4.6.2 также поставляется как образ контейнера Windows.
Для чего нужна программа .NET Framework?
У многих пользователей возникают вопросы, связанные с программой .NET Framework. Дело в том, что эта программа занимает некоторое ощутимое пространство на диске, но вроде как никто ею не пользуется. К тому же часто на компьютере можно обнаружить сразу несколько версий данной программы и невольно возникает вопрос — для чего эта программа нужна и стоит ли ее удалить?
Давайте разберемся с .NET Framework и ответим на эти вопросы.
Стоит отметить, что не все программы, установленные на компьютере, предназначены для использования конечными пользователями. Есть специальные вспомогательные или служебные программы, которые являются универсальными помощниками для работы других программ. Например, хорошо известный многим Adobe Flash Player позволяет воспроизводить видео и различный флеш-контент (анимацию, музыку, игры) прямо на веб-страницах в браузере. Пользователи сами никогда не запускают эту программу, она автоматически запускается и используется браузерами без участия пользователя. Тоже самое можно сказать о видеокодеках, которые являются вспомогательными программами для воспроизведения видеофайлов.
Подобных программ достаточно много и одна из них — Microsoft .NET Framework.
По сути Microsoft .NET Framework — это некоторая технология, которая используется огромным количеством пользовательских программ и приложений. Очень часто бывает так, что при установке какой-либо программы появляется сообщение о необходимости иметь на компьютере .NET Framework определенной версии и предлагается ее установить.
Версий .NET Framework имеет множество — от 1.0 до 4.5 (в настоящее время) и скорее всего новые версии будут периодически появляться. Ситуацию еще усугубляет то, что разные пользовательские программы могут для своей работы нуждаться в разных версиях .NET Framework, поэтому придется иметь на компьютере несколько установленных версий. К сожалению, тут не действует правило, что все последующие версии включают в себя компоненты предыдущих, поэтому установив самую последнюю версию .NET Framework не стоит удалять более ранние, так как подобное действие может привести к неработоспособности других программ. Поэтому вывод можно сделать следующий — все версии Microsoft .NET Framework, которые установлены на вашем компьютере нужны для работы других программ и удалять их не следует.
Ну и в заключении хочу сказать, что если вы не очень хорошо разбираетесь в установленных на компьютере программах, но решили почистить компьютер от программ, которыми не пользуетесь, то не трогайте программы, в названии которых фигурирует слово «Microsoft», например, как в нашем случае — Microsoft .NET Framework.
Как правило (хоть и не всегда), подобные программы и приложения необходимы для работы операционной системы или являются связующим звеном между операционной системой и другими установленными на компьютере программами. Ну а если все же сомневаетесь, то введите название программы в поисковое поле Google или Яндекс и выясните для чего эта программа предназначена и можно ли ее безболезненно удалить с компьютера.
Не упустите возможность сделать доброе дело:
нажмите на кнопку социальной сети, в которой вы зарегистрированы, чтобы другие люди тоже получили пользу от этого материала. СПАСИБО!
.NET Framework 2.0
Версия 2.0 была выпущена 22 января 2006 года. Она также была выпущена вместе с Visual Studio 2005 , Microsoft SQL Server 2005 и BizTalk 2006. Комплект разработки программного обеспечения для этой версии был выпущен 29 ноября 2006 года. Это была последняя версия, поддерживающая Windows 98 и Windows Me .
Изменения в 2.0 включают:
- Полная поддержка 64-битных вычислений для аппаратных платформ x64 и IA-64
- Интеграция с Microsoft SQL Server : вместо использования T-SQL можно создавать хранимые процедуры и триггеры на любом из .NET-совместимых языков.
- Новый API хостинга для собственных приложений, желающих разместить экземпляр среды выполнения .NET: новый API дает точный контроль над поведением среды выполнения в отношении многопоточности , выделения памяти и загрузки сборок. Первоначально он был разработан для эффективного размещения среды выполнения в Microsoft SQL Server , который реализует собственный планировщик и диспетчер памяти.
- Новые функции персонализации для ASP.NET , такие как поддержка тем, обложек, главных страниц и веб-частей.
- .NET Micro Framework , версия .NET Framework, относящаяся к инициативе Smart Personal Objects Technology.
- Провайдер членства
- Частичные занятия
- Обнуляемые типы
- Анонимные методы
- Итераторы
- Таблицы данных
- Общеязыковая среда выполнения (CLR) 2.0
- Языковая поддержка универсальных шаблонов, встроенных непосредственно в .NET CLR
.NET Framework 2.0 поддерживается в Windows 98 , ME , , XP , Server 2003 , Vista , Server 2008 и Server 2008 R2 . Приложения, использующие .NET Framework 2.0, также будут работать на компьютерах с установленным .NET Framework 3.0 или 3.5, который поддерживает дополнительные операционные системы.
Пакет обновления 2
Пакет обновления 2 для .NET Framework 2.0 был выпущен 16 января 2009 г. Для него требуется Windows 2000 с пакетом обновления 4 (SP4) плюс обновление KB835732 или KB891861, Windows XP с пакетом обновления 2 и установщик Windows 3.1. Это последняя версия, поддерживающая Windows 2000, хотя были некоторые неофициальные обходные пути для использования подмножества функций из версии 3.5 в Windows 2000.
Разница между CMS, фреймворками и написание кода с нуля
Разбираем на примере фронтенд-разработки. Предположим, вам нужно создать сайт. Есть 3 подхода, которые можно использовать: написать код с нуля, использовать framework или использовать CMS.
- Написать код с нуля. Открыть блокнот и с чистой строки написать весь сайт. Это удобно: можно сделать абсолютно все под себя. Ровно так, как вам нужно. Можно использовать любые технологии. Проведем аналогию с рисованием. Написать код с нуля — это как оказаться перед абсолютно чистым листом бумаги, имея под рукой все возможные инструменты рисования, от фломастеров до мелков. Полный полет фантазии. У этого подхода есть и минусы. Во-первых, это долго и дорого. Во-вторых, сложно. Нужно тщательно проверять работоспособность каждой функции, чтобы ничего не западало. В этом подходе высокий порог входа: разработчик-новичок не сможет создать полноценный продукт с нуля. Цена каждой ошибки высока.
- Использовать CMS. Возможно, вы слышали названия самых популярных из них: WordPress, Joomla, Drupal. Использование CMS — это почти противоположный вариант первому. Создать сайт с использованием CMS может любой уверенный пользователь компьютера, ему даже не обязательно быть разработчиком. CMS — это, по сути, уже готовый сайт. Вам остается только наполнить его содержанием: загрузить текст, картинки, видео и любой другой контент. И настроить внешний вид: шрифты, цвета, стили и другое. Если продолжать аналогию с рисованием, то использование CMS — это раскраска. За вас уже все нарисовали, промахнуться невозможно. Осталось только выбрать цвет фломастера и закрасить нужные части рисунка.
- Использовать framework. Framework — это промежуточный вариант по гибкости и сложности между написанием кода с нуля и использованием CMS. Если написание кода с нуля — это рисование любыми инструментами на чистом листе бумаги, а использование CMS — раскраска, то использование framework — это рисование в блокноте в клеточку. С одной стороны, вы все еще можете нарисовать что угодно и как угодно. С другой, уже есть направляющие линии и границы блокнота, так что рисовать проще.
Требования платформы .Net
Как и в случае с любыми приложениями, платформа .Net тоже имеет свои требования для нормальной поддержки работы программ. Чем новее версия microsoft.net (v4.0, 2.0, 3.5, 4.5), тем большие характеристики ПК она требует.
Однако приложения, разработанные на данной платформе, более чувствительны к производительности. То есть, если вы используете старый компьютер, то не будете устанавливать на него программы под windows 8, а значит и платформа версии 4.5 вам не нужна.
Для установки microsoft .net framework любой версии (v4.0, 2.0, 3.5, 4.5) вам понадобится:
- операционная система семейства виндовс, начиная с XP sp3 или server 2003 Sp2;
- компьютер с процессором от 1 Ггц;
- не менее чем 512 мб оперативной памяти;
- любая версия архитектуры процессора, начиная с x86.
Модели выполнения.
Приложения .NET запускают управляемый код в среде выполнения, известной как среда CLR.
CLR
.NET CLR — это кроссплатформенная среда выполнения, которая включает поддержку Windows, macOS и Linux. Среда CLR обрабатывает выделение памяти и управление ей. Среда CLR также является виртуальной машиной, которая не только выполняет приложения, но и создает, а также компилирует код с помощью JIT-компилятора.
Для получения дополнительной информации см. Common Language Runtime.
JIT-компилятор и промежуточный язык
Языки .NET более высокого уровня, например C#, компилируются до независимого от оборудования набора инструкций, который называется промежуточным языком (IL). При запуске приложений этот компилятор преобразует IL в машинный код, который понимает обработчик. JIT-компиляция происходит на том же компьютере, на котором будет выполняться код.
Так как JIT-компиляция происходит во время выполнения приложения, время компиляции является частью времени выполнения. Таким образом, JIT-компиляторы должны поддерживать баланс между временем оптимизации кода и экономии, к которой может привести результирующий код. Но JIT-компилятор знает фактическое оборудование и может освободить разработчиков от поставки различных реализаций для различных платформ.
JIT-компилятор .NET может выполнять многоуровневую компиляцию, что означает возможность перекомпиляции отдельных методов во время выполнения. Эта функция позволяет быстро компилировать, сохраняя при этом возможность создания высокоспециализированной версии кода для часто используемых методов.
Дополнительные сведения см. в статьях Управляемый процесс выполнения и .
Компилятор AOT
По умолчанию большинство рабочих нагрузок .NET являются JIT-компилятором, но .NET предлагает две формы компиляции на момент времени (AOT):
- Для некоторых сценариев требуется 100-процентная компиляция AOT. Примером может служить iOS.
- В других сценариях большая часть кода приложения компилируется с помощью AOT, но для некоторых частей используется JIT-компилятор. Некоторые шаблоны кода не распознаются AOT (например, универсальные шаблоны). Примером такой формы компиляции AOT является параметр публикации . Такая форма AOT позволяет использовать преимущества компиляции без ее недостатков.
Автоматическое управление памятью
Сборщик мусора (GC) управляет выделением и освобождением памяти для приложений. Каждый раз, когда код создает новый объект, среда CLR выделяет память для объекта из . Пока в управляемой куче есть доступное адресное пространство, среда выполнения продолжает выделять пространство для новых объектов. Когда остается недостаточное свободное пространство адресов, сборщик мусора проверяет наличие объектов в управляемой куче, которые больше не используются приложением. Затем эта память освобождается.
GC — это одна из служб CLR, которая помогает обеспечить безопасность памяти. Программа является безопасной по памяти, если она обращается только к выделенной памяти. Например, среда выполнения гарантирует, что приложение не обращается к невыделенной памяти за пределами границ массива.
Дополнительные сведения о сборке мусора см. в статьях Автоматическое управление памятью и Основы сборки мусора.
Работа с неуправляемыми ресурсами
Иногда код должен ссылаться на неуправляемые ресурсы. Неуправляемые ресурсы — это ресурсы, которые не обслуживаются средой выполнения .NET автоматически. Например, к неуправляемым ресурсам относятся дескрипторы файлов. Объект FileStream — управляемый, но он ссылается на дескриптор файла, который является неуправляемым ресурсом. После окончания работы с FileStream нужно явным образом освободить дескриптор файла.
В среде .NET объекты, которые ссылаются на неуправляемые ресурсы, реализуют интерфейс IDisposable. После окончания работы с объектом вызовите метод объекта, который отвечает за освобождение неуправляемых ресурсов. В языках .NET имеется удобная инструкция (C#, F#, VB), которая обеспечивает вызов метода .
Дополнительные сведения см. в разделе Очистка неуправляемых ресурсов.

Эта тема закрыта для публикации ответов.