Commit 2ee46ac
authored
refactor: .NET 10 update (#355)
* chore: update project SDKs and target frameworks; remove obsolete Windows-specific converters
- Changed global.json to use new SDK versioning format.
- Updated Directory.Build.props to enable nullable reference types and continuous integration build settings.
- Refactored MADE.Collections project to target net8.0 and net10.0, switching to Microsoft.NET.Sdk.
- Deleted obsolete Windows-specific BooleanToStringValueConverter and DateTimeToStringValueConverter files.
- Updated MADE.Data.Converters to target net8.0 and net10.0, refactoring converters to remove partial class definitions.
- Updated MADE.Data.EFCore project to target net8.0 and net10.0, updating package references for EF Core.
- Updated all MADE.* projects to use Microsoft.NET.Sdk and target net8.0 and net10.0.
- Updated test projects to target net8.0 and net10.0, updating package references to latest versions.
* feat: migrate to System.Text.Json and drop third-party dependencies
Replace Newtonsoft.Json with System.Text.Json across Networking, Web, Web.Mvc, and Data.Serialization libraries. Replace JsonTypeMigrationSerializationBinder with JsonTypeMigrationConverter using System.Text.Json's JsonConverter API.
Remove Z.EntityFramework.Plus.EFCore from Data.EFCore, reimplementing OrderBy using expression trees. Add QueryableExtensions tests for OrderBy and Page.
Add CHANGELOG.md documenting all v3 breaking changes with migration guidance.
* refactor: modernize codebase with file-scoped namespaces, nullable annotations, and async improvements
- Convert all source and test files to file-scoped namespace declarations
- Add ConfigureAwait(false) to all 52 await expressions in library code
- Replace manual null checks with ArgumentNullException.ThrowIfNull (22 locations)
- Add nullable reference type annotations to public APIs (13 fixes across 11 files)
- Change IEventLogger methods from void to Task for proper async support
- Simplify JsonTypeMigrationConverter: rename AddTypeMigrationAsync to AddTypeMigration, replace SemaphoreSlim with lock
- Fix flaky EntityBaseTests by capturing timestamps around save operations
- Add comprehensive .editorconfig with modern .NET analysis rules
- Update CHANGELOG.md with v3 breaking changes and QOL improvements
* refactor: add nullable annotations to improve code safety and clarity
* refactor: enhance nullability annotations and improve code safety across multiple files
* refactor: enhance nullability annotations and improve code safety across multiple files
* docs: enhance documentation and features across multiple articles
- Updated threading.md to include ITimer interface and TaskExtensions for better async task handling.
- Added JsonResult for returning JSON with custom status codes in web-mvc.md.
- Introduced AuthenticatedUser and API versioning support in web.md.
- Revised intro.md to reflect updated target frameworks and added new features in various packages.
- Removed obsolete Media Image section from the table of contents.
- Updated docfx.json to target net10.0 and modified templates for a modern look.
- Created a new custom CSS file for improved styling on the landing page.
- Deleted outdated material template files to streamline the documentation structure.
- Adjusted table of contents to point to articles instead of docs.
* feat: add assertion helpers, async primitives, and EFCore extensions
New features across multiple packages:
- Testing: assertion extensions for objects, booleans, comparables,
strings, and exceptions (ShouldBeNull, ShouldBeTrue, ShouldThrow, etc.)
- Threading: AsyncLazy<T>, Debouncer, and Throttler
- Data.EFCore: soft-delete (ISoftDeletable) and audit trail
(IAuditableEntity) with DbContext extensions
- Data.Validation: IAsyncValidator and AsyncValidatorCollection
- Networking: MultipartFormDataPostNetworkRequest and
RetryDelegatingHandler with exponential backoff
- Web.Mvc: ForbiddenObjectResult (403) with controller extensions
Also adds CancellationToken support to async methods that were
missing it, and updates documentation for all new and existing
features.
* feat: add value converters and extensions for DateTime, string, and file size; enhance length and math conversions
* test: add tests for new features across all packages
* fix(tests): use mock handler for error tests, keep real service for success
The httpbin.org error tests were flaky in CI because the external
service can return transient errors (502) instead of the expected
status code (405). Success tests still hit httpbin.org to prove
real HTTP plumbing works. Error tests now use a MockHttpMessageHandler
for deterministic assertions.
* feat(networking): add INetworkRequestFactory for DI-friendly request creation
Wraps IHttpClientFactory to eliminate manual HttpClient management.
Supports named clients via WithClient() and one-line DI registration
with services.AddNetworkRequestFactory(). Documentation updated to
use the factory as the primary recommended approach.1 parent 53611a4 commit 2ee46ac
274 files changed
Lines changed: 16754 additions & 13194 deletions
File tree
- .github
- workflows
- assets
- docs
- articles
- features
- templates
- custom/public
- material
- partials
- styles
- src
- MADE.Collections
- Compare
- ObjectModel
- MADE.Data.Converters
- Constants
- Exceptions
- Extensions
- Strings
- MADE.Data.EFCore
- Converters
- Extensions
- MADE.Data.Serialization
- Json
- Binders
- Converters
- Exceptions
- MADE.Data.Validation.FluentValidation
- MADE.Data.Validation
- Exceptions
- Extensions
- Strings
- Validators
- MADE.Diagnostics
- Exceptions
- Logging
- MADE.Foundation
- Platform
- MADE.Networking
- Extensions
- Http
- Requests
- Json
- Streams
- Responses
- MADE.Runtime
- Actions
- Extensions
- MADE.Testing
- MADE.Threading
- MADE.Web.Mvc
- Extensions
- Responses
- MADE.Web
- Exceptions
- Extensions
- Identity
- Requests
- Responses
- tests
- MADE.Collections.Tests
- Fakes
- Tests
- MADE.Data.Converters.Tests
- Tests
- MADE.Data.EFCore.Tests
- Data
- Tests
- MADE.Data.Serialization.Tests
- Tests
- MADE.Data.Validation.FluentValidation.Tests
- Tests
- MADE.Data.Validation.Tests
- Tests
- MADE.Diagnostics.Tests
- Tests
- MADE.Networking.Tests
- Tests
- MADE.Testing.Tests
- Tests
- MADE.Threading.Tests
- Tests
- MADE.Web.Mvc.Tests
- Tests
- MADE.Web.Tests
- Tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | 21 | | |
23 | 22 | | |
24 | 23 | | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
28 | 32 | | |
29 | | - | |
| 33 | + | |
| 34 | + | |
30 | 35 | | |
31 | 36 | | |
32 | 37 | | |
33 | 38 | | |
34 | 39 | | |
35 | | - | |
36 | | - | |
37 | 40 | | |
38 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
39 | 44 | | |
40 | 45 | | |
41 | 46 | | |
| |||
45 | 50 | | |
46 | 51 | | |
47 | 52 | | |
48 | | - | |
49 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
50 | 60 | | |
51 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
52 | 65 | | |
53 | | - | |
54 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
55 | 79 | | |
56 | | - | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
57 | 115 | | |
58 | 116 | | |
59 | | - | |
| 117 | + | |
60 | 118 | | |
61 | 119 | | |
62 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
63 | 126 | | |
64 | 127 | | |
65 | 128 | | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | 129 | | |
70 | | - | |
| 130 | + | |
71 | 131 | | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
19 | 22 | | |
20 | 23 | | |
21 | 24 | | |
22 | | - | |
| 25 | + | |
23 | 26 | | |
24 | 27 | | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
| 28 | + | |
36 | 29 | | |
37 | 30 | | |
38 | | - | |
| 31 | + | |
39 | 32 | | |
40 | 33 | | |
41 | 34 | | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
| 35 | + | |
| 36 | + | |
47 | 37 | | |
48 | | - | |
| 38 | + | |
49 | 39 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
54 | 45 | | |
55 | 46 | | |
56 | 47 | | |
57 | | - | |
| 48 | + | |
58 | 49 | | |
59 | 50 | | |
60 | 51 | | |
61 | 52 | | |
62 | | - | |
| 53 | + | |
63 | 54 | | |
64 | 55 | | |
65 | 56 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
0 commit comments