数字化转型浪潮中,金融行业如何破局?获取学习视频 了解详情
写点什么

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

  • 2014 年 4 月 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 年 4 月 14 日 21:181737

评论

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

阿里内部百亿级高并发系统(全彩版小册开源):基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇;带你从基础到实战

Java 程序员 架构 高并发

高可用 Keycloak,K8s

Zhang

MySQL k8s keycloak

普通代码块 静态代码块 构造代码块......傻傻分不清

麦洛

Java

基础设施设施即代码(IaC)平台 Pulumi | 混合云管理利器

郭旭东

基础设施即代码 IaC

520 单身福利|获奖名单公布~

InfoQ写作社区官方

520单身福利 热门活动

BitMap 转置算法:不一样的 Count 求解方式

GrowingIO技术专栏

BitMap

iOS 面试策略之系统框架-并发编程

iOSer

ios 并发编程 系统框架

CompusBulider (模模搭)学习笔记7:3D场景中第一人称行走

森友小锘

3D可视化 数字孪生

致我的青春我的感情故事

Changing Lin

520单身福利

阿里分布式大神亲码“redis核心技术笔记”,没有废话,全是干货!

Java架构追梦

Java redis 阿里巴巴 架构 架构分布式

膜拜!Github访问量破百万,阿里内部首次公布的Java10W字面经有多强?

Java 程序员 架构 面试

HIVE跑个insert into select xxx 为什么CPU飙高

InfoQ_Springup

hadoop

聊聊那些小而美的开源搜索引擎

代码先生

搜索引擎 elasticsearch meilisearch

包容的回答者

王辉

个人成长 沟通 团队文化 批判性思维 正念

分库分表 springboot+dubbo+mybatisPlus+shardingSphere

try catch

dubbo 分库分表 springboot ShardingSphere MyBatisPlus

Why WebRTC|前世今生

声网

WebRTC RTC

520 表白,因一个分号被拒

悟空聊架构

520单身福利

UCloud一站式智能大数据平台USDP免费版正式发布!

UCloud技术

hadoop CDH

3、深潜KafkaProducer核心架构

杨四正

kafka 消息队列 kafka架构 kafka源码分析

采用DevOps的7个主要障碍,你一定不知道!

禅道项目管理

DevOps

Serverless:这真的是未来吗?(二)

Serverless Devs

Serverless 运维 云原生 后端 无服务器

看完了京东年薪150万的大佬扔给我的“阿里内部Java 成长笔记”,差距不止一点点

Java 程序员 架构 面试 计算机

基于 Qt Quick Plugin 快速构建桌面端跨平台组件

网易云信

音视频 qt

GitHub标星235k!这份阿里P9纯手写的Java并发核心手册堪称无敌了

Java架构之路

Java 程序员 架构 面试 编程语言

淘宝网能抗住“千亿级”并发量的奥秘是什么?

Java架构师迁哥

官方出手,一针见血!Spring Boot官方手册来袭:从入门到实战

Java架构之路

Java 程序员 架构 面试 编程语言

“一键上链”技术大牛教你快速构建链上应用

“一键上链”技术大牛教你快速构建链上应用

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