From a90ad0db5d450c2822ac860a6b70e004b976a191 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 22 Mar 2021 11:11:13 +0300 Subject: [PATCH] Cli new command: blazor-server option --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 2 + .../Steps/ChangePublicAuthPortStep.cs | 9 ++++- .../TemplateProjectBuildPipelineBuilder.cs | 2 +- .../ProjectBuilding/Building/UiFramework.cs | 3 +- .../Building/UiFrameworkExtensions.cs | 1 + .../Templates/App/AppTemplateBase.cs | 38 ++++++++++++++++++- 6 files changed, 50 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 7480ede715..002fc61303 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -444,6 +444,8 @@ namespace Volo.Abp.Cli.Commands return UiFramework.Angular; case "blazor": return UiFramework.Blazor; + case "blazor-server": + return UiFramework.BlazorServer; default: return UiFramework.NotSpecified; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs index 0d33b16309..4f24f4bea2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs @@ -9,7 +9,14 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps var publicAppSettings = context.Files .FirstOrDefault(f => f.Name.Contains("MyCompanyName.MyProjectName.Web.Public") && f.Name.EndsWith("appsettings.json")); - publicAppSettings?.SetContent(publicAppSettings.Content.Replace("localhost:44303","localhost:44305")); + if (context.BuildArgs.UiFramework == UiFramework.BlazorServer) + { + publicAppSettings?.SetContent(publicAppSettings.Content.Replace("localhost:44303","localhost:44313")); + } + else + { + publicAppSettings?.SetContent(publicAppSettings.Content.Replace("localhost:44303","localhost:44305")); + } } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs index 3e77f0844e..0442ca8d98 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs @@ -32,7 +32,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building pipeline.Steps.Add(new DatabaseManagementSystemChangeStep()); // todo: move to custom steps? } - if ((context.BuildArgs.UiFramework == UiFramework.Mvc || context.BuildArgs.UiFramework == UiFramework.Blazor) + if ((context.BuildArgs.UiFramework == UiFramework.Mvc || context.BuildArgs.UiFramework == UiFramework.Blazor || context.BuildArgs.UiFramework == UiFramework.BlazorServer) && context.BuildArgs.MobileApp == MobileApp.None && context.Template.Name != MicroserviceProTemplate.TemplateName && context.Template.Name != MicroserviceServiceProTemplate.TemplateName) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs index 17e33dc22d..443ab46013 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs @@ -6,6 +6,7 @@ None = 1, Mvc = 2, Angular = 3, - Blazor = 4 + Blazor = 4, + BlazorServer = 5 } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs index b247a8f424..b488dde6be 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs @@ -10,6 +10,7 @@ case UiFramework.Mvc: return "mvc"; case UiFramework.Angular: return "angular"; case UiFramework.Blazor: return "blazor"; + case UiFramework.BlazorServer: return "blazor-server"; case UiFramework.NotSpecified: return "NotSpecified"; default: return "NotSpecified"; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 260d996484..358cf75a3c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -87,22 +87,31 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ConfigureWithAngularUi(context, steps); break; - case UiFramework.Blazor: ConfigureWithBlazorUi(context, steps); break; + case UiFramework.BlazorServer: + ConfigureWithBlazorServerUi(context, steps); + break; + case UiFramework.Mvc: case UiFramework.NotSpecified: ConfigureWithMvcUi(context, steps); break; } - if (context.BuildArgs.UiFramework != UiFramework.Blazor) + if (context.BuildArgs.UiFramework != UiFramework.Blazor && context.BuildArgs.UiFramework != UiFramework.BlazorServer) { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor")); } + if (context.BuildArgs.UiFramework != UiFramework.BlazorServer) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Tiered")); + } + if (context.BuildArgs.UiFramework != UiFramework.Angular) { steps.Add(new RemoveFolderStep("/angular")); @@ -207,6 +216,30 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App } } + private static void ConfigureWithBlazorServerUi(ProjectBuildContext context, List steps) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.HostWithIds")); + + if (context.BuildArgs.ExtraProperties.ContainsKey("tiered")) + { + steps.Add(new AppTemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server.Tiered", "MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + steps.Add(new AppTemplateChangeDbMigratorPortSettingsStep("44300")); + } + else + { + steps.Add(new AppTemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", "MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Tiered")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.IdentityServer")); + steps.Add(new AppTemplateChangeConsoleTestClientPortSettingsStep("44313")); + } + } + private static void ConfigureWithMvcUi(ProjectBuildContext context, List steps) { if (context.BuildArgs.ExtraProperties.ContainsKey("tiered")) @@ -265,6 +298,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App return; } + //todo: discuss blazor ports steps.Add(new TemplateRandomSslPortStep( new List {