从github上签出基于ASP.NET 5的MVC 6的源代码进行编译,发现有2个编译命令:

build.cmd是针对Windows的编译命令,build.sh是针对Mac/Linux的编译命令,这本来没什么稀奇,但是打开这2个文件一看:

build.cmd:

packages\Sake\tools\Sake.exe -I packages\KoreBuild\build -f makefile.shade %*

build.sh:

mono packages/Sake/tools/Sake.exe -I packages/KoreBuild/build -f makefile.shade "$@"

令人奇怪的是在build.cmd(针对Windows)中没有使用msbuild,而用的是Sake,更奇怪的是build.sh(针对Mac/Linux)下用的也是Sake,并且都用到了KoreBuild。

Sake是什么?KoreBuild又是什么?好奇心油然而生。

在github上找到了Sake的老巢 —— https://github.com/sakeproject/sake

Welcome to Sake, a C# language enabled make system.

原来Sake是用C#编写的编译生成工具,或者可以这么理解:一个C#编写的开源的msbuild替代品。

那Sake为何而生?

.NET平台上一统江湖的编译生成工具非msbuild莫属,但msbuild有个天生的缺点——不能跨平台。而.NET跨平台已经是铁板钉钉,跨平台的编译生成工具必不可少,而开发这样的跨平台工具成本最低效率最高的方法是用C#开发,于是Sake应运而生。

为了证实是否真的能跨平台,在写这篇博客之前我特地在Mac上git签出MVC 6的源代码进行编译:

a) 操作命令

git clone https://github.com/aspnet/Mvc
cd mvc
sh build.sh

b) 编译生成过程中的部分提示

c) 编译生成成功之后,在artifacts/build文件中生成的nuget打包文件

一次成功!

那KoreBuild是什么呢?

网上关于KoreBuild的资料几乎没有,KoreBuild的身影主要出现在github上ASP.NET 5的相关项目中。

打开MVC6的packages\KoreBuild\build文件夹,发现其中主要是一堆的.shade文件以及kvm命令文件。

.shade可能是Sake的配置文件,就如.targets(或.csproj)是msbuild的配置文件。

我猜测KoreBuild只是一个针对Sake的编译生成配置与脚本的打包。

初识Sake与KoreBuild之后的印象是:作为.NET平台的跨平台编译生成工具,Sake+KoreBuild让ASP.NET的跨平台触手可及。

初识ASP.NET 5中的Sake与KoreBuild的更多相关文章

  1. ASP.NET 5中的Sake与KoreBuild

    初识ASP.NET 5中的Sake与KoreBuild   从github上签出基于ASP.NET 5的MVC 6的源代码进行编译,发现有2个编译命令: build.cmd是针对Windows的编译命 ...

  2. .net core系列之初识asp.net core

    .net core已经发布了2.0版本,相对于1.0的有了很大的完善,最近准备在项目中尝试使用asp.net core,所以就进行了一些简单的研究. 初识asp.net core分为以下几个部分: 1 ...

  3. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  4. Asp.net Core中使用Session

    前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...

  5. 在ASP.NET Core中使用百度在线编辑器UEditor

    在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...

  6. ASP.NET Core 中文文档 第五章 测试(5.2)集成测试

    原文: Integration Testing 作者: Steve Smith 翻译: 王健 校对: 孟帅洋(书缘) 集成测试确保应用程序的组件组装在一起时正常工作. ASP.NET Core支持使用 ...

  7. ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results

    原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...

  8. 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web ...

  9. ASP.NET Core中的依赖注入(1):控制反转(IoC)

    ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制,ASP.NET通过定义接口的方式对它们进行了"标准化&qu ...

随机推荐

  1. IE 下JS和CSS 阻塞后面内容总结

    总结: 1.  CSS 都是可以并行下载的. 2.  IE6 和 IE7   JS 不能并行下载,CSS 和 JS 阻塞后面内容下载. 3.  IE8   JS 还是会阻塞图片下载 开始改变加载模式, ...

  2. js onkeypress与onkeydown 事件区别详细说明

    keypress只适用于有字符输入的按键 而keyup/keydown包含了Ctrl, Shift之类的情况 Firefox在处理onKeyDown/onKeyPress事件时存在漏洞,恶意网页可能利 ...

  3. mysql分区查询

    SELECT *FROM INFORMATION_SCHEMA.partitions WHERE table_name='表名' and table_schema='数据库名'

  4. 基于bootstrap分页

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 性能检测工具介绍-Linux系统命令行

    本文介绍的关于Linux自带命令进行性能检测的介绍,详细介绍这些linux自带的工具的使用. 一.uptime uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总 ...

  6. css3实现边框圆角样式

      基本语法: border-radius: 5px; 兼容大多数浏览器: /*兼容Mozilla(Firefox, Flock等浏览器)*/ -moz-border-radius-topleft: ...

  7. Extjs学习笔记--Ext.tree.Panel

    Ext.create('Ext.tree.Panel', { title: 'Simple Tree', width: 200, height: 150, store: store, rootVisi ...

  8. oracle 同时更新(update)多个字段多个值

    --创建表A,B: create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33)); create table B (b1 varch ...

  9. cadence学习之原理图——连线

    重点: (1)两种连接方式:Place Net和Place Net Alias (2)交叉线之间的电气连接Place Junction (3)引脚悬空 Place no connect (4)两器件管 ...

  10. 附10 kibana创建新的index patterns

    elk整体架构图: 一.logstash indexer 配置文件: input { stdin{} } filter { } output { elasticsearch { hosts => ...