Привет, мир .NET Core в Linux

  • Михаил
  • 12 мин. на прочтение
  • 119
  • 11 Nov 2022
  • 11 Nov 2022

В этой статье мы объясним, как установить .NET Core в операционной системе Linux (Ubuntu 20.04 LTS) и иметь возможность запускать приложения .NET Core в дополнение к их запуску, а также иметь возможность запускать, например, ASP.NET Core. и что можно посмотреть у клиента для проверки его работы.

Зачем запускать приложения Microsoft в Linux? Ответов может быть много, мы могли бы сказать за то, что вышли за стены, существовавшие долгое время, и за «соперничество», которое они якобы создали, чтобы увидеть между этими двумя средами ОС, еще за привлечение всего этого Linux-сообщества, чтобы они могли больше работать. удобные, хорошо поддерживаемые приложения C # или веб-страницы со всей мощью .NET Core, также другим ответом может быть снижение затрат в компании-разработчике или для себя в качестве пользовательского программиста, короче говоря, есть много причин, почему .NET Core поддерживается в операционных системах на базе Linux.

.NET Core совместим с Ubuntu. В этой статье описывается, как установить .NET Core на Ubuntu. Когда версия Ubuntu больше не поддерживается, .NET Core больше не совместим с этой версией. Однако есть немного больше пользовательских инструкций, по которым вы можете установить .NET Core в этих версиях.

Поддерживаемые дистрибутивы


На следующем графике, согласно источнику (https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu), у нас есть сравнительная таблица поддерживаемых версий и тех, которые не поддерживаются. иметь это.

Привет, мир .NET Core в Linux

 

В случае с этой статьей мы будем использовать Ubuntu 20.04 LTS (https://ubuntu.com/#download) вместе с .NET Core 3.1, позже мы перейдем к .NET Core 5.0.

Нам понадобится следующее:

  • Linux установлен в каком-то установленном и настроенном экземпляре (https://www.process.st/checklist/ubuntu-server-setup-process/). Я оставил это до шага 14, таким образом, у вас уже есть хорошо настроенная установка.
  • Putty для доступа к серверу Linux через SSH .
  • Очень хочет учиться.

Оглавление

  1. Установка .NET Core 3.1 SDK и среды выполнения в среде Linux.
  2. Создание и компиляция вашего первого приложения в .NET Core.
  3. Создайте приложение в ASP.NET Core.
  4. Протестируйте наше приложение ASP.NET Core в веб-браузере.

Установка .NET Core 3.1 SDK и среды выполнения в среде Linux

После установки Ubuntu перейдите по ссылке, где шаг за шагом объясняется, кто их первый раз, нам нужно получить доступ к операционной системе через SSH (Secure Shell), где я использую Putty в качестве эталона, но они могут использовать тот, который имеет наибольшую близость.


Теперь нам нужно иметь взаимосвязь между двумя компьютерами или виртуальными машинами, вызывать клиент и другой сервер, в моем случае это два компьютера в одной сети, чтобы иметь возможность контролировать среду Linux, в которой мы хотим работать. .NET Core, для этого после установки Putty мы проверяем, хорошо ли оба компьютера подключены к сети, с помощью команды Ping в консоли Windows.

Привет, мир .NET Core в Linux

 

Теперь запускаем Putty и ставим IP-адрес удаленного компьютера, на котором установлен наш Linux.

Привет, мир .NET Core в Linux

 

Далее уже устанавливаем соединение по SSH, если все должно появиться окно Linux Shell где запрашивает доступ, в которых находятся ранее настроенные учетные данные пользователя Ubuntu (логин/пароль)

Привет, мир .NET Core в Linux

 

Привет, мир .NET Core в Linux

 

До этого момента мы уже находились внутри Linux-машины, теперь, поскольку мы собираемся запускать установки, важно попытаться переключиться на пользователя root, который был тем, у кого было больше всего привилегий на уровне UNIX, поэтому, мы должны выполнить первые команды, чтобы перейти от нашего обычного пользователя к root.

#:~$ su -

Он запросит пароль пользователя root, и до этого момента мы можем приступить к установке .NET Core, но сначала всегда рекомендуется запускать последние обновления с помощью следующих команд.

sudo apt-get update # Получает список доступных обновлений.
sudo apt-get upgrade # Строго обновить текущие пакеты
sudo apt-get dist-upgrade # Установить (новые) обновления
sudo reboot # Перезагрузить операционную систему

Поскольку вы перезагрузили систему перед установкой .NET, выполните следующие команды, чтобы добавить ключ подписи пакета Microsoft в список доверенных ключей и добавить репозиторий пакетов.

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O пакеты-microsoft-prod.deb
sudo dpkg -i пакеты-microsoft-prod.deb

Установка SDK


Чтобы установить пакет SDK для .NET Core, выполните следующие команды:
sudo apt-получить обновление; sudo apt-get install -y apt-transport-https && sudo apt-получить обновление && sudo apt-get install -y dotnet-sdk-3.1

Установка во время выполнения


Следующие команды устанавливают среду выполнения ASP.NET Core, которая является наиболее совместимой средой выполнения для .NET Core. В терминале выполните следующие команды.

sudo apt-получить обновление; sudo apt-get install -y apt-transport-https && sudo apt-получить обновление && sudo apt-get install -y aspnetcore-runtime-3.1

В качестве альтернативы среде выполнения ASP.NET Core вы можете установить среду выполнения .NET Core, которая не включает поддержку ASP.NET Core: замените aspnetcore-runtime-3.1 в приведенной выше команде на dotnet-runtime-3.1.

sudo apt-get install -y dotnet-runtime-3.1

Создание и компиляция вашего первого приложения в .NET Core

Таким образом, мы уже можем иметь .NET Core 3.1, уже установленную версию SDK и среду выполнения для запуска наших приложений. Если вы хотите узнать, какие проекты вы можете запустить, которые включены в эту структуру, вы можете получить полный список, выполнив следующую команду:

dotnet new --help
Привет, мир .NET Core в Linux

 

Мы собираемся начать наш «привет, мир», во-первых, приняв заказ, в котором мы собираемся иметь наши проекты в Linux, для продвижения мы идем в домашнюю папку как пользователь root, и мы увидим папку нашего пользователя Ubuntu, в этом случай, мой пользователь "hughfernandez"И там внутри мы собираемся создать папку, в которой мы собираемся выполнить наше первое приложение с помощью команды.

mkdir holamundoConsola

Заходим в него и видим, что у нас ничего нет, но мы уже на папке.

Привет, мир .NET Core в Linux

 

Выполняем следующую команду:

dotnet new console
Привет, мир .NET Core в Linux

 

Если мы проверим сгенерированный список файлов нашего консольного проекта с помощью команды:

ls -1l
Привет, мир .NET Core в Linux

 

Если мы уже хотим просмотреть определенный файл, такой как «Program.cs», мы должны выполнить следующую команду (важно записать файл точно так, как он выглядит, иначе nano откроет новый файл)

sudo nano Program.cs
Привет, мир .NET Core в Linux

 

Как вы можете видеть на предыдущем изображении, я смог получить доступ к файлу .cs под названием «Программа» и смог добавить «Привет, мир из Linux!». Чтобы сохранить изменения, нажимаем Control + X, он попросит перезапишите изменения и снова вернитесь в командную среду в Linux.

Привет, мир .NET Core в Linux

 

К этому моменту мы уже можем скомпилировать наше приложение и запустить его следующими командами

dotnet build
Привет, мир .NET Core в Linux

 

dotnet run
Привет, мир .NET Core в Linux

 

Таким образом, мы уже создали консольное решение, мы вошли в файл «Program.cs», мы изменили строку кода с нашим hello world и, наконец, компиляцию и выполнение программы, но на этот раз в среде Linux.

Создайте приложение в ASP.NET Core


Для основной темы ASP.NET мы должны создать папку, как в предыдущем примере, в моем случае я дал ей имя «demoAsp», мы вводим ее и выполняем следующую команду для создания проекта ASP.NET Core,

dotnet new razor
or
dotnet new mvc
Привет, мир .NET Core в Linux

 

Если они запрашивают имя проекта, команда «dotnet new» по умолчанию использует имя папки, которую они создали, где они выполняют команду.

Привет, мир .NET Core в Linux

 

Чтобы запустить наше приложение в ASP.NET Core, вы должны сначала скомпилировать его с помощью команды «dotnet build», чтобы оно создало папку «/bin/Debug/netcoreapp3.1», а затем выполнить следующую команду в последней папке, упомянутой выше.

dotnet demoAsp.dll

Привет, мир .NET Core в Linux

 

Делать только прямой тест, если все просто не находится в корневой папке проекта и нормально запустить "dotnet run".

Протестируйте наше приложение ASP.NET Core в веб-браузере.


Таким образом, наше приложение в ASP.NET Core уже работает на сервере Kestrel в .NET Core, но у нас еще нет возможности получить к нему доступ из браузера, потому что оно работает на локальном хосте, а Linux предполагает что к нему можно получить доступ только из самого Linux, поэтому следующая команда должна быть выполнена ,

dotnet run --urls "http://0.0.0.0:5000"

Привет, мир .NET Core в Linux

 

В этом случае аргумент «URLs» указывает Kestrel, какие IP-адреса и порты он должен прослушивать. По умолчанию Kestrel будет прослушивать только адрес локального хоста, поэтому мы должны явно указать, что мы хотим, чтобы он прослушивал любой IP-адрес для выполнения этого теста.


Теперь, чтобы проверить, что мы можем получить доступ с любого клиента, мы переходим к компьютеру с Windows, открываем любой веб-браузер и вводим IP-адрес компьютера с Linux и порт 5000 «http://ip-of-your-server: 5000». Чтобы убедиться, что веб-приложение работает,

Привет, мир .NET Core в Linux

 

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


Для этого необходимо получить доступ к файлам только что созданного проекта и открыть «Program.cs». Здесь вы добавляете вызов метода «UseUrls» следующим образом.

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>  
	WebHost.CreateDefaultBuilder(args)  
	.UseUrls("http://0.0.0.0:5000")  
	.UseStartup<Startup>();  

Это привязывает веб-сайт ASP.NET Core ко всем IP-адресам сервера, а не только к локальному хосту, как это делается по умолчанию.

Вывод

До этого момента, и если вы смогли успешно выполнить все шаги, описанные в этой статье, вы уже можете сделать следующее.

  • Настройте установку Linux Ubuntu.
  • Знать, как получить удаленный доступ к Linux-машине по протоколу SSH.
  • Знайте, как установить пакет SDK и среду выполнения .NET Core в нужной вам версии.
  • Знайте, как перемещаться по каталогам Linux.
  • Начните создавать проекты в .NET Core в среде Linux.
  • Скомпилируйте и сможете запускать приложения .NET Core в Linux.
  • Запустите страницу в ASP.NET Core из любого веб-браузера.