什么是.NET Core ?它和.NET Framework 有什么不同?_.net core和.net framework的区别-程序员宅基地

技术标签: C#  

   .NET Core  已经发布好几年了,很多.NET 程序员也一定跟我一样心中一直有以下疑问, 

  1. .NET Core到底是不是  .NET 的下一个版本?还是说只是  .NET 支持跨平台的一个版本?
  2. 作为传统的  .NET 开发者或者说开发的程序都是在WIndows环境下面工作的,有没有必要学习  .NET Core?
  3. .NET Core 和  .NET Framework有什么不同?
  4. 在开发新的程序是应该怎么选择.NET Core 和  .NET Framework?

带着这些疑问我找到了一篇文章介绍  .NET Core 和  .NET Framework的不同,在这篇文章里面基本回答了上面的几个问题。为了更好的理解这些内容,我决定把它翻译一下记在这里。原文链接会放在底部。

                                            

 

                                  .NET Framework 和 .NET Core 的差异

 

        了解.NET Framework 和 .NET Core 的差异,并且在什么时候应该选择 .NET Core。 .NET Core是一个新的开源并且跨平台的用来构建可以所有操作系统(包括Windows, Mac, and Linux)上面运行的应用的的框架。

        那么你的下一个应用应该选择哪一个平台那? .NET Core ? 还是  .NET Framework?在这篇文章里面,让我们一起比较这两个平台来看是否能得出结论。

       

.NET Framework的优势:

     如果你需要快速开发并部署一个 .NET 应用并且你没有充足的时间去学习 .NET Core,那么 你应该选 .NET Framework。因为 .NET Core有一定的学习曲线。

    如果你要维护并升级现有的 .NET应用程序,那么你应该选择.NET Framework。移植一个现有的.NET程序去.NET Core 框架线面需要一定的工作量。

    为了找一份工作?现在并没有很多的关于.NET Core的职位供你选择。

    .NET Framework 就是这样的,现在的版本是.NET Framework 4.8,很有可能这是.NET Framework的最后一个版本了。在未来并没有计划有新的.NET Framework版本。

    .NET Core的优势:

    加入你要开发一个新的应用并且有.NET Framework 和.NET Core 供你选择,那么应该选.NET Core。

    微软刚刚宣布.NET Core V3.0,这是一个有很大提升的.NET Core版本。.NET Core将是你以后学习并开发一个应用程序时的选择。

    .NET Core 3.0支持已经支持了WPF和Windows Forms。.NET Core 3.0 还支持UWP,WPF和Windows Forms三者的开发。

    如果你要开发一个新的程序并且公司允许的话,那么.NET Core 是你的一个很好的选择。.NET Core 将会变的越来越好。

    .NET Core 很适合跨平台的开发。  .NET Core 应用支持Windows,Linux和Mac OS。微软的很受欢迎的开源文本编辑器 Visual Code 支持Windows,Linux和Mac OS。VS Code还支持IntelliSense 和 debugging,就像Sublime, Emacs, and VI, work w那样 。

   .NET Core 也是支持微服务的,它支持跨平台的服务与.NET Core 一起工作,即使这写服务是.NET Framework, Java, Ruby,等等,开发的。

   容器就是现在的虚拟机。.NET核心的模块化、重量轻和灵活性使它更容易在容器中部署.NET核心应用程序。容器可以部署在任何平台、云、Linux和Windows上。.NET核心与Docker和Azure Kubernetes服务都很好地工作。

    一个需要高性能以及可扩展的系统

    性能和可扩展性是.NET Core被开发出来时注重的两个区域。

   .NET Core每个版本之间的兼容性很好。你可以同时很容易的运行不同版本的应用在同一个机器上面。

 

================= 之前的版本 ========================

.NET 核心系统

让我们看一下如今的.NET核心系统架构根据下面的图。

正如你在上图看到的,.NET核心系统主要由三个主要的部分组成:.NET Framework, .NET Core, a和 Xamarin。

Xamarin 毫无争议,当你想用C#构建一个移动应用()时Xamarin 是你唯一的选择。

.NET Framework 支持窗体和网页应用。现在,你可以使用Windows Forms, WPF, and UWP去创建一个Windows应用在.NET Framework平台。ASP.NET MVC往往被用来构建网页应用在.NET Framework平台。

.NET Core 是新的开源和跨平台框架,用于为所有操作系统(包括Windows、Mac和Linux)构建应用程序。.NET Core仅支持UWP和ASP.NET Core。UWP用于构建Windows10目标窗口和移动应用程序。ASP.NET Core用于构建基于浏览器的Web应用程序。

.NET 的未来

 微软刚刚发布了.NET 5, 它将是在2020年可用。.NET5将会替代.NET Core 并且它是.NET Core和.NET Framework的未来。.NET5将不会支持ASP.NET Web Forms, WCF, 或者 WWF。UWP在未来也不会占很大的比重。

 

 

原文

 

根据这篇文章回答一下刚开始提出的问题,

  1. .NET Core到底是不是  .NET 的下一个版本?还是说只是  .NET 支持跨平台的一个版本?严格来说不是,他们是并行的.NET 5才是会最终替代这两者的东西
  2. 作为传统的  .NET 开发者或者说开发的程序都是在WIndows环境下面工作的,有没有必要学习  .NET Core?好像也没有很好的回答这个问题。但是个人觉得还是很有必要的,毕竟.NET Framework已经不更新了那么一些新的特性肯定会在.NET Core上面在.NET 5出现之前。
  3. .NET Core 和  .NET Framework有什么不同?这个具体就要看文章里面的比较了。
  4. 在开发新的程序是应该怎么选择.NET Core 和  .NET Framework?文中的作者是建议前者的在条件允许的情况下。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39730950/article/details/90767418

智能推荐

python3 os.system 异步执行_Python执行系统命令的方法 os.system(),os.popen(),commands-程序员宅基地

文章浏览阅读3.8k次。最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类。1.最开始的时候用 Python 学会了 os.system() 。这个方法是拥塞的。os.system('ping www.baidu.com')2.通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。这个方法是后台执行,不影响后续脚本运行..._os.system异步执行

CM+CDH安装搭建全过程(总结版)_cloudera manager server gc cpu usage is at 10% or -程序员宅基地

文章浏览阅读2.9k次。目录第一次搭建CM、CDH第二次搭建CM、CDH搭建环境:搭建过程:报错过程:总结复盘:第三次搭建CM、CDH搭建环境:搭建过程:报错过程:总结复盘:第四次搭建CM、CDH搭建环境:搭建过程:报错过程:总结复盘:第一次搭建CM、CD..._cloudera manager server gc cpu usage is at 10% or more of total process time

内核开发调试printk_printk 头文件-程序员宅基地

文章浏览阅读706次。进行内核开发调试在进行驱动开发的过程中往往要打印一些信息来查看是否正确类似于printf,以下将介绍在内核开发常用的调试方法。.(第一次写文章,内容可能不咋样勿喷呀)内容一、printk介绍二、如何查看并修改消息级别在应用程序采用printf打印调试、内核驱动采用printk打印调试。printk函数打印数据到console缓冲区,打印的格式方类似printf。printk函数说明头文件:<linux/kernel.h>int printk(KERN_XXX const_printk 头文件

Kafka原理、部署与实践——深入理解Kafka的工作原理和使用场景,全面介绍Kafka在实际生产环境中的部署_kafka如何负载使用一台对外的机器-程序员宅基地

文章浏览阅读2.5k次。随着互联网的发展,网站的流量呈爆炸性增长,传统的基于关系型数据库的数据处理无法快速响应。而NoSQL技术如HBase、MongoDB等被广泛应用于分布式数据存储与处理,却没有提供像关系型数据库一样的ACID特性、JOIN操作及完整性约束。因此,很多公司或组织开始转向Apache Spark、Flink、Beam等新一代大数据处理框架来处理海量数据。然而,由于新一代大数据处理框架依赖于HDFS等文件系统,导致集群规模扩容困难、成本高昂。另一方面,云计算平台的出现让用户可以快速部署、扩展大数据处理集群。_kafka如何负载使用一台对外的机器

麒麟KYLINOS桌面操作系统2303上安装tigervnc_麒麟系统电脑安装vncserver-程序员宅基地

文章浏览阅读1.4k次。hello,大家好啊,今天给大家带来在麒麟桌面操作系统2303上安装tigervnc的文章,本篇文章给大家讲述如何安装并且远程连接使用,后面会给大家更新如何将tigervnc做成桌面图标点击即可开启及关闭,欢迎大家浏览分享转发。_麒麟系统电脑安装vncserver

EPS方圆预发机说明书-程序员宅基地

文章浏览阅读324次。预发机说明书_eps方圆预发机说明书

随便推点

TensorFlow精进之路(十五):深度神经网络简介_tensorflow 精进之路-程序员宅基地

文章浏览阅读265次。1、概述本来想用卷积神经网络来预测点东西,但是效果嘛......,还是继续学习图像类的应用吧~前面学习的神经网络都是一些基础的结构,这些网络在各自的领域中都有一定效果,但是解决复杂问题肯定不够的,这就需要用到深度神经网络。深度神经网络是将前面所学的网络组合起来,利用各自网络的优势,使整体效果达到最优。这一节就简单的记下一些常用的深度神经网络模型,因为tensorflow等框架都将这些网络实现..._tensorflow 精进之路

第九十四篇 Spark+HDFS centos7环境搭建_spark写入hdfs需要用户名密码吗-程序员宅基地

文章浏览阅读2.6k次。一、安装包下载:Spark 官网下载: https://spark.apache.org/downloads.htmlHadoop 官网下载: https://hadoop.apache.org/releases.html目前使用Spark 版本为: spark-2.4.3 Hadoop版本为: hadoop-2.10.1二、配置自登陆检测是否可以自登陆,不需要密码则配置正常:ssh localhost在搭建Hadoop环境时,出现localhost.localdomain: Permis_spark写入hdfs需要用户名密码吗

Node.js_node可以使用什么命令 ,它会自动找到该文件下的start指令,执行入口文件。-程序员宅基地

文章浏览阅读280次。nodejs。_node可以使用什么命令 ,它会自动找到该文件下的start指令,执行入口文件。

linux图片相似度检测软件下载,移动端图像相似度算法选型-程序员宅基地

文章浏览阅读293次。概述电商场景中,卖家为获取流量,常常出现重复铺货现象,当用户发布上传图像或视频时,在客户端进行图像特征提取和指纹生成,再将其上传至云端指纹库对比后,找出相似图片,杜绝重复铺货造成的计算及存储资源浪费。该方法基于图像相似度计算,可广泛应用于安全、版权保护、电商等领域。摘要端上的图像相似度计算与传统图像相似度计算相比,对计算复杂度及检索效率有更高的要求。本文通过设计实验,对比三类图像相似度计算方法:感..._linux 图片相似度对比

java isprime函数_判断质数(isPrime)的方法——Java代码实现-程序员宅基地

文章浏览阅读3.8k次。判断质数(isPrime)的方法——Java代码实现/** 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数* 100以内质数表2 3 5 7 11 13 17 19 23 29 31 37 41 43 4753 59 61 67 71 73 79 83 89 97质数具有许多独特的性质:(1)质数p的约数只有两个:1和p。(2)初等数学基本定理:..._java isprime

2.小白学uvm验证 - uvm_objection 和 uvm_component_uvm_object accessor 参数的意义-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏41次。1. uvm_objection 和 uvm_component 基础  uvm_objection 和 uvm_component 是 uvm 中两大基础类,刚开始学习的时候,对两个东西认识不深,以为它们俩差不多,谁知道它两是一个是“爷爷”,一个是孙子的关系,两者贯穿整个 uvm 验证方法学。至于为什么要划分 uvm_object 和 uvm_component 呢,是因为前任在验证的过程中发..._uvm_object accessor 参数的意义

推荐文章

热门文章

相关标签