<?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.thinkbeforecoding.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
  <title>Think Before Coding  - Comments</title>
  <link>http://thinkbeforecoding.com/</link>
  
  <description />
  <language>en</language>
  <pubDate>Fri, 10 Feb 2012 06:54:10 +0100</pubDate>
  <copyright>(c)2009 Jérémie Chassaing</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.thinkbeforecoding.com/ThinkBeforeCoding-Comments" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="thinkbeforecoding-comments" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
    <title>C# Static interfaces - ferpootoo</title>
    <link>http://thinkbeforecoding.com/post/2009/10/21/CSharp-Static-interfaces#c9618465</link>
    <guid isPermaLink="false">urn:md5:d8c5428ffa65593bcf26f5454fed7ed0</guid>
    <pubDate>Fri, 10 Feb 2012 01:18:22 +0100</pubDate>
    <dc:creator>ferpootoo</dc:creator>
    
    <description>&lt;p&gt;Heh, why not just use the singleton pattern?&lt;/p&gt;
&lt;p&gt;public interface IGlobalThing&lt;br /&gt;
{&lt;/p&gt;
&lt;pre&gt;
   string Name {get;set;}
&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;public class GlobalThing : IGlobalThing&lt;br /&gt;
{&lt;/p&gt;
&lt;pre&gt;
   public static GlobalThing Instance = new GlobalThing();
&lt;/pre&gt;
&lt;pre&gt;
   private string _Name;
   public string Name
   {
       get
       {
           return Instance._Name;
       }
       set
       {
           Instance._Name = value;
       }
   }
&lt;/pre&gt;
&lt;pre&gt;
   private GlobalThing{}
&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/4B4kfd5yKEM" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>I love SQL Server and cultures... NOT ! - Jérémie Chassaing</title>
    <link>http://thinkbeforecoding.com/post/2011/12/02/I-love-SQL-Server-and-cultures-NOT#c9508433</link>
    <guid isPermaLink="false">urn:md5:94b674b4c351ff2bcdc8471fb84f547e</guid>
    <pubDate>Mon, 05 Dec 2011 10:21:23 +0100</pubDate>
    <dc:creator>Jérémie Chassaing</dc:creator>
    
    <description>&lt;p&gt;Thanks for the suggestions. After further tries, I found this to work in any
case :&lt;/p&gt;
&lt;p&gt;CONVERT(datetime, '2011-12-31 23:59:59.997', 121)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/SxWJdY3hqQQ" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>I love SQL Server and cultures... NOT ! - Phil factor</title>
    <link>http://thinkbeforecoding.com/post/2011/12/02/I-love-SQL-Server-and-cultures-NOT#c9507923</link>
    <guid isPermaLink="false">urn:md5:d56e5c94956d078f7f15bcf84cc47792</guid>
    <pubDate>Mon, 05 Dec 2011 00:38:49 +0100</pubDate>
    <dc:creator>Phil factor</dc:creator>
    
    <description>&lt;p&gt;Try using the convert function to convert from string to date, using as a
third parameter the convert code appropriate. I've found that one can specify
the conversion format exactly. I have found 113 to be generally the safest
format, but the convert function accommodates most.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/vaTT7_1SzVo" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>I love SQL Server and cultures... NOT ! - Mike</title>
    <link>http://thinkbeforecoding.com/post/2011/12/02/I-love-SQL-Server-and-cultures-NOT#c9505744</link>
    <guid isPermaLink="false">urn:md5:5c50c426bbb44050593cb3233e167994</guid>
    <pubDate>Sat, 03 Dec 2011 15:06:27 +0100</pubDate>
    <dc:creator>Mike</dc:creator>
    
    <description>&lt;p&gt;You can use the form 'YYYYMMDD' and SQL Server will convert it correctly,
regardless of the set culture.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/I37JRta02M0" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Uniqueness validation in CQRS Architecture - Carol</title>
    <link>http://thinkbeforecoding.com/post/2009/10/28/Uniqueness-validation-in-CQRS-Architecture#c9432392</link>
    <guid isPermaLink="false">urn:md5:84072d59c8fc849e398e473d4afccd75</guid>
    <pubDate>Fri, 28 Oct 2011 20:17:07 +0200</pubDate>
    <dc:creator>Carol</dc:creator>
    
    <description>&lt;p&gt;Thanks for the article. I've been looking to get more into CQRS since
discovering CouchDB and Rinat's (&lt;a href="http://abdullin.com/cqrs/" title="http://abdullin.com/cqrs/" rel="nofollow"&gt;http://abdullin.com/cqrs/&lt;/a&gt;) write-up on it. I've
implemented a DDD repository pattern that let's you inject either a Hibernate
or Couch impl and next I'm going to be writing some Commands against it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/eSv3KQaOhCc" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>C# Static interfaces - Take 2 - Scott Brickey</title>
    <link>http://thinkbeforecoding.com/post/2009/10/22/CSharp-Static-interfaces-Take-2#c9432209</link>
    <guid isPermaLink="false">urn:md5:0bcd0816c99aeaa933f8371fc93f1591</guid>
    <pubDate>Fri, 28 Oct 2011 15:48:01 +0200</pubDate>
    <dc:creator>Scott Brickey</dc:creator>
    
    <description>&lt;p&gt;On multiple occasions, I've wanted an interface to specify specific
constructors... after submitting the suggestion to Connect.Microsoft.com I was
informed that the constructors are effectively static methods.&lt;/p&gt;
&lt;p&gt;So regarding additional use cases for interfaces to specify static methods:
Constructors :)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/NTbx5zvLd00" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options 2 - Matt Collinge</title>
    <link>http://thinkbeforecoding.com/post/2011/06/21/Event-Sourcing-and-CQRS%2C-Dispatch-options-2#c9387342</link>
    <guid isPermaLink="false">urn:md5:7623c8b14821af658cbef4d4612f6e8f</guid>
    <pubDate>Sun, 02 Oct 2011 21:31:33 +0200</pubDate>
    <dc:creator>Matt Collinge</dc:creator>
    
    <description>&lt;p&gt;Hi Jérémie, I am enjoying reading through your DDD &amp;amp; CQRS posts, thanks.
I just thought that I should point out that your perf test for the
AggregateRegisteredOncePerClass is biased by potentially having to go down to
Kernel mode due to the lock statement which need only be called if the class
has not already been initialised. Your version would have the side effect of
making all calls to the .ctor single threaded. With the change below it is ~ 20
times faster than the once per instance option. Again it may be premature
optimisation.&lt;/p&gt;
&lt;p&gt;public AggregateRegisteredOncePerClass(Guid id)&lt;br /&gt;
{&lt;br /&gt;
this.id = id;&lt;/p&gt;
&lt;pre&gt;
if(!initialized)
{
&lt;/pre&gt;
&lt;p&gt;lock (ClassInitLock)&lt;br /&gt;
{&lt;br /&gt;
if (!initialized)&lt;br /&gt;
{&lt;br /&gt;
initialized = true;&lt;br /&gt;
// registration happens only once here&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/vNpwu1OVIU8" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options 2 - Bibendus</title>
    <link>http://thinkbeforecoding.com/post/2011/06/21/Event-Sourcing-and-CQRS%2C-Dispatch-options-2#c9286387</link>
    <guid isPermaLink="false">urn:md5:23e0e6465d3e3c8d0d5950df9a812385</guid>
    <pubDate>Sun, 07 Aug 2011 19:33:34 +0200</pubDate>
    <dc:creator>Bibendus</dc:creator>
    
    <description>&lt;p&gt;Hi Jérémie, I found your posts about CQRS very interesting and I would like
to ask if you could put the code from your posts somewhere, perhaps on
bitbucket along the other code you have there to make it easy to play with
it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/onNcJXZHySM" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Mixing IEnumerable and IQueryable - Bruce</title>
    <link>http://thinkbeforecoding.com/post/2009/01/21/Mixing-IEnumerable-and-IQueryable#c9283071</link>
    <guid isPermaLink="false">urn:md5:3db70a20ca6e10e29be134e7a32bc98d</guid>
    <pubDate>Fri, 05 Aug 2011 23:46:58 +0200</pubDate>
    <dc:creator>Bruce</dc:creator>
    
    <description>&lt;p&gt;Excellent information, not just for improving query performance, but as
information on the inner workings of extension methods in general and the
gotchas that can go along.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/m7suMdk3toY" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>C# Static interfaces - Codernet</title>
    <link>http://thinkbeforecoding.com/post/2009/10/21/CSharp-Static-interfaces#c9255322</link>
    <guid isPermaLink="false">urn:md5:fac9b9328a99f0166aa39a894b2dda76</guid>
    <pubDate>Thu, 14 Jul 2011 02:29:44 +0200</pubDate>
    <dc:creator>Codernet</dc:creator>
    
    <description>&lt;p&gt;// Interface we need to make static&lt;br /&gt;
public interface IInterface&lt;br /&gt;
{&lt;br /&gt;
SomeContext Get { get; }&lt;br /&gt;
double CalcSum(double a, double b);&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;// static class that acts as &amp;quot;Static Interface&amp;quot;&lt;br /&gt;
public static class IStaticInterface&lt;br /&gt;
{&lt;br /&gt;
private static IInterface _context;&lt;/p&gt;
&lt;p&gt;static IStaticInterface()&lt;br /&gt;
{&lt;br /&gt;
//binder - IoC. Or you could use Factory - doesn't matter&lt;br /&gt;
_context = binder.GetDefaultContext();&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;// But if you need to change behaviour you can easily change it with
replacing your interface&lt;br /&gt;
public static void SetContext(IInterface context)&lt;br /&gt;
{&lt;br /&gt;
_context = context;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;// Methods that provide behaviour of your interface&lt;br /&gt;
public static SomeContext Get&lt;br /&gt;
{&lt;br /&gt;
get&lt;br /&gt;
{&lt;br /&gt;
return _context.Get;&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;public static double CalcSum(double a, double b)&lt;br /&gt;
{&lt;br /&gt;
return _context.CalcSum(a, b);&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;I agree that a little code doubling, but i guess you could easy write T4
transformer that would create it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/VExeAhELFrY" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options 2 - Clément Bouillier</title>
    <link>http://thinkbeforecoding.com/post/2011/06/21/Event-Sourcing-and-CQRS%2C-Dispatch-options-2#c9229242</link>
    <guid isPermaLink="false">urn:md5:7d35651e9fc4b96c5c0a61b393ef2ccb</guid>
    <pubDate>Wed, 22 Jun 2011 22:38:58 +0200</pubDate>
    <dc:creator>Clément Bouillier</dc:creator>
    
    <description>&lt;p&gt;We are not at this stage of maturity, nor in a classic CQRS approach...we
use lot of ideas, but not all of them (for now at least...for lots of reason,
bad ones or good ones...), that's why we got the problem for sure.&lt;br /&gt;
But not so much a problem for us, since solved quite quickly.&lt;/p&gt;
&lt;p&gt;We can discuss more in depth at next Alt.Net paris beer of what we are
doing...:)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/b0A-SjcF6ik" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options 2 - Jérémie</title>
    <link>http://thinkbeforecoding.com/post/2011/06/21/Event-Sourcing-and-CQRS%2C-Dispatch-options-2#c9228394</link>
    <guid isPermaLink="false">urn:md5:d71eaf4d99ee95578c470cb85607884b</guid>
    <pubDate>Wed, 22 Jun 2011 15:01:33 +0200</pubDate>
    <dc:creator>Jérémie</dc:creator>
    
    <description>&lt;p&gt;@clement&amp;gt; But do those few seconds have a meaning ?&lt;br /&gt;
You gain less than 4 second for 10.000.000 aggregates.&lt;br /&gt;
For this number of aggregates you get at least 10x more messages/snapshots to
load from disk, deserialize and apply. I think there are more time to get there
than on instance creation.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/pRog1-eEYnk" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options 2 - Clément</title>
    <link>http://thinkbeforecoding.com/post/2011/06/21/Event-Sourcing-and-CQRS%2C-Dispatch-options-2#c9228381</link>
    <guid isPermaLink="false">urn:md5:72a2e657d42a7ee15b92e4c389f219f9</guid>
    <pubDate>Wed, 22 Jun 2011 14:52:05 +0200</pubDate>
    <dc:creator>Clément</dc:creator>
    
    <description>&lt;p&gt;In our case, we have lot of legacy code and we need to improve performance
on meaningful code we started to refactor, until we get a better cache feature
(working)...&lt;/p&gt;
&lt;p&gt;Note that you can achieve even better performance (if really needed yet, i.e
you have &amp;quot;lot of&amp;quot; events raised) using compiled late bound expression rather
than MethodInfo.Invoke or Delegate.DynamicInvoke...see &lt;a href="http://clem-it.blogspot.com/2009/07/expression-trees-and-reflection.html" title="http://clem-it.blogspot.com/2009/07/expression-trees-and-reflection.html" rel="nofollow"&gt;http://clem-it.blogspot.com/2009/07...&lt;/a&gt;
for information on performance of these different solutions&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/Xa1gHKirPPI" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Let's use it. - GT</title>
    <link>http://thinkbeforecoding.com/post/2009/11/02/Event-Sourcing-and-CQRS-Lets-use-it#c9227809</link>
    <guid isPermaLink="false">urn:md5:5dba413bcab0ea5955377ea851fcae87</guid>
    <pubDate>Tue, 21 Jun 2011 20:40:11 +0200</pubDate>
    <dc:creator>GT</dc:creator>
    
    <description>&lt;p&gt;Thanks. I guess a document store like RavenDB would enable the persistence
of IDs/typed IDs in lieu of an RDBMS. Good info.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/i2B628Xl8MY" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options 2 - Jérémie Chassaing</title>
    <link>http://thinkbeforecoding.com/post/2011/06/21/Event-Sourcing-and-CQRS%2C-Dispatch-options-2#c9227154</link>
    <guid isPermaLink="false">urn:md5:299aea88620d41d43a948755fa57c1fd</guid>
    <pubDate>Tue, 21 Jun 2011 12:38:08 +0200</pubDate>
    <dc:creator>Jérémie Chassaing</dc:creator>
    
    <description>&lt;p&gt;@yves&amp;gt; Sure.&lt;br /&gt;
That's why Clement proposed to use Expression&amp;lt;Action&amp;lt;T&amp;gt;&amp;gt; for the
Register method in that case.&lt;/p&gt;
&lt;p&gt;This way you can walk the tree to extract the method info from e =&amp;gt;
this.OnSomethingHappened(e) lambda.&lt;br /&gt;
Using this MethodInfo, you can then invoke the method on the instance when you
need it in your Apply method.&lt;/p&gt;
&lt;p&gt;For the per instance case, you can rely on dynamic, or use a Delegate base
type for action and call DynamicInvoke.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/SAyNwGUMtMM" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options 2 - Yves Reynhout</title>
    <link>http://thinkbeforecoding.com/post/2011/06/21/Event-Sourcing-and-CQRS%2C-Dispatch-options-2#c9227136</link>
    <guid isPermaLink="false">urn:md5:bd5d0799b1e91b247d6e92e3ee7f6a9c</guid>
    <pubDate>Tue, 21 Jun 2011 12:29:10 +0200</pubDate>
    <dc:creator>Yves Reynhout</dc:creator>
    
    <description>&lt;p&gt;One small remark: the &amp;quot;routing to state handler&amp;quot; code is different for the
&amp;quot;initialization once per type(class)&amp;quot; case. Your registered Action&amp;lt;T&amp;gt; in
the &amp;quot;initialization per instance&amp;quot; case references &amp;quot;this&amp;quot;, which would make it
unusable AFAIK in the &amp;quot;initialization once per type(class)&amp;quot; case.&lt;br /&gt;
Here's a paste of how I'm handling this currently (keeping registration process
out of the base class): &lt;a href="http://pastie.org/2100733" title="http://pastie.org/2100733" rel="nofollow"&gt;http://pastie.org/2100733&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/nI7RGdW1KJc" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Let's use it. - Jérémie</title>
    <link>http://thinkbeforecoding.com/post/2009/11/02/Event-Sourcing-and-CQRS-Lets-use-it#c9227044</link>
    <guid isPermaLink="false">urn:md5:130b62293d86d6c7b1fa8d57b761d904</guid>
    <pubDate>Tue, 21 Jun 2011 10:53:59 +0200</pubDate>
    <dc:creator>Jérémie</dc:creator>
    
    <description>&lt;p&gt;@GT&amp;gt; C# has no syntax for alias types, so you have to do it
yourself.&lt;br /&gt;
In F# you can just write&lt;/p&gt;
&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;
&lt;span style="color:blue;"&gt;type&lt;/span&gt; EmployeId = Guid
&lt;/pre&gt;
&lt;p&gt;To use if with frameworks, you usually have to hook to those frameworks type
conversion if available.&lt;br /&gt;
Since I use my own service bus and my own persistence framework, I don't have
this kind of problem, but I know that there is no simple way to do it with
Linq2Sql.&lt;/p&gt;
&lt;p&gt;For Protobuf.Net v2, I managed to use the new Api to build my own
serializer/deserializer conventions that manage this.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/icdrg4qIFtU" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Dispatch options. - Clément Bouillier</title>
    <link>http://thinkbeforecoding.com/post/2009/11/03/Event-Sourcing-and-CQRS-Dispatch-options#c9226871</link>
    <guid isPermaLink="false">urn:md5:f20516be3aa50abe965054cd06c14c74</guid>
    <pubDate>Tue, 21 Jun 2011 08:42:06 +0200</pubDate>
    <dc:creator>Clément Bouillier</dc:creator>
    
    <description>&lt;p&gt;Hi Jeremie,&lt;/p&gt;
&lt;p&gt;We started with handler registration, but it is surely memory and time
consuming to register on each aggregate. Then, we face the same
challenges:&lt;br /&gt;
- I do not like much adding a parameter to each Apply method and make them
static&lt;br /&gt;
- considering dynamic and convention based, I do not like the fact that R# says
my methods are unused (like too much remove code with this, I do not want to
have to think about that, even if I agree with Gilligan when he says we have to
understand before coding...) and I do not want to change my method to protected
or public...&lt;br /&gt;
- as Jonathan and you, I do not like the generic type parameter that is now
required on the base aggregate class if you consider Jonathan's approach&lt;/p&gt;
&lt;p&gt;I see an other solution :&lt;br /&gt;
- RegisterEvent is an instance method, that is called in RegisterAllEvents
override as in handler registration, but use a static register inside
Aggregate, it will remove redundancy of register (memory and time
consuming)&lt;br /&gt;
- then, you have registered an &amp;quot;apply&amp;quot; method that apply to one particular
aggregate instance (RegisterEvent&amp;lt;SomeEventHappen&amp;gt;(e =&amp;gt;
this.Apply(e)), so you have to remove the reference to &amp;quot;this&amp;quot; instance, here is
the trick: you use same registration process as in convention based solution,
but rather than using name convention, you use Expression API to retrieve
method name on registered Expression e =&amp;gt; this.Apply(e).&lt;br /&gt;
Note that you can enforce some convention on method signature. Also you cannot
use RegisterEvent&amp;lt;SomeEventHappen&amp;gt;(Apply) since Apply is a delegate, not
an expression.&lt;/p&gt;
&lt;p&gt;Clément&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/X72CJ_UKDmk" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Event Sourcing and CQRS, Let's use it. - GT</title>
    <link>http://thinkbeforecoding.com/post/2009/11/02/Event-Sourcing-and-CQRS-Lets-use-it#c9226198</link>
    <guid isPermaLink="false">urn:md5:563e12d75cf3cc99c593f816fb571793</guid>
    <pubDate>Mon, 20 Jun 2011 18:22:30 +0200</pubDate>
    <dc:creator>GT</dc:creator>
    
    <description>&lt;p&gt;This is a wonderful example, Jérémie.&lt;/p&gt;
&lt;p&gt;I like the treatment of the BookId, hiding a Guid behind a Struct. I have a
couple of questions:&lt;/p&gt;
&lt;p&gt;Question 1: Is there a term for this technique?&lt;/p&gt;
&lt;p&gt;Questions 2: As the BookId does not expose its data, how would this be
persisted and rehydrated, say if you're using NServiceBus and SQL Server for
message transportation and event store, respectively.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;GT&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/LuokuZ0wgHI" height="1" width="1"/&gt;</description>
  </item>
      
    
    <item>
    <title>Time - Jérémie</title>
    <link>http://thinkbeforecoding.com/post/2011/06/09/Time#c9215490</link>
    <guid isPermaLink="false">urn:md5:41fba26ac14cc55e248a851dfbb4598c</guid>
    <pubDate>Fri, 10 Jun 2011 12:28:06 +0200</pubDate>
    <dc:creator>Jérémie</dc:creator>
    
    <description>&lt;p&gt;And I would add that any event is the consequence of previous events since
the start of the system.&lt;/p&gt;
&lt;p&gt;The primary event is system start.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;And the primary event of all that is...&lt;/p&gt;
&lt;p&gt;Big Bang !&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThinkBeforeCoding-Comments/~4/L2fwdI2vt1s" height="1" width="1"/&gt;</description>
  </item>
      
</channel>
</rss>

