在Visual Studio 2013,我们推出了添加新的项目对话框。 此对话框取代了是曾在2012年这个的对话框作品,所有ASP.NET项目(MVC,Web窗体和Web API)。 这就是我们如何提供“一个ASP.NET”愿景的一个例子。 我们还发布了适用于Visual Studio 2012年同样的支持。
其中,我们曾与添加视图的对话框增强了自定义生成文件的能力。 要做到这一点的方法是相当简单的。 如果你想调整对话框的结果,你不得不相应T4文件(复制在T4更多信息 )到正确的位置在您的项目,对其进行修改以满足您的需求。 我们遵循同样的模式。 我们已经通过使用简化了使用流程。
在这篇文章中我将首先描述如何自定义新Scaffoldded项目对话框生成的内容,以及解释如何工作的。 为了简化,我们将使用使用端至端流动SideWaffle 。 我有关于你的情况下,希望避免在安装使用的一些步骤,在底部SideWaffle 。 试试下面的步骤开始。
如何自定义生成的输出
要为特定项目自定义生成的内容请按照下列步骤。
1. 下载并安装SideWaffle如果您还没有
2. 右键单击您的Web项目,并选择添加新项。 选择下图中所示的模板,然后单击确定。
a.
3. 自定义您的项目在CodeTemplates文件夹中的文件.t4
当你调用ASP.NET脚手架T4文件项模板将放弃所有你需要为你的项目名为CodeTemplates顶层文件夹中的文件.t4。 根据您的项目语言(C#/ VB)正确的文件添加到项目中。 此文件夹下的每个文件夹都代表一个单独的棚架,我们发货。 在下面的图片,你可以看到这些文件夹的名称。
可以通过该文件夹的名称的文件夹连接到棚架。 该名称是相当直接的,例如MvcControllerEmpty文件夹对应于MVC 5控制器-空棚架。 在每个文件夹,你会发现,具体的施工人员将在脚手架过程中使用的文件。 由于大多数现有的脚手架生成1个文件,你会发现通常只有1 .t4目录中的文件。 对于架子工能产生超过1个文件,你会发现更多的文件。
让我们调整的空MVC控制器支架。 让我们来看看什么是下MvcControllerEmpty文件夹。 该文件夹中有一个单一的.t4文件,Controller.cs.t4( 或Controller.vb.t4如果VB)。 下面是该文件的当前内容。
<#@模板语言=“C#”HostSpecific =“真”#>
<#@输出扩展=“CS”#>
<#@参数类型=“System.String”NAME =“ControllerName”#>
<#@参数类型=“System.String”NAME =“ControllerRootName”#>
<#@参数类型=“System.String”NAME =“命名空间”#>
<#@参数类型=“System.String”NAME =“AREANAME”#>
使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.Mvc;
命名空间<#=#命名空间>
{
公共类<#=#ControllerName>:控制器
{
//
// GET:<#=(!String.IsNullOrEmpty(AREANAME))? (“/”+ AREANAME):的String.Empty#> / <#= ControllerRootName#> /
公众的ActionResult指数()
{
返回查看();
}
}
}
比方说,你愿意把你的using语句命名空间内,我们将修改这个文件有以下内容代替。
<#@模板语言=“C#”HostSpecific =“真”#>
<#@输出扩展=“CS”#>
<#@参数类型=“System.String”NAME =“ControllerName”#>
<#@参数类型=“System.String”NAME =“ControllerRootName”#>
<#@参数类型=“System.String”NAME =“命名空间”#>
<#@参数类型=“System.String”NAME =“AREANAME”#>
命名空间<#=#命名空间>
{
使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.Mvc;
公共类<#=#ControllerName>:控制器
{
//
// GET:<#=(!String.IsNullOrEmpty(AREANAME))? (“/”+ AREANAME):的String.Empty#> / <#= ControllerRootName#> /
公众的ActionResult指数()
{
返回查看();
}
}
}
现在,当我创建一个新的空MVC控制器生成的输出如下。
命名空间WebApplication2.Controllers
{
使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.Mvc;
公共类Default3Controller:控制器
{
//
// GET:/ Default3 /
公众的ActionResult指数()
{
返回查看();
}
}
}
这一切就是这么简单。 您可以检查这些文件,然后当你的团队成员获得最新的他们将有相同的行为。
如何获得SideWaffle
如果你想做到这一点无需安装SideWaffle,它还是很容易的。 您可以从本地计算机中的文件直接复制到您的项目。 你会发现所有你需要复制位于C文件夹:\ Program Files文件(x86)的\微软的Visual Studio 12.0 \ Common7 \ IDE \扩展\ MICROSOFT \网络\的mvc \脚手架\模板 。 您可以在文件夹中的内容复制到顶层文件夹命名为CodeTemplates到你的项目,如上图所示。 仅供参考,如果你这样做C#和VB文件将被添加到您的项目。 你可以简单地摆脱那些不符合您的项目使用的语言的文件。
编码生成器
与CodeGenerator结束脚手架是不可扩展中相同的方式,其他的模板。
自定义视图
您可以通过创建在MvcView文件夹的新.t4文件创建自己的视图模板。 例如在MvcView文件夹中我复制了Create.cs.t4文件,并重新命名它Sayed.cs.t4文件和定制的内容。 之后,调用时添加视图所产生的添加视图对话框包含我的自定义视图模板。 你可以看到这下面的图片。
此示例是非常基本的,但我敢肯定,你能想象更为复杂的调整您的特定需求。 请让我们知道你想在下面的评论这些功能是什么。