Please note that, as always, the easiest way to install and use this release is via the NuGet Package Manager.
More details of the new features listed below can be found in the updated Developer Manual (download it from the Documentation tab).
New features for this release
- Individual query actions can return results in a table view. Use the Eagerly attribute, optionally in combination with the TableView attribute, on a query action (previously these could be applied only to collection-associations). See 207.
- EditableViewModels. Just implement the new interface IViewModelEdit. See 223.
- Generic Audit capability. By registering a service that implements IAuditor, you can be notified of all user actions, and create your own persisted audit trail. See 239.
- Improved support for batch processing. See 236.
- A new run class (RunBatch) designed to be run as a .exe (without any user interface).
- An injectable AsyncService that allows you to spawn multiple Naked Objects threads that run asynchronously and wait until all Tasks have completed.
- Improvements to custom authorization.
- In addition to ITypeAuthorizer<T> there is now INamespaceAuthorizer, which can cover all objects within a specified namespace. See 238.
- Implementations of either of the above interfaces can now have domain services injected into them to permit access to domain objects as part of the authorization process. See 228
- NakedObjects.Util.TypeUtils now has a new method IsPropertyMatch, which is very convenient for use within a custom authorizer. See 243.
- Fixtures. It is now possible to use Naked Objects' data fixtures with the Entity Persistor - installing them only whenever the database has been re-initialized. See 247.
- File attachments - option to open within the browser. 248
- Polymorphic Navigator. Now eaisier to form polymorphic association between two objects being persisted. See 241.
- Restful Objects. Naked Objects v5.6 includes an almost complete implementation of the recently-released Restful Objects 1.1 specification. We will complete the implementation of that spec in release 5.7. Meantime, Naked Objects v5.6 remains fully compatible with Restful Objects 1.0.
Upgrading existing projects
- Obsolete code deleted. Code in the Naked Objects packages that has been marked as Obsolete for at least two releases has been deleted from 5.6. Therefore, you should deal with all Obsolete warnings in your solution (this is good practice anyway) before upgrading. I addition we have deleted, without first obsoleting, some methods/classes and attributes that were never documented, and in most cases were never fully implemented. We think it unlikely that any of our users will have made reference to these - but in the unlikely event that you have, please post any questions on the discussion forum.
- Change to the NakedObjects.ProgrammingModel package. This package now installs three assemblies (not including the Resources): NakedObjects.Attributes, NakedObjects.Types, and NakedObjects.Helpers. This change should not make any difference to most users, as namespaces have not been changed. But the rationale for the three is now cleaner, and provides more flexibility for the future.
- Files that you need to update in any MVC run project (find the updated versions in the .zip file that will have been added to your MVC project when you updated the NakedObjects.Mvc-Assemblies package):
- NakedObjects-Basic.js (only needed if you are not using Naked Objects MVC in Ajax mode)
- New files added: ViewModel.aspx
- Previous files removed: None
For other minor changes: view all issues (https://nakedobjects.codeplex.com/workitem/list/advanced
), and filter for those associated with Release 5.6.