<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Evolving Software &#187; c# library</title>
	<atom:link href="http://evolving-software.co.uk/blog/tag/c-library/feed/" rel="self" type="application/rss+xml" />
	<link>http://evolving-software.co.uk/blog</link>
	<description>General tidbits about Domain Driven Design and TrueView</description>
	<lastBuildDate>Tue, 06 Dec 2011 21:29:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>TrueView V2 Beta, now with POCO support</title>
		<link>http://evolving-software.co.uk/blog/2010/10/19/trueview-v2-beta-now-with-poco-support/</link>
		<comments>http://evolving-software.co.uk/blog/2010/10/19/trueview-v2-beta-now-with-poco-support/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 05:47:27 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[New releases]]></category>
		<category><![CDATA[News items]]></category>
		<category><![CDATA[c# library]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://evolving-software.co.uk/blog/?p=355</guid>
		<description><![CDATA[<a href="http://evolving-software.co.uk/blog/2010/10/19/trueview-v2-beta-now-with-poco-support/" title="TrueView V2 Beta, now with POCO support"></a>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&#8217;t need to be inherited or marked up with attributes. Now you can &#8230;<p class="read-more"><a href="http://evolving-software.co.uk/blog/2010/10/19/trueview-v2-beta-now-with-poco-support/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://evolving-software.co.uk/blog/2010/10/19/trueview-v2-beta-now-with-poco-support/" title="TrueView V2 Beta, now with POCO support"></a><p>TrueView V2 has some significant changes since the last version.  You can download the beta and code sample <a href="http://evolving-software.co.uk/downloads/trueview_v2_beta.zip">here</a>.</p>
<h2>POCO support</h2>
<p>TrueView now supports POCO classes, that don&#8217;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.</p>
<p>To make your POCO classes viewable in the UI, add the following property:</p>
<pre>    public Guid ID { get; set; }</pre>
<p>To make your classes persistable, add a Version property:</p>
<pre>    public long Version { get; set; }</pre>
<h2>Domain Class enhancements</h2>
<ul>
<li>Domain Classes no longer need to be marked with attributes</li>
<li>Optional <strong>Configuration</strong> classes can decouple Domain Objects from the TrueView framework</li>
<li>Better support for structs</li>
</ul>
<h2>Infrastructure Class enhancements</h2>
<ul>
<li>Infrastructure classes are now decoupled from Domain Classes.</li>
<li><strong>IPersistenceInfrastructureService </strong>is now exposed, allowing custom Services to be injected at run-time.  TrueView provides <strong>FilePersistenceService </strong>and <strong>NhibernatePersistenceServices</strong> out of the box.</li>
<li><strong>IExportInfrastructureService </strong>replaces the old PrintProvider, and allows you to export data for any Domain Object</li>
<li><strong>IPresenterInfrastructureService </strong>replaces the old IUiPresenter.  You can control the formatting, and well as providing custom &#8216;adornments&#8217; to display</li>
</ul>
<h2>UI enhancements</h2>
<ul>
<li><strong>Error indicators</strong> are now shown next to the property that caused them</li>
<li><strong>Custom adornments</strong> can be rendered next to an item in the Explorer view</li>
<li><strong>Better use of screen estate</strong> using multiple columns</li>
<li><strong>Improved drag/drop tips</strong> now show why certain operations cannot be performed</li>
<li><strong>Inline Object and List properties</strong> allow users to see more detail without having to drill-down manually.</li>
<li><strong>Hyperlinks </strong>make it easier to navigate to associated Objects and Lists</li>
<li><strong>Additional Enum display options</strong> include Slider and Radio-Options.</li>
<li><strong>Enum items can be filtered</strong> using IQuerySpecification&lt;T&gt;</li>
<li>A new <strong>Export</strong> function replaces the old Print option</li>
</ul>
<p>Check out the <a href="http://evolving-software.co.uk/downloads/trueview_v2_beta.zip">included sample code</a> to learn about the new features.</p>
<p>P.S. There&#8217;s a <a href="http://evolving-software.co.uk/downloads/DomainTypes.zip">new DomainTypes library available</a> as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://evolving-software.co.uk/blog/2010/10/19/trueview-v2-beta-now-with-poco-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update to DomainTypes library</title>
		<link>http://evolving-software.co.uk/blog/2010/02/20/update-to-domaintypes-library/</link>
		<comments>http://evolving-software.co.uk/blog/2010/02/20/update-to-domaintypes-library/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 13:18:24 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[New releases]]></category>
		<category><![CDATA[c# library]]></category>
		<category><![CDATA[domaintypes]]></category>
		<category><![CDATA[interfaces]]></category>
		<category><![CDATA[source code]]></category>

		<guid isPermaLink="false">http://evolving-software.co.uk/blog/?p=350</guid>
		<description><![CDATA[<a href="http://evolving-software.co.uk/blog/2010/02/20/update-to-domaintypes-library/" title="Update to DomainTypes library"></a>The initial release of DomainTypes was heavily influenced by the existing TrueView framework.  After spending much time working with a current client, it&#8217;s clear that a more &#8216;POCO&#8217; approach has significantly more benefits. Based on my findings (and questions over &#8230;<p class="read-more"><a href="http://evolving-software.co.uk/blog/2010/02/20/update-to-domaintypes-library/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://evolving-software.co.uk/blog/2010/02/20/update-to-domaintypes-library/" title="Update to DomainTypes library"></a><p>The initial release of <em>DomainTypes</em> was heavily influenced by the existing TrueView framework.  After spending much time working with a current client, it&#8217;s clear that a more &#8216;POCO&#8217; approach has significantly more benefits.</p>
<p>Based on my findings (and <a href="http://stackoverflow.com/questions/tagged/domain-driven-design">questions over at StackOverflow</a>), here are the major changes:</p>
<ul>
<li>Refined and enhanced most of the interfaces</li>
<li>Removed the concept of <strong>persistent</strong> and <strong>transient</strong> classes</li>
<li><strong>Domain Services</strong> and <strong>Application Services</strong> have explicit interfaces</li>
<li>Domain Objects no longer implement <strong>IDependencyAware</strong></li>
<li>Removed the <strong>ITrackable</strong> interface</li>
</ul>
<p>I&#8217;ve also added more examples to clarify how you might use the interfaces.</p>
<p>You can <a href="http://evolving-software.co.uk/downloads/DomainTypes.zip">download the code here</a>.  All comments are welcome.</p>
<p><strong>P.S.</strong> Note that this library is <strong>NOT </strong>compatible with the current TrueView framework.  Watch this space for the new version!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">http://evolving-software.co.uk/blog/wp-admin/post-new.php</div>
]]></content:encoded>
			<wfw:commentRss>http://evolving-software.co.uk/blog/2010/02/20/update-to-domaintypes-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free .NET type library for Domain Driven Design + source code</title>
		<link>http://evolving-software.co.uk/blog/2009/11/19/free-net-type-library-for-domain-driven-design-source-code/</link>
		<comments>http://evolving-software.co.uk/blog/2009/11/19/free-net-type-library-for-domain-driven-design-source-code/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 21:18:42 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[Useful info]]></category>
		<category><![CDATA[building blocks]]></category>
		<category><![CDATA[c# library]]></category>
		<category><![CDATA[domain driven design]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[source code]]></category>

		<guid isPermaLink="false">http://evolving-software.co.uk/blog/?p=284</guid>
		<description><![CDATA[<a href="http://evolving-software.co.uk/blog/2009/11/19/free-net-type-library-for-domain-driven-design-source-code/" title="Free .NET type library for Domain Driven Design + source code"></a>I&#8217;ve observed a lot of newcomers to the DDD scene, and typically there&#8217;s lots of talk about Entities, Value Objects, Aggregate Roots, Repositories, Factories, IoC, and various technical concerns. But I&#8217;m seeing a lot missing from the discussions.  Like &#8220;What &#8230;<p class="read-more"><a href="http://evolving-software.co.uk/blog/2009/11/19/free-net-type-library-for-domain-driven-design-source-code/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://evolving-software.co.uk/blog/2009/11/19/free-net-type-library-for-domain-driven-design-source-code/" title="Free .NET type library for Domain Driven Design + source code"></a><p>I&#8217;ve observed a lot of newcomers to the DDD scene, and typically there&#8217;s lots of talk about Entities, Value Objects, Aggregate Roots, Repositories, Factories, IoC, and various technical concerns.</p>
<p>But I&#8217;m seeing a lot missing from the discussions.  Like &#8220;<em>What about the locking implications around an Aggregate?</em>&#8221; or &#8220;<em>Must Value Objects be immutable</em>&#8220;, or even &#8220;<em>How do entities retrieve data if they can&#8217;t access a repository?</em>&#8220;.</p>
<p>To that end, I&#8217;ve created a set of interfaces and base classes that represent the building blocks of DDD.  The idea is to get developers thinking about key concepts early in the design process, and let Intellisense provide some guidance.</p>
<p>You can <a href="http://evolving-software.co.uk/downloads/DomainTypes.zip">download the source code here</a>.  It has a Ms-Pl licence, so you can modify and use the code as you wish.</p>
<p>The DDD related interfaces are:</p>
<ul>
<li>IDomainObject</li>
<li>IEntity</li>
<li>IAggregateRoot</li>
<li>IValueObject</li>
<li>IList&lt;T&gt;</li>
<li>IFactory&lt;T&gt;</li>
<li>IRepository&lt;T&gt;</li>
<li>IService&lt;T&gt;</li>
<li>ISpecification&lt;T&gt;</li>
<li>IQuerySpecification&lt;TRequestor, TResult&gt;</li>
</ul>
<p>Additional interfaces for orthogonal concerns are:</p>
<ul>
<li>IPersistable</li>
<li>IPersistableList&lt;T&gt;</li>
<li>IAudit</li>
<li>IAggregateLock</li>
<li>IAssertion</li>
<li>IDependencyAware</li>
<li>IDependencyLocator</li>
<li>ITrackable</li>
</ul>
<p><a href="http://evolving-software.co.uk/blog/wp-content/uploads/2009/11/Interfaces1.png"><img class="alignnone size-medium wp-image-295" title="Interfaces" src="http://evolving-software.co.uk/blog/wp-content/uploads/2009/11/Interfaces1-300x59.png" alt="Interfaces" width="300" height="59" /></a></p>
<p>This is still a work-in-progress, so feedback would be greatly appreciated.  In the next couple of posts, I&#8217;ll describe the interfaces and classes.</p>
<p><a href="http://evolving-software.co.uk/downloads/DomainTypes.zip">Download the C# project</a></p>
<p>P.S. The next version of TrueView will be based on these interfaces.  So if you code a domain model using the compiled library, TrueView will auto-generate a completely interactive UI (with the appropriate semantics) <span style="text-decoration: underline;">directly from your model.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://evolving-software.co.uk/blog/2009/11/19/free-net-type-library-for-domain-driven-design-source-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

