我们正在使用MVVM项目启动WPF,并且必须决定PRISM或MVVM Light(我对这两个框架都不熟悉).我已阅读了几篇文章但仍有几个问题.有人可以对框架中的以下几个方面有所了解吗?:
性能:出于任何原因,一个框架是否会比另一个框架表现更好?
应用程序内的通信(viewmodel到viewmodel或模块之间等):我已经读过MVVM Light有Messenging Service,它看起来也相当容易.但是PRISM似乎没有任何等价物.真的吗?PRISM如何处理交互?
单元测试:已经读过PRISM更好地支持单元测试.我们还可以在MVVM Light中编写NUNIT或VSTS测试吗?
是否可以为Visual Studio 2015中的.NET 3.5创建适用于Office 2010及更高版本的VSTO项目?
当我尝试创建它时,我没有看到任何项目模板:
如果我将.NET Framework的版本更改为4.0或更高版本,那么我可以看到Office 2010的项目模板:
我的Windows 10具有激活的.NET 3.5功能,VS 2015 Enterprise.
我很难说服FxCop 10.0来分析引用AutoMapper的程序集.
我创建了一个简单的类库,通过NuGet引用了AutoMapper,并添加了以下代码:
using System;
namespace ClassLibrary4
{
public class Class1
{
public void Foo()
{
AutoMapper.Mapper.CreateMap<Obj1, Obj2>()
.ForMember(x => x.Name, opt => opt.Ignore());
}
}
public class Obj1
{
public string Name { get; set; }
}
public class Obj2
{
public string Name { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用FxCop 10.0通过命令行分析程序集,并收到消息:
无法加载C:\ Users\inelson\Documents\Visual Studio 2013\Projects\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll.
注意:找不到一个或多个引用的程序集.使用'/ directory'或'/ reference'开关指定其他程序集引用搜索路径.
未解决的参考是System.Core版本2.0.5.0.
为了隔离问题,我删除了.ForMember方法调用,将Foo()简单地删除:
public void Foo()
{
AutoMapper.Mapper.CreateMap<Obj1, Obj2>();
}
Run Code Online (Sandbox Code Playgroud)
和FxCop 10.0现在愉快地分析组装!
使用.ForMember方法导致FxCop分析失败的原因是什么?
请注意,我遇到与.NET Framework版本4.0,4.5或4.5.1以及AutoMapper 3.0.0和3.1.0相同的行为.
.net ×1
.net-3.5 ×1
automapper ×1
fxcop ×1
mvvm ×1
mvvm-light ×1
office-2010 ×1
prism ×1
vsto ×1
wpf ×1