<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
	<channel>
		<copyright>www.goeleven.com</copyright>
		<pubDate>Fri, 10 Jul 2009 10:50:16 GMT</pubDate>
		<lastBuildDate>Fri, 10 Jul 2009 10:50:16 GMT</lastBuildDate>
		<description>www.goeleven.com</description>
		<language>English (United States)</language>
		<link>http://www.goeleven.com</link>
		<title>Yves Goeleven</title>
		<managingEditor>yves@goeleven.com</managingEditor>
		<webMaster>yves@goeleven.com</webMaster>
		<category>Professional</category>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/goeleven/latest" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
			<title>Azure - a book you might want to preorder</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/12bHcJqhznY/entryDetail.aspx</link>
			<description>When browsing amazon, I discovered the following book to pre-order on the topic of cloud computing on the azure platform&lt;br/&gt;&lt;br/&gt;This book takes the effort to compare Azure with the main competive technologies such as Amazon S3, EC2, SimpleDB, the Google App Engine.&lt;br/&gt;&lt;br/&gt;It will also focus on the challenges that developers and IT departments will face when moving to the platform.&lt;br/&gt;&lt;br/&gt;Obviously it will also include the necessary explanation of the azure basics and some sample code&lt;br/&gt;&lt;br/&gt;Should be an interesting read once it hits the shelves&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.amazon.com/gp/product/0470506385?ie=UTF8&amp;tag=wwwgoelevenco-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0470506385" &gt;&lt;img border="0" src="http://ecx.images-amazon.com/images/I/51Q3mq0KQ%2BL._SL500_AA240_.jpg"&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=wwwgoelevenco-20&amp;l=as2&amp;o=1&amp;a=0470506385" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;When browsing amazon, I discovered the following book to pre-order on the topic of cloud computing on the azure platform&lt;br/&gt;&lt;/p&gt;&lt;br/&gt;&lt;p&gt;This book takes the effort to compare Azure with the main competive technologies such as Amazon S3, EC2, SimpleDB, the Google App Engine.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;It will also focus on the challenges that developers and IT departments will face when moving to the platform.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Obviously it will also include the necessary explanation of the azure basics and some sample code&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Should be an interesting read once it hits the shelves&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.amazon.com/gp/product/0470506385?ie=UTF8&amp;tag=wwwgoelevenco-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0470506385" &gt;&lt;img border="0" src="http://ecx.images-amazon.com/images/I/51Q3mq0KQ%2BL._SL500_AA240_.jpg"&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=wwwgoelevenco-20&amp;l=as2&amp;o=1&amp;a=0470506385" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=12bHcJqhznY:dYmtgmXESNk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=12bHcJqhznY:dYmtgmXESNk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=12bHcJqhznY:dYmtgmXESNk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=12bHcJqhznY:dYmtgmXESNk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=12bHcJqhznY:dYmtgmXESNk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=12bHcJqhznY:dYmtgmXESNk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=12bHcJqhznY:dYmtgmXESNk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=12bHcJqhznY:dYmtgmXESNk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/12bHcJqhznY" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=223</comments>
			<pubDate>Tue, 07 Jul 2009 19:53:51 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=223</feedburner:origLink></item>
		<item>
			<title>Azure - IOC containers</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/0TpbgsHl8ZM/entryDetail.aspx</link>
			<description>Developing applications for the Azure platform isn't that different from regular application development, and if you don't pay attention it's going to be just a vile mess as any other app. Therefore my first advice to development on the platform is: use an ioc container to decouple the different layers and their dependencies. Granted, there is no data, but there are still a lot of things that you are dependent from...&lt;br/&gt;&lt;br/&gt;But there are some caveats that you might need run into the first time you try to use an IOC container in your cloud project...&lt;br/&gt;&lt;br/&gt;First of all, Azure is a partial trust environment by default. This means that any advanced use of reflection, such as ioc, is prohibited. In order to ensure that the role that you are deploying, role is cloud lingo for deployable unit, allows the use of an ioc container you need to configure it to support native code by setting the enableNativeCodeExecution to "true" in the ServiceDefinition.csdef file on the role tag of your choice.&lt;br/&gt;&lt;br/&gt;Secondly you need to take into account that the assemblies have to be deployed to the cloud or development fabric, which is your local cloud emulation, before the types in it can be injection. By default visual studio will only copy the assemblies for which any type is actually referenced in the application assemblies. In case you would like to include any other assembly you will have to copy it to the yourapplication.csx\roles\Web\bin\ folder using a post build script, or make sure any type from the assembly is actually referenced. Personally I prefer the latter...&lt;br/&gt;&lt;br/&gt;So that's it, just configure your container and your good to go...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Developing applications for the Azure platform isn't that different from regular application development, and if you don't pay attention it's going to be just a vile mess as any other app. Therefore my first advice to development on the platform is: use an ioc container to decouple the different layers and their dependencies. Granted, there is no data, but there are still a lot of things that you are dependent from...&lt;/p&gt;&lt;br/&gt;&lt;p&gt;But there are some caveats that you might need run into the first time you try to use an IOC container in your cloud project...&lt;/p&gt;&lt;br/&gt;&lt;p&gt;First of all, Azure is a partial trust environment by default. This means that any advanced use of reflection, such as ioc, is prohibited. In order to ensure that the role that you are deploying, role is cloud lingo for deployable unit, allows the use of an ioc container you need to configure it to support native code by setting the enableNativeCodeExecution to "true" in the ServiceDefinition.csdef file on the role tag of your choice.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Secondly you need to take into account that the assemblies have to be deployed to the cloud or development fabric, which is your local cloud emulation, before the types in it can be injection. By default visual studio will only copy the assemblies for which any type is actually referenced in the application assemblies. In case you would like to include any other assembly you will have to copy it to the yourapplication.csx\roles\Web\bin\ folder using a post build script, or make sure any type from the assembly is actually referenced. Personally I prefer the latter...&lt;/p&gt;&lt;br/&gt;&lt;p&gt;So that's it, just configure your container and your good to go...&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=0TpbgsHl8ZM:Kg62FtPYJs4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=0TpbgsHl8ZM:Kg62FtPYJs4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=0TpbgsHl8ZM:Kg62FtPYJs4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=0TpbgsHl8ZM:Kg62FtPYJs4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=0TpbgsHl8ZM:Kg62FtPYJs4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=0TpbgsHl8ZM:Kg62FtPYJs4:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=0TpbgsHl8ZM:Kg62FtPYJs4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=0TpbgsHl8ZM:Kg62FtPYJs4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/0TpbgsHl8ZM" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=222</comments>
			<pubDate>Mon, 06 Jul 2009 21:49:23 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=222</feedburner:origLink></item>
		<item>
			<title>Azure - My head in the cloud</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/TKkebwJkYQ8/entryDetail.aspx</link>
			<description>You might have noticed it already over the past few months, the focus of my blog is starting to shift, even though I haven't blogged to much... Ever since Azure, Microsoft's cloud platform, has been announced at PDC last year, I have been playing with this new environment. I've been in a learning mode mostly as I try to figure out how to best build systems in an endlessly scalable world where some of the staple products, such as databases, don't exist or don't make sense.&lt;br/&gt;&lt;br/&gt;One of the biggest enablers for learning more about this product has been a special interest group that I've set up internally at &lt;a href="http://www.capgemini.be/"&gt;Capgemini&lt;/a&gt;. In this SIG quite a few of my colleagues teamed up with me to discuss various questions and play around with the bits as new CTP's came out. Some of the most important questions that have been discussed are e.g. 'what kind of enterprise would benefit from cloud computing?', 'how do you deploy a system that has scaled so much that you can't possible take everything down at once?', 'How do I store data if there is no concept of a database?', 'How to maintain integrity if the platform isn't going to support distributed transactions?', 'What kinds of architectures are suitable for such an environment?' and so much more.&lt;br/&gt;&lt;br/&gt;Even though I have been in this learning mode mostly, now on I believe I know enough about it to start sharing some of the knowledge I gained during these SIG's and my personal experiments. So expect yourself to see some more blog posts around here on the topic of Azure in the upcoming months...&lt;br/&gt;&lt;br/&gt;Note: this also means that I'm very eager to hear any question you might have about the Azure platform. So in case you have any, send me a mail on yves ad goeleven dot com.</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;You might have noticed it already over the past few months, the focus of my blog is starting to shift, even though I haven't blogged to much... Ever since Azure, Microsoft's cloud platform, has been announced at PDC last year, I have been playing with this new environment. I've been in a learning mode mostly as I try to figure out how to best build systems in an endlessly scalable world where some of the staple products, such as databases, don't exist or don't make sense.&lt;p&gt;&lt;br/&gt;&lt;p&gt;One of the biggest enablers for learning more about this product has been a special interest group that I've set up internally at &lt;a href="http://www.capgemini.be/"&gt;Capgemini&lt;/a&gt;. In this SIG quite a few of my colleagues teamed up with me to discuss various questions and play around with the bits as new CTP's came out. Some of the most important questions that have been discussed are e.g. 'what kind of enterprise would benefit from cloud computing?', 'how do you deploy a system that has scaled so much that you can't possible take everything down at once?', 'How do I store data if there is no concept of a database?', 'How to maintain integrity if the platform isn't going to support distributed transactions?', 'What kinds of architectures are suitable for such an environment?' and so much more&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Even though I have been in this learning mode mostly, now on I believe I know enough about it to start sharing some of the knowledge I gained during these SIG's and my personal experiments. So expect yourself to see some more blog posts around here on the topic of Azure in the upcoming months...&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Note: this also means that I'm very eager to hear any question you might have about the Azure platform. So in case you have any, send me a mail on yves ad goeleven dot com.&lt;/p&gt;&lt;br/&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=TKkebwJkYQ8:wvxlr08W8vs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=TKkebwJkYQ8:wvxlr08W8vs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=TKkebwJkYQ8:wvxlr08W8vs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=TKkebwJkYQ8:wvxlr08W8vs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=TKkebwJkYQ8:wvxlr08W8vs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=TKkebwJkYQ8:wvxlr08W8vs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=TKkebwJkYQ8:wvxlr08W8vs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=TKkebwJkYQ8:wvxlr08W8vs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/TKkebwJkYQ8" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=221</comments>
			<pubDate>Thu, 02 Jul 2009 22:02:48 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=221</feedburner:origLink></item>
		<item>
			<title>Azure - Introducing Azug.be</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/s8EoNwygWPA/entryDetail.aspx</link>
			<description>&lt;a href="http://www.azug.be" border="0"&gt;&lt;img src="http://www.casey.be/azug/img/azuglogo.gif" class="right" /&gt;&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;Once the summer is over, I'm going to join &lt;a href="http://geekswithblogs.net/claeyskurt/"&gt;Kurt Claeys&lt;/a&gt; to start a new belgian user group on Azure.&lt;br/&gt;&lt;br/&gt;I'm quite into this new platform for the last months, which you might have noticed as I've been blogging about some of my experiments with it like the &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=170"&gt;cloud queue channel&lt;/a&gt; and how to &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=219"&gt;build an EDA on top of Azure&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;So if you are interested in Azure as well, feel free to join us in our first event, which should occur early in september...&lt;br/&gt;&lt;br/&gt;See you then.</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;&lt;a href="http://www.azug.be" border="0"&gt;&lt;img src="http://www.casey.be/azug/img/azuglogo.gif" class="right" /&gt;&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;Once the summer is over, I'm going to join &lt;a href="http://geekswithblogs.net/claeyskurt/"&gt;Kurt Claeys&lt;/a&gt; to start a new belgian user group on Azure.&lt;br/&gt;&lt;br/&gt;I'm quite into this new platform for the last months, which you might have noticed as I've been blogging about some of my experiments with it like the &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=170"&gt;cloud queue channel&lt;/a&gt; and how to &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=219"&gt;build an EDA on top of Azure&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;So if you are interested in Azure as well, feel free to join us in our first event, which should occur early in september...&lt;br/&gt;&lt;br/&gt;See you then.&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=s8EoNwygWPA:ti3-J1ogNnA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=s8EoNwygWPA:ti3-J1ogNnA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=s8EoNwygWPA:ti3-J1ogNnA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=s8EoNwygWPA:ti3-J1ogNnA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=s8EoNwygWPA:ti3-J1ogNnA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=s8EoNwygWPA:ti3-J1ogNnA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=s8EoNwygWPA:ti3-J1ogNnA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=s8EoNwygWPA:ti3-J1ogNnA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/s8EoNwygWPA" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=220</comments>
			<pubDate>Sun, 21 Jun 2009 20:47:17 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=220</feedburner:origLink></item>
		<item>
			<title>Azure - EDA on the Azure Platform</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/v9Qh2PSSuy4/entryDetail.aspx</link>
			<description>I'm also very proud that my first article on the Microsoft Belux Architect Newsletter has been published today:&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.microsoft.com/belux/architect/issue_3/azure_services_platform.aspx"&gt;EDA on the Azure Platform&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;In this article I take a deep dive in the architectual challenges that a highly distributed system, such a Azure, poses to us humble architects.&lt;br/&gt;&lt;br/&gt;I will also provide an architecture, called Event Driven Architecture, that can be used to overcome many of these challenges. I both explain what the essential parts of such an architecture are and how the Azure platform provides most of the required building blocks for implementing a system this way.&lt;br/&gt;&lt;br/&gt;I've allready got great responses to the article, so you might be interested to take some time to read it yourself...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;I'm also very proud that my first article on the Microsoft Belux Architect Newsletter has been published today:&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.microsoft.com/belux/architect/issue_3/azure_services_platform.aspx"&gt;EDA on the Azure Platform&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;In this article I take a deep dive in the architectual challenges that a highly distributed system, such a Azure, poses to us humble architects.&lt;br/&gt;&lt;br/&gt;I will also provide an architecture, called Event Driven Architecture, that can be used to overcome many of these challenges. I both explain what the essential parts of such an architecture are and how the Azure platform provides most of the required building blocks for implementing a system this way.&lt;br/&gt;&lt;br/&gt;I've allready got great responses to the article, so you might be interested to take some time to read it yourself... &lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=v9Qh2PSSuy4:STMdVWTE1pk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=v9Qh2PSSuy4:STMdVWTE1pk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=v9Qh2PSSuy4:STMdVWTE1pk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=v9Qh2PSSuy4:STMdVWTE1pk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=v9Qh2PSSuy4:STMdVWTE1pk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=v9Qh2PSSuy4:STMdVWTE1pk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=v9Qh2PSSuy4:STMdVWTE1pk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=v9Qh2PSSuy4:STMdVWTE1pk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/v9Qh2PSSuy4" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=219</comments>
			<pubDate>Wed, 17 Jun 2009 19:19:58 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=219</feedburner:origLink></item>
		<item>
			<title>DDD - Slides Visug Talk</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/uB5UsM1T80k/entryDetail.aspx</link>
			<description>Yesterday I delivered a talk to the belgian Visual Studio User Group, Visug, about the aspects of DDD that are mostly targetted at developers...&lt;br/&gt;&lt;br/&gt;I must admit that I really enjoyed the talk, there was great interest from the public, I got loads of questions. So I need to pay my gratitude to the audience.&lt;br/&gt;&lt;br/&gt;In case you missed it, or you would like to review the content once more, here are the slides:&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.goeleven.com/resources/architecture/DDD/Domain Driven Design.pptx"&gt;Domain Driven Design.pptx&lt;/a&gt;</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Yesterday I delivered a talk to the belgian Visual Studio User Group, Visug, about the aspects of DDD that are mostly targetted at developers...&lt;br/&gt;&lt;br/&gt;I must admit that I really enjoyed the talk, there was great interest from the public, I got loads of questions. So I need to pay my gratitude to the audience.&lt;br/&gt;&lt;br/&gt;In case you missed it, or you would like to review the content once more, here are the slides:&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.goeleven.com/resources/architecture/DDD/Domain Driven Design.pptx"&gt;Domain Driven Design.pptx&lt;/a&gt;&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uB5UsM1T80k:kB_6pE01TEE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uB5UsM1T80k:kB_6pE01TEE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=uB5UsM1T80k:kB_6pE01TEE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uB5UsM1T80k:kB_6pE01TEE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=uB5UsM1T80k:kB_6pE01TEE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uB5UsM1T80k:kB_6pE01TEE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uB5UsM1T80k:kB_6pE01TEE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=uB5UsM1T80k:kB_6pE01TEE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/uB5UsM1T80k" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=218</comments>
			<pubDate>Wed, 17 Jun 2009 19:09:00 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=218</feedburner:origLink></item>
		<item>
			<title>Recent downtime</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/HEUA6WIVMcw/entryDetail.aspx</link>
			<description>You might have noticed that the site has been down for a few days. My provider told me that they had issues with the configuration of the server that it was hosted on, and that they have trouble figuring out what is going on exactly&lt;br/&gt;&lt;br/&gt;In the mean time, the site has been moved to another server and we are back up and running again...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;You might have noticed that the site has been down for a few days. My provider told me that they had issues with the configuration of the server that it was hosted on, and that they have trouble figuring out what is going on exactly&lt;br/&gt;&lt;br/&gt;In the mean time, the site has been moved to another server and we are back up and running again...&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=HEUA6WIVMcw:gjI-wVsDoqQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=HEUA6WIVMcw:gjI-wVsDoqQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=HEUA6WIVMcw:gjI-wVsDoqQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=HEUA6WIVMcw:gjI-wVsDoqQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=HEUA6WIVMcw:gjI-wVsDoqQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=HEUA6WIVMcw:gjI-wVsDoqQ:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=HEUA6WIVMcw:gjI-wVsDoqQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=HEUA6WIVMcw:gjI-wVsDoqQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/HEUA6WIVMcw" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=217</comments>
			<pubDate>Fri, 05 Jun 2009 21:30:25 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=217</feedburner:origLink></item>
		<item>
			<title>EF - Lazy Loading</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/mXn6vgAC6H4/entryDetail.aspx</link>
			<description>The ado.net team announced another critical feature that makes me consider EF as a viable option in the future: &lt;a href="http://blogs.msdn.com/adonet/archive/2009/05/12/sneak-preview-deferred-loading-in-entity-framework-4-0.aspx"&gt;lazy loading&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;keep up the good work guys...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;The ado.net team announced another critical feature that makes me consider EF as a viable option in the future: &lt;a href="http://blogs.msdn.com/adonet/archive/2009/05/12/sneak-preview-deferred-loading-in-entity-framework-4-0.aspx"&gt;lazy loading&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;keep up the good work guys...&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=mXn6vgAC6H4:WZ1SPgf4fhk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=mXn6vgAC6H4:WZ1SPgf4fhk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=mXn6vgAC6H4:WZ1SPgf4fhk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=mXn6vgAC6H4:WZ1SPgf4fhk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=mXn6vgAC6H4:WZ1SPgf4fhk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=mXn6vgAC6H4:WZ1SPgf4fhk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=mXn6vgAC6H4:WZ1SPgf4fhk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=mXn6vgAC6H4:WZ1SPgf4fhk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/mXn6vgAC6H4" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=216</comments>
			<pubDate>Wed, 13 May 2009 19:59:35 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=216</feedburner:origLink></item>
		<item>
			<title>EF - Real POCO support</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/N8ekI9NXYrs/entryDetail.aspx</link>
			<description>I just found the announcement that the Entity Framework will support &lt;a href="http://blogs.msdn.com/adonet/archive/2009/05/11/sneak-preview-persistence-ignorance-and-poco-in-entity-framework-4-0.aspx"&gt;real POCO&lt;/a&gt; from the next version on...&lt;br/&gt;&lt;br/&gt;Definitly worth to keep an eye on these developments...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;I just found the announcement that the Entity Framework will support &lt;a href="http://blogs.msdn.com/adonet/archive/2009/05/11/sneak-preview-persistence-ignorance-and-poco-in-entity-framework-4-0.aspx"&gt;real POCO&lt;/a&gt; from the next version on...&lt;br/&gt;&lt;br/&gt;Definitly worth to keep an eye on these developments...&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=N8ekI9NXYrs:u_tv6698kwE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=N8ekI9NXYrs:u_tv6698kwE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=N8ekI9NXYrs:u_tv6698kwE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=N8ekI9NXYrs:u_tv6698kwE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=N8ekI9NXYrs:u_tv6698kwE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=N8ekI9NXYrs:u_tv6698kwE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=N8ekI9NXYrs:u_tv6698kwE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=N8ekI9NXYrs:u_tv6698kwE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/N8ekI9NXYrs" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=215</comments>
			<pubDate>Wed, 13 May 2009 19:53:57 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=215</feedburner:origLink></item>
		<item>
			<title>DDD - Microsoft Guidance</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/PTw9lylBwdw/entryDetail.aspx</link>
			<description>According to &lt;a href="http://weblogs.asp.net/pgielens/archive/2009/05/12/application-architecture-guide-2nd-edition.aspx"&gt;Paul Gielens&lt;/a&gt;, Microsoft is working to include technical (?) DDD guidance into their next version of the Application Architecture Guide...&lt;br/&gt;&lt;br/&gt;I'm really looking forward to this ...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;According to &lt;a href="http://weblogs.asp.net/pgielens/archive/2009/05/12/application-architecture-guide-2nd-edition.aspx"&gt;Paul Gielens&lt;/a&gt;, Microsoft is working to include technical (?) DDD guidance into their next version of the Application Architecture Guide...&lt;br/&gt;&lt;br/&gt;I'm really looking forward to this ...&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=PTw9lylBwdw:k3oYkkXECEA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=PTw9lylBwdw:k3oYkkXECEA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=PTw9lylBwdw:k3oYkkXECEA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=PTw9lylBwdw:k3oYkkXECEA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=PTw9lylBwdw:k3oYkkXECEA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=PTw9lylBwdw:k3oYkkXECEA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=PTw9lylBwdw:k3oYkkXECEA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=PTw9lylBwdw:k3oYkkXECEA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/PTw9lylBwdw" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=214</comments>
			<pubDate>Wed, 13 May 2009 19:47:08 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=214</feedburner:origLink></item>
		<item>
			<title>DDD - Declarative design</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/ZnqEtBjMcNc/entryDetail.aspx</link>
			<description>Declarative programming is a programming style where the specification becomes executable, this can be achieved by either using an interpreted language like a DSL or runtime code generation such as many aspect oriented frameworks do.&lt;br/&gt;&lt;br/&gt;This declarative programming style has a lot of merits to reduce the impact of changes in the design, but it can impose some risks as well as the effects of these specifications can't really be tested properly.&lt;br/&gt;&lt;br/&gt;Many of the benefits of a declarative design can as well be reached by combining several of the previously discussed programming techniques such as ...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Declarative programming is a programming style where the specification becomes executable, this can be achieved by either using an interpreted language like a DSL or runtime code generation such as many aspect oriented frameworks do.&lt;br/&gt;&lt;br/&gt;This declarative programming style has a lot of merits to reduce the impact of changes in the design, but it can impose some risks as well as the effects of these specifications can't really be tested properly.&lt;br/&gt;&lt;br/&gt;Many of the benefits of a declarative design can as well be reached by combining several of the previously discussed programming techniques such as &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=205"&gt;intention-revealing interfaces&lt;/a&gt;, &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=206"&gt;side effect-free functions&lt;/a&gt;, &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=208"&gt;conceptual contours&lt;/a&gt; and &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=212"&gt;closure of operations&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;A fully implemented specification pattern is a very good example:&lt;br/&gt;&lt;br/&gt;	var isAllowedToDrive = IsOlderThan(18) &amp; DoesNotDrink();&lt;br/&gt;&lt;br/&gt;Or a fluent interface&lt;br/&gt;&lt;br/&gt;	serviceProvider&lt;br/&gt;		.For&amp;lt;IMyService&amp;gt;()&lt;br/&gt;		.Return(new Mock&amp;lt;IMyService&amp;gt;());&lt;br/&gt;&lt;br/&gt;By using an imperative language to achieve kind of a declarative programming style, allows you to both test the effects of the code, as you have an object in hands to test against, and the code is still concise and expressive which leads to a serious reduction in impact of changes.&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=ZnqEtBjMcNc:k2zW77m2ydA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=ZnqEtBjMcNc:k2zW77m2ydA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=ZnqEtBjMcNc:k2zW77m2ydA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=ZnqEtBjMcNc:k2zW77m2ydA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=ZnqEtBjMcNc:k2zW77m2ydA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=ZnqEtBjMcNc:k2zW77m2ydA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=ZnqEtBjMcNc:k2zW77m2ydA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=ZnqEtBjMcNc:k2zW77m2ydA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/ZnqEtBjMcNc" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=213</comments>
			<pubDate>Wed, 06 May 2009 20:12:39 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=213</feedburner:origLink></item>
		<item>
			<title>DDD - Closure of operations</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/uDRUcWbOwB4/entryDetail.aspx</link>
			<description>Most interesting objects end up doing things that can’t be characterized by primitives alone, so implementing it as &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=209"&gt;a standalone class&lt;/a&gt; is not an option. But there are other options to limit the scope of a class, and thus the impact on refactoring, closure of operations for example.&lt;br/&gt;&lt;br/&gt;Where it fits, define an operation whose return type is the same as the type of its arguments, as such making the operation closed under that type. Here is an example:&lt;br/&gt;&lt;br/&gt;Pigment red = new Pigment();&lt;br/&gt;Pigment blue = new Pigment();&lt;br/&gt;Pigment purple = red.MixIn(blue);&lt;br/&gt;&lt;br/&gt;Closure of operations can drastically simplify the model even if the closure is incomplete, in combination with primitives for example&lt;br/&gt;&lt;br/&gt;Volume liquifiedNaturalGas = new Volume(1000, “m³”);&lt;br/&gt;Volume naturalGas = liquifiedNaturalGas.ExpandBy(60.43);</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Most interesting objects end up doing things that can’t be characterized by primitives alone, so implementing it as &lt;a href="http://www.goeleven.com/blog/entryDetail.aspx?entry=209"&gt;a standalone class&lt;/a&gt; is not an option. But there are other options to limit the scope of a class, and thus the impact on refactoring, closure of operations for example.&lt;br/&gt;&lt;br/&gt;Where it fits, define an operation whose return type is the same as the type of its arguments, as such making the operation closed under that type. Here is an example:&lt;br/&gt;&lt;br/&gt;Pigment red = new Pigment();&lt;br/&gt;Pigment blue = new Pigment();&lt;br/&gt;Pigment purple = red.MixIn(blue);&lt;br/&gt;&lt;br/&gt;Closure of operations can drastically simplify the model even if the closure is incomplete, in combination with primitives for example&lt;br/&gt;&lt;br/&gt;Volume liquifiedNaturalGas = new Volume(1000, “m³”);&lt;br/&gt;Volume naturalGas = liquifiedNaturalGas.ExpandBy(60.43);&lt;/p&gt;&lt;br/&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uDRUcWbOwB4:d2Pn1hk4MOM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uDRUcWbOwB4:d2Pn1hk4MOM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=uDRUcWbOwB4:d2Pn1hk4MOM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uDRUcWbOwB4:d2Pn1hk4MOM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=uDRUcWbOwB4:d2Pn1hk4MOM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uDRUcWbOwB4:d2Pn1hk4MOM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=uDRUcWbOwB4:d2Pn1hk4MOM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=uDRUcWbOwB4:d2Pn1hk4MOM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/uDRUcWbOwB4" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=212</comments>
			<pubDate>Mon, 04 May 2009 20:30:49 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=212</feedburner:origLink></item>
		<item>
			<title>I turned 30 today</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/Y3mxi5d_UpA/entryDetail.aspx</link>
			<description>I turned 30 today, party time...</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;I turned 30 today, party time...&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=Y3mxi5d_UpA:QOWLq0JEs7I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=Y3mxi5d_UpA:QOWLq0JEs7I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=Y3mxi5d_UpA:QOWLq0JEs7I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=Y3mxi5d_UpA:QOWLq0JEs7I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=Y3mxi5d_UpA:QOWLq0JEs7I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=Y3mxi5d_UpA:QOWLq0JEs7I:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=Y3mxi5d_UpA:QOWLq0JEs7I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=Y3mxi5d_UpA:QOWLq0JEs7I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/Y3mxi5d_UpA" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=211</comments>
			<pubDate>Mon, 04 May 2009 20:23:52 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=211</feedburner:origLink></item>
		<item>
			<title>DDD - Standalone classes</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/6aXPPKgXgUE/entryDetail.aspx</link>
			<description>Low coupling is another fundamental in object design that will help minimize the impact of any refactoring effort. Don’t hesitate to go all the way and remove every single dependency if you can. &lt;br/&gt;&lt;br/&gt;A dependency means an association, input parameter, return parameter or object instantiated internally, Each of these adds to the mental load as the developer needs to take side effects for them into account when making changes to the aggregate.&lt;br/&gt;Primitives and .Net native types usually don’t count as mental overload, so try to expose or consume those instead. But keep in mind that the concepts represented by these primitives still do!&lt;br/&gt;&lt;br/&gt;Don't go overboard on this pattern either, try not to dumb the model down by removing to much of these dependencies. My advise is to apply the standalone class pattern for classes that represent processes or calculations, as these typically don't depend to much on the semantics.</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Low coupling is another fundamental in object design that will help minimize the impact of any refactoring effort. Don’t hesitate to go all the way and remove every single dependency if you can. &lt;br/&gt;&lt;br/&gt;A dependency means an association, input parameter, return parameter or object instantiated internally, Each of these adds to the mental load as the developer needs to take side effects for them into account when making changes to the aggregate.&lt;br/&gt;Primitives and .Net native types usually don’t count as mental overload, so try to expose or consume those instead. But keep in mind that the concepts represented by these primitives still do!&lt;br/&gt;&lt;br/&gt;Don't go overboard on this pattern either, try not to dumb the model down by removing to much of these dependencies. My advise is to apply the standalone class pattern for classes that represent processes or calculations, as these typically don't depend to much on the semantics.&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=6aXPPKgXgUE:nSYMYMmAL1A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=6aXPPKgXgUE:nSYMYMmAL1A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=6aXPPKgXgUE:nSYMYMmAL1A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=6aXPPKgXgUE:nSYMYMmAL1A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=6aXPPKgXgUE:nSYMYMmAL1A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=6aXPPKgXgUE:nSYMYMmAL1A:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=6aXPPKgXgUE:nSYMYMmAL1A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=6aXPPKgXgUE:nSYMYMmAL1A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/6aXPPKgXgUE" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=209</comments>
			<pubDate>Thu, 30 Apr 2009 15:46:06 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=209</feedburner:origLink></item>
		<item>
			<title>DDD - Conceptual Contours</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/-_nc5jyBHHY/entryDetail.aspx</link>
			<description>Another important aspect that defines how well an aggregate or model can support refactoring is the scope of said part. &lt;br/&gt;&lt;br/&gt;There is obviously to standardized way to figure out how large an aggregate should be. If the design is to coarse grained, then the interface doesn’t say everything the client may need to know. If the design is to fine grained, then the client might need to know to much about the aggregate in order to use it.&lt;br/&gt;&lt;br/&gt;Evans states that, in his experience, the design is most flexible if it follows the conceptual contours of the business concepts. If you understand the concepts well and shape the aggregate according to the boundaries of this concept, any refactoring to it has least impact on the rest of the code because all relevant changes are scoped inside the aggregate and have little reason to leak out.&lt;br/&gt;&lt;br/&gt;How to find the conceptual contour? Use your intuition! Observe the axes of change and stability during refactorings to align the model with the consistent aspects of the model that make it viable in the real world in the first place.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Another important aspect that defines how well an aggregate or model can support refactoring is the scope of said part. &lt;br/&gt;&lt;br/&gt;There is obviously to standardized way to figure out how large an aggregate should be. If the design is to coarse grained, then the interface doesn’t say everything the client may need to know. If the design is to fine grained, then the client might need to know to much about the aggregate in order to use it.&lt;br/&gt;&lt;br/&gt;Evans states that, in his experience, the design is most flexible if it follows the conceptual contours of the business concepts. If you understand the concepts well and shape the aggregate according to the boundaries of this concept, any refactoring to it has least impact on the rest of the code because all relevant changes are scoped inside the aggregate and have little reason to leak out.&lt;br/&gt;&lt;br/&gt;How to find the conceptual contour? Use your intuition! Observe the axes of change and stability during refactorings to align the model with the consistent aspects of the model that make it viable in the real world in the first place.&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=-_nc5jyBHHY:6GNBiyR97FI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=-_nc5jyBHHY:6GNBiyR97FI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=-_nc5jyBHHY:6GNBiyR97FI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=-_nc5jyBHHY:6GNBiyR97FI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=-_nc5jyBHHY:6GNBiyR97FI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=-_nc5jyBHHY:6GNBiyR97FI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=-_nc5jyBHHY:6GNBiyR97FI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=-_nc5jyBHHY:6GNBiyR97FI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/-_nc5jyBHHY" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=208</comments>
			<pubDate>Wed, 29 Apr 2009 20:14:03 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=208</feedburner:origLink></item>
		<item>
			<title>DDD - Assertions</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/zAsABkmRghc/entryDetail.aspx</link>
			<description>When the side effects of operations are only defined implicitly then the delegation of commands will make the design a mess of cause and effects. Then the only way to understand what is happening is by learning the internal execution paths, which is obviously less then desirable.&lt;br/&gt;&lt;br/&gt;Therefore you should make the side effects of commands explicit by using assertions, if your programming language allows this. Sadly enough C# does not, except for some experimental frameworks like Spec# and CodeContracts.&lt;br/&gt;&lt;br/&gt;Unit tests, by creating tests for post and pre-conditions, can be used instead though. Especially well suited for specifying the side effects are &lt;a href="http://behaviour-driven.org/"&gt;BDD style&lt;/a&gt; tests which allow you to define the context, pre-conditions, in which the side effect occurs and allows you to show what the impact of the side effect is as an assertion in a test.</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;When the side effects of operations are only defined implicitly then the delegation of commands will make the design a mess of cause and effects. Then the only way to understand what is happening is by learning the internal execution paths, which is obviously less then desirable.&lt;br/&gt;&lt;br/&gt;Therefore you should make the side effects of commands explicit by using assertions, if your programming language allows this. Sadly enough C# does not, except for some experimental frameworks like Spec# and CodeContracts.&lt;br/&gt;&lt;br/&gt;Unit tests, by creating tests for post and pre-conditions, can be used instead though. Especially well suited for specifying the side effects are &lt;a href="http://behaviour-driven.org/"&gt;BDD style&lt;/a&gt; tests which allow you to define the context, pre-conditions, in which the side effect occurs and allows you to show what the impact of the side effect is as an assertion in a test.&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=zAsABkmRghc:NEP0tMYTdpc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=zAsABkmRghc:NEP0tMYTdpc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=zAsABkmRghc:NEP0tMYTdpc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=zAsABkmRghc:NEP0tMYTdpc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=zAsABkmRghc:NEP0tMYTdpc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=zAsABkmRghc:NEP0tMYTdpc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=zAsABkmRghc:NEP0tMYTdpc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=zAsABkmRghc:NEP0tMYTdpc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/zAsABkmRghc" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=207</comments>
			<pubDate>Fri, 24 Apr 2009 20:08:58 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=207</feedburner:origLink></item>
		<item>
			<title>DDD - Side-effect free functions</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/lj6-OEWiRlw/entryDetail.aspx</link>
			<description>Operations can be roughly divided in two categories: Operations that return results, from now on called queries, and those that cause state changes or side effects, from now on called commands. &lt;br/&gt;&lt;br/&gt;It is important to separate the commands from the queries so that the software becomes more predictable. Queries never cause state changes, they are idempotent. Which means that any time they are executed, they provide the same result.&lt;br/&gt;&lt;br/&gt;Make sure to limit the amount of commands, but obviously you can't do without. When you create a command, make sure it never return entities, preferably it has no result at all. This to make sure that developers don't use commands to retrieve data. &lt;br/&gt;&lt;br/&gt;Further control side effects by moving complex logic into value objects Which must be immutable anyway. Also ensure that commands are only exposed on the interface of entities, as value objects must remain immutable.&lt;br/&gt;&lt;br/&gt;Think of side effects as pushing the button which fires a missile, and you will understand the rules described before :)</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Operations can be roughly divided in two categories: Operations that return results, from now on called queries, and those that cause state changes or side effects, from now on called commands. &lt;br/&gt;&lt;br/&gt;It is important to separate the commands from the queries so that the software becomes more predictable. Queries never cause state changes, they are idempotent. Which means that any time they are executed, they provide the same result.&lt;br/&gt;&lt;br/&gt;Make sure to limit the amount of commands, but obviously you can't do without. When you create a command, make sure it never return entities, preferably it has no result at all. This to make sure that developers don't use commands to retrieve data. &lt;br/&gt;&lt;br/&gt;Further control side effects by moving complex logic into value objects Which must be immutable anyway. Also ensure that commands are only exposed on the interface of entities, as value objects must remain immutable.&lt;br/&gt;&lt;br/&gt;Think of side effects as pushing the button which fires a missile, and you will understand the rules described before :)&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=lj6-OEWiRlw:gfOA6v0PE78:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=lj6-OEWiRlw:gfOA6v0PE78:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=lj6-OEWiRlw:gfOA6v0PE78:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=lj6-OEWiRlw:gfOA6v0PE78:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=lj6-OEWiRlw:gfOA6v0PE78:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=lj6-OEWiRlw:gfOA6v0PE78:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=lj6-OEWiRlw:gfOA6v0PE78:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=lj6-OEWiRlw:gfOA6v0PE78:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/lj6-OEWiRlw" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=206</comments>
			<pubDate>Thu, 23 Apr 2009 20:46:17 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=206</feedburner:origLink></item>
		<item>
			<title>DDD - Intention revealing interfaces</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/LpZ_dgDl6fA/entryDetail.aspx</link>
			<description>The object oriented paradigm of encapsulation is pretty much worthless if a developer that uses the interface of an object has to know the implementation details before the interface can be used appropriatly.&lt;br/&gt;&lt;br/&gt;Therefore you should expose intention revealing interfaces, this means that instead of exposing the shape of the object, you should expose methods that clearly describe what the intent is without revealing how it does it's magic. The names of these interfaces should conform to the ubiquitous language so that team members can quickly infer their meaning.&lt;br/&gt;&lt;br/&gt;An easy way to do this is to take the role of the client developer, write a test first and implement it afterwards. This forces you to think about the external appearance of the object, instead of the implementation details.</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;The object oriented paradigm of encapsulation is pretty much worthless if a developer that uses the interface of an object has to know the implementation details before the interface can be used appropriatly.&lt;br/&gt;&lt;br/&gt;Therefore you should expose intention revealing interfaces, this means that instead of exposing the shape of the object, you should expose methods that clearly describe what the intent is without revealing how it does it's magic. The names of these interfaces should conform to the ubiquitous language so that team members can quickly infer their meaning.&lt;br/&gt;&lt;br/&gt;An easy way to do this is to take the role of the client developer, write a test first and implement it afterwards. This forces you to think about the external appearance of the object, instead of the implementation details.&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=LpZ_dgDl6fA:rWX6gCIWoVs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=LpZ_dgDl6fA:rWX6gCIWoVs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=LpZ_dgDl6fA:rWX6gCIWoVs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=LpZ_dgDl6fA:rWX6gCIWoVs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=LpZ_dgDl6fA:rWX6gCIWoVs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=LpZ_dgDl6fA:rWX6gCIWoVs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=LpZ_dgDl6fA:rWX6gCIWoVs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=LpZ_dgDl6fA:rWX6gCIWoVs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/LpZ_dgDl6fA" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=205</comments>
			<pubDate>Wed, 22 Apr 2009 20:36:40 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=205</feedburner:origLink></item>
		<item>
			<title>DDD - Supple design</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/J3mv_UkT0Uk/entryDetail.aspx</link>
			<description>Before software can suit the user, it should suit the developer and even after years, the software should be a pleasure to work on. Over time the design should be simplified, through continuous refactoring, so that it becomes easy to use.&lt;br/&gt;&lt;br/&gt;As Evans phrases it so nicely. It's like a well-worn glove, it's sturdy but bends at the correct places.&lt;br/&gt;&lt;br/&gt;Yet you will probably not achieve this on the first release, hard work and sheer persistence is required... in the upcoming posts I will show you some techniques that can help you to achieve a supple design.</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;Before software can suit the user, it should suit the developer and even after years, the software should be a pleasure to work on. Over time the design should be simplified, through continuous refactoring, so that it becomes easy to use.&lt;br/&gt;&lt;br/&gt;As Evans phrases it so nicely. It's like a well-worn glove, it's sturdy but bends at the correct places.&lt;br/&gt;&lt;br/&gt;Yet you will probably not achieve this on the first release, hard work and sheer persistence is required... in the upcoming posts I will show you some techniques that can help you to achieve a supple design. &lt;br/&gt;&lt;/p&gt;&lt;br/&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=J3mv_UkT0Uk:Th6hI16rELw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=J3mv_UkT0Uk:Th6hI16rELw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=J3mv_UkT0Uk:Th6hI16rELw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=J3mv_UkT0Uk:Th6hI16rELw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=J3mv_UkT0Uk:Th6hI16rELw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=J3mv_UkT0Uk:Th6hI16rELw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=J3mv_UkT0Uk:Th6hI16rELw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=J3mv_UkT0Uk:Th6hI16rELw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/J3mv_UkT0Uk" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=204</comments>
			<pubDate>Tue, 21 Apr 2009 20:01:53 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=204</feedburner:origLink></item>
		<item>
			<title>DDD Talk - Some more seats added</title>
			<link>http://feedproxy.google.com/~r/goeleven/latest/~3/wnJlnGfsS8Y/entryDetail.aspx</link>
			<description>On June 16th I will be presenting a session on Domain Driven Design for the VISUG, the sessions was fully booked quite quickly... so I'm happy to hear that they have added more seats :)&lt;br/&gt;&lt;br/&gt;The talk will cover how DDD can be used as a pattern language. Secondly I will give you some real life design tips and tricks that will minimize the impact of refactoring during the life of your code. And finally I will give you some insights into how you can restructure your solutions so that you can focus on the most important parts.&lt;br/&gt;&lt;br/&gt;If you are interested in one of the available spots, &lt;a href="http://www.visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx"&gt;sign up now ...&lt;/a&gt;</description>
			<content:encoded>&lt;![CDATA[&lt;p&gt;On June 16th I will be presenting a session on Domain Driven Design for the VISUG, the sessions was fully booked quite quickly... so I'm happy to hear that they have added more seats :)&lt;br/&gt;&lt;br/&gt;The talk will cover how DDD can be used as a pattern language. Secondly I will give you some real life design tips and tricks that will minimize the impact of refactoring during the life of your code. And finally I will give you some insights into how you can restructure your solutions so that you can focus on the most important parts.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;If you are interested in one of the available spots, &lt;a href="http://www.visug.be/Eventdetails/tabid/95/EventId/7/Default.aspx"&gt;sign up now ...&lt;/a&gt;&lt;/p&gt;]]&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=wnJlnGfsS8Y:nyBuydrXcKc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=wnJlnGfsS8Y:nyBuydrXcKc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=wnJlnGfsS8Y:nyBuydrXcKc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=wnJlnGfsS8Y:nyBuydrXcKc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=wnJlnGfsS8Y:nyBuydrXcKc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=wnJlnGfsS8Y:nyBuydrXcKc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/goeleven/latest?a=wnJlnGfsS8Y:nyBuydrXcKc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/goeleven/latest?i=wnJlnGfsS8Y:nyBuydrXcKc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/goeleven/latest/~4/wnJlnGfsS8Y" height="1" width="1"/&gt;</content:encoded>
			<author>Yves</author>
			<comments>http://www.goeleven.com/blog/entryDetail.aspx?entry=203</comments>
			<pubDate>Mon, 20 Apr 2009 21:24:13 GMT</pubDate>
		<feedburner:origLink>http://www.goeleven.com/blog/entryDetail.aspx?entry=203</feedburner:origLink></item>
	</channel>
</rss>
