我真的需要ORM吗?

alc*_*cal 8 asp.net-mvc orm ado.net entity-framework

我们即将开始在中型ASP.Net MVC 2网站上开发.对于典型页面,我们抓取数据并将其放在网页上,即在将数据发送到UI之前没有太多的数据预处理.

我们现在决定是否使用ORM,如果是,是哪一个.我们一直在关注EF2 AKA EF4(VS 2010中的ASP.Net实体框架).

但是,我认为在这种情况下一个简单的解决方案可能只是使用数据表.原因是,一旦我们获取数据,我们不打算移动数据或处理它,所以我不确定将强类型对象作为DTO有多大价值.此外,这种方式我们完全避免映射,因此我认为简化代码并允许更快的开发.

我应该提到预算是这个项目的一个问题,以及执行的速度.我们在任何可能的地方都在努力实现简化,既可以缩小预算,又可以缩短计划,提高性能.

我们尚未完全决定这一点,但目前倾向于没有ORM.没有ORM方法我们会好吗,还是值得的ORM?

Joe*_*zer 5

ORM工具不是强制性的!

Jon的建议是明智的,但我认为使用DataTables并不理想.

如果您使用的是ORM工具,则对象模型比完整的OO域模型简单得多.此外,例如,Linq2Sql和Subsonic可以直接使用.在数据库更改时允许非常快速的代码更改.

你说你不会移动数据或处理它很多,但是在ORM对象而不是DataTables中,任何数量的处理都会容易得多.同样,如果应用程序发生变化并需要更多处理,DataTable解决方案将变得脆弱.


Jon*_*jap 4

如果你不打算练习全面的面向对象编程(我的意思是你应该对 OOP 有非常深入的了解,而不仅仅是脱口而出原则和设计模式名称的能力),那么不,不值得去对于 ORM。

仅当您的组织完全投资于面向对象的应用程序设计,并且因此存在对象到关系模型映射的问题时,ORM 才有用。如果您没有完全融入 OO,ORM 将成为某种令人讨厌的障碍,您的组织会觉得不需要。

如果您的团队/组织的编程风格始终倾向于将业务逻辑保留在数据库中(例如,存储过程)或在编写对象和方法时坚持使用或多或少的功能/过程/静态方法,那么就放弃 ORM 并坚持使用 ADO 。网。