Dav*_*rke 6 entity-framework repository scaffolding asp.net-mvc-3
我最近为一个客户端完成了一个MVC3项目,该项目使用了一个使用微型ORM实现的Repository模式,以及一个用于我的业务逻辑的服务层.恕我直言,该应用程序运行良好,客户很高兴.
但是每当我想添加/实现新服务和相关的DTO时,我都必须编写很多样板代码.此外,还有相当数量的代码重复,将DTO转换为View Models,然后再返回相关的PEBKAC.随着需求的发展,需要将数据库模式的更改传播到View模型.
对于不同的客户我继承了给我带来了很多麻烦,直到我固定在基本模板的一些缺陷.netTiers代码生成项目,使用自动化的MSBuild和,也使用的MSBuild的代码生成,按摩生成的代码来获得它建立没有以前需要的手动调整目录..netTiers最终产生了许多有用的代码,但是有大量的重复,一堆复杂性,感觉就像用一把大锤去皮猫.
现在我正在寻找另一个MVC3项目,我想避免自己编写所有样板,但我也想避免完整的.netTiers类型代码生成.我没有用EF.我倾向于认为它对于我承担的项目规模而言是一个太大的工具,但如果它可以为我带走一些手动步骤那么这将是一个很大的节省时间.EF的优点是什么?它会为我设计服务层吗?
我正在考虑的另一个选项是LightSpeed,这需要我花一些钱(不是很多),但如果它可以为我生成服务层代码,那将花费很多钱.LightSpeed是否支持这种类型的代码生成?
显然,随着域模型和数据库模式的发展,需要更新服务以适应这些变化..netTiers通过生成部分类来实现这一点.这些其他工具如何在不覆盖服务层中的任何自定义逻辑的情况下处理这些更改?
还有哪些其他选择?
更新:感谢所有的反馈,很多积极的选择.有没有人看过MVC脚手架?
更新#2:我将继续推行MVCScaffolding选项,为EF Code First生成代码.开箱即用它会产生一个Repository类,然后有点不幸地将它与模型结合在一起,而MVC实际上是View Model而不是 Domain Model.对于服务层脚手架的MVCScaffolding项目有一个pull请求,因此将调查该选项.加上AutoMapper用于映射POCO < - > DTO.
T4模板工作得很好,很容易修改.它们可用于datatier层以及任何服务层.
我们仅用于EF代码的过程:
实体框架中的新工具非常棒,因为它们为您提供了多种选择:
Code First Migrations的测试版已经发布.我们还没有调查它,但它看起来很有趣.
归档时间: |
|
查看次数: |
1699 次 |
最近记录: |