From cccde575a29b67a2a9e8adb5532d0916632185c9 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 6 Feb 2024 15:52:28 +0800 Subject: [PATCH] Add `_framework/blazor.web.js` to `App.razor`. --- .../Abp-8-2-Blazor-Web-App.md | 0 .../Bundling/AbpScripts.razor | 26 ----------------- .../Bundling/AbpStyles.razor | 26 ----------------- .../Bundling/BlazorGlobalScriptContributor.cs | 7 +++-- .../BlazorServerComponentBundleManager.cs | 28 +++++++++++++++++++ .../AbpAspNetCoreComponentsServerModule.cs | 1 + .../Bundling/AbpScripts.razor | 26 +++++++++++++++++ .../Bundling/AbpStyles.razor | 27 ++++++++++++++++++ .../Bundling/IComponentBundleManager.cs | 11 ++++++++ .../WebAssemblyComponentBundleManager.cs | 19 +++++++++++++ .../Components/App.razor | 4 ++- .../Components/App.razor | 4 ++- .../Components/App.razor | 4 ++- .../Components/App.razor | 4 ++- .../Components/App.razor | 15 +++------- .../Components/App.razor | 15 +++------- .../Components/App.razor | 4 ++- 17 files changed, 139 insertions(+), 82 deletions(-) create mode 100644 docs/en/Migration-Guides/Abp-8-2-Blazor-Web-App.md delete mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpScripts.razor delete mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpStyles.razor create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorServerComponentBundleManager.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpScripts.razor create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpStyles.razor create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/IComponentBundleManager.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/WebAssemblyComponentBundleManager.cs diff --git a/docs/en/Migration-Guides/Abp-8-2-Blazor-Web-App.md b/docs/en/Migration-Guides/Abp-8-2-Blazor-Web-App.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpScripts.razor b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpScripts.razor deleted file mode 100644 index 4c95c860d6..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpScripts.razor +++ /dev/null @@ -1,26 +0,0 @@ -@using Volo.Abp.AspNetCore.Mvc.UI.Bundling -@inject IBundleManager BundleManager - -@if (ScriptBundleFiles != null) -{ - foreach (var bundleFile in ScriptBundleFiles) - { - - } -} - -@code { - private IReadOnlyList? ScriptBundleFiles { get; set; } - - [Parameter] - public string? BundleName { get; set; } - - protected override async Task OnInitializedAsync() - { - if (BundleName == null) - { - throw new AbpException("The BundleName parameter of the AbpScripts component can not be null!"); - } - ScriptBundleFiles = await BundleManager.GetScriptBundleFilesAsync(BundleName!); - } -} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpStyles.razor b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpStyles.razor deleted file mode 100644 index 6ba89a7b9c..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/AbpStyles.razor +++ /dev/null @@ -1,26 +0,0 @@ -@using Volo.Abp.AspNetCore.Mvc.UI.Bundling -@inject IBundleManager BundleManager - -@if (StyleBundleFiles != null) -{ - foreach (var bundleFile in StyleBundleFiles) - { - - } -} - -@code { - private IReadOnlyList? StyleBundleFiles { get; set; } - - [Parameter] - public string? BundleName { get; set; } - - protected override async Task OnInitializedAsync() - { - if (BundleName == null) - { - throw new AbpException("The BundleName parameter of the AbpStyles component can not be null!"); - } - StyleBundleFiles = await BundleManager.GetStyleBundleFilesAsync(BundleName!); - } -} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs index b66c23690b..d99dc6284d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs @@ -10,9 +10,10 @@ public class BlazorGlobalScriptContributor : BundleContributor public override void ConfigureBundle(BundleConfigurationContext context) { var options = context.ServiceProvider.GetRequiredService>().Value; - context.Files.AddIfNotContains(options.IsBlazorWebApp - ? "/_framework/blazor.web.js" - : "/_framework/blazor.server.js"); + if (!options.IsBlazorWebApp) + { + context.Files.AddIfNotContains("/_framework/blazor.server.js"); + } context.Files.AddIfNotContains("/_content/Volo.Abp.AspNetCore.Components.Web/libs/abp/js/abp.js"); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorServerComponentBundleManager.cs b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorServerComponentBundleManager.cs new file mode 100644 index 0000000000..9ba0baff2d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorServerComponentBundleManager.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.Server.Theming.Bundling; + +public class BlazorServerComponentBundleManager : IComponentBundleManager, ITransientDependency +{ + protected IBundleManager BundleManager { get; } + + public BlazorServerComponentBundleManager(IBundleManager bundleManager) + { + BundleManager = bundleManager; + } + + public virtual async Task> GetStyleBundleFilesAsync(string bundleName) + { + return (await BundleManager.GetStyleBundleFilesAsync(bundleName)).Select(f => f.FileName).ToList(); + } + + public virtual async Task> GetScriptBundleFilesAsync(string bundleName) + { + return (await BundleManager.GetScriptBundleFilesAsync(bundleName)).Select(f => f.FileName).ToList(); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs index a1fd5dfb32..cd1fad79a0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs @@ -79,6 +79,7 @@ public class AbpAspNetCoreComponentsServerModule : AbpModule context.GetEnvironment().WebRootFileProvider = new CompositeFileProvider( new ManifestEmbeddedFileProvider(typeof(IServerSideBlazorBuilder).Assembly), + new ManifestEmbeddedFileProvider(typeof(RazorComponentsEndpointRouteBuilderExtensions).Assembly), context.GetEnvironment().WebRootFileProvider ); } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpScripts.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpScripts.razor new file mode 100644 index 0000000000..36b66fa8e8 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpScripts.razor @@ -0,0 +1,26 @@ +@using Volo.Abp +@inject IComponentBundleManager BundleManager + +@if (ScriptFiles != null) +{ + foreach (var file in ScriptFiles) + { + + } +} + +@code { + private IReadOnlyList? ScriptFiles { get; set; } + + [Parameter] + public string? BundleName { get; set; } + + protected override async Task OnInitializedAsync() + { + if (BundleName == null) + { + throw new AbpException("The BundleName parameter of the AbpScripts component can not be null!"); + } + ScriptFiles = await BundleManager.GetScriptBundleFilesAsync(BundleName!); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpStyles.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpStyles.razor new file mode 100644 index 0000000000..cc98f0cf84 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpStyles.razor @@ -0,0 +1,27 @@ +@using Volo.Abp +@inject IComponentBundleManager BundleManager + +@if (StyleFiles != null) +{ + foreach (var file in StyleFiles) + { + + } +} + +@code { + private IReadOnlyList? StyleFiles { get; set; } + + [Parameter] + public string? BundleName { get; set; } + + protected override async Task OnInitializedAsync() + { + if (BundleName == null) + { + throw new AbpException("The BundleName parameter of the AbpStyles component can not be null!"); + } + + StyleFiles = await BundleManager.GetStyleBundleFilesAsync(BundleName!); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/IComponentBundleManager.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/IComponentBundleManager.cs new file mode 100644 index 0000000000..db197dd069 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/IComponentBundleManager.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Volo.Abp.AspNetCore.Components.Web.Theming.Bundling; + +public interface IComponentBundleManager +{ + Task> GetStyleBundleFilesAsync(string bundleName); + + Task> GetScriptBundleFilesAsync(string bundleName); +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/WebAssemblyComponentBundleManager.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/WebAssemblyComponentBundleManager.cs new file mode 100644 index 0000000000..37764d92c7 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/WebAssemblyComponentBundleManager.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.Theming; + +public class WebAssemblyComponentBundleManager : IComponentBundleManager, ITransientDependency +{ + public virtual Task> GetStyleBundleFilesAsync(string bundleName) + { + return Task.FromResult>(new List {"global.css", "main.css"}); + } + + public virtual Task> GetScriptBundleFilesAsync(string bundleName) + { + return Task.FromResult>(new List {"global.js"}); + } +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/App.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/App.razor index f83a4f6fd3..9f9aa51130 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/App.razor +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/App.razor @@ -1,8 +1,8 @@ @using Volo.Abp.Localization @using System.Globalization @using Microsoft.Extensions.Hosting -@using Volo.Abp.AspNetCore.Components.Server.Theming.Bundling @using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; @@ -28,6 +28,8 @@ + +
@if (Env.IsDevelopment()) { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor index f83a4f6fd3..9f9aa51130 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor @@ -1,8 +1,8 @@ @using Volo.Abp.Localization @using System.Globalization @using Microsoft.Extensions.Hosting -@using Volo.Abp.AspNetCore.Components.Server.Theming.Bundling @using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; @@ -28,6 +28,8 @@ + +
@if (Env.IsDevelopment()) { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor index 035045aed7..73ed17cb7d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor @@ -1,8 +1,8 @@ @using Volo.Abp.Localization @using System.Globalization @using Microsoft.Extensions.Hosting -@using Volo.Abp.AspNetCore.Components.Server.Theming.Bundling @using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; @@ -28,6 +28,8 @@ + +
@if (Env.IsDevelopment()) { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor index 035045aed7..73ed17cb7d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor @@ -1,8 +1,8 @@ @using Volo.Abp.Localization @using System.Globalization @using Microsoft.Extensions.Hosting -@using Volo.Abp.AspNetCore.Components.Server.Theming.Bundling @using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; @@ -28,6 +28,8 @@ + +
@if (Env.IsDevelopment()) { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor index cd74b39c46..204cd3bb6a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor @@ -3,8 +3,8 @@ @using Microsoft.AspNetCore.Authentication @using Microsoft.AspNetCore.Http @using Microsoft.Extensions.Hosting -@using Volo.Abp.AspNetCore.Components.Server.Theming.Bundling @using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp @inject IHostEnvironment Env @{ @@ -20,12 +20,7 @@ MyCompanyName.MyProjectName.Blazor.Server - - - - - - + @@ -34,11 +29,9 @@ - + - - - +
@if (Env.IsDevelopment()) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor index 41043d514a..63082fc338 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor @@ -2,7 +2,7 @@ @using System.Globalization @using Microsoft.Extensions.Hosting @using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling -@using Volo.Abp.AspNetCore.Components.Server.Theming.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; @@ -17,12 +17,7 @@ MyCompanyName.MyProjectName.Blazor.Server - - - - - - + @@ -31,11 +26,9 @@ - + - - - +
@if (Env.IsDevelopment()) diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Components/App.razor b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Components/App.razor index be97e46c5f..1a129ae90c 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Components/App.razor +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Components/App.razor @@ -1,8 +1,8 @@ @using Volo.Abp.Localization @using System.Globalization @using Microsoft.Extensions.Hosting -@using Volo.Abp.AspNetCore.Components.Server.Theming.Bundling @using Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; @@ -28,6 +28,8 @@ + +
@if (Env.IsDevelopment()) {