• ASP.NET 5中的Sake与KoreBuild


    初识ASP.NET 5中的Sake与KoreBuild

     

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

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

    build.cmd:

    packagesSake	oolsSake.exe -I packagesKoreBuilduild -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的packagesKoreBuilduild文件夹,发现其中主要是一堆的.shade文件以及kvm命令文件。

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

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

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

     
    分类: ASP.NET
    标签: ASP.NET5
  • 相关阅读:
    Bootstrap表单验证插件bootstrapValidator使用方法整理
    bootStrap树形目录组件
    根据对象的某一属性进行排序的js代码(如:name,age)
    Ajax跨域:jsonp还是CORS
    用border-image实现波浪边框
    Ajax加载菊花loding效果
    写一个js向左滑动删除 交互特效的插件——Html5 touchmove
    js抛物线动画——加入购物车动效
    zepto弹出层组件
    原生JS实现购物车结算功能代码+zepto版
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4204612.html
Copyright © 2020-2023  润新知