Linux asp net mvc

ASP.NET Core MVC Linux Hello World Program

In this tutorial, we will create a simple hello world web mvc application in .NET Core.

.NET Core Installation on Linux

To install .NET on linux, we need to first add Microsoft package signing key to your trusted keys and add the package repository.

We have different commands for different linux distributions. Run below commands in terminal window according to your distribution.

Ubuntu
Add Repository wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
SDK Installation sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-6.0
Debian
Add Repository wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
SDK Installation sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-6.0
openSUSE
Add Repository sudo zypper install libicu
sudo rpm —import https://packages.microsoft.com/keys/microsoft.asc
wget https://packages.microsoft.com/config/opensuse/15/prod.repo
sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo
SDK Installation sudo zypper install dotnet-sdk-6.0
Fedora
SDK Installation sudo dnf install dotnet-sdk-6.0
RedHat Enterprise Linux (RHEL)
SDK Installation sudo dnf install dotnet-sdk-5.0
SLES
Add Repository sudo rpm -Uvh https://packages.microsoft.com/config/sles/15/packages-microsoft-prod.rpm
SDK Installation sudo zypper install dotnet-sdk-6.0

Check .Net Core Installed Versions

To check .net core installed version, run below command:

dotnet_core_check_installation image

In the above screenshot, we can found out .NET core version numbers that are installed using above commands.

.NET SDK 6.0.200 is installed. .NET runtime version for AspNet Core is 6.0.2 and .NET Core app library version is 6.0.2.

New Project

To create a new project use below command

 dotnet new mvc -lang C# -n FirstCoreSolution 

dotnet core mvc new project

This will create a new folder name FirstCoreSolution in your file system. Use below commands to open your hello world project in Visual Studio code.

terminal open project

In Visual Studio code, we can see our first ASP.NET Core MVC project files are generated.

vscode-first-core-solution

Open Views -> Home -> Index.cshtml file, and update page with below text.

Use below command to build the solution.

dotnet build command

After build is successfull, use below command to run application in the browser.

dotnet run comamnd

In the above screenshot, there are two urls. One with https and second one is http. By default, dotnet run command host your website in both urls. Open any one of the url in browser window.

Читайте также:  Linux установка ноутбук флешка

first asp.net mvc core app

Congratulations. You have created your first ASP.NET Core MVC web application in Linux operating system.

Источник

ASP.NET Core: ваше первое приложение на Linux c использованием Visual Studio Code

Решил недавно написать небольшое ASP.Net MVC приложение после многолетнего перерыва и знающие люди на Хабре подсказали попробовать новый ASP.Net Core, тем более, что он работает в Линуксе из коробки без необходимости задействовать mono, и, судя по последним тестам, даже показывает неплохую производительность. За основу взял аналогичную статью для Mac, однако здесь в отличии от вдохновившей меня статьи хочу описать процесс пошагово в одном месте, для того, чтобы не пришлось лазить по перекрёстным ссылкам, пытаясь разобраться как установить непонятно для чего предназначенные приложения и пакеты. Такое подробное описание процесса возможно поможет многим избежать граблей, с которыми пришлось столкнуться мне. Несколько фраз и рисунков, в части одинаковой для любой платформы, с правками и корректировками взяты из статьи для Mac.

Установка .Net Core и Visual Studio Code

Приводимые здесь команды установки подходят для дистрибутивов Ubuntu 16.04/Mint 18.x, для остальных можно найти здесь.

Установка .Net Core:

Устанавливаем новейший на данный момент RC4 для совместимости с новейшим генератором проектов aspnet:

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 sudo apt-get update sudo apt install dotnet-dev-1.0.0-rc4-004771

Установка Visual Studio Code

Устанавливается легко в пару кликов по этой ссылке.

Установка расширения C#

Запускаем Visual Studio Code, нажимаем Ctrl-P, вводим команду:
ext install csharp

В появившейся слева панели нажимаем «Установить» напротив соответствующего расширения, если это не произошло автоматически. Visual Studio Code можно пока закрыть.

Подготовка среды разработки и формирование шаблонов приложений

Устанавливаем новейший node.js с оригинального сайта (тот, что идёт с дистрибутивом не подходит), он нам нужен из-за менеджера пакетов npm, который идёт вместе с ним:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs sudo apt-get install -y build-essential

Для других дистрибутивов инструкция здесь.

Инициализация проекта

Для инициализации используется скаффолдер Yeoman — инициализатор проекта, включающий в себя развёртывание файловой структуры и генерацию шаблона проекта, т.е. исходного кода приложения. Включает в себя скаффолдер Yo, менеджер пакетов Bower и менеджер задач Grunt. При установке Yo вам будут установлены также Bower и Grunt. Здесь устанавливаем в любом терминале также новейший генератор aspnet, в котором возвращена система сборки msbuild вместо project.json:

sudo npm install -g yo bower generator-aspnet

Запуск генератора проекта

Генератор Yeoman — это npm-пакет с инструкциями и шаблонами для Yo, которые описывают инициализацию проекта: какие директории создать, какие файлы и куда копировать, каким образом обрабатывать шаблоны и куда их разместить после обработки. Заходим в папку, где мы хотим разместить проект и запускаем генератор проекта ASP.NET Core:

  • Выбираем пункт Web Application Basic [without Membership and Authorization] и нажимаем Enter
  • Выбираем Bootstrap (3.3.6) в качестве фреймворка UI и нажимаем Enter
  • Оставляем имя «WebApplicationBasic» в качестве имени приложения и нажимаем Enter
  • Установка: npm install -g generator-aspnetpostgresql
  • Генерация шаблона: yo aspnetpostgresql
Читайте также:  Linux xinput set prop

Когда генератор окончит создание файлов, он проинструктирует вас как восстановить, собрать и запустить приложение:

Your project is now created, you can use the following commands to get going
cd «WebApplicationBasic»
dotnet restore
dotnet build (optional, build will also happen with it’s run)
dotnet run

Восстановить и собрать можно, а вот запускать пока рано: нужно ещё кое что сделать.

Разработка приложений ASP.NET Core MVC на Linux с помощью Visual Studio Code

image

Теперь запустите Visual Studio Code.

Выберите пункт Файл → Отрыть папку и выберите папку, в которой Вы создали шаблон приложения ASP.NET Core MVC с помощью yo.

При первом запуске Visual Studio Code выдаст предупреждение об отсутствии необходимых инструментов для сборки и отладки. Нажимаем Yes , чтобы добавить их. Без этого автоматическая отладка и сборка средствами Visual Studio Code будет недоступна, а только через терминал командами dotnet build и dotnet run .

В Терминале Visual Studio Code (Ctrl-`) выполните команду dotnet restore , чтобы восстановить зависимости проекта (если не сделали этого раньше). Другой способ — выполнить команду Ctrl-Shift-P в Visual Studio Code и затем ввести dot, как показано ниже (у меня почему-то не заработало):

image

Для тех, кто только приступает к использованию Visual Studio Code (или Code, для краткости), следует заметить, что данный продукт не только имеет удобный, простой и отзывчивый интерфейс, обеспечивающий быструю работу с файлами, но он также предоставляет инструменты для наиболее эффективного написания кода.

Code интегрируется с Git, если он установлен на вашем компьютере. При помощи Git viewlet можно создавать новые репозитории, подтверждать изменение кода, отправлять изменения.

image

Debug viewlet поддерживает интерактивную отладку приложений.

Кроме того, в редакторе Code есть множество замечательных функций. Вы увидите, что неиспользованные операторы using будут подчеркнуты и могут быть удалены автоматически при помощи Сtrl-. , если значок лампочки отображается на экране. Также можно видеть, сколько ссылок на классы и методы есть в проекте. Если вы переходить с Visual Studio, то вы можете использовать многие знакомые сочетания клавиш, например, Сtrl-K+C , чтобы закомментировать блок кода или Ctrl-K-U , чтобы раскомментировать его.

Запуск приложения при помощи Kestrel

  • Установив .Net Core Project Manager (Nuget) через viewlet Extensions (Расширения): Ctrl-Shift-P , набираем Nuget , ↵, затем Kestrel ↵ выбираем Microsoft.AspNetCore.Server.Kestrel
  • Через командную строку в терминале редактора vs code editor:
dotnet add package Microsoft.AspNetCore.Server.Kestrel 

image

Всё, теперь можно запускать: нажимаем F5 или в терминале dotnet run , при этом автоматически запускается браузер с приложением по адресу: localhost:5000 . Чтобы остановить веб-сервер, нажмите Ctrl+C. Вот и всё, можете наслаждаться вашим первым приложением ASP.Net Core:

Из полезных источников для дальнейшей установки готового приложения можно отметить статью: Publish to a Linux Production Environment — «Развёртывание приложения ASP.Net MVC при эксплуатации в среде Линукс».

  • Книга «ASP.NET Core MVC с примерами на C# для профессионалов», Адам Фримен, (перевод Юрия Артёменко), бумага офсетная-белая, твердый переплет, 992 стр., ISBN 978-5-9908910-4-3, «ВИЛЬЯМС», 2017
  • Руководство по ASP.NET Core
  • Видеоуроки ASP.NET Core MVC
  • Видео обзор Visual Studio Code
Читайте также:  Astra linux network setup

Источник

Deploy ASP.NET MVC on Linux: Best Practices, Tools & Surprises

Agreed, there may not be a single right answer, but since deploying to Linux requires us to assemble more components in a a non-native environment, it’s worth hearing from those developers who have actually done it or are in the process of doing it.

I was tempted to say «Surprise! it won’t work!» but I’m just having my own issues implementing a larger project. Mono is honestly spectacular. Just thought that would give a few chuckles to those that are still trying to understand the cryptic errors Mono can sometimes throw up 🙂

3 Answers 3

The company I work for targets Mono on Linux as our main deployment environment. Thus there is no «additional» work — we provide the whole stack, from hardware, through operating system (customized and trimmed) to applications. Using Open Source gives huge savings for us and our clients (and yes, we do contribute back to the OS Projects we rely on).

The important thing is to constantly test using your actual target (sorry, Mono on Windows doesn’t count). Sure, developers use Visual Studio, but the continous integration (using CruiseControl.Net, you’ll need Mono 2.4.2 to run it on Linux) is done both on Windows and Linux, testing all Mono versions we expect to work on (it got much more stable recently, but still, regressions do happen between releases). It’s quite easy to run parallel Mono versions on one *nix system, you can even include an svn snapshot build if you prefer to catch upstream regressions early. If you don’t roll out your own distribution, then remember that most Linux vendors ship Mono with custom patches — this has caused problems for us before. Also, many distributions have a lot of lag updating Mono, and this is a rapidly advancing project.

For database layer we use mostly «plain» ADO.NET — Oracle (with dotConnect for Oracle, they support Mono) and SQLite (Mono ships with a working connector). I have also used the official ADO.NET Driver for MySQL (Connector/NET) and it, too, works well. ORM mappings are more tricky, but NHibernate is usable (keep in mind that they do not support Mono officially).

As for the build engine and tests — NAnt and NUnit are well known and well tested. With most recent versions of Mono xbuild (clone of MSBuild) actually got usable, but prepare yourself for contributing quite a lot patches if you decide to use it for more complex scenarios.

Write tests. Lots of them. Be prepared to contribute patches and bugreports, and if you use commercial components — make sure the supplier officially supports Mono.

Источник

Оцените статью
Adblock
detector