Spotted this handy online reference for Domain Driven Design:
http://www.scribd.com/doc/21997741/DZone-Refcard-76-Domain-Driven-Design
Spotted this handy online reference for Domain Driven Design:
http://www.scribd.com/doc/21997741/DZone-Refcard-76-Domain-Driven-Design
Finally got around to upgrading to Windows 7 RTM, only to be greeted with the following:
You cannot upgrade this prerelease version of Windows 7. Go online to see how to install Windows 7 and keep your files and settings
A quick Google found these instructions. Should save you the hassle of rebuilding your PC
The latest release has some UI fixes for TrueView, and mapping fixes for DataBridge. Download it here.
The latest release includes 2 very useful UI features:
This option is specially useful when you’re demoing to others, and can be enabled from Tools->Options->UI Settings->Allow MultiMonitor Use. All subsequent windows will open outside of the Workbench, allowing them to be dragged to other monitors.
Although drag & drop is very powerful, not all users are comfortable with it, instead preferring to select items from a list. With this is mind, a new context menu item was added:

Selecting this will open a Search Dialog, where the user can query and select an Entity. It also works for EntityList properties (multiple Entities can be selected in this case):

It’s also possible to pre-load the popup search dialog using Query Specifications. See the section “Pre-filtered Search Query Dialogs” in the user guide to learn more.
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:
Enhancements
Fixes
Optimisations
Eric Evans talks about the most essential parts of his book, having practiced it over the last 5 years.
One of the topics that caught my attention was Exploration and Experimentation (3m 25s into the video). Evans suggests that teams should be exploring & experimenting even after a useful domain model is created. His quote:
What are the odds that [the first good model] is the best you could have done?
So why aren’t teams doing this already? Typically, it’s because of fear and cost of change. Traditionally, software has never been easy to change (read expensive). And for all of the new technology being spewed out, not all of it is designed to make change easy.
This is the void that TrueView attempts to address. It’s not about UI design, or database design, or Web Service contracts. It’s about creating interactive domain models that Domain Experts and Software Experts can explore, discuss, and help refine the ubiquitous language.
If you haven’t tried it already, you can download it here. I hope you find it useful.
Gojko Adzic has an interesting piece by Eric Evans about replacing legacy systems.
In summary, focus on the core domain – the part of the software that brings competitive advantage to the business – and use an anti-corruption layer to interface with the old system.
Here are some tips for DDD newbies. It’s easy to fall back to doing ‘what you know best’, so use these tips to stay focused. Hopefully your design skills will get better (and faster) as a result.
You can read the detailed version here.
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
Optimisations:
Known issues: