Category Archives: News items

Naked Objects implemented at the Irish Government

Richard Pawson talks about his experiences implementing a Naked Objects solution for the Irish Government.

They went on to deliver 30+ projects on time and on budget!

We’re closed during December 2011

We’re closed for the month of December, and will be back in January 2012.

It’s been a while since the last post, but there are plans to revamp TrueView – a brand new WPF interface and usability improvements are top of the list

In the meantime, we wish all of our customers and colleagues a very Merry Christmas and a prosperous New Year!

TrueView V2 Beta, now with POCO support

TrueView V2 has some significant changes since the last version.  You can download the beta and code sample here.

POCO support

TrueView now supports POCO classes, that don’t need to be inherited or marked up with attributes. Now you can re-use your POCO assemblies in other applications, and remove the dependency on the TrueView framework.

To make your POCO classes viewable in the UI, add the following property:

    public Guid ID { get; set; }

To make your classes persistable, add a Version property:

    public long Version { get; set; }

Domain Class enhancements

  • Domain Classes no longer need to be marked with attributes
  • Optional Configuration classes can decouple Domain Objects from the TrueView framework
  • Better support for structs

Infrastructure Class enhancements

  • Infrastructure classes are now decoupled from Domain Classes.
  • IPersistenceInfrastructureService is now exposed, allowing custom Services to be injected at run-time.  TrueView provides FilePersistenceService and NhibernatePersistenceServices out of the box.
  • IExportInfrastructureService replaces the old PrintProvider, and allows you to export data for any Domain Object
  • IPresenterInfrastructureService replaces the old IUiPresenter.  You can control the formatting, and well as providing custom ‘adornments’ to display

UI enhancements

  • Error indicators are now shown next to the property that caused them
  • Custom adornments can be rendered next to an item in the Explorer view
  • Better use of screen estate using multiple columns
  • Improved drag/drop tips now show why certain operations cannot be performed
  • Inline Object and List properties allow users to see more detail without having to drill-down manually.
  • Hyperlinks make it easier to navigate to associated Objects and Lists
  • Additional Enum display options include Slider and Radio-Options.
  • Enum items can be filtered using IQuerySpecification<T>
  • A new Export function replaces the old Print option

Check out the included sample code to learn about the new features.

P.S. There’s a new DomainTypes library available as well.

Merry Christmas and a Happy New Year!

A new version of TrueView is in the pipeline for next year.  The features on the whiteboard are:

  • Better support for true DDD concepts
  • Allow code models to be reused without TrueView
  • Configuration without using .NET attributes
  • Open architecture, to let consumers develop custom ‘persistence providers’
  • More UI interception points, to allow greater customisation
  • Auto-databinding features, for WPF and possibly Silverlight
  • N-Tier support (finally)

And we’re considering making TrueView FREE for non-commercial use.

We’re going to need beta-testers for the new version, so if you’re interested please email us.

In the meantime, have a very Happy Christmas!

Upgrade from Windows 7 beta/RC to Windows 7 RTM

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 :)

TrueView Release 1.3.0908.09 – ServiceLocator and Dependency Injection

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

Press release – “TrueView for .NET” keeps software focused on business concepts, slashes development times.

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.

DDD podcast at Hanselminutes

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

“Talking Domain Driven Design” podcast

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

Update: Listen to part 2 here.

Support ends for Visual Basic 6

Microsoft officially ended support for Visual Basic 6 this month.  This is a massive blow to any organisation still running their business using legacy applications.

Now might be a good time to start afresh, and replace those applications using Domain Driven Design and TrueView.