- Creating your first .NET Core project on Linux
- And configuring Kestrel for a web environment
- Introduction to .NET Core
- Installing .NET Core on Linux
- Creating my first “Hello world” in C # .NET Core
- Configuring Kestrel
- Using Startup.cs
- Congratulations!
- Девелопишь на .NET Core? Го в Ubuntu, я создал
- 1_opinionated.sh
- 2_setup.sh
- 3_configure.sh
- ASP.NET Core: ваше первое приложение на Linux c использованием Visual Studio Code
- Установка .Net Core и Visual Studio Code
- Установка .Net Core:
- Установка Visual Studio Code
- Установка расширения C#
- Подготовка среды разработки и формирование шаблонов приложений
- Инициализация проекта
- Запуск генератора проекта
- Разработка приложений ASP.NET Core MVC на Linux с помощью Visual Studio Code
- Запуск приложения при помощи Kestrel
- Учебник. Создание шаблона проекта
- Предварительные требования
- Создание шаблона проекта
- Изменение файла program.cs
- Изменение файла consoleasync.csproj
- Построение проекта
- Создание конфигурации шаблона
- Тестирование шаблона проекта
- Удаление шаблона
- Следующие шаги
Creating your first .NET Core project on Linux
And configuring Kestrel for a web environment
This post is the first of a series in which we’ll discuss about the experience of developing and running .NET web applications in Linux environments.
Introduction to .NET Core
.NET Core is an opensource, multiplatform version the .NET Framework which is officially supported and maintained by Microsoft.
This post will give an overview of how to run a .NET Core web project in Ubuntu, starting with its basic architecture and ending in the configuration of Kestrel for creating a web application.
.NET Core framework already provides scaffolding tools for bootstrapping your projects, but this time we’ll develop this from scratch starting from a basic console application.
Installing .NET Core on Linux
We’ll install .NET Core in Ubuntu, following Microsoft’s official website, but you can find installation instructions for most common distros. As a development IDE you can use any text editor, but we are going to use Visual Studio Code which, in my opinion, offers the best integration.
Creating my first “Hello world” in C # .NET Core
From the command console run these commands:
- dotnet new console (to create a console project in .NET Core)
- dotnet restore (to restore packages and project dependencies)
- dotnet run (to execute our code).
Configuring Kestrel
Kestrel is a multi-platform web server used to host .NET Core web applications.
To add Kestrel to our project we must add the it’s dependencies to the .csproj file as follows:
Now we will open our Program.cs file and in it’s Main method replace the following lines:
For these lines:
In order to use Kestrel and the HTTP context we will have to add these references:
Now we need to add the Startup.cs .
Using Startup.cs
With the file Startup.cs we are going to configure for the project host.
By now our Startup.cs should be looking something like this:
The Configure method is called at runtime and it is used to configure and channel HTTP requests.
IApplicationBuilder provides the mechanisms for configuring application requests. The middleware is also configured here.
Next, we will configure the app to use IIS/IIS Express for the web server and set the content root. To do this we will add the following lines before the Build() in Program.cs :
To use IIS with ASP.NET Core, both UseKestrel and UseIISIntegration must be specified. Kestrel is designed to run behind a proxy and should not be deployed without it.
Now let’s add the IIS package reference in .csproj , and run dotnet restore for updating dependencies.
We will add “Watcher” to see the changes reflected without needing to stop and re-run the project. For that we are going to add the following dependency:
As always we will have to run dotnet restore , and now if we run dotnet watch run we should be able to see our changes being reflected without us having to reload out application.
Congratulations!
You already have your .Net Core application running on Linux and you learned how to configure it from scratch using Kestrel and develop it in a web environment. In the next post, I explain how to build an MVC architecture application using the tools provided by .Net Core.
Источник
Девелопишь на .NET Core? Го в Ubuntu, я создал
Photo by Kevin Horvat
Все 12 лет своей карьеры я работал с .NET и был крепко привязан к Windows и проприетарным инструментам разработки. Но, спасибо Microsoft, .NET Core все изменил и теперь разрабатывать для .NET можно почти на чем угодно и в чем угодно. Дело за малым — перетащить на Core свои проекты. Не так давно я решил и этот вопрос и завел трактор для полного переезда на Ubuntu.
Результат очень понравился — все взлетело, разрабатывать легко, а Docker и Kubernetes сделали процесс переезда намного легче. Но из-за слабого знания ОС, bash и запутанности вариантов установки некоторых инструментов (например, того же Docker) изначальная настройка заняла больше дня. То есть процесс довольно долгий и местами запутанный.
Дабы сэкономить время будущему себе и тем, кто также планирует попробовать разработку под Linux, я оформил все в виде скриптов. Их можно запустить на чистой Ubuntu и они все настроят пока ты сидишь и пьешь чаек. Также, при желании, их легко допилить под свои нужды.
Если для вас это звучит полезно — добро пожаловать под кат.
Скрипты доступны в репозитории на Github. Для их чтения достаточно начального знакомства с bash и они обильно снабжены ссылками. А человек искушенный, скорее всего, найдет в них и неоптимальные моменты (если нашли — сообщите мне, пожалуйста, буду очень вам благодарен).
Полагая, что скрипты будут чаще «дотачиваться» под конкретные нужды, чем использоваться в исходном виде, все тонкие моменты (например, как запустить команду из под текущего пользователя находясь в режиме sudo) также снабжены ссылками.
Итоговый набор состоит всего из пяти файлов — три скрипта и два конфига для kubernetes.
1_opinionated.sh
Простите, но первый же скрипт это главный кандидат на «дотачивание», а то и вовсе пропуск.
Прежде всего, он устанавливает гипервизор для дальнейшего запуска kubernetes. Я выбрал Virtualbox, но также возможен запуск на KVM и вообще без гипервизора. Каждый вариант имеет свои нюансы, поэтому финальный выбор за вами.
Также скрипт устанавливает поддержку русского языка (чтобы я смог написать эту статью).
После запуска необходимо выполнить перезагрузку, чтобы Virtualbox смог себя донастроить перед установкой остальных инструментов.
2_setup.sh
Самый большой и полезный скрипт. Он устанавливает следующие инструменты:
- Git
- .NET Core 3.1 SDK
- Nodejs
- Docker Community Edition, добавляет репозиторий для обновлений Docker
- Проверяет что установлен Virtualbox или KVM и устанавливает minikube
- Устанавливает Visual Studio Code и несколько расширений для разработки как frontend, так и backend: Gitlens, TSLint, Prettier, Stylelint, C#, Docker tools, Kubernetes tools, Kubernetes Support.
3_configure.sh
Выполняет настройку установленных тулзов. А именно:
- Запрашивает имя и email пользователя Git
- Опицонально предлагает установить VS Code как редактор по умолчанию для Git
- Опционально предлагает использовать libsecret для сохранения паролей Git в зашифрованном виде
- Добавляет текущего пользователя в группу «docker», необходимую для работы с Docker без постоянного использования sudo
- Стартует minikube и устанавливает dashboard для доступа к кластеру через Web UI
- Создает в minikube пользователя-админа для доступа к дашборду. Для этого используются файлы minikube_admin_user.yaml и minikube_role_binding.yaml из репозитория.
- Выводит инструкции по получению токена для доступа к дашборду.
Чтобы применились настройки доступа к docker необходимо разлогиниться и перезапустить сервис docker. Или попросту перезагрузить ОС.
Вот, собственно, и все. Надеюсь, скрипты будут полезны желающим быстро освоиться с Ubuntu и разработкой под .NET Core.
Источник
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:
Установка Visual Studio Code
Устанавливается легко в пару кликов по этой ссылке.
Установка расширения C#
Запускаем Visual Studio Code, нажимаем Ctrl-P, вводим команду:
ext install csharp
В появившейся слева панели нажимаем «Установить» напротив соответствующего расширения, если это не произошло автоматически. Visual Studio Code можно пока закрыть.
Подготовка среды разработки и формирование шаблонов приложений
Устанавливаем новейший node.js с оригинального сайта (тот, что идёт с дистрибутивом не подходит), он нам нужен из-за менеджера пакетов npm, который идёт вместе с ним:
Для других дистрибутивов инструкция здесь.
Инициализация проекта
Для инициализации используется скаффолдер Yeoman — инициализатор проекта, включающий в себя развёртывание файловой структуры и генерацию шаблона проекта, т.е. исходного кода приложения. Включает в себя скаффолдер Yo, менеджер пакетов Bower и менеджер задач Grunt. При установке Yo вам будут установлены также Bower и Grunt. Здесь устанавливаем в любом терминале также новейший генератор aspnet, в котором возвращена система сборки msbuild вместо project.json:
Запуск генератора проекта
Примечание: При выборе пункта WebApplication будет создан шаблон приложения с авторизацией клиентов, где в качестве БД может использоваться SQLite (генератор выдаст соответствующие инструкции как это сделать). Если же вы захотите в качестве базы использовать что-нибудь покруче, то можно добавить поддержку PostgreSQL:
- Установка: npm install -g generator-aspnetpostgresql
- Генерация шаблона: yo aspnetpostgresql
Данный генератор основан на том же самом OmniSharp/generator-aspnet. Версия несколько устарела, поэтому для запуска нужно сначала выполнить dotnet migrate & dotnet restore — именно в таком порядке.
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
Теперь запустите 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, как показано ниже (у меня почему-то не заработало):
Для тех, кто только приступает к использованию Visual Studio Code (или Code, для краткости), следует заметить, что данный продукт не только имеет удобный, простой и отзывчивый интерфейс, обеспечивающий быструю работу с файлами, но он также предоставляет инструменты для наиболее эффективного написания кода.
В левой панели навигации находятся пять значков, представляющие четыре viewlet:
- Explore
- Search
- Git
- Debug
- Extensions
Explore viewlet позволяет быстро перемещаться по системе каталогов, а также облегчает обзор файлов, с которыми вы работаете. При наличии несохраненных изменений в файлах специальный значок на экране будет уведомлять об этом; упрощается процесс создания новых файлов и папок (для этого не надо открывать новое окно). Также удобно пользоваться командой Save All (Сохранить все), доступной в меню, которое появляется при наведении курсора мыши.
Code интегрируется с Git, если он установлен на вашем компьютере. При помощи Git viewlet можно создавать новые репозитории, подтверждать изменение кода, отправлять изменения.
Debug viewlet поддерживает интерактивную отладку приложений.
Кроме того, в редакторе Code есть множество замечательных функций. Вы увидите, что неиспользованные операторы using будут подчеркнуты и могут быть удалены автоматически при помощи Сtrl-. , если значок лампочки отображается на экране. Также можно видеть, сколько ссылок на классы и методы есть в проекте. Если вы переходить с Visual Studio, то вы можете использовать многие знакомые сочетания клавиш, например, Сtrl-K+C , чтобы закомментировать блок кода или Ctrl-K-U , чтобы раскомментировать его.
Запуск приложения при помощи Kestrel
Kestrel — это кросс-платформенный HTTP сервер, основанный на libuv — библиотеке асинхронного ввода-вывода. Для его установки нужно установить соответствующий пакет NuGet: Microsoft.AspNetCore.Server.Kestrel. Сделать это можно двумя способами:
- Установив .Net Core Project Manager (Nuget) через viewlet Extensions (Расширения): Ctrl-Shift-P , набираем Nuget , ↵, затем Kestrel ↵ выбираем Microsoft.AspNetCore.Server.Kestrel
- Через командную строку в терминале редактора vs code editor:
Всё, теперь можно запускать: нажимаем F5 или в терминале dotnet run , при этом автоматически запускается браузер с приложением по адресу: localhost:5000 . Чтобы остановить веб-сервер, нажмите Ctrl+C. Вот и всё, можете наслаждаться вашим первым приложением ASP.Net Core:
Источник
Учебник. Создание шаблона проекта
С помощью .NET вы можете создавать и развертывать шаблоны, которые генерируют проекты, файлы и даже ресурсы. Это руководство представляет собой вторую часть серии, в которой описано, как создавать, устанавливать и удалять шаблоны с помощью команды dotnet new .
Из этой части вы узнаете, как выполнять такие задачи:
- создание ресурсов для шаблона проекта;
- создание папки и файла конфигурации шаблона;
- установка шаблона из файла;
- тестирование шаблона элемента;
- удаление шаблона элемента.
Предварительные требования
- Изучите первую часть этой серии руководств.
- Откройте терминал и перейдите к папке working\templates.
Создание шаблона проекта
Шаблоны проектов предоставляют готовые проекты, которые упрощают пользователям взаимодействие с рабочим набором кода. .NET включает несколько шаблонов проектов, например консольное приложение или библиотеку класса. В этом примере описано, как создать консольный проект, который включает поддержку C# 9.0 и создает точку входа async main .
В окне терминала перейдите к папке working\templates и создайте вложенную папку с именем consoleasync. Откройте созданную папку и выполните команду dotnet new console , чтобы создать стандартное консольное приложение. Чтобы создать новый шаблон, созданные им файлы нужно изменить.
Изменение файла program.cs
Откройте файл program.cs. Консольный проект не использует асинхронную точку входа, поэтому мы добавим ее. Измените код на приведенный ниже и сохраните файл.
Изменение файла consoleasync.csproj
Мы изменим версию языка C#, которую использует проект, на 9.0. Отредактируйте файл consoleasync.csproj и добавьте параметр для узла
Построение проекта
Перед завершением работы с шаблоном проекта протестируйте его, чтобы проверить правильность компиляции и выполнения.
В терминале выполните приведенную ниже команду.
Вы получите приведенные ниже выходные данные.
Вы можете удалить папки obj и bin, созданные после запуска команды dotnet run . Удаление этих файлов гарантирует, что шаблон будет включать только те файлы, которые связаны с шаблоном (без файлов, созданных в результате сборки).
Теперь, когда вы создали содержимое шаблона, необходимо создать файл конфигурации шаблона в его корневой папке.
Создание конфигурации шаблона
Шаблоны распознаются в .NET по специальной папке и файлу конфигурации, которые находятся в корневой папке шаблона. В нашем случае папка шаблона имеет такое расположение: working\templates\consoleasync.
При создании шаблона все файлы и папки в этой папке включаются как его часть, кроме специальной папки конфигурации. Эта папка конфигурации имеет имя .template.config.
Сначала создайте вложенную папку с именем .template.config и откройте ее. Затем создайте файл с именем template.json. Структура папки должна быть такой, как указано ниже.
Откройте файл template.json в любом текстовом редакторе, вставьте приведенный ниже код JSON и сохраните его.
Этот файл конфигурации содержит все параметры шаблона. Вы можете увидеть основные параметры, например name и shortName , но в нем также присутствует параметр tags/type со значением project . Он указывает на то, что ваш шаблон является шаблоном проекта. Вы можете создать шаблон любого типа. Значения item и project — это общие рекомендуемые имена .NET, которые позволяют без усилий фильтровать типы шаблонов при поиске.
Элемент classifications представляет столбец tags, который отображается после запуска команды dotnet new и получения списка шаблонов. Пользователи также могут выполнять поиск по тегам классификации. Не путайте свойство tags в JSON-файле со списком тегов classifications . Это два разных элемента, которые, к сожалению, имеют одинаковые имена. Полная схема файла template.json находится в хранилище схем JSON. Дополнительные сведения о файле template.json см. на вики-сайте о шаблонах dotnet.
Теперь, когда у вас есть допустимый файл .template.config/template.json, вы можете установить шаблон. Перед установкой шаблона убедитесь, что вы удалили все лишние файлы и папки, которые не должны включаться в шаблон, например папки bin или obj. В окне терминала перейдите к папке consoleasync и выполните команду dotnet new -i .\ , чтобы установить шаблон, расположенный в текущей папке. Если вы используете операционную систему Linux или macOS, используйте косую черту: dotnet new -i ./ .
Эта команда выводит список установленных шаблонов, в числе которых должен быть и ваш шаблон.
Вы получите результат, аналогичный приведенному ниже.
Тестирование шаблона проекта
Теперь, когда вы установили шаблон проекта, протестируйте его.
Перейдите в папку теста.
Создайте консольное приложение с помощью приведенной ниже команды, которая позволяет создать рабочий проект, который можно без труда протестировать, используя команду dotnet run .
Вы получите приведенные ниже выходные данные.
Запустите проект с помощью приведенной ниже команды.
Вы получите приведенные ниже выходные данные.
Поздравляем! Вы создали и развернули шаблон проекта с помощью .NET. Для подготовки к следующей части этой серии руководств вам необходимо удалить созданный шаблон. Также обязательно удалите все файлы из папки test. Так вы воссоздадите первоначальные условия для работы со следующим разделом этого руководства.
Удаление шаблона
Так как вы установили шаблон с указанием пути к файлу, вам нужно удалить его, указав абсолютный путь к файлу. Вы можете просмотреть список всех установленных шаблонов, выполнив команду dotnet new -u . Ваш шаблон должен быть последним в списке. Используйте Uninstall Command , чтобы удалить шаблон.
Вы получите результат, аналогичный приведенному ниже.
Чтобы удалить созданный шаблон, запустите Uninstall Command , показанный в выходных данных.
Следующие шаги
В рамках этого руководства вы создали шаблон проекта. Чтобы узнать, как создать простой в использовании пакетный файл с элементом и шаблонами проектов, перейдите к следующей части этой серии.
Источник