5 проектов для изучения PRISM MVVM C#

C#

Хотел сохранить несколько интересных шаблонов проектов на Prism MVVM. В этой коллекции есть проекты как из Японии и америки.

Китайское демонстрационное приложение(модуль пациенты и лекарства)

5 проектов для изучения PRISM MVVM C#

Это решение демонстрирует, как WPF реализует шаблон MVVM с использованием Prism8.0 в .NET 5 CORE, в которой элемент управления пользовательского интерфейса ссылается на библиотеку элементов управления MahApps

У автора этого примера есть свой блог ljjyy.com

Проект создан с помощью библиотек:

  1. Prism.Wpf
  2. MahApps.Metro
  3. Unity.Interception

На демонстрации видно, что с помощью этого примера можно создать:

  1. Аутентификация пользователей в системе
  2. Регистрация новых пользователей
  3. Автоматическая и ручная загрузка модулей
  4. Взаимодействие между разными модулями
  5. Изменение данных
  6. Поиск по справочнику
Проект на GitHub

Японский менеджер книг (Prism + MaterialDesign +ReactiveProperty + EntityFramework)

 

Приложение позволяет :

Создавать, редактировать и удалять авторов книг;

Искать авторов по ключевому слову и по дате рождения;

Создавать, редактировать и удалять издателей книг;

Искать издателя по ключевому слову и по типу организации;

# Подготовка перед использованием
1. Создайте каталог ‘BookManager‘ в ‘%AppData%’
2. В консоли диспетчера пакетов укажите ‘CommonModule‘ и выполните команду ‘Update-Database‘ (создание базы данных).

Проект на GitHub
— MVVM
— Navigation Views
— Sending Parameters between ViewModels
— using TabControl and MVVM
— ComboBox and MVVM
— ListBox and MVVM
— Event To Command
— SelectionChanged
— Commands
— EventAggregator
— IDialogService
— IRegionMemberLifetime
— Modules (Code, Directory, Manual)
— Dynamic Module Loading (like Plugin)
— SplashScreen
 
Проект на GitHub
 

TodoList 

Простое настольное приложение со списком дел, использующее WPF с Prism для быстрой и простой реализации MVVM.

5 проектов для изучения PRISM MVVM C#

Dynamic Modules

Dynamic Modules — это образец прототипа для модульного приложения WPF, основанного на библиотеке Prism и современном интерфейсе для WPF (MUI) Toolkit. Это доказательство концепции создания современных приложений WPF с интерфейсом в стиле metro в архитектуре плагинов.

 

5 проектов для изучения PRISM MVVM C#

Некоторое время назад мой коллега рассказал мне о проблеме, которую он должен был решить. Заказчик попросил его разработать настольное приложение, которое представляет другой набор функций в соответствии с тем, в каком из офисов предприятия используется программное обеспечение. С одной стороны, я вспомнил, как это сделать, из прошлого проекта, в котором я участвовал. С другой стороны, существует проект с открытым исходным кодом для создания приложений WPF с современным внешним видом, за которым я слежу уже пару лет, потому что считаю его действительно замечательным.

Я подумал, есть ли способ решить проблему, используя Prism и библиотеку MUI с открытым исходным кодом для создания архитектуры плагинов, и придумал прототип решения, которое я представляю здесь.

Центральными идеями для предлагаемой архитектуры плагинов являются:

  • Поместите в каталог нужные модули проекта (или поместите их все и запустите фильтр во время загрузки).
  • Динамически загружайте модули проекта из папки modules.
  • Каждый модуль предоставляет точку входа для опции в главном меню.
  • Динамическое построение главного меню из загруженных модулей.
  • Первая опция в главном меню является фиксированной и общей для каждого пользователя.
  • Основной модуль с общими службами, репозиториями, DTO, определениями моделей данных и т. Д. Загружается статически. На него может ссылаться любой проект решения.

Динамические модули копируются в каталог как часть этапа после сборки. Эти модули не упоминаются в проекте запуска и обнаруживаются путем изучения сборок в каталоге. Проекты модулей имеют следующий этап после сборки, чтобы скопировать себя в этот каталог:

xcopy «$(TargetDir)$(TargetFileName)» «$(TargetDir)modules» /y

Обратите внимание, что решение встроено в папке «..\bin»

ВНИМАНИЕ! Не забывайте создавать решение (F6) перед каждым запуском, чтобы модули копировались в папку modules.

Дополнительную информацию можно найти на:

 

Добавить комментарий