netcore核心思想?

netcore核心作为控制台应用程序启动,在Program的Main方法是入口,通过调用CreateWebHostBuilder或者(CreateDefaultBuilder)创建WebHost的,WebHost会利用WebHostBuilder提供的服务器和中间件构建一个请求处理管道;这就是NET Core框架的核心。

NET Core是一种小型的、高效的,可以通过文件复制直接部署的跨平台框架。

.NET Core 备受关注的主要原因

1) .NET Core自身开源,而且鼓励更多的.NET项目开源

2).NET Core支持跨平台特性,可以再Windows、Linux、macOS等系统上运行

3).NET Core的性能不近比.NET Framework更加优秀,也比其他同级开源框架更高效

Net Core已经开源好几年了, 为什么不像JVM那样很多人研究和调优其GC算法?

这和国内的开发环境有很大关系。

一方面,这里有个路径依赖的问题,这个问题在国内尤为突出。这几年,国内其他语言的开发者多一些,生态好一些,转换则意味着成本。

另一方面,浮躁之风过盛,拿来主义盛行。这里举两个例子来说明。一个是国产操作系统的内核问题。为什么要使用linux内核而不是重新写一个呢?给出的理由无非是linux生态好,稳定,没有必要进行重复制作。真的没必要吗?那国外为什么流行要用rust重新写几个,而且开源呢?“没必要”是假,“不想”才是真,毕竟基础建设周期长,成本高,没有拿来主义好呀。另一个例子是最近matlab在国内停止授权的事情。在这件事情上,很多人都觉得问题不大,问题不大的原因在于还有一个开源的scilab可以拿来用。

举这两个例子,也许不太妥切,但是,管中窥豹,略见一斑,也足以说明时下的浮躁氛围了。

既然这里说到net core底层问题,今年新出的《.NET Core底层入门》,也许值得一读。这是国内的研究者写的,从中可以看出国内在这方面的进展,也说不定。总而言之,虽然net core已经开源了几年,但是在国内,开发者的成长和生态的建设,还需要更长的时间。

不只是netcore,golang,rust等等很多语言都没有好多人研究gc,所以这个问题应该问,为什么jvm会有很多人研究。

简单的回答是,jvm的历史负担太沉重,Java社区对jvm的改进十分的保守,新的特性必须要保持向下兼容,导致只能从gc入手优化性能。而netcore不一样,微软主导的netcore社区对clr的改进激进的多,新特性很多情况下是不会向下兼容的,性能优化可以在clr中解决掉,自然就不会过多关注gc了

这似乎挺正常的,如同它购买了GitHub后,众开源项目就纷纷迁移GH。开源社区普遍不信任微软,其意定非在开源本身。.Net 开源估计也是市场占有率在降,没人真心愿意用它。

我们已经上线了好几个.net core的项目,基本上都是docker .net core 2/3。说实话,

.net core的GC非常的优秀,基本上不需要像做Java时候,还要做很多的优化。因此没有多少人研究很正常。换句话,如果一个GC还要做很多优化,这肯定不是好的一个GC。当然平时编程的时候,常用的非托管的对象处理等等还是要必须掌握的。