速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

在 Visual Studio 2013.2 中创建你自己的脚手架

  • 2014-04-14
  • 本文字数:822 字

    阅读完需:约 3 分钟

ASP.NET MVC 的一个重要组成是一组名为脚手架的代码生成器。受Ruby on Rails 的启发,这些代码生成器可以被用来基于一个模型类快速创建控制器和视图。虽然不使用它们也可以完成开发工作,但这常常需要编写大量的样板文件,如果写得有错误,即使能通过编译,在运行期也会出错。

ASP.NET Scaffolding 被认为是 Visual Studio 2013 的新特性,而目前 ASP.NET MVC 已经有了支持数个版本的类似工具。在 VS 2013 Update 2 中的新功能使你可以创建自己的脚手架,这些脚手架可以嵌入到整个框架中。你可以从 Basic Scaffolder 项目类型开始这个过程。

设置头信息(名称、版本等等)之后,你需要决定是不是显示一个自定义的 UI。这个 UI 被 ShowUIAndValidate 的抽象方法调用,可以专门为用户提供附加选择。如果不需要,简单地覆盖这些方法直接返回 true 就可以了。

Joost de Nijs 继续介绍说,

现在,脚手架工已经有了做脚手架所必需的用户输入(以及你已经持久化的数据),是修改项目的时候了。在 Scaffolding 框架中内嵌了几类 action,它们能帮助你构建自己的脚手架,这些都在 Microsoft.AspNet.Scaffolding.12.0 dll 的 ICodeGeneratorActionsService 接口里。当然,你也可以创建你自己的 action,但是,使用 Scaffolding 框架显式地暴露的这些方法调用的好处在于,脚手架的任何一步出现错误时都可以被回滚。项目将回滚到脚手架工被调用之前的状态。

创建新的文件夹和静态文件非常简单,只需要调用正确的 Action Service 方法。但是如果用于实际的工作,你就需要去学习如何编写 T4 模版了。

ASP.NET MVC 与 NuGet 一起成长,所以当 Scaffolder 项目能够以编程的方式安装 NuGet 包时,也并不会令人感到惊奇。

查看英文原文: Create Your Own Scaffold in Visual Studio 2013.2


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-04-14 21:182135

评论

发布
暂无评论
发现更多内容

Python已有列表和字典,为什么还需要元组?

迷彩

Python Python基础知识 元组 7月月更

新书上市 | 图解、幽默、有趣、简单的 Java 书

图灵教育

Java 程序员 计算机

玩转Liunx系统,看这篇文章就够了(三)

Java学术趴

7月月更

zookeeper-ACL权限相关

zarmnosaj

7月月更

项目管理系统选择有哪些需要注意的点?

爱吃小舅的鱼

项目管理

手动上传表单数据+图片文件功能

猪痞恶霸

前端 7月月更

【刷题记录】11. 盛最多水的容器

WangNing

7月月更

解读《深入理解计算机系统(CSAPP)》第11章网络编程

小明Java问道之路

网络编程 socket csapp intel 7月月更

接口测试——流程测试支持批量参数导入,测试效率直接拉满

Xd

Java 数据库 程序员 接口测试工具

【漫步刷题路】- 逆序字符串II

芒果酱

7月月更

AWS Config

冯亮

云计算 DevOps 架构师 AWS 产品解决方案

包装类型

7月月更

【Docker 那些事儿】容器数据卷的妙手

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

曾经辉煌一世的流媒体协议RTMP是什么样的?它能完全被取代吗?一文带您走进RTMP的世界

wljslmz

RTMP 7月月更 流媒体协议

Linux Lab 会议或直播安排与记录

贾献华

7月月更

Flutter 模拟火箭发射动画

岛上码农

flutter ios 移动端开发 安卓开发 7月月更

金融行业开放平台

穿过生命散发芬芳

7月月更 开放平台

Serverless模板重磅上线!多场景覆盖、小时级快速集成

最新动态

谈Java Record类

ES_her0

7月月更

Codeforces Round #787 (Div. 3)

KEY.L

7月月更

Istio组件Mixer介绍

阿泽🧸

istio 7月月更

Docker(二)Docker-Compose、网络、数据卷

神农写代码

计算机组成原理之计算机最基本的工作原理

未见花闻

7月月更

GNU/Linux知识库(4)- 用户 & 权限

冯亮

Linux DevOps 操作系统 GNU

【愚公系列】2022年07月 Java教学课程 04-Java语言三种注释

愚公搬代码

7月月更

把项目打包成docker镜像,并发布到腾讯云?DockerHub!

为自己带盐

Dockerhub 7月月更 dotnetcore

异步 API 设计之扇入扇出模式

宇宙之一粟

API 7月月更

jQuery 的事件绑定

Jason199

jquery js 7月月更

长安链中的加密算法

长安链

小程序媒体组件-1

小恺

7月月更

电商平台数据可视化监控系统-Echarts-vue项目综合练习

武师叔

7月月更

在Visual Studio 2013.2中创建你自己的脚手架_语言 & 开发_Jonathan Allen_InfoQ精选文章