Упражнение. Создание проекта .NET Aspire

Завершено

Прежде чем приступить к работе с новой службой для последнего проекта вашей компании, необходимо проверить наличие всех необходимых компонентов для .NET Aspire. Лучшим способом проверки является создание нового проекта .NET Aspire с помощью начального шаблона.

В упражнении вы установите все необходимые компоненты, а затем создадите новое приложение .NET Aspire Starter. Затем вы увидите, как добавить компонент кэширования с помощью Redis в приложение. Наконец, вы протестируете приложение и быстро изучите панель мониторинга Aspire.

Выберите эту вкладку, чтобы просмотреть действия, описанные в этом упражнении для Visual Studio.

Установка необходимых компонентов

Мы обсудили предварительные требования в предыдущем уроке. Давайте рассмотрим установку.

Установка .NET 8

Следуйте этой ссылке .NET 8 и выберите правильный установщик операционной системы. Например, если вы используете Windows 11 и современный процессор, выберите пакет SDK x64 .NET 8 для Windows.

После завершения скачивания запустите установщик и следуйте инструкциям. В окне терминала выполните следующую команду, чтобы убедиться, что установка выполнена успешно:

dotnet --version

Вы увидите номер версии установленного пакета SDK для .NET. Например:

8.0.300-preview.24203.14

Установка Предварительной версии Visual Studio 2022

Перейдите по этой ссылке предварительной версии Visual Studio 2022 и выберите "Скачать предварительную версию". После завершения скачивания запустите установщик и следуйте инструкциям.

Установка Docker Desktop

Следуйте этой ссылке Docker Desktop и выберите правильный установщик операционной системы. После завершения скачивания запустите установщик и следуйте инструкциям.

Откройте классическое приложение Docker и примите соглашение об обслуживании.

Установка рабочей нагрузки .NET Aspire

Установите рабочую нагрузку .NET Aspire с помощью Visual Studio:

  1. Откройте Установщик Visual Studio.

  2. Выберите " Изменить " рядом с Visual Studio.

  3. Выберите рабочую нагрузку ASP.NET и веб-разработки .

  4. На панели сведений об установке выберите пакет SDK для .NET Aspire (предварительная версия).

  5. Выберите "Изменить", чтобы установить компонент .NET Aspire.

  6. Убедитесь, что установлена последняя версия .NET Aspire, в новом терминале выполните следующую команду:

    dotnet workload list
    

После установки рабочей нагрузки вы увидите:

Installed Workload Id      Manifest Version      Installation Source
---------------------------------------------------------------------------------------------
aspire                     8.0.0/8.0.100         SDK 8.0.300-preview.24203, VS 17.10.34902.84

Use `dotnet workload search` to find additional workloads to install.

Создание нового приложения .NET Aspire Starter

Теперь, когда установлены предварительные требования, создадим новое приложение.

  1. Откройте Visual Studio. В диалоговом окне выберите "Создать проект".

  2. В поле "Поиск шаблонов" введите aspire.

  3. Выберите начальное приложение .NET Aspire и нажмите кнопку "Далее".

  4. В поле "Имя решения" введите AspireTestApp.

  5. В поле "Расположение" введите папку, в которой нужно создать новое приложение.

  6. Выберите Далее.

  7. Оставьте значение по умолчанию .NET 8.0 (долгосрочная поддержка).

  8. Снимите флажок Использовать Redis для кэширования (требуется поддерживаемая среда выполнения контейнера).

    Вы вручную добавите поддержку Redis в следующих шагах.

  9. Нажмите кнопку создания.

  10. В меню выберите "Отладка", а затем нажмите кнопку "Начать отладку " (кроме того, нажмите клавишу F5).

  11. Если появится запрос на запуск подсистемы Docker, нажмите кнопку "Да".

Панель мониторинга откроется в веб-браузере по умолчанию.

Снимок экрана: панель мониторинга Aspire с службами приложений Blazor и API.

Выберите URL-адрес конечной точки веб-frontend . Порт назначается случайным образом, поэтому панель мониторинга может не совпадать.

Снимок экрана: интерфейс веб-приложения Blazor.

Приложение Blazor имеет простую страницу счетчика и страницу погоды, которая вызывает серверную службу API для получения прогнозируемых данных для отображения.

Закройте вкладки браузера для приложения Blazor и панели мониторинга .NET Aspire. В Visual Studio остановите отладку.

Добавление компонента кэширования в проект .NET Aspire

Теперь добавим компонент кэширования Redis в проект .NET Aspire. Начнем с узла приложения:

  1. В Обозреватель решений щелкните правой кнопкой мыши проект AspireTestApp.AppHost и выберите "Управление пакетами NuGet".
  2. Щелкните вкладку Обзор и выберите Включить предварительные выпуски.
  3. Найдите нужный redis и выберите пакет Aspire.Hosting.Redis.
  4. В правой области для версии выберите последнюю версию 8.0.0 и нажмите кнопку "Установить".
  5. В диалоговом окне "Принятие лицензии" нажмите кнопку "Принять".
  1. Чтобы добавить конфигурацию Redis в проект узла приложения, откройте файл AspireTestApp.AppHost/Program.cs и добавьте следующий код:

    // Add Redis
    var redis = builder.AddRedis("cache");
    

    Этот код настраивает оркестрацию для создания локального экземпляра контейнера Redis.

  2. Измените текущую службу веб-интерфейсов , чтобы использовать кэш Redis. Измените этот код:

    builder.AddProject<Projects.AspireTestApp_Web>("webfrontend")
        .WithExternalHttpEndpoints()
        .WithReference(apiService);
    

    На этот код:

    builder.AddProject<Projects.AspireTestApp_Web>("webfrontend")
        .WithExternalHttpEndpoints()
        .WithReference(apiService)
        .WithReference(redis);
    

    Метод WithReference расширения настраивает пользовательский интерфейс для автоматического использования Redis для кэширования выходных данных.

    Затем мы можем использовать Redis в используемом проекте.

  1. В Обозреватель решений щелкните правой кнопкой мыши проект AspireTestApp.Web и выберите пункт "Управление пакетами NuGet".
  2. Щелкните вкладку Обзор и выберите Включить предварительные выпуски.
  3. Найдите нужный redis и выберите пакет Aspire.StackExchange.Redis.OutputCaching.
  4. В правой области для версии выберите последнюю версию 8.0.0 и нажмите кнопку "Установить".
  5. В диалоговом окне "Принятие лицензии" нажмите кнопку "Принять".

Теперь используйте Visual Studio для добавления кода для использования компонента Redis.

  1. Если вам нужно, откройте решение AspireTestApp в Visual Studio.

  2. В Обозреватель решений в проекте AspireTestApp.Web выберите Program.cs.

  3. Добавьте этот код в var builder = WebApplication.CreateBuilder(args);:

    // Add Redis caching
    builder.AddRedisOutputCache("cache");
    

    Этот код выполняет следующие действия.

    • Настраивает кэширование выходных данных ASP.NET Core для использования экземпляра Redis с указанным именем подключения.
    • Автоматически включает соответствующие проверки работоспособности, ведение журнала и телеметрию.
  4. Замените содержимое AspireTestApp.Web/Components/Pages/Home.razor следующим кодом:

    @page "/"
    @attribute [OutputCache(Duration = 10)]
    
    <PageTitle>Home</PageTitle>
    
    <h1>Hello, world!</h1>
    
    Welcome to your new app on @DateTime.Now
    

    В приведенном выше коде OutputCache атрибут задает 10-секундную длительность. После кэширования страницы каждый последующий запрос в 10-секундном окне получает кэшированные выходные данные.

Вы можете увидеть, что Aspire предназначен для упрощения добавления новых компонентов в приложение. Вы добавите новый компонент в приложение, добавив пакет NuGet, а затем добавьте несколько строк кода в файл Program.cs в проектах Web и AppHost . Затем Приложение Aspire автоматически настраивает контейнер Redis и кэширование выходных данных.

Тестирование приложения

Теперь давайте запустите приложение, чтобы увидеть кэширование в действии. В Visual Studio:

  1. В меню выберите "Отладка", а затем нажмите кнопку "Начать отладку " (кроме того, нажмите клавишу F5). Решение создается и панель мониторинга Aspire открывается в веб-браузере по умолчанию.

  2. Выберите URL-адрес конечной точки для службы веб-интерфейсов, чтобы просмотреть домашнюю страницу приложения.

  3. В браузере обновите страницу несколько раз. Время на странице не изменяется в течение 10 секунд кэша.

    Снимок экрана обновленного шаблона Aspire Starter с кэшированием на домашней странице.

    Решение создает контейнер Redis. Откройте Docker Desktop , чтобы просмотреть запущенный контейнер.

    Снимок экрана: контейнер Redis, запущенный в Docker Desktop.

  4. Чтобы остановить работу решения в Visual Studio, нажмите клавиши SHIFT+F5.

  5. Откройте Docker Desktop и выберите контейнеры или приложения. Вы увидите, что redis:latest больше не работает.

Вы узнали, как легко добавить новый компонент кэширования в приложение с помощью .NET Aspire. Вы добавили пакет NuGet, а затем добавили несколько строк кода. .NET Aspire автоматически настраивает контейнер Redis и кэширование выходных данных.