Skip to content

Commit

Permalink
Merge pull request #36 from netcorepal/upgrad-to-v2.4.0
Browse files Browse the repository at this point in the history
use netcorepla-cloud-framework v2.4.0
  • Loading branch information
witskeeper authored Feb 26, 2025
2 parents d8b591a + 51fcc54 commit ee7bf51
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 28 deletions.
2 changes: 1 addition & 1 deletion eng/versions.props
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<VersionPrefix>2.3.0</VersionPrefix>
<VersionPrefix>2.4.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
</PropertyGroup>
</Project>
2 changes: 1 addition & 1 deletion template/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<NetCorePalVersion>2.3.0</NetCorePalVersion>
<NetCorePalVersion>2.4.0</NetCorePalVersion>
<FrameworkVersion>9.0.0</FrameworkVersion>
<ExtensionsVersion>9.0.0</ExtensionsVersion>
<EntityFrameworkVersion>9.0.0</EntityFrameworkVersion>
Expand Down
2 changes: 2 additions & 0 deletions template/src/ABC.Template.Web/ABC.Template.Web.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<PackageReference Include="NetCorePal.Extensions.DistributedLocks.Redis" Version="$(NetCorePalVersion)" />
<PackageReference Include="NetCorePal.Extensions.DistributedTransactions.CAP.MySql" Version="$(NetCorePalVersion)" />
<PackageReference Include="NetCorePal.Extensions.MultiEnv" Version="$(NetCorePalVersion)" />
<PackageReference Include="NetCorePal.Extensions.MultiEnv.CAP.RabbitMQ" Version="$(NetCorePalVersion)" />
<PackageReference Include="NetCorePal.Extensions.MicrosoftServiceDiscovery" Version="$(NetCorePalVersion)" />
<PackageReference Include="NetCorePal.Extensions.Primitives" Version="$(NetCorePalVersion)" />
<PackageReference Include="NetCorePal.Extensions.Jwt.StackExchangeRedis" Version="$(NetCorePalVersion)" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.2.efcore.9.0.0" />
Expand Down
35 changes: 22 additions & 13 deletions template/src/ABC.Template.Web/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
using Serilog.Formatting.Json;
using Hangfire;
using Hangfire.Redis.StackExchange;
using NetCorePal.Extensions.NewtonsoftJson;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Refit;
Expand All @@ -33,10 +32,8 @@
#region SignalR

builder.Services.AddHealthChecks();
builder.Services.AddMvc().AddNewtonsoftJson(options =>
{
options.SerializerSettings.Converters.Add(new NewtonsoftEntityIdJsonConverter());
});
builder.Services.AddMvc()
.AddNewtonsoftJson(options => { options.SerializerSettings.AddNetCorePalJsonConverters(); });
builder.Services.AddSignalR();

#endregion
Expand All @@ -53,7 +50,7 @@

#region 身份认证

var redis = ConnectionMultiplexer.Connect(builder.Configuration.GetConnectionString("Redis")!);
var redis = await ConnectionMultiplexer.ConnectAsync(builder.Configuration.GetConnectionString("Redis")!);
builder.Services.AddSingleton<IConnectionMultiplexer>(_ => redis);
builder.Services.AddDataProtection()
.PersistKeysToStackExchangeRedis(redis, "DataProtection-Keys");
Expand Down Expand Up @@ -128,9 +125,8 @@
.AddIIntegrationEventConverter(typeof(Program))
.UseCap(typeof(Program))
.AddContextIntegrationFilters();
builder.Services.AddMultiEnv(envOption => envOption.ServiceName = "Abc.Template")
.AddEnvIntegrationFilters()
.AddEnvServiceSelector();


builder.Services.AddCap(x =>
{
x.JsonSerializerOptions.Converters.Add(new EntityIdJsonConverterFactory());
Expand All @@ -147,18 +143,30 @@
.AddKnownExceptionValidationBehavior()
.AddUnitOfWorkBehaviors());

#region 多环境支持与服务注册发现

builder.Services.AddMultiEnv(envOption => envOption.ServiceName = "Abc.Template")
.UseMicrosoftServiceDiscovery();
builder.Services.AddConfigurationServiceEndpointProvider();
builder.Services.AddEnvFixedConnectionChannelPool();

#endregion

#region 远程服务客户端配置

var ser = new NewtonsoftJsonContentSerializer(new JsonSerializerSettings
var jsonSerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
NullValueHandling = NullValueHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
};
jsonSerializerSettings.AddNetCorePalJsonConverters();
var ser = new NewtonsoftJsonContentSerializer(jsonSerializerSettings);
var settings = new RefitSettings(ser);
builder.Services.AddRefitClient<IUserServiceClient>(settings)
.ConfigureHttpClient(client =>
client.BaseAddress = new Uri(builder.Configuration.GetValue<string>("UserService:BaseUrl")!))
client.BaseAddress = new Uri(builder.Configuration.GetValue<string>("https+http://user:8080")!))
.AddMultiEnvMicrosoftServiceDiscovery() //多环境服务发现支持
.AddStandardResilienceHandler(); //添加标准的重试策略

#endregion
Expand All @@ -170,6 +178,7 @@

#endregion


var app = builder.Build();
if (app.Environment.IsDevelopment())
{
Expand Down Expand Up @@ -211,7 +220,7 @@
}
finally
{
await Log.CloseAndFlushAsync();
await Log.CloseAndFlushAsync();
}

#pragma warning disable S1118
Expand Down
23 changes: 23 additions & 0 deletions template/src/ABC.Template.Web/appsettings.Development.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,28 @@
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"ConnectionStrings": {
"MySql": "Server=localhost;User ID=root;Password=123456;Database=demo;SslMode=none",
"Redis": "localhost:6379"
},
"RabbitMQ": {
"HostName": "localhost",
"UserName": "guest",
"Password": "guest",
"VirtualHost": "/",
"Port": 5672
},
"Services": {
"user": {
"https": [
"https://user:8443"
]
},
"user-v2": {
"https": [
"https://user-v2:8443"
]
}
}
}
14 changes: 1 addition & 13 deletions template/src/ABC.Template.Web/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,5 @@
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"MySql": "Server=localhost;User ID=root;Password=123456;Database=demo;SslMode=none",
"PostgreSQL": "Host=localhost;Username=postgres;Password=123456;Database=demo",
"Redis": "localhost:6379"
},
"RabbitMQ": {
"HostName": "localhost",
"UserName": "guest",
"Password": "guest",
"VirtualHost": "/",
"Port": 5672
}
"AllowedHosts": "*"
}

0 comments on commit ee7bf51

Please sign in to comment.