NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

评论

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

直播预告|从一张 CD 说起,关于播放器的前世今生

声网

Java 抽象类与方法:实现安全性与代码重用

小万哥

Java 程序人生 编程语言 软件工程 后端开发

Starknet(strk) 跨链桥教程:手把手教你用bitget钱包跨链

长安区块链

Java垃圾回收全过程

百度搜索:蓝易云

Java 云计算 Linux 运维 云服务器

linux IP地址原理,分类,子网划分,VLAN,TRUNK详解

百度搜索:蓝易云

云计算 Linux 运维 IP 云服务器

mClock调度算法与QoS

算法 存储 Ceph QoS 调度

iA Writer for Mac(mac好用的写作软件)v7.1中文激活版

影影绰绰一往直前

BSC链DAPP质押合约代币系统开发|详情需求|指南方案

西安链酷科技

DAPP系统开发

儋州市营商环境建设局:二维码一扫,办事更便捷!

草料二维码

二维码 草料二维码

找工作必备AI工具!AI润色简历、AI生成作品集PPT、AI模拟面试、AI绘画、AI绘图等!

彭宏豪95

效率 AI 职场 办公软件 AIGC

项目包装宣发推广、白皮书官网搭建、ppt制作、mg动画设计

西安链酷科技

宣发

低代码:数智化助力新农业发展

快乐非自愿限量之名

低代码 数字化 新农业

量化合约丨现货丨对冲丨秒合约模式系统开发源码搭建

西安链酷科技

DAPP智能合约交易系统开发 DAPP系统开发

HttpServletRequest JSON序列化问题分析

五陵散人

JSON序列化 HTTP请求

《MySQL是怎样运行的:从根儿上理解 MySQL》PDF

程序员李木子

k8s说一下deployment,statefulset,daemonset的区别

百度搜索:蓝易云

云计算 Linux Kubernetes 运维 云服务器

体育赛事直播平台,全方位引流策略分享

软件开发-梦幻运营部

DAPP去中心化交易质押分红系统开发模式案例

西安链酷科技

DAPP智能合约交易系统开发

数字藏品开发公司 nft平台搭建

西安链酷科技

数字藏品开发

DAPP去中心化交易质押分红系统开发模式案例

西安链酷科技

Starknet(strk) 跨链桥教程:手把手教你用bitget钱包跨链

股市老人

谈谈鸿蒙 Harmony 的跨端技术方案

Onegun

鸿蒙 HarmonyOS

gRPC-第二代rpc服务

京东科技开发者

Starknet(strk) 跨链桥教程:手把手教你用bitget钱包跨链

股市老人

ai写ppt工具有哪些?这5款值得推荐,办公必备!

彭宏豪95

人工智能 职场 PPT 在线白板 AIGC

CAN总线位时序的介绍

智趣匠

前端和大数据怎么选择?

算法的秘密

Boxy SVG for Mac(矢量图编辑器)v4.25.2免激活版

影影绰绰一往直前

BetterMouse for Mac(鼠标增强软件)v1.5 (4612)中文激活版

影影绰绰一往直前

飞书深诺基于Flink+Hudi+Hologres的实时数据湖建设实践

飞书深诺技术团队

大数据 数据仓库

当数据遇上代码:程序员的假设检验

数据分析 数学 SLO 概率论

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