.NET Framework VS .NET Core

640?wx_fmt=jpeg

本文对应的原文来至 c-sharpcorner 的一篇文章,文末有链接。如有错误,还请指正。

前言

你会为你的下一个应用程序选择哪一种开发平台 - .NET Framework 或者 .NET Core?在这篇文章中,让我们比较一下这两个开发平台的特点,看能否得出一个结论。

.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 Core 和 .NET Framework 来构建新的应用程序,那么 .NET Core 是一条应该要走的路。

  • 微软已经宣布了 .NET Core v 3.0 ,这是一个有非常多改进的 .NET Core 版本,如果你想学习和使用里面的新特性,那么.NET Core 是值得尝试的。

  • .NET Core 3.0 目前支持 WPF 和 Windows Forms,.NET Core 3.0 同样也支持在 UWP, WPF 和 Windows Forms 之间进行混合开发。这将使得开发者能够更灵活地将 UWP 中一些更现代化的接口引入到 WPF 和 Windows Forms 中。

  • 如果你正在构建新的应用程序,并且你的公司支持使用 .NET Core,那么 .NET Core 是一个不错的选择,总之 .NET Core 会越来越好的。

  • NET Core 更适合跨平台的需求, .NET Core 的应用程序支持在 Windows, Linux, and macOS 运行。微软广受好评的开源代码编辑器 Visual Studio Code 支持 Linux 和 macOS,同时它也支持更加现代化的编辑需求,如 智能感知[IntelliSense] 和 调试[debugging],大多数其它第三方的编辑器,如 Sublime, Emacs, 和 VI 同样支持 .NET Core。

  • 微服务架构同样在 .NET Core 中适用,它可以和不同平台的服务共同工作。包括通过 .NET Framework, Java, Ruby 等语言开发的。

在容器化大行其道的今天,.NET Core 的模块化、轻量级以及它的灵活性使得它能很容易地部署到容器中,容器可以部署到任何平台,如 云上、Linux 和 Windows 上。 .NET Core 适用于 Docker 和 Azure Kubernetes 服务。

高性能、可缩放的系统

对于 .NET Core 开发而言,性能和可缩放性是两个主要的关注点,根据一些基准测试,.NET Core和ASP.NET Core是性能最佳的Web框架。

.NET Core 的多个版本可以共存, 您可以在同一台计算机上同时部署运行多个版本的应用程序。

.NET 生态

时至今日,让我们再回顾一下 .NET 生态架构图。

640?wx_fmt=jpeg

正如你看到的那样,.NET 生态有三个主要的高级别组件 - .NET Framework, .NET Core, 和 Xamarin。

  • Xamarin

毋庸置疑,当你想通过 C# 来构建移动应用(IOS,Android 和 Windows Mobile),Xamarin 是你唯一的选择。

  • .NET Framework

支持 Windows 和 Web 应用。现如今,你可以使用 Windows Forms, WPF, 和 UWP 来构建基于 .NET Framework 的 Windows 应用程序,ASP.NET MVC 用于构建基于 .NET Framework 的 Web 应用。

  • .NET Core

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

我该如何选择

如果你今天必须要在 .NET Framework 和 .NET Core 之间做出选择,这有一个原则,请记住,在未来一年左右的时间里,您可能根本不想选择.NET Framework。

到目前为止:

如果你:

  • 没有时间学习新技术;

  • 需要一个稳定舒适的工作环境;

  • 有更近的发布日程表;

  • 已经在为现有应用程序扩展功能;

  • 已经拥有一支具有 .NET 专业知识和为构建生产软件准备就绪的现有团队;

  • 不想处理持续的升级和更改;

  • 使用了 Windows Forms 或 WPF 构建了 Windows 客户端程序;

那么,.NET Framework 会是一个好的选择。

如果你:

  • 希望你的应用程序运行在 Windows, Linux, 和 Mac 操作系统上;

  • 不害怕学习新东西;

  • 不害怕在 DotNetCore 还不成熟的情况下遇到和解决问题;

  • 是一名刚开始学习 .NET 的学生;

  • 喜欢开源;

那么,.NET Core 会是更好的选择。

如下有一张表,希望帮到你:

High-performance and scalable system without UI.NET Core is much faster.
Docker containers supportBoth, but .NET Core is born to live in a container.
Heavily reply on command line.NET Core has better support.
Cross-platform needs.NET Core
Using MicroservicesBoth, but .NET Core is designed to keep today's needs in mind.
User interface centric Web applications.NET Framework is better now until .NET Core catches up.
Windows client applications using Windows Forms and WPF.NET Framework
Already have a pre-configured environment and systems.NET Framework is better.
Stable version for immediate need to build and deploy.NET Framework has a been around since 2001. .NET Core is just a baby.
Have existing experienced .NET team.NET Core has a learning curve.
Time is not a problem. Experiments are acceptable. No rush to deployment..NET Core is the future of .NET.

相关参考

  • 原文地址:
    Difference Between .NET Framework and .NET Core

原文地址:https://www.cnblogs.com/hippieZhou/p/10671326.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 
640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P6669 [清华集训2016] 组合数问题

P6669 [清华集训2016] 组合数问题 题意&#xff1a; 给你n&#xff0c;m&#xff0c;k&#xff0c;问有多少对(i,j)满足K∣CijK|C_{i}^{j}K∣Cij​ (Cij是k的倍数C_{i}^{j}是k的倍数Cij​是k的倍数) n,m<1e18 题解&#xff1a; n和m非常大&#xff0c;非常非常大&#x…

解决 VS2019 中.net core WPF 暂时无法使用 Designer 的临时方法

以下方法来自于微软github开源项目WPF:dotnet/samples - WPF Hello World sample with linked files&#xff0c;请放心使用。此篇文章是上篇文章解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法的姊妹篇&#xff0c;但对WPF而言实现起来比WinForms简单很多…

Building Fire Stations

题目链接 首先找到树的直径&#xff0c;直径左端点是a&#xff0c;直径右端点是b&#xff0c;中间的点是mid&#xff08;偶数的情况下mid可以看做两个&#xff09;&#xff0c;两点因该是左右分布&#xff1b; 假设两点都不在直径上&#xff0c;那么移到直径上的话距离更短&a…

.NET Core 迁移躺坑记

最近将自己负责的一个核心接口系统从.Net Framework迁移到了.Net Core。整体过程&#xff0c;从业务层面说一般般吧(整体还好但还是搞的业务有感&#xff0c;没出严重故障&#xff09;但是技术层面上感觉其实并没有达到要求&#xff0c;不过预期也是应该不会那么顺利&#xff0…

P4720 【模板】扩展卢卡斯定理/exLucas(无讲解,纯记录模板)

P4720 【模板】扩展卢卡斯定理/exLucas 题意&#xff1a; CnmmodpC_{n}^{m}\bmod pCnm​modp 对于 100% 的数据&#xff0c;1≤m≤n≤1018&#xff0c;2≤p≤106&#xff0c;不保证 p 是质数。 题解&#xff1a; 模板题&#xff0c;单纯写本文章记录板子 代码&#xff1a; …

[Abp vNext 源码分析] - 2. 模块系统的变化

一、简要说明本篇文章主要分析 Abp vNext 当中的模块系统&#xff0c;从类型构造层面上来看&#xff0c;Abp vNext 当中不再只是单纯的通过 AbpModuleManager 来管理其他的模块&#xff0c;它现在则是 IModuleManager 和 IModuleLoader 来协同工作&#xff0c;其他的代码逻辑并…

P3301 [SDOI2013]方程

P3301 [SDOI2013]方程 题意&#xff1a; 题解&#xff1a; 插板法介绍 首先要先讲组合数学的一个方法&#xff1a;插板法 问题引出&#xff1a;把10个球放进三个盒子&#xff0c;每个箱子至少一个有多少种分法&#xff1f; 10个球就有9个空隙&#xff0c;我们可以考虑在这个…

201912-3 化学方程式

他这个好像之和大写字母有关系&#xff1b; 小写字母跟着前面的的大写字母&#xff1b; 和代表要处理了&#xff1b; &#xff08;&#xff09;代表要乘了&#xff1b; #include<iostream> #include<cstdio> #include<algorithm> #include<cstring>…

.NET Framework 4.8发布

原文地址&#xff1a;https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/我们很高兴地宣布今天发布.NET Framework 4.8。它包含在Windows 10 May 2019更新中。.NET Framework 4.8也可在Windows 7和Windows Server 2008 R2 上使用。您可以从我们的 .NET下…

Deltix Round, Summer 2021 (open for everyone, rated, Div. 1 + Div. 2)

Deltix Round, Summer 2021 (open for everyone, rated, Div. 1 Div. 2) 题号题目知识点AA Variety of OperationsBTake Your Places!CCompressed Bracket SequenceDTake a GuessEEquilibriumFSports BettingGGates to Another WorldHDIY Tree

[NewLife.XCode]数据层缓存(网站性能翻10倍)

NewLife.XCode是一个有10多年历史的开源数据中间件&#xff0c;支持nfx/netcore&#xff0c;由新生命团队(2002~2019)开发完成并维护至今&#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析&#xff0c;蕴含多年开发经验于其中&#xff0c;代…

cf1556A. A Variety of Operations

cf1556A. A Variety of Operations 题意&#xff1a; 有两个数a&#xff0c;b一开始都是0&#xff0c;现在有三种操作&#xff1a; 给a和b都加ka加k&#xff0c;b减ka减k&#xff0c;b加k 问从a0&#xff0c;b0到ac&#xff0c;bd最少需要几步&#xff1f; 题解&#xff1a…

[NewLife.XCode]高级查询(化繁为简、分页提升性能)

NewLife.XCode是一个有10多年历史的开源数据中间件&#xff0c;支持nfx/netcore&#xff0c;由新生命团队(2002~2019)开发完成并维护至今&#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析&#xff0c;蕴含多年开发经验于其中&#xff0c;代…

cf1556B B. Take Your Places!

cf1556B B. Take Your Places! 题意&#xff1a; 有n个数&#xff0c;你可以将相邻两个数交换&#xff0c;使得奇偶性一样的数不相邻。问最少操作步数 题解&#xff1a; 最终排列无非是&#xff1a;奇&#xff0c;偶&#xff0c;奇…或者偶&#xff0c;奇&#xff0c;偶… …

微软云Azure训练营 | 八城联动,全球盛会

Global Azure Bootcamp是由微软发起、MVP参与组织的全球化学习交流活动。每年会挑选一个特定的时间&#xff0c;在同一天内&#xff0c;全球不同地区将同时开展。2019年全球Azure训练营&#xff08;Global Azure Bootcamp&#xff09;将于2019年4月27日在全球270多个城市同时举…

2021-09-211547G - How Many Paths?

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <set> using namespace std; typedef long long ll;const int N4e510,M1e610,mod998244353;int h[N],hs[N],e[M],ne[M],idx0; // h 原图 hs新图 v…

cf1556Compressed Bracket Sequence

cf1556Compressed Bracket Sequencex 题意&#xff1a; 给你n个数&#xff0c;奇数位置上的数表示左括号的数量&#xff0c;偶数位置上的数表示右括号的数量。问有多少个[l,r]是满足括号匹配的 题解&#xff1a; 括号匹配也算是经典问题了 直接统计不好计算&#xff0c;我们…

长沙4月21日开发者大会暨.NET社区成立大会活动纪实

活动总结2019年4月21日是一个斜风细雨、微风和煦的美好日子&#xff0c;由长沙.NET技术社区、腾讯云云加社区、微软Azure云技术社区、中国.NET技术社区、长沙柳枝行动、长沙互联网活动基地&#xff08;唐胡子俱乐部&#xff09;等多家单位共同主办的长沙开发者技术大会暨长沙.N…

树上启发式合并 简单例题

U41492 树上数颜色 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <set> #include <vector> #include <queue> using namespace std; typedef long long LL; typedef pair<int,int…

cf1556D. Take a Guess

cf1556D. Take a Guess 题意&#xff1a; 交互题 有n个数和k个询问&#xff0c;你最多只能询问2n次&#xff0c;可以询问任意两个位置数的or或者是and&#xff0c;然后输出这n个数的第k大数 题解&#xff1a; 先说个结论&#xff1a; x y (x or y) (x and y) (嘶&#x…