我正在制定一个定时循环流程,在某些情况下将在OnPrem上进行部署,而在其他情况下将在云中(Azure)进行部署。我正在研究Windows服务和Azure WebJob。鉴于我只需要定期执行流程即可,因此我考虑将库中的大部分逻辑包含在本地部署的Windows Service或WebJob的入口点之间的入口点不同的情况下。每个csproj(服务和WebJob)将只处理定时循环和配置设置,然后调用库进行大部分工作。
我的问题是:是否有另一种设计组合可供我使用,可以更好地满足这些要求?我已经读过有关将现有Windows服务包装在WebJob中的信息,但是鉴于我是从头开始的,因此我认为在这种情况下不需要这样做。
最佳答案
当要使您的通用代码保持最新状态,并知道哪个应用程序使用了哪个版本时,押注解决方案是创建具有尊重设计模式的类库项目并将其转换为nuget项目。
您知道可以托管自己的私有NuGet存储库,创建自己的程序包,并在自己的网络内部对其进行托管。
这是“如何从类库项目中创建Nuget包”的非常不错的文章。您可以利用它并在所有代码中共享它。
最后,您只需从Windows服务/ WebJob中调用即可。
让我知道您是否需要与设计解决方案有关的任何帮助。
希望能帮助到你。
关于c# - 在Windows Service和Azure WebJob之间利用单一代码库的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55578546/