<?xml version="1.0" encoding="UTF-8"?><!--RSS generated by Windows SharePoint Services V3 RSS Generator on 8/1/2010 12:40:28 AM--><?xml-stylesheet type="text/xsl" href="/_layouts/RssXslt.aspx?List=a3a22a37-1e85-4fe7-9bde-0301113bdeb2" version="1.0"?><rss version="2.0"><channel><title>Aviva Solutions Blog</title><link>http://blog.avivasolutions.nl</link><description>RSS feed for the Posts list.</description><lastBuildDate>Sat, 31 Jul 2010 22:40:27 GMT</lastBuildDate><generator>SharePoint CKS:EBE</generator><ttl>60</ttl><image><title>Aviva Solutions Blog</title><url>http://blog.avivasolutions.nl/_layouts/images/homepage.gif</url><link>http://blog.avivasolutions.nl</link></image><item><title>JQuery clone() not maintaining "checked" state</title><link>http://blog.avivasolutions.nl/archive/2010/07/08/jquery-clone-not-maintaining-quote-checked-quote-state.aspx</link><guid isPermaLink="False">/archive/2010/07/08/jquery-clone-not-maintaining-quote-checked-quote-state.aspx</guid><description><![CDATA[<div class="ExternalClassE3C3F190A7234803A64F867787224167"><p>If never been much of a front-end developer, but as most developers I manage my tags pretty well;-) but javascript has always been hell. I always stayed away from it but with JQuery the ballpark has changed a lot! Traversing the DOM has never been simpler, adding elements and attributes, moving them around, Childs play. </p>  <p>Yesterday my college noticed that the functionality I build for selecting checkbox items in div-popup’s didn’t work in IE8. So I’ve been puzzling why this was happing, this morning I found the culprit, it was the usage of the JQuery Clone  method.</p>  <p>JQuery offers a function to copy a element with all its events but as I found out the hard way checked state isn’t maintained during the function execution under Internet Explorer 6/7/8.</p>  <p>Which basically SUCKS!</p>  <p>After a lot of searching, I found out that there is a long standing bug <a title="Link to clone ticket" href="http://dev.jquery.com/ticket/1294">ticket</a> in the JQuery bugtracker. The bug is still unresolved but there where some workaround posted in the comments.</p>  <p>The workaround I chose is to implement was to override the clone function from JQuery itself. Note this clone function wasn’t approved to put in the core of JQuery due to performance reasons. </p>  <p>Overriding is quit simple just put the following script function in a javascript tag in your page (or separate file) . And call the function, the overriding magic is just on line Number 8. </p>  <div class="csharpcode">   <pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">function</span> overrideJqueryClone() </pre>

  <pre><span class="lnum">   2:  </span>{</pre>

  <pre class="alt"><span class="lnum">   3:  </span>    (<span class="kwrd">function</span> () {</pre>

  <pre><span class="lnum">   4:  </span>        <span class="rem">// Store a reference to the original remove method.</span></pre>

  <pre class="alt"><span class="lnum">   5:  </span>        <span class="kwrd">var</span> originalRemoveMethod = jQuery.fn.clone;</pre>

  <pre><span class="lnum">   6:  </span> </pre>

  <pre class="alt"><span class="lnum">   7:  </span>        <span class="rem">// Define overriding method.</span></pre>

  <pre><span class="lnum">   8:  </span>        jQuery.fn.clone = <span class="kwrd">function</span> (deep) {</pre>

  <pre class="alt"><span class="lnum">   9:  </span>            deep = deep != undefined ? deep : <span class="kwrd">true</span>;</pre>

  <pre><span class="lnum">  10:  </span>            <span class="kwrd">var</span> $<span class="kwrd">this</span>;</pre>

  <pre class="alt"><span class="lnum">  11:  </span>            <span class="kwrd">if</span> (jQuery.browser.msie) {</pre>

  <pre><span class="lnum">  12:  </span>                $<span class="kwrd">this</span> = <span class="kwrd">this</span>.add(<span class="kwrd">this</span>.find(<span class="str">&quot;*&quot;</span>));</pre>

  <pre class="alt"><span class="lnum">  13:  </span>                <span class="rem">// Need to remove events on the element and its descendants</span></pre>

  <pre><span class="lnum">  14:  </span>                $<span class="kwrd">this</span>.each(<span class="kwrd">function</span> () {</pre>

  <pre class="alt"><span class="lnum">  15:  </span>                    <span class="kwrd">this</span>._$events = {};</pre>

  <pre><span class="lnum">  16:  </span>                    <span class="kwrd">for</span> (<span class="kwrd">var</span> type <span class="kwrd">in</span> <span class="kwrd">this</span>.$events)</pre>

  <pre class="alt"><span class="lnum">  17:  </span>                        <span class="kwrd">this</span>._$events[type] = jQuery.extend({}, <span class="kwrd">this</span>.$events[type]);</pre>

  <pre><span class="lnum">  18:  </span>                }).unbind();</pre>

  <pre class="alt"><span class="lnum">  19:  </span>            }</pre>

  <pre><span class="lnum">  20:  </span>            <span class="rem">// Do the clone</span></pre>

  <pre class="alt"><span class="lnum">  21:  </span>            <span class="kwrd">var</span> copy = <span class="kwrd">false</span>, r = <span class="kwrd">this</span>.pushStack(jQuery.map(<span class="kwrd">this</span>, <span class="kwrd">function</span> (a) {</pre>

  <pre><span class="lnum">  22:  </span>                <span class="kwrd">if</span> (!copy &amp;&amp; deep &amp;&amp; (a.hasChildNodes() || jQuery.nodeName(a, <span class="str">&quot;select&quot;</span>) || jQuery.nodeName(a, <span class="str">&quot;input&quot;</span>))) copy = <span class="kwrd">true</span>;</pre>

  <pre class="alt"><span class="lnum">  23:  </span>                <span class="kwrd">return</span> a.cloneNode(deep);</pre>

  <pre><span class="lnum">  24:  </span>            }));</pre>

  <pre class="alt"><span class="lnum">  25:  </span>            <span class="kwrd">if</span> (jQuery.browser.msie) {</pre>

  <pre><span class="lnum">  26:  </span>                $<span class="kwrd">this</span>.each(<span class="kwrd">function</span> () {</pre>

  <pre class="alt"><span class="lnum">  27:  </span>                    <span class="rem">// Add the events back to the original and its descendants</span></pre>

  <pre><span class="lnum">  28:  </span>                    <span class="kwrd">var</span> events = <span class="kwrd">this</span>._$events;</pre>

  <pre class="alt"><span class="lnum">  29:  </span>                    <span class="kwrd">for</span> (<span class="kwrd">var</span> type <span class="kwrd">in</span> events)</pre>

  <pre><span class="lnum">  30:  </span>                        <span class="kwrd">for</span> (<span class="kwrd">var</span> handler <span class="kwrd">in</span> events[type])</pre>

  <pre class="alt"><span class="lnum">  31:  </span>                            jQuery.<span class="kwrd">event</span>.add(<span class="kwrd">this</span>, type, events[type][handler], events[type][handler].data);</pre>

  <pre><span class="lnum">  32:  </span>                    <span class="kwrd">this</span>._$events = <span class="kwrd">null</span>;</pre>

  <pre class="alt"><span class="lnum">  33:  </span>                });</pre>

  <pre><span class="lnum">  34:  </span>            }</pre>

  <pre class="alt"><span class="lnum">  35:  </span>            <span class="rem">// copy form values over</span></pre>

  <pre><span class="lnum">  36:  </span>            <span class="kwrd">if</span> (copy) {</pre>

  <pre class="alt"><span class="lnum">  37:  </span>                <span class="kwrd">if</span> (!jQuery.browser.msie)</pre>

  <pre><span class="lnum">  38:  </span>                    $<span class="kwrd">this</span> = <span class="kwrd">this</span>.add(<span class="kwrd">this</span>.find(<span class="str">&quot;*&quot;</span>));</pre>

  <pre class="alt"><span class="lnum">  39:  </span>                <span class="kwrd">var</span> origInputs = $<span class="kwrd">this</span>.filter(<span class="str">'select,input[@type=checkbox]'</span>);</pre>

  <pre><span class="lnum">  40:  </span>                <span class="kwrd">if</span> (origInputs.length) {</pre>

  <pre class="alt"><span class="lnum">  41:  </span>                    <span class="kwrd">var</span> inputs = r.add(r.find(<span class="str">'*'</span>)).filter(<span class="str">'select,input[@type=checkbox]'</span>);</pre>

  <pre><span class="lnum">  42:  </span>                    origInputs.each(<span class="kwrd">function</span> (i) {</pre>

  <pre class="alt"><span class="lnum">  43:  </span>                        <span class="kwrd">if</span> (<span class="kwrd">this</span>.selectedIndex)</pre>

  <pre><span class="lnum">  44:  </span>                            inputs[i].selectedIndex = <span class="kwrd">this</span>.selectedIndex;</pre>

  <pre class="alt"><span class="lnum">  45:  </span>                        <span class="kwrd">if</span> (<span class="kwrd">this</span>.<span class="kwrd">checked</span>)</pre>

  <pre><span class="lnum">  46:  </span>                            inputs[i].<span class="kwrd">checked</span> = <span class="kwrd">true</span>;</pre>

  <pre class="alt"><span class="lnum">  47:  </span>                    });</pre>

  <pre><span class="lnum">  48:  </span>                }</pre>

  <pre class="alt"><span class="lnum">  49:  </span>            }</pre>

  <pre><span class="lnum">  50:  </span>            <span class="rem">// Return the cloned set</span></pre>

  <pre class="alt"><span class="lnum">  51:  </span>            <span class="kwrd">return</span> r;</pre>

  <pre><span class="lnum">  52:  </span>        }</pre>

  <pre class="alt"><span class="lnum">  53:  </span>    })();</pre>

  <pre><span class="lnum">  54:  </span>}</pre>

  <pre class="alt"><span class="lnum">  55:  </span> </pre>
</div>
<style>
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode, .ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode pre
{font-size:small;color:black;font-family:consolas, &quot;Courier New&quot;, courier, monospace;background-color:#ffffff;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode pre
{margin:0em;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .rem
{color:#008000;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .kwrd
{color:#0000ff;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .str
{color:#006080;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .op
{color:#0000c0;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .preproc
{color:#cc6633;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .asp
{background-color:#ffff00;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .html
{color:#800000;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .attr
{color:#ff0000;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClassE3C3F190A7234803A64F867787224167 .csharpcode .lnum
{color:#606060;}
</style>

<p> </p>

<p>Simple isn’t it :-) </p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hans ter Wal</dc:creator><pubDate>Thu, 08 Jul 2010 14:22:09 GMT</pubDate></item><item><title>Fluent Assertions Release 1.2.2 has been released</title><link>http://blog.avivasolutions.nl/archive/2010/06/29/fluent-assertions-release-1-2-2-has-been-released.aspx</link><guid isPermaLink="False">/archive/2010/06/29/fluent-assertions-release-1-2-2-has-been-released.aspx</guid><description><![CDATA[<div class="ExternalClassBCA728735F6445E9A5FD9D7105C68EF8">
<p>It has been <a href="http://blog.avivasolutions.nl/archive/2010/04/12/fluent-assertions-1-2-has-been-released.aspx">several weeks</a> since we released a new version of the Fluent Assertions. Since then, a few small bugs were discovered and some features were requested. A few of these items have been fixed which resulted in <a href="http://fluentassertions.codeplex.com/releases/view/47685">a new release</a>. </p>
<p>You can download <a href="http://fluentassertions.codeplex.com/releases/view/47685">version 1.2.2</a> from the <a href="http://fluentassertions.codeplex.com/">CodePlex</a> site. </p>
<p><a href="http://koenwillemse.wordpress.com/2010/06/29/fluent-assertions-release-1-2-2/">Read more…</a></p>
<div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3d9168e4-c7f1-4cc9-96c2-bf3566986f3a" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Fluent+Assertions" rel="tag">Fluent Assertions</a></div></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Koen Willemse</dc:creator><pubDate>Tue, 29 Jun 2010 15:46:00 GMT</pubDate><category domain="http://blog.avivasolutions.nl/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Coding Guidelines for C# 3.0 and C# 4.0 now available</title><link>http://blog.avivasolutions.nl/archive/2010/06/28/coding-guidelines-for-c-3-0-and-c-4-0-now-available.aspx</link><guid isPermaLink="False">/archive/2010/06/28/coding-guidelines-for-c-3-0-and-c-4-0-now-available.aspx</guid><description><![CDATA[<div class="ExternalClass0A9FA0F0B25040248021E849AC91E686"><p>As promised <a href="http://www.dennisdoomen.net/2010/05/things-to-do-to-fill-up-my-free-time.html">earlier</a>, you can now download the concept version of my new <a href="http://csharpguidelines.codeplex.com/releases/view/46280">Coding Guidelines for C# 3.0 and C# 4.0</a> from a dedicated CodePlex site at <a href="http://www.csharpcodinguidelines.com">www.csharpcodinguidelines.com</a>. The list of changes is <a href="http://csharpguidelines.codeplex.com/wikipage?title=Change History">quite big</a>, and includes new guidelines covering object-oriented design, design principles, C# 4.0 and the smells and heuristics from Robert C. Martin’s book <a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">Clean Code</a>. I’ve also removed many guidelines that have become obsolete or deal with situations that rarely occur. And the entire document has become much easier to read because I’ve changed to a less formal writing style. </p>  <p><a href="http://www.dennisdoomen.net/2010/06/coding-guidelines-for-c-30-and-c-40-now.html">Read more…</a></p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dennis Doomen</dc:creator><pubDate>Mon, 28 Jun 2010 18:18:44 GMT</pubDate></item><item><title>Scheduling Pages in Kentico CMS</title><link>http://blog.avivasolutions.nl/archive/2010/06/08/scheduling-pages-in-kentico-cms.aspx</link><guid isPermaLink="False">/archive/2010/06/08/scheduling-pages-in-kentico-cms.aspx</guid><description><![CDATA[<div class="ExternalClass1D333D9442344E62AE0BFEA5AF73C76F"><p><a title="Kentico Website" href="http://www.kentico.com"><img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;margin-left:0px;border-left-width:0px;margin-right:0px" title="image" border="0" alt="image" align="right" src="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_14_425A2C93.png" width="214" height="85"></a> A couple of months ago, a client asked us if it is possible to schedule the publication of a page in advance. At the time I tried it and for some reason it didn’t seem to work, so we left it as something for later.</p>  <p>Two weeks ago I was at the Kentico-Certified-Trainer-training and I asked one of the Kentico guys if this was possible. “Of course”, they said, “You can even schedule multiple pages in advance”. Ok, so I was wrong. </p>  <p>But how do you set it up? It turns out to be really easy.</p>  <p>First, you need to make sure you have workflow turned on. Setting up workflow is part of the Site Manager, to which you may not have access. If so, ask you friendly Kentico Administrator to set it up for you.</p>  <ol>   <li>Open the site manager and click the <em>Development</em> tab. </li>    <li>Click <em>Workflows</em> and click <a href="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_6_425A2C93.png"><img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="image" border="0" alt="image" src="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_thumb_2_425A2C93.png" width="22" height="20"></a> next to <em>Default workflow</em> to edit the default workflow. </li>    <li>Next, click on the <em>Scope<strong> </strong></em>tab so we can select the part of the sitemap where we want to apply the workflow. </li>    <li>For this example, we’ll start the scope of this workflow at the root and we will apply the workflow to all document types.  If you want, you can specify something else.      <br><a href="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_8_425A2C93.png"><img style="border-right-width:0px;margin:4px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="image" border="0" alt="image" src="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_thumb_3_425A2C93.png" width="359" height="175"></a> </li>    <li>Click OK to save the scope. </li> </ol>  <p> </p>  <p>Now you are ready create different versions of pages and schedule them.</p>  <p>To schedule pages we are going to use the <em>publish from/to</em> fields on the <em>Form</em> tab:</p>  <p><a href="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_10_425A2C93.png"><img style="border-right-width:0px;margin:5px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="image" border="0" alt="image" src="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_thumb_4_425A2C93.png" width="261" height="60"></a> </p>  <p>To create a new version of a page and schedule it:</p>  <ol>   <li>Edit the page, save it (don’t publish it yet) and click the <em>Form</em> tab. </li>    <li>Enter the time you want to publish this version of the page from in the <em>publish from </em>field. </li>    <li>Click <em>Publish</em> to publish the page (if you have a workflow with an approval step, you might also need to approve it). Remember that, because you entered a time in the <em>publish from</em> field it will not show up immediately on the live site. </li>    <li>Now go to the <em>Versions</em> tab on the <em>Properties </em>tab. You should see something like this:       <br><a href="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_12_425A2C93.png"><img style="border-right-width:0px;margin:4px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="image" border="0" alt="image" src="http://blog.avivasolutions.nl/Lists/Posts/Attachments/221/image_thumb_5_425A2C93.png" width="738" height="80"></a>  <br>What does this mean?       <br>As you can see version 6.0 of the document was published from 2:41 PM. This is the version which is currently live. Version 6.1 is an intermediate version that was saved but not published and 7.0 is the published version which is set to be published from 2:50 PM (but at the moment it is not visible as you can see from the empty <em>Published From </em>field).       <br>      <br>What will happen next is that around 2:50 PM (this is not an exact science) version 7.0 of the page will be published and version 6.0 will be unpublished as you will see because the <em>Published to</em> field will be set. </li> </ol>  <p> </p>  <p>If you want to schedule multiple pages ahead of time, that is possible to: just edit the page, set a new <em>publish from</em> date and publish the page. One thing you cannot do is edit a page that is already published, so make sure the page is correct before you publish it. </p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Erwin Werkman</dc:creator><pubDate>Tue, 08 Jun 2010 09:28:38 GMT</pubDate></item><item><title>Things to do to fill up my free time</title><link>http://blog.avivasolutions.nl/archive/2010/05/30/things-to-do-to-fill-up-my-free-time.aspx</link><guid isPermaLink="False">/archive/2010/05/30/things-to-do-to-fill-up-my-free-time.aspx</guid><description><![CDATA[<div class="ExternalClass7D9FBED799274F1DA4F16F71A6A97EB8"><p>Now that my <a href="http://www.dennisdoomen.net/2010/05/cqrs-and-event-sourcing.html">CQRS/Event Sourcing</a> talk for <a href="http://www.dotned.nl/">DotNED</a> is done, the pressure on the free hours between work and family has been reduced significantly. That doesn’t mean I’m going to sit back and relax. Oh no, I’m full of ideas. so let’s see some of my plans.</p>  <p><a href="http://www.dennisdoomen.net/2010/05/things-to-do-to-fill-up-my-free-time.html">Read more…</a></p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dennis Doomen</dc:creator><pubDate>Sun, 30 May 2010 19:51:43 GMT</pubDate></item><item><title>CQRS and Event Sourcing</title><link>http://blog.avivasolutions.nl/archive/2010/05/28/cqrs-and-event-sourcing.aspx</link><guid isPermaLink="False">/archive/2010/05/28/cqrs-and-event-sourcing.aspx</guid><description><![CDATA[<div class="ExternalClassB88FBF1596A04B988E3416B831F59248"><p>Yesterday evening I did a talk on building a .NET-based system using Command Query Responsibility Segregation and Event Sourcing. We had a lot of awesome discussions on its applicability, and as usual, I ran out of time again. I could have easily spend a full day on this subject, but unfortunately, I only had about 1 hour and 45 minutes to my disposal. </p>  <p><a href="http://www.dennisdoomen.net/2010/05/cqrs-and-event-sourcing.html">Read more…</a></p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dennis Doomen</dc:creator><pubDate>Fri, 28 May 2010 08:31:41 GMT</pubDate></item><item><title>May 27th: CQRS and Event Sourcing, an alternate architecture for Domain Driven Design</title><link>http://blog.avivasolutions.nl/archive/2010/05/06/may-27th-cqrs-and-event-sourcing-an-alternate-architecture-for-domain-driven-design.aspx</link><guid isPermaLink="False">/archive/2010/05/06/may-27th-cqrs-and-event-sourcing-an-alternate-architecture-for-domain-driven-design.aspx</guid><description><![CDATA[<div class="ExternalClass32706ECEA0DF4D3A8B0153D1FCA50F12"><p>Most of us will be familiar with the standard 3- or 4-layer architecture you often see in larger enterprise systems. Some are already practicing Domain Driven Design and work together with the business to clarify the domain concepts. Perhaps you’ve noticed that is difficult to get the intention of the 'verbs' from that domain into this standard architecture. If performance is an important requirement as well, then you might have discovered that an Object-Relational Mapper and a relational database are not always the best solution.</p>  <p><a href="http://www.dennisdoomen.net/2010/05/cqrs-and-event-sourcing-alternate.html">Read more...</a></p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dennis Doomen</dc:creator><pubDate>Thu, 06 May 2010 11:27:53 GMT</pubDate></item><item><title>ALM Practices 6: Code Analysis &amp; Guidelines</title><link>http://blog.avivasolutions.nl/archive/2010/04/20/alm-practices-6-code-analysis-amp-guidelines.aspx</link><guid isPermaLink="False">/archive/2010/04/20/alm-practices-6-code-analysis-amp-guidelines.aspx</guid><description><![CDATA[<div class="ExternalClass3053B8408F514252BAB612107BAFA5AC"><p>Coding guidelines, or coding standards if you will, are documents consisting of rules and recommendations on the use of C# in enterprise systems. They deal with code layout, naming guidelines, the proper use of the .NET Framework, tips on writing useful comments and XML documentation, and often also include guidance on proper object-oriented design. </p>  <p><a href="http://www.dennisdoomen.net/2010/04/alm-practices-6-code-analysis.html">Read more…</a></p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dennis Doomen</dc:creator><pubDate>Tue, 20 Apr 2010 09:42:47 GMT</pubDate></item><item><title>Interaction Design according to Alan Cooper</title><link>http://blog.avivasolutions.nl/archive/2010/04/16/interaction-design-according-to-alan-cooper.aspx</link><guid isPermaLink="False">/archive/2010/04/16/interaction-design-according-to-alan-cooper.aspx</guid><description><![CDATA[<div class="ExternalClass2006EBD1763644DBABBD4344322C1CAB"><p>I've recently finished the book <a href="http://www.amazon.com/Inmates-Are-Running-Asylum/dp/0672316498">The Inmates Are Running The Asylum</a> by <a href="http://www.cooper.com/">Alan Cooper</a>, a well known proponent for interaction design. To be honest, I never really saw the purpose of interaction design in our projects. But after reading this book, I now know I didn't really understand what it was about and why it is so important. </p>  <p><a href="http://www.dennisdoomen.net/2010/04/interaction-design-according-to-alan.html">Read more…</a></p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dennis Doomen</dc:creator><pubDate>Fri, 16 Apr 2010 11:25:29 GMT</pubDate></item><item><title>Fluent Assertions 1.2 has been released</title><link>http://blog.avivasolutions.nl/archive/2010/04/12/fluent-assertions-1-2-has-been-released.aspx</link><guid isPermaLink="False">/archive/2010/04/12/fluent-assertions-1-2-has-been-released.aspx</guid><description><![CDATA[<div class="ExternalClassE85D22719FDF439E98C683501694E52D"><p>It has been only <a href="http://www.dennisdoomen.net/2010/03/fluent-assertions-released-on-codeplex.html">6 weeks</a> since I first released Fluent Assertions to the public, followed by <a href="http://www.dennisdoomen.net/2010/03/fluent-assertions-11-has-been-released.html">version 1.1</a> a week later. In the weeks thereafter, I received some nice ideas from the community which caused me to start working on the next version.</p>  <p>But it was not easy. I found that designing a small framework like this really requires you to carefully design the syntax you want to offer. For instance, I underestimated the <a href="http://www.dennisdoomen.net/2010/03/curious-case-of-unsolved-extension.html">limits</a> of the current version of C# and had to make some tough decisions along the way. But I'm done now, so get <a href="http://fluentassertions.codeplex.com/releases/view/41995">version 1.2</a> from <a href="http://fluentassertions.codeplex.com/">CodePlex</a>. However, please read this post before you start introducing it in your project. Those tough decisions will cause some minor inconvenience.</p>  <p><a href="http://www.dennisdoomen.net/2010/04/fluent-assertions-12-has-been-released.html">Read more…</a></p></div>]]></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dennis Doomen</dc:creator><pubDate>Mon, 12 Apr 2010 13:20:24 GMT</pubDate></item></channel></rss>