Mac中体验ASP.NET 5 beta2的K gen代码生成
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.
相关文章
解读ASP.NET 5 & MVC6系列教程(11):Routing路由
这篇文章主要介绍了ASP.NET 5 Routing路由的用法,虽然ASP.NET 5 和MVC6的路由使用方式很简单,但是相关的使用规则却很复杂,大家使用的时候需要多加注意。...2021-09-22解读ASP.NET 5 & MVC6系列教程(10):Controller与Action
这篇文章主要介绍了ASP.NET 5 Controller与Action的定义和使用,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(9):日志框架
这篇文章主要介绍了ASP.NET 5 日志框架,通过基于接口的编程机制和DI依赖注入机制,我们可以很容易实现第三方日志provider的扩展,从而将日志记录到我们想记录的任意地方,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(16):自定义View视图文件查找逻辑
这篇文章主要介绍了ASP.NET 5 MVC6中自定义View视图文件查找逻辑,需要的朋友可以参考下...2021-09-22- 这篇文章主要介绍了ASP.NET 5升级后如何删除旧版本的DNX,其实就是简单的四步走,就能轻松删除旧版本的DNX,感兴趣的小伙伴们可以参考一下...2021-09-22
解读ASP.NET 5 & MVC6系列教程(12):基于Lamda表达式的强类型Routing实现
这篇文章主要介绍了基于ASP.NET 5 Lamda表达式的强类型Routing实现,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(5):Configuration配置信息管理
这篇文章主要介绍了ASP.NET 5中Configuration配置信息管理,需要的朋友可以参考下。...2021-09-22解读ASP.NET 5 & MVC6系列教程(8):Session与Caching
这篇文章主要介绍了ASP.NET 5 中的Session与Caching配置和使用,需要的朋友可以参考下...2021-09-22Mac中体验ASP.NET 5 beta2的K gen代码生成
这篇文章主要介绍了Mac中体验ASP.NET 5 beta2的K gen代码生成,需要的朋友可以参考一下。...2021-09-22解读ASP.NET 5 & MVC6系列教程(15):MvcOptions配置
这篇文章主要介绍了ASP.NET 5 MVC6中MvcOptions配置方法,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(14):View Component
这篇文章主要介绍了ASP.NET 5 MVC6 中View Component创建和视图的使用,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性
这篇文章主要介绍了ASP.NET 5中全局导入、获取IP相关信息、文件上传等其他新特性,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(13):TagHelper
这篇文章主要介绍了新版MVC6中强大的TagHelper功能,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置
这篇文章主要介绍了ASP.NET 5 核心技术与环境配置,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(3):项目发布与部署
这篇文章主要介绍了ASP.NET 5 项目发布与部署的设置和流程,并介绍IIS和web.cmd模式两种发布模式的区别,需要的朋友可以参考一下。...2021-09-22解读ASP.NET 5 & MVC6系列教程(6):Middleware详解
这篇文章主要介绍了Middleware详解,需要的朋友可以参考下...2021-09-22解读ASP.NET 5 & MVC6系列教程(2):初识项目
这篇文章主要介绍ASP.NET 5中新建项目的结构和之前的差异,介绍的比较细致,需要的朋友可以参考下。...2021-09-22