http://dddstepbystep.com

March 4th, 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.

TrueView Release 1.2.0903.01 – Improved user experience

March 1st, 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

Domain Driven Design: A Step by Step Guide

February 11th, 2009

Casey Charlton is starting a mini-series about DDD.  Should be interesting.

TrueView Release 1.2.0901.05 – Upgraded to Nhibernate 2.0

January 5th, 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

DDD podcast at Hanselminutes

December 8th, 2008

Listen to Scott Hanselman and Rob Conery discussing DDD in this podcast.

TrueView Release 1.04.0811.09

November 11th, 2008

Download the latest version here.

Enhancements:

  • Updated algorithm for identifying property backing fields
  • Added support for saving multiple entities in a single transaction

Fixes:

  • EntityLinker now handles relationships for super classes
  • Corrected relationship tracking when using EntityLinker
  • Corrected scope of internal members

TrueView Release 1.04.0810.27 – Factory and Repository support

October 27th, 2008

There are lots of questions in the DDD community about Factories and Repositories.  TrueView now supports these concepts in a nicely decoupled way.  Learn more in the user guide.

Enhancements:

  • Added support for Entity factories using IFactory<T>
  • Added support for Entity repositories using IRepository<T>
  • EntityLinker now uses IEntity instead of Entity
  • Added Min/Max range to MaximumSearchResults attribute property
  • Added CanModifyContents attribute property to support “Aggregate Root”
  • Added RequiresConfirmation attribute property to MethodAttribute
  • Stripped System.Reflection.TargetInvocationException to make exception messages clearer
  • Removed duplicate content from exception messages
  • Log files are now saved in compressed format
  • Added “Close All Windows” option

Fixes:

  • EntityLinker now accesses collection properties to allow NHibernate proxies to initialise
  • NHIbernatePersistence has better tracking of entity statuses
  • NHibernatePersistence now wakes up before adding/removing items to lists
  • MemoryCache now simulates versioning like NHibernate
  • Corrected internal tracking of new instances within object graphs
  • Corrected NHibernate query for “OR” operator
  • Corrected NHibernate query for GUID values
  • Improved persistence of unrelated object graphs (explicit UnitOfWork check no longer required)
  • Guid is now recognised as a Value Type
  • Window titles are now updated after a Save operation
  • Toolbar is updated when the active MDI child is changed
  • Splash screen no longer dominates the desktop at startup
  • Correction when creating an entity within an aggregate
  • EntityLinker now sets the dirty status of affected entities

TrueView DataBridge 1.23.0810.25

Enhancements:

  • Now creates link tables for classes that don’t have foreign key references

“Talking Domain Driven Design” podcast

September 6th, 2008

David Laribee discusses DDD and Bounded Contexts. Listen to the podcast here.

Update: Listen to part 2 here.

Release 1.02.0808.25 – Value Object support

August 8th, 2008

Added support for ValueObjects, as well as various bug fixes and enhancements.  Download it here.

Enhancements:

  • Added Evolving.TrueView.Domain.ValueObject to support “Value Objects”
  • Added better exception messages when adding and creating entities within lists
  • EntityList TreeNodes are now sorted by Summary value
  • Added icons to Query Dialog buttons
  • EntityAttribute.RelationShipType is no longer enforced by default
  • EntityListAttribute.RelationShipType is no longer enforced by default

Fixes:

  • Query Dialog now handles null/empty search values
  • Fixed exceptions when saving using NHiberate
  • Fixed formatting in RichText editor
  • RichText editor now handles CTRL-ENTER
  • Corrections to Evolving.TrueView.MyApplication.GetManager()

TrueView DataBridge 1.22.0808.25

Enhancements:

  • Now creates link tables for classes that have 2+ EntityList<> properties of the same type
  • Relationships can be explicitly defined between properties of 2 different classes

Release 1.02.0806.17 – Introducing the EntityLinker

June 17th, 2008

Writing scaffolding code to manage relationships can be quite tedious, so the EntityLinker was born.  The EntityLinker resolves and updates relationships automatically – and is more intention revealing.  Learn more about it in the user guide.

BREAKING CHANGES:

  • AddItem and RemoveItem delegates are now available in IEntityList
  • Changed IEntityList interface

Enhancements:

  • Added EntityLinker to manage entity relationships
  • Added better support for clipboard text formats
  • Added UseOptimisticLock attribute to AccessDetails class
  • Added InitialisedFrom() function to EntityList

Fixes:

  • Manual UI refreshes are now done on the UI synchronisation context
  • Added detection for IEntityList Add/Remove methods with multiple parameters
  • Removed/renamed Search Queries are removed at the end of a session
  • EntityList TreeModes are now sorted by name
  • Backing fields are only identified for concrete classes

TrueView DataBridge 1.22.0806.17

Enhancements:

  • Added support for ‘UseOptimisticLock’ attribute on properties & bags