太棒了!

.NET Core 2.0正式发布至今已经过去了大半年,这大半年说长不长说短不短,这段时间里,我是充分地体会到了微软的诚意,那就是认认真真打造一个优秀的开源平台。这大半年的时间里,微软一直在为.NET Core发布新的更新,每次都进步一点,日积月累至今,终于发布了.NET Core 2.1,这是一个重大的改进版本。
 
.NET Core 2.1的发布时间是2018年5月30日,但考虑到和西雅图的14个小时的时差,我们这边的时间应该是5月31日了,而我是得到这个消息后就直奔下载,阅读更新日志,并把这个最新的框架,应用于目前的项目中,一切非常顺利,中间仅仅遇到了点小问题,但很轻松就解决了。跟之前的修修补补相比,这个2.1版本是实实在在给我带来了一些惊喜:
  1. 编译性能大幅度提升,编译并发布代码确确实实地快了,这次真没有吹牛;
  2. ASP.NET Core的响应速度有了显著提升,打开网页速度“刷刷刷”,程序在我的Macbook上也“健步如飞”;
  3. 之前编译的时候会出现一些警告和错误信息,(在官方论坛上确定是编译器的bug)现在都没有了,修正了;
  4. ASP.NET Core提供了一些新的Tag及帮助方法,很有用;
当然了,改变绝对不止我提到的这几点,这几点仅仅是我能直接感受到的,其它的更新信息请参考:https://blogs.msdn.microsoft.com/dotnet/2018/05/30/announcing-net-core-2-1/
 
微软宣称性能有了很大提升,我点我还没去实证,但从ASP.NET Core的响应速度提升来看,应该是真的。
 
在确定踩平了可能的“坑”之后,我很快将这个新的框架应用于公司的生产环境中了,一切顺滑,而距离正式发布都没超过20个小时,于是我在同事中吹牛说:我们用的技术是最新的!
 
要使用这个新的开发平台,只需要下载最新的.NET Core SDK 2.1.300并安装,其实.NET Core SDK 2.1.x早就有了,但有点误导人的是,这些2.1.x SDK一直没办法将Target Framework设置为.NET Core 2.1,只能设置为2.0,直到2.1.300才可以。这个下载地址上也能看出来,为什么这样安排我也不懂:https://www.microsoft.com/net/download/all
 
装好后命令行敲>dotnet --version,确保显示的是2.1.300,大功告成。
 
理论上只要有SDK就可以开干了,你甚至只用vim或记事本都可以做项目,然而现实中我们还是得借助强大的Visual Studio 2017,为此,VS2017也要升级一下,升级方法如下图,打开Notifications面板,然后就不需要我说了(注:需要的版本为15.7.x):
 
在你的项目配置中,将Target Framework设置为.NET Core 2.1,完成!
 
 

一些感触

2014年初,我离开我的工作单位和朋友一起搞了一个互联网项目,当时在技术选型的时候我就考虑到底是用什么?纠结了好一阵子。最后选择Java,原因是:Java编译型强类型语言,成熟可靠社区力量大,关键跨平台,用起来非常习惯,且Android开发用的也是Java,到时候不用搞两套人马。然而,别忘了,那时候.NET Core还在娘胎中,甚至还不叫.NET Core这个名字,.NET有一个叫Mono的开源项目,可并没有得到微软官方的支持,如今回头看这个事情,我100%会选择.NET Core而不是Java,且我当时的观点还有些不正确——即便Android用的是Java语言,服务器端开发与Android端开发还是需要两套人马。
 
关于.NET与Java之争,其实十几年来一直没间断过,当然高手们对此非常不屑,其实我一般也不怎么提起这个事情,但要是谁说起,我也不回避谈谈,技术这个东西有时候“吵吵才热闹”,有好些东西在和别人“交流”前,自己根本就没听说过。现在的公司,也曾经考虑过将.NET换成Java,当时我也和别人争论过,我是持反对意见的,原因就是公司主要力量在.NET上,虽然Java与.NET很像,但又确确实实有很多不同,切换过去是一大工程,我们的开发人员要重新熟悉环境,且Java语言是相对C#难用的,C#的语法特性简直堪称完美,我们应该继续留在.NET体系,我进一步说:“Java能做的,.NET都有对应的实现。”我的反对者则很不屑:“.NET有什么好的开源报表库么?”我确实有点愣住了,从这点看,我的对手确实将了我一军,但这并不妨碍我们继续使用.NET,我后来不断完善和改进我们的“武器库”, 使得我们的框架日趋完善,适应公司的业务需求。而我坚持使用.NET还有另一个原因,就是.NET Core那时候已经处于整装待发的状态了!那时候RC版已经出来,我当然马上抢先体验了一把,甚至尝试把一个小程序移植过去,但我很快发现这个版本确确实实有些欠缺,导致移植并不怎么顺利,我想,根据微软一贯的风格,1.0通常是个很不完善的版本,2.0则基本完善,2.0后续的小版本则趋于成熟,.NET Core也是一个道理,所以我没有立即做全面迁移,但一直关注着.NET Core的发展,直到去年8月2.0正式发布,这真振奋人心。
 
使用.NET Core的还有另一个重大理由——Visual Studio,坊间把它称作宇宙第一的IDE(集成开发环境),反对的人不多。我用过许多IDE,如Eclipse,IDEA,Android Studio,XCode,NetBeans,以及很古老的VC++6等,最强大和好用的还是Visual Studio。如果你觉得VS慢,通常是因为你的电脑太旧,你得配备一台强悍的电脑,花点钱弄上去,或者说服老板给你配台新机,这才是最省时省力的姿势,强大的CPU(所以一般我不推荐笔记本电脑),16G以上的内存,固态硬盘是必须的(考虑使用最新的Optane SSD吧),这些才是真正的生产力工具,要知道,IDE功能越强大,运行越缓慢,君不见,IDEA的用户也成天哭慢?相信我,后面对你生产力的提高肯定对得起你对硬件的这点投入。Visual Studio如今已经十分强大,甚至之前一些不属于“微软系”的技术也开始被支持了,如直接支持Python、Node.js、Linux C++、Android(基于Xamarin)等开发技术,即便你之前认为反对微软是技术的政治正确,现在尝试下Visual Studio,我相信你一定不会后悔。
 
我不知道还要说什么,零零碎碎的一点感触吧。希望.NET Core发展越来越好吧。
 

.NET Core 2.1来了!的更多相关文章

  1. ASP.NET Core 之 Identity 入门(一)

    前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OW ...

  2. .NET Core中的认证管理解析

    .NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...

  3. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  4. .Net Core MVC 网站开发(Ninesky) 2.4、添加栏目与异步方法

    在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目 ...

  5. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

  6. EntityFramework Core Raw SQL

    前言 本节我们来讲讲EF Core中的原始查询,目前在项目中对于简单的查询直接通过EF就可以解决,但是涉及到多表查询时为了一步到位就采用了原始查询的方式进行.下面我们一起来看看. EntityFram ...

  7. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  8. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...

  9. Asp.net Core中使用Session

    前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...

  10. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

随机推荐

  1. Linux时间子系统之(十六):clockevent

    专题文档汇总目录 Notes:介绍struct clocke_event_device及其功能feature.模式:触发event接口clockevents_program_event:clockev ...

  2. LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number

    100. Same Tree /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; ...

  3. jquery开关按钮效果

    .circular1{ width: 50px; height: 30px; border-radius: 16px; background-color: #ccc; transition: .3s; ...

  4. 聊一聊promise的前世今生

    promise的概念已经出现很久了,浏览器.nodejs都已经全部实现promise了.现在来聊,是不是有点过时了? 确实,如果不扯淡,这篇随笔根本不会有太多内容.所以,我就尽可能的,多扯一扯,聊一聊 ...

  5. python基础下的mysql学习之操作命令(一)

    E-R模型简介: 该模型应用于数据库设计中的概念结构设计阶段 E-entry,实体,是指设计的主体.对象等: R-relationship,关系,是指设计的主体之间的联系,关系也是一种数据: 一个实体 ...

  6. win 上安装cad2002的心得

    前不久,一从事测绘的哥们来找我,要我给她装一专业软件,想想应该很简单,不知为何把他难成这样,他极力要求安装xp系统,说是只有xp上才能装成功,我不信这个邪,查了许多资料发现win 7根本不兼容cad2 ...

  7. BZOJ_2152_聪聪可可_点分治

    BZOJ_2152_聪聪可可_点分治 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)…… ...

  8. 【毕业原版】-《巴斯大学毕业证书》Bath一模一样原件

    ☞巴斯大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&am ...

  9. html中layui+jfinal模板实现前端搜索功能

    <input type="text" id="campus" class="layui-input" onkeyup="ck ...

  10. 危险 AI 花名册

    简评:臭不要脸 AI 名单,another side of AI. 这是一个可怕的 AI 清单,上面的各种商用 AI 项目都用于一些很恶劣的目的.请大家保持警惕. 区别对待类 · HireVue - ...