The latest release adds Dependency Injection to the mix. The default behaviour uses a simple Service Locator, but you can inject your own dependencies as you wish. See the user guide for more info.
BREAKING CHANGES:
The following interfaces now implement IServiceDependent:
- IEntity
- IFactory
- IRepository
- IService
Enhancements
- Added MyApplication.ServiceLocator (for locating Factory/Repository/Service classes)
- Added IServiceDependent for DependencyInjection services
- Added IService interface (similar to IFactory and IRepository)
- Services are now shown in the Class Library treeview
- MyApplication now raises EntityCreated event when entities come into scope
- MyApplication now raises EntityDisposed event when entities are no longer required
- MyApplication now raises ApplicationInitialised event at startup
- Many delegates moved out of classes (reduce API clutter)
- Added EntityListAttribute.HasUniqueItems, to determine if duplicate items are allowed
- Drag/Drop tip now detects duplicate items
- Replaced Class Library CheckBoxes with ToggleButton
- Added Search box to Class Library to allow easy finding of Entity classes
- Increased scrolling speed when using Drag/Drop on treeview
- ListView numeric columns are now right-aligned
- Re-instated “Explore” context-menu option for root Entities
- Added support for parameterised Methods
- Window buttons bar is now visible by default (to reduce flickering)
- Added AddRange & RemoveRange methods to TransientEntityList
- Added AddRange & RemoveRange methods to EntityList
- Search Form now shows Query text as query is built
- Boolean editor now changes value immediately
- Hitting F2 over a listview opens the editor beneath the mouse cursor
- ‘Short’ values now have smaller widgets (Numbers, Enums, Dates)
- Added new “Replace/Add” context-menu items for context sensitive queries
- “Open File” option renamed to “View File”
- Changed internal async command processing
- Added “Allow multi-monitor use” option for non-MDI interfaces
- Query List no longer shows “Type” in first header
- Entity treeview no longer scales when window is resized
- Changed error message when trying to execute HQL using MemoryCache provider
Fixes
- Reduced flickering when rendering/repainting controls
- Corrected header style for each window
- Correction in MyApplication.Start() to allow repeated calls
- Saving object graphs with unmapped entities now always forces NHibernatePersistence
- Corrected UI updates when setting Parameters
- Applied [Visible=false] attribute to all public interface members
- Exceptions no longer thrown if Providers aren’t defined in app.config
- Correction in collection/list count
- Correction in identifying parent widgets
- Fixed margin settings for collapsible panels
- Corrected identification/caching of icons for sub-classes
- Corrected icon for Namespace nodes
- ListView “Auto-resize” option now overrides user defined widths
- Window button tooltip is updated for Search Forms
- Corrected culture setting for DateTimePicker
- Better handling of exceptions when editor controls are rendered
- Now uses correct DateTimePicker rendering for Windows 7
- Corrected background colour in Enum editor
- Empty Category headers are no longer displayed
- Disabled “Explore” option for primitive types
- Corrected multiple argument injection in EntityList Add & Remove methods
- Reduced Drag/Drop tip flickering
- ListView “Property” column is now sized to fit
- Selected TreeView node is now scrolled into view
- Corrected border colour for Boolean editor
- Corrected Entity Relationships for properties in super classes
- Corrected event handler disposal in a few controls
Optimisations
- Improved string building performance
- Optimised widget detection at mouse co-ords
- DynamicMethods are now created lazily
- Entity Relationships are now resolved lazily