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.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索5
, asp.net
, mac
, 代码生成
, K
gen
,以便于您获取更多的相关知识。

时间: 2024-09-26 22:37:13

Mac中体验ASP.NET 5 beta2的K gen代码生成_自学过程的相关文章

在ASP.NET 2.0中操作数据之二十:定制数据修改界面_自学过程

简介 GridView和DetailsView控件通过绑定列和CheckBox列,可以简化数据编辑界面制作,呈现只读,编辑和新增界面,我们不需要增加元素标记或编写任何额外代码就可以得到这些界面.然而,绑定列和CheckBox列呈现的界面却缺乏实际应用中经常用到的定制功能.为了对GridView和DetailsView的编辑.新增界面进行定制,需要用模板列(TemplateField)替换原有列. 在上节教程中我们讨论如何增加验证控件来定制数据编辑界面,而本节教程将演示如何使用Web控件对实际的数

在ASP.NET 2.0中操作数据之二十七:创建自定义排序用户界面_自学过程

简介 显示大量已经按类别(不是很多)排序的数据但没有类别分界线,用户很难找到所需要的类别.例如,数据库中只有9个类别(8个不同的类别和1个null),共81种产品.现在用一个GridView列出所有产品,假设有用户对类别Seafood的产品感兴趣,她一定会按类别排序,把Seafood产品排列在一起.排序后,用户便寻找Seafood产品开始和结束的地方.虽然是按英文字母排列类别不难找到Seafood,但仍要花些时间在GridView寻找.为了进一步的区分类别,许多网站使用类别分界线这种排序用户界面

在ASP.NET 2.0中操作数据之二:创建一个业务逻辑层_自学过程

导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是授权,比如说只有那些具有特殊

在ASP.NET 2.0中操作数据之四十一:DataList和Repeater数据分页_自学过程

导言 分页和排序是显示数据时经常用到的功能.比如,在一个在线书店里搜索关于ASP.NET 的书的时候,可能结果会是成百上千,而每页只列出十条.而且结果可以根据title(书名),price(价格),page count(页数),author name(作者)等来排序.我们在分页和排序报表数据 里已经讨论过, GridView, DetailsView, 和FormView 都有内置的分页功能,仅仅只需要勾一个checkbox就可以开启.GridView 还支持内置的排序. 不幸的是,DataLi

在ASP.NET 2.0中操作数据之十四:使用FormView 的模板_自学过程

导言 在上两节教程中,我们看到了如何使用TemplateField来自定义GridView和DetailsView的输入.TemplateField使我们可以高度自主的定义某个特定的列,但不管是GridView还是DetailsView,都会有点太规则了,简单的说就是它们都有着四四方方的格子一样的外观.很多情况下这样的格子一样的外观是很不错的,不过有的时候我们却需要使用一个不规则的显示外观.当需要显示一个单独的记录时,使用FormView控件就可以实现这种比较随意的外观呈现. 跟DetailsV

在ASP.NET 2.0中操作数据之六十九:处理Computed Columns列_自学过程

导言: Microsoft SQL Server里有一种computed columns列.这种列的值是通过一个表达式来计算,而表达式引用的是同一张表的其它列的值.打个比方,有一张ServiceLog表,其包含了ServicePerformed, EmployeeID, Rate, Duration等列. 虽然我们可以在一个web页面或其它什么界面里计算每笔服务的费用(也就是 比率 rate乘以时间段duration),不过我们也可以手动向ServiceLog表添加一个 AmountDue列以反

ASP.NET中URL Routing和IIS上URL Rewriting的区别_自学过程

前言 前面有2篇帖子提到了关于URL Routing的特性,但是发现有很多人误会URL Routing就是URl Rewriting,其实2个虽然都提供相似的功能(提高友好的URL方便搜索引起收录),但是2者的原理和运行周期是完全不一样的,本篇文章我们就来分析一下具体有什么不同. 例子 在分析原理之前,我们先来做一个例子测试一下(IIS URL Rewrite模块需要IIS7的支持). 1.为Customer/1的URL建立对应的MVC程序 首先建立一个普通的MVC3程序,建立一个简单的Cust

在ASP.NET 2.0中操作数据之十一:基于数据的自定义格式化_自学过程

介绍 我们可以通过控制HeaderStyle, RowStyle, AlternatingRowStyle和其他一些属性来改变GridView, DetailsView, 和 FormView的样式,比如cssClass, Font, BorderWidth, BorderStyle, Bar, Width, Height等 一般,自定义格式化与我们所要显示的数据的值有关系.例如, 为了吸引用户注意那些库存为空的产品,我们可以将库存对应的字段UnitsInStock  和UnitsOnOrder

在ASP.NET 2.0中操作数据之六十三:GridView实现批量删除数据_自学过程

导言: 在前面的教程,我们用GridView创建了一个批编辑界面.在用户需要一次性编辑多条记录的情况下,批编辑界面很有用.同理,当用户需要同时删除多条记录时,该技术也很有用. 如果你使用过邮件系统的话,你应该对这种最常见的批删除界面很熟悉:界面里每一行都包含一个checkbox,此外,还有一个"Delete All Checked Items"按钮(如图1).本教程比较短,因为我们在前面的教程已经完成大体的框架,在前面的第50章<为GridView控件添加Checkbox>