Visual Studio:您使用什么方法为类似项目“模板化”管道?

时间:2010-03-31 09:45:05

标签: asp.net-mvc visual-studio code-reuse

在构建ASP.NET项目时,需要完成一定数量的样板或管道,这些项目通常在项目中是相同的。 MVC和ALT.NET尤其如此。方法。 [我正在考虑以下事项:IoC,ORM,解决方案结构(项目),会话管理,用户管理,I18n等。]

我想知道您最适合在项目中“重复使用”这个管道的方法是什么?

  • 有一个'主解决方案'你复制并以某种方式重命名?(我现在正在使用这个程度,但它相当混乱。会对人们如何做到这一点感兴趣'更好')
  • 主要依赖于共享库项目?(我认为这适合某些事情,但对于必须定制的事情限制太多)
  • 代码生成工具,例如T4?(类似于SharpArchitecture使用的方法 - 我自己没试过)
  • 其他什么?

6 个答案:

答案 0 :(得分:5)

Visual Studio支持 Custom Templates

答案 1 :(得分:3)

我绝对(大多数!)与T4 templates的修改版本一起使用SubSonic 3.我使用数据库建模我的域,然后使用T4模板生成模型以及相关的控制器和视图。它需要大约50-60%的努力并保持一致性。

然后我研究类的覆盖(部分)以及“制作应用程序”的过滤器和扩展方法。现在我已经熟悉了环境和我正在做的事情,我可以在很短的时间内建立一个基本的模型和良好的管道。更重要的是,因为我创建了一组部分类文件,所以我可以重新生成我想要的所有内容而不会丢失任何“自定义”编码。

无论如何它对我有用:)

答案 2 :(得分:2)

你可以做大胡子,T恤,敏捷的风格,并创建一个漂亮的模板,并把它放在sourcecontrol中。那么当你需要一个新项目时,你只需要签出模板吗?

答案 3 :(得分:2)

对于疯狂快速的MVC站点设置,我使用修改后的T4模板(使用T4 Editor创建)和来自Oleg Sych's blogs的大量帮助来生成页面(对于典型的添加/编辑/索引页面)使用名为MVCCrud的自动化create-update-delete的强大实现(如果LINQ-to-SQL是您首选的数据访问方法)

使用修改后的T4模板和MVCCrud,您可以创建功能完整的实体(创建/编辑/列表/删除),并在每个约4分钟内创建错误处理和直观的错误消息。

答案 4 :(得分:1)

我使用新项目向导创建一个新项目,以便分配唯一的项目GUID。然后,如果有意义的话,我会使用“添加现有项目”来复制类似项目中的项目。

我有时会使用文件差异工具将引用从一个项目复制到另一个项目,否则我只需手动添加引用。文件差异工具也可用于包含类似的源文件,但无论如何都必须复制底层文件,所以我更喜欢“添加现有项目”。

我已经使用T4生成解决方案和项目文件,但这看起来似乎是一个边缘情况,而不是通常需要的东西。在这种情况下,我可能会将T4包装在类似PowerShell的脚本中,以创建和填充目录结构的其余部分。

我总体上非常积极地使用“共享库”,但不是特别由于这种情况。

总的来说,我并没有发现自己在项目之间重复使用管道。可能更常见的是我在一个“原型”项目中劈开,然后放弃它,并按照上述方法从头开始重建项目,并且只带来“非hacky”代码。

答案 5 :(得分:1)

我正在http://erictopia.com创建一个MVC2应用程序模板。它将包含我认为应该在MVC项目中的所有基本项目。这些包括BDD规范,ORM(NHibernate和可能的Lightspeed),T4模板,自定义提供程序,ELMAH支持,CSS / Javascript minifier等。