【问题标题】:Help choose a code generation tools for ASP.NET帮助选择适用于 ASP.NET 的代码生成工具
【发布时间】:2011-02-21 16:09:50
【问题描述】:
我是代码生成工具的新手,我想知道像 LLBGen Pro 这样的工具与实体框架相比如何?
最重要的是,我的嘘声是真的在研究一个名为 CodeOnTime http://codeontime.com/default.aspx 的工具,因为他喜欢他们良好的 UI 支持。
我在这里问是因为我真的想要一个公正的意见。
我不确定 LLBGen 是否也可以生成 UI。到目前为止,房子里的所有开发都是手动编码每一层的经典方式。但是我们需要一个快速的原型制作工具。
任何帮助我明智选择的建议将不胜感激
提前致谢。
【问题讨论】:
标签:
asp.net
orm
code-generation
devforce
【解决方案1】:
你看过CodeSmith Generator吗?它是一个基于模板的生成工具,与 Visual Studio 集成,因此根据定义,所有模板都是开源的,并且它具有高级功能,例如生成时生成,可让您的项目始终与您的数据源保持同步。
此外,CodeSmith 团队即将开始开发一套官方的 EF 模板,但目前他们提供了几种不同的 ORM 选项,包括 LINQ to SQL、NHibernate、.netTiers、CLSA 等。
【解决方案2】:
问题是有代码生成器和对象关系映射器 (ORM) 以及执行对象关系映射的代码生成器。
像 NHibernate 这样的东西是纯 (ORM) 并且不会生成任何代码,它只是为您提供了一个对象持久层。
Llblgen 是一个代码生成器,它生成执行 ORM 功能的代码,但您实际上可以看到代码并可以用自定义行为覆盖它。 Llblgen 不会为您生成您的 UI,它也不是专门为您设计的。它主要关注数据访问。
然后你有像 CodeSmith 这样的工具或 Visual Studio 附带的内置 T4 生成器,你可以使用它们来创建模板,然后它们会生成你想要的任何东西,只要你编写自己的模板。我曾为那些投入数千美元编写自己的模板的公司工作过。
最后还有像 CodeOnTime 或 IronSpeed 这样的完整工具可以为您生成完整的应用程序。这在理论上听起来不错,并且非常适合小型 CRUD 类型的应用程序,但是您使用此类工具会失去很多灵活性,因为它们通常具有您需要解决的约定,并且一旦您开始进行大量定制,往往会得到以你的方式。
你应该问自己:
- 我是否只需要一些东西来访问我的数据?如果是这样,您可以使用 ORM
- 我是否需要生成高度自定义的 UI?如果是这样,您可能最好避免使用 CodeOnTime 和 IronSpeed 等工具
【解决方案3】:
我使用过 LLBLGen 和实体框架。根据我的经验,它们的能力大致相同,尤其是现在 Entity Framework 4 已经发布。 NHibernate 也属于这个领域,如果您想比较 .NET 的顶级 ORM 工具,应该考虑一下。
我建议下载 LLBLGenPro 演示来评估它。根据Frans Bouma's blog 的说法,LLBLGenPro 提供了 VS.NET 2010 内置的开箱即用实体框架工具中不存在的增强功能。
像 EF 和 LLBLGen 这样的 ORM 工具不会生成 UI。为此,您将需要 IronSpeed(不推荐,我不喜欢生成的代码)或 IdeaBlade DevForce 产品之类的东西,我没有使用过。