Browse Source

Merge pull request #1389 from colinin/update-cli-template

feat: update template and cli
pull/1402/head
yx lin 4 months ago
committed by GitHub
parent
commit
eaecb15226
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj
  2. 19
      aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/CreateCommand.cs
  3. 6
      aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/CreateOptions.cs
  4. 1
      aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/LocalFileCreateProjectService.cs
  5. 5
      aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/ProjectCreateArgs.cs
  6. 2
      aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj
  7. 11
      aspnet-core/templates/micro/content/.gitignore
  8. 25
      aspnet-core/templates/micro/content/.template.config/template.json
  9. 1
      aspnet-core/templates/micro/content/.template.config/template.zh-Hans.json
  10. 18
      aspnet-core/templates/micro/content/Directory.Packages.props
  11. 1
      aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln
  12. 4
      aspnet-core/templates/micro/content/common.props
  13. 4
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj
  14. 52
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs
  15. 10
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs
  16. 9
      aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json
  17. 2
      aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj
  18. 26
      aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigratorEntityFrameworkCoreModule.cs
  19. 8
      aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj
  20. 8
      aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json
  21. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj
  22. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj
  23. 1
      aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj

2
aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj

@ -5,7 +5,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
<Version>9.1.1</Version> <Version>9.3.6</Version>
<Copyright>colin</Copyright> <Copyright>colin</Copyright>
<Description>Use LINGYUN.MicroService.Templates command line</Description> <Description>Use LINGYUN.MicroService.Templates command line</Description>
<PackAsTool>true</PackAsTool> <PackAsTool>true</PackAsTool>

19
aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/CreateCommand.cs

@ -114,12 +114,6 @@ namespace LINGYUN.Abp.Cli.Commands
Logger.LogInformation("DBMS: " + databaseManagementSystem); Logger.LogInformation("DBMS: " + databaseManagementSystem);
} }
var telemetryProvider = GetTelemetryProvider(commandLineArgs);
if (!telemetryProvider.IsNullOrWhiteSpace())
{
Logger.LogInformation("Telemetry provider: " + telemetryProvider);
}
var randomPort = string.IsNullOrWhiteSpace( var randomPort = string.IsNullOrWhiteSpace(
commandLineArgs.Options.GetOrNull(CreateOptions.NoRandomPort.Short, CreateOptions.NoRandomPort.Long)); commandLineArgs.Options.GetOrNull(CreateOptions.NoRandomPort.Short, CreateOptions.NoRandomPort.Long));
var applicationPort = randomPort ? RandomHelper.GetRandom(5001, 65535).ToString() : "5000"; var applicationPort = randomPort ? RandomHelper.GetRandom(5001, 65535).ToString() : "5000";
@ -172,8 +166,7 @@ namespace LINGYUN.Abp.Cli.Commands
commandLineArgs.Options, commandLineArgs.Options,
connectionString, connectionString,
applicationPort, applicationPort,
daprPort, daprPort
telemetryProvider
); );
await CreateProjectService.CreateAsync(projectArgs); await CreateProjectService.CreateAsync(projectArgs);
@ -204,7 +197,6 @@ namespace LINGYUN.Abp.Cli.Commands
sb.AppendLine("-csf|--create-solution-folder (default: true)"); sb.AppendLine("-csf|--create-solution-folder (default: true)");
sb.AppendLine("-cs|--connection-string <connection-string> (your database connection string)"); sb.AppendLine("-cs|--connection-string <connection-string> (your database connection string)");
sb.AppendLine("--dbms <database-management-system> (your database management system)"); sb.AppendLine("--dbms <database-management-system> (your database management system)");
sb.AppendLine("--tm <telemetry> (your telemetry provider, optional: SkyWalking、OpenTelemetry, default: OpenTelemetry)");
sb.AppendLine("--no-random-port (Use template's default ports)"); sb.AppendLine("--no-random-port (Use template's default ports)");
sb.AppendLine(""); sb.AppendLine("");
sb.AppendLine("Examples:"); sb.AppendLine("Examples:");
@ -217,7 +209,6 @@ namespace LINGYUN.Abp.Cli.Commands
sb.AppendLine(" labp create Acme.BookStore -csf false"); sb.AppendLine(" labp create Acme.BookStore -csf false");
sb.AppendLine(" labp create Acme.BookStore --local-framework-ref --abp-path \"D:\\github\\abp\""); sb.AppendLine(" labp create Acme.BookStore --local-framework-ref --abp-path \"D:\\github\\abp\"");
sb.AppendLine(" labp create Acme.BookStore --dbms mysql"); sb.AppendLine(" labp create Acme.BookStore --dbms mysql");
sb.AppendLine(" labp create Acme.BookStore --tm SkyWalking");
sb.AppendLine(" labp create Acme.BookStore --connection-string \"Server=myServerName\\myInstanceName;Database=myDatabase;User Id=myUsername;Password=myPassword\""); sb.AppendLine(" labp create Acme.BookStore --connection-string \"Server=myServerName\\myInstanceName;Database=myDatabase;User Id=myUsername;Password=myPassword\"");
sb.AppendLine(""); sb.AppendLine("");
// TODO: 文档 // TODO: 文档
@ -232,14 +223,6 @@ namespace LINGYUN.Abp.Cli.Commands
|| commandLineArgs.Options.ContainsKey(NewCommand.Options.CreateSolutionFolder.Short); || commandLineArgs.Options.ContainsKey(NewCommand.Options.CreateSolutionFolder.Short);
} }
protected virtual string GetTelemetryProvider(CommandLineArgs commandLineArgs)
{
var provider = commandLineArgs.Options.GetOrNull(
CreateOptions.Telemetry.Short,
CreateOptions.Telemetry.Long);
return string.IsNullOrWhiteSpace(provider) ? "OpenTelemetry" : provider;
}
protected virtual DatabaseProvider GetDatabaseProvider(CommandLineArgs commandLineArgs) protected virtual DatabaseProvider GetDatabaseProvider(CommandLineArgs commandLineArgs)
{ {
var optionValue = commandLineArgs.Options.GetOrNull( var optionValue = commandLineArgs.Options.GetOrNull(

6
aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/CreateOptions.cs

@ -21,11 +21,5 @@
public const string Short = "nrp"; public const string Short = "nrp";
public const string Long = "no-random-port"; public const string Long = "no-random-port";
} }
public static class Telemetry
{
public const string Short = "tm";
public const string Long = "telemetry";
}
} }
} }

1
aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/LocalFileCreateProjectService.cs

@ -63,7 +63,6 @@ namespace LINGYUN.Abp.Cli.Commands
commandBuilder.AppendFormat(" -n {0}", createArgs.SolutionName.ProjectName); commandBuilder.AppendFormat(" -n {0}", createArgs.SolutionName.ProjectName);
commandBuilder.AppendFormat(" -o {0}", createArgs.OutputFolder); commandBuilder.AppendFormat(" -o {0}", createArgs.OutputFolder);
commandBuilder.AppendFormat(" --DatabaseManagement {0}", dbm); commandBuilder.AppendFormat(" --DatabaseManagement {0}", dbm);
commandBuilder.AppendFormat(" --Telemetry {0}", createArgs.TelemetryProvider);
Logger.LogInformation("Execute command: " + commandBuilder.ToString()); Logger.LogInformation("Execute command: " + commandBuilder.ToString());

5
aspnet-core/framework/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/ProjectCreateArgs.cs

@ -9,7 +9,6 @@ namespace LINGYUN.Abp.Cli.Commands
public string PackageName { get; } public string PackageName { get; }
public string ApplicationPort { get; } public string ApplicationPort { get; }
public string DaprPort { get; } public string DaprPort { get; }
public string TelemetryProvider { get; }
public ProjectCreateArgs( public ProjectCreateArgs(
string packageName, string packageName,
SolutionName solutionName, SolutionName solutionName,
@ -27,8 +26,7 @@ namespace LINGYUN.Abp.Cli.Commands
Dictionary<string, string> extraProperties = null, Dictionary<string, string> extraProperties = null,
string connectionString = null, string connectionString = null,
string applicationPort = "5000", string applicationPort = "5000",
string daprPort = "3500", string daprPort = "3500")
string telemetryProvider = "OpenTelemetry")
: base( : base(
solutionName, solutionName,
templateName, templateName,
@ -48,7 +46,6 @@ namespace LINGYUN.Abp.Cli.Commands
PackageName = packageName; PackageName = packageName;
ApplicationPort = applicationPort; ApplicationPort = applicationPort;
DaprPort = daprPort; DaprPort = daprPort;
TelemetryProvider = telemetryProvider;
} }
} }
} }

2
aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj

@ -3,7 +3,7 @@
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageId>LINGYUN.Abp.MicroService.Templates</PackageId> <PackageId>LINGYUN.Abp.MicroService.Templates</PackageId>
<Version>9.2.0</Version> <Version>9.3.6</Version>
<Authors>colin.in@foxmail.com</Authors> <Authors>colin.in@foxmail.com</Authors>
<Description>Abp framework micro-service template</Description> <Description>Abp framework micro-service template</Description>
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>

11
aspnet-core/templates/micro/content/.gitignore

@ -0,0 +1,11 @@
.vs
bin
obj
logs
LocalNuget
Modules
TestResults
appsettings.Development.json
appsettings.Staging.json
appsettings.Production.json

25
aspnet-core/templates/micro/content/.template.config/template.json

@ -30,23 +30,6 @@
"sourceName": "ProjectName", "sourceName": "ProjectName",
"preferNameDirectory": true, "preferNameDirectory": true,
"symbols": { "symbols": {
"Telemetry": {
"type": "parameter",
"description": "Distributed tracking provider",
"datatype": "choice",
"defaultValue": "OpenTelemetry",
"isRequired": false,
"choices": [
{
"choice": "SkyWalking",
"description": "Use SkyWalking"
},
{
"choice": "OpenTelemetry",
"description": "Use OpenTelemetry"
}
]
},
"DatabaseManagement": { "DatabaseManagement": {
"type": "parameter", "type": "parameter",
"description": "Database Management", "description": "Database Management",
@ -103,14 +86,6 @@
"PostgreSql": { "PostgreSql": {
"type": "computed", "type": "computed",
"value": "(DatabaseManagement == \"PostgreSql\")" "value": "(DatabaseManagement == \"PostgreSql\")"
},
"SkyWalking": {
"type": "computed",
"value": "(Telemetry == \"SkyWalking\")"
},
"OpenTelemetry": {
"type": "computed",
"value": "(Telemetry == \"OpenTelemetry\")"
} }
} }
} }

1
aspnet-core/templates/micro/content/.template.config/template.zh-Hans.json

@ -1,5 +1,4 @@
{ {
"description": "适用于abp框架的微服务模板项目", "description": "适用于abp框架的微服务模板项目",
"symbols/Telemetry/description": "微服务追踪提供者, 可选项为: SkyWalking、OpenTelemetry, 默认使用OpenTelemetry.",
"symbols/DatabaseManagement/description": "数据库管理提供者, 可选项为: SqlServer、MySQL、Sqlite、Oracle、OracleDevart、PostgreSql, 默认使用MySQL." "symbols/DatabaseManagement/description": "数据库管理提供者, 可选项为: SqlServer、MySQL、Sqlite、Oracle、OracleDevart、PostgreSql, 默认使用MySQL."
} }

18
aspnet-core/templates/micro/content/Directory.Packages.props

@ -2,11 +2,11 @@
<PropertyGroup> <PropertyGroup>
<DotNetCoreCAPPackageVersion>8.3.5</DotNetCoreCAPPackageVersion> <DotNetCoreCAPPackageVersion>8.3.5</DotNetCoreCAPPackageVersion>
<ElsaPackageVersion>2.15.1</ElsaPackageVersion> <ElsaPackageVersion>2.15.1</ElsaPackageVersion>
<VoloAbpPackageVersion>9.2.0</VoloAbpPackageVersion> <VoloAbpPackageVersion>9.3.6</VoloAbpPackageVersion>
<LINGYUNAbpPackageVersion>9.2.0</LINGYUNAbpPackageVersion> <LINGYUNAbpPackageVersion>9.3.6</LINGYUNAbpPackageVersion>
<MicrosoftExtensionsPackageVersion>9.0.4</MicrosoftExtensionsPackageVersion> <MicrosoftExtensionsPackageVersion>9.0.5</MicrosoftExtensionsPackageVersion>
<MicrosoftAspNetCorePackageVersion>9.0.4</MicrosoftAspNetCorePackageVersion> <MicrosoftAspNetCorePackageVersion>9.0.5</MicrosoftAspNetCorePackageVersion>
<MicrosoftEntityFrameworkCorePackageVersion>9.0.4</MicrosoftEntityFrameworkCorePackageVersion> <MicrosoftEntityFrameworkCorePackageVersion>9.0.5</MicrosoftEntityFrameworkCorePackageVersion>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup> </PropertyGroup>
@ -243,7 +243,7 @@
<!-- Abp Framework --> <!-- Abp Framework -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="4.2.0" /> <PackageVersion Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite" Version="4.3.6" />
<PackageVersion Include="Volo.Abp.Core" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Core" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.Account.Application" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Account.Application" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.Account.Application.Contracts" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.Account.Application.Contracts" Version="$(VoloAbpPackageVersion)" />
@ -290,6 +290,7 @@
<PackageVersion Include="Volo.Abp.DistributedLocking" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.DistributedLocking" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.EntityFrameworkCore" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.EntityFrameworkCore" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.EntityFrameworkCore.MySql" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.EntityFrameworkCore.MySql" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.EntityFrameworkCore.MySql.Pomelo" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.EntityFrameworkCore.Sqlite" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.EntityFrameworkCore.Sqlite" Version="$(VoloAbpPackageVersion)" />
<PackageVersion Include="Volo.Abp.EntityFrameworkCore.Oracle" Version="$(VoloAbpPackageVersion)" /> <PackageVersion Include="Volo.Abp.EntityFrameworkCore.Oracle" Version="$(VoloAbpPackageVersion)" />
@ -391,8 +392,9 @@
<PackageVersion Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsPackageVersion)" /> <PackageVersion Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsPackageVersion)" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsPackageVersion)" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsPackageVersion)" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.3.efcore.9.0.0" /> <PackageVersion Include="MySql.EntityFrameworkCore" Version="9.0.6" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql.Json.Microsoft" Version="9.0.0-preview.3.efcore.9.0.0" /> <PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql.Json.Microsoft" Version="9.0.0" />
</ItemGroup> </ItemGroup>
<!-- Elsa --> <!-- Elsa -->

1
aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln

@ -9,6 +9,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.Pro
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solution Items", "{C9675742-7986-4BC1-9781-FD1C3C5B6287}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solution Items", "{C9675742-7986-4BC1-9781-FD1C3C5B6287}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
.gitignore = .gitignore
common.props = common.props common.props = common.props
configureawait.props = configureawait.props configureawait.props = configureawait.props
Directory.Build.props = Directory.Build.props Directory.Build.props = Directory.Build.props

4
aspnet-core/templates/micro/content/common.props

@ -1,12 +1,12 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>9.2.0</Version> <Version>9.3.6</Version>
<Authors>colin</Authors> <Authors>colin</Authors>
<NoWarn>$(NoWarn);CS1591;CS0436;CS8618;NU1803</NoWarn> <NoWarn>$(NoWarn);CS1591;CS0436;CS8618;NU1803</NoWarn>
<PackageProjectUrl>https://github.com/colinin/abp-next-admin</PackageProjectUrl> <PackageProjectUrl>https://github.com/colinin/abp-next-admin</PackageProjectUrl>
<PackageOutputPath>$(SolutionDir)LocalNuget</PackageOutputPath> <PackageOutputPath>$(SolutionDir)LocalNuget</PackageOutputPath>
<PackageVersion>9.2.0</PackageVersion> <PackageVersion>9.3.6</PackageVersion>
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType> <RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/colinin/abp-next-admin</RepositoryUrl> <RepositoryUrl>https://github.com/colinin/abp-next-admin</RepositoryUrl>

4
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj

@ -31,8 +31,8 @@
<PackageReference Include="LINGYUN.Abp.Serilog.Enrichers.Application" /> <PackageReference Include="LINGYUN.Abp.Serilog.Enrichers.Application" />
<PackageReference Include="LINGYUN.Abp.Serilog.Enrichers.UniqueId" /> <PackageReference Include="LINGYUN.Abp.Serilog.Enrichers.UniqueId" />
<PackageReference Include="LINGYUN.Abp.TextTemplating.EntityFrameworkCore" /> <PackageReference Include="LINGYUN.Abp.TextTemplating.EntityFrameworkCore" />
<PackageReference Include="LINGYUN.Abp.Telemetry.SkyWalking" Condition="'$(SkyWalking)'=='true'" /> <PackageReference Include="LINGYUN.Abp.Telemetry.SkyWalking" />
<PackageReference Include="LINGYUN.Abp.Telemetry.OpenTelemetry" Condition="'$(OpenTelemetry)'=='true'" /> <PackageReference Include="LINGYUN.Abp.Telemetry.OpenTelemetry" />
<PackageReference Include="LINGYUN.Abp.Emailing.Platform" /> <PackageReference Include="LINGYUN.Abp.Emailing.Platform" />
<PackageReference Include="LINGYUN.Abp.Sms.Platform" /> <PackageReference Include="LINGYUN.Abp.Sms.Platform" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />

52
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs

@ -24,6 +24,7 @@ using Microsoft.OpenApi.Models;
using StackExchange.Redis; using StackExchange.Redis;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Text.Encodings.Web; using System.Text.Encodings.Web;
using System.Text.Unicode; using System.Text.Unicode;
@ -328,9 +329,35 @@ public partial class ProjectNameHttpApiHostModule
}, },
options => options =>
{ {
options.SwaggerDoc("v1", new OpenApiInfo { Title = "ProjectName API", Version = "v1" }); options.SwaggerDoc("v1", new OpenApiInfo
{
Title = "ProjectName API",
Version = "v1",
Contact = new OpenApiContact
{
Name = "anonymous", // your name
Email = "anonymous@gmail.com", // your email
Url = new Uri("http://localhost/profile") // your profile
},
License = new OpenApiLicense
{
Name = "MIT",
Url = new Uri("https://licenses.nuget.org/MIT")
}
});
options.DocInclusionPredicate((docName, description) => true); options.DocInclusionPredicate((docName, description) => true);
options.CustomSchemaIds(type => type.FullName); options.CustomSchemaIds(type => type.FullName);
options.DescribeAllParametersInCamelCase();
options.TagActionsBy(api =>
{
// 控制器分组显示
var groupName = api.GroupName ?? "未分组";
var controllerName = api.ActionDescriptor.RouteValues["controller"];
// 使用控制器名称和摘要信息创建分组
return new[] { $"{groupName}/{controllerName}" };
});
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{ {
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
@ -340,6 +367,7 @@ public partial class ProjectNameHttpApiHostModule
Type = SecuritySchemeType.Http, Type = SecuritySchemeType.Http,
BearerFormat = "JWT" BearerFormat = "JWT"
}); });
options.AddSecurityRequirement(new OpenApiSecurityRequirement options.AddSecurityRequirement(new OpenApiSecurityRequirement
{ {
{ {
@ -350,6 +378,15 @@ public partial class ProjectNameHttpApiHostModule
new string[] { } new string[] { }
} }
}); });
var currentPath = AppContext.BaseDirectory;
var xmlDocFiles = Directory.GetFiles(currentPath, "PackageName.CompanyName.ProjectName.*.xml");
foreach (var xmlDocFile in xmlDocFiles)
{
options.IncludeXmlComments(xmlDocFile);
}
options.OperationFilter<TenantHeaderParamter>(); options.OperationFilter<TenantHeaderParamter>();
options.HideAbpEndpoints(); options.HideAbpEndpoints();
}); });
@ -393,6 +430,14 @@ public partial class ProjectNameHttpApiHostModule
// options.AutoValidateFilter = (type) => !type.Namespace.Contains("elsa", StringComparison.CurrentCultureIgnoreCase); // options.AutoValidateFilter = (type) => !type.Namespace.Contains("elsa", StringComparison.CurrentCultureIgnoreCase);
}); });
if (isDevelopment)
{
// 开发环境可以取消注释禁用权限检查
// services.AddAlwaysAllowAuthorization();
// 开发环境可以取消注释禁用会话检查
// services.AddAlwaysAllowSession();
}
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddAbpJwtBearer(options => .AddAbpJwtBearer(options =>
{ {
@ -404,6 +449,11 @@ public partial class ProjectNameHttpApiHostModule
options.TokenValidationParameters.ValidIssuers = validIssuers; options.TokenValidationParameters.ValidIssuers = validIssuers;
options.TokenValidationParameters.IssuerValidator = TokenWildcardIssuerValidator.IssuerValidator; options.TokenValidationParameters.IssuerValidator = TokenWildcardIssuerValidator.IssuerValidator;
} }
var validAudiences = configuration.GetSection("AuthServer:ValidAudiences").Get<List<string>>();
if (validAudiences?.Count > 0)
{
options.TokenValidationParameters.ValidAudiences = validAudiences;
}
}); });
if (!isDevelopment) if (!isDevelopment)

10
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs

@ -12,11 +12,8 @@ using LINGYUN.Abp.Saas.EntityFrameworkCore;
using LINGYUN.Abp.Serilog.Enrichers.Application; using LINGYUN.Abp.Serilog.Enrichers.Application;
using LINGYUN.Abp.Serilog.Enrichers.UniqueId; using LINGYUN.Abp.Serilog.Enrichers.UniqueId;
using LINGYUN.Abp.Sms.Platform; using LINGYUN.Abp.Sms.Platform;
#if SkyWalking
using LINGYUN.Abp.Telemetry.SkyWalking; using LINGYUN.Abp.Telemetry.SkyWalking;
#elif OpenTelemetry
using LINGYUN.Abp.Telemetry.OpenTelemetry; using LINGYUN.Abp.Telemetry.OpenTelemetry;
#endif
using LINGYUN.Abp.TextTemplating.EntityFrameworkCore; using LINGYUN.Abp.TextTemplating.EntityFrameworkCore;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
@ -45,6 +42,7 @@ namespace PackageName.CompanyName.ProjectName;
typeof(AbpSerilogEnrichersUniqueIdModule), typeof(AbpSerilogEnrichersUniqueIdModule),
typeof(AbpAuditLoggingElasticsearchModule), typeof(AbpAuditLoggingElasticsearchModule),
typeof(AbpAspNetCoreSerilogModule), typeof(AbpAspNetCoreSerilogModule),
typeof(AbpCAPEventBusModule),
typeof(ProjectNameApplicationModule), typeof(ProjectNameApplicationModule),
typeof(ProjectNameHttpApiModule), typeof(ProjectNameHttpApiModule),
@ -52,7 +50,6 @@ namespace PackageName.CompanyName.ProjectName;
typeof(ProjectNameDbMigratorEntityFrameworkCoreModule), typeof(ProjectNameDbMigratorEntityFrameworkCoreModule),
typeof(AbpEmailingExceptionHandlingModule), typeof(AbpEmailingExceptionHandlingModule),
typeof(AbpCAPEventBusModule),
typeof(AbpHttpClientIdentityModelWebModule), typeof(AbpHttpClientIdentityModelWebModule),
typeof(AbpAspNetCoreMultiTenancyModule), typeof(AbpAspNetCoreMultiTenancyModule),
@ -69,13 +66,10 @@ namespace PackageName.CompanyName.ProjectName;
typeof(AbpAspNetCoreMvcWrapperModule), typeof(AbpAspNetCoreMvcWrapperModule),
typeof(AbpAspNetCoreHttpOverridesModule), typeof(AbpAspNetCoreHttpOverridesModule),
typeof(AbpIdentitySessionAspNetCoreModule), typeof(AbpIdentitySessionAspNetCoreModule),
#if SkyWalking
typeof(AbpTelemetrySkyWalkingModule), typeof(AbpTelemetrySkyWalkingModule),
#elif OpenTelemetry
typeof(AbpTelemetryOpenTelemetryModule), typeof(AbpTelemetryOpenTelemetryModule),
#endif
typeof(AbpClaimsMappingModule),
typeof(AbpExporterMiniExcelModule), typeof(AbpExporterMiniExcelModule),
typeof(AbpClaimsMappingModule),
typeof(AbpEmailingPlatformModule), typeof(AbpEmailingPlatformModule),
typeof(AbpSmsPlatformModule), typeof(AbpSmsPlatformModule),
typeof(AbpSwashbuckleModule), typeof(AbpSwashbuckleModule),

9
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json

@ -26,8 +26,13 @@
}, },
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", "Default": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"Business": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", "AbpSaas": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"Framework": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" "AbpTenantManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpSettingManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpPermissionManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpFeatureManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpTextTemplating": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpLocalizationManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456"
}, },
"DistributedLock": { "DistributedLock": {
"IsEnabled": true, "IsEnabled": true,

2
aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj

@ -17,7 +17,7 @@
</PackageReference> </PackageReference>
<PackageReference Include="LINGYUN.Abp.Data.DbMigrator" /> <PackageReference Include="LINGYUN.Abp.Data.DbMigrator" />
<PackageReference Include="LINGYUN.Abp.Saas.EntityFrameworkCore" /> <PackageReference Include="LINGYUN.Abp.Saas.EntityFrameworkCore" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.MySql" Condition="'$(MySQL)'=='true'" /> <PackageReference Include="Volo.Abp.EntityFrameworkCore.MySql.Pomelo" Condition="'$(MySQL)'=='true'" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Condition="'$(SqlServer)'=='true'" /> <PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Condition="'$(SqlServer)'=='true'" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.Sqlite" Condition="'$(Sqlite)'=='true'" /> <PackageReference Include="Volo.Abp.EntityFrameworkCore.Sqlite" Condition="'$(Sqlite)'=='true'" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.Oracle" Condition="'$(Oracle)'=='true'" /> <PackageReference Include="Volo.Abp.EntityFrameworkCore.Oracle" Condition="'$(Oracle)'=='true'" />

26
aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigratorEntityFrameworkCoreModule.cs

@ -27,7 +27,7 @@ namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore;
typeof(ProjectNameEntityFrameworkCoreModule), typeof(ProjectNameEntityFrameworkCoreModule),
typeof(AbpSaasEntityFrameworkCoreModule), typeof(AbpSaasEntityFrameworkCoreModule),
#if MySQL #if MySQL
typeof(AbpEntityFrameworkCoreMySQLModule), typeof(AbpEntityFrameworkCoreMySQLPomeloModule),
#elif SqlServer #elif SqlServer
typeof(AbpEntityFrameworkCoreSqlServerModule), typeof(AbpEntityFrameworkCoreSqlServerModule),
#elif Sqlite #elif Sqlite
@ -45,30 +45,6 @@ public class ProjectNameDbMigratorEntityFrameworkCoreModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
// 配置连接字符串
Configure<AbpDbConnectionOptions>(options =>
{
// 业务数据库
options.Databases.Configure("ProjectName", database =>
{
database.MapConnection(
"ProjectName"
);
});
// abp框架数据库
options.Databases.Configure("Framework", database =>
{
database.MapConnection(
"AbpSaas",
"AbpTextTemplating",
"AbpSettingManagement",
"AbpFeatureManagement",
"AbpPermissionManagement",
"AbpLocalizationManagement"
);
});
});
// 配置Ef // 配置Ef
Configure<AbpDbContextOptions>(options => Configure<AbpDbContextOptions>(options =>
{ {

8
aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj

@ -27,13 +27,13 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj" /> <ProjectReference Include="..\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="appsettings.json"> <None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
</ItemGroup> </ItemGroup>
</Project> </Project>

8
aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json

@ -1,7 +1,13 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
"ProjectName": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", "ProjectName": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"Framework": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" "AbpSaas": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpTenantManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpSettingManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpPermissionManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpFeatureManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpTextTemplating": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456",
"AbpLocalizationManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456"
}, },
"DistributedLock": { "DistributedLock": {
"IsEnabled": true, "IsEnabled": true,

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

1
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj

@ -10,6 +10,7 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

Loading…
Cancel
Save