- Разработка приложений на С# в Linux среде
- Other Linux
- 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
Разработка приложений на С# в Linux среде
C# — язык для разработки .NET приложений от Microsoft. Если название последней фирмы Вас не испугало и всё-таки нужно писать эти приложения — можно делать это в любимой ОС. В статье рассмотрен необходимый софт, а также создаётся первая программа.
Почти все знают, что .NET — платформа, разработанная компанией Microsoft, а эта корпорация ничего не делает задаром… Итак, язык C#. Хммм, странно, почему же он так напоминает Java? Ладно, проехали… Будем надеяться, что M$ заплатят за свои грехи. Но иногда даже заядлым линуксоидам приходиться программировать на этом языке. Не лезть же для этого в популярную проприетарную ОС? В этом случае нам на помощь приходит проект Mono. Вот, что про него пишут на официальном сайте:
Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix.
То есть это тот набор утилит, что нам нужен. Собранные пакеты есть почти для всех популярных дистрибутивов Linux, либо сразу входят в набор дополнительного (но не установленного) софта. Итак, скачать Mono можно со странички http://www.mono-project.com/Downloads. Если готового пакета для нужного дистрибутива нет — то можно собрать Mono из исходного кода. Правда, компилируется он довольно долго.
После установки Mono мы уже можем успешно запускать .NET-приложения. Даже те, которые были написаны в Windows и имеют расширение .ехе. Но радоваться тут нечему — приложения “летают” со скоростью эмулятора. Хотя, под Windows скорость их работы примерно такая же 🙂
Разработчики Mono обещали нам также возможность разработки приложений. Но где же она? Mono — чисто консольное приложение и предназначено для запуска .NET программ. А возможность разработки заключается в том, что в комплект входит ещё и компилятор C#. Никакой удобной IDE для разработки в пакете нет. Это не понравится девелоперам, которые уже успели попользовать проприетарную Visual Studio. Но в Linux даже из безвыходных ситуаций всегда найдётся выход! 🙂
Удобная IDE для разработки С# приложений есть! И она называется MonoDevelop. Эта среда не входит в пакет Mono, так что качать и ставить её придётся отдельно. Скачать можно с официального сайта: http://www.monodevelop.com/Download. Надеюсь, с установкой у читателя проблем не возникнет.
Теперь создадим свой первый проект на С# под Linux. Для этого нужно запустить monodevelop. По медленной скорости загрузки этого приложения можно понять, что такое интерпретируемый язык… Эта среда так долго запускается только в первый раз. Во время этой загрузки она создаёт необходимые конфигурационные файлы, подготавливает систему к работе. В последующие разы IDE будет грузиться немного быстрее.
Итак, создадим новый проект. Это можно сделать либо кликнув по ссылке “Start a New Project” в окне приветствия, либо в меню “Файл” -> “Новый проект”. По умолчанию выбран “Консольный проект”. Так как это наше первое приложение — его и выбираем. В качестве названия я ввел “hello”, название решения выставилось автоматически.
После этого появится диалог “Project Features”. Пока там можно ничего не выбирать (ну, или “Unix integration” наконец 🙂 ). Кликаем “ОК” — и код минимального приложения создан:
Допишем чуть-чуть кода, чтобы наше приложение еще и читало какие-нибудь данные из консоли и выводило ткуда что-то. Код заменим на:
После этого сохраняем файл (тандартный хоткей Ctrl+S — рабочий) и компилируем программу. Это можно сделать либо при помощи меню “Проект” -> “Простроение hello” / “Построение решения”, либо при помощи соответствующей кнопки на панели инструментов, либо ещё удобнее — по клавише F7. После этого в журнале построения должно появиться сообщение об успешной сборке.
Как видно, MonoDelvelop вполне функциональная и удобная среда. В ней уже можно с комфортом разрабатывать приложения. Порадовала относительно хорошая русская локализация — даже сообщения компилятора выводятся на русском языке. Большое количество настроек порадует любого девелопера. Также среда может помочь создать архив с новоразработанным приложением. Причём, сделать как версию с исходными кодами, так и с бинарными файлами. Отучают нас от консоли, балуют! 🙂
Ещё одной приятной фишкой среды было автодополнение функций. При введении символа “.”(точка) после объекта какого-нибудь класса во всплывающем окошке отображаются все методы и свойства этого класса, будь то встроенный или только что написанный класс. Причём, можно использовать клавиши стрелок для навигации по этому списку и по каждой функции будет отображено краткое описание (если таковое имеется). Также можно продолжать вводить имя нужной функции с клавиатуры — тогда поиск в окне-подсказке будет совершён автоматически:
В целом эта IDE оставляет приятные ощущения. И это не смотря на очень раннюю версию (0.15). Уже виднеются кроссплатформенные конкуренты Visual Studio от MS! 🙂 Но некоторые жизненно важные возможности пока не реализованы. Например, отладка. Если нужно написать небольшое приложение — то можно его написать и без отладки. Но писать серьёзные коммерческие приложения в этой среде пока будет трудновато. Остаётся лишь надеяться, что разработчики не заставят нас долго ждать и уже в ближайших версиях пошаговая отладка появится.
Теперь запустим нашу программу. Если сделать это при помощи кнопки “Запустить” (F5), то программа обругает нас, мол “Unhandled Exception: System.ArgumentNullException: Argument cannot be null…” Это происходит потому, что в поле “Возраст” мы должны были ввести число, а программа автоматически подставила значение null.
Чтоб ощутить, что мы написали реально рабочее приложение запустим его вручную. Для этого нужно перейти в каталог проекта. Потом в нем в каталог ./bin/Debug/. И в этом каталоге уже будет лежать наше готовое кроссплатформенное приложение. Можем запустить его при помощи mono и посмотреть результат:
Как видите, приложение работает 🙂 Теперь вернёмся к исходному коду. В нём показаны почти все основные принципы ООП:
- Инкапсуляция (скрытие полей объекта от других классов) — напрямую обращаться к свойствам объекта Me нельзя, компилятор выдаст ошибку. Для обращений к этим полям нужно использовать специальные доступные функции (API — Application Prorgramm Interface). Конкретно в данном примере это функции AddToUniversity и Write.
- Полиморфизм (возможность использования одинаковых имён). А именно, в функцию AddToUniversity передаются переменные, соответствующие классовым; вывод данных — функция Write.
- Наследование (в примере использовано не было). В остальном исходный код должен быть понятен, так как приложеньице совсем маленькое. Однако даже маленькоее приложение может быть революционным шагом в истории! Ведь теперь для разработки приложений даже на C# вовсе не обязательно использовать Windows…
При написании данного материала были использованы:
- ОС : Gentoo Linux 2007.0
- Браузер : Mozilla Firefox 2.0.0.6
- Файловый менеджер : Midnight Commander 4.6.1 с набором патчей
- Эмулятор терминала : Konsole 1.6.6 (просвечивается картинка на рабочем столе)
- Текстовый редактор : GVim 7.1 (он же использовался для подсвечивания синтаксиса C# в материале)
- Графический редактор : Gimp 2.4.0
- Оконный менеджер : KDE 3.5.7
- Mono 1.2.4
- MonoDevelop 0.15
Other Linux
2007-09-04 RUSSIAN
russian tools console linux c#
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: