<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkEHRX86eip7ImA9WhRVEU4.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528</id><updated>2012-01-09T20:50:34.112+01:00</updated><title>Me Refactored!</title><subtitle type="html">Enhancing my inner knowledge structure while not changing the outer interface nor functionality!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://saintedlama.blogspot.com/" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MeRefactored" /><feedburner:info uri="merefactored" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0ICQXsyfSp7ImA9WhZUEUo.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-8333357678394484584</id><published>2011-06-04T11:26:00.001+02:00</published><updated>2011-06-04T11:26:00.595+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-04T11:26:00.595+02:00</app:edited><title>This is no Domain Service</title><summary type="html">After reading this blog entry about why and how to use the command processor pattern in your service layer. While the blog post is worth reading a code example provided by Ian made me think.

public class MyFatDomainService
{
    public void CreateMyThing(CreateMyThingCommand createMyThingCommand)
    {
        /*Stuff*/
    }

    public void UpdateMyThingForFoo(FooCommand fooHappened)
    {
&lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/hbluafUMEsI" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/8333357678394484584/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2011/06/this-is-no-domain-service.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/8333357678394484584?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/8333357678394484584?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/hbluafUMEsI/this-is-no-domain-service.html" title="This is no Domain Service" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2011/06/this-is-no-domain-service.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGQHo5fip7ImA9WhZVGEk.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-5851653459363225579</id><published>2011-05-31T14:40:00.000+02:00</published><updated>2011-05-31T14:40:21.426+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T14:40:21.426+02:00</app:edited><title>Partitioning code in namespaces</title><summary type="html">Partitioning code in namespaces will always fail in a layered architecture. Fail in a sense that you can't get a perfect partitioning!
In layered architectures we have two (and possibly more) reasonable category systems to group our code. The first is to group it by a layer fashion, that means that your UserService and your BillingService would both be in the My.Startup.Services namespace with &lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/4JJGni6HCUY" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/5851653459363225579/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2011/05/partitioning-code-in-namespaces.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/5851653459363225579?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/5851653459363225579?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/4JJGni6HCUY/partitioning-code-in-namespaces.html" title="Partitioning code in namespaces" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2011/05/partitioning-code-in-namespaces.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4CR3c4eSp7ImA9WhZVFko.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-7229190282706597952</id><published>2011-05-29T11:12:00.001+02:00</published><updated>2011-05-29T14:09:26.931+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-29T14:09:26.931+02:00</app:edited><title>Test Doubles compacted</title><summary type="html">This post is more a personal cheat sheet and a compacted extract of Effective Tests: Test Doubles.

Test Doubles can be grouped by their interaction with the System Under Test (SUT). Satisfy dependencies without interaction, provide input to the SUT or check/record output of the SUT.

No InteractionThe role of the Dummy is to satisfy a dependency of the SUT but the dummy does not interact with &lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/oTKvcBD53jY" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/7229190282706597952/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2011/05/test-doubles-compacted.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/7229190282706597952?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/7229190282706597952?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/oTKvcBD53jY/test-doubles-compacted.html" title="Test Doubles compacted" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2011/05/test-doubles-compacted.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcMQH87fyp7ImA9Wx9TE0g.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-2937386103575876578</id><published>2010-11-21T17:14:00.000+01:00</published><updated>2010-11-21T17:14:41.107+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-21T17:14:41.107+01:00</app:edited><title>Taking Decisions</title><summary type="html">This post is not a coherent text or story but a collection of thoughts about taking decisions in a software project. The idea to blog about "taking decision" arose when in one of my company's project recently everything went wrong. The lead developer disappeared (really, never seen him again!), no design documentation, we had to dig for what design was intended...
We had to get the project back &lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/HuxP_dMX4es" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/2937386103575876578/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2010/11/taking-decisions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/2937386103575876578?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/2937386103575876578?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/HuxP_dMX4es/taking-decisions.html" title="Taking Decisions" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2010/11/taking-decisions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEAQ387eip7ImA9Wx5SGEg.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-776430579889446761</id><published>2010-08-15T09:33:00.001+02:00</published><updated>2010-08-15T09:34:02.102+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-15T09:34:02.102+02:00</app:edited><title>Microsoft.Data is so wrong!</title><summary type="html">Their was some rumor in the last days about microsoft addressing a developer type called  "Mort" with a new Data Layer called Microsoft.Data. Mort is described by Nikhil Kothari's blog post as

Mort, the opportunistic developer, likes to create quick-working solutions for immediate problems and focuses on productivity and learn as needed. Elvis, the pragmatic programmer, likes to create &lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/YZwWnoasKBA" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/776430579889446761/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2010/08/microsoftdata-is-so-wrong.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/776430579889446761?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/776430579889446761?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/YZwWnoasKBA/microsoftdata-is-so-wrong.html" title="Microsoft.Data is so wrong!" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>4</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2010/08/microsoftdata-is-so-wrong.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUICQnk9cSp7ImA9Wx5SEk0.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-4175978999908573487</id><published>2010-08-07T20:58:00.001+02:00</published><updated>2010-08-07T20:59:23.769+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-07T20:59:23.769+02:00</app:edited><title>SubSonic Custom Property Mapping Attributes</title><summary type="html">Some commits ago we opened SubSonic's property mapping attribute implementation to allow developers to extend how properties are mapped to database columns when using SimpleRepository with migrations.
In this post I'll show you how to implement a custom property mapping attribute that declares a property to be mapped to a database column of type "xml" instead of just a plain nvarchar. 

Custom &lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/yCECHR2LMiM" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/4175978999908573487/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2010/08/subsonic-custom-property-mapping.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/4175978999908573487?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/4175978999908573487?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/yCECHR2LMiM/subsonic-custom-property-mapping.html" title="SubSonic Custom Property Mapping Attributes" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2010/08/subsonic-custom-property-mapping.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAAQn49cCp7ImA9WxFaGUg.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-6243024997395547092</id><published>2010-07-24T08:25:00.000+02:00</published><updated>2010-07-24T08:25:43.068+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-24T08:25:43.068+02:00</app:edited><title>SOLID Talk</title><summary type="html">Here are the prezi "slides" (what is the name for these prezi slides - prezis?)

.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }SOLID design principles on Prezi
Free to use and extend! SOLID design principles @ prezi&lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/G0S5UwqJcK4" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/6243024997395547092/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2010/07/solid-talk.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/6243024997395547092?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/6243024997395547092?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/G0S5UwqJcK4/solid-talk.html" title="SOLID Talk" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2010/07/solid-talk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIAQn4zfCp7ImA9WxFaFEk.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-6628996013258608538</id><published>2010-07-18T12:22:00.000+02:00</published><updated>2010-07-18T12:22:23.084+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-18T12:22:23.084+02:00</app:edited><title>Determining if a Property is declared virtual via Reflection</title><summary type="html">Today I was trying to determine if a property is declared virtual via Reflection but I could not find a "IsVirtual" property in the PropertyInfo class.

The solution is quite simple - a property itself is not virtual but the accessor methods have the desired "IsVirtual" property defined. This code snippet demonstrates how to determine if a property is declared virtual:

var stringType = typeof(&lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/lLDEpP-qK-w" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/6628996013258608538/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2010/07/determining-if-property-is-declared.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/6628996013258608538?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/6628996013258608538?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/lLDEpP-qK-w/determining-if-property-is-declared.html" title="Determining if a Property is declared virtual via Reflection" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2010/07/determining-if-property-is-declared.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMMRHsycSp7ImA9WxFUEko.&quot;"><id>tag:blogger.com,1999:blog-1192755264398600528.post-8761345985820912629</id><published>2010-06-20T19:15:00.002+02:00</published><updated>2010-06-23T08:28:05.599+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-23T08:28:05.599+02:00</app:edited><title>SubSonic CRUD Controller for ASP.NET MVC</title><summary type="html">I'm using SubSonic in my projects quite often because of migrations and the code first approach of Simple Repository. To make my  (ASP.NET MVC 2) life easier I decided to create a simple controller base class to get CRUD functionality out of the box. To use the AbstractCrudController for a model you will need to derive from AbstractCrudController supply a SimpleRepository instance to the &lt;img src="http://feeds.feedburner.com/~r/MeRefactored/~4/tW1nAZWoYLM" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://saintedlama.blogspot.com/feeds/8761345985820912629/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://saintedlama.blogspot.com/2010/06/subsonic-crud-controller-for-aspnet-mvc.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/8761345985820912629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1192755264398600528/posts/default/8761345985820912629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MeRefactored/~3/tW1nAZWoYLM/subsonic-crud-controller-for-aspnet-mvc.html" title="SubSonic CRUD Controller for ASP.NET MVC" /><author><name>Saintedlama</name><uri>http://www.blogger.com/profile/09572484757741600331</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JE1SLWi_NaE/TANaDCK9VMI/AAAAAAAAEt8/LtPPxGUU1ko/s1600-R/96e219245f531e18b0519bc4ac6cb2a6.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://saintedlama.blogspot.com/2010/06/subsonic-crud-controller-for-aspnet-mvc.html</feedburner:origLink></entry></feed>

