Springboot 与 .net core webapi 实用性对比

一. 前言

最近在做京东联盟、淘宝联盟等返利电商的对接,京东联盟仅有java sdk,而我更希望使用.net core。

我初步有几个解决方案:
1.把京东联盟的原始请求封装到.net,但是电商的Model是十分复杂的,在序列反序列的过程中可能遭遇出乎意料又在情理之中的问题。
2.java作为中转站,借助webservice、grpc、openapi等等,连接到.net core。
3.放弃.net core,使用springboot。

二、探究

第一个方案是下策,我并不想尝试。
第二个方案,我尝试过openapi,在Model的转换过程中,存在缺陷,所以淘汰;webservice是可行的,但是经过一段时间的开发,确实有些力不从心,需要对两套代码部署、维护,这也不是好的解决方案。
我最终选择了第三个方案,因为我的业务主体就是京东联盟的对接。

三、对比

- Spring Boot .Net Core WebApi 备注
IDE Idea、eclipse,尤其前者虽然已经很强大,但是不够友好 Visual Studio 官方维护 开发体验较好
持久层 mybatis(plus) 、jpa 算是可以满足需求 EntityFramework 似乎更强大一些
OpenApi生态 springfox-swagger2基于openapi2,多年不维护; Springdoc OpenAPI UI 这个算是比较好的替代品 Nswag 生态较好 Nswag可将openapi的json代码转换为前端基于fetch、axios的ts代码,Model类型也会同步,提高前后一致性、提高开发效率。Springdoc OpenAPI UI可跟Nswag配合。
pipeline 阿里云效支持Java一键部署(最高支持jdk1.8) azure devops pipeline(收费) 阿里相对azure更易懂一些,但实际上azure devops比较成熟,阿里云效有大量java部署经验,而azure则是以微软的.net为重
语言本身生态 目前java14已经发布,但据我所知大量开发者停留在java8(云效pipeline也只支持到java8) 由于IDE的支持,C#版本用户使用率是较高的

三、结论

综上所述,抛开业务需求,.Net Core对我来说确实是更好的选择,但是Spring Boot可以在满足需求的情况下快速实现京东联盟的接入,所以我选择了SpringBoot。

你可能感兴趣的:(SpringBoot,C#)