Introduction
In this article, we will explain how to install .NET Core on a Linux operating system (Ubuntu 20.04 LTS) and be able to run .NET Core applications, in addition to running them and also being able to run for example ASP.NET Core and that you can see from the client to test its operation.
Why run Microsoft applications on Linux? The answers can be many, we could say for going beyond the walls that existed for a long time and the “rivalry” that they supposedly made to see between these two OS environments, another for attracting all that Linux community so that they can work more comfortably, well supported C # applications or web pages with all the power of .NET Core, also another answer may be to reduce costs in a development company or for yourself as a user programmer, in short, there are many reasons why.NET Core is supported on Linux based operating systems.
.NET Core is compatible with Ubuntu.This article describes how to install .NET Core on Ubuntu. When a version of Ubuntu is no longer supported, .NET Core is no longer compatible with that version. However, there are slightly more custom instructions where you can install .NET Core on those versions.
Supported Distributions
In the following graph, according to the source (https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu) we have the comparative table of versions with support so far and some that do not have it.
In the case of this article, we will use Ubuntu 20.04 LTS (https://ubuntu.com/#download) together with .NET Core 3.1 later we will go with .NET Core 5.0
We will need the following:
- Linux installed in some installed and configured instance (https://www.process.st/checklist/ubuntu-server-setup-process/) I left it until step 14 this way you already have a well-configured installation.
- Putty to access the Linux server via SSH.
- Very eager to learn.
Table of Contents
- Installation of .NET Core 3.1 SDK and Runtime in a Linux environment.
- Creation and compilation of your first application in .NET Core.
- Create an application in ASP.NET Core.
- Test our ASP.NET Core application from a web browser.
Installation of .NET Core 3.1 SDK and Runtime in Linux environment
Once Ubuntu is installed, go to the link where it explains step by step for who is their first time, we have to access the operating system via SSH (Secure Shell) where I use Putty as a reference, but they can use the one that has the most affinity.
Now, we need to have interconnection between two computers or virtual machines, call a client and another server, in my case it is two computers on the same network to be able to have control over the Linux environment that is just where we want to run .NET Core, for this once the Putty is installed, we check whether both computers are well connected to the network with the Ping command in the Windows console.
Now we run Putty and put the IP address of the remote computer where our Linux is installed.
Next, we already establish a connection via SSH, if everything should appear, the window of the Linux Shell where it requests access, which are the previously configured credentials of the Ubuntu user (username/password)
Up to this point, we are already inside the Linux machine, now, since we are going to run installations, it is important to try to switch to the root user who has been the one with the most privileges at the UNIX level, therefore, we must execute the first commands to change from our normal user to root.
hughfernandez@neptuno:~$ su -
It will ask for the root user password and up to this point we can proceed to install .NET Core, but first, it is always recommended to run recent updates with the following commands.
sudo apt-get update # Gets the list of available updates.
sudo apt-get upgrade # Strictly update current packages
sudo apt-get dist-upgrade # Install (new) updates
sudo reboot # Restart the operating system
Since you rebooted the system before installing .NET, run the following commands to add the Microsoft package signing key to your list of trusted keys, and add the package repository.
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
SDK Installation
To install the .NET Core SDK, run the following commands:
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-3.1
Runtime installation
The following commands install ASP.NET Core Runtime, which is the most compatible runtime for .NET Core.In your terminal, run the following commands.
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-3.1
As an alternative to the ASP.NET Core Runtime, you can install the .NET Core Runtime that does not include ASP.NET Core support: replace aspnetcore-runtime-3.1 in the above command with dotnet-runtime-3.1.
sudo apt-get install -y dotnet-runtime-3.1
Creation and compilation of your first application in .NET Core
In this way, we can already have .NET Core 3.1 already installed both its SDK version and Runtime to run our applications. If you want to know what projects you can run that are included in this framework where you can get a complete list by executing the following command:
dotnet new --help
We are going to start our "hello world" firstly by taking an order where we are going to have our projects in Linux, to advance we go to the Home folder as root user and we will see the folder of our Ubuntu user, in this case, my user is "hughfernandez”And there inside we are going to create the folder where we are going to execute our first application with the command.
mkdir holamundoConsola
We access it and see that we have nothing, but we are already on the folder.
We execute the following command:
dotnet new console
If we do an inspection of the generated listing the files of our console project with the command:
ls -1l
If we already want to review a specific file such as "Program.cs" we have to execute the following command (it is important to write the file exactly as it appears otherwise the nano will open a new file)
sudo nano Program.cs
As you can see in the previous image, I was able to access the .cs file called “Program” and I was able to add “Hello world from Linux!”, To save the changes we press Control + X, it will ask to overwrite the changes and return to the command environment again in Linux.
Up to this point, we can already compile our application and run it with the following commands
dotnet build
dotnet run
In this way we already created the console solution, we entered the file "Program.cs", we modified the line of code with our hello world and finally the compilation and execution of the program, but this time under a Linux environment.
Create an application in ASP.NET Core
For the ASP.NET core theme, we must create the folder as in the previous example, in my case I gave it the name of “demoAsp”, we enter it and execute the following command to create an ASP.NET Core project,
dotnet new razor
or
dotnet new mvc
If they ask for the project name, the command "dotnet new" defaults to the name of the folder they created where they are executing the command
To run our app in ASP.NET Core, you must first compile it with the command "dotnet build" so that it generates the folder "/bin/Debug/netcoreapp3.1", then execute the following command within the last folder mentioned above
dotnet demoAsp.dll
To only do a direct test, if everything is just not located in the root folder of the project and normally run the "dotnet run".
Test our ASP.NET Core application from a web browser
Already in this way and our application in ASP.NET Core is running on the Kestrel server of .NET Core, but we do not yet have an exit to be able to access it from a browser, this because it runs within localhost and Linux assumes that it can only be accessed, therefore, the following command must be executed from Linux itself,
dotnet run --urls "http://0.0.0.0:5000"
In this case, the “URLs” argument specifies Kestrel on which IP addresses and ports it should listen to. By default, Kestrel will only listen to the localhost address so we must explicitly specify that we want it to listen to any IP address to perform this test.
Now to test that we can access from any client we go to the Windows computer and open any web browser and enter the IP address of the Linux machine and port 5000 "http: // the-ip-of-your-server: 5000"To verify that the web application is working,
If you need to be able to access the website remotely (externally) from other computers automatically without executing the URLs command, you can program it directly in the project, you must link it differently.
To do this, you must access the files of the newly created project and open "Program.cs". Here you add a call to the "UseUrls" method as follows.
- publicstaticIWebHostBuilderCreateWebHostBuilder(string[]args)=>
- WebHost.CreateDefaultBuilder(args)
- .UseUrls("http://0.0.0.0:5000")
- .UseStartup<Startup>();
This binds the ASP.NET Core website to all the server's IP addresses, rather than just the localhost, which is what it does by default.
Conclusion
Up to this point and if you were able to successfully follow all the steps in this article, you are already able to do the following.
- Configure the install Linux Ubuntu.
- Know how to remotely access a Linux machine using the SSH protocol.
- Know how to install both SDK and .NET Core Runtime in the version you want to be available.
- Know how to move within the Linux directories.
- Start generating projects in .NET Core in a Linux environment.
- Compile and be able to run .NET Core applications on Linux.
- Run a page in ASP.NET Core from any web browser.
Enjoy!...
FAQs
Can you use .NET Core on Linux? ›
Supported Platform: Windows® (Authoring), Linux® (Execution), and macOS (Execution). This example shows how to create a . NET assembly using the Library Compiler and integrate it into a . NET Core application that can run on Linux or macOS.
How to install .NET Core in Linux? ›...
Identify the correct package name
- The product is either dotnet or aspnetcore. ...
- The type is either sdk or runtime.
- At the time of this writing, the supported .
- Visit the Download . NET Core page.
- Select the latest non-preview . NET Core version.
- Download the latest non-preview runtime in the table under Run apps - Runtime.
- Select the Linux Package manager instructions link and follow the CentOS instructions.
The long-term-support (LTS) version 3.1 of Microsoft . NET Core Framework is slated to go out of support on December 13th, 2022. Microsoft recommends upgrading . NET Core 3.1 applications to .
Can C# run on Linux? ›To compile, Decompile and Run C# code in Linux, follow the below-mentioned steps: Firstly, we need to install mono-complete, to run software for Mono or Microsoft. NET. Step 1: To Install mono-complete, open up your Linux terminal and type the following command, and hit enter.
How do I start .NET Core from command line? ›- Command Structure. The following is a command structure. ...
- Create a New Project. To create a new . ...
- Add Package Reference. We often need to add NuGet package reference for different purposes. ...
- Restore Packages. ...
- Build Project. ...
- Run project. ...
- Getting Help.
- Install .net core 3.1.
- Install Nginx.
- Build and copy your application.
- Configure your Nginx server block.
- Create your Asp.Net service.
- Secure your hosted application with SSL.
- Open Terminal ( ctrl+alt+T ).
- Type the command sudo apt install mono-complete to install mono-complete.
- Open a text editor (we are going to use Gedit) and save the following program with a . ...
- Now, you can compile the program using mcs filename.
- Requirements.
- Register Microsoft key and feed.
- Install the .NET Core 2.1 Runtime.
- Install the .NET SDK.
- Create a new ASP.NET Core web application.
- Publish and copy over the app.
- Install MySQL.
- Install Apache as reverse proxy.
...
NET Core is installed on Windows is:
- Press Windows + R.
- Type cmd.
- On the command prompt, type dotnet --version.
What is replacing .NET Core? ›
NET 6 is an open-source and cross-platform framework, meaning that it automatically replaces . NET Core and . NET Framework with a single, more powerful, unified platform.
What is .NET Core called now? ›In 2014, Microsoft introduced .NET Core as a cross-platform, open-source successor to .NET Framework. This new implementation of .NET kept the name .NET Core through version 3.1. The next version after .NET Core 3.1 was named .NET 5.
Is .NET Core faster than node? ›NET Core has an easier time working with CPU-intensive tasks and rendering static pages since the in-built IIS server kernel caching makes this process very straightforward. Therefore, . NET core vs node.
Is C# becoming obsolete? ›C# is a programming language that is worth learning.
You can use it as a Full Stack language and programming in C# will be the best decision. In 2022, It will be a widely used language and is widely recognized among other programming languages such as Java and Python.
Other interesting Linux alternatives to C# are Java, C++, Rust and C (programming language).
What OS can C# run on? ›While originally built to run on Windows, C# was quickly ported to Linux and macOS by the Mono project. Today, C# is open source and runs on the cross-platform .
What is .NET core CLI? ›The .NET command-line interface (CLI) is a cross-platform toolchain for developing, building, running, and publishing .NET applications. The .NET CLI is included with the .NET SDK. For more information about how to install the .NET SDK, see Install .NET Core.
How do you get to the start of a command line in Linux? ›You can move the cursor to the beginning of the line with CTRL+A. Similarly, use CTRL+E to move the cursor to the end of the line. Alt+F moves one word forward, and Alt+B moves one word back.
How do I enable dotnet in cmd? ›- Open a command prompt with administrator user rights (Run as Administrator).
- To install .NET Framework 3.5 from installation media located on the D: drive, use the following command: Windows Command Prompt Copy. DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\sources\sxs.
The . NET Core runtime allows you to run applications on Linux that were made with . NET Core but didn't include the runtime. With the SDK you can run but also develop and build .
How do I run a .NET Core console app on Ubuntu? ›
- Need to create . net core console application POC. ...
- Create a docker image of dotnet core application. ...
- Once the docker is installed successfully. ...
- Run the same image on Ubuntu Machine. ...
- Step 5 - Export Image so we can import in Ubuntu machine.
- Deploy the published app to a folder on the hosting server.
- Set up a process manager that starts the app when requests arrive and restarts the app after it crashes or the server reboots.
- Install . NET 5.0. ...
- Create a new C# project in VSCode. Next, create a new project and open it in VSCode: ...
- Run Your C# Code in VSCode. To execute your code, simply run: ...
- Debug Your C# Code in VSCode. First, be sure you installed the official C# extension mentioned above. ...
- Compile Your Code.
C# Code Compilation
Then, open the Terminal and hit the following commands to compile the code. The aforesaid command will generate an executable file like windows. Now hit the ./test.exe or mono test.exe command to run the C# binary; Here, the screenshot summarized everything we have done so far.
To run, first, open a command prompt, click "Start", then type cmd.exe . You may then have to cd into the directory that holds your source files. Run the C# compiler like this: c:\windows\Microsoft.NET\Framework\v3.
How to install .NET Core 3.1 in Ubuntu? ›While executing the command sudo apt-get install dotnet-sdk-3.1 , you may get dependency errors related to libicu not found in Ubuntu 20.04 LTS. If this is the case, then execute the following commands in terminal [courtesy: Phillip Haydon]. Now try the sudo apt-get install dotnet-sdk-3.1 , it should work.
How to install .NET Core 6 on Ubuntu? ›- sudo apt update && sudo apt -y install dotnet6. ...
- $ docker run --rm -it ubuntu:jammy root@4c9d58f507a3:/# apt update && apt install -y dotnet6 root@444999ffd672:/# dotnet --version 6.0.108.
- Install Microsoft .NET Core SDK on Linux. 1.1. Install .NET SDK using Package Manager. 1.1.1. Install .NET SDK in Alpine Linux. 1.1.2. Install .NET SDK in Debian. 1.1.3. Install .NET SDK in Fedora. 1.1.4. ...
- Verify .NET Installation.
- Create your First App using Dotnet.
- Get Microsoft Visual Studio Code Editor.
- Telemetry.
- lscpu command.
- cat /proc/cpuinfo.
- top or htop command.
- nproc command.
- dmidecode -t processor command.
- getconf _NPROCESSORS_ONLN command.
You can see both the SDK versions and runtime versions with the command dotnet --info .
How to install dotnet from command line? ›
- Install the latest long-term supported (LTS) version to the default location: Windows: PowerShell Copy. ...
- Install the latest preview version of the 6.0.1xx SDK to the specified location: Windows: PowerShell Copy. ...
- Install the 6.0.0 version of the shared runtime: Windows: PowerShell Copy.
- Start Visual Studio and select Create a new project.
- In the Create a new project dialog, select ASP.NET Core Web Application > Next.
- In the Configure your new project dialog, enter MvcMovie for Project name. ...
- Select Create.
- In the Create a new ASP.NET Core web application dialog, select:
- In Visual Studio create a . NET 5.0 C# project named MyDotNet5App . ...
- In the Solution Explorer in Visual Studio, right-click the project name and select Add > Project Reference. ...
- Open the C# source file Program. ...
- Build and run the application.
The dotnet run command provides a convenient option to run your application from the source code with one command. It's useful for fast iterative development from the command line. The command depends on the dotnet build command to build the code.
How do I run a .NET Core console application from command prompt? ›In . NET Core, it runs from the dll, so you have to just run the application by running the command prompt and using the command - dotnet run. Open your command prompt and go to that folder where your application persists. This resulted in printing "Hello World!" as it is written in our console application.
What is the difference between asp net core and .NET core? ›NET Core is a runtime. It can execute applications that are built for it. ASP.NET Core is a collection of libraries that form a Framework for building web applications. ASP.NET Core libraries can be used on both .
How to run asp net core locally? ›FROM VISUAL STUDIO: You can simply run the ASP.NET Core Web API from Visual Studio in Development Mode by Pressing F5. FROM COMMAND PROMPT: Run the API Project from the command line by opening a command prompt window in the root project folder of the project and use the dotnet run command.
What is the net command in Linux? ›The NET TIME command allows you to view the time on a remote server or synchronise the time on the local server with the time on the remote server. Without any options, the NET TIME command displays the time on the remote server. Displays the time on the remote server in a format ready for /bin/date.
What is .NET Core CLI? ›The .NET command-line interface (CLI) is a cross-platform toolchain for developing, building, running, and publishing .NET applications. The .NET CLI is included with the .NET SDK. For more information about how to install the .NET SDK, see Install .NET Core.
How do I console in .NET Core? ›- Create a console application. In Visual Studio, you can do this with File | New, or you can use the dotnet CLI command “dotnet new console”.
- Add some NuGet package references. ...
- Update our Program class. ...
- Put our code into the ConsoleService class.