NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания графического интерфейса (Виталий Липатов, OSSDEVCONF-2017)

Материал из 0x1.tv

Докладчик
Виталий Липатов.jpg
Виталий Липатов

Платформа .NET Core является кроссплатформенным аналогом .NET Framework на уровне библиотек базовых классов (BCL) .NET Framework. Она реализует спецификацию .NET Standard 2.0.

В докладе будут рассмотрены средства разработки, варианты сред разработки и способы создания графического интерфейса, ориентированные на создания кроссплатформенных пользовательских приложений.

Видео

on youtube


Презентация

NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf

Thesis

Платформа .NET Core

По сути .NET Core является повторной разработкой .NET Framework, но имеющей открытую лицензию (MIT) и работающей на всех платформах (Windows, Linux, MacOS). Обеспечивается совместимость с .NET Framework на уровне базовых классов (BCL), согласно стандарту .NET Standard 2.0, к которому, по замыслу архитекторов Microsoft, должна стремиться любая существующая реализация .NET.

На сегодняшний день .NET Core претендует на то, чтобы быть полноценной платформой промышленного уровня.

В составе SDK поставляется компилятор C\# с открытым исходным кодом из состава .NET Compiler Platform -- Roslyn.

Как и полагается современной платформе, имеется менеджер пакетов (Nuget), и репозиторий пакетов. К сожалению, реализация такова, что вносит зависимость от интернета во время сборки приложения.

Платформа очень быстро развивается (сотни коммитов различных разработчиков каждый день), появляются и исчезают проблемы, меняется схема сборки, учитываются нюансы различных дистрибутивов Linux. К сожалению, во многом платформа выглядит чуждой на Linux-системах.

Ключевым в .NET Core является то, что проект обязательно должен быть собран под .NET Core (в отличие от Mono, совместимого с .NET Framework и запускающего программы без пересборки), а также то, что пока отсутствует поддержка и спецификации для графического интерфейса.

Тем не менее графический интерфейс может быть реализован следующими способами:


\item Создание приложения в модели ASP.NET Core и отображения клиенту интерфейса через произвольный браузер; \item Использование Electron для отображения интерфейса. Это придаст приложению свойства десктопности (отдельность в панели задач, нахождение в трее при необходимости, взаимодействие с операционной системой); \item Использование Avalonia (свободный межплатформенный GUI для .NET); \item Использование проекта electron-edge, выполняющего .NET и Node.js в одном процессе в Electron. На данный момент проект поддерживает только старую версию .NET Core 1.0 и не рассматривается.


Среды разработки и средства разработки GUI

Electron

Electron — это фреймворк для создания нативных приложений с использованием веб-технологий. Electron позволяет использовать браузерный движок в качестве основы для построения нативных приложений с GUI, добавляя к нему набор своих API, недоступных в обычном браузере.

Electron построен на основе Node.js и Chromium. Приложение на Electron имеет основной процесс (Main), который является точкой входа в приложение, и по меньшей мере один процесс браузера (Renderer), в котором производится отрисовка GUI.

Main — это Node.js-приложение, которое управляет окнами (Renderer), а также имеет доступ к API, связанным с системным GUI: строка меню, контекстное меню, работа с треем, диалоги, модальные окна и т. д. В Main также доступны встроенные модули Node.js (fs, http, net...) и сторонние, устанавливаемые через пакетный менеджер npm.

В Renderer загружается HTML-страница, таблицы стилей и JS-скрипты. От обычного браузера отличается наличием доступа к модулям из Node.js и возможность обмена сообщениями с Main при помощи встроенного в Electron механизма IPC.

Примером реального приложения, написанного на Electron, является редактор Visual Studio Code.

Visual Studio Code

VS Code — это редактор для кода с открытым исходным кодом от компании Microsoft, не имеющий ничего общего с небезызвестной IDE Visual Studio.

VS Code позиционируется как редактор, но по сути это нечто среднее между редактором и IDE. Основные возможности:


  • подсветка синтаксиса;
  • автодополнение с учётом языковых конструкций;
  • поддержка отладки;
  • интеграция с системами контроля версий — поддержка Git встроена.

VS Code не завязан на какую-либо конкретную платформу или язык, а благодаря механизму плагинов можно добавлять поддержку различных языков и дополнительных инструментов. Поддержка JavaScript и TypeScript есть «из коробки». Редактор хорошо интегрируется со всеми популярными языками: C/C++, Java, Python, C\#, Ruby, PHP, Go.

Avalonia

Avalonia — свободный кроссплатформенный GUI-фреймворк для .NET, способный работать под .NET Core, который доступен под Linux. Avalonia во многом похож на WPF, использует XAML и подразумевает использование MVVM-архитектуры приложений, но при этом не привязан к Windows-платформе и Microsoft.

Avalonia работает не только на десктопе (Linux, Windows, MacOS), но и на мобильных устройствах (Android, iOS). Фреймворк имеет свой набор GUI-элементов, которые одинаково выглядят на всех системах.

Фреймворк пока что находится в alpha-версии, но он активно развивается и выглядит довольно перспективным решением для создания кроссплатформенных графических приложений. Его важным преимуществом является сходство с WPF, вплоть до использования тех же XAML-файл с описанием интерфейса, что упрощает портирование существующих WPF-приложений.


Примечания и ссылки


Plays:33   Comments:0