УДК 004.42
Даньшин К.А. студент магистратуры 2 курса отдел аспирантуры и магистратуры (Программная инженерия)
Поволжский Государственный Университет Телекоммуникаций и Информатики
Россия, г. Самара
РАЗРАБОТКА БАЗОВОГО ASP .NET CORE ВЕБ-ПРИЛОЖЕНИЯ И РАЗВЕРТКА НА ОДНОПЛАТНОМ КОМПЬЮТЕРЕ
Аннотация: статья посвящена обзору использованных решений и практической реализации данного веб-приложения с последующей настройкой и установкой на одноплатный компьютер.
Ключевые слова: веб-приложение, ASP .NET Core, C#, одноплатный компьютер, Raspberry Pi.
Danshin K.A. candidate for a master's degree
2nd year, Department of Graduate and Magistracy (Software engineering) Volga State University of Telecommunications and Informatics
Russia, Samara
DEVELOPING A BASE ASP .NET CORE WEB APPLICATION AND DEPLOY ON A SINGLE BOARD COMPUTER
Abstract: the article is devoted to an overview of the solutions used and the practical implementation of this web application, followed by setup and installation on a single-board computer.
Keywords: web application, ASP .NET Core, C#, single board computer, Raspberry Pi.
Микрокомпьютер Raspberry Pi 3 model B представлен в зеленом цвете без установленной операционной системы. Устройство дополнено встроенным функционалом Bluetooth 4.1. Четырехъядерный процессор работает с частотой 1200 МГц, гарантирующей достаточный уровень производительности.
Устройство дополнено интерфейсом для подключения наушников с разъемом jack 3.5 mm. Имеются интерфейсы HDMI и MIPI (CSI) для подключения внешних приборов отображения изображения. Для работы с периферийными устройствами предусмотрены наиболее популярные разъемы.
Модель Raspberry Pi 3 model B дополнена оперативной памятью SDRAM на 1 ГБ. Видеокарта аналогичного производства работает на основе объема, выделяемого из оперативной памяти. Микрокомпьютер дополнен Wi-Fi-модулем и сетевым адаптером Ethernet (RJ-45), работающим со скоростью 100 Мбит/с.
В качестве аппаратной платформы для проекта я выбрал Raspberry Pi 3 model B, т.к. этот одноплатный компьютер обеспечивает достаточную производительность и возможность подключения разнообразной периферии. Raspberry Pi обладает обширным комьюнити, которое является достаточно дружелюбным и оказывает помощь в решении проблем с этой аппаратной платформой. Несомненным плюсом является то, что разработчики ПО добавляют поддержку для Raspberry Pi.
Установка .NET Core
Для начала нужно установить операционную систему на Raspberry Pi. В качестве операционной системы я выбрал Raspbian. Эта ОС базируется на Debian.
Для этого этапа необходимо скачать образ системы (https://www.raspberrypi.org/downloads/raspbian/) и записать его на SD карту с помощью программы Etcher (https://etcher.io/). Далее необходимо вставить эту SD карту в Raspberry Pi. Процесс загрузки представлен на следующих скриншотах: _
ТСГ саИс refliterr«!
HCI RnjUtrrol Iirutuiol faall4 17
urr njfiirt Up I: laplrwrator 41 arcfcltdctare I pur« ¿0 wrltat Ь r*v *>
ы4л 1 mU2 -.4 OP О 0 li.<»> MtirM MC5I 4Ilk
I t« I «I t AT (ни rt Z /Jruiiri/fp^l .ГГ M»4t ' I ' I ll|«jlt
uipit: lnliflV '»-г и t»f\>rrr ftn.'i i ( r t/fpi» OM^rlol/tii/ot i 'I |n 11
EKT1 (> гггчг imliln't ••«nit Wxduir of uit\upfpurtn4 Ofitiuiul fr>il«rrv С
EXT1 li Iula2I mntnl lilrvplm и I Ik oricml Acta i-.U 0»1ч (mill
Ul" И untril mnt (р>14 fllr ;.t'Kl rmAmliJ nл Jnikr II f
livtllpfs' пяпЫ
Гггг||»| Intt arimn; IVK
INIT: vertlon 2.ее kuotlni
I Inliil IIkImj wkrfllf-itylv (nararrml boot la malMl S
I....I Start 114 tic hulpluii events 4 li^aUlier e4ev4w^cv411H1: startlnf uerslo«
I....I ¡tynltmllliq tbr laltlal hntpliiq mrnti n4ru. wrtlm M||C 'JI.V pr rrm,l ~<4 «а1ш4 туЛхкп. loai ЮУА ' lkaal4 br 'l.l> wad ..11«J nRM ' nuJflv: urn Inn Mfir '3.1 4» ft 111 —у t an4 ия lсм4 mlurrvleai A4fVii * 1 Im 14 br t м>4ма1<ы4 MM '
Рис. 1 - Процесс загрузки Raspbian
Далее необходимо установить .NET Core. Для этого нужно отрыть терминал и ввести следующие команды:
• sudo apt-get update - обновляем пакеты;
• sudo apt-get install curl libunwind8 gettext apt-transport-https -устанавливаем пакет libunwind8;
• curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg - скачиваем доверенный ключ продукта корпорации Майкрософт;
• sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg -устанавливаем ключ;
• sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main"
> /etc/apt/sources.list.d/dotnetdev.list' - регистрируем канал продукта корпорации Майкрософт;
• sudo apt-get install dotnet-sdk-2.0.0 - устанавливаем пакет SDK для .NET Core;
• sudo apt-get update - проверяем обновления пакетов;
• export PATH=$PATH:$HOME/dotnet - добавляем каталог dotnet в PATH;
• dotnet --version - Чтобы проверить, успешно ли завершилась установка, выполняем эту команду.
В результате должен быть вывод версии .NET Core в терминал. Данный скриншот сделан в Windows, но для Linux будет все аналогично, т.к. .NET Core - кроссплатформенный._
::\Users\Knpiwi flaHbiiiHH>dotnet
!. S. 3
-version
Рис. 2 - Проверка установленной версии .NET Core Создание веб-приложения на ASP .NET Core
Для создания приложения необходимо использовать среду Visual Studio 2017 для Windows или же Visual Studio Code для *nix систем. В качестве базы будет использоваться готовый шаблон ASP .NET с фронтендом на Angular2 для реализации Single Page Application. Архитектура приложения представлена на рисунке 3.
Server [ASP.NET Core]
(utilizing a Node process to render the App}
Universal Application Code
Рис. 3 - Архитектура веб-приложения ASP .NET Core
1) Скачиваем проект из репозитория (https://github.com /JosephTsang/aspnetcore-angular2-universal-master).
2) Запускаем его.
0 Homepage - Angular U X
<- С © localhost:52904/ho m ir | $
Angular 5 Universal & ... Angular 5.x Universal & ASP.NET Core 2.0 -
| # Home advanced starter-kit
¡^ Counter A Rest API Demo 1 Enjoy the latest features from .NET Core & Angular 5.0! 1 For more info check the repo here: AspNetCore-Angular2-Universal repo
S! ngx-Bootstrap demo
Lazy-loaded demo What does this Starter offer? • ASP.NET Core 2.0:: (Visual Studio 2017 ) • Angular 5.* front-end Ul frameworK o Anguiar "platform-server** (aka: Universal) - server-side rendering for SEO, deep-linking, and incredible performance. « AoT (Ahead-of-time) production compilation for even faster Prod builds. • The latest Typescript 2* features • Webpack o Hot Module Reloading/Replacement for an amazing development experience, o Tree-shaking • Bootstrap (ngx-bootstrap): Bootstrap capable of being rendered even on the server. • Unit testing via karma a jasmine. Havina issues?
Рис. 4 - Начальная страница базового веб-приложения
Подведя итог, можно сказать, что начальный этап закончен. В дальнейшем необходимо настраивать это приложение под себя.
Использованные источники:
1. Raspberry Pi Blog - News, Announcements, and Ideas // Raspberry Pi. URL: https://www.raspberrypi.org/blog (дата обращения: 23.10.2018).
2. MSDN - сеть разработчиков Microsoft // MSDN. URL: https://msdn.microsoft.com/ru-ru (дата обращения: 23.10.2018).