我对.NET相当陌生,我需要做一个为消息提供web接口的项目。
问题是:
因此,我应该为后端创建一个核心控制台应用程序,为.NET创建一个.NET核心WebAPI,这样后端将与API通信以存储和读取DB.。
或
我应该创建一个同时包含.NET核心WebAPI项目(后端和API)吗?
后端将执行后台任务(消息处理等)。
如果我没有分离(所以把所有内容都放在.NET核心WebAPI中),我应该如何创建后台线程,以便在应用程序运行时运行?
(我不想使用HangFire或Quartz)
谢谢!
发布于 2019-11-19 08:41:47
在我看来,您应该将项目分开,因为用例有很多不同之处。
例如,API端点通常用于从端点传递大量数据,而来自web应用程序的相同数据访问很可能会受到更大的限制和过滤。另外,您很可能对api有不同的授权概念(JWT令牌F.E)。或web应用程序后端(基本用户身份验证)。
如果将服务分开,那么进一步的开发和维护就会容易得多,这也是因为您总是可以在彼此之间不存在依赖关系。
您也有更多的可重用性,因为您可以同时提供两种服务,或者只能同时提供其中一种服务。
发布于 2019-11-19 09:07:43
我想,大多数人会建议你保持这些独立,因为它符合流行的基于微服务的方法,并在未来给你更好的灵活性。
但是,在某些情况下,您可以使用一个带有附加WebAPI的IHostedService项目来处理消息和执行其他后台工作。请看一下有关IHostedService / BackgroundService的更多信息,请参阅本文。如果API和消息传递服务的逻辑非常相似,或者其中一个只是对另一个服务的小添加,我就会这样做。
后者的一个简单示例是一个用例,当对端点的调用触发一些长时间运行的操作时,然后在队列完成时发送一条消息。您可能需要将它们分开,以防您计划将它们分开缩放。
https://stackoverflow.com/questions/58928771
复制相似问题