2011-05-22 77 views
3

我知道各种技术(但不知道)像代码生成器,ORMs等,我想知道哪些是最好的方法,在开发期间可以改变数据库模式(大变化),如添加列到表,添加表到数据库,更改列的类型等。我目前正在这个架构中的项目在每天更改我正在使用手动过程来创建BLL,BOL和DAL但我面临的问题来改变模式后的管理这些图层D B。请告诉我如何使这容易?数据库模式可以更改的最佳方法?

  1. 哪种技术我必须使用代码生成器,ORM,手动方法或任何其他?
  2. 表现也不错。
+3

在编写必须更改的代码之前,您是否可以不等到数据库模式稳定? – Oded 2011-05-22 07:59:21

回答

3

这不是关于编程,而是关于项目管理。管理层/客户必须明白,更改数据模式往往会对开发时间产生非常大的影响。你使用哪种技术是绝对不重要的,因为即使有很好的代码生成工具,你也可以每天最多4小时修复由于缺少属性,新属性,不同实体等而导致的破坏代码。确保你显示了时间量花在这项活动上。定期展示。一旦管理层从20MD看到你在改变你的数据访问层(=没有为10MD增加商业价值)上花费10MD,他们就会做那些事情。

从视图中,您可以使用任何你生成类的技术点:

  • LINQ到SQL
  • EF与EDMX
  • EF与代码优先和EF电动工具CTP1到创建映射你

或者你可以用NHibernate的更复杂的方式在那里你会尝试手动重新映射新模式,以现有的实体。

编辑:

根据你也可以检查ASP.NET动态数据或MVC脚手架的应用程序的类型和复杂性。

2

这听起来像是一个非常适合代码生成的问题。

有些ORM会在幕后为您做代码生成,但通常只有DAL。

类似mygeneration可能更适合生成所有图层。

性能将完全取决于您构建代码模板的方式。

但是,这不会有助于您需要重做一遍又一遍的事实。

0

ADO.NET Entity Framework是一个很好的。

+1

它不会生成业务逻辑层或业务对象层,只是数据访问层。 – Oded 2011-05-22 08:05:45

1

我同意在这里代码生成是一种合适的技术。我的方法是构建数据库模式的模型。然后,您将使用代码生成框架来构建必要的代码。我选择的工具是AtomWeaver,但您也可以尝试EMF甚至Xtext

在AtomWeaver IDE中,使用ABSE建模方法构建数据库模式的模型。这种方法可以让你通过块建立一个模型(认为“表”,“列”,“键”等)。对于每个“块”,您定义为BLL,BOL或DAL生成的内容。每次进行更改时,都可以再次进行再生。

数据库没有预定义的代码生成器,这意味着您必须为生成模板提供所有必需的代码,但至少您会获得100%的“代码”。由于您已经手动执行了该操作,因此可以使用该代码“生成”生成器模板。

建筑物代码生成器需要一些时间。它似乎并没有得到回报,但一旦你开始改变并能够快速获得新代码,你就会改变我的想法。

相关问题