[.NET, Оболочки, API, C#, Разработка под Windows] WinUI 3 — Новая эра разработки под Windows

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
12-Мар-2021 06:30

В календаре 8 марта, а я пишу эту статью.
Почему? - Потому, что WinUI 3 - это важно!ПредысторияДля того, что бы понять, что из себя представляет WinUI 3 и какую глобальную проблему он решает, предлагаю окунуться в историю десктопной разработки под Windows:
История развития десктопной разработки под Windows
  • Итак, на дворе 1995 год, и мы начинаем писать наш калькулятор на C++ и Win32. Win32 - самый низкоуровневый системный API, для работы с визуальным интерфейсом. Ниже только Windows Driver Model для драйверов.
  • 2002 год - наш калькулятор уже может быть написан на более высокоуровневой оболочке - WinForms (Windows Forms). Она создаёт обёртку над Win32 для более простого и удобного взаимодействия с системой. А за счёт .NET Framework и CLR, которые так же вышли в 2002 году, мы можем использовать целый букет из различный языков для разработки. В их числе были C#, С++, VB.Net, J# и другие.
  • WPF - наш ответ устаревшим технологиям. В конце 2006 года Microsoft презентуют WPF - обширный API-интерфейс для создания настольных графических программ, имеющих насыщенный дизайн и интерактивность. Новый подход включал в себя совершенно другую модель построения пользовательских приложений, основывающуюся на .NET Framework и DirectX. Вместе с выходом WPF у нас появляются следующие возможности: WEB-подобная модель компоновки, богатая модель рисования, анимации, поддержка аудио и видео, стили и шаблоны, декларативный пользовательский интерфейс, подход MVVM, и язык разметки XAML.
  • 2012 год - выход Windows 8. Очень много споров и дискуссий было на тему свежей ОС. Но самое интересное изменение, которое с ней случилось - выход WinRT или же Windows Runtime. Это именно то, почему у Windows присутствует 2 меню настроек: новое и панель управления. WinRT по существу является API, основанное на технологии COM. COM, в свою очередь, предполагал использование одних и тех же компонентов системы во многих местах одновременно. Например, PrintDialog - теперь единый компонент, к реальному состоянию которого можно получить доступ из любого места системы. Нам теперь не нужно загружать информацию о нём каждый раз при использовании, как это было с Win32.
  • 2016 - Universal Windows Platform или же UWP. Апогей унификации Windows. Продолжающая идею WinRT, UWP активно объединяет системные функции и компоненты под единым программным интерфейсом, который теперь может работать на всех устройствах с Windows 10 без изменений в коде! Но, это касается не только программных функций, но и визуальных компонентов. Так и появляется на свет WinUI 2 - единый визуальный интерфейс для всех приложений на Windows.
Что мы в итоге получаем?Как результат - у нас есть мощная платформа, с унифицированным программным и визуальным интерфейсом. Наш стандартный калькулятор уже построен как UWP приложение ( Исходный код Windows калькулятора можно найти в открытом доступе на github). Но, что-то всё равно не так…
Предпочтения разработчиков по выбору платформы за 2016 годОпрос от компании Telerik за 2016 год показал, что сообщество разработчиков без явного энтузиазма брались использовать UWP, как основную платформу в своих новых проектах. Что же не так? А всё дело в унификации приложений для Windows. За счёт оборачивания их в различные новые API и Windows Runtime, разработчики потеряли возможность работать со старыми добрыми Win32 напрямую. Они, в свою очередь, предоставляют огромнейшие возможности для тонкой работы с системой. И тот список системных API, которые сейчас доступны из UWP приложений, кажется просто смешным. Ознакомиться с ним более детально можно здесь: Список системных API, доступных через UWP приложениеWinUI 3Именно проблему недоступности системных API и будет решать новая версия WinUI. WinUI 3 Preview 4 уже находится в пре-релизе, а официальный релиз намечен на март. Но каким образом удастся получить доступ к системным API приложению, которое изначально задумывалось как работающее на WinRT и UWP API?Всё просто: Необходимо отделить визуальную часть и среду выполнения. Ключом к этому стала платформа .NET:
Из чего появился .NET 5Что такое .NET?
  • Из блока предыстории можно узнать, что в 2002 году вышла Windows-ориентированная платформа для разработки ПО - .NET Framework. Она развивалась вплоть до 2019 года, когда была выпущена последняя версия - 4.8
  • Параллельно, с 2016 года начала развиваться новая модульная платформа для разработки программного обеспечения с открытым исходным кодом - .NET Core. Кроме того, она была кроссплатформенная.
  • И наконец - .NET 5. Это, выпущенная в 2020 году, единая платформа для разработки ПО. Она объединила в себе все преимущества .NET Framework, .NET Core и некоторых похожих платформ.

По заявлениям Microsoft, теперь это единственная платформа, в сторону которой будет развиваться компания.
Планы на развитие и поддержку платформы .NETИ теперь, имея единую программную платформу - .NET 5, компания Microsoft может воплотить идею с использованием унифицированного интерфейса, но при этом оставить возможность использовать удобные API: будь-то UWP API или Win32.
Это и является той золотой срединой, когда мы можем использовать современные, производительные визуальные компоненты вместе с функциональностью системных API.Перспективы WinUI 3По заявлениям самих Microsoft, на WinUI 3 и его последующие версии, у компании огромные планы. Для начала, уже в осеннем обновлении Windows мы сможем увидеть переход многих частей операционной системы на WinUI 3.Xamarin, MAUI and WinUI 3?
MAUI (Multi-platform App UI) - кроссплатформенная библиотека графического интерфейса. Является эволюцией Xamarin.Forms. Для Windows она будет работать именно через компоненты WinUI 3. Больше информации о MAUI: devblog.microsoft, github.Uno Platform and WinUI 3?
Uno Platform - это кроссплатформенный графический пользовательский интерфейс с открытым исходным кодом, который позволяет запускать код на основе WinUI и универсальной платформы Windows на iOS, macOS, Linux, Android и WebAssembly.
Команда разработчиков Uno Platform с первых дней анонсировала свою нацеленность на WinUI 3. А спустя 12 часов после выпуска WinUI 3 Preview 4, его поддержка уже была добавлена в Uno Platform. Больше информации об Uno Platform: platform.uno, github.Будущее системных APIЧто касается системных API, Microsoft не оставляют идею их унификации. Поэтому, сейчас в активной разработке находится Project Reunion. Это универсальная модульная оболочка, которая должна предоставить быстрый доступ ко всем Win32 и UWP API.
Project Reunion будет очень тесно связан с WinUI 3. И уже сейчас находится в превью версии.
Больше информации о Project Reunion: docs.microsoft.com, github
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_.net, #_obolochki (Оболочки), #_api, #_c#, #_razrabotka_pod_windows (Разработка под Windows), #_c#, #_winui, #_win32, #_uwp, #_.net, #_windows, #_project_reunion, #_uno, #_xamarin, #_api, #_.net, #_obolochki (
Оболочки
)
, #_api, #_c#, #_razrabotka_pod_windows (
Разработка под Windows
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 14-Май 09:56
Часовой пояс: UTC + 5