asp.net-mvc-3 – 如何为MVC3生成服务和存储库层
我最近为一个客户端完成了一个MVC3项目,该项目使用了一个使用微型ORM实现的Repository模式,以及一个用于我的业务逻辑的服务层.恕我直言,该应用程序运行良好,客户很高兴.
但是每当我想添加/实现新服务和相关的DTO时,我都必须编写很多样板代码.此外,还有相当数量的代码重复,将DTO转换为View Models,然后再返回相关的PEBKAC.随着需求的发展,需要将数据库模式的更改传播到View模型. 对于不同的客户端,我继承了一个.netTiers代码生成项目,这让我感到非常悲痛,直到我修复了基本模板中的一些缺陷,使用MSBuild自动生成代码,并且还使用MSBuild,按摩生成的代码以使其构建没有以前需要的手动调整目录. .netTiers最终产生了许多有用的代码,但是有大量的重复,一堆复杂性,感觉就像用一把大锤去皮猫. 现在我正在寻找另一个MVC3项目,我想避免自己编写所有样板,但我也想避免完整的.netTiers类型代码生成.我没有用EF.我倾向于认为它对于我承担的项目规模而言是一个太大的工具,但如果它可以为我带走一些手动步骤那么这将是一个很大的节省时间. EF的优点是什么?它会为我设计服务层吗? 我正在考虑的另一个选项是LightSpeed,这需要我花一些钱(不是很多),但如果它可以为我生成服务层代码,那将是花钱. LightSpeed是否支持这种类型的代码生成? 显然,随着域模型和数据库模式的发展,需要更新服务以适应这些变化. .netTiers通过生成部分类来实现这一点.这些其他工具如何在不覆盖服务层中的任何自定义逻辑的情况下处理这些更改? 还有哪些其他选择? 更新:感谢所有的反馈,很多积极的选择.有人看过MVC Scaffolding吗? 更新#2:我将继续推行MVCScaffolding选项,为EF Code First生成代码.开箱即用它会产生一个Repository类,然后有点不幸地将它与模型结合在一起,而MVC实际上是View Model而不是Domain Model.对于服务层脚手架的MVCScaffolding项目有一个pull请求,因此将调查该选项.加上用于映射POCO的AutoMapper< - > DTO的. 解决方法
T4模板工作得很好,很容易修改.它们可用于datatier层以及任何服务层.
我们仅用于EF代码的过程: >从我们的数据库构建一个edmx 实体框架中的新工具非常棒,因为它们为您提供了多种选择: 型号第一: > edmx中的模型 代码优先: >写POCO课程 数据库优先: >构建数据库 附录(14/01/2012): Code First Migrations的测试版已经发布.我们还没有调查它,但它看起来很有趣. > Code-first Migrations – Beta Announcement (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何使用ajax get或post在带有参数的mvc中将
- asp.net – 无法访问IIS元数据库
- asp.net-mvc-4 – 在VS2012中运行代码分析时出错
- 你如何正确使用UpdatePanel? (asp.net)
- asp.net-web-api – 从数据存储实现动态OAuthBearerServerO
- asp.net-mvc – WebAPI窗体身份验证SimpleMembershipProvid
- asp.net-mvc – 根据用户角色的类型更改布局
- 您希望在初学者的ASP.NET安全手册中看到什么?
- asp.net – vs2010 – 用双引号括起String的快捷方式
- asp.net-mvc – 客户端存储的身份验证令牌在哪里?
- asp.net-mvc – ASP.NET MVC安全检查表
- ASP.NET和System.Diagnostics跟踪 – 我错过了什
- asp.net – Microsoft MVC“echo / print / outp
- asp.net-web-api – 使用Owin时无法获取ASP.NET
- 下载期间的ASP.net内存使用情况
- MVC .Net Cascade在使用EF Code First Approach时
- 将ASP.NET TextBox作为HTML5输入类型“Number”
- asp.net – 304未修改静态文件
- ASP.NET FileUpload – 如何更改“浏览…”按钮说
- ASP.NET ListView – 渲染THEAD / TBODY标签