The goal of the release is to add improved cross platform support.
This is the first release with stable WPF support as well as (at least partioal) core support to many other platforms such as windows apps (and probably xamarin apps). For an example with both Silverlight, WPF and Windows 8 app see https://github.com/Daniel-Svensson/OpenRiaPlayground/tree/master/HttpClient
Workaround: The recommended approach for WPF projects is to have a separate library project for the code generation
- Code generation has issues for platforms where dataannotations has moved from System.ComponentModel.DataAnnotations
This includes, windows phone as well as several of the portable library targets.
Code generation will succeed, but important attributes such as Key
will be missing.
Workaround: Run code generation in a project targeting a supported platform and then use that dll (if possible) or directly link to the generated code from another project without the code generation installed.
- Silverlight projects will sometimes fail to open if they reference OpenRiaServices.Client.Codegen
Uninstall the package and install OpenRiaServices.Silverlight.Codegen
- Added additional extension points for WCF based DomainClientFactory implementations
- Add a new base-class WcfDomainClientFactory for WebDomainClientFactory
- Add extension points for customizing ChannelFactory creation by moving default ChannelFactory creation code to Wcf/WebDomainClientFactory
- Fix bug in Soap (BasicHttpBinding) endpoint preventing query options from working
- Add back Silverlight specific codegen package (and .targets file)
- Fixes a bug where Visual Studio in some cases failed to load silverlight project with a mesage that silverlight projects cannot dependend on non silverlight projects.
- Automatic build ordering vill not work for silverlight clients.
- A warning message has been added in case the "wrong" .targets file is used
- Reduce size of OpenRiaServices.Endpoints
- It now reuses internal types from Hosting assembly
- Added nuget badges to README.md
- Add script for coverity static analysis with a badge added to README.md
- Run analysis with sonarqube and added badge for results to README.md
- Fix #96 [Required] incorrectly added to database generated properties
- Fix #94 Slow first call to a service
- Improved startup (and codegen) performance
- Fix #92 EntityCollection load is very slow for large number of entities
- Improved nuget behaviour for other targets than silverlight and desktop .net
- Updated portable library to have the same implementation as non portable builds
- Added netstandard 1.3 build (experimental) see https://docs.microsoft.com/sv-se/dotnet/articles/standard/library for netstandard information
- AssemblyVersion updated to 188.8.131.52 for silverlight and portable build
- Silverlight support automat assembly redirection to higher versions so manual redirection should not be required for any target platform
- Fix #90 FormsAuthentication on Desktop Platforms
- Desktop client now support Cookies by default (which means Forms authentication just works)
- Can be controlled via WebDomainClientFactory.CookieContainer
- WebDomainClientFactory can now be overridden (bug in beta2)
- Enforce build ordering so we don't get error saying web project did not build which is one of the errors issue #73 Code generation fail for WPF if xaml references local types
- You will se a new project reference "OpenRiaServices Server Project Link" in projects with the code genereation enabled.
- Automatically generate WebContext for .exe projects
- Use msbuild property OpenRiaGenerateApplicationContext to control webcontext generation instead of just using SilverlightApplication variable
- Fix #91 Difference in validation behaviour between Silverlight and .net
- Desktop version now uses same validation logic as Silverlight build
- ApplicationServices classes are moved to the Client assembly
- This means that portable libraries and windows apps can now access them and have AuthenticationServices generated
- All project now compiles
- Appveyour compatibility - all projects now builds successfully on ci.appveyor.com
The communication layer on the client can now be easily switched, for an example implementation se https://github.com/Daniel-Svensson/OpenRiaPlayground/tree/master/HttpClient
- Introduces a new extension point for controlling what kind of DomainClient gets created and how.
- Allow Desktop and Portable clients to specify a "Base uri" so that the default constructor generated by the code gen can work outside silverlight.
This should hopefully remove the last strong dependency from the "core" Client on the current WCF based Client.Web assembly so that it becomes possible to add new service communication
protocols in the future.
- Make the core assembly independent of how we communicate with the Server.
- Allow new communication protocols in the future such as talking to the DomainController odata service, (soap/json endpoints) etc as well as for providing a portable alternative for the current Client.Web assembly for talking with normal DomainServices.
How to use it:
- Most user don't do anything at all, it will setup a DomainClientFactory automatically
- For "advanced" scenarios the user can set DomainClient.DomainServiceFactory to a WebDomainClientFactory instance.
Ex: One can add the following code att application startup (ex: App ctor) before WebContext or any other DomainContext get created
DomainContext.DomainClientFactory = new WebDomainClientFactory()
ServerBaseUri = new Uri("http://localhost:51359/ClientBin/", UriKind.Absolute),
For another example with both Silverlight, WPF and Windows 8 app see https://github.com/Daniel-Svensson/OpenRiaPlayground/tree/master/HttpClient (WIn8 upp is not updater to beta1)