01_Prism介绍

Prism是一个框架,用于在WPF、Xamarin Forms 和 UNO/Win UI 应用程序中构建松耦合、可维护和可测试的XAML应用程序。
Prism提供了一组设计模式的实现,这些设计模式有助于编写良好且可维护的XAML应用程序,包括:

  • MVVM
  • dependecy injection
  • commands
  • EventAggregator

Prism能干嘛

通常客户端开发中会遇到很多的挑战:

  • 需求变化
  • 新的商业机会
  • 新技术

因此构建一个灵活的、易修改、易扩展的应用程序至关重要。这需要一个架构,允许应用程序的各个部分是独立开发和测试,可以修改或更新后,不影响应用程序的其余部分,相当于是隔离的单独部分。

Prism适合用来创建这种复合程序。比如多个后端系统创建多个终端软件:

Prism也适合让不同团队维护的独立组件在UI集成显示,下图中每个高亮框中的UI都是一个单独的组件

一个典型的Prism程序结构

官方地址

github : https://github.com/PrismLibrary/Prism

文档地址 : https://prismlibrary.com/docs/index.html

创建一个Prism应用程序

安装 VS 扩展包 - Prism Template Pack
  1. 点击 扩展 -> 管理扩展(M)
  2. 在弹出框中输入 prism
  3. 安装 Prism Template Pack
创建新项目

<!--App.xaml-->
<prism:PrismApplication x:Class="HelloProgram.Shell.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:HelloProgram.Shell"
             xmlns:prism="http://prismlibrary.com/" >
    <Application.Resources>
         
    </Application.Resources>
</prism:PrismApplication>
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App
    {
        // 创建主窗体
        protected override Window CreateShell()
        {
            return Container.Resolve<MainWindow>();
        }
        // 向容器中注册对象
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.RegisterSingleton<IMessageService, MessageService>();
        }
        // ModuleCatalog
        protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
        {
            moduleCatalog.AddModule<ModuleNameModule>();
        }
    }

PrismApplicationBase 抽象类中有几个重要的属性和方法:

  • Container - Unity容器对象,可以用来创建对象
  • RegisterTypes() - 用来在容器中注册对象
  • CreateShell() - 用来创建主窗体
我的公众号 HelloPragram

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值