Mac中体验ASP.NET 5 beta2的K gen代码生成
ASP.NET 5 beta2中增加了一个新特性(详见ASP.NET 5 Beta2 发布),可以通过K命令生成MVC的代码,比如:k gen controller -name HomeController。

如果你用的是Visual Studio,自然对这个功能不以为然,因为Visual Studio帮你干了。
如果你用的是Mac,没有Visual Studio,也没有K Studio,不想自虐手写本可以通过模板生成的MVC代码,这个特性就值得关注了。
由于对Mac下写ASP.NET代码垂涎已久,一发现这个特性,就立马想尝试一下。但网上根本没有相关资料,只能自己摸索了。
首先在project.json的dependencies中将所有1.0.0-beta1改为1.0.0-beta2,也就是升级为ASP.NET 5 beta2的包包。
{
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta2",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta2",
"Microsoft.AspNet.Hosting": "1.0.0-beta2",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta2",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta2"
}
}
接下来就是给K增加gen功能(k gen),在project.json的commands中增加如下配置,告诉K在Microsoft.Framework.CodeGeneration这个包包中找这个命令:
{
"commands": {
"gen": "Microsoft.Framework.CodeGeneration"
}
}
再接下来就是把Microsoft.Framework.CodeGeneration这个包包下载下来,这是KPM干的活,在project.json在dependencies中添加引用,并运行kpm restore:
{
"dependencies": {
"Microsoft.Framework.CodeGeneration": "1.0.0-beta2"
}
}
kpm restore
原认为这样就大功告成了,结果运行 k gen controller -name HomeController 却出现错误提示:
No code generators found with the name 'controller'
于是在这里卡住了,差点放弃。
后来想想可能有专门的包包进行controller的代码生成,在GitHub上浏览ASP.NET Repo List时发现一个东东:
Scaffolding - code generators to speed up development
也许这个活就是Scaffolding干的。在ASP.NET Scaffolding主页上看到一篇博客的链接——How to customize scaffolding templates for ASP.NET vNext,看了这篇博文之后恍然大悟,原来controller的代码生成是由Microsoft.Framework.CodeGenerators.Mvc负责的。
于是,在project.json的dependencies中添加Microsoft.Framework.CodeGenerators.Mvc:
{
"dependencies": {
"Microsoft.Framework.CodeGeneration": "1.0.0-beta2",
"Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta2"
}
}
然后kpm restore, 结果nuget/myget服务器抽搐,restore了一个下午加晚上,直到第2天早上才restore成功。
这时再运行 k gen controller -name HomeController ,就成功了:
Finding the generator 'controller'...
Running the generator 'controller'...
Added Controller : /Controllers/HomeController.cs
Adding dependency Microsoft.AspNet.Mvc of version 6.0.0-* to the application.

Mac中体验ASP.NET 5 beta2的K gen代码生成的更多相关文章
- 不写1行代码,在Mac上体验ASP.NET 5的最简单方法
昨天微软发布了ASP.NET 5 beta2(详见ASP.NET 5 Beta2 发布),对ASP.NET 5的好奇心又被激发了. 今天下午在Mac OS X上体验了一下ASP.NET 5,而且借助Y ...
- Visual Studio for Mac中的ASP.NET Core
所以你们都听到了#Build 2017的消息,Mac上的Visual Studio已经被完全发布,是一般的.为了庆祝这个版本,我将在我的Mac上写几篇关于构建一些不同的.net应用的帖子. 正如你已经 ...
- 尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性
本文首发于<尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性> 概述 .NET开发者们大家好,我是Rector. 几天前(美国时间2 ...
- 【译】.NET 7 预览版 1 中的 ASP.NET Core 更新
原文 | Daniel Roth 翻译 | 郑子铭 .NET 7 预览版 1 现已推出!这是 .NET 下一个主要版本的第一个预览版,其中将包括使用 ASP.NET Core 进行 Web 开发的下一 ...
- 在docker中运行ASP.NET Core Web API应用程序
本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...
- 在Mac下创建ASP.NET Core Web API
在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉 ...
- 在Mac下运行ASP.NET Core应用程序
在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的第一个ASP.NET应用. 开发环境搭建 首先 ...
- 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- Mac下运行ASP.NET Core应用程序
Mac下运行ASP.NET Core应用程序 在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的 ...
随机推荐
- 各大门户网站的css初始化代码
腾讯QQ官网 css样式初始 body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select ...
- 第五章 springboot + mybatis(转载)
本编博客转发自:http://www.cnblogs.com/java-zhao/p/5350021.html springboot集成了springJDBC与JPA,但是没有集成mybatis,所以 ...
- Java GC工作原理以及Minor GC、Major GC、Full GC简单总结
名词解释: GC:垃圾收集器 Minor GC:新生代GC,指发生在新生代的垃圾收集动作,所有的Minor GC都会触发全世界的暂停(stop-the-world),停止应用程序的线程,不过这个过程非 ...
- jQuery将悬停效果加到菜单项
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- python 入门学习之环境搭载
1.常用python 2.7 需要在我的电脑环境变量进行环境搭载 2.用notepad++进行编辑器适配,选择python语言 在输入运行程序名里面输入cmd /k x: & cd " ...
- link和import的区别
1.link是xhtml标签,除了可以加载css外,还可以加载定义其他的事务:@import只属于css的范畴,只能加载css: 2.link引用CSS时,在页面载入时同时加载:@import需要页面 ...
- 清空stringbuilder
大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilder时却不知道怎么清空,因为它没有clear或em ...
- JQuery调用Servlet实现文件下载
jsp页面上的txt附件,点击后浏览器默认直接打开,结果是乱码. 因为用户上传的txt文件可能是ANSI.Unicode.UTF-8编码的任意一种,上传时后台获取文件内容重写一遍保证浏览器打开正常太过 ...
- jackson2.5.0升级到2.7.0
开发环境:spring-mvc4.1.7.jackson2.7.0 问题描述:项目中将原来的jackson2.5.0升级到2.7.0,导致服务调用出错. mvc相关的配置文件如下: <?xml ...
- Robot Framework安装教程
第一步:安装Python,安装的版本是python-2.7.9.amd64.msi 安装教程详见地址:http://jingyan.baidu.com/article/c910274be14d64cd ...