最近我看到this文件指出了Caliburn有多棒(不是真的将它与微框架进行比较,这就足够了)。 我和Caliburn工作了一年多,并且不知道很多事情。
所以也许有人可以解释以下内容(其中一些我可以理解,但没有关于与校准的关系):
我正在使用V1.1,所以如果2.0版中有新内容,只要说它属于新版本,我将来可能会学到它。
答案 0 :(得分:7)
验证抽象旨在在ViewModels中插入验证基础架构
Caliburn的DefaultValidator
使用System.ComponentModel.DataAnnotations,但也可以使用Fluent Validation的适配器。
虽然验证可以直接从应用程序代码中使用,但框架主要在AOP验证行为中使用它,它为模型提供了自动IDataErrorInfo
实现。
如果您的模型已经实现IDataErrorInfo
,Caliburn可以利用纯WPF绑定挂钩验证(作为传统绑定过程的一部分)。
然而,手动实现IDataErrorInfo
很无聊并且可能导致难以编写的代码,因此引入了AOP [ValidateAttribute]
。
要启用它,您必须配置容器以使用可用的代理工厂(基于Castle.DynamicProxy):
myContainerAdapter
.WithProxyFactory<Caliburn.DynamicProxy.DynamicProxyFactory>()
这指示容器适配器检查从容器中提取的ViewModel(和其他组件)上应用的behavior属性,并创建实现指定行为的子类。
[Validate]
行为实现只是将'IDataErrorInfo'调用委托给实际的IValidator
服务。
Caliburn本身使用模块框架来管理自己模块的配置和初始化。它还可以用于创建独立的应用程序模块:Caliburn将负责发现它们(如果它们的程序集在IAssemblySource中注册)驱动器的初始化;
IResult
(以及用于创建它们的流畅样式的静态方法)和一些预构建的ViewModel(菜单和问题/消息对话框),以完成常见的应用程序任务。