为什么我要推荐你使用Core WebApi?

简介: 为什么我要推荐你使用Core WebApi?

2020年了,放眼望去,单体架构已经渐行渐远,分布式架构大行其道,微服务更是如火如荼。作为分布式实施的基础,跨进程通信的技术也是五花八门,为什么Core WebApi越来越火,被众多大牛们一直推荐?小编这就为你一一解答!

3种跨进程交互方式

01

基于第三方存储共享的通讯

基于第三方存储共享的通讯,数据库/Redis/队列等,特点是被动通讯,满足及时性要求低的场景。

02

基于Http协议的服务

如WebService、WCF、WebApi,甚至还有ashx一般处理程序,使用最广泛。

03 远程调用模式

远程调用模式,包括FX下的RPC和.NetCore下的gRPC,有使用限制和优异的性能。大部分的开发者和项目选型中,第二类是最为广泛的。下文对gRPC和WebApi有细致比对。

.Net下的服务选型

细想后我们不难发现,从最初的WebService一统江山,到.NetFramework3.0推出的集大成者WCF,却在4.0的时候被更轻巧的WebApi所打败。更好的REST风格支持(WCF也可以但很麻烦),对移动端的友好支持等,甚至跟MVC同一个开发技术栈,这些理由很充分的让技术团队都倾向于使用WebApi。

image.png

Core WebApi的变化

WebApi刚出来时,大家都非常兴奋,终于有原生的RESTful API了,但实践中却发现太多槽点,跟MVC框架同项目不同管道,鉴权授权参数绑定也很不友好,让学习者苦不堪言。然而,这个在Core WebApi得到了转变,和Asp.NetCore管道的统一,让大家开发和学习成本都降低了,再加上跨平台的优势,和全新中间件模式加成,毫不客气地说,CoreWebApi已经成为当下服务的首选。

image.png

Core WebApi VS gRPC

这两个是目前.Net Core下最热门的分布式通信方式了, gRPC是client/server模式通信的,支持流式通信,性能更高一些,相对的使用场景和实施成本也会高一些,REST的通用性更强,像典型的前后端分离架构,当下各公众平台对外数据提供,都是选择的REST接口,包括在微服务架构实施上,Core WebApi使用还是更广泛一些。

image.png

4天学好Core WebApi

DAY1

上手实践,宇宙第一IDE轻松建项目就能运行,然后把swagger啊,log4net啥配置起来,先感受下,当然,进阶点的可以用Nginx来组集群负载均衡搭建,好好体会下REST的无状态。

DAY2

内置IOC容器和middleware翻翻源码理解一下,知道请求是怎么处理怎么流转的,后面功能开发时才心里有底(面试也轻松)。

DAY3

各种Filter扩展定制,像异常处理、鉴权授权、跨域、缓存压缩等常见功能,都是基于Filter的AOP实现的,必须得扎实下。

DAY4

最后是框架组件整合了,搭建一套快速开发框架,整合下EFCore,autofac等,把JWT,数据格式定好,基本就万事大吉了。



相关文章
|
编解码 JavaScript 前端开发
WebApi入门第一章(WebApi介绍)
WebApi入门第一章(WebApi介绍)
314 0
WebApi入门第一章(WebApi介绍)
WebApi下做项目配置
WebApi下做项目配置
102 0
|
缓存 API 网络架构
WebAPI简介
有三个核心:资源(resource),URL(统一资源标识符)和表示
341 0
WebAPI简介
|
开发框架 .NET
关于Asp.net core配置信息读取的源码分析梳理
我们都知道asp.net core配置信息的读取离不开IConfigurationSource和IConfigurationProvider这两个类,ConfigurationSource可以提供一个ConfigurationProvider,然后去读取信息。究竟他们之间有着怎样的千丝万缕,我们一起来看看源码。
129 0
关于Asp.net core配置信息读取的源码分析梳理
2017-5-29学习记录——WebApi(1)
曾经我一直认为Web服务器的Api使用ashx或ASP.NET MVC中返回JsonResult来实现的。 当我第一次接触WCF的时候,有同学告诉我目前比较流行WebApi和WebSocket了,于是我还担心着我怎么总在学不咋用了的技术哟。
1054 1
|
Web App开发 .NET
学习ASP.NET Core Razor 编程系列十五——文件上传功能(三)
原文:学习ASP.NET Core Razor 编程系列十五——文件上传功能(三) 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.
1427 0
|
Web App开发 .NET 数据库
学习ASP.NET Core Razor 编程系列十四——文件上传功能(二)
原文:学习ASP.NET Core Razor 编程系列十四——文件上传功能(二) 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.
1143 0
|
前端开发 JavaScript .NET
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--目录(8/8 完结)
为什么要做这个 在使用nodejs开发过程中,总是发现需要做很多重复性的体力劳动,且因为自身是服务端程序员出身,感觉有一些服务端好的东西其实可以在nodejs上得到应用并能提高一些开发工作效率。 本系列文章将介绍对express框架的一些扩展,来达到部分后台框架一样的特性功能。
1099 0
|
XML JSON 移动开发
【WebAPI No.5】Core WebAPI中的自定义格式化
介绍 Web API为JSON和XML提供媒体类型格式化程序。框架默认将这些格式化程序插入管道中。客户端可以在HTTP请求的Accept标头中请求JSON或XML. 格式化数据这个东西,其实没有什么最好的数据,要看各种场景,最适合才是最好的,不是说json就比xml好,容易解析什么的等。
2467 0