.NET Framework VS .NET Core
本文对应的原文来至 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 生态架构图。
正如你看到的那样,.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 support | Both, 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 Microservices | Both, 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. |
相关参考#
作者:hippiezhou
出处:https://www.cnblogs.com/hippieZhou/p/10671326.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
Find Anyway
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?