如何避免编写样板代码?

时间:2010-07-28 22:45:33

标签: asp.net-mvc-2

好吧,我一直在网上关注NerdDinner教程,我已经把它完成了。

现在我已经使用几乎相同的架构实现了我自己的项目。

我注意到我的流程是:

  1. 创建数据库。
  2. 创建DBML。
  3. 使用数据访问方法创建| TableName | Repository.cs类。
  4. 创建部分| TableName |用于处理验证的类。
  5. 冲洗并重复所有桌子。
  6. 当我完成时,我已经筋疲力尽,除了拖动和复制代码以及更改变量名称之外,我还没有做任何事情。

    我在这里缺少什么。我在哪里可以改善这种样板雾度?

    编辑:没有创建我自己的T4模板,有没有一个工具可以帮助我?

6 个答案:

答案 0 :(得分:4)

请参阅Visual Studio Templates

我没有使用过它们,但我认为如果你花时间自定义它们,你将能够使用嵌入的T4模板语言/解释器使Visual Studio生成很多你已经做过的事情。在Visual Studio中。

答案 1 :(得分:2)

我没有太多使用它,但也许你可以创建一个codemith模板来处理这个问题。 http://www.codesmithtools.com/

我已经看到它在Nettiers和其他一些场景中效果很好。

答案 2 :(得分:1)

看看这个想法。它使用通用存储库和工作单元模式。

http://elegantcode.com/2009/12/15/entity-framework-ef4-generic-repository-and-unit-of-work-prototype/

也在这里。

Advantage of creating a generic repository vs. specific repository for each object?

我已经基于这些想法实现了一些东西。您可能还想查看使用服务层更多接口等,而不是书呆子晚餐示例显示。

与教程一样好,IMO并不适合在企业应用程序中使用,因为它仍然非常紧密耦合。

希望这有帮助。

答案 3 :(得分:0)

我使用自己的工具:http://github.com/Necroskillz/NecroNetToolkit

它基本上绕过了你提到的所有步骤(除了验证,因为我在我的视图模型上进行了验证)。

答案 4 :(得分:0)

虽然它没有直接关注MVC,但我很高兴使用NetTiers http://nettiers.com作为这种基础。我们从Db表和索引开始,然后生成存储过程及其相关数据和服务层代码。之后,我们添加自己的自定义存储过程,创建一个丰富(易于理解)的基础。通过这种机制很容易适应未来的变化。

我们还将代码生成限制在我们的Nant构建过程中,提供了一种非常快速的方式来更新所有平凡的“管道”代码,使我们能够专注于有趣的东西。

我们刚刚开始使用MVC并且已经发现netTiers服务层可以很好地使用它 - 时间会告诉我们MVC体验的增长。我希望有所帮助!

答案 5 :(得分:-2)

创建一个框架!