Способы использования единой базы кода между службой Windows и Azure WebJob

#c# #azure #windows-services #webjob

#c# #azure #windows-services #webjob

Вопрос:

Я работаю над временным повторяющимся процессом, который в некоторых случаях будет развернут заранее, а в других случаях развернут в облаке (Azure). Я изучаю службу Windows и Azure WebJob. Учитывая, что мне нужен только повторяющийся процесс, который должен быть синхронизирован, я думаю о том, чтобы основная часть логики находилась в библиотеке, только точки входа различались между службой Windows для локального развертывания или WebJob при развертывании в Azure. Каждый csproj (service и WebJob) будет обрабатывать только синхронизированный цикл и параметры конфигурации, а затем вызывать библиотеку для выполнения основной части работы.

Мой вопрос: есть ли у меня другая комбинация дизайна, доступная для меня, которая потенциально лучше соответствовала бы этим требованиям? Я читал о том, как обернуть существующую службу Windows в WebJob, но я не думаю, что в этом случае это было бы необходимо, учитывая, что я начинаю с нуля.

Ответ №1:

Когда дело доходит до поддержания вашего общего кода в актуальном состоянии и определения того, какие версии используются в каких приложениях, лучшим решением является создание проекта библиотеки классов с соответствующим шаблоном проектирования и преобразование его в проект nuget.

вы знаете, что можете разместить свой собственный частный репозиторий NuGet, создавать свои собственные пакеты и размещать их внутри собственной сети.

введите описание изображения здесь

Вот очень хорошая статья «Как создать пакет Nuget из вашего проекта библиотеки классов». Вы можете использовать его и использовать его во всем своем коде.

И, наконец, вы можете просто вызвать его из своей службы Windows / WebJob.

Дайте мне знать, если вам нужна какая-либо помощь, связанная с разработкой решения.

Надеюсь, это поможет.

Комментарии:

1. Похоже, вы согласны с моим подходом с добавлением создания общей библиотеки кода в виде пакета NuGet, что имеет полный смысл. Спасибо!

2. Да, я полностью согласен с этим. Пожалуйста, примите это как ответ, поскольку это поможет другим, у кого такой же вопрос. Также дайте мне знать, если вам понадобится дополнительная помощь в разработке.