|
1 | 1 | # CSLA 10 releases |
2 | 2 |
|
3 | | -CSLA 10 is a substantial update to CSLA .NET, adding support for .NET 10, removing .NET 8, and many enhancements and bug fixes. |
| 3 | +CSLA 10 is a substantial update to CSLA .NET, adding support for .NET 10 and including many enhancements and bug fixes. |
| 4 | + |
| 5 | +For detailed migration guidance, see [Upgrading to CSLA 10](docs/Upgrading%20to%20CSLA%2010.md). |
4 | 6 |
|
5 | 7 | ## CSLA .NET version 10.0.0 release |
6 | 8 |
|
7 | | -Primary changes in this release include: |
| 9 | +### Highlights |
8 | 10 |
|
| 11 | +**Platform Updates** |
9 | 12 | * Add support for .NET 10 |
10 | | -* Add support for C# nullable reference types (NRT) throughout the codebase |
| 13 | +* Supports .NET Framework 4.6.2+ |
| 14 | + |
| 15 | +**Nullable Reference Types (NRT)** |
| 16 | +* Full nullable reference type support throughout the entire codebase |
| 17 | +* Improved API clarity with explicit nullability annotations |
| 18 | +* Note: Assigning CSLA properties in constructors is no longer supported due to NRT changes |
| 19 | + |
| 20 | +**Observability** |
| 21 | +* New OpenTelemetry instrumentation for data portal operations |
| 22 | +* Metrics for total calls, completed calls, failed calls, and call duration |
| 23 | +* Integration with Prometheus, Grafana, Azure Monitor, and .NET Aspire dashboards |
| 24 | + |
| 25 | +**Rules Engine Enhancements** |
| 26 | +* New `IUnhandledAsyncRuleExceptionHandler` interface for handling exceptions in async rules |
| 27 | +* New `RuleContextModes` enum for fine-grained control over when rules execute |
| 28 | +* Option to disable DataAnnotations scanning for improved performance |
| 29 | + |
| 30 | +**Data Portal Improvements** |
| 31 | +* `IDataPortal` and `IChildDataPortal` now return `ICslaObject` for improved trimming support |
| 32 | +* Binary serialization for metastate data (improved performance) |
| 33 | +* New `IMobileObjectMetastate` interface for custom serializer implementations |
| 34 | +* Principal caching removed for better multi-threaded behavior |
| 35 | + |
| 36 | +**Extensibility** |
| 37 | +* Virtual `Deserialized()` method for custom post-deserialization logic |
| 38 | +* `IDataErrorInfo` and `INotifyDataErrorInfo` now provide virtual methods for customization |
| 39 | +* `InjectAttribute.AllowNull` property for optional service injection |
| 40 | +* `RevalidatingInterceptor` now supports skipping validation during Delete operations |
| 41 | + |
| 42 | +**Other Enhancements** |
| 43 | +* `TransactionIsolationLevel.Snapshot` support |
| 44 | +* `FriendlyName` property on XAML `PropertyInfo` component |
| 45 | +* `ViewModel<T>.SaveAsync` and `CslaDataProvider.Refresh` now return `Task` instead of `async void` |
| 46 | + |
| 47 | +### Breaking Changes |
| 48 | + |
| 49 | +This is a major release with several breaking changes. Please review the [Upgrading to CSLA 10](docs/Upgrading%20to%20CSLA%2010.md) document for detailed migration guidance. |
| 50 | + |
| 51 | +Key breaking changes include: |
| 52 | +* Cannot assign CSLA properties in constructors |
| 53 | +* `IDataPortal`/`IChildDataPortal` interface changes |
| 54 | +* `RevalidatingInterceptor` constructor changes |
| 55 | +* Various API changes for nullable reference type support |
| 56 | +* `Csla.Server.DataPortal` and `Csla.Rules.BusinessRules` constructor changes |
11 | 57 |
|
12 | 58 | ### Supported Platforms |
13 | 59 |
|
14 | | -* .NET 10 |
| 60 | +* .NET 8 through 10 |
15 | 61 | * .NET Framework 4.6.2 through 4.8 |
16 | | -* Blazor |
| 62 | +* Blazor (Server, WebAssembly, Auto) |
17 | 63 | * MAUI |
18 | 64 | * ASP.NET Core MVC, Razor Pages, Web API |
19 | 65 | * Windows Forms, WPF |
20 | 66 | * ASP.NET MVC 5, WebForms |
21 | 67 |
|
22 | 68 | Also expected to work on: |
23 | 69 |
|
24 | | -* Uno.Platform |
| 70 | +* Uno Platform |
25 | 71 | * Avalonia |
26 | 72 |
|
27 | 73 | ### Change List |
28 | 74 |
|
29 | | -* https://github.com/MarimerLLC/csla/compare/v9.1.0...HEAD |
| 75 | +* https://github.com/MarimerLLC/csla/compare/v9.1.0...v10.0.0 |
30 | 76 |
|
31 | 77 | ### Contributors |
32 | 78 |
|
33 | | -* @rockfordlhotka |
34 | | -* @SimonCropp |
35 | | -* @StefanOssendorf |
36 | | -* @jasonbock |
37 | | -* others to be added... |
| 79 | +* [@rockfordlhotka](https://github.com/rockfordlhotka) |
| 80 | +* [@StefanOssendorf](https://github.com/StefanOssendorf) |
| 81 | +* [@SimonCropp](https://github.com/SimonCropp) |
| 82 | +* [@Bowman74](https://github.com/Bowman74) |
| 83 | +* [@xal1983](https://github.com/xal1983) |
| 84 | +* [@Youssef1313](https://github.com/Youssef1313) |
38 | 85 |
|
39 | | -Thank you all so much for your support! |
| 86 | +Thank you all for your contributions! |
0 commit comments