Whilst in the middle of writing about “Entities vs Value Objects“ I discovered this post by Dylan Beattie.
I’ve observed that a lot of DDD newbies get hung up on Value Objects, persistence, how to normalise the database, and other implementation concerns.
Value Objects stem from the actual domain problem, not from persistence. Read Dylan’s post to understand why.
This release has some major UI rendering improvements, and a couple of enhancements to aid usability. TrueView DataBridge also has a couple of small fixes. Download them here
Enhancements:
- Drag/drop tip now explains the drop action
- Drag/drop tip now tries to stay on-screen, regardless of curson position
- Now allows new entities to be added to unsaved parent entities
- “Save This” tooltip now shows reason for being disabled (where applicable)
- Removed duplicate results in Search window
- Friendly names are now generated for generic lists
- Improved icons bitmap scaling quality
- Removed error messages when using IQuerySpecification with FilePersistence provider class
Fixes:
- UI refresh now updates all Entities
- Fixed stack overflow when tracking dirty entities in circular object graphs
- Corrected tracking of entities that are removed from lists
- Dynamic listbox ensures that property value is automatically loaded
- Fixed NullReferenceException when pressing Enter in an empty Queries List
- Fixed DataTimePicker background colour on Windows Vista
- Removed system beeps when entering/exiting edit controls (NumericUpDown is still a problem)
- Correct sizing of PropertyGrid columns
- Corrected enabled state for “Save This” menu item
- Corrected bold text clipping in Search treeview
- Allow NHibernate to use reflection-optimizer if configured to do so
- Menu and toolbar items are now updated if Undo/Redo fails
- Better alignment of Boolean radio-buttons
- Better sizing of bitwise(flag) enum listbox
- String compacting algorithm no longer creates null-terminated strings
Optimisations:
- Massive improvements to UI rendering performance
- Reduced startup time in MyApplication.Initialise (i.e. for unit testing)
- FilePersistence now flushes to disk less frequently
- Improved string building performance
Known issues:
- NumericUpDown editor still beeps when Enter is pressed
- Search Query Editor window doesn’t hide Boolean editors immediately (need to hit Escape twice)
If you were running a previous version of TrueView, you may find tree nodes missing in the Preferences Editor.
The fix is to remove the old user settings. Open this folder in Windows Explorer:
C:\Users\<your user name>\AppData\Local\Evolving_Software_Ltd\
And remove all folders for the application that is affected.
The latest maintanance release fixes some glaring errors (sorry!).
The UI has also been updated for better usability – and now supports dynamic drop-down lists using IQuerySpecification. Read the user guide to learn more.
Enhancements:
- Moved MDI window toolbar to top (tab-like appearance)
- MDI window ‘tabs’ now toggle normal/maximised window state
- Added support for dynamic UI ‘lookup lists’ using IQuerySpecification
- User is prompted to email errors at shutdown
- Added “Communication Settings” to Preferences
- Added online version checking for Trial build
- Added Vista style TaskDialogs
- Dirty status is only shown for changed entities
- Collapsible panel widgets now highlight on mouse-hover
- Reduced flicker when changing between maximised windows
- Search “Add” now uses “Query Bookmarks”, which can be viewed after saving
- Added TransientEntityList class
- Default settings of AutoSave is now False
Fixes:
- Corrected UI updates when list Add/Remove is aborted
- Improved UI refreshing after performing commands
- Clearing a search form purges the internal cache
- Corrected Action button panel flow layout when resized
- Corrected tooltip rendering in Property treenodes
- Text no longer truncated in Action buttons
- Corrected MyApplication.IsStarted value
- Dialogs no longer displayed when Workbench isn’t running (for unit testing)
- Improved/optimised tracking of dirty entities within deep object graphs
- Now handles hidden/new properties
- Reattaches entities to NHibernate ISession before loading properties
- Improved NHibernate session management during Save operations
- Corrected ListView sorting for sub-items that are null
- Corrected ListView header sort icons for Vista
- Corrected lock-up when tabbing through PropertyGrid controls
- Corrected validation when dragging items from the Class Library
- Previous search results are cleared if query returns no matches
- Corrected “Unit of work” check for method Actions
- Added sync locking to allow rapid keyboard actions (e.g. keeping a key pressed)
- Now supports icons named after Interfaces
- Reset drag/drop label background colour
Optimisations:
- UI widgets are only refreshed once where possible
- Reduced amount of redrawing when listviews are refreshed
Known issues:
- DateTime editor doesn’t change background colour on Vista
- Preferences Editor doesn’t always render tree nodes