2010-07-28 45 views
11

那么,我一直在网上关注NerdDinner教程,并且我已经完成了对它的测试。如何避免必须编写样板代码?

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

我发现我的过程是:

  1. 创建数据库。
  2. 创建DBML。
  3. 使用数据访问方法创建| TableName | Repository.cs类。
  4. 创建partial | TableName |类来处理验证。
  5. 冲洗并重复所有表格。

当我完成时,我已经筋疲力尽,除了拖拽和复制代码并更改变量名称之外,我没有真正做过任何事情。

我在这里错过了什么。我在哪里可以改进这种模板阴霾?

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

+0

我一直在MVC中工作很长时间,我仍然这样做 – Nealv 2010-07-28 22:49:29

+0

严肃地说,这是最好的,最被接受的方式?看到90%的过程是机械的,没有一种工具可以为你做到这一点? – 2010-07-28 22:51:29

+0

不是我见过,也许是别人做的,希望他们在这里发布然后:) – Nealv 2010-07-28 22:57:53

回答

4

参见Visual Studio Templates

我还没有使用它们,但我假设如果你花时间定制它们,你将能够使Visual Studio生成很多你已经做过的工作,特别是使用T4模板语言/解释器嵌入在Visual Studio中。

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?

我已经实现了基于这些想法的东西。你可能也想看看使用服务层更多的接口等比书呆子晚餐示例显示。

与教程一样好,它不是真的适合在企业应用程序中使用,因为它仍然相当紧密。

希望这会有所帮助。

0

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

我们还将代码生成插入到我们的Nant构建过程中,提供了更新所有世俗“管道”代码的非常快速的方式,使我们能够专注于有趣的东西。

我们刚刚开始使用MVC,并发现netTiers服务层与它很好地协作 - 随着我们的MVC体验增长,时间会告诉我们。我希望这有助于!

2

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

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

-2

创建一个框架!

+0

已经有一个框架。很多工作都是围绕框架的方式来完成的,但对于一个只想完成填充任务的人来说,创建另一个框架是一个非常大的项目。 – cHao 2010-08-08 14:38:32