是的,.NET Core 3.0正式版发布了,令人兴奋。

WPF

其实,.NET Core 2.1开始已经是个很完善的版本,3.0又带来了什么呢?我站在我的使用角度来看,最最令人振奋的就是:能用WPF了!能用WPF了!能用WPF了!
 
那Linux能不能用WPF?——嗯……还是不行,虽然能够用.NET Core SDK开发WPF程序,但它依赖于.NET Core Desktop Runtime,这个运行时目前只有Windows版本,所以别的平台暂时还不能用WPF。可你不觉得这已经是巨大的进步了吗?这样一来,我就可以跟.NET Framework说bye bye了,全面进入.NET Core时代。同时,WinForm也是被支持的,吼啊!
 
我立马升级了Visual Studio 2019至16.3.1,直接支持创建WPF(.NET Core)项目,开发体验和之前开发WPF没什么差别,完美!
 
 
另外,现在的dotnet程序可以直接编译成可执行文件了,而不再需要“dotnet app.dll”这种命令带参数的方式来运行。

系统要求及兼容性

现在我可以根据客户的需求编写一些桌面应用发给用户了,但要是客户的操作系统不支持.NET Core 3.0那就白干了,所幸的是.NET Core 3.0对操作系统的要求并不算很过分:
  • Windows 7 SP1+,Windows 8.1+,Windows 10 1067+,Windows Server 2012 R2 SP1+(x86/x64皆可)
  • Redhat 7,CentOS 7,Ubuntu 16.04+,Fedora 29+(需要x64)
  • MacOS 10.13+
Windows7还是支持的,吃了一颗定心丸,要知道,还有海量的客户仍在使用Windows7。好吧,放心升级了。
 
至于兼容性,我没发现有什么问题,之前写的那些target为.NET Standard 2.0的库都没问题。

Runtime

SDK可以认为是同一套,但Runtime根据不同的系统和不同的需求,有不同的安装包,我们可以简单地这么认为:安装.NET Core Runtime,如果是Windows环境且需要WPF之类的桌面应用,再安装.NET Core Desktop Runtime。
 

CentOS下如何安装?

 
 
弄好后直接运行之前用2.1版本的SDK开发的程序,没发现任何问题,至于速度嘛……嗯,好像真有那么回事,快了一点,完美Again!

再列一些我认为很有用的东西

  • 性能大幅提高,我没怎么测过,但2.1的性能我感觉就已经不错了,吼啊!
  • C# 8,C# 7的那些新特性我还没完全用上呢,8就出来了,C#的语言特性再跟其它语言甩开距离,Cool。
  • 更快的JSON处理API,做WebAPI,那是大量的JSON,增强JSON的功能很有用。
  • 升级版本覆盖前一版本,过去安装SDK的时候2.1.800,2.1.400是独立的,会消耗更多磁盘空间,现在更新版覆盖之前的版本,同时SDK的磁盘空间占用减少了(牛)。
总之,照这么说,我没有理由不升级到3.0啊。
 
.NET Core 3.0会非常有前途,更多相关内容直接看这个吧:https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/
 

.NET Core 3.0正式版发布的更多相关文章

  1. .NET Core 2.0和ASP.NET Core 2.0正式版抢先体验

    .NET Core 2.0和ASP.NET Core 2.0正式版抢先体验 .NET Standard 2.0 is final Broad platform support. .NET Standa ...

  2. Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Nest.js 6.0.0 正式版发布了.Nest 是构建高效.可扩展的 Node.js Web 应用程序的框架.它使用现代的 JavaSc ...

  3. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

  4. Appium路线图及1.0正式版发布

    Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...

  5. RestServer 2.0 正式版发布

    RestServer 2.0 正式版发布 使用许可&版权说明 在保持本软件完整的情况下可以将本软件用于任何商业用途. 本软件可以自由传播,但是请保持软件相关文件和说明文档完整. 未经许可不得将 ...

  6. React Suite v3.0 正式版发布

    React Suite v3.0 正式版发布 相信很多人会好奇,React Suite 是什么? React Suite 是 HYPERS 前端团队和 UX 团队开源的一套基于 React 的 UI ...

  7. Xcode 7.0正式版发布了

    Xcode 7.0正式版发布了     下载地址:链接: http://pan.baidu.com/s/1FNkPS 密码: ee42     本文由大学霸整理,转载请注明出处,尊重IT人!

  8. RapidJSON 1.0 正式版发布,C++的JSON开发包

    分享 <关于我> 分享  [中文纪录片]互联网时代                 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...

  9. Python 3.8.0 正式版发布,新特性初体验 全面介绍

    Python 3.8.0 正式版发布,新特性初体验 北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PE ...

随机推荐

  1. 灵魂拷问:为什么 Java 字符串是不可变的?

    在逛 programcreek 的时候,发现了一些精妙绝伦的主题.比如说:为什么 Java 字符串是不可变的?像这类灵魂拷问的主题,非常值得深思. 对于绝大多数的初级程序员来说,往往停留在" ...

  2. solr 的安装和配置

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操 ...

  3. 基于webpack实现多html页面开发框架四 自动写入多入口,自动插入多个htmlWebpackPlugin插件

    一.解决什么问题      1.手写页面多入口,一个一个输入太麻烦,通过代码实现      2.手写多个htmlWebpackPlugin插件太麻烦,通过代码实现 二.多入口代码实现 //读取所有.j ...

  4. git 使用详解(5)—— get log 查看提交历史

    git log 查看 提交历史 在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看. 接下来的例子会用我专门用于演示的 simplegit 项目,运行下面 ...

  5. Spring Data JPA 的一对多,一对多,多对多操作

    一对一的关联关系   需求:用户与角色的一对一的关联关系 用户:一方 角色:一方     创建 Users 实体 @Entity @Table(name = "t_users") ...

  6. Android Studio 3.0下创建menu布局文件的图例

    当开始一个android app的时候,android studio项目中没有看到menu文件夹:如下所示: 当要添加一个按钮时,很多文档上都会说,通过在项目的 res/menu 目录中新增一个 XM ...

  7. HashMap 实现原理解析

    概要 HashMap 最早出现在 JDK 1.2 中,底层基于散列算法实现.HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0.HashMap 并不保证 ...

  8. SpringBoot系列之集成Mybatis教程

    SpringBoot系列之集成Mybatis教程 环境准备:IDEA + maven 本博客通过例子的方式,介绍Springboot集成Mybatis的两种方法,一种是通过注解实现,一种是通过xml的 ...

  9. socket AcceptAsync方法的使用

    AcceptAsync与Accept很大的不一样 Accept是一个同步 阻塞的已经封装好底层的方法 AcceptAsync是一个异步 非阻塞未封装的底层连接入口,需要手动填入连接代码用于优化sock ...

  10. linux—netstat

    netstat--option -a: 列出所有端口,监听的没有监听的     -t: 显示tcp相关的选项 -u: 显示udp相关的选项 -l: 仅仅显示监听选项 -p:  显示与连接有关的程序名和 ...