微软和社区已经做了大量艰苦的工作,使.net core成为市场上具有竞争力的框架,帮助开发人员快速开发具有最佳性能和可扩展性的强大应用程序。做的最棒的事情使.net framework开发人员不需要任何新的知识来处理.net core,这也是开发人员在很短时间内采用.net core的原因之一。对于非.net开发的spring boot、node js、go等开发人员来到.net core有着非常熟悉的模型,也可以很短的时间内熟悉和爱上.net core。

我非常地热爱.net core,不是那种盲目地热爱,我将给你分享我使用.net core以及为什么我人为.net core将是2019年后最好的框架地理由(哈哈,这会不会引起战争)。

首先我们不能有偏见,每一种语言都有着自己擅长的领域,但我在这里提到的是这些语言的强势领域:

Python:机器学习。数据科学还有Web开发。

JavaScript:Web开发(前端和后端)和游戏开发

Java:移动Android应用程序开发,企业应用程序、Web开发

C++和C:操作系统、关键性能解决方案,嵌入式系统以及任何需要低级别能力的东西

那么我为什么人为.net core是2019年后最好的开发框架,这里首先要澄清一件事情就是语言和框架,不然就会出现Python比.net core好的评论,一个编程语言是编写一个程序需要遵循的一组任务,而一个框架是为特定的编程语言编写的实用工具集合。例如,C#是一种编程语言,Microsoft 在 C#中构建了.net 和.net core 框架,这样开发人员就比从零开始创建C#应用程序快的多。

这一张图就是我热爱.net core的原因,多功能性:

我已经试用.net core 3年多时间,做过.net core诸多项目,也服务过多家客户,目前有很多都已经逐步从.net 向.net core迁移,但,也尚有进30%的同学们还在.net framework,对.net core还没有着手。

多功能性是.net core成为我的生活一部分的最好解释。如果您是web开发人员还是想开发桌面或者移动应用程序,如果您是游戏开发人员或是想从事机器学习,.net core就在您身边。

Xamarin使得我们使用Microsoft知识开发跨平台移动应用程序,Unity用于开发游戏,您还可以使用UWP构建桌面应用程序。Asp.net core也是开发功能强大的基于web的应用程序的主要参与者,提供了惊人的spa angular模板以及signalR的实时应用程序等等。

云原生计算的发展驱动着各个企业转向遵循云原生原则(启动速度快、内存占用低)的.net core。.net core对Docker容器的支持非常好,这使得您可以轻松的将应用程序部署到云端,您只需要单击几下即可在云上进行开发和部署。

ML.NET是面向.NET开发人员的机器学习框架,当我们谈论微软Azure中的任职服务时,我们真的在谈论商品化的AI,ML.NET赋予我们的应用程序员AI能力。

Blazor也将接管一些JavaScript功能,不需要懂AngularJS,React,Vue,充分类用.NET的稳定性和一致性,让我们成为全栈的Web开发人员。

.NET Core吸引人的功能还有很多,像高性能,开源,宇宙第一的开发人员工具等等,这里我就分享一下Raygun的CEO兼联合创始人对.NET Core的评价,具体参见:

很多人都喜欢NodeJs转go,Raygun为啥转向了.NET Core呢,早在2013年Raygun同时使用了Node,go 和 .NET Framework,核心业务使用的是.NET Framework构建的,所以也尝试了研究使用Mono构建API层,Mono的使用不够理想,所以他们开始探索不同语言和运行时的优点。似乎Node.js为运行的短小事务提供了一个非常好的模型。Raygun将Mono转移到Node.js上,Raygun找到了一个更加稳定的环境,获得了类似的吞吐量,但是它不像是一场重大性的胜利。随着时间的推移,Raygun工程师注意到了Node.js API的性能正在降低。“随着新版本的推出,我们发现Node.js作为一个框架变得越来越慢,越来越重量级”Raygun联合创始人兼首席技术官Jeremy Boyd说。工程师们考虑增加服务器容量,但即使基于云的服务器成本相对比较低,大幅增加云服务器也会导致成本上升。Raygun开发人员决定专注于最大化现有API节点的性能。当该公司获悉微软即将发布.NET Core,Raygun安排了两个开发人员花了大约两周时间,将API一直到了.NET Core,然后验证测试工作负载的性能,然后将这些节点旋转到现有的生产节点集群中,Raygun这个尝试获得了200倍的收益。Raygun的案例对于以.NET技术构建业务的公司特别有启发,也许你已经或者计划从.NET转移到其他平台,不妨抽出一些时间来尝试一下.NET Core。

我毫不怀疑,.NET Core是未来,Microsoft正在添加新功能,以帮助开发人员进行每次更新。和PHP MVC框架,Python和Java相比较,我可以说.NET Core没有限制,更加开放。

是时候拥抱.NET CORE了的更多相关文章

  1. 拥抱.NET Core,如何开发一个跨平台类库 (1)

    在此前的文章中详细介绍了使用.NET Core的基本知识,如果还没有看,可以先去了解“拥抱.NET Core,学习.NET Core的基础知识补遗”,以便接下来的阅读. 在本文将介绍如何配置类库项目支 ...

  2. 拥抱.NET Core,如何开发跨平台的应用并部署至Ubuntu运行

    之前写了一篇博文宣布Rabbit Rpc跨平台了"拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc",在过程中尝试了如何编写支持跨平台的类库与应用程序,也尝试了在 ...

  3. 拥抱.NET Core,学习.NET Core的基础知识补遗

    前言 .NET Core的新特性之一就是跨平台,但由于对之前框架的兼容导致编写一个.NET Core类库变得相当复杂,主要体现为相当多的框架目标和支持平台,今天我们就对.NET Core的跨平台特性进 ...

  4. 拥抱.NET Core系列:依赖注入(2)

    上一篇"拥抱.NET Core系列:依赖注入(1)"大体介绍了服务注册.获取和生命周期,这一篇来做一些补充. 由于内容跨度大(.NET Core.ASP.NET Core),所以文 ...

  5. 拥抱.NET Core系列:MemoryCache 缓存过期

    在上一篇"拥抱.NET Core系列:MemoryCache 初识"中我们基本了解了缓存的添加.删除.获取,那么今天我们来看看缓存的过期机制.这里和上篇一样将把"Micr ...

  6. 拥抱.NET Core系列:MemoryCache 缓存选项

    在上一篇 "拥抱.NET Core系列:MemoryCache 缓存过期" 中我们详细的了解了缓存过期相关的内容,今天我们来介绍一下 MSCache 中的 Options,由此来介 ...

  7. 拥抱.NET Core系列:MemoryCache 缓存域

    在上一篇“<拥抱.NET Core系列:MemoryCache 缓存选项>”我们介绍了一些 MSCache 的机制,今天我们来介绍一下 MSCache 中的缓存域. MSCache项目 M ...

  8. 拥抱.NET Core系列:MemoryCache 缓存域(转载)

    阅读目录 MSCache项目 缓存域 写在最后 在上一篇“<拥抱.NET Core系列:MemoryCache 缓存选项>”我们介绍了一些 MSCache 的机制,今天我们来介绍一下 MS ...

  9. 拥抱.NET Core系列:MemoryCache 缓存选项 (转载)

    阅读目录 MSCache项目 MemoryCacheOptions ExpirationScanFrequency SizeLimit CompactionPercentage 写在最后 在上一篇 ” ...

  10. 拥抱.NET Core系列:MemoryCache 缓存过期 (转载)

    阅读目录 MSCache项目 MSCache提供的过期方式 绝对时间到期 滑动时间到期 自定义过期策略 过期策略组合拳 缓存过期回调 写在最后 在上一篇”拥抱.NET Core系列:MemoryCac ...

随机推荐

  1. deno+mongo实战踩坑记

    自从 deno 1.0 发布以来,有关 deno 的文章很多,大多数都是在讨论怎么安装 deno .deno 有哪些特点 .deno 和 node 有哪些异同.deno是不是 node 的替代品等.咱 ...

  2. 手写一个简版 asp.net core

    手写一个简版 asp.net core Intro 之前看到过蒋金楠老师的一篇 200 行代码带你了解 asp.net core 框架,最近参考蒋老师和 Edison 的文章和代码,结合自己对 asp ...

  3. PAT 乙级-1025 链表反转

    给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后 ...

  4. linux DRM/KMS 测试工具 modetest、kmscude、igt-gpu-tools (二)

    kmscube   kmscube is a little demonstration program for how to drive bare metal graphics without a c ...

  5. 干货 | Kafka 内核知识梳理,附思维导图

    前面我们已经分享过几篇Kafka的文章,最近简单梳理了下Kafka内核相关的知识,涵盖了Kafka架构总结,副本机制,控制器,高水位机制,日志或消息存储,消息发送与消费机制等方面知识.文末含对应的Ka ...

  6. Java-第15章图形用户界面设计例题

    Example15_1.java JFrame常用方法 import javax.swing.*; import static javax.swing.JFrame.*; public class E ...

  7. [wordpress使用]003_添加新文章

    当WordPress前面的工作准备的差不多,没什么大问题时,就可以开始为你的博客添加文章,让博客的内容变得更加丰富.既然你已经开始了这个博客,那么就说明你已经有一个明确的方向,知道自己到底要写那些内容 ...

  8. [Objective-C] 017_UI篇_UIView(中)

    在上篇我们简单讲了UIView的坐标与几何结构,这篇我们来实战UIView一下.UIView在App中有着绝对重要的地位,因为可视化控件几乎都是UIView的子类.在App负责渲染区域的内容,并且响应 ...

  9. maven中scope

    scope maven中scope的默认值是compilescope的分类1)compile 默认是compile.compile表示被依赖项目需要参与当前项目的编译,包括后续的测试,运行周期也参与其 ...

  10. Spring boot Sample 008之spring-boot-logback

    一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.目的 spring boot 整合log4j2 二.步骤 2.1.点击File -> New Project -> S ...