Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Dot net linux

Установка Visual Code и Net Core 1.0 Ubuntu 16.04

Несколько месяцев назад состоялся релиз среды разработки программного обеспечения от Microsoft — Visual Code. Тогда же было анонсировано выход с открытым исходным кодом платформы Net Core для Linux, позволяющей писать программы на ASP.NET и C# для Linux. И вот, Microsoft сдержала свое слово. Пару дней назад состоялся релиз первой версии Net Core 1.0 preview 2. Эта платформа официально поддерживается в Red Hat Enterprice и ряде других дистрибутивах, в том числе Ubuntu, Fedora, OpenSUSE.

Платформа Net Core — это следующее поколение Net Framework. Раньше Net Framework делился на несколько потоков, это NET для компьютеров, NET для мобильных телефонов, NET Silverlight и NET Windows Store. Все эти продукты поддерживались разными командами и при разработке возникало много несоответствий. Поэтому и было принято решение создать единую, платформу Net Core, которая заменит старые компоненты и сможет использоваться на разных устройствах и операционных системах, в том числе Linux и Mac OS. Если совсем просто, то Net Core — это набор компиляторов и библиотек для разработки программ на языке C# (Си шарп), а Visual Code — всего лишь среда разработки, текстовый редактор с подсветкой синтаксиса и другими плюшками.

В этой инструкции будет рассмотрена установка NET Core 1.0 и среды разработки Visual Code в Ubuntu 16.04. После установки вы сможете перейти к созданию своих программ.

Установка Visual Code

Релиз Visual Code состоялся достаточно давно, и эта программа была достаточно протестирована и отлажена. Поскольку это среда разработки от Microsoft, именно ее мы будем использовать для создания Net программ в Linux. Установка Visual Code Ubuntu 16.04 может быть достаточно сложной, если вы начнете собирать программу из исходных кодов, но можно пойти другим путем. Мы воспользуемся утилитой ubuntu-make, которая все сделает за нас. Сначала установим ее:

sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
$ sudo apt-get update
$ sudo apt-get install ubuntu-make

Теперь установка Visual Studio Ubuntu 16.04:

sudo umake ide visual-studio-code

После завершения установки вы можете найти программу в главном меню:

Главное окно программы выглядит вот так:

Теперь перейдем к самому главному — установка net core в ubuntu.

Установка Net Core Ubuntu

Установка Visual Code, это только пол пути, чтобы иметь возможность писать программы C# в Linux нам понадобиться Net Core. Естественно, этой программы нет в официальных репозиториях. Поэтому сначала добавляем PPA:

sudo sh -c ‘echo «deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main» > /etc/apt/sources.list.d/dotnetdev.list’
$ sudo apt-key adv —keyserver apt-mo.trafficmanager.net —recv-keys 417A0893
$ sudo apt-get update

sudo apt-get install dotnet-dev-1.0.0-preview1-002702

Но получаем ошибку:

The following packages have unmet dependencies:
dotnet-dev-1.0.0-preview1-002702 : Depends: dotnet-sharedframework-microsoft.netcore.app-1.0.0-rc2-3002702 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Это происходит потому, что система пытается установить пакет dotnet-sharedframework, который зависит от библиотеки libicu52, которой нет в репозиториях Ubuntu 16.04 но не беда, исправим. Скачаем эту библиотеку из архива Ubuntu 14.04:

sudo dpkg -i libicu52_52.1-3ubuntu0.4_amd64.deb

Пробуем еще раз, и на этот раз все работает:

sudo apt-get install dotnet-sharedframework-microsoft.netcore.app-1.0.0-rc2-3002702

sudo apt-get install dotnet-dev-1.0.0-preview1-002702

Проверяем корректность установки:

Отлично, установка asp ubuntu 16.04 прошла успешно и вы можете начинать писать свои программы на C# в Linux. Но теперь нужно объединить фреймворк dotnet и Visual Code для более удобной работы.

Настройка Net Core

Вопреки нашим опасениям, у Net Core есть очень удобный инструмент, для управления проектами. Вы уже с ним знакомы. Это команда dotnet. Давайте создадим пустой проект. Для этого сначала создадим пустую папку:

Затем установим все зависимости:

Ну и проверим как сработало, запустив нашу программу:

Вот код нашей программы в файле Program.cs:

Как видите, все работает, и работает правильно. Теперь давайте настроим Visual Studio для написания программ на C# в Linux.

Настройка Visual Code для написания программ NET

Просто открыть проект не получиться. Для того, чтобы все заработало нужно установить расширение C#. Для этого откройте среду Visual Code, нажмите Ctrl+E и наберите:

Выберите из списка расширение C# от Microsoft, затем начнется установка. После завершения установки нас попросят перезагрузить среду Visual Code ubuntu:

После перезагрузки у нас появилась подсветка синтаксиса. На вкладке отладка мы можем видеть, что установка Net Core Ubuntu 16.04 в Visual Code прошла успешно:

Если нажать зеленый треугольник, нам предложат настроить среду отладки:

Соглашаемся, и пойдет загрузка и настройка отладчика.

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

Выводы

Установка csharp Ubuntu 16.04 прошла успешно, и теперь вы можете писать C# программы на Linux. Было неожиданно, что Microsoft сделает это, но наконец таки это свершилось. Правда Microsoft в своем репертуаре, они собирают данные телеметрии, об выполняемых командах и их параметрах, обещают, что анонимно, но все же. Чтобы откключить такое поведение нужно установить переменную среды DOTNET_CLI_TELEMETRY_OPTOUT=1. Вот, собственно и все. Установка Net Core в Ubuntu 16.04 для Visual Code завершена. А вы будете использовать этот язык в Linux? Напишите в комментариях!

Как запустить dotnet core и angular universal на nginx ubuntu

Идея приложения, следующая : Сервер у нас на dotnet core. А клиент на angular 7 (2+) с использованием SSR (server site rendering) или universal angular

Нам нужен VPS сервер. Я использую яндекс.облако. Они пока что дают 2 месяца бесплатного использования. Для экспериментов думаю вполне достаточно.

Как добавить виртуальную машину в яндекс облаке.

Если у вас есть другой VPS пропустите этот блок.

  1. Если вы уже зарегистрировались и активировали пробную версию.

Активируйте пробную версию в яндекс облаке

2. Перейдем во вкладку compute cloud

3. Нажмите на «Создать ВМ»

4. Введем простую конфигурацию ВМ

5. Добавим SSH-ключ

Запустите cmd.exe или powershell.exe . И введите следующую команду.

ssh-keygen -t rsa -b 2048

Я запускал на windows 10 и у меня вылетало сообщение ‘ssh-keygen’ is not recognized. Я просто запустил эту команду в git-bash. Есил еще не установили его установите очень нужная и полезная штука.

В папке /c/Users/username/.ssh/id_rsa у вас появится файлы id_rsa и id_rsa.pub

Добавим содержимое файла id_rsa.pub в поле SSH-ключ

Подлючимся к VPS серверу и установим несколько компанентов.

На вашем VPS установим следующие компоненты.

  1. Install .NET Core Runtime on Linux Ubuntu 18.04 — x64
  2. Install supervisor
Читать еще:  Сервер под win 2020 и linux

Install .NET Core Runtime on Linux Ubuntu 18.04 — x64

Чтобы наше .NET Core приложение запускалось на линуксе надо установить runtime среду. Которая и будет запускать нашу сборку.

Согласно официальной документации там же можно найти другие сборки под linux, windows, MacOS.

wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb;
sudo dpkg -i packages-microsoft-prod.deb;
sudo add-apt-repository universe;
sudo apt-get install apt-transport-https;
sudo apt-get update;
sudo apt-get install —assume-yes aspnetcore-runtime-2.2;

Сделаем сборку на разработческой машине. Я делаю сборку в VisualStudio 2019. Но вы можете воспользоваться командой dotnet publish. Естественно, чтобы данная команда сработала не забудьте установить SDK. Вы можете сделать сборку и на сервере.

dotnet publish —configuration Release

Результатом сборки это файлы .dll. Найдите .dll файл стартового проекта (startup project). Например MyProject.dll.

Запустим сборку на сервере командой

Попробуйте обратиться по ip вашего сервера с указанием порта, например 52.155.122.144:5000, приложение должно запуститься.

Но есть проблема. Если закрыть консоль, то приложение отключится. Чтобы эту проблему решить надо запустить приложение в фоновом режиме, как службу. К счастью для этого можно использовать сторонней софт superviser, который ставиться невероятно просто.

Установка ASP.NET 5 на Linux¶

Установка при помощи prebuild binaries [1]¶

Prebuild binaries для ASP.NET 5 доступны на (.tar.gz) и могут быть установлены на вашей системе в зависимости от ее конфигурации.

Кроме того, вы можете использовать .NET Version Manager (DNVM), чтобы установить ASP.NET 5.

В любом случае вам нужно установить начальные реквизиты для конкретный дистрибуции, как описано в следующих разделах.

Установка на Ubuntu 14.04¶

Следующие инструкции были протестированы на Ubuntu 14.04.

Установка .NET Version Manager (DNVM)¶

Используйте .NET Version Manager (DNVM), чтобы установить различные версии .NET Execution Environment (DNX) на Linux.

Установите unzip и curl , если у вас их еще нет:

Скачайте и установите DNVM:

После этого шага вы сможете запустить dnvm и увидеть некоторые советы.

Установка .NET Execution Environment (DNX)¶

.NET Execution Environment (DNX) используется для создания и запуска .NET проектов. Используйте DNVM, чтобы установить DNX для Mono или .NET Core (см. Выбор правильного .NET сервера).

Чтобы установить DNX для .NET Core:

Установите начальные реквизиты DNX:

Используйте DNVM, чтобы установить DNX для .NET Core:

Установка DNX для Mono:

Установите пакет Mono при помощи mono-complete .

Убедитесь, что пакет ca-certificates-mono также установлен как noted в инструкциях по установке Mono.

Используйте DNVM, чтобы установить DNX для Mono:

По умолчанию DNVM установит DNX для Mono, если не указана среда разработки.

Восстановление пакетов при помощи DNX для Mono может завершиться несколькими отмененными запросами. Вы можете решить эту проблему, установив MONO_THREADS_PER_CPU на большее число (например, 2000).

Установка libuv¶

Libuv — это мультиплатформенная асинхронная IO библиотека, которая используется Kestrel , кроссплатформенным HTTP сервером для хостинга веб приложений ASP.NET 5.

Для создания libuv вам нужно сделать следующее:

make install вставляет libuv.so.1 в /usr/local/lib , ldconfig используется для обновления ld.so.cache , так чтобы dlopen (см. man dlopen ) могла загрузить их. Если вы установили libuv другим способом или не запускаете make install , тогда вам нужно убедиться, что dlopen способна загрузить libuv.so.1 .

Установка на CentOS 7¶

Следующие инструкции были протестированы на CentOS 7.

Установка .NET Version Manager (DNVM)¶

Используйте .NET Version Manager (DNVM), чтобы установить различные версии .NET Execution Environment (DNX) на Linux.

Установите unzip , если у вас еще нет этого:

Скачайте и установите DNVM:

После этого вы сможете запустить dnvm и увидеть некоторый вспомогательный текст.

Установка .NET Execution Environment (DNX)¶

.NET Execution Environment (DNX) используется для создания и запуска .NET проектов. Используйте DNVM, чтобы установить DNX для Mono (см. Выбор правильного .NET сервера).

В этом релизе DNX поддержка .NET Core не доступна для CentOS, Fedora и их производных, но в будущих релизах такая возможность будет существовать.

Установка DNX для Mono:

Установите Mono при помощи пакета mono-complete .

Убедитесь, что пакет ca-certificates-mono также установлен как noted в инструкциях по установке для Mono.

Используйте DNVM, чтобы установить DNX для Mono:

По умолчанию DNVM установит DNX для Mono, если не указана среда разработки.

Восстановление пакетов при помощи DNX для Mono может завершиться несколькими отмененными запросами. Вы можете решить эту проблему, установив MONO_THREADS_PER_CPU на большее число (например, 2000).

Установка Libuv¶

Libuv — это мультиплатформенная асинхронная IO библиотека, которая используется Kestrel , кроссплатформенным HTTP сервером для хостинга веб приложений ASP.NET 5.

Для создания libuv вам нужно сделать следующее:

Использование Docker¶

Следующие инструкции были протестированы при помощи Docker 1.8.3 и Ubuntu 14.04.

Установка Docker¶

Инструкции по установке Docker вы можете найти В документации по Docker.

Создание контейнера¶

Внутри папки приложения вы создаете Dockerfile , который выглядит вот так:

Также вы можете использовать CoreCLR или Mono. На данный момент репозиторий microsoft/aspnet:latest основывается на Mono. Вы можете использовать Microsoft Docker Hub, чтобы выбрать другой модуль или более старую версию CoreCLR.

Запуск контейнера¶

Когда у вас есть приложение, вы можете создать и запустить контейнер, используя следующие команды:

Publishing and running your ASP.NET Core project on Linux

Given that .NET Core, as a runtime, is a both open source and multiplatform it’s easy to understand the desire to run your ASP.NET Core project on a Linux host. Practically always you can find a Linux webhost cheaper than a Windows webserver. So .NET Core gives us developers the opportunity to build a web application in the language with probably the widest reach (yes, that’s C#) and host that on virtually any server platform.

For the purpose of this article, we are creating a ASP.NET Core website with Visual Studio Code, setting up a Linux host with Apache webserver, and deploying the site with Deploy, a VS Code Extension for deploying files in a workspace to a multitude of destinations.

Setting up a Linux host

There are many service providing offering a cheap Linux based VPS (virtual private server). Amazon offers a free tier, where you can run a single core, 1GB RAM instance for up to 12 months for free. After that, it’s about 9 USD/month. The instance we select is an Ubuntu Server 16.04 LTS (HVM) with 8GB of storage (SSD). Note that we connect to this instance through SSH, and the AWS console allows you to create a public/private key pair to connect securely to the instance. On a Windows machine, you can use mRemoteNG to connect to a Linux machine. However, connecting to Linux instances that run on AWS requires a bit more than just SSH client. Linux EC2 instances have password authentication disabled by default to prevent brute-force attacks and want you to supply your private key instead. But there is no such field in mRemoteNG configuration pane! Here is a detailed instruction on setting up your connection using mRemoteNG.

Читать еще:  Как установить visual studio на linux

To install .NET Core on linux, we are using the same steps as described in this article.

We can install .NET Core using Ubuntu’s package manager, apt. The instruction can be found here, but make sure you are using the commands for Ubuntu 16.04 / Linux Mint 18.

We use the following command to list the available releases of .NET Core.

At the time of writing the last entry in the list is this one.

We can install it using this command.

Since we are using a sudo command, these operations get executed with root privileges. It will ask you for your regular user’s password to verify your intentions.

Configuring Apache as a reverse proxy

Kestrel is the web server that is included by default in ASP.NET Core new project templates. It is a cross-platform web server for ASP.NET Core based on libuv, a cross-platform asynchronous I/O library. If your application accepts requests only from an internal network, you can use Kestrel by itself.

However, if you expose your application to the Internet, you must use IIS, Nginx, or Apache as a reverse proxy server. A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel after some preliminary handling.

In our example, we are going to setup and configure Apache to handle the requests and forward them to Kestrel.

To install Apache on Ubuntu, use the following command.

By default, your AWS instance has a network security setting to prohibit inbound traffic on port 80. You need to configure the security group in AWS. To do this, navigate to your instance in the AWS console, scroll to the right and click on the name of the security group. This way, you are sure to edit the security group for the instance, and not some other security group.

On the inbound tab, click Edit.

You can now add a rule for HTTP traffic. This will actually create two rules, one for IPv4 and one for IPv6.

If you now navigate to the IP address of your host, you should see the default Apache page.

Now, we need enable the modproxy modules to in Apache server to make it work as a reverse proxy. modproxy is the Apache module for redirecting connections (i.e. a gateway, passing them through). It is enabled for use just like any other module and configuration is pretty basic (or standard), in line with others. modproxy is not just a single module but a collection of them, with each bringing a new set of functionality. You enable the modules with this command.

Configuration files for Apache are located within the /etc/apache2/conf-enabled/ directory. Any file with the .conf extension will be processed in alphabetical order in addition to the module configuration files in /etc/apache2/mods-enabled/, which contains any configuration files necessary to load modules.

To create a configuration file, use the following command

This is content of the the configuration file.

The VirtualHost node, of which there can be multiple in a file or on a server in many files, is set to listen on any IP address using port 80. The next two lines are set to pass all requests received at the root to the machine 127.0.0.1 port 5000 and in reverse. For there to be bi-directional communication, both settings ProxyPass and ProxyPassReverse are required.

Logging can be configured per VirtualHost using ErrorLog and CustomLog directives. ErrorLog is the location where the server will log errors and CustomLog sets the filename and format of log file. In our case this is where request information will be logged. There will be one line for each request.

Press CTRL-X and Y to save and exit the editor.

Now restart Apache using this command.

If you want to check logging on the startup sequence, type the following command.

Apache is now configured to forward requests made to http://localhost:80 on to the ASP.NET Core application running on Kestrel at http://127.0.0.1:5000. If you want to try it out, and see that it is working, we first need to have a ASP.NET Core website. There are several options here. You can deploy one from your local machine, if you have one available. Or you can create a basic website with the dotnet new command. Since we will deploying a locally developed site later in this article, and we want to know if our configuration is ready to accept and run that site, we are going forward with a boilerplate website. First, make sure that you are still in your home folder. You can always navigate to your home folder with the command cd

. In this folder, we are creating a site using the following commands.

When the last command is finished, you will have a basic MVC website. We are not going to run this website from your home folder, but rather deploy it to a subfolder of /var. This is not a requirement, but more of a convention. Ubuntu uses the folder /var/www/html as the default root for Apache. Publishing the MVC website is done like this.

Читать еще:  Статус vpn ошибка hamachi что делать

While, Apache is not set up to manage the Kestrel process. We will use systemd and create a service file to start and monitor the underlying web app. systemd is an init system that provides many powerful features for starting, stopping and managing processes.

We can create a configuration file using the following command

The content of the .sevice file is as follows.

The various locations configured in this file obviously matter, and if the site fails to run, it’s very likely related to these settings. It seems that the location of the dotnet command differs between Linux-distributions, so use the whereis dotnet command to find out where it is on your machine.

If you completed the configuration and save the .service file, you need to enable it, and start it.

If all went well, you should be able to navigate to the IP address of your host and see the default start page of an ASP.NET Core MVC project.

Publishing from Visual Studio Code

There are many options for publishing your locally developed web application to a webserver. While professional development teams rely on continuous deployment tools like Octopus Deploy, Electric Flow, or Jenkins it’s still valid to simply deploy an application from your own machine using (s)FTP or copy. Deploy is an extension for Visual Studio Code that provides commands to deploy files of a workspace to a destination. Install this extension in VS Code by pressing CTRL-Shift-P and the Extensions: Install Extensions command. Since we have set up our webserver to run ASP.NET Core 2.0 Preview, it makes sense to create a .NET Core 2.0 project in Visual Studio Code. If you have not done so already, download and install the preview from https://www.microsoft.com/net/core/preview#windowscmd. This is assuming you are running VS Code on a Windows machine, but you can use Linux or MacOS as well.

Once installed, create a new ASP.NET MVC project through these commands in the terminal window of VS Code.

The deployment configuration is Workspace dependent (usually, since you probably have more than one project on your development machine). To create a workspace specific setting, press CTRL-, and go to the Workspace Settings tab. Here, you can enter the following deployment settings.

Since we are already using SSH to connect to our webserver at Amazon, it’s quite convenient to use SFTP (SSH FTP) for deployment. Make sure you know where your SSH private key file is located.

When you are ready to deploy, run the dotnet publish command first. Then, press CTRL-Shift-P and type Deploy:. Choose Deploy Workspace from the list of commands.

If all went well, you should see

Use a browser to navigate to your webhost, and you should see the site based on your local version.

It’s possible that the site is no longer running. This can be due to several issues:

You may have a .NET Core 2.0 Preview 2 version running locally, whereas the server still runs Preview 1. To update the version on the server, run these commands.

Best Cross-Platform .NET Core IDE for Windows | MacOS | Linux

Before the launch of Dotnet Core, Visual Studio has been one of the most used IDEs for .Net Development. It might be the reason that It was the only powerful IDE available for developing Web, Mobile, Desktop & Cloud-based Applications. For some developers with limited system resources (e.g RAM, CPU, Hard Drive), working on Visual Studio was quite difficult. Also, If you want to develop .Net Applications, you must be a Microsoft Windows user.

.Net Core is a Cross-platform, lightweight & again a powerful version of .Net by Microsoft. It solved all the reasons for .Net being not liked by some developers. Now, we can develop .Net Applications using .Net Core on your favourite Operating System.

So, In this article, I’m going to list down some of the best .Net Core IDEs for Windows, Mac & Linux.

1. Visual Studio Code

VS Code is a most light-weight cross-platform Editor with thousands of Plugins available that make VS Code a powerful IDE for developing .Net Core Applications. It’s open-source & available for Windows, macOS, Linux & works great even on systems with low resources(CPU, RAM & Hard Drive).

C#plugin is also available for Editing, IntelliSense & debugging .Net Core Applications.

VS Code offers many features that help developers in rapid application development. Here’s the list of some Features.

  • Syntax Highlighting
  • Auto Complete
  • Debugging
  • Light-weight
  • Built-in Git Support
  • Extensible by thousand of Plugins
  • Customizable Look & Feel

2. Rider

Rider is another Fast & Powerful Cross-Platform .Net Core IDE by JetBrains based on IntelliJ platform and ReSharper. It has the power of ReSharper for refactoring & built-in decompiler for exploring libraries source code. It also supports version controlling using Git, Mercurial, Subversion, TFVC and Perforce.

It has many Built-in features & can also be extended using many useful Plugins available for Rider.

Here’s the list of Features Rider Offers:

  • Code analysis
  • Code editing
  • Refactorings
  • Decompiling
  • Unit Testing
  • Debugging
  • Extensible with 1500+ plugins
  • Supports Unity & Xamarin Development
  • WinForms designer

3. Visual Studio

Visual Studio is considered as one of the most powerful IDE available for developing powerful Desktop, Mobile, Web & Desktop Applications. Now It’s also available for macOS users as well. The only reason that most of the developers moved on the VS Code is that Visual Studio is not so friendly for low resources systems.

It also has built-in Git support & many other great features.

Here’s the List of some Visual Studio Features:

  • Great IntelliSense
  • Easy Debugging
  • Refactoring
  • Unit Testing
  • Live Share Screen to work together in real-time
  • About 9000+ Plugins

Comparison Table

Here’s a quick comparison for the Above listed IDEs

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×