У нас есть несколько приложений .NET 6 и фоновых рабочих процессов, которые размещаются в приложениях-контейнерах Azure.
Сегодня они созданы на базе .NET 6.0.
Можно ли использовать Aspire для их оркестрации?
ДА, ВЫ МОЖЕТЕ до определенного момента. Вы даже можете использовать его с Python, Java и т. д., если зарегистрируете службы. Однако вам придется выполнить некоторые настройки вручную. Панель мониторинга можно использовать в качестве цели для любого приложения, отправляющего данные OpenTelemetry.
Проект оркестровки особенный. Целевая структура проекта оркестрации не влияет на то, что он может оркестровать. Это означает, что вы можете запустить приложение .NET 6/7/8. Как уже говорили другие, для получения полного набора функций Aspire требуется .NET 8+. Пакеты Aspire.* зависят от функций .NET 8, позволяющих получить полный комплексный опыт работы, включая телеметрию, устойчивость и т. д.
Обновление с .NET 6 до 8 должно быть простым.
Вероятно, вам следует объяснить, какие функции отсутствуют. Если я зарегистрирую службу FastAPI (с правильной конфигурацией OTEL), что я упущу, помимо ручной настройки?
И даже в .NET 8 ASP.NET Core OData не будет работать из-за способа использования HttpClient.
Что значит «не получится»?
В OData.NET есть открытая проблема по этому поводу, возможно, она будет исправлена только в следующей версии. Библиотека внедряет экземпляры HttpClientHandler вместо HttpClient или использует HttpClientFactory, поэтому она никогда не видит регистрации Aspire. Вы можете создать API OData, но другие проекты его не увидят. Попытка использовать Aspire с OData была первой, что я попробовал после первых игрушечных проектов, поскольку 3 года назад я создал сайт отчетов, размещенный на Blazor, используя OData в качестве API. Не в первый раз я думаю, что мне, вероятно, стоит переписать с помощью GraphQL/HotChocolate....
PS: в документации компонента базы данных, вероятно, должно быть показано, как указывать пароли базы данных. Новым пользователям легко запутаться
нет, это не так, ASPIRE предназначен для .net 8, так почему бы не заменить .net 6 на .net 8 и попробовать