生产工具
现在Prism已经在Viusl Studio和Visual Studio for Mac上进行了集成,实现了在创建WPF、UWP和使用Xamarin.Forms原生IOS和安卓应用时的一个高效的开发者工作流。从而通过代码片段、项模板和项目模板在你选择的IDE中快速启动你的Prism应用。
可用工具:
- Prism Template Pack
- Prism Template Studio
- Prism Extensibility Pack
Prism Template Pack
Prism Template Pack中包含了一系列用于创建使用Prism开发WPF和Xamarin.Forms应用的代码片段、项模块和项目模板。
代码片段
- propp - 属性,有一个幕后字段,基于BindableBase
private string _fieldName;
public string PropertyName
{
get { return _fieldName; }
set { SetProperty(ref _fieldName, value); }
}
- cmd - 创建一个DelegateCommand类型的属性,拥有Execute方法
private DelegateCommand _fieldName;
public DelegateCommand CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand(ExecuteCommandName));
void ExecuteCommandName()
{
}
- cmdfull - 创建一个DelegateCommand类型的属性,拥有Execute和CanExecute方法
private DelegateCommand _fieldName;
public DelegateCommand CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand(ExecuteCommandName, CanExecuteCommandName));
void ExecuteCommandName()
{
}
bool CanExecuteCommandName()
{
return true;
}
- cmdg - 创建一个泛型的DelegateCommand
类型的属性
private DelegateCommand<string> _fieldName;
public DelegateCommand<string> CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand<string>(ExecuteCommandName));
void ExecuteCommandName(string parameter)
{
}
- cmdgfull - 创建一个泛型的DelegateCommand
类型的属性,拥有Execute和CanExecute的方法
private DelegateCommand<string> _fieldName;
public DelegateCommand<string> CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand<string>(ExecuteCommandName, CanExecuteCommandName));
void ExecuteCommandName(string parameter)
{
}
bool CanExecuteCommandName(string parameter)
{
return true;
}
项模板
跨平台
- Prism ViewModel - 派生于BindableBase以及拥有一个默认的构造函数的ViewModel类
WPF
- Prism UserControl - 带有ViewModel的UserControl类
- Prism Window - 带有ViewModel的Window类
Xamarin.Forms
- Prism ContentPage - 带有ViewModel和自动注册的ContentPage
- Prism NavigationPage - 带有ViewModel和自动注册的NavigationPage
- Prism MasterDetailPage - 带有ViewModel和自动注册的MasterDetailPage
- Prism TabbedPage - 带有ViewModel和自动注册的TabbedPage
- Prism CarouselPage - 带有ViewModel和自动注册的CarouselPage
项目模板
WPF
- Prism Blank App - 这是一个创建了一个基础的WPF Shell应用程序模板。它会有一个基础的引导程序,负责初始化应用程序并显示Shell。它会有一个MainWindow和MainWindowViewModel,分别位于Views和ViewModels文件夹中。
- Prism Module - 此项目模板将向您的解决方案中添加一个充当Prism模块的新项目。它会定义一个实现IModule的类,其中有两个空文件夹用于你的Views和ViewModels。
使用新的WPF项目向导来选择你的容器,你将不再担心如何引用到正确的Nuget包。
Xamarin.Forms
- Prism Blank App - 此项目模板会创建一个.NET Standard Xamarin.Forms应用并带有4个项目,分别为用于共享代码的.NET Standard项目、一个IOS应用程序、一个安卓应用程序和UWP应用程序。
- Prism Module - 此项目模板将向您的解决方案中添加一个充当Prism模块的新项目。它会定义一个实现IModule的类,其中有两个空文件夹用于你的Views和ViewModels。它会有一个名为ViewA的默认视图,以及一个在IModule类中容器注册的名为ViewAViewModel的类。
厌烦了创建所有可用的Xamarin.Forms平台项目吗?现在您可以使用新的Xamarin.Forms项目向导只选择您关心的项目。
在Visual Studio上安装
Prism模板包可以在Visual Studio Gallery上找到。要在Visual Studio 2019中安装,只需要转到Visual Studio -> Extensions -> ManageExtensions -> Online -> Visual Studio Marketplace
,然后在联机库中搜“Prism Template Pack”:
Prism Template Studio
Prism Template Studio包含一系列的代码段、项目模板和项目模板,用于在Visual Studio for Mac中的采用了Prism库的Xamarin应用程序中使用。
[!警告] 目前Prism Template Studio for Visual Studio Mac在Visual Studio Mac 8.X上还不稳定,目前还在努力更新这一版本。当前已经在Windows版本的Visual Studio上提供了完整的功能,然而它只有在GitHub上赞助Dan的用户可以使用。
Snippets
- propp - 属性,有一个幕后字段,基于BindableBase
private string _fieldName;
public string PropertyName
{
get { return _fieldName; }
set { SetProperty(ref _fieldName, value); }
}
- cmd - 创建一个DelegateCommand类型的属性,拥有Execute方法
private DelegateCommand _fieldName;
public DelegateCommand CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand(ExecuteCommandName));
void ExecuteCommandName()
{
}
- cmdfull - 创建一个DelegateCommand类型的属性,拥有Execute和CanExecute方法
private DelegateCommand _fieldName;
public DelegateCommand CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand(ExecuteCommandName, CanExecuteCommandName));
void ExecuteCommandName()
{
}
bool CanExecuteCommandName()
{
return true;
}
- cmdg - 创建一个泛型的DelegateCommand
类型的属性
private DelegateCommand<string> _fieldName;
public DelegateCommand<string> CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand<string>(ExecuteCommandName));
void ExecuteCommandName(string parameter)
{
}
- cmdgfull - 创建一个泛型的DelegateCommand
类型的属性,拥有Execute和CanExecute的方法
private DelegateCommand<string> _fieldName;
public DelegateCommand<string> CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand<string>(ExecuteCommandName, CanExecuteCommandName));
void ExecuteCommandName(string parameter)
{
}
bool CanExecuteCommandName(string parameter)
{
return true;
}
项模板
TODO
项目模板
Blank Prism Application - 此项目模板会创建一个.NET Standard Xamarin.Forms应用并带有3个项目,分别为用于共享代码的.NET Standard项目、一个IOS应用程序和一个安卓应用程序。
QuickStart Blank Prism Application - 此模板允许您为IOS和Android创建Xamarin.Forms应用程序,与Visual Studio for Windows template非常相似,但添加了PropertyChanged.Fody、启动图标资源、IDE配置和UI测试选项。
QuickStart Prism Application - 此模板为创建Prism应用程序提供了一个可定制的模板,其中安装了很多通用的工具,例如类似Fody的MVVM帮助类、本地化、条形码扫描器和数据提供商的后端(Azure、Realm等)
[!提示] 此模板需要为AppCenter和Azure Devops (VSTS)设置CI/CD。首先,进入App Center和Azure DevOps来设置你的应用程序。然后通过
Help -> AppCenter Configurations
在Visual Studio for Mac中创建与应用程序的连接。 快速入门教程可以在这里找到。
- Module - 此项目模板将向您的解决方案中添加一个充当Prism模块的新项目。它会定义一个实现IModule的类,其中有两个空文件夹用于你的Views和ViewModels。
- Test - 包含Appium和Xamarin UI测试的模板,以及MS test、NUnit和Xunit中的单元测试。
在Visual Studio for Mac安装
Prism Template Studio和开发者工具已可以从Visual Studio for Mac扩展库中获得。Prism也让用户很容易从同一扩展中获得Prism Template Studio和开发者工具,进入Visual Studio -> Extensions...
,然后在Gallery选项卡中搜索“Prism”既可。