Должны ли мы использовать библиотеку Microsoft.Azure.EventHubs.Processor с платформой.NET
контекст
В настоящее время мы используем https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.EventProcessorHost/ для загрузки данных из концентратора событий Azure. Мы работаем на .NET Framework, а не .NET Core.
В этом объявлении Microsoft (опубликованном 2 февраля 2017 г.) предполагается, что более новый https://www.nuget.org/packages/Microsoft.Azure.EventHubs.Processor - это путь в будущее, независимо от используемой среды выполнения.NET, поскольку они будут поддерживать единую базу кода.
Между тем, обновленные в последнее время официальные образцы Microsoft Event-Hub по- прежнему предлагают более старую библиотеку (Microsoft.Azure.ServiceBus.EventProcessorHost) для платформы.NET.
Обе библиотеки были обновлены и усовершенствованы с момента анонса.
Вопрос
Поскольку мы находимся на платформе.NET, какую библиотеку нам следует использовать в дальнейшем?
Должны ли мы перейти на более новый Microsoft.Azure.EventHubs.Processor, чтобы воспользоваться последними разработками, улучшениями и исправлениями ошибок? Или старый идет в ногу со скоростью?
Этот вопрос также актуален для новичков: какую библиотеку им выбрать, чтобы начать работу с концентраторами событий Azure.
2 ответа
Я могу быть неравнодушным в своем ответе, но я бы предпочел более новый Microsoft.Azure.EventHubs
библиотека. Это по следующим причинам:
- Это с открытым исходным кодом. Вы можете увидеть план, текущие проблемы, зарегистрировать свои собственные проблемы, и, если вам это нужно, у вас есть доступ к коду с лицензией MIT.
- Он использует.NET Standard. Если ваше решение когда-либо изменится на.NET Core или любую другую среду выполнения.NET, вы можете продолжать использовать код концентраторов событий.
- Это библиотека, которую Microsoft будет подчеркивать в будущем. Хотя это мое предположение, вот почему я думаю, что:
- Примеры начала работы с docs.microsoft.com используют новую библиотеку. https://docs.microsoft.com/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send
- Microsoft увидела преимущества разработки с открытым исходным кодом, и почти все их библиотеки Azure открыты. т. е. Service Fabric также вышла с открытым исходным кодом: https://blogs.msdn.microsoft.com/azureservicefabric/2018/03/14/service-fabric-is-going-open-source/
- Более новая библиотека была создана с намерением заменить старую библиотеку. Хотя Microsoft очень хорошо поддерживает старые / устаревшие библиотеки, конечной целью было заменить более старую библиотеку. https://azure.microsoft.com/blog/event-hubs-dotnet-standard-client-reaches-ga/
Добавим немного контекста, чтобы модернизировать это руководство, поскольку с тех пор Microsoft запустила новую инициативу в отношении пакетов Azure SDK, которая включает новую клиентскую библиотеку концентраторов событий. Для новой разработки мы рекомендуем использовать семейство пакетов и
Azure.[[ AREA ]].[[ SERVICE ]]
пакеты для работы с другими службами Azure.
— это клиентская библиотека концентраторов событий текущего поколения, которая будет центром разработки, а улучшения и новые функции будут регулярно выпускаться. Он поддерживает
netstandard2.0
платформу, что позволяет использовать ее с широким спектром хост-сред, включая .NET 5, .NET Core и полную .NET Framework. Библиотека сохраняет паритет функций высокого уровня с предыдущим поколением,
Microsoft.Azure.EventHubs
, но с более дискретной иерархией клиентов и улучшенным API.
Библиотека является частью инициативы по улучшению процесса разработки в службах Azure. С этой целью он следует набору единых рекомендаций по проектированию , предназначенных для обеспечения согласованного взаимодействия между языками разработки и использования установленных шаблонов API для всех служб Azure. Библиотека также следует набору рекомендаций, специфичных для .NET, чтобы убедиться, что пакет SDK для .NET имеет естественный и идиоматический вид, отражающий внешний вид библиотек базовых классов .NET.
Библиотека также предоставляет возможность поделиться некоторыми межсервисными улучшениями, внесенными в опыт разработки Azure, такими как унифицированный конвейер диагностики, предлагающий общее представление действий в каждой из клиентских библиотек. Еще одно ключевое улучшение — оптимизированный и упрощенный процесс проверки подлинности с использованием новой библиотеки Azure.Identity для обмена учетными данными между клиентами для разных служб Azure.
Хотя мы считаем, что внедрение современной версии клиентской библиотеки концентраторов событий дает значительные преимущества, важно помнить, что устаревшие версии официально не объявлены устаревшими. Они будут по-прежнему поддерживаться безопасностью и исправлениями ошибок. Однако маловероятно, что новые функции будут добавлены, и нет гарантии паритета функций между современной и устаревшей версиями в будущем.
Больше информации о
Azure.Messaging.EventHubs
библиотека доступна в Azure.Messaging.EventHubsREADME и [примерах)[https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/eventhub/Azure.Messaging.EventHubs/samples). Существует также руководство по миграции , которое поможет выполнить обновление с устаревших версий.