Asp.net mvc 3 如何为MVC3生成服务和存储库层
我最近完成了一个客户机MVC3项目,使用了一个使用micro ORM实现的存储库模式,并为我的业务逻辑提供了一个服务层。IMHO应用程序运行良好,客户满意 但是每当我想添加/实现一个新的服务和相关的DTO时,我必须编写大量的样板代码。此外,还有相当数量的代码重复,将DTO转换为查看模型,然后再转换回相关的PEBKAC。随着需求的发展,需要将数据库模式的更改直接传播到视图模型 对于另一个客户机,我继承了一个.netTiers代码生成项目,该项目给我带来了很多麻烦,直到我修复了基础模板中的一些缺陷,使用MSBuild自动生成代码,并且还使用MSBuild对生成的代码进行了修改,以使其能够在不需要以前手动调整的情况下生成。netTiers最终生成了许多有用的代码,但重复量巨大,复杂度很高,感觉就像是在用大锤剥猫皮 现在我正在看另一个MVC3项目,我想避免自己编写所有的样板文件,但我也想避免生成完整的.netTiers类型代码。我没有用过EF。我倾向于认为它对于我承担的项目规模来说太大了,但如果它能为我省去一些手工步骤,那将是一个巨大的时间节省。EF的优点是什么?它会为我搭建服务层吗 我正在考虑的另一个选择是,这将需要我花费一些美元(不是很多),但如果它能为我生成服务层代码,那将是非常值得的。LightSpeed支持这种类型的代码生成吗 显然,随着域模型和数据库模式的发展,服务需要更新以适应这些变化。netTiers通过生成分部类来实现这一点。这些其他工具如何处理这些更改而不覆盖服务层中的任何自定义逻辑 还有什么其他选择 更新:感谢所有的反馈,有很多积极的选择。有人看过吗Asp.net mvc 3 如何为MVC3生成服务和存储库层,asp.net-mvc-3,entity-framework,repository,scaffolding,Asp.net Mvc 3,Entity Framework,Repository,Scaffolding,我最近完成了一个客户机MVC3项目,使用了一个使用micro ORM实现的存储库模式,并为我的业务逻辑提供了一个服务层。IMHO应用程序运行良好,客户满意 但是每当我想添加/实现一个新的服务和相关的DTO时,我必须编写大量的样板代码。此外,还有相当数量的代码重复,将DTO转换为查看模型,然后再转换回相关的PEBKAC。随着需求的发展,需要将数据库模式的更改直接传播到视图模型 对于另一个客户机,我继承了一个.netTiers代码生成项目,该项目给我带来了很多麻烦,直到我修复了基础模板中的一些缺陷,
更新#2:我将继续使用mvcscapfolding选项,它首先为EF代码生成代码。开箱即用,它生成一个Repository类,然后不幸地将其与模型绑定在一起,在MVC中,该模型实际上是视图模型,而不是域模型。MVCScaffolding项目中有一个服务层脚手架的拉取请求,因此我们将研究该选项。再加上用于映射POCOs DTO的AutoMapper。T4模板运行良好,易于修改。它们可以用于数据层以及任何服务层 我们仅用于EF代码的流程: