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