From 13fed892ee68a7cd35ba6dc3f2208ea0acbacd05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Michel?= Date: Wed, 1 Dec 2021 18:53:35 +0100 Subject: [PATCH 1/2] update nuget package and adapt dockerfile to .net 6 (#639) --- README.md | 2 +- src/BlazorShared/BlazorShared.csproj | 2 +- src/PublicApi/Dockerfile | 4 ++-- src/PublicApi/PublicApi.csproj | 2 +- src/Web/Dockerfile | 4 ++-- .../key-768c1632-cf7b-41a9-bb7a-bff228ae8fba.xml | 16 ++++++++++++++++ 6 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 src/Web/key-768c1632-cf7b-41a9-bb7a-bff228ae8fba.xml diff --git a/README.md b/README.md index 4374c34..4293827 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ The **eShopOnWeb** sample is related to the [eShopOnContainers](https://github.c The goal for this sample is to demonstrate some of the principles and patterns described in the [eBook](https://aka.ms/webappebook). It is not meant to be an eCommerce reference application, and as such it does not implement many features that would be obvious and/or essential to a real eCommerce application. > ### VERSIONS -> #### The `master` branch is currently running ASP.NET Core 5.0. +> #### The `master` branch is currently running ASP.NET Core 6.0. > #### Older versions are tagged. ## Topics (eBook TOC) diff --git a/src/BlazorShared/BlazorShared.csproj b/src/BlazorShared/BlazorShared.csproj index 8f5269e..a8f1800 100644 --- a/src/BlazorShared/BlazorShared.csproj +++ b/src/BlazorShared/BlazorShared.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/PublicApi/Dockerfile b/src/PublicApi/Dockerfile index 9292461..f768db5 100644 --- a/src/PublicApi/Dockerfile +++ b/src/PublicApi/Dockerfile @@ -1,11 +1,11 @@ #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /app COPY . . #COPY ["src/PublicApi/PublicApi.csproj", "./PublicApi/"] diff --git a/src/PublicApi/PublicApi.csproj b/src/PublicApi/PublicApi.csproj index a3a56a3..76b3b9c 100644 --- a/src/PublicApi/PublicApi.csproj +++ b/src/PublicApi/PublicApi.csproj @@ -26,7 +26,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Web/Dockerfile b/src/Web/Dockerfile index 6bc9cdc..9062398 100644 --- a/src/Web/Dockerfile +++ b/src/Web/Dockerfile @@ -7,7 +7,7 @@ # # RUN COMMAND # docker run --name eshopweb --rm -it -p 5106:5106 web -FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /app COPY *.sln . @@ -17,7 +17,7 @@ RUN dotnet restore RUN dotnet publish -c Release -o out -FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS runtime +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime WORKDIR /app COPY --from=build /app/src/Web/out ./ diff --git a/src/Web/key-768c1632-cf7b-41a9-bb7a-bff228ae8fba.xml b/src/Web/key-768c1632-cf7b-41a9-bb7a-bff228ae8fba.xml new file mode 100644 index 0000000..b8b27ae --- /dev/null +++ b/src/Web/key-768c1632-cf7b-41a9-bb7a-bff228ae8fba.xml @@ -0,0 +1,16 @@ + + + 2021-12-01T14:37:52.0438755Z + 2021-12-01T14:37:52.0246578Z + 2022-03-01T14:37:52.0246578Z + + + + + + + PF3GdfO7PnvHYvXyD5nxmoQ91pY9qfA0rjRsdXHdUQbE1Mg9Xok2gXLY2zn8XemsySH37UGrGknht8u/PlehWg== + + + + \ No newline at end of file From 3a81dcfd84310b1ae74103dc14e8f674335aed91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Michel?= Date: Wed, 1 Dec 2021 20:31:08 +0100 Subject: [PATCH 2/2] use GetRequiredSection and Service to inject options (#640) --- src/BlazorAdmin/Program.cs | 9 ++++----- src/BlazorAdmin/Services/CatalogLookupDataService.cs | 5 +++-- src/BlazorAdmin/Services/HttpService.cs | 5 +++-- src/PublicApi/Startup.cs | 7 ++++--- src/Web/HealthChecks/ApiHealthCheck.cs | 5 +++-- src/Web/Startup.cs | 6 +++--- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/BlazorAdmin/Program.cs b/src/BlazorAdmin/Program.cs index a002838..b800947 100644 --- a/src/BlazorAdmin/Program.cs +++ b/src/BlazorAdmin/Program.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading.Tasks; using BlazorAdmin.Services; @@ -20,9 +20,8 @@ public class Program var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add("#admin"); - var baseUrlConfig = new BaseUrlConfiguration(); - builder.Configuration.Bind(BaseUrlConfiguration.CONFIG_NAME, baseUrlConfig); - builder.Services.AddScoped(sp => baseUrlConfig); + var configSection = builder.Configuration.GetRequiredSection(BaseUrlConfiguration.CONFIG_NAME); + builder.Services.Configure(configSection); builder.Services.AddScoped(sp => new HttpClient() { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); @@ -37,7 +36,7 @@ public class Program builder.Services.AddBlazorServices(); - builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); + builder.Logging.AddConfiguration(builder.Configuration.GetRequiredSection("Logging")); await ClearLocalStorageCache(builder.Services); diff --git a/src/BlazorAdmin/Services/CatalogLookupDataService.cs b/src/BlazorAdmin/Services/CatalogLookupDataService.cs index 4927d6f..fa06b16 100644 --- a/src/BlazorAdmin/Services/CatalogLookupDataService.cs +++ b/src/BlazorAdmin/Services/CatalogLookupDataService.cs @@ -9,6 +9,7 @@ using BlazorShared.Attributes; using BlazorShared.Interfaces; using BlazorShared.Models; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; namespace BlazorAdmin.Services; @@ -23,12 +24,12 @@ public class CatalogLookupDataService private readonly string _apiUrl; public CatalogLookupDataService(HttpClient httpClient, - BaseUrlConfiguration baseUrlConfiguration, + IOptions baseUrlConfiguration, ILogger> logger) { _httpClient = httpClient; _logger = logger; - _apiUrl = baseUrlConfiguration.ApiBase; + _apiUrl = baseUrlConfiguration.Value.ApiBase; } public async Task> List() diff --git a/src/BlazorAdmin/Services/HttpService.cs b/src/BlazorAdmin/Services/HttpService.cs index 5749921..2362e9e 100644 --- a/src/BlazorAdmin/Services/HttpService.cs +++ b/src/BlazorAdmin/Services/HttpService.cs @@ -4,6 +4,7 @@ using System.Text.Json; using System.Threading.Tasks; using BlazorShared; using BlazorShared.Models; +using Microsoft.Extensions.Options; namespace BlazorAdmin.Services; @@ -14,11 +15,11 @@ public class HttpService private readonly string _apiUrl; - public HttpService(HttpClient httpClient, BaseUrlConfiguration baseUrlConfiguration, ToastService toastService) + public HttpService(HttpClient httpClient, IOptions baseUrlConfiguration, ToastService toastService) { _httpClient = httpClient; _toastService = toastService; - _apiUrl = baseUrlConfiguration.ApiBase; + _apiUrl = baseUrlConfiguration.Value.ApiBase; } public async Task HttpGet(string uri) diff --git a/src/PublicApi/Startup.cs b/src/PublicApi/Startup.cs index 9296c95..2a52fd5 100644 --- a/src/PublicApi/Startup.cs +++ b/src/PublicApi/Startup.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Text; using AutoMapper; using BlazorShared; @@ -96,8 +96,9 @@ public class Startup services.AddScoped(typeof(IAppLogger<>), typeof(LoggerAdapter<>)); services.AddScoped(); - var baseUrlConfig = new BaseUrlConfiguration(); - Configuration.Bind(BaseUrlConfiguration.CONFIG_NAME, baseUrlConfig); + var configSection = Configuration.GetRequiredSection(BaseUrlConfiguration.CONFIG_NAME); + services.Configure(configSection); + var baseUrlConfig = configSection.Get(); services.AddMemoryCache(); diff --git a/src/Web/HealthChecks/ApiHealthCheck.cs b/src/Web/HealthChecks/ApiHealthCheck.cs index 3a330a6..49f6634 100644 --- a/src/Web/HealthChecks/ApiHealthCheck.cs +++ b/src/Web/HealthChecks/ApiHealthCheck.cs @@ -3,6 +3,7 @@ using System.Threading; using System.Threading.Tasks; using BlazorShared; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Options; namespace Microsoft.eShopWeb.Web.HealthChecks; @@ -10,9 +11,9 @@ public class ApiHealthCheck : IHealthCheck { private readonly BaseUrlConfiguration _baseUrlConfiguration; - public ApiHealthCheck(BaseUrlConfiguration baseUrlConfiguration) + public ApiHealthCheck(IOptions baseUrlConfiguration) { - _baseUrlConfiguration = baseUrlConfiguration; + _baseUrlConfiguration = baseUrlConfiguration.Value; } public async Task CheckHealthAsync( diff --git a/src/Web/Startup.cs b/src/Web/Startup.cs index c3ea9ea..d854a6f 100644 --- a/src/Web/Startup.cs +++ b/src/Web/Startup.cs @@ -148,10 +148,10 @@ public class Startup config.Path = "/allservices"; }); + var configSection = Configuration.GetRequiredSection(BaseUrlConfiguration.CONFIG_NAME); + services.Configure(configSection); + var baseUrlConfig = configSection.Get(); - var baseUrlConfig = new BaseUrlConfiguration(); - Configuration.Bind(BaseUrlConfiguration.CONFIG_NAME, baseUrlConfig); - services.AddScoped(sp => baseUrlConfig); // Blazor Admin Required Services for Prerendering services.AddScoped(s => new HttpClient {