Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to support .NET 7 & 8 #346

Merged
merged 3 commits into from
Dec 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,20 @@ jobs:
echo "BUILD_VERSION=$version" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
shell: pwsh

- name: Setup .NET 5.0
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.x
dotnet-version: 6.0.x

- name: Setup .NET 6.0
- name: Setup .NET 7.0
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
dotnet-version: 7.0.x

- name: Setup .NET 8.0
uses: actions/setup-dotnet@v1
with:
dotnet-version: 8.0.x

- name: Restore dependencies
run: dotnet restore $SOLUTION
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,16 @@ jobs:
with:
dotnet-version: 6.0.x

- name: Setup .NET 7.0
uses: actions/setup-dotnet@v1
with:
dotnet-version: 7.0.x

- name: Setup .NET 8.0
uses: actions/setup-dotnet@v1
with:
dotnet-version: 8.0.x

- name: Setup MSBuild
uses: microsoft/[email protected]

Expand Down
2 changes: 1 addition & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive"/>
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/MADE.Data.Converters/MADE.Data.Converters.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="MSBuild.Sdk.Extras">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;uap10.0.17763</TargetFrameworks>
<TargetFrameworks>netstandard2.0;uap10.0.19041</TargetFrameworks>
<Product>MADE.NET Data Converters</Product>
<Description>
MADE.NET Data Converters provide out-of-the-box value converters for taking values of one type and changing them to another.
Expand Down
18 changes: 14 additions & 4 deletions src/MADE.Data.EFCore/MADE.Data.EFCore.csproj
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
<Project Sdk="MSBuild.Sdk.Extras">

<PropertyGroup>
<TargetFrameworks>net6.0</TargetFrameworks>
<TargetFrameworks>net6.0;net7.0;net8.0</TargetFrameworks>
<Product>MADE.NET for EF Core</Product>
<Description>
MADE.NET for EF Core builds on the base Entity Framework library to provide base classes and helpers for maintaining data in databases.
</Description>
<PackageTags>MADE EFCore Entity Framework Extensions Queryable DbContext</PackageTags>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.10" />
<PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="6.15.2" />
<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.25" />
<PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="6.101.1.3" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net7.0'">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.14" />
<PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="7.101.1.3" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net8.0'">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
<PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="8.101.1.3" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="FluentValidation" Version="11.5.2" />
<PackageReference Include="FluentValidation" Version="11.9.0" />
</ItemGroup>

<ItemGroup>
Expand Down
47 changes: 3 additions & 44 deletions src/MADE.Diagnostics/AppDiagnostics.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ namespace MADE.Diagnostics
/// </summary>
public class AppDiagnostics : IAppDiagnostics
{
#if __ANDROID__
private UncaughtExceptionHandler javaExceptionHandler;
#endif

/// <summary>
/// Initializes a new instance of the <see cref="AppDiagnostics"/> class.
/// </summary>
Expand Down Expand Up @@ -63,17 +59,9 @@ public async Task StartRecordingDiagnosticsAsync()

#if WINDOWS_UWP
Windows.UI.Xaml.Application.Current.UnhandledException += this.OnAppUnhandledException;
#elif NETSTANDARD2_0 || __ANDROID__ || __IOS__
#elif NETSTANDARD2_0
AppDomain.CurrentDomain.UnhandledException += this.OnAppUnhandledException;
#endif

#if __ANDROID__
Android.Runtime.AndroidEnvironment.UnhandledExceptionRaiser += this.OnAndroidAppUnhandledException;

this.javaExceptionHandler = new UncaughtExceptionHandler(this.OnJavaUncaughtException);
Java.Lang.Thread.DefaultUncaughtExceptionHandler = this.javaExceptionHandler;
#endif

TaskScheduler.UnobservedTaskException += this.OnTaskUnobservedException;

await Task.CompletedTask;
Expand All @@ -91,14 +79,9 @@ public void StopRecordingDiagnostics()

#if WINDOWS_UWP
Windows.UI.Xaml.Application.Current.UnhandledException -= this.OnAppUnhandledException;
#elif NETSTANDARD2_0 || __ANDROID__ || __IOS__
#elif NETSTANDARD2_0
AppDomain.CurrentDomain.UnhandledException -= this.OnAppUnhandledException;
#endif

#if __ANDROID__
Android.Runtime.AndroidEnvironment.UnhandledExceptionRaiser -= this.OnAndroidAppUnhandledException;
#endif

TaskScheduler.UnobservedTaskException -= this.OnTaskUnobservedException;

this.IsRecordingDiagnostics = false;
Expand Down Expand Up @@ -128,7 +111,7 @@ private void OnAppUnhandledException(object sender, Windows.UI.Xaml.UnhandledExc
? $"An unhandled exception was thrown. Error: {args.Exception}"
: "An unhandled exception was thrown. Error: No exception information was available.");
}
#elif NETSTANDARD2_0 || __ANDROID__ || __IOS__
#elif NETSTANDARD2_0
private void OnAppUnhandledException(object sender, UnhandledExceptionEventArgs args)
{
if (args.IsTerminating)
Expand All @@ -149,29 +132,5 @@ private void OnAppUnhandledException(object sender, UnhandledExceptionEventArgs
this.ExceptionObserved?.Invoke(this, new ExceptionObservedEventArgs(correlationId, ex));
}
#endif

#if __ANDROID__
private void OnAndroidAppUnhandledException(object sender, Android.Runtime.RaiseThrowableEventArgs args)
{
args.Handled = true;

var correlationId = Guid.NewGuid();

this.EventLogger.WriteCritical($"An unhandled exception was thrown. Correlation ID: {correlationId}. Error: {args.Exception}.");
this.ExceptionObserved?.Invoke(this, new ExceptionObservedEventArgs(correlationId, args.Exception));
}

private void OnJavaUncaughtException(Exception ex)
{
var correlationId = Guid.NewGuid();

this.EventLogger.WriteCritical(
ex != null
? $"An unhandled exception was thrown. Correlation ID: {correlationId}. Error: {ex}."
: $"An unhandled exception was thrown. Correlation ID: {correlationId}. Error: No exception information was available.");

this.ExceptionObserved?.Invoke(this, new ExceptionObservedEventArgs(correlationId, ex));
}
#endif
}
}

This file was deleted.

4 changes: 2 additions & 2 deletions src/MADE.Diagnostics/MADE.Diagnostics.csproj
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<Project Sdk="MSBuild.Sdk.Extras">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;uap10.0.17763;xamarinios10;xamarinmac20;MonoAndroid10.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;uap10.0.19041</TargetFrameworks>
<Product>MADE.NET Diagnostics</Product>
<Description>
MADE.NET Diagnostics provides helpers to make debugging and logging results in your applications easier.
</Description>
<PackageTags>MADE Diagnostics Extensions Logging EventLog Logger Exception Stopwatch</PackageTags>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'=='uap10.0.17763' Or '$(TargetFramework)'=='xamarinios10' Or '$(TargetFramework)'=='MonoAndroid10.0'">
<ItemGroup Condition="'$(TargetFramework)'=='uap10.0.19041'">
<PackageReference Include="XPlat.Storage" Version="1.8.1" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/MADE.Networking/MADE.Networking.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions src/MADE.Web.Mvc/MADE.Web.Mvc.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="MSBuild.Sdk.Extras">

<PropertyGroup>
<TargetFrameworks>net6.0</TargetFrameworks>
<TargetFrameworks>net6.0;net7.0;net8.0</TargetFrameworks>
<Product>MADE.NET for ASP.NET Core MVC</Product>
<Description>
MADE.NET for ASP.NET Core MVC builds on features of ASP.NET Core MVC to provide additional MVC-specific functionality to improve your web applications.
Expand All @@ -14,7 +14,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

<ItemGroup>
Expand Down
15 changes: 7 additions & 8 deletions src/MADE.Web/Extensions/ApiVersioningExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@

namespace MADE.Web.Extensions
{
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Versioning;
using Asp.Versioning;
using Microsoft.Extensions.DependencyInjection;

/// <summary>
Expand All @@ -24,15 +23,15 @@ public static IServiceCollection AddApiVersionSupport(
int defaultMajor = 1,
int defaultMinor = 0)
{
services.AddVersionedApiExplorer(options => options.GroupNameFormat = "'v'VVV");

services.AddApiVersioning(options =>
var apiVersioningBuilder = services.AddApiVersioning(options =>
{
options.DefaultApiVersion = new ApiVersion(defaultMajor, defaultMinor);
options.AssumeDefaultVersionWhenUnspecified = true;
options.ReportApiVersions = true;
});

apiVersioningBuilder.AddApiExplorer(options => options.GroupNameFormat = "'v'VVV");

return services;
}

Expand All @@ -50,16 +49,16 @@ public static IServiceCollection AddApiVersionHeaderSupport(
int defaultMajor = 1,
int defaultMinor = 0)
{
services.AddVersionedApiExplorer(options => options.GroupNameFormat = "'v'VVV");

services.AddApiVersioning(options =>
var apiVersioningBuilder = services.AddApiVersioning(options =>
{
options.DefaultApiVersion = new ApiVersion(defaultMajor, defaultMinor);
options.AssumeDefaultVersionWhenUnspecified = true;
options.ReportApiVersions = true;
options.ApiVersionReader = new HeaderApiVersionReader(apiHeaderName);
});

apiVersioningBuilder.AddApiExplorer(options => options.GroupNameFormat = "'v'VVV");

return services;
}
}
Expand Down
21 changes: 17 additions & 4 deletions src/MADE.Web/MADE.Web.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="MSBuild.Sdk.Extras">

<PropertyGroup>
<TargetFrameworks>net6.0</TargetFrameworks>
<TargetFrameworks>net6.0;net7.0;net8.0</TargetFrameworks>
<Product>MADE.NET for ASP.NET Core</Product>
<Description>
MADE.NET for ASP.NET Core builds on features of ASP.NET Core to provide better support for your web API or MVC applications, including standardized pagination support, global authenticated user accessor, standardized exception handling with JSON responses, and API versioning.
Expand All @@ -14,9 +14,22 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="5.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
<PackageReference Include="Asp.Versioning.Mvc" Version="6.4.1" />
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="6.4.0" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net7.0'">
<PackageReference Include="Asp.Versioning.Mvc" Version="7.1.1" />
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.1.0" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net8.0'">
<PackageReference Include="Asp.Versioning.Mvc" Version="8.0.0" />
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.0.0" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion tests/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/>
</ItemGroup>

</Project>
Loading
Loading