ASP.NET 5最大的变化是什么?首当其冲的就是多了很多K,K表示的是ASP.NET vNext的项目代号“Project K”,但很容易让人想到一个汉字——“坑”,希望K不要成为“坑”的缩写。
KRE,全称是K Runtime Enviroment(好像有一段时间全称是K Runtime Engine),它是ASP.NET 5的运行时环境,是ASP.NET 5应用程序的执行环境。(它是ASP.NET 5中最大最重要的一个坑) KVM,全称是K Version Manager,它是专门针对KRE的专用版本管理器,或者说是专用于管理KRE这一个包包的包包管理器。它不管理ASP.NET应用程序的包包,那是由KPM管理的。NuGet是一个大家熟知的包包管理器,但NuGet自己的版本也是由NuGet来管理的。而KVM的存在不是为了解决包管理的问题,而是为了显示KRE的地位,KRE的至高无上,KRE的特权,这是KRE的专用VIP包厢。(它是用于管理KRE这个大坑的版本) KPM,全称是K Package Manager,它是ASP.NET 5专用的用于管理NuGet包的包包管理器,是ASP.NET 5应用程序所用的包包管理器。有现成的NuGet不用,偏偏搞个KPM,把NuGet包装一下,突显自己的与众不同——我是K,我为自己带盐。(它是用于管理KRE大坑中的小坑) KLR,全称是K Language Runtime,更准确地说它应该叫K-CLR,它是用于加载CLR的,见下图。运行ASP.NET程序的前提是先要加载CLR,ASP.NET 5之前是IIS帮你干了,现在如果是Self Hosting,就需要KLR帮你干。(它是把CLR放到KRE这个大坑中) K,全称是K command,它是一个命令,是KRE的入口,通过它启动KRE并执行ASP.NET 5应用程序。(它是KRE这个大坑的入口)