。NET是否单独使用后端和WebAPI

问题描述 投票:0回答:2

我对.NET相当陌生,我需要做一个为消息提供Web界面的项目。

问题是:

  • 我应该将后端和WebAPI分开吗?

所以我应该为后端创建一个.NET Core控制台应用程序,为API创建一个.NET Core WebAPI,因此后端将与API通信以存储和读取DB。

OR

我是否应该创建一个同时包含(后端和API)的.NET Core WebAPI项目?

后端将执行后台任务(消息处理等)

如果我不分开(因此将所有内容都放在.NET Core WebAPI中,那么我应该如何创建可在应用程序运行的同时运行的后台线程?

((我不想使用HangFire或Quartz)

谢谢!

.net api structure asp.net-core-webapi
2个回答
0
投票

我认为,由于用例差异太多,因此您应该将项目分开。

例如,API端点通常被设计为从端点传递数据负载,而来自Web应用程序的相同数据访问很可能会受到更多的限制和过滤。同样,您虽然很可能具有用于api(JWT令牌f.e.)或Web应用程序后端(基本用户身份验证)的不同授权概念。

如果分开服务,进一步的开发和维护也将容易得多,因为您总是可以保证彼此之间没有依赖关系。

您还具有更多的可重用性,因为您既可以提供这两种服务,也可以只提供其中一种。


0
投票

我想,大多数人会建议您将它们分开,因为它与基于微服务的流行方法一致,并在将来为您提供了更好的灵活性。

但是,在某些情况下,您可以将单个WebAPI项目与其他IHostedService一起使用来处理消息和执行其他后台工作。请看this article for more info on IHostedService / BackgroundService。如果API和消息传递服务的逻辑非常相似,或者一个逻辑只是另一个的小部分,我将采用这种方式。

© www.soinside.com 2019 - 2024. All rights reserved.