我想知道asp.net mvc有什么好的简单IoC框架?有很好的文档,很容易起床和去.
谢谢
我正在使用DDD技术编写应用程序.这是我第一次尝试DDD项目.这也是我的第一个绿地项目,我是唯一的开发商.我充实了域模型和用户界面.现在我开始使用持久层.像往常一样,我开始进行单元测试.
[Test]
public void ShouldAddEmployerToCollection()
{
var employerRepository = new EmployerRepository();
var employer = _mockery.NewMock<Employer>();
employerRepository.Add(employer);
_mockery.VerifyAllExpectationsHaveBeenMet();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有对Add()函数写任何期望.我做到了这一点,并意识到我还没有确定一个特定的数据库供应商.事实上,我甚至不确定它是否需要数据库引擎.平面文件或xml可能同样合理.所以我想知道我的下一步应该是什么.
我应该添加另一层抽象...说一个DataStore接口还是找一个已经为我完成工作的现有库?如果可以的话,我想避免将程序绑定到特定的数据库技术.
我想知道从C#代码组织数据库的最佳方法是什么.
我曾经有过不同的方法:
现在我认为为每个需要存储的datadomain类存放一些非静态类会很好,这将会进行存储.
最好的方法是什么?有没有好的库提供良好的API来存储对象?
大家好.我使用存储库和服务模型遇到了一种奇怪的设计模式.ASP.NET MVC,WCF和一些Windows服务的应用程序组成部分.我的存储库正在使用LINQ DataContext.随着我的应用程序的发展,我发现自己在任何地方都传递了对IWhateverService服务的引用.例如,我有IAccountService,它定义了ChangePlan(帐户帐户,计划计划)等方法.
现在,似乎IAccountService是放置此方法的最佳位置,因为我们在此处为帐户提供服务.但是,ChangePlan方法在实际更改计划之前需要了解一些事情.它必须知道用户的当前使用情况,可用计划列表,用于计费的电子商务服务界面的实例等.
我认为让ChangePlan方法接受IAccountService接口中的所有必需服务.但是这些其他服务的要求是实现的问题,不应该是接口定义的一部分.
所以现在我发现自己为AccountService创建了一个巨大的构造函数,它采用了IAccountRepository,IPlanService,IUsageService,IEcommerceService和IValidationDictionary的实例.这根本感觉不对.
现在采取这种情况.显然,IAccountService包含一个通过ID检索用户帐户的简单方法:Account Get(int id)有几次我只需要调用此方法.所以,我去创建我的AccountService,它想要所有这些其他服务的实例(特别是IValidationDictionary,我不需要验证).再次,这感觉不对.我可以传递null,但这只是因为我知道实现不会将它们用于此方法.
另外,为了避免在我需要的地方实例化服务,我创建了一个名为ServiceFactory的静态类,它有静态方法,CreateAccountService,CreatePlanService等......我在应用程序周围调用这些方法.似乎没问题,但我不能动摇这种不合适的感觉.
我的断开在哪里?有人有什么建议吗?
谢谢.
安德鲁
为什么我更喜欢Unity上的StructureMap?
c# ×3
asp.net-mvc ×2
.net ×1
abstraction ×1
architecture ×1
database ×1
repository ×1
service ×1
structuremap ×1