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
- 点击 扩展 -> 管理扩展(M)
- 在弹出框中输入 prism
- 安装 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() - 用来创建主窗体
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?