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-приложений.

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

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

Plays:406   Comments:0