<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mickaël's Weblog &#187; .Net</title>
	<atom:link href="http://sauvee.wordpress.com/category/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://sauvee.wordpress.com</link>
	<description>Reuse is just a nice side effect</description>
	<lastBuildDate>Sat, 29 Mar 2008 12:34:56 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='sauvee.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/3cb92ce5ac1204654f27489611b00b0b?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Mickaël's Weblog &#187; .Net</title>
		<link>http://sauvee.wordpress.com</link>
	</image>
			<item>
		<title>1 equals 1 &#8230; no you&#8217;re wrong</title>
		<link>http://sauvee.wordpress.com/2008/01/24/1-equals-1-no-youre-wrong/</link>
		<comments>http://sauvee.wordpress.com/2008/01/24/1-equals-1-no-youre-wrong/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 08:59:05 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/net/1-equals-1-no-youre-wrong/</guid>
		<description><![CDATA[I&#8217;m using Rhino Mocks and I’ve seen the real great feature “Ability to joke” when this (click on the image to see it as my theme does not have a main column large enough):

Finally my test was just wrongly written. I’m using RhinoMock and I’m very pleased with it, so I was really surprised by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=82&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m using <a href="http://www.ayende.com/Blog/archive/2007/03/28/Rhino-Mocks-3.0-Released.aspx" target="_blank">Rhino Mocks</a> and I’ve seen the real great feature “Ability to joke” when this <strong>(click on the image to see it as my theme does not have a main column large enough)</strong>:</p>
<p><a href="http://www.sauvee.com/wp02/wp-content/uploads/2008/01/rhino.JPG"><img alt="RhinoMock 1!=1" src="http://www.sauvee.com/wp02/wp-content/uploads/2008/01/rhino.JPG" width="500" /></a></p>
<p>Finally my test was just wrongly written. I’m using RhinoMock and I’m very pleased with it, so I was really surprised by such message.<br />
<a href="http://www.ayende.com/" target="_blank">Ayende</a>, don’t ask the step to reproduce of this, I’m not able to reproduce it and I did not backup my program at that time&#8230;sorry about that.  The only think I can tell is that I was playing with 2 threads in this test…and the test was not testing what it was supposed to.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/82/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/82/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=82&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2008/01/24/1-equals-1-no-youre-wrong/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>

		<media:content url="http://www.sauvee.com/wp02/wp-content/uploads/2008/01/rhino.JPG" medium="image">
			<media:title type="html">RhinoMock 1!=1</media:title>
		</media:content>
	</item>
		<item>
		<title>Threading in .Net 2.0</title>
		<link>http://sauvee.wordpress.com/2008/01/15/threading-in-net-20/</link>
		<comments>http://sauvee.wordpress.com/2008/01/15/threading-in-net-20/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 13:09:44 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/sans-categorie/threading-in-net-20/</guid>
		<description><![CDATA[I recommend 2 great articles on this topic:

BackgroundWorker and SynchronizationContext
an excellent tutorail on multithreading in C#
or this other excellent paper from Joseph Albahari

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=76&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I recommend 2 great articles on this topic:</p>
<ul>
<li><a href="http://msmvps.com/blogs/manoj/archive/2005/11/03/74120.aspx">BackgroundWorker and SynchronizationContext</a></li>
<li>an excellent <a href="http://www.yoda.arachsys.com/csharp/threads/index.shtml">tutorail on multithreading in C#</a></li>
<li>or this other excellent <a href="http://www.albahari.com/threading/">paper</a> from <a href="http://www.albahari.com/" target="_blank">Joseph Albahari</a></li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/76/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/76/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=76&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2008/01/15/threading-in-net-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>Enterprise software programmability capabilities for non-programmer&#8230;stop!</title>
		<link>http://sauvee.wordpress.com/2007/10/16/enterprise-software-programmability-capabilities-for-non-programmerstop/</link>
		<comments>http://sauvee.wordpress.com/2007/10/16/enterprise-software-programmability-capabilities-for-non-programmerstop/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 09:27:56 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/net/enterprise-software-programmability-capabilities-for-non-programmerstop/</guid>
		<description><![CDATA[Robert Cooper talked about why he hates BPM products but love BPM: XML is not a programming language! I fully agree on this assertion and you can read about a post (in French) I&#8217;ve written on this.
This is true for BPM, but also for many enterprise software (see this post from Ayende about what is an enterprise [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=60&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.oreillynet.com/pub/au/2413">Robert Cooper</a><span class="ISI_IGNORE"> talked about why <a href="http://www.oreillynet.com/onjava/blog/2007/10/do_i_hate_bpm_no_i_hate_bpm_pr.html" target="_blank">he hates BPM products but love BPM</a>: XML is not a programming language! I fully agree on this assertion and you can read about a <a href="http://www.sauvee.com/wp02/index.php/j2ee/pourquoi-ne-pas-coder-en-xml/">post</a> (in French) I&#8217;ve written on this.</span></p>
<p>This is true for BPM, but also for many enterprise software (see this <a href="http://www.ayende.com/Blog/archive/2007/10/07/Enterprisey-vs-Enterprise-Software.aspx">post</a> from Ayende about what is an enterprise software): they pretend/tend to be highly customizable to be able to match the enterprise processes without requiring high development skills&#8230;this usually true, but the drawback is the maintenance, upgrade and evolution capabilities which are usually also very poor.</p>
<p>I think Designer Oriented Architecture for non-techy (non-techy does not mean &#8220;no skill&#8221; at all&#8230;see later in this post) is not compatible with maintenance, upgrade and evolution capabilities. For the rest of this post and as I&#8217;m lasy, I will talk only about maintenance but you can replace by &#8220;maintenance, upgrade and evolution&#8221;. The incompatibility is simply due to the fact that a non-programmers have in fact development skills but are Morts (see Jemremy&#8217;s <a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/10/10/alt-net-recap-front-and-center-let-s-talk-constructively-about-mort.aspx" target="_blank">post</a> which I totally agree on), meaning they have to build/customize applications to fulfil some requirements and they learn/use <u>only</u> what they need to do this: &#8220;Mort is a developer who only learns just what he needs to complete his project, on the project&#8221;.</p>
<p>Microsoft Visual Studio and .Net framework are addressing this very well. This is in itself not a bad thing, but it prevent maintenance. <a href="http://evanhoff.com/Default.aspx" target="_blank">Evan Hoff</a> catch it in his <a href="http://evanhoff.com/archive/2007/09/09/51.aspx" target="_blank">post</a>. Clearly: Designer Oriented Architecture goes against maintainability&#8230;and Enterprise Softwares (or BPM products) have not yet understood this. Today, I&#8217;ve seen high level requirements for new Enterprise Software platform for an external company with 3 requirements inside the same slide: &#8220;Easy to build quality application&#8221; (where quality means testability and maintainability), &#8220;High level of extensibility without preventing upgrade&#8221; and &#8220;Ease tayloring, configure and manage applications&#8221;.</p>
<p>I can understand people that are looking for a Ferrari able to do cross over and consuming less than 1liter of fuel per 100 kilometre&#8230;but I&#8217;m doubtful on the success of the search.</p>
<p>Quality, maintenance, ease of upgrade, evolution capabilities are just incompatible with tayloring done by Mort.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/60/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/60/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=60&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/10/16/enterprise-software-programmability-capabilities-for-non-programmerstop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft .Net framework libraries will be released</title>
		<link>http://sauvee.wordpress.com/2007/10/04/microsoft-net-framework-libraries-will-be-released/</link>
		<comments>http://sauvee.wordpress.com/2007/10/04/microsoft-net-framework-libraries-will-be-released/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 08:13:18 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/net/microsoft-net-framework-libraries-will-be-released/</guid>
		<description><![CDATA[Scott Guthrie announced that microsoft will release the .Net framework libraries later this year.
The licence will limite the usage of these sources: you can only use them&#8230;no bug fix, no enhancement and no new features. This will only help to understand some unexpected behaviour&#8230;but only this. Especially for bug fix, this licence is a strong [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=59&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://weblogs.asp.net/scottgu/default.aspx" target="_blank">Scott Guthrie</a> announced that <a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx" target="_blank">microsoft will release the .Net framework libraries</a> later this year.</p>
<p>The licence will limite the usage of these sources: you can only use them&#8230;no bug fix, no enhancement and no new features. This will only help to understand some unexpected behaviour&#8230;but only this. Especially for bug fix, this licence is a strong limitation. The best choice then is to use Mono <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Microsoft has a strange definition of &#8220;Open&#8221; and it seams to be a trap for real open source project as mono. Steven J. Vaughan-Nichols highlight it <a href="http://www.eweek.com/article2/0,1895,2191754,00.asp">there</a>. </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/59/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/59/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=59&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/10/04/microsoft-net-framework-libraries-will-be-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>State for persistent entities</title>
		<link>http://sauvee.wordpress.com/2007/06/14/state-for-persistent-entities/</link>
		<comments>http://sauvee.wordpress.com/2007/06/14/state-for-persistent-entities/#comments</comments>
		<pubDate>Thu, 14 Jun 2007 11:27:34 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Technologies]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/sans-categorie/state-for-persistent-entities/</guid>
		<description><![CDATA[Reading an interesting post from Dwhittaker, I think the problematic is broader. It appears through the question on how should I build my entity from the DAO object. To my opinion, the DAO object should be as much simple as possible&#8230;not smart at all. The best is to generate it using byte code generation for example [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=50&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Reading an interesting <a href="http://devlicio.us/blogs/derik_whittaker/archive/2007/06/06/opinions-wanted-object-pass-through-vs-value-assignment.aspx">post</a> from Dwhittaker, I think the problematic is broader. It appears through the question on how should I build my entity from the DAO object. To my opinion, the DAO object should be as much simple as possible&#8230;not smart at all. The best is to generate it using byte code generation for example using annotation in the real entity object for example, buit this should be addressed into another post <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>If the DAO object is generated, then the entity (or value object) can be build by generic code using reflection for example. Then the &#8220;real&#8221; question raise: what about information lost during the entity creation. Let me explain with a very simple example: waht about the Id of the DAO object? It has absolutely no sense in the entity object, but is required when the application push back the entity object to the persistence layer to store changes. This topic is highlighted in this <a href="http://ayende.com/Blog/archive/2007/06/03/Persistence-Ignorance-in-the-Entity-Framework.aspx">post</a> of Ayende and expose another example: detection of changes.</p>
<p>The problem is about keeping track of information on an object (the entity) without exposing it. more over, this object can be moved from a process to another (or webservice). This sounds very close to the state in ASP net pages, which provide a very good answer. So, I wouold advocate to store a state in the entity object that is crypted and reused by the persistence layer.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=50&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/06/14/state-for-persistent-entities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>Probl&#232;me d&#8217;installation IIS 5 et .Net 2.0</title>
		<link>http://sauvee.wordpress.com/2007/05/22/problme-dinstallation-iis-5-et-net-20/</link>
		<comments>http://sauvee.wordpress.com/2007/05/22/problme-dinstallation-iis-5-et-net-20/#comments</comments>
		<pubDate>Tue, 22 May 2007 08:47:05 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/sans-categorie/problme-dinstallation-iis-5-et-net-20/</guid>
		<description><![CDATA[Je viens d&#8217;acheter un smartphone: le Qtek S200. Je décide alors de m&#8217;intéresser au développement sur ce genre de plateforme, et j&#8217;en profite pour installer Orcas dans l&#8217;idée de regarder ce que SilverLight donne sur un smartphone. Première déception, il me faut 62 Mo pour installer ce qu&#8217;il faut sur le smartphpone, et je n&#8217;en [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=49&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Je viens d&#8217;acheter un smartphone: le Qtek S200. Je décide alors de m&#8217;intéresser au développement sur ce genre de plateforme, et j&#8217;en profite pour installer Orcas dans l&#8217;idée de regarder ce que SilverLight donne sur un smartphone. Première déception, il me faut 62 Mo pour installer ce qu&#8217;il faut sur le smartphpone, et je n&#8217;en ai que 47 car je n&#8217;ai pas pris d&#8217;extention mémoire. Je décide donc de me restreindre à un développement &#8220;classique&#8221; d&#8217;une application .Net windows forms sur le smart phone en utilisant bien entendu le .Net Compact Framwork 2.0.</p>
<p>J&#8217;opte pour le développement d&#8217;une application de gestion de cave&#8230;et oui le vin est aussi une de mes passions. L&#8217;intérêt du Qtek S200 est sa compatibilité wifi: afin d&#8217;avoir l&#8217;application la plus légère possible, je décide d&#8217;utiliser la liason wifi entre le smart phone et un web service hostant la base de donnée. Premier problème: l&#8217;environnement de développement que j&#8217;utilise ne permet pas d&#8217;exposer le web service a autre chose que &#8220;localhost&#8221;. J&#8217;avais déjà voulu installer IIS il y a 1 an, mais j&#8217;avais eu des problèmes d&#8217;installation. Je m&#8217;y remet et bien sur IIS refuse toujours de s&#8217;installer car il ne trouve pas staxmem.dl_. Je décide de rechercher a nouveau sur internet si une solution existe (il y a 1 an, je n&#8217;avais rien trouvé)&#8230;et là, quelqu&#8217;un a enfin la <a href="http://p2p.wrox.com/topic.asp?TOPIC_ID=28566">solution</a>. Donc merci a <strong><a href="http://p2p.wrox.com/pop_profile.asp?mode=display&amp;id=31170">reyluv</a></strong> qui a trouvé la ligne de commande qui récréée la métabase de sécurité:</p>
<p>esentutl /p %windir%\security\database\secedit.sdb</p>
<p>Il est assez déplorable que Microsoft n&#8217;a jamais documenté cette solution (ou alors elle est bien cachée) et propose de réinstaller XP SP2&#8230;rien que cela! Chose intéressante, il semble que CriketMaster (lire le thread sur la solution) ai un desktop HP&#8230;ce qui mon cas&#8230;est-ce une mauvaise installation de l&#8217;OS d&#8217;origine sur ce genre de matériel..???</p>
<p>Bref, mon IIS fonctionne&#8230;sauf que .Net 2 ne fonctionne pas! En cherchant un peu (merci google encore), il semble que .Net ne fonctionne correctement au dessus d&#8217;IIS uniquement s&#8217;il a été installé après IIS. Il suffit donc de faire un &#8220;repair&#8221; sur l&#8217;installation de .Net Framework 2.0 pour que tout roule.</p>
<p>En conclusion: google est peut être le support microsoft non officiel le plus efficace que je connaisse.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=49&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/05/22/problme-dinstallation-iis-5-et-net-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>Ajax sample for behaviour</title>
		<link>http://sauvee.wordpress.com/2007/04/24/ajax-sample-for-behaviour/</link>
		<comments>http://sauvee.wordpress.com/2007/04/24/ajax-sample-for-behaviour/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 09:39:46 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/net/ajax-sample-for-behaviour/</guid>
		<description><![CDATA[Here is an updated piece of the nikhilk sample application demonstrating .Net Ajax features. The initial sample application was using atlas framewokr (beta version). I needed the thumbnail features on top of the release 1.0, which requires some update. I wanted also to validate the control as a user control inside a master page. Feel free [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=45&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a id="p48" href="http://www.sauvee.com/wp02/wp-content/uploads/2007/04/thumbnailextender.zip">Here</a> is an updated piece of the <a href="http://www.nikhilk.net/JAOO2006.aspx">nikhilk sample application</a> demonstrating .Net Ajax features. The initial sample application was using atlas framewokr (beta version). I needed the thumbnail features on top of the release 1.0, which requires some update. I wanted also to validate the control as a user control inside a master page. Feel free to use this sample, and do not hesistate to ask if you have problems.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=45&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/04/24/ajax-sample-for-behaviour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>Persistence Stack (3)</title>
		<link>http://sauvee.wordpress.com/2007/03/29/persistence-stack-3/</link>
		<comments>http://sauvee.wordpress.com/2007/03/29/persistence-stack-3/#comments</comments>
		<pubDate>Thu, 29 Mar 2007 14:24:16 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/net/persistence-stack-3/</guid>
		<description><![CDATA[This post is the third of a serie of posts on persistance stack.
In the previous posts, I describe my humble opinion of the layering for a persistance stak for an entreprise application (for smaller application, there is no problem to mix or get ride of layers). Most of the folks talking about a persistance layer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=43&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post is the third of a serie of posts on persistance stack.</p>
<p>In the previous posts, I describe my humble opinion of the layering for a persistance stak for an entreprise application (for smaller application, there is no problem to mix or get ride of layers). Most of the folks talking about a persistance layer are often forgot to talk about the various services that are providing a strong added value to the applications build on top of it. So, this post is dedicated to some of these services. I&#8217;m not saying I will be exhaustive (because I simply do not know all of the potential servics that a persistance stack could provide) but I will try to go beyond what I usually see on this topic.</p>
<p><strong>What is a persistance stack service?</strong></p>
<p>I should;maybe say: why are they so often forgotten? I think this is because we start to deals with business requirements that are not so attractive to technical folks that prefer challenge on the core of the persistance stack. IMHO, a persistance service is an engine that can fulfill extra business requirement from a persistance perspective. That means it&#8217;s not mandatory at all from a persistance stack to provide such services as they can be provided through the applciations themselves. The huge benefit to integrate them in the persistance stack is to allow consistent and rapide application development without derundancy in code.</p>
<p>In this post i will details services as query language, scripting, database creation and upgrade, workflow engine, archiving, versioning and partitioning. Some of this service are <em>low level services</em> &#8230; I mean they require access to the lower layers of the stack (even if their configuration can be localised in the same area than configuration of higher level services).</p>
<p><strong>Query language</strong></p>
<p>Even if lot&#8217;s of persistance stack provide a query language, I do not concider it as a core service of the persistence stack as these persistance framework are usually presenting it as a tuning step or a way to workaround the regular usage of the framework for complexe request. Despite this, this is probably the persistance service having the strongest capabilities and is often a requirement for the other services as partitioning for example. The aim is provide a query pseudo SQL to the framework. I don&#8217;t think the key feature of this service is to provide an RDBMS independante query language&#8230;I&#8217;m sure most of you won&#8217;t agree. To me the key feature is to provide a way to provide to the application administrator a way to go beyond the application limitations&#8230;if it&#8217;s RDBMS independant: great, but we all know that even if SQL is a standard, all implementations are differents and I don&#8217;t talked about opitimization! This service is so powerful that it should be</p>
<p><strong>Partitioning</strong></p>
<p>This service is a low level service, that means it&#8217;s customization requires the user to use the Query Language as it expose more the database schema than business objectes. Partitioning is a way of doing segregation on (read or write) access to entities (I should say main record of entities). This is tipically a <em>where</em> statement.</p>
<p><strong>Workflow Engine</strong></p>
<p>The persistence layer will trigger this engine to handle integrity check and process steps.</p>
<p> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=43&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/03/29/persistence-stack-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>Le language assembleur présente-t-il toujours un intérêt?</title>
		<link>http://sauvee.wordpress.com/2007/03/23/le-language-assembleur-presente-t-il-toujours-un-interet/</link>
		<comments>http://sauvee.wordpress.com/2007/03/23/le-language-assembleur-presente-t-il-toujours-un-interet/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 15:43:47 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/net/le-language-assembleur-presente-t-il-toujours-un-interet/</guid>
		<description><![CDATA[Cette question refait encore surface (cf billet sur slashdot). Il est incroyable de voir tant de guerres de chapelles avec des arguments totalement loin de la vraie problématique. La question classique est &#8220;En quoi l&#8217;assembleur peut apporter quoi que ce soit alors que tout le monde utilise un langage de haut niveau style Java ou C#?&#8221;.
Primo, tout [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=42&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Cette question refait encore surface (cf <a href="http://ask.slashdot.org/askslashdot/07/03/21/2139219.shtml" target="_blank">billet</a> sur slashdot). Il est incroyable de voir tant de guerres de chapelles avec des arguments totalement loin de la vraie problématique. La question classique est &#8220;En quoi l&#8217;assembleur peut apporter quoi que ce soit alors que tout le monde utilise un langage de haut niveau style Java ou C#?&#8221;.</p>
<p>Primo, tout le monde n&#8217;utilise pas ce genre de langages et l&#8217;assembleur est parfois totalement indispensable dans certains domaines (drivers, pixel shader,&#8230;etc). Secundo, même en dehors de ces domaines, l&#8217;assembleur ou plus précisément des connaissances en assembleur sont très utiles. On peut sans problème coder sans avoir la moindre connaissance de l&#8217;assembleur&#8230;c&#8217;est vrai, mais il assez impressionnant de voir comment des Bac+5 se plantent sur des problèmes simples genre listes chainées. Ensuite, quand arrivent les problèmes de performances, consommation mémoire, un développeur qui ne sait absolument pas comment cela se passe en interne, sera complètement démuni. On pourrait re-phraser la question initiale en :&#8221;Quel est l&#8217;intéret de connaitre les pointeurs quand on programme en Java ou C#?&#8221;. La réponse est la même: on peut faire sans, mais on se casse les dents sur des bugs tout bêtes et on tombent sur des problèmes de consommation mémoire.</p>
<p>En conclusion, le langage assembleur n&#8217;est plus vraiment utilisé (saufs domaines spécifiques a ne pas négliger) mais sa connaissance (ou tout du moins la connaissance des méandres internes des langages de haut niveau) permettent d&#8217;éviter beaucoup de problèmes. Les développeurs ayant cette connaissance ont aussi en général un très bon niveau algorithmique et savent optimiser et coder correctement. Ce n&#8217;est donc pas indispensable mais reste la preuve d&#8217;un niveau élevé.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=42&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/03/23/le-language-assembleur-presente-t-il-toujours-un-interet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
		<item>
		<title>Persistence Stack (2)</title>
		<link>http://sauvee.wordpress.com/2007/02/21/persistence-stack-2/</link>
		<comments>http://sauvee.wordpress.com/2007/02/21/persistence-stack-2/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 11:09:16 +0000</pubDate>
		<dc:creator>Mickael</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://www.sauvee.com/wp02/index.php/net/persistence-stack-2/</guid>
		<description><![CDATA[This post is the second of a set of post on the same topic starting here.
Where do I put business logic?
I&#8217;ve seen this question raised a lot of times by developers who are dealing with management applications using a persistence stack. This question is simple and legitimate but the answer is a little bit trickier.
First [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=40&subd=sauvee&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span>This post is the second of a set of post on the same topic starting <a href="http://www.sauvee.com/wp02/index.php/net/persistence-stack/">here</a>.</span></p>
<p><span /><strong><span>Where do I put business logic?</span></strong></p>
<p><strong><span /></strong><span>I&#8217;ve seen this question raised a lot of times by developers who are dealing with management applications using a persistence stack. This question is simple and legitimate but the answer is a little bit trickier.</span></p>
<p><span /><span>First statement: there are different kinds of business logic which have to be in different layers. Business logic is itself fuzzy and quit large. To some extreme some could argue that the entities definition is part of the business logic, even the primary keys as a way to uniquely retrieve an entity. To the other end, a business process is considered as a kind of business logic. I personally think the business logic is wide but exclude the example I just mentioned.</span></p>
<p><span /><span>Even if an entity has obviously some business inside its definition, its only data, so no logic at all. For the primary keys, I consider that a exposing primary keys is a mistake that prevent evolution and prevent implementation of high level technical services as archiving for example. The best is to expose 2 attributes per entity for retrieval: one which is human readable (as the ID of an employee) and another one which will be used for application integration. The idea is that these &#8220;IDs&#8221; are not varying from a system to another, or during the life cycle of the entities (except for exclusive business reasons), in the contrary of an internal primary key which could vary over time.</span></p>
<p><span /><span>Bitwise, you can consider that the mandatoryness of an attribute (or validation) are part of the business logic. I agree some could argue it&#8217;s exclusively a data modelling concern. That&#8217;s not totally wrong but I think there is a mismatch between engine location and configuration. The engine location is of course in the data modelling layer but as this is part of the business logic (from my point of view) this should be configured in the same area as the other business logic: in the configuration. I will address the problematic of configuration later on. At the same level you have other business logics as: right management, partitioning and entity validity (broader than attributes validity).</span></p>
<p><span /><span>Back to the initial question: where do I put my business logic? IMHO, the best is to define it in a set of configuration files and let the entities delegate to the appropriate engine. This provides a flexible approach (separation between the configuration and the engine) which is also generic (usage of an engine). This question is not totally addressed by this approach and hides the real problematic: scope of business logic.</span></p>
<p><span /><span>The scope of the business logic is far more meaningful and key for a persistence stack. There are at least 3 different scopes:</span></p>
<ul>
<li><span /><span>entity attributes</span></li>
<li><span /><span>entity</span></li>
<li><span /><span>application</span></li>
<li><span /><span>inter-applications</span></li>
</ul>
<p><span /><span>The entity attribute scope is for example the scope for validation/mandatoryness of the attribute PONumber in a purchase order for example. The entity scope is for example the global amount of a purchase order which is supposed to be the sum of the amount of the purchase order lines. The application scope is supposed to address the internal workflows to the application as the approval workflow of a user request for example. The inter application scope will address business logic between applications as between the requesting application/service and the catalogue application/service.<br />
</span><span>You will notice the &#8220;entity&#8221; word is ambiguous: does a purchase order line is an entity or not? IMHO, from a strict business perspective, I don’t think so, even if it&#8217;s convenient. I think a DAO can be considered as entity as soon as it has it’s own validity in the business: does not make sense to talk about a purchase order line outside of the scope of a purchase order. This distinction is sometimes used for value objects versus DAO. I personally prefer use entity and DAO and have both of them in separate layers: Data Access Layer (or data modelling layer) and Domain Layer.<br />
</span><span><font face="Times New Roman" size="3"> </font></span><span> </span><span /><span> </p>
<p></span> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sauvee.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sauvee.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sauvee.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sauvee.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sauvee.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sauvee.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sauvee.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sauvee.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sauvee.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sauvee.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sauvee.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sauvee.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sauvee.wordpress.com&blog=3312526&post=40&subd=sauvee&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://sauvee.wordpress.com/2007/02/21/persistence-stack-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/49dd7c0faeae96273771783ee87c7e8f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mickael</media:title>
		</media:content>
	</item>
	</channel>
</rss>