Кроссплатформенное GUI-приложение на C# от Skillbox Media
Создавайте стильные приложения на C# для любых платформ. Узнайте, как разработать одно приложение, совместимое со всеми операционными системами.
Содержание:
Основы Python: бесплатный курс для всех уровней навыков ➞ Овладейте 4 интересными проектами в портфолио и получите возможность общения с экспертом. Узнайте о содержании курса, кликнув здесь.
Узнать большеКомпания Microsoft представила уже третью итерацию кросс-платформенного .NET Core с открытым кодом, однако инструмент для разработки графических интерфейсов по-прежнему отсутствует.
На сегодняшний день существует Xamarin, который предназначен исключительно для разработки приложений под Windows 10 и мобильные платформы. Однако возникает вопрос: что делать тем разработчикам, которые стремятся создавать графические интерфейсы для операционных систем Linux или Mac OS?
В данном случае на помощь придут фреймворки, созданные независимыми разработчиками.
Выбор подходящего фреймворка для вашего проекта
Я смог обнаружить два относительно известных фреймворка, оба из которых построены на основе Skia:
Я протестировал оба варианта, и второй оказался для меня более комфортным. Он включает язык разметки, поддержку паттерна MVVM, быструю установку и обеспечивает лёгкий переход от WPF. Именно поэтому я принял решение отдать предпочтение этому варианту.
Первые шаги в освоении AvaloniaUI
Я планирую разрабатывать приложение на платформе Linux Ubuntu, хотя данная инструкция будет актуальна для всех пользователей .NET Core. Приложения можно создавать и в Visual Studio с установленным расширением, но поскольку эта среда недоступна на Linux, я буду использовать терминал для своей работы.
Сначала скачайте этот репозиторий на свой компьютер:
В этом архиве представлены шаблоны, которые помогут вам разработать приложение с использованием AvaloniaUI. Если вы не знакомы с Git, не переживайте: просто загрузите файлы и распакуйте их в любое удобное место на вашем компьютере. После этого откройте командную строку и введите следующую команду:
Она настроит образцы для разработки приложения. Чтобы убедиться, что образцы были добавлены, выполните следующую команду:
Перед вами будет представлен перечень всех установленных шаблонов. В этот список должны входить такие элементы, как Avalonia Window, Avalonia .NET Core MVVM App, Avalonia UserControl и Avalonia .NET Core App. Если все они присутствуют, можно двигаться дальше.
Перейдите в ту директорию через консоль, в которой планируете начать новый проект, и введите:
Планируется разработка приложения с применением паттерна MVVM. Большая часть документации по AvaloniaUI представлена именно в этом формате, что сделает процесс разработки более удобным и эффективным.
Теперь можно начинать разработку приложения.
Разработка калькулятора с использованием AvaloniaUI
Вам будут организованы следующие каталоги.
- Раздел «Активы» предназначен для загрузки различных элементов программы, таких как иконки, изображения, звуковые файлы и другие материалы.
- Папка Models предназначена для хранения классов, которые будут выполнять функции модели.
- ViewModels представляют собой классы, которые служат связующим звеном между представлением и моделью.
- В этом разделе будут размещены все окна.
Давайте начнем с изучения файла Program.cs, который находится в корневом каталоге.
Нас привлекает метод AppMain (). В рамках этого метода происходит создание основного окна (MainWindow), где задаётся контекст данных (это необходимо для установки привязки данных), после чего данное окно запускается.
Этот подход позволяет установить собственную логику инициализации приложения. К примеру, можно создать экземпляр модели и затем передать его в конструктор MainWindowViewModel (). Однако прежде необходимо определить конструктор, который будет способен принимать данный аргумент.
Наше приложение отличается простотой, поэтому мы решили разместить всю бизнес-логику непосредственно в файле MainWindowViewModel.cs. В этом файле будут определены все необходимые свойства и методы.
В первую очередь необходимо подключить пространство имён ReactiveUI, так как оно служит основой для реализации паттерна MVVM в AvaloniaUI.
После этого можно приступить к написанию самого кода.
Необходимо создать код интерфейса для основного окна в файле MainWindow.xaml.
Можно отметить, что представленный XAML очень похож на тот, что применяется в WPF: здесь встречаются те же элементы и атрибуты, а также используются сетки и механизмы привязки данных. Однако в данном случае в качестве команд можно использовать обычные методы, что невозможно в WPF.
Для того чтобы собрать и запустить приложение, введите в терминале следующую команду:
Пожалуйста, предоставьте текст, который вы хотите переработать.
Теперь приложение можно легко скомпилировать для различных операционных систем, и для переноса на новую платформу не нужно выполнять никаких дополнительных действий.
Заключение
Десятилетие-полтора назад это выглядело бы как нечто странное, однако сегодня мы способны создавать программы для Linux, используя язык, который изначально разрабатывался для создания приложений на Windows.
Читайте также:
- .NET представляет собой платформу, разработанную компанией Microsoft, которая служит для создания различных приложений, начиная от настольных и заканчивая веб-сервисами. Основной целью .NET является упрощение процесса разработки программного обеспечения, предоставляя разработчикам мощные инструменты и библиотеки.
Платформа включает в себя несколько компонентов, среди которых можно выделить .NET Framework, .NET Core и Xamarin. .NET Framework предназначен для создания приложений, работающих на Windows, в то время как .NET Core и Xamarin обеспечивают возможность разработки кросс-платформенных решений, которые могут выполняться на различных операционных системах, таких как macOS и Linux.
Кроме того, .NET поддерживает множество языков программирования, включая C#, F# и Visual Basic, что позволяет разработчикам выбирать подходящий инструмент для решения конкретной задачи. Важной частью .NET является также среда выполнения, называемая CLR (Common Language Runtime), которая отвечает за выполнение кода и управление его жизненным циклом, включая сборку мусора и обработку исключений.
Использование .NET позволяет значительно ускорить процесс разработки благодаря обширной библиотеке готовых решений и компонентов, что экономит время и ресурсы. Платформа также обеспечивает высокую производительность и безопасность приложений, что делает её популярной среди разработчиков по всему миру.
- Подкасты, фронтенд-разработка и нетворкинг: способы вхождения в IT-сообщество и бесплатного обучения.
- Создаем мессенджер на C#. Часть 1. Дизайн интерфейса