Upgrade to net10#416
Open
aaron-mcpherson wants to merge 68 commits into
Open
Conversation
Convert H.Infrastructure project from legacy .NET Framework format to modern SDK-style project format. This migration includes: - Updated project file to use Microsoft.NET.Sdk - Changed target framework from .NET Framework 4.8 to net10.0-windows - Removed legacy MSBuild properties and configuration sections - Consolidated package references into cleaner format - Removed manual file inclusions (now handled automatically by SDK) - Deleted AssemblyInfo.cs file (properties now in project file) - Added WPF-specific properties for Windows desktop support - Streamlined project structure while maintaining all functionality
Removed obsolete system references and packages, added modern ConfigurationManager package. This change modernizes the project dependencies by removing legacy .NET Framework references that are no longer needed and adding the appropriate .NET Standard/Core equivalent for configuration management. The changes include: - Removed legacy system references: System.ComponentModel.DataAnnotations, System.Configuration, System.Data.DataSetExtensions, and Microsoft.CSharp - Removed outdated NETStandard.Library package reference - Added System.Configuration.ConfigurationManager package for modern configuration access
Modernized the project file from legacy .NET Framework format to SDK-style format targeting .NET 10.0. Key changes include: - Replaced verbose MSBuild imports with simple `<Project Sdk=Microsoft.NET.Sdk>` - Updated target framework from .NET Framework 4.8 to net10.0 - Simplified property groups by removing redundant MSBuild properties - Reorganized PackageReferences into cleaner ItemGroup structure - Removed obsolete app.config and assembly info dependencies - Cleaned up file inclusions, converting many explicit `<None Include>` entries to implicit content files - Updated project references to use simplified syntax - Removed Resource1.Designer.cs file (1,315 lines of auto-generated code) - Streamlined EmbeddedResource handling with Update syntax The conversion maintains all essential functionality while significantly reducing project file complexity and leveraging modern .NET SDK conventions.
Remove obsolete and redundant package references from the project file, including System.Data.DataSetExtensions, Microsoft.CSharp, and NETStandard.Library which are no longer needed for modern .NET projects.
Remove NitrogenInputCalculator.cs and CarbonInputCalculator.cs from the carbon/nitrogen calculators. Convert H.Core.csproj from legacy .NET Framework format to modern SDK-style project format targeting .NET 10.0 with simplified structure and updated package references. Delete AssemblyInfo.cs and remove IFarmHelper.cs interface.
Remove legacy reference assemblies and update NuGet packages to latest versions. Cleaned up project file by removing manual references to .NET Framework assemblies like Microsoft.VisualBasic, System.ComponentModel.DataAnnotations, and others that are now included by default. Updated several NuGet packages including Newtonsoft.Json (13.0.3 → 13.0.4), System.Configuration.ConfigurationManager (8.0.0 → 10.0.1), System.Runtime.Caching (9.0.4 → 10.0.1), and System.Runtime.CompilerServices.Unsafe (6.0.0 → 6.1.2). Also removed the NETStandard.Library package reference as it's no longer needed.
Converted H.CLI.csproj from legacy .NET Framework format to modern SDK-style project format. Updated target framework from .NET Framework 4.8 to .NET 10.0. Consolidated project structure by: - Replacing verbose XML project definition with concise SDK format - Removing explicit file inclusions (now handled automatically) - Consolidating package references into a single ItemGroup - Simplifying project references to use modern format - Removing redundant property groups and build configurations - Eliminating manual assembly and resource file declarations - Adding Windows Forms support with UseWindowsForms property This modernization improves maintainability and aligns with current .NET project standards while preserving all essential functionality and dependencies.
Cleaned up project references by removing unused System dependencies (System.Configuration, System.Data.DataSetExtensions, Microsoft.CSharp) and System.Threading.Tasks.Extensions package. Updated System.Runtime.CompilerServices.Unsafe from 6.0.0 to 6.1.2 and replaced System.Configuration reference with explicit System.Configuration.ConfigurationManager package version 10.0.1.
Modernized H.Core.Test.csproj from legacy .NET Framework format to SDK-style project format. Updated target framework to .NET 10.0, simplified project structure by removing verbose MSBuild syntax, and consolidated package references and project references into cleaner ItemGroup sections. This change reduces the project file size significantly while maintaining all functionality and dependencies.
Removed System.Configuration reference and updated System.Runtime.CompilerServices.Unsafe to version 6.1.2. Added System.Configuration.ConfigurationManager package version 10.0.1 and removed System.Threading.Tasks.Extensions dependency.
Modernized H.Infrastructure.Test.csproj from legacy .NET Framework format to SDK-style project format. Removed verbose MSBuild configuration and simplified the project structure while maintaining the same dependencies and project references. Updated target framework to net10.0 and streamlined package references and project structure.
Removed unused System.IO.Compression reference from H.Infrastructure.Test project file to clean up dependencies.
…ructure.Test.csproj to .NET 10.0'
Migrated H.CLI.Test.csproj from legacy .NET Framework format to modern SDK-style project format. Updated target framework to .NET 10.0, simplified project structure by removing verbose MSBuild properties, and modernized package and project references. This reduces the project file size from 145 lines to 32 lines while maintaining all dependencies and functionality.
Removed legacy System.Configuration reference and updated NuGet packages. Replaced with System.Configuration.ConfigurationManager 10.0.1 for modern configuration support. Updated System.Runtime.CompilerServices.Unsafe from 6.0.0 to 6.1.2. Removed System.Threading.Tasks.Extensions dependency.
Converted H.Integration.csproj from legacy .NET Framework project format to modern SDK-style format. This migration includes: - Replaced verbose MSBuild project structure with concise SDK-style format - Updated target framework to net10.0 - Simplified package references and removed explicit MSBuild imports - Consolidated project references using simplified syntax - Removed redundant configuration properties and build settings - Maintained all existing dependencies and embedded resources - Removed obsolete files like app.config and AssemblyInfo.cs
Removed legacy assembly references and updated package versions. Replaced direct Microsoft.CSharp and System.Configuration references with modern PackageReference for System.Configuration.ConfigurationManager. Updated System.Runtime.CompilerServices.Unsafe from 6.0.0 to 6.1.2 and removed redundant System.Threading.Tasks.Extensions package.
…roj to .NET 10.0'
Downgrade all projects to .NET 8.0-windows for compatibility. Add Microsoft.NET.Test.Sdk to test projects for .NET 8 support. Add System.Drawing.Common to H.Content. Temporarily comment out VBIDE COM reference in H.CLI for .NET 8 compatibility.
Upgraded AutoMapper from v9.0.0 to v16.0.0 and updated all MapperConfiguration usages to include a NullLoggerFactory, as required by the new API. Added necessary using statements for Microsoft.Extensions.Logging.Abstractions. No changes to mapping logic. Also, explicitly ignored additional properties in Farm mapping and fixed _grazingViewItemMapper initialization in FieldResultsService. These changes ensure compatibility with the latest AutoMapper version.
Removed unused and redundant using/import statements from many files. Reordered and consolidated necessary usings for clarity and consistency. No functional changes; improves readability and maintainability.
Updated NuGet packages (Prism.Wpf, MSTest, Moq, etc.) to latest versions across all projects. Replaced Assert.ThrowsException<T> with Assert.Throws<T> and removed [ExpectedException] attributes in favor of explicit try-catch with Assert.Fail in test methods. Minor test method name corrections. No changes to application logic.
Make FinalSettings method virtual and override in derived classes
Signed-off-by: Aaron McPherson <33136427+aaron-mcpherson@users.noreply.github.com>
Fix soil data check and update CLI project settings
Signed-off-by: Aaron McPherson <33136427+aaron-mcpherson@users.noreply.github.com>
Add support for custom indoor housing temperature
Update perennial stand root input calculation logic
Apply moisture correction to productivity calculation
Signed-off-by: Aaron McPherson <33136427+aaron-mcpherson@users.noreply.github.com>
Add boolean to allow user to override perennial percentage return values
All project files now target .NET 10.0 or .NET 10.0-windows instead of .NET 8.0. This upgrade enables access to the latest features and improvements in .NET 10.0 and ensures the codebase remains up to date with current platform standards.
Changed target framework from net10.0 to net10.0-windows in H.CLI.Test, H.Content, H.Core.Test, H.Infrastructure.Test, and H.Integration projects to ensure compatibility with Windows-specific APIs and dependencies.
…projects H.CLI now targets net10.0 (no -windows suffix) so it can run on Linux. H.Core, H.Infrastructure, and H.Content multi-target net10.0;net10.0-windows with WPF, Prism.Wpf, and System.Drawing conditional on the Windows TFM. H.CLI uses Prism.Events instead of Prism.Wpf. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ange polyfill Guard WPF value converters, TreeHelper, ResponseToVisibilityConverter, and System.Drawing.Bitmap properties with #if WINDOWS so they compile out on net10.0. Add AddRange polyfill for ObservableCollection since that extension only exists in the WindowsDesktop runtime. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
new CultureInfo("en-CA") throws CultureNotFoundException when running
in invariant globalization mode. InfrastructureConstants now uses a
try/catch fallback to CultureInfo.InvariantCulture. CLILanguageConstants
uses string-based culture name matching instead of constructing CultureInfo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…bility Replace all @"\" string concatenation with Path.Combine() across 8 files in H.CLI so paths work on both Windows and Linux. Also fix DirectoryHandler to resolve command-line args with Path.GetFullPath before changing CWD, allowing the CLI to run from any directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When running in offline or container environments, the NASA climate API returns no data and farm.ClimateData becomes null, causing a crash. Now falls back to SLC polygon-based climate data (embedded in resources) and as a last resort creates empty ClimateData to prevent NullReferenceException. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
In read-only environments like AWS Lambda, writing to the application directory fails. When a farms path is passed as a command-line argument, use it directly and return early, bypassing the FarmsPathFile persistence mechanism that requires write access. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Aaron McPherson <33136427+aaron-mcpherson@users.noreply.github.com>
Update documentation
…rm-resolved Upgrade to net10 cross platform resolved
FodyWeavers.xsd is now excluded from version control to prevent tracking of generated or unnecessary files.
Updated H.Content.csproj to define WINDOWS constant for net10.0-windows. Added icons8_settings_50 and Settings_50_px bitmap properties to Resource.Designer.cs under WINDOWS compilation. Removed placeholder bitmap resource comment.
Add support for custom indoor housing temperature
…ied-farm) Signed-off-by: Aaron McPherson <33136427+aaron-mcpherson@users.noreply.github.com>
…copied-farm) Remove default fields and update .gitignore
Signed-off-by: Aaron McPherson <33136427+aaron-mcpherson@users.noreply.github.com>
…update Fix carbon bug and update user guide
The vstest.console.exe step was failing with "No test source files were specified" because the SDK-style upgrade moved test DLLs from bin/<Config>/ to bin/<Config>/net10.0-windows/, and the glob ./**/H.Core.Test/bin/<Config>/H.Core.Test.dll no longer matches. Switch to `dotnet test` which resolves test assemblies from the solution/csproj metadata automatically, and add actions/setup-dotnet to ensure the .NET 10 SDK is available on the runner. The old darenm/Setup-VSTest@v1 action is no longer needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix shelterbelt bug
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.