【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

在 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:181987

评论

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

干货分享|使用 Istio 实现灰度发布

北京好雨科技有限公司

istio #Kubernetes#

开发者有话说 | 一个普通人的前端职业成长之路

范文杰

个人成长

阿里云PolarDB-X 荣获“2022 OSCAR 尖峰开源项目及开源社区”奖

阿里云数据库开源

阿里云 分布式数据库 开源数据库 PolarDB-X 可信开源

40 岁程序员会有哪些肺腑之言?这篇文章告诉你

宇宙之一粟

学习 程序员 读书感悟 9月月更

数字化转型新抓手:一看就懂的《企业应用现代化行动指南》(附下载)

York

容器 微服务 云原生 应用现代化

4 分钟优化 Fetch 函数写法~

掘金安东尼

前端 9月月更

2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

福大大架构师每日一题

golang 福大大 选择题

《简单记个笔记》之表单标签加CSS选择器

吉师职业混子

9月月更

RAID(独立冗余磁盘阵列)

阿柠xn

Linux 运维 操作系统 raid 9月月更

开发者有话说|情分 or 本分

卷卷龙

个人成长 职场 PUA

概述构建应用智能运维系统的核心能力

阿泽🧸

智能运维 9月月更

kube-prometheus 监控系统使用与总结

CTO技术共享

springboot搭建基于minio的高性能存储

CTO技术共享

数据平台发展史-从数据仓库数据湖到数据湖仓

明哥的IT随笔

hadoop spark 数据仓库 数据湖 湖仓一体

ESP32-C3入门教程 基础篇(三、UART模块 — 与Enocean无线模块串口通信)

矜辰所致

ESP32-C3 9月月更 UART

面试突击85:为什么事务@Transactional会失效?

王磊

Java 面试

监控系统的阶段建设

穿过生命散发芬芳

监控系统 9月月更

C++学习---cstdio的源码学习分析04-创建临时文件函数tmpfile

桑榆

c++ 源码阅读 9月月更

开发者有话说|时间过得真快,我也是一个“奔三”的人了

武师叔

个人成长

通过爬虫爬取一些图片

吉师职业混子

9月月更

SSM整合(功能模块的开发)

十八岁讨厌编程

Java ssm 后端开发 9月月更

SSM整合(接口测试)

十八岁讨厌编程

Java SSM框架 后端开发 9月月更

EMQ走进亚马逊云科技:携手云端,共筑「面向未来」的IoT基础设施底座

EMQ映云科技

物联网 IoT 解决方案 亚马逊云科技 9月月更

用户组角色绑定(原生element-plus-ui表格)

青柚1943

Element Plus Vue3 Typescript

Ubuntu服务器上部署Kubernetes集群

CTO技术共享

ESP32-C3入门教程 基础篇(四、I2C总线 — 与SHT21温湿度传感器通讯)

矜辰所致

I2C I2C协议 ESP32-C3 9月月更

Web3.0杂谈-#001(47/100)

hackstoic

Web3.0

【云原生 | 从零开始学Kubernetes】一、kubernetes到底是个啥

泡泡

云计算 云原生 k8s 9月月更

【数据结构】五分钟带你了解及自定义有向图

迷彩

数据结构 算法 无向图 9月月更 有向图

跟着卷卷龙一起学Camera--CCM

卷卷龙

ISP 9月月更

[SSM]SSM整合①(整合配置)

十八岁讨厌编程

Java 后端开发 9月月更

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