NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания графического интерфейса (Виталий Липатов, OSSDEVCONF-2017) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) (Batch edit: replace PCRE (\n\n)+(\n) with \2) |
StasFomin (обсуждение | вклад) |
||
;{{SpeakerInfo}}: {{Speaker|Виталий Липатов}}
<blockquote>
Платформа .NET Core является кроссплатформенным аналогом .NET Framework на уровне библиотек базовых классов (BCL) .NET Framework.
Она реализует спецификацию .NET Standard 2.0.
В докладе будут рассмотрены средства разработки, варианты сред разработки и способы создания графического интерфейса, ориентированные на создания кроссплатформенных пользовательских приложений.
</blockquote>
{{VideoSection}}
{{vimeoembed|235962389|800|450}}
{{youtubelink|-RKMkkpEkS4}}{{letscomment}}
{{SlidesSection}}
[[File:NET Core 2.0 как универсальная платформа разработки. Миграция с .NET Framework — среда разработки и альтернативные средства создания GUI.pdf|left|page=-|300px]]
{{----}}
== Thesis == | |||
Текущая версия на 06:00, 20 октября 2025
- Докладчик
- Виталий Липатов
Платформа .NET Core является кроссплатформенным аналогом .NET Framework на уровне библиотек базовых классов (BCL) .NET Framework. Она реализует спецификацию .NET Standard 2.0.
В докладе будут рассмотрены средства разработки, варианты сред разработки и способы создания графического интерфейса, ориентированные на создания кроссплатформенных пользовательских приложений.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
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:406 Comments:0

