代码之家  ›  专栏  ›  技术社区  ›  Kharlos Dominguez

一个.NET初学者应该为ORM烦恼还是等到他有更多的经验?

  •  2
  • Kharlos Dominguez  · 技术社区  · 15 年前

    我对.NET比较陌生,尤其是它的数据库方面。

    我计划在这里使用.NET和C与Visual Studio 2008一起重写一些旧的VB6应用程序。

    我研究过强类型数据集、表适配器等。 它工作得很好,但我发现强类型的数据集不能完全管理,特别是当数据库模式发生变化,并且代码感觉比面向对象的程序性更强时。 我发现它也会使代码混乱,生成的类型名也会很长…

    考虑到我在.NET方面相对缺乏经验,我不想增加我的学习曲线,因为毕竟,我有最后期限… 我看过像NHibernate这样的东西,看起来很吓人…我不确定是否有时间了解他们的XML文件等目前是如何工作的…

    简言之,我应该现在就去烦ORM,还是等我在.NET和ADO.NET方面积累了更多的经验…即使这意味着要在几个月内重新编写应用程序以使用ORM,我也会得到解决。

    我意识到这是一个主观的问题,但我相信有经验的开发人员的答案对我来说是有用的,他们在两条道路上都走了,或者不得不培训新员工。

    事先谢谢,

    4 回复  |  直到 15 年前
        1
  •  2
  •   Shivam    15 年前

    我强烈建议您研究Mindscape的光速。优秀的平台,建立在非常好的设计原则之上,一旦掌握了基础知识,就可以真正缩短开发时间。还可以对nhibernate、实体框架等进行功能比较。

        2
  •  3
  •   Anton Gogolev    15 年前

    你可以试试 BLToolkit :这是一个非常简单的ORM:

    public abstract class PersonAccessor : DataAccessor
    {
        [SqlText(@"SELECT * FROM Person WHERE FirstName = @firstName")]
        public abstract List<Person> GetPersonListByFirstName(string @firstName);
    
        [SprocName("sp_GetPersonListByLastName")]
        public abstract List<Person> GetPersonListByLastName(string @lastName);
    }
    
        3
  •  1
  •   Grant Crofton    15 年前

    听起来你有很多(我猜是相对较小的)应用程序需要重写,所以我很想马上不要使用ORM。对于您的第一个应用程序,只需尝试使用ADO自己编写数据访问代码-但请尝试确保所有内容都很好地分开,例如使用 Repository 模式。通过这种方式,如果您决定这样做,您可以很容易地用ORM将ADO DAL换成某种东西。

    一旦你自己完成了这项工作,你就会更好地了解ORM能为你做什么,以及你是否想使用它(你可能会这样做!).

    另外,这确实取决于你写的是什么类型的应用程序,但是我建议先把模型分类出来(应用程序的核心类,通常是“雇员”、“订单”等等),然后根据这些进行数据访问。通过这种方式,您可以使用EF4、NHibernate等,它可以基于.NET模型类生成数据库模式。(尽管这意味着您不能像以前那样轻松地使用Linq to SQL,因为这需要首先将数据库放置到位)。

    如果您确实想使用ORM,并且正在使用SQL Server, Linq to SQL 很容易相处。主要的缺点是不能进行模型优先开发,它只支持SQL Server,而且它不再处于活动开发状态,因此花时间学习可能不是一件好事。

        4
  •  0
  •   Shiraz Bhaiji    15 年前

    您将不得不学习一些数据访问方法,因此您也可以使用/学习ORM。

    我将使用Microsoft实体框架。

    查看WCF数据服务: http://msdn.microsoft.com/en-us/data/bb931106.aspx