<?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>Sat, 20 Feb 2010 13:21:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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[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 at StackOverflow), here are the major changes:

Refined and enhanced most of the interfaces
Removed the concept of [...]]]></description>
			<content:encoded><![CDATA[<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[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 about the locking implications around an Aggregate?&#8221; or &#8220;Must Value Objects be immutable&#8220;, or even &#8220;How [...]]]></description>
			<content:encoded><![CDATA[<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>
