Microsoft .NET
С помощью среды разработки .NET, можно создавать различные приложения, включая веб-приложения и игры. Такие приложения могут быть разработаны для всех распространённых платформ: Windows, Android, iOS, MacOS и Linux. Готовые приложения можно размещать в магазинах приложений, или развертывать на компьютерах, серверах или мобильных устройствах.
Платформа .NET Core позволяет создавать приложения на языках C#, F# и Visual Basic с помощью интеграции в Visual Studio, Visual Studio Code, Sublime Text или Vim. Поддержка спецификации .NET Standard делает .NET Core совместимым с .NET Framework и API-интерфейсами Mono.
Платформа имеет открытый исходный код. Её можно использовать для личных нужд, а также в образовательных или коммерческих целях.
Особенности .NET Core:
- Доступны версии для Windows, MacOS и Linux.
- API-интерфейсы для множества сценариев.
- Совместимость с .NET Framework.
- Открытый исходный код.
- Гибкая среда разработки.
- Программы командной строки.
Состав .NET Core:
- Пакет SDK, включающий средства CLI .NET, среду выполнения ASP.NET Core, а также платформу и среду выполнения .NET Core.
- Среда выполнения .NET Core и библиотеки платформы.
- Среда выполнения ASP.NET Core и библиотеки платформы.
Как скачать Microsoft .NET
Перейдите на страницу загрузки и выберите версию для вашего устройства.
Что такое пакет SDK для .NET?
Пакет SDK для .NET — это набор библиотек и средств, с помощью которых разработчики могут создавать приложения и библиотеки .NET. Он содержит следующие компоненты, которые используются для сборки и запуска приложений:
- Интерфейс командной строки .NET.
- Среда выполнения и библиотеки .NET.
- Драйвер dotnet .
Установка пакета SDK для .NET
Как и в любом инструменте, первое , чтобы получить инструменты на вашем компьютере. В зависимости от сценария вы можете установить пакет SDK одним из следующих методов:
- Использовать собственные установщики.
- Использовать скрипт оболочки для установки.
Собственные установщики в основном предназначены для компьютеров разработчиков. Пакет SDK распространяется посредством собственного механизма установки каждой поддерживаемой платформы, например пакетов DEB в Ubuntu или пакетов MSI в Windows. Эти установщики устанавливают и настраивают среду в соответствии с требованиями пользователя, чтобы он мог использовать пакет SDK сразу после установки. Однако они требуют прав администратора на компьютере. Вы найдете пакет SDK для установки на странице загрузок .NET.
Скрипты установки, с другой стороны, не требуют прав администратора. Но они не устанавливают все необходимые компоненты на компьютере; вы должны установить их вручную. Скрипты предназначены в первую очередь для настройки серверов сборки или установки средств без прав администратора (не забывайте об особенности, касающейся необходимых компонентов). Дополнительные сведения см. в справочнике по скриптам установки. Если вы хотите настроить пакет SDK на сервере сборки CI, ознакомьтесь с помощью пакета SDK для .NET в средах непрерывной интеграции (CI).
По умолчанию пакет SDK устанавливается параллельно (SxS), то есть на одном компьютере может быть установлено несколько версий. Сведения о том, как версия выбирается при выполнении команд CLI, см. в разделе “Выбор используемой версии .NET”.
Руководство по обеспечению безопасности
Пакет SDK для .NET находит и выполняет различные средства, которые будут отправляться в виде отдельных исполняемых двоичных файлов в пакете SDK. В большинстве случаев пакет SDK может определить полный путь к исполняемому файлу. Однако существуют исключения, в которых пакет SDK не может определить путь и зависит от входных данных пользователя. Возможно, пользователь может предоставить входные данные, которые приводят к выполнению вредоносного программного обеспечения пакета SDK для .NET. По этой причине не следует доверять репозиториям с двоичными файлами, которые соответствуют определенным именам файлов в расположении установки пакета SDK, например msbuild.exe. Пакет SDK устанавливается в папку с версиями, например C:\Program Files\dotnet\sdk\7.0.400\ в Windows или /usr/bin/share/dotnet/sdk/7.0.400 в Linux.
См. также
- Скачивание .NET
- Обзор интерфейса командной строки .NET
- Обзор управления версиями .NET
- Удаление среды выполнения .NET и пакета SDK
- Выбор версии .NET для использования
.NET Core: номера версий и global.json
Уверен, большинство людей, читающих это, знают, что Microsoft недавно анонсировала ASP.NET Core и .NET Core 2.0 Preview 1 на Microsoft Build 2017.
У этой статьи нет цели — дать введение в ASP.NET Core. Вместо этого мы рассмотрим установку .NET Core 2.0 Preview 1 на ваш компьютер таким образом, чтобы это не мешало параллельно работать над другими проектами под ASP.NET Core 1.0/1.1. Т.е. мы установим несколько версий .NET Core на одном компьютере.
Установка .NET Core 2.0 Preview 1 SDK
Очевидно, первое, что нужно сделать — установить .NET Core 2.0 Preview 1 SDK отсюда. Это очень легко: никакого выбора вариантов установки — просто скачиваете и устанавливаете. И там только один номер версии!
Одно небольшое замечание: .NET Core теперь также включает ASP.NET Core. Это значит, что вам нужно устанавливать меньше внешних пакетов, когда вы разворачиваете свое приложение, что не может не радовать!
Стоит также отметить, что, если вы хотите создавать приложения ASP.NET Core 2.0 в Visual Studio, вам нужно будет установить предварительную версию Visual Studio 2017. Её можно устанавливать параллельно со стабильной версией.
Версии .NET Core
Выше я написал, что новый .NET Core имеет только один номер версии 2.0 preview 1, но это не совсем так. Есть два разных аспекта установки .NET Core: номер версии SDK/CLI (command line interface) и номер версии runtime (среды исполнения или .NET Core Shared Framework Host).
Если вы только-что установили 2.0 preview 1, то, если наберете в консоли dotnet –info, увидите примерно следующее:
$ dotnet --info .NET Command Line Tools (2.0.0-preview1-005977) Product Information: Version: 2.0.0-preview1-005977 Commit SHA-1 hash: 414cab8a0b Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.0-preview1-005977\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983
Там целая куча разной информации, среди которой есть два разных номера версий:
- 2.0.0-preview1-005977 — версия SDK
- 2.0.0-preview1-002111-00 — версия среды исполнения
Но эти номера версий немного вводят в заблуждение. У меня на компьютере установлены также .NET Core SDK версии 1.0 и .NET Core Runtime версии 1.1.1 и 1.0.4, но здесь нет никакой информации о инх.
Понимание версий .NET Core runtime
Одно из преимуществ .NET Core заключается в возможности установи параллельно нескольких версий среды исполнения параллельно, без влияния их друг на друга. Это отличается от того, как происходит установка .NET Framework. Вы не можете установить параллельно .NET Framework 4.5, 4.6 и 4.7 — версия 4.7 заменит предыдущие версии.
Вы можете увидеть, какие версии среды исполнения .NET Core уже установлены, если зайдете в папку C:\Program Files\dotnet\shared\Microsoft.NETCore.App (на маках нужно смотреть в папку /usr/local/share/dotnet/shared/Microsoft.NETCore.App ). Как видите, на моем компьютере установлено три версии:
Следующий вопрос — как узнать, какая версия среды исполнения будет использоваться, когда вы запускаете свое приложение?
Всё очень просто: вам нужно указать нужную версию в .csproj файле!
Например, в проекте .NET Core 1.1 вы можете установить параметр (или , если вы собираете проект под несколько разных версий) в значение netcoreapp1.1 :
netcoreapp1.1
В этом случае приложение будет использовать .NET Core версии 1.1.1 (см. выше список установленных версий). Если вы установите в значение netcoreapp1.0 , то будет использоваться версия 1.0.4.
Файл .csproj: для ASP.NET приложения, использующего runtime версии 2.0 preview 1 будет выглядеть примерно так:
netcoreapp2.0 aspnet-v2test-32250BD7-D335-414A-A537-53B40874D211
В файле .csproj указано для значение netcoreapp2.0 и будет использована максимальная соответствующая ему версия (на моем компьютере — это 2.0.0-preview1-002111-00 ).
Понимание версий SDK
Надеюсь, теперь вы всё понимаете про версии среды исполнения .NET Core. Но у нас всё еще остается открытым вопрос про версии SDK/CLI.
Если вы перейдете в папку C:\Program Files\dotnet\sdk (на маках нужно смотреть в папку /usr/local/share/dotnet/sdk ), вы увидите, какие версии SDK установлены на вашем компьютере. Как видите, у меня установлено две версии: 1.0.0 и 2.0.0-preview1-005977 .
Грубо говоря, SDK — это штука, которая предоставляет команды, связанные со сборкой: dotnet new , dotnet build , dotnet publish и т.п.
В общем случае, любая версия SDK, которая больше версии, использованной при создании проекта, может быть использована для его сборки ( dotnet build и dotnet publish ). Таким образом, вы можете просто использовать SDK версии 2.0 для работы с проектами, созданными в SDK версии 1.0.
Это значит, что в большинстве случаев вы можете использовать для всех проектов последнюю версию SDK. Другая версия SDK может понадобиться, например, если вы хотите собрать проект, использующий файл project.json (в этом случае вам будет нужен RC2 SDK).
Текущая версия SDK также влияет на новые проекты, создаваемые командой dotnet new . Если вы используете SDK версии 2.0 Preview 1, вы получите приложение на основе netcoreapp2.0 , если вы используете SDK версии 1.0, вы получите приложение на основе netcoreapp1.1 !
Следующий вопрос — как указать приложению, какую версию SDK нужно использовать.
Выбор версии SDK в файле global.json
Файл global.json имеет очень простой формат, который просто задает, какую версию SDK нужно использовать:
Раньше файл global.json использовался еще и для того, чтобы указать папки с исходным кодом решения, но эта функциональность будет удалена в будущих версиях.
Когда вы запускаете dotnet new или dotnet build , dotnet ищет global.json , сначала в текущей папке, потом во всех родительских папках. Если global.json найден (и доступна версия SDK, указанная там!), то эта версия будет использована для всех запускаемых команд SDK внутри этой папки. Если не получилось найти ни один файл global.json , будет использована последняя доступная версия SDK, в моем случае, 2.0.0-preview1-005977 .
Лично я поместил вышеуказанный global.json в свою папку Projects и поэтому все существующие проекты, которые в ней находятся, будут продолжать использовать SDK 1.0.0 (а также все новые проекты, которые я там создаю). Затем я создал подпапку netcore20 и добавил следующий global.json . В ней я размещаю все проекты, в которых хочу “поиграть” с предварительной версией ASP.NET Core 2.0, не рискуя получить проблемы из-за этого!
Заключение
Версионирование было одной из проблем .NET Core до недавнего времени. Выравнивание всех версий в будущем, безусловно, упростит ситуацию и, как мы надеемся, это будет вызывать меньше путаницы. Но по-прежнему стоит попытаться понять разницу между версиями среды выполнения и версиями SDK. Я надеюсь, что этот пост помог прояснить некоторые из этих вопросов!
При подготовке материала использовались источники:
https://www.comss.ru/page.php?id=6013
https://learn.microsoft.com/ru-ru/dotnet/core/sdk
https://habr.com/ru/articles/329102/