Главная

Friday, 26 August 2022

WinForms альтернативи.

Всім привіт.

Сьогодні поговоримо про альтернативи створення WinForms.

WPF vs ShowUI

Windows Presentation Foundation (WPF) є іншим, новішим засобом створення GUI в .NET. Ми не говоримо про інструмент точно так само, як PowerShell Studio для WPF, але ви можете не відчувати того що він вам потрібен. WPF не створює графічний інтерфейс програмно, як це робить WinForms. Натомість визначення графічного інтерфейсу  міститься у файлі XML (технічно конкретний формат XML називається XAML, для Extensible Application Markup Language). Ви можете отримати будь-яку з  безкоштовних «Express» версій Visual Studio та використовувати її вбудований інструмент для створення форм WPF, який дуже схожий на PowerShell Studio, для створення файлу XAML. Тоді просто скажемо PowerShell (ну, ви скажете .NET) завантажити XAML і щось з ним зробити. Наступний код демонструє приклад того, про що ми говоримо.


Створення XML у наведеному лістингу непросте для більшості ІТ-фахівців. А для запуску потрібно навіть більше кроків, як показано у наступному прикладі.



Але вам не потрібно возитися з XAML, якщо ви цього не хочете, і, чесно кажучи, і ми цього не радимо. Простішим способом інтеграції WPF у PowerShell є безкоштовний модуль ShowUI, доступний за адресою https://github.com/ShowUI/ShowUI. Цей модуль містить купу таких команд, як New-Label і New-ComboBox, які дозволяють запускати PowerShell-подібні команди для виведення WPF GUI. Для порівняння ми створили версію Win-Forms cкрипт у наступному прикладі.


Щоб розташувати всі елементи, потрібно ще багато спроб і помилок, але коли запустити сценарій у лістингу, ви отримаєте форму, як на малюнку. 

Це те саме те, що ви могли б побачити, якби запустили «рідний» зразок WPF з першого прикладу. Якщо ви хочете використовувати WPF, ми вважаємо, що такий інструмент, як ShowUI, необхідний, але зробіть інвестування своєї уваги на деякий час, щоб зрозуміти, як ним користуватися. 

WinForms vs WPF

Однією з переваг WPF є те, що він дещо більш самодостатній і модульний, ніж WinForms та використання XAML дозволяє відокремити ваш GUI (який визначено в XML) з коду та команд, які роблять GUI функціональним. Майте на увазі, що в останніх версіях Windows Server ви не можете покладатися на наявність графічного інтерфейсу взагалі. І коли мінімальний графічний інтерфейс сервера операційної системи режим увімкнено, підтримується лише WPF, але не WinForms. Отже, якщо вам потрібно зробити a GUI, який має працювати на сервері, WPF може бути кращим вибором. Тобто краще не кодувати GUI для роботи на серверах. Напишіть графічний інтерфейс для роботи на вашому клієнті та надсилайте команди на сервер через Remoting. Це модель Microsoft у майбутньому, і ви також мусите це прийняти. Тому навіть PowerShell Studio  вже пропонує опцію експорту вашої GUI в файл XAML або WPF.


Щасти.

Слава Україні!

No comments:

Post a Comment

А что вы думаете по этому поводу?