Этот пост был переведён автоматически. Оригинальная версия доступна здесь.
Aspire 13.2 вышел с двумя новыми интеграциями баз данных, которые заслуживают внимания: MongoDB Entity Framework Core и Azure Data Lake Storage. Если вы хотели использовать EF Core с MongoDB в приложении Aspire или вам нужно было подключить рабочие нагрузки Data Lake с обнаружением сервисов, этот релиз предоставляет и то, и другое.
MongoDB встречает EF Core в Aspire
Это интеграция, которая радует меня больше всего. Aspire поддерживал MongoDB уже давно, но это всегда был сырой драйвер — никакого EF Core, никакого DbContext, никаких LINQ-запросов к документам. Теперь вы получаете полноценный EF Core с MongoDB, плюс автоматические проверки работоспособности и обнаружение сервисов от Aspire.
Настройка следует типичному паттерну Aspire. В вашем AppHost:
var mongodb = builder.AddMongoDB("mongodb")
.WithDataVolume()
.WithLifetime(ContainerLifetime.Persistent);
var apiService = builder.AddProject<Projects.ApiService>("api")
.WithReference(mongodb);
Затем в потребляющем проекте добавьте интеграцию EF Core:
dotnet add package Aspire.MongoDB.EntityFrameworkCore
И зарегистрируйте свой DbContext:
builder.AddMongoDbContext<MyDbContext>("mongodb", "mydb");
Дальше — стандартный EF Core. Определяйте сущности, используйте DbContext как с любым другим провайдером. Интеграция берёт на себя пул соединений, трассировки OpenTelemetry и проверки работоспособности за кулисами.
Для .NET-разработчиков, которые использовали MongoDB с сырым драйвером и вручную настраивали строки подключения, это приятное улучшение качества жизни. Вы получаете полную абстракцию EF Core, не теряя обнаружение сервисов Aspire.
Azure Data Lake Storage присоединяется
Второе крупное дополнение — интеграция Azure Data Lake Storage (ADLS). Если вы строите конвейеры данных, ETL-процессы или аналитические платформы, теперь можно подключать ресурсы Data Lake так же, как любую другую зависимость Aspire.
В AppHost:
var storage = builder.AddAzureStorage("azure-storage");
var dataLake = storage.AddDataLake("data-lake");
var fileSystem = storage.AddDataLakeFileSystem("data-lake-file-system");
var analyticsService = builder.AddProject<Projects.AnalyticsService>("analytics")
.WithReference(dataLake)
.WithReference(fileSystem);
В потребляющем проекте:
builder.AddAzureDataLakeServiceClient("data-lake");
builder.AddAzureDataLakeFileSystemClient("data-lake-file-system");
Никакого ручного управления строками подключения, никакой охоты за учётными данными. Aspire выделяет ресурсы и внедряет их. Для тех из нас, кто строит облачно-нативные .NET-приложения, работающие как с операционными данными, так и с аналитическими нагрузками, Data Lake теперь ощущается как полноценный участник модели Aspire.
Маленькие исправления, которые важны
Помимо основных функций, есть несколько улучшений, которые стоит отметить:
- Исправление строки подключения MongoDB — косая черта перед именем базы данных теперь обрабатывается корректно. Если у вас был обходной путь, можете его убрать
- Экспорт SQL Server —
Aspire.Hosting.SqlServerтеперь экспортирует дополнительные параметры конфигурации сервера для более тонкого контроля - Обновления эмуляторов — эмулятор ServiceBus 2.0.0, эмулятор App Configuration 1.0.2, предварительный эмулятор CosmosDB теперь включает проверку готовности
- Azure Managed Redis — теперь по умолчанию использует
rediss://(Redis Secure), так что соединения шифруются из коробки
Последний пункт тонкий, но важный — шифрованный Redis по умолчанию означает на одну настройку меньше в продакшене.
Подводя итоги
Aspire 13.2 — инкрементальный релиз, но интеграции MongoDB EF Core и Data Lake заполняют реальные пробелы. Если вы ждали нормальную поддержку EF Core для MongoDB в Aspire или вам нужен Data Lake как полноценная зависимость, обновитесь до 13.2 и попробуйте. Команда aspire add создаст всё необходимое.
Читайте полные примечания к релизу для подробностей и загляните в галерею интеграций для полного списка.
