微软和社区已经做了大量艰苦的工作,使.Net Core成为市场上具有竞争力的框架,帮助开发人员快速开发具有最佳性能和可扩展性的强大应用程序。做的最棒的事情是.Net Framework开发人员不需要任何新知识来处理.Net Core。这也是开发人员在很短的时间内采用.Net Core的原因之一。对于非.NET开发的Spring Boot,NodeJs,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的评价,具体参见https://dotnet.microsoft.com/platform/customers

很多人都喜欢NodeJs 转go, Raygun 为啥转向了.NET Core呢,我特意去研究了一下Raygun的这个案例:https://customers.microsoft.com/en-us/story/raygun。 早在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,然后验证测试工作负载的性能。当他们对API的.NET核心版本是正确的感到满意时,他们启动了一组运行新软件的新节点,然后将这些节点旋转到现有的生产节点集群中, 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 写在最后 在上一篇 ” ...

随机推荐

  1. Android零基础入门第38节:初识Adapter

    原文:Android零基础入门第38节:初识Adapter 在上一节一起了解了ListView的简单使用,那么本节继续来学习与ListView有着千丝万缕的Adapter. 一.了解MVC模式 在开始 ...

  2. 【Windows10 IoT开发系列】API 移植工具

    原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 ...

  3. UWP开发-在UWP中使用sqlite

    原文:UWP开发-在UWP中使用sqlite sqlite是一种轻量级的数据库,对于一些资源紧张又需要数据库的开发非常好用. SQLite 是一个开源的无服务器嵌入式数据库. 这些年来,它已作为面向存 ...

  4. 中芯国际在CSTIC上悉数追赶国际先进水平的布局

    作为中国最大.工艺最先进的晶圆厂,中芯国际的一举一动都会受到大家的关注.在由SEMI主办的2017’中国国际半导体技术大会(CSTIC 2017)上,中芯国际CEO邱慈云博士给我们带来了最新的介绍. ...

  5. 多态与虚拟 : 物件导向的精髓 (侯捷在石器时代对OO的理解)

    [自序]虑而後能得(自序)故事接触 C++ 大约是 1989 年的事.那时候的 PC 以现在的眼光看,除了「蛮荒」之外没有更合适的形容词了.横扫千军的 Windows 3.0 还没有诞生,如今以 C+ ...

  6. MySQL 查询缓存 QUERY_CACHE

    查询缓存(QueryCache)保存查询返回的完整结果.当查询命中该缓存,MySQL会立即返回结果,跳过解析.优化和执行阶段. 官方在特定环境测试结果(官方文档中有详细说明): 1.如果对某表进行简单 ...

  7. 一个类的实例化对象所占空间的大小(对象大小= vptr(可能不止一个) + 所有非静态数据成员大小 + Aligin字节大小(依赖于不同的编译器))

    注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的. 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小. 如果 Class ...

  8. windows Service 之调试过程(附加到进程里调试,而且启动时间不能超过30秒)

    最近第一次用C#写了一个windows service ,其实实现的内容比较简单.就是启动remoting 连接,但是调试相对初次写windws service 的我来说,比较烦.没有经验,而且没办法 ...

  9. Laravel --- 查询字段中使用表达式

    比如: select id, name, count(post) from ... 在laravel中: $user = $this ->select( 'id', 'name', DB::ra ...

  10. Hexo+NexT(四):Hexo站点及Next主题配置详解

    采用Hexo及NexT搭建好网站以后,有些效果不是我们需要的,Hexo及NexT提供了强大的定制功能,本文章将要讲解的就是如何在对网站进行配置及调整,达到博主需要的效果. 本文章配置环境是Hexo 3 ...