最近在学习ABP框架,其中有些项目模板是基于.NET Core的,而且大家都说 .NET Core 是趋势,那我顺便学习一下吧。
首先认识一下.NET Core。 MSDN说 ASP.NET Core是一个跨平台,高性能,开放源代码框架,用于构建现代的,基于云的,Internet连接的应用程序。
.NET Core 的优势:
- 能够在Windows,macOS和Linux上开发和运行。(最大的特点之一,跨平台,以前EF和Windows捆绑在一起,动不动就微软全家桶)。
- 开源和以社区为中心。(最大的特点之二,开源了,之前EF闭源是被不少开发者诟病的,作为一名优秀的开发者,不让我看源码怎么行(阴险的笑))。
- 并排版本控制。(以前EF我们只能选择 4.0 or 4.6 现在Core我们可以选择 2.0 and 3.0了)
- 支持使用gRPC托管远程过程调用(RPC)服务 (一款与语言无关的高性能远程过程调用(RPC)框架)。
- 一个基于云的,基于环境的配置系统。(Azure云)
- 内置依赖项注入(Ioc 附一篇讲解依赖注入的链接 https://www.cnblogs.com/jhli/p/6019895.html )。
- 轻量级,高性能和模块化HTTP请求管道。(比EF性能更高)
- Razor Pages使对以页面为中心的方案进行编码变得更容易和更有效率。
- Blazor允许您在JavaScript中与浏览器一起使用C#。共享全部用.NET编写的服务器端和客户端应用程序逻辑。(Blazor是与Angular,React和Bootstrap同级别的一款使用.NET构建交互式客户端Web UI的框架)
- 构建Web应用程序和服务,IoT(物联网)应用程序和移动后端。
- 能够托管在以下平台:
- Kestrel
- IIS
- HTTP.sys
- Nginx
- Apache
- Docker
ASP.NET 4.x和ASP.NET Core对比(构建Web应用程序)
构建.NET Core和.NET Framework的服务器应用程序对比
在以下情况下,将.NET Core用于服务器应用程序:
- 您有跨平台的需求。
- 您正在针对微服务(Azure Service Fabric专为大型和复杂的微服务系统而设计。Azure应用服务是无状态微服务的理想选择。)。
- 您正在使用Docker容器(基于Docker的微服务替代品适合任何类型的微服务方法)。
- 您需要高性能和可扩展的系统。
- 每个应用程序需要并行的.NET版本。
在以下情况下,将.NET Framework用于服务器应用程序:
- 您的应用程序当前使用.NET Framework(建议扩展而不是迁移)。
- 您的应用程序使用第三方.NET库或NuNET程序包不适用于.NET Core。
- 您的应用使用了.NET Core无法使用的.NET技术。
- 您的应用程序使用的平台不支持.NET Core。Windows,macOS和Linux支持.NET Core。
当然还是根据实际需要选择合适的框架。