Введение
В данной части я постараюсь структурировать имеющуюся информацию о WPFH фреймворке в небольшую статью, так-как оригинальная Wiki достаточно объемна и может запутать.
Так же в этой статье мы подключим фреймворк к нашему проекту и запустим один из стандартных примеров.
В дальнейших частях серии мы рассмотрим создание простого приложения построенного на WPFH.
Что такое WPFH и кому нужен?
WPF Handler (WPFH) это фреймворк с открытым кодом, который существенно упрощает разработку приложений с использованием WPF покрывая большое количество базовых задач и автоматизируя часть процесса разработки.
Ключевые особенности
- Авто-сборка UI — фреймворк позволяет автоматизировать сборку панелей интерфейса, что существенно ускоряет разработку, а также стандартизирует интерфейс.
- Встроенная система локализации — фреймворк предоставляет решение по локализации позволяя заменять контент приложения на лету. В качестве плюса можно выделить то, что содержимое хранится в простом словаре, что позволит пользоваться услугами по переводу от людей не имеющего образования и опыта в компьютерных науках.
- Простая работа с пользовательскими плагинами — фреймворк предлагает простой способ масштабировать приложение пользовательскими плагинами, а так же имеет базовые элементы интерфейса для управления ими через приложение.
- Коллекция элементов интерфейса — фреймворк содержит в себе набор новых элементов интерфейса соответствующий современным стандартам UI.
Как начать?
Первым делом необходимо загрузить фреймворк. Для этого заходим на GitHub в раздел Releases и скачиваем последнюю доступную версию.
Распакуйте архив любую удобную для вас директорию. Фреймворк не требует установки.
Теперь остается только подключить WPFHandler.csproj в качестве ссылки для проекта. Файл находиться в директории
WPFH_FOLDER/WpfHandler/
.Где найти примеры?
Набор примеров доступен сразу же после распаковки архива.
Запустите WpfHandler.sln и откройте папку
Examples
в вашей IDE. Здесь вы увидите несколько вложенных папок с проектами. Рассмотрим содержимое каждой из них.
- Auto layout — в этой папке находятся пример в котором элементы интерфейса собираются в панель с использованием дескриптора и его атрибутов разметки.
- Controls using — тут находится ряд примеров демонстрирующих варианты работы с новыми элементами интерфейса.
- Localization — как понятно из названия в этой папке лежит пример использования системы локализации.
- Plugins — данный каталог хранит в себе 3 проекта. Один из них, «MainPluginBasedApp» является основным приложением, два оставшихся это плагины которые будут им запускаться.
Пользуясь этими проектами вы можете изучить различные варианты использования решений фреймворка и определить подходит ли он для вашего проекта или нет.
Полезные ссылки
Оригинальные обучающие материалы
Обзор новых элементов управления (англ.)
Преимущества автоматической сборки интерфейса (англ.)
Работа с UIDescriptor (англ.)
Локализация интерфейса (англ.)
Документация
Wiki — здесь вы можете найти туториалы и подробное объяснение работы каждого модуля и фичи фреймворка.
Online documentation — сгенерированная документация позволяющая найти описание того или иного элемента фреймворка.
Заключение
На этом обзорная статья заканчивается. Спасибо, что нашли время ее прочесть!
В дальнейшем это статья будет обновляться актуальной информацией, а так же ссылками на продолжении серии статей посвященных разработке приложений с использованием WPFH.
AgentFire
В чем прекол-то? Что он делает то, конерктно?
Cripos Автор
1. Закрывает часть задач которые так и так придется делать для нормального приложения. Вроде локализации, разработки анимаций, красивых эффектов. Все это сведено обычно к вызову 1 строки кода.
2. Может самостоятельно верстать панели управления из исходного кода. (Хорошей аналогией будет Unity, когда вы не прописываете кастомный редактор для компонента). Это существенно ускоряет разработку типовых форм.
3. Реализует новые элементы интерфейса.
Честно не знаю как ответить еще конкретнее. Он про позволяет сэкономить очень много времени на рутинных задачах + предоставляет весь свой функционал через максимально простой API.
Думаю для того, чтобы разрабатывать приложения с ним, можно обладать минимальным опытом.
byme
Cripos Автор
Я понял проблему статьи. Думаю будет лучше если я доработаю непосредственно ее, чем вкину все ответы в комментарии. Я в течении пары дней ее доработаю со сравнениями и более подробными объяснениями.
Спасибо, за фидбэк.