Posted by Vijay on May 3, 2009
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.
Posted by Vijay on May 2, 2009
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
Posted by Vijay on March 26, 2009
Eric Evans chatted with Alex Handy (SDTimes) about the primary aspects of DDD. Read the interview here.
Posted by Vijay on March 24, 2009
A little late
, but still relevant…
Michael Smethurst (Information Architect at the BBC) describes how DDD is used to make websites.
Posted by Vijay on March 19, 2009
Casey Charlton is writing a sample application using DDD. His first step was to create a UI mock-up to reflect a user story
“What’s so bad about that?” I hear you cry. Well, here’s the problem:
UI prototyping is great for defining how a person is going to solve a business problem. It’s not great at defining what the problem actually is (i.e. the business domain).
I’ve seen this happen many, many times:
- Developer sketches UI, to start discussions with the Domain Expert/Business Analyst
- Business Analyst adds/removes/repositions some widgets
- ‘Hand waving’ and ‘pointing at imaginary boxes’ becomes the communication technique of choice
- Developer agrees to ‘quickly code up’ an interactive prototype
- End user wants a different shade of blue
Although the Developer has good intentions of leveraging DDD, the urge to see working apps overrides everything else – leaving the Developer with a vague understanding of the business domain.
As the Developer does learn more about the domain, he usually finds that the original UI design is inadequate. And changing a UI is expensive (it’s a pity that most businesses don’t understand why).
This is where TrueView shines. It automatically creates interactive UIs, but only based on domain definitions and relationships. Which means:
- The Business Analyst must describe the business domain.
- The Developer must start understanding the domain
- Both must define and share the Ubiquitous Language.
TrueView doesn’t give you a totally customisable UI, but you do get an interactive prototype that models the business. Once you understand the domain model, you’re in a perfect position to design a slick UI.
Posted by Vijay on March 10, 2009
Cheltenham, UK, 10/03/2009
Evolving Software releases an update of “TrueView for .NET”, a framework for rapidly designing and creating business applications for Microsoft .NET.
TrueView helps .NET Developers and Business Experts share business knowledge, design interactive prototypes, and create flexible applications. Software teams use Domain Driven Design (an established technique for designing complex applications) to stay focused on essential business concepts.
“Absorbing business concepts can be pretty tough for development teams, especially when timescales are tight. Using TrueView, Developers can sit down with Business Experts, and use interactive prototypes to discuss the problem space. The feedback cycle reduces from days to hours.” explains Vijay Patel, founder of Evolving Software.
TrueView supports Agile development, Domain Driven Design, and the Naked Objects pattern. Combining these strategies allows developers to cut development times without compromising software quality.
Evolving Software is also offering personal licences to developers learning Domain Driven Design at discounted rates. Visit http://www.evolving-software.co.uk to learn more.
Posted by Vijay on March 4, 2009
Casey Charlton started a mini-series on DDD a little while back. Now he’s created DDD Step by Step:
… This site is intended to consolidate some of the disparate information on the web regarding Domain Driven Design…
Definitely one to bookmark.
Posted by Vijay on March 1, 2009
Thanks for all you comments. This release is based on your feedback, so please keep sending your comments. Download the latest version here.
Enhancements:
- Added PropertyGrid editor for unknown types (e.g. structs)
- Root entities can no longer be explored
- Top level nodes in Class Library treeview are now consolidated
- “Enter” now creates a new entity in Class Library
- Method buttons now have equal sizes
- Tweaked overall UI appearance (borders, padding, splitters, colours)
- Vertical splitter is removed if no methods are displayed
- Save action traces all affected entities
- Null EntityLists are now rendered with no grid lines
- Added “About Demo” window
- Added “Report a bug” option
- Trace log now saving in Zip compatible format
- “About” window now shows application information
- “About” window can be closed using Escape/Enter
- Failures in Query criteria no longer show dialog boxes (improved usability)
- Removed “Property was unchanged” message
- Clicking an empty area of the Actions panel hides Parameters listview
- “Edit Value” option is only shown in ‘Explorer’ mode
Fixes:
- Drag/drop now handles null EntityList properties
- Undo/redo now handles EntityLists
- Assembly resolve now handles upgrades/downgrades wherever possible
- Fixed “Collection modified exception” when resolving entity relationships
- Correction when identifying all parent entities
- Setting null values no longer attempts to create internal associations
- Corrected “Divide by zero” exception in memory calculation (for Vista64)
- Exceptions when invoking actions are only reported once
- Removing new instances from lists no longer causes ‘phantom’ dirty status
- Corrected “Paste new copy” functionality
- Action (method) button panel now expands correctly
- Application menu/toolbar are refreshed after clipboard operations
- Application menu/toolbar are refreshed after listview selection changes
- Corrected display of confirmation dialogs
- “Remove” item is now correctly enabled/disabled
- Corrected handling of ‘char’ editor
- Editors now change colour when they get focus
- Corrected change detection in ‘number’ editor
- File Editor now handles valid non-existing paths
- Added ‘IsMutable’ check when setting properties
- ValueObjects now share the same persistence details as their owner (Version, AccessDetails)
- Only critical exceptions are shown in a dialog
- Progress bar is not updated if form is disposing
- Trace message no longer appears when viewing an immutable object
- Saved Query filesnames now have 80 char limit
- Corrected NHibernate search queries for Component mappings
- Corrected NHibernate search queries for properties of same name, but different classes
- Corrected NHibernate search queries for subqueries of the same type
- Corrected re-hydration of saved Queries with multi-level subqueries
- All dialogs and forms are now disposed of explicitly
- Optimistic locking exceptions now show who modified the record, and when
Posted by Vijay on February 11, 2009
Casey Charlton is starting a mini-series about DDD. Should be interesting.
Posted by Vijay on January 5, 2009
Happy New Year!
We’re starting the year with a new release.
BREAKING CHANGES
- Upgraded to NHibernate 2.0.1GA (with breaking changes)
- Added InnerList property to IEntityList
- Changed NHibernate namespace to NH
- Removed EntityListAttribute.IListField
Enhancements:
- ValueObject now implements IValueObject
- AccessDetails now implements IValueObject
- Copy operations use a different colour when dragging primitives/ValueObjects
- MyApplication.Save only persists dirty objects in the graph
- TrueView is now responsible for object graph ‘cascading’
- Added PropertyAttribute.BackingFieldName
- EntityList now uses IEntityList.InnerList for NHIbernate collections
- Added custom NHibernatePropertyAccessor to auto-manage all property types
- Renamed “Paste Duplicate” menu item to “Paste New Copy”
Optimisations:
- Improved Save performance
- Improved UI update after setting a property
Fixes:
- Fixed duplicate entries in object graph traversal
- “Save this” never attempts to save other objects in the graph
- Cloning now handles ValueObjects
- Corrections in Entity version tracking
- SetProperty now automatically uses IValueObject.Clone()
- AddToList now automatically uses IValueObject.Clone()
- Interface inheritance hierarchies now correctly identified
- C#3.0 auto-property backing fields now identified
- NHibernate query builder now uses class metadata to identify correct property name
- Context menu doesn’t show duplicate Paste items for primitive values
- Exceptions during form close displayed with “Retry/Cancel” buttons
- Correction when validating property relationships
TrueView DataBridge 1.3.0901.05
BREAKING CHANGES
- Upgraded to NHibernate 2.0.1GA (with breaking changes)
Enhancements
- Added MSSQLServer2005 (default option)
- Removed FieldNamingStrategy – it is now auto-computed
- Interfaces are now “Unmapped” by default
- Now uses NHibernatePropertyAccessor to manage EntityList properties
- Uses PropertyAttribute.BackingFieldName if available
- Generated properties now have IDENTITY/INDEX attributes set
Optimisations
- Disabled ‘cascade’ options (TrueView is now responsible for cascading)
- Disabled “Select-before-update’
Fixes
- Corrected filter when creating interface mappings
- Component mappings no longer include OID or AccessDetail properties
- Corrected AssemblyResolve for strongly named assemblies