本文对应的原文来至 c-sharpcorner 的一篇文章,文末有连接。若有错误,还请指正。浏览器
你会为你的下一个应用程序选择哪种开发平台 - .NET Framework 或者 .NET Core?在这篇文章中,让咱们比较一下这两个开发平台的特色,看可否得出一个结论。架构
若是你是一位传统的 .NET 开发者,但愿快速构建和发布应用,没有时间学习.NET Core,那么 .NET Framework 对你来讲是一个不错的选择,.NET Core 可能会有一些学习曲线。app
若是你目前主要是维护和更新现有 .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 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 Framework, .NET Core, 和 Xamarin。
毋庸置疑,当你想经过 C# 来构建移动应用(IOS,Android 和 Windows Mobile),Xamarin 是你惟一的选择。
支持 Windows 和 Web 应用。现现在,你可使用 Windows Forms, WPF, 和 UWP 来构建基于 .NET Framework 的 Windows 应用程序,ASP.NET MVC 用于构建基于 .NET Framework 的 Web 应用。
是最新的开源跨平台框架,用于构建包括 Windows, Mac 和 Linux 操做系统在内的应用程序。.NET Core 仅支持 UWP和 ASP.NET Core。 UWP用于构建 Windows10 目标Windows和移动应用程序。 ASP.NET Core用于构建基于浏览器的 Web 应用程序。
若是你今天必需要在 .NET Framework 和 .NET Core 之间作出选择,这有一个原则,请记住,在将来一年左右的时间里,您可能根本不想选择.NET Framework。
到目前为止:
若是你:
那么,.NET Framework 会是一个好的选择。
若是你:
那么,.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. |