.NET Core: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
Пока не опакечено. Исходный код: https://github.com/dotnet/coreclr
.NET Core — это универсальная платформа разработки, которая поддерживается корпорацией Майкрософт и сообществом .NET на сайте [https://github.com/dotnet/core GitHub]. Она является кроссплатформенной: поддерживает Windows, Mac OS и Linux. Имеет открытый исходный код: распространяется по лицензиям MIT и Apache 2.


Для работы (p8 по состоянию 22.03.2017) можно использовать инструкции с сайта microsoft, касающиеся '''Fedora 23'''
Платформа .NET Core является кроссплатформенным аналогом .NET Framework на уровне библиотек базовых классов (BCL) .NET Framework. Она реализует спецификацию библиотеки [https://docs.microsoft.com/ru-ru/dotnet/standard/library .NET Standard].


* https://www.microsoft.com/net/core#linuxfedora
Важным отличием от проекта Mono, который направлен на создание свободной среды, совместимой с .NET Framework, является то, что .NET Core не имеет реализации Windows Forms и не реализует API .NET Framework с использованием тех же имён сборок, то есть не позволяет запускать приложения, собранные для .NET Framework.
 
Для ALT p8 и Sisyphus собран .NET Core 2.0.0 preview1, соответствующий спецификации .NET Standard 2.0. Платформа развивается очень быстро, и использование версий 1.0 не рекомендуется.
 
В составе SDK поставляется компилятор C# с открытым исходным кодом из состава .NET Compiler Platform — [https://github.com/dotnet/roslyn Roslyn].
 
В качестве среды разработки удобно использовать [[Visual Studio Code]] (см. подробнее по ссылке), для которого имеется расширение, позволяющее отлаживать приложения, написанные на C# под .NET Core на Linux.
 
Сама по себе платформа .NET Core поддерживает только модель консольных приложений и приложений ASP.NET Core. Для создания графического интерфейса можно смотреть на [https://www.xamarin.com/forms Xamarin Forms].


== Установка ==
== Установка ==
Установите дополнительные пакеты:
Для установки среды выполнения (CoreCLR) с необходимыми библиотеками установите мета-пакет dotnet:
  apt-get install libunwind libicu54
  apt-get install dotnet
Для разработки приложений установите SDK для .NET Core (пакет dotnet-sdk):
apt-get install dotnet-sdk


Скачайте саму .NET для '''Fedora 23'''
=== Создание приложения «Hello, world!» ===
<source lang="text">curl -SL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=843457</source>
от  root:
  mkdir /opt/dotnet
  tar xzf dotnet.tar.gz -C /opt/dotnet
  ln -s /opt/dotnet/dotnet /usr/local/bin
 
== Проверка (не от root)==
(Желательно иметь в /tmp >2 ГБ свободного места)
(Желательно иметь в /tmp >2 ГБ свободного места)
   dotnet new console -o hwapp
   dotnet new console -o /tmp/hwapp
   cd hwapp
   cd /tmp/hwapp
   dotnet restore
   dotnet restore
   dotnet run
   dotnet run


== Output ==
=== Output ===
<source lang="text">cas@cas dotnet $ dotnet new console -o hwapp
<source lang="text">
cas@cas dotnet $ dotnet new console -o hwapp


Welcome to .NET Core!
Welcome to .NET Core!
Строка 44: Строка 48:
Content generation time: 93,9086 ms
Content generation time: 93,9086 ms
The template "Console Application" created successfully.
The template "Console Application" created successfully.
cas@cas dotnet $ cd hwapp
cas@cas dotnet $ cd hwapp
cas@cas hwapp $ dotnet restore
cas@cas hwapp $ dotnet restore
   Restoring packages for /home/cas/tmp/dotnet/hwapp/hwapp.csproj...
   Restoring packages for /home/cas/tmp/dotnet/hwapp/hwapp.csproj...
Строка 57: Строка 63:
   Feeds used:
   Feeds used:
       https://api.nuget.org/v3/index.json
       https://api.nuget.org/v3/index.json
cas@cas hwapp $ dotnet run
cas@cas hwapp $ dotnet run
Hello World!
Hello World!
cas@cas hwapp $</source>
</source>
 
== Основные команды ==
Всё взаимодействие с .NET Core из командной строки осуществляется через команду
$ dotnet
Для запуска приложения:
$ dotnet программа
Для запуска nuget:
$ dotnet nuget
Для скачивания и подготовки всех необходимых для сборки проекта пакетов:
$ dotnet restore
Для сборки [https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-msbuild проекта MSBuild] ([https://docs.microsoft.com/ru-ru/visualstudio/msbuild/msbuild-command-line-reference подробнее о MSBuild]):
$ dotnet msbuild
Для сборки [https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-build build]:
$ dotnet build
 
== Особенности ==
* Поддерживается только 64-битная платформа (x86_64).
 
* В настоящий момент nuget нормально не поддерживает работу в оффлайн-режиме (с предварительно подготовленным кэшем), и даже с использованием локального репозитория есть проблемы.
 
 
== Ссылки ==
* [https://docs.microsoft.com/ru-ru/dotnet/core/ .NET Core]
* [https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/using-with-xplat-cli .NET Cli для начинающих]
* [https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-publish публикация приложения]


== Visual Studio Code ==
== Исходный код ==
* [https://github.com/dotnet/coreclr dotnet/coreclr] — содержит .NET Core runtime, называемый CoreCLR и базовую библиотеку (mscorlib) с низкоуровневыми классами и базовыми типами данных.
* [https://github.com/dotnet/corefx dotnet/corefx] — исходный код большинства классов .NET Framework library.
* [https://github.com/dotnet/core-setup dotnet/core-setup] — исходный код команды dotnet и policy logic для запуска базового кода (hostfxr, hostpolicy), которые позволяют запустить программу через dotnet <программа>.
* [https://github.com/dotnet/cli dotnet/cli repo] — исходный код команд, касающихся сборки проекта (таких, как 'dotnet build', 'dotnet restore' и 'dotnet publish').


Можно установить Visual Studio Code
https://code.visualstudio.com/
Устанавливать из .tar.gz для Linux x64
запускать code


[[Категория: .NET]]
[[Категория: .NET]]

Версия от 08:17, 4 июля 2017

.NET Core — это универсальная платформа разработки, которая поддерживается корпорацией Майкрософт и сообществом .NET на сайте GitHub. Она является кроссплатформенной: поддерживает Windows, Mac OS и Linux. Имеет открытый исходный код: распространяется по лицензиям MIT и Apache 2.

Платформа .NET Core является кроссплатформенным аналогом .NET Framework на уровне библиотек базовых классов (BCL) .NET Framework. Она реализует спецификацию библиотеки .NET Standard.

Важным отличием от проекта Mono, который направлен на создание свободной среды, совместимой с .NET Framework, является то, что .NET Core не имеет реализации Windows Forms и не реализует API .NET Framework с использованием тех же имён сборок, то есть не позволяет запускать приложения, собранные для .NET Framework.

Для ALT p8 и Sisyphus собран .NET Core 2.0.0 preview1, соответствующий спецификации .NET Standard 2.0. Платформа развивается очень быстро, и использование версий 1.0 не рекомендуется.

В составе SDK поставляется компилятор C# с открытым исходным кодом из состава .NET Compiler Platform — Roslyn.

В качестве среды разработки удобно использовать Visual Studio Code (см. подробнее по ссылке), для которого имеется расширение, позволяющее отлаживать приложения, написанные на C# под .NET Core на Linux.

Сама по себе платформа .NET Core поддерживает только модель консольных приложений и приложений ASP.NET Core. Для создания графического интерфейса можно смотреть на Xamarin Forms.

Установка

Для установки среды выполнения (CoreCLR) с необходимыми библиотеками установите мета-пакет dotnet:

apt-get install dotnet

Для разработки приложений установите SDK для .NET Core (пакет dotnet-sdk):

apt-get install dotnet-sdk

Создание приложения «Hello, world!»

(Желательно иметь в /tmp >2 ГБ свободного места)

  dotnet new console -o /tmp/hwapp
  cd /tmp/hwapp
  dotnet restore
  dotnet run

Output

cas@cas dotnet $ dotnet new console -o hwapp

Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.

Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.

Configuring...
-------------------
A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
Decompressing 100% 6052 ms
Expanding 100% 8288 ms
Getting ready...
Content generation time: 93,9086 ms
The template "Console Application" created successfully.

cas@cas dotnet $ cd hwapp

cas@cas hwapp $ dotnet restore
  Restoring packages for /home/cas/tmp/dotnet/hwapp/hwapp.csproj...
  Generating MSBuild file /home/cas/tmp/dotnet/hwapp/obj/hwapp.csproj.nuget.g.props.
  Generating MSBuild file /home/cas/tmp/dotnet/hwapp/obj/hwapp.csproj.nuget.g.targets.
  Writing lock file to disk. Path: /home/cas/tmp/dotnet/hwapp/obj/project.assets.json
  Restore completed in 766,84 ms for /home/cas/tmp/dotnet/hwapp/hwapp.csproj.
  
  NuGet Config files used:
      /home/cas/.nuget/NuGet/NuGet.Config
  
  Feeds used:
      https://api.nuget.org/v3/index.json

cas@cas hwapp $ dotnet run
Hello World!

Основные команды

Всё взаимодействие с .NET Core из командной строки осуществляется через команду

$ dotnet

Для запуска приложения:

$ dotnet программа

Для запуска nuget:

$ dotnet nuget

Для скачивания и подготовки всех необходимых для сборки проекта пакетов:

$ dotnet restore

Для сборки проекта MSBuild (подробнее о MSBuild):

$ dotnet msbuild

Для сборки build:

$ dotnet build

Особенности

  • Поддерживается только 64-битная платформа (x86_64).
  • В настоящий момент nuget нормально не поддерживает работу в оффлайн-режиме (с предварительно подготовленным кэшем), и даже с использованием локального репозитория есть проблемы.


Ссылки

Исходный код

  • dotnet/coreclr — содержит .NET Core runtime, называемый CoreCLR и базовую библиотеку (mscorlib) с низкоуровневыми классами и базовыми типами данных.
  • dotnet/corefx — исходный код большинства классов .NET Framework library.
  • dotnet/core-setup — исходный код команды dotnet и policy logic для запуска базового кода (hostfxr, hostpolicy), которые позволяют запустить программу через dotnet <программа>.
  • dotnet/cli repo — исходный код команд, касающихся сборки проекта (таких, как 'dotnet build', 'dotnet restore' и 'dotnet publish').