Releases: OpenRIAServices/OpenRiaServices
AspNetCore 1.3.1
New HTTP status codes
- Submit can now return 409 and 422 (for conflicts and validation failure)
- Use 415 unsupported media type instead of 400 for unsupported content type
What's Changed
- Update gitversion task to v3 by @Daniel-Svensson in #524
- AspNetCore: Improve HTTP Status code on Submit failed and wrong ContentType by @Daniel-Svensson in #526
Full Changelog: v5.6.0...aspnetcore-1.3.1
AspNetCore 1.3.0 & 5.6.0
AspNetCore 1.3.0 (#518)
- New Http status codes returned
- 401 unauthorized, 403 forbidden and 422 Unprocessable Entity (for validation failure)
- IMPORTANT: POSSIBLE BREAKING CHANGE: this will not work with the obsolete wcf based domain client
- New Methods on
IServiceCollection
for Setup and registration of DomainServices- AddOpenRiaServices now accept a callback for configuring Options
AddOpenRiaServices(Action<OpenRiaServicesOptions> configure)
- New helper methods for registering DomainServices
AddDomainService<TDomainService>()
AddDomainService(typeof(DomainService))
AddDomainServices(params IEnumerable<Assembly>)
- AddOpenRiaServices now accept a callback for configuring Options
- Simplified
MapOpenRiaServices
- Add
AddRegisteredDomainServices()
to "map" (add endpoints) for all registered domain services - Added new overloads of
MapOpenRiaServices()
which do not require a callback, it will map app registered domain services MapOpenRiaServices
now throws if there are no domain services registered
- Add
- Added new OpenRiaServicesOptions for configuration openria services
- Se Readme for a description of the settings
- The
StatusCodes
property on exception will now be 403 when authorization fails but the user is logged in as an authenticated user (it was 401 before) - Add more nullability annotations to AspNetCore hosting
5.6.0
This is proably the last version with for WCF based hosting
BREAKING CHANGES:
- Drops support for .NET6 and .netstandard2.0
- Stop shipping WCF based domainclient as part of OpenRiaServices.Client.Core nuget
The WebDomainClient has been depreciated since 2023- code gen
- NOTE: WCF based hosting is considered depreciated and will be removed in the near future
Client Improvements
- Handle exceptions when Exception StatusCode is 403 (Required for AspNetCore 1.3.0)
- Set Accept header to "application/msbin1" (#521) for BinarHttpDomainClient
- Client nugets no longer have a dependency on
System.ServiceModel
General Improvements
-
Update nuget package dependencies
-
Update to latest version of Mono.Cecil
-
Updated integration test to run on .NET 8 instead of .NET Framework
-
Updated E2E integration tests no longer use WCF based client
-
Added some trimming annotations
-
What's Changed
-
Update nugets and Add some trimming annotations by @Daniel-Svensson in #517
-
Update azure-pipelines.yml for Azure Pipelines by @Daniel-Svensson in #519
-
Use sonarcloudv3 in azure-pipelines.yml by @Daniel-Svensson in #520
-
Set accept header for binary endpoint by @Daniel-Svensson in #521
-
AspNetCore: Add Options and improve Setup by @Daniel-Svensson in #518
-
Drop support for .NET 6, target .NET8 as minimum and update nuget dependencies by @Daniel-Svensson in #523
Full Changelog: v5.5.0...v5.6.0
v5.5.0 / EntityFrameworkCore 3.1.0 / AspNetCore 1.2.0
OpenRiaServices.EntityFrameworkCore 3.1.0
- Initial support for Owned Entities for one-to-one navigation properties (#500)
- Owned entities without explicit keys are mapped to OpenRiaServices's [Complex Types]
- Owned entities with explicit keys are generated as normal "Entities" but are automatically annotated with
[Composition]
- EFCore "Complex Types" introduced in EFCore 8.0 does not have any special handling
- Add new helper method
AttachAsModified<TEntity>(TEntity entity)
(#506)- It works similar to the existing
AttachAsModified
extension methods onDbSet
but- is smarter (works with and without original entity)
- reduces code that needs to be written and works both with and without "OriginalEntity" (
RoundTripAttribute
)
- It works similar to the existing
- Add package README to
OpenRiaServices.Server.EntityFrameworkCore
AspNetCore 1.2.0
- Add support for specifying endpoints routes (#508, issue: #507)
You can choose between 3 different approaches to how the endpoint routes are generated.
See AspNetCore readme for more details.WCF
will generate the same routes as WCF RIA ServicesSome-Namespace-TypeName.svc/binary/Method
FullName
will generate routes with the full name of the DomainServiceSome-Namespace-TypeName/Method
Name
will generate routes with the short name of the DomainServiceTypeName/Method
Code generation
- Log whole Exceptions in DomainServiceCatalog instead of just message (#502), for better error messages on code generation failure
- Call "dotnet CodeGenTask.dll" instead of "CodeGenTask.exe" #503
- Support for the 3 different approaches to how the endpoint routes are generated for AspNetCore hosting (#508)
- Replace obsolete AssociationAttribute with new EntityAssociationAttribute on client (#509)
Client
- Replace obsolete AssociationAttribute with new EntityAssociationAttribute on client (#509)
- The client currently detect
AssociationAttribute
but it will be removed in future versions. - Ensure you have the corresponding version of the Code generation
- The client currently detect
BinaryHttpDomainClientFactory
has a new constructor taking in anFunc<Uri, HttpClient>
so that the callback has access to the uri passed to the DomainContext- If the HttpClient factory method sets
BaseAddress
on the httpClient then the address vill be preserved and used for server calls.
- If the HttpClient factory method sets
What's Changed
- T4 codegen does not add compiler attributes by @SandstromErik in #495
- Add EF Core 8 support by @Daniel-Svensson in #496
- Remove ProjectPath.txt from tests by @Daniel-Svensson in #494
- Improve error messages from code generation by @Daniel-Svensson in #499
- Analyser fixes and update nuget.exe version by @Daniel-Svensson in #501
- Log whole Exceptions in DomainServiceCatalog instead of just message by @Daniel-Svensson in #502
- Call "dotnet CodeGenTask.dll" instead of "CodeGenTask.exe" by @Daniel-Svensson in #503
- Add AttachAsXXX methods to DbDomainService: by @SandstromErik in #506
- EF Core: Owned types support by @Daniel-Svensson in #500
- Replace obsolete AssociationAttribute with new EntityAssociationAttribute on client by @Daniel-Svensson in #509
- EntityAssociationAttribute Step2 by @Daniel-Svensson in #513
- Add Obsolete (things not used on AspNetCore) or by codegen by @Daniel-Svensson in #511
- AspNetCore: Enable shorter Uris by @Daniel-Svensson in #508
Full Changelog: v5.4.3...v5.5.0
EntityFrameworkCore 3.0.0
OpenRiaServices.Server.EntityFrameworkCore 3.0.0
Add EF Core 8 support by @ehsangfl @Daniel-Svensson in #496
- Target .NET 8.0 and EF Core 8
- IMPORTANT EF Core 8 is NOT backwards compatible with models (DbContexct) classes compiled against earlier versions of EF Core.
Methods such asHasName
inOnConfigure
will throwMethodNotFoundException
This means that to use EF Core 8 all referenced EF Core projects needs to be updated to 8.0
- IMPORTANT EF Core 8 is NOT backwards compatible with models (DbContexct) classes compiled against earlier versions of EF Core.
- Drops support for earlier TargetFrameworks
- Due to limitations above with binary breaking changes in EF Core earlier frameworks will not be supported to reduce risk of mixing EF Core versions.
- Use the 2.0.* version of the nuget package if you need support for earlier versions of EF Core
Other internal changes
- Remove a bunch of "#if NET6_0" so it works on multiple versions of .NET
- update nuget packages
- MSTest to 3.3.1
- Microsoft.CodeAnalysis.* 4.9.2
- Microsoft.Build.Locator 1.7.8
- remove Microsoft.EntityFrameworkCore.Design
- Update to "Microsoft.NET.Test.Sdk" 17.9.0
V5.4.3
Client
- Significant performance improvements when working with many entities in various scenarios
Server
- Reduced allocatgions when parsing queries on server (both WCF and AspNetCore hosting) in #485 * Update nuget dependencies and add new dependencies to OpenRiaServices.Hosting.Wcf *
System.Collections.Immutable
andSystem.Memory
are new dependencies of Wcf hosting * .NET Framework builds now includes the smaller portable pdb's instead of of the old "full" windows style pdb's * NOTE: For .NET Framework apps ensure that supportedRuntime in app.config and corresponding setting in web.config does not specify an older runtime if you wan't line numbers in stack traces.
What's Changed
- Add net8 build of OpenRiaServices.Hosting.AspNetCore by @Daniel-Svensson in #479
- stop generating odata nuget by @Daniel-Svensson in #478
- Use portable pdb for .NET Framework by @Daniel-Svensson in #484
- Update Mstest to 3.2.0 by @Daniel-Svensson in #486
- Improve Add/Attach performance for large graphs by @Daniel-Svensson in #487
- Collection performance improvements by @Daniel-Svensson in #488
- Spanify DynamicQueryable by @Daniel-Svensson in #485
- EntiryRef Perf: Avoid Enumerable.OfType() by @Daniel-Svensson in #491
Full Changelog: v5.4.2...v5.4.3
5.4.2 / AspNetCore 1.0.0
Overview
AspNetCore 1.0.0
- First major release #466
- Added authentication documentation
- Use FrozenSet in first location (QueryStringConverter)
Code generation
- Do not use attributes reserved for the compiler in code generation #472
- Nullable reference types now works
- It is now possible to use
required
modifier for fields and properties
.NET8
- .NET8 sdk is now used to build #463
Testhost
- Add support in DomainServiceTestHost for asynchronous queries that return a single entity #464
What's Changed
- AspNetCore documentation, FrozenSet and C#12 by @Daniel-Svensson in #466
- Test updates - nuget and msbuild code by @Daniel-Svensson in #468
- Run AspNetCore E2E tests with NET8 on server by @Daniel-Svensson in #463
- Build fixes and prevent thread hang MockAuthenticationNoCancel by @Daniel-Svensson in #469
- Make test run on Net8 by @SandstromErik in #458
- Add support in DomainServiceTestHost for asynchronous queries that return a single entity by @erikoijwall in #464
- Add tests to se that codegen works with nullable reference types by @Daniel-Svensson in #470
- Use BinaryHttpDomainClient in AspNetCore Test by @SandstromErik in #471
- Don't use attributes reserved for compiler in CodeGen by @SandstromErik in #472
Full Changelog: v5.4.1...v5.4.2
5.4.1
Overview
Code generation
- Fix .NET7+ code generation crash for RegularExpressionAttribute #449
Client
What's Changed
- Remove typo by @omimakhare in #446
- Use Dictionary.TryAdd for minor perf improvements in entityset add by @Daniel-Svensson in #451
- Speed up ValidateProperty by @Daniel-Svensson in #453
- Fix .NET7+ code generation crash for RegularExpressionAttribute by @Daniel-Svensson in #449
- Use mstestv3 as testing framework by @Daniel-Svensson in #372
- Move more tests from EndToEnd tests to Client.Test by @Daniel-Svensson in #454
- Add new test that validate how object level validation interact with property level validation by @Daniel-Svensson in #455
- Improve perf of ReplaceErrors by @Daniel-Svensson in #456
- Various fixes by @Daniel-Svensson in #460
New Contributors
- @omimakhare made their first contribution in #446
Full Changelog: v5.4.0...v5.4.1
5.4.0
5.4.0
This release fully supports .NET 6+ for both server and client without having to rely on workarounds to have the code generation work.
Code Generation Supports NET6+
- Support net6+ on server (#414)
- Add version of code generation which allows server project to be .NET 6 or later
- Works with dotnet build - you can build without installing Visual Studio
Client
- Ensure exceptions from xxxOperation callbacks and unhandled exceptions are rethrow on the SyncronizationContext. (#424)
- This allows events such as
DispatcherUnhandledException
(for WPF) to be used for showing error messages immediately
- This allows events such as
- Add net6.0-windows TargetFramework for client (#436)
EntitySet
andEntityCollection
now implementsICollectionViewFactory
for net6.0-windows. improving supprot with controls using CollectionView- This change came in WCF Ria Services SP1 WCF Ria Services SP1
DataForm Add/Remove for EntitySet and EntityCollection
With our initial V1.0 release, many of you found that a DataForm bound to an EntitySet or an EntityCollection did not support the Add or Remove buttons. This was a difficult cut to make in V1.0, so I’m pleased to announce that with V1.0 SP1, this is now supported. Silverlight 4 introduced the ICollectionViewFactory interface, with support integrated into DataGrid and DataForm, and both EntitySet and EntityCollection now implement that interface to allow the Add/Remove features to light up.
- The WCF based
WebDomainClientFactory
will not receive any new changes and is now marked as obsolete. It is recommeded to switch toOpenRiaServices.Client.DomainClients.BinaryHttpDomainClientFactory
instead.
Other
5.4.0-preview.2
5.4.0
- Raise exceptions from callbacks on SynchronizationContext
- Add version of code generation which allows server project to be .NET 6 or later
Works with dotnet build
A complete sample with WPF core and Asp.Net Core can be found at
https://github.com/OpenRIAServices/Samples/tree/main/WpfCore_AspNetCore
What's Changed in preview 2
- Raise exceptions from callbacks on SynchronizationContext by @aud0201 in #427
- Fix insecure temporary file creation by @SandstromErik in #429
New Contributors
Full Changelog: v5.3.1...v5.4.0-preview.2
AspNetCore Hosting 0.4.0
AspNetCore 0.4.0
* Copies "All" attributes to endpoint metadata
* Some attributes sucha as Validation, Authorization and other attributes specific to OpenRiaServices are not copied
* `AddDomainService()` methods inside `MapOpenRiaServices` now returns `IEndpointConventionBuilder` allowing conventions to be specified per `DomainService`
```C#
app.MapOpenRiaServices(builder =>
{
builder.AddDomainService<Cities.CityDomainService>()
.WithGroupName("Cities");
});
```
* Updated README.md and added Sample project
* Make it compatible with more middleware such as OutputCache middleware by "Completing" responses
* CHANGES:
* `services.AddOpenRiaServices<T>()` now requires T to derive from DomainServce
* `services.AddOpenRiaServices<T>()` has different return type
What's Changed
- AspNetCore: Fix OutputCache middleware support and update README by @Daniel-Svensson in #426
Full Changelog: v5.4.0-preview.1...aspnetcore-0.4.0