#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. Да, я полностью согласен с этим. Пожалуйста, примите это как ответ, поскольку это поможет другим, у кого такой же вопрос. Также дайте мне знать, если вам понадобится дополнительная помощь в разработке.