Skip to content

Commit ca633bb

Browse files
committed
Update to .NET 9.0 and modernize C# syntax patterns
- Upgrade target framework from net8.0 to net9.0 across all projects - Replace traditional null checks with ArgumentNullException.ThrowIfNull() - Modernize collection initializers using [] syntax instead of new() - Convert constructors to primary constructor syntax where appropriate - Add global using statements to reduce code duplication - Update bootloader service signatures to support enhanced progress reporting - Fix clipboard service API usage for Avalonia compatibility - Remove unused test placeholders and update test assertions
1 parent a502501 commit ca633bb

28 files changed

+135
-111
lines changed

Directory.Build.props

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<Nullable>enable</Nullable>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
@@ -37,7 +37,8 @@
3737
<DebugSymbols>true</DebugSymbols>
3838
<DebugType>portable</DebugType>
3939
<Optimize>false</Optimize>
40-
<!-- Avoid overly strict determinism which can sometimes confuse source mapping in certain toolchains -->
40+
<!-- Avoid overly strict determinism which can sometimes confuse source mapping in certain
41+
toolchains -->
4142
<Deterministic>false</Deterministic>
4243
</PropertyGroup>
43-
</Project>
44+
</Project>

src/S7Tools.Core/Exceptions/ValidationException.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class ValidationException : S7ToolsException
2727
public ValidationException(string message)
2828
: base(message)
2929
{
30-
ValidationErrors = new List<string> { message };
30+
ValidationErrors = [message];
3131
}
3232

3333
/// <summary>
@@ -37,7 +37,7 @@ public ValidationException(string message)
3737
public ValidationException(IEnumerable<string> validationErrors)
3838
: base(BuildMessage(validationErrors))
3939
{
40-
ValidationErrors = validationErrors?.ToList() ?? new List<string>();
40+
ValidationErrors = validationErrors?.ToList() ?? [];
4141
}
4242

4343
/// <summary>
@@ -49,7 +49,7 @@ public ValidationException(string propertyName, string message)
4949
: base($"{propertyName}: {message}")
5050
{
5151
PropertyName = propertyName;
52-
ValidationErrors = new List<string> { message };
52+
ValidationErrors = [message];
5353
}
5454

5555
/// <summary>
@@ -60,7 +60,7 @@ public ValidationException(string propertyName, string message)
6060
public ValidationException(string message, Exception innerException)
6161
: base(message, innerException)
6262
{
63-
ValidationErrors = new List<string> { message };
63+
ValidationErrors = [message];
6464
}
6565

6666
/// <summary>

src/S7Tools.Core/GlobalUsings.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
global using System;
2+
global using System.Collections.Generic;
3+
global using System.Linq;
4+
global using System.IO;
5+
global using System.Threading;
6+
global using System.Threading.Tasks;
7+
global using System.Buffers.Binary;

src/S7Tools.Core/Models/BootloaderResult.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Collections.Generic;
1+
22

33
namespace S7Tools.Core.Models;
44

src/S7Tools.Core/Models/Jobs/ResourceLockChangedEventArgs.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class ResourceLockChangedEventArgs : EventArgs
3333
/// <param name="jobId">The job ID (optional).</param>
3434
public ResourceLockChangedEventArgs(ResourceKey resource, ResourceLockAction action, int? jobId = null)
3535
{
36-
ArgumentNullException.ThrowIfNull(resource);
36+
3737
Resource = resource;
3838
Action = action;
3939
JobId = jobId;

src/S7Tools.Core/Models/MemoryBlock.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Buffers.Binary;
3-
using System.Linq;
4-
using System.Text;
1+
52

63
namespace S7Tools.Core.Models;
74

@@ -20,7 +17,9 @@ namespace S7Tools.Core.Models;
2017
/// <summary>
2118
/// Gets the raw memory data.
2219
/// </summary>
20+
#pragma warning disable CA1819 // Properties should not return arrays
2321
public byte[] Data { get; }
22+
#pragma warning restore CA1819
2423

2524
/// <summary>
2625
/// Initializes a new instance of the <see cref="MemoryBlock"/> struct.

src/S7Tools.Core/Models/SocatConfiguration.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ public string GenerateCommand(string serialDevice)
332332
}
333333

334334
// Build TCP-LISTEN part
335-
var tcpOptions = new List<string>();
335+
List<string> tcpOptions = [];
336336
if (EnableFork)
337337
{
338338
tcpOptions.Add("fork");
@@ -352,7 +352,7 @@ public string GenerateCommand(string serialDevice)
352352
command.Append($" {tcpPart}");
353353

354354
// Build serial device part
355-
var serialOptions = new List<string>();
355+
List<string> serialOptions = [];
356356
if (SerialRawMode)
357357
{
358358
serialOptions.Add("raw");
@@ -382,7 +382,7 @@ public string GenerateCommand(string serialDevice)
382382
/// <returns>A list of validation error messages, or empty list if valid.</returns>
383383
public List<string> Validate()
384384
{
385-
var errors = new List<string>();
385+
List<string> errors = [];
386386

387387
if (TcpPort is < 1 or > 65535)
388388
{
@@ -423,7 +423,7 @@ public List<string> Validate()
423423
/// <returns>A string describing the key configuration parameters.</returns>
424424
public override string ToString()
425425
{
426-
var features = new List<string>();
426+
List<string> features = [];
427427

428428
if (Verbose)
429429
{

src/S7Tools.Core/Validation/BaseValidator.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public abstract class BaseValidator<T> : IValidator<T>
3434
protected BaseValidator(ILogger logger)
3535
{
3636
Logger = logger ?? throw new ArgumentNullException(nameof(logger));
37-
Rules = new List<ValidationRule<T>>();
37+
Rules = [];
3838
ConfigureRules();
3939
}
4040

@@ -47,7 +47,7 @@ public virtual ValidationResult Validate(T instance)
4747
return ValidationResult.Failure("Instance", "Instance cannot be null", "NULL_INSTANCE");
4848
}
4949

50-
var errors = new List<ValidationError>();
50+
List<ValidationError> errors = [];
5151

5252
Logger.LogDebug("Starting validation for {Type}", typeof(T).Name);
5353

@@ -84,7 +84,7 @@ public virtual async Task<ValidationResult> ValidateAsync(T instance, Cancellati
8484
return ValidationResult.Failure("Instance", "Instance cannot be null", "NULL_INSTANCE");
8585
}
8686

87-
var errors = new List<ValidationError>();
87+
List<ValidationError> errors = [];
8888

8989
Logger.LogDebug("Starting async validation for {Type}", typeof(T).Name);
9090

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
global using System;
2+
global using System.Collections.Generic;
3+
global using System.Linq;
4+
global using Microsoft.Extensions.Logging;

src/S7Tools/App.axaml.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
1-
using System;
21
using System.Reactive;
3-
using System.Threading.Tasks;
4-
using Avalonia;
5-
using Avalonia.Controls;
62
using Avalonia.Controls.ApplicationLifetimes;
7-
using Avalonia.Markup.Xaml;
83
using Microsoft.Extensions.DependencyInjection;
9-
using Microsoft.Extensions.Logging;
104
using S7Tools.Core.Interfaces.Services;
115
using S7Tools.Core.Models.Configuration;
126
using S7Tools.Core.Resources;
137
using S7Tools.Extensions;
148
using S7Tools.Models;
159
using S7Tools.Resources;
1610
using S7Tools.Services.Interfaces;
17-
using S7Tools.ViewModels;
1811
using S7Tools.ViewModels.Dialogs;
19-
using S7Tools.Views;
2012
using S7Tools.Views.Dialogs;
2113
using S7Tools.Views.Layout;
2214

0 commit comments

Comments
 (0)