<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Technology</title><link>http://www.agileprogrammer.com/scottden/category/139.aspx</link><description>Technology</description><managingEditor>Scott Densmore</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2005.109</generator><item><dc:creator>Scott Densmore</dc:creator><title>CodePlexContainer Gets Virtual Method Interception aka OB4Life Taking It Back</title><link>http://www.agileprogrammer.com/scottden/archive/2007/06/28/22935.aspx</link><pubDate>Thu, 28 Jun 2007 21:30:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/06/28/22935.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22935.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/06/28/22935.aspx#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22935.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22935.aspx</trackback:ping><description>&lt;p&gt;
We (Brad and I) were at it again.  After finishing up some other CodePlex tasks for the last few weeks, we are finally finished with the last big task for CodePlex Container: Virtual Method Interception.
&lt;/p&gt;&lt;p&gt;
You can read about it &lt;a href="http://www.codeplex.com/ObjectBuilder/Thread/View.aspx?ThreadId=10844"&gt;here&lt;/a&gt;.  
&lt;/p&gt;&lt;p&gt;
Now that the container is finally done, I will be able to get back to finishing the EntLibRefactored project.  This will involve me making some major changes to how EntLib works.  During this time, maybe we can get xml configuration of the container so that the configuration of EntLib is at the container level.  Right now it will be slow going (not my full time day job :)), yet I think this will be a much better design and use.
&lt;/p&gt;&lt;p&gt;
Please send us feedback through the project site.
&lt;/p&gt;&lt;p&gt;
Taking it back....OB4LIFE!
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/CodePlex" rel="tag"&gt;CodePlex&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/ObjectBuilder" rel="tag"&gt;ObjectBuilder&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22935.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>Event Broker in CodePlex Container</title><link>http://www.agileprogrammer.com/scottden/archive/2007/06/11/22871.aspx</link><pubDate>Mon, 11 Jun 2007 16:56:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/06/11/22871.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22871.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/06/11/22871.aspx#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22871.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22871.aspx</trackback:ping><description>&lt;p&gt;
Looks like Brad and I are on a roll.  We did Event Broker on Friday.   You can read about it &lt;a href="http://www.codeplex.com/ObjectBuilder/Thread/View.aspx?ThreadId=10844"&gt;here&lt;/a&gt;.  Hopefully we can get virtual interception done next week.
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/ObjectBuilder" rel="tag"&gt;ObjectBuilder&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22871.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>CodePlex Container gets Interception</title><link>http://www.agileprogrammer.com/scottden/archive/2007/06/07/22865.aspx</link><pubDate>Thu, 07 Jun 2007 23:16:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/06/07/22865.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22865.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/06/07/22865.aspx#Feedback</comments><slash:comments>27</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22865.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22865.aspx</trackback:ping><description>&lt;p&gt;
Todays check in marks a new day for the Codeplex Container.   We now have method interception via remoting.  I have been talking about this for a while and finally we have our first fully functional check in.  Check it out &lt;a href="http://www.codeplex.com/ObjectBuilder/SourceControl/DirectoryView.aspx?SourcePath=&amp;amp;changeSetId=23429"&gt;here&lt;/a&gt;. 
&lt;/p&gt;&lt;p&gt;
The interception (method interception)  is loosely based upon the PIAB work from Enterprise Library 3.0.   Our goal was to have a code only version and then add the syntax candy via attributes after.  All this work is done in the context of ObjectBuilder and our container.  So you can get the same functionality of configuration and rules doing the work with different strategies.  I am going to try and spend some time on this in the &lt;a href="http://www.codeplex.com/entlibcontrib"&gt;EntLibRefactored&lt;/a&gt; project soon.
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/CodePlex Client" rel="tag"&gt;CodePlex Client&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/ObjectBuilder" rel="tag"&gt;ObjectBuilder&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22865.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>CodePlex Client June 2007</title><link>http://www.agileprogrammer.com/scottden/archive/2007/06/04/22840.aspx</link><pubDate>Mon, 04 Jun 2007 21:21:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/06/04/22840.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22840.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/06/04/22840.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22840.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22840.aspx</trackback:ping><description>&lt;p&gt;
We just &lt;a href="http://www.codeplex.com/CodePlexClient/Release/ProjectReleases.aspx?ReleaseId=4423"&gt;released&lt;/a&gt; the latest CodePlex Client with patch support.  Read the pretty words &lt;a href="http://blogs.msdn.com/codeplex/archive/2007/06/04/codeplex-client-june-2007-release.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
On a personal note, this has been a blast to work on with Brad.  We have introduced some great customer value and &lt;a href="http://www.codeplex.com/ObjectBuilder/Thread/View.aspx?ThreadId=10844"&gt;a new version&lt;/a&gt; of &lt;a href="http://www.codeplex.com/ObjectBuilder"&gt;ObjectBuilder&lt;/a&gt; fell out of us building a real application (I am sure someone will say they could have done it in 20 minutes with one hand tied behind their back :)).
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/CodePlex" rel="tag"&gt;CodePlex&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/CodePlex Client" rel="tag"&gt;CodePlex Client&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/CPC" rel="tag"&gt;CPC&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/ObjectBuilder" rel="tag"&gt;ObjectBuilder&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22840.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>Enterprise Library without Configuration</title><link>http://www.agileprogrammer.com/scottden/archive/2007/05/23/22721.aspx</link><pubDate>Wed, 23 May 2007 17:38:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/05/23/22721.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22721.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/05/23/22721.aspx#Feedback</comments><slash:comments>74</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22721.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22721.aspx</trackback:ping><description>&lt;p&gt;
At the end of Enterprise LIbrary v1, we knew .NET 2 was coming and that there would need to be changes to configuration.  The biggest thing I heard (from Brad, Peter, Jim, Brian etc) was that the blocks should be completely independent from configuration.  At the same time we were really talking about Dependency Injection and how we could accomplish removing configuration with this mechanism (at the same time figuring out .NET 2.0 config and the changes we wanted for EntLib V2).
&lt;/p&gt;&lt;p&gt;
While we were working on EntLib V2, we were working in the same room as the Composite Application Block team where Brad, Peter and Ed come up with ObjectBuilder.  We decided we would use ObjectBuilder as the DI framework and and build our own container (EnterpriseLibraryFactory).  By doing this we could inject config into the blocks given an IConfigurationSource.  Given all the learnings, changes, etc, I don't feel we made it to the finish line when breaking out configuration.  I think to really get to the solution we needed to remove the dependency of the Common library from all the other code.  Enter EntLib V3.
&lt;/p&gt;&lt;p&gt;
Enterprise Library version 3 is another great release, yet I am sad that the configuration did not get much attention (of course that is probably because I had written it 12 times before).    Now that we have the &lt;a href="http://www.codeplex.com/EntLibContrib"&gt;EntLibContrib&lt;/a&gt; project on CodePlex I thought I would start putting up the code that I have migrated to not use config.  You can find it there in the EntLibRefactored folder of the project.  I have my own solution so I can refactor more as I go along.  All the original EntLib assemblies are in the 3rd party directories so you don't have to install it.  Eventually, they will not be necessary.  Wouldn't this be a cool way to run EntLib 4?
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-size:14pt;"&gt;&lt;strong&gt;Why am I doing this?&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
Good question.  Developing a product and using it are two different things.  We use ObjectBuilder and EntLib V2 for the CodePlex site.  What we wanted was the new PIAB (Process Invocation Application Block) for the interception mechanism.  Looking at the block, I discovered that to use it we needed to drag along the Common and ObjectBuilder library.  I didn't mine ObjectBuilder but taking Common was out of the question... we were still using EntLib V2.  If I didn't have a dependency on the Common library, I could use ObjectBuilder and PIAB since they were the same.
&lt;/p&gt;&lt;p&gt;
This is the major reason that I decided that it was time to start this process of removing the dependency of configuration from the blocks.  My first stab was to rewrite PIAB using the EntLib V3 binaries... and I have to say it was pretty easy.   You could take the same approach (and I will eventually) with the rest of the library.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-size:14pt;"&gt;&lt;strong&gt;What is next?&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
I have a few more things I want to do while removing the configuration.  If you think about removing the configuration from PIAB, you could move it further down the stack.  You could then build a container that did both DI and AOP.  This is what we are doing for CodePlex.   Watch here for updates.  Brad and I should have some new code for you that includes just this!
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/Enterprise Library" rel="tag"&gt;Enterprise Library&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/ObjectBuilder" rel="tag"&gt;ObjectBuilder&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22721.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>Subversion Support on CodePlex</title><link>http://www.agileprogrammer.com/scottden/archive/2007/05/22/22719.aspx</link><pubDate>Tue, 22 May 2007 17:54:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/05/22/22719.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22719.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/05/22/22719.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22719.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22719.aspx</trackback:ping><description>&lt;p&gt;
Man, we are adding Subversion support.... I had no idea.
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/CodePlex" rel="tag"&gt;CodePlex&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22719.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>CodePlex Client is Released</title><link>http://www.agileprogrammer.com/scottden/archive/2007/05/11/22687.aspx</link><pubDate>Fri, 11 May 2007 17:40:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/05/11/22687.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22687.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/05/11/22687.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22687.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22687.aspx</trackback:ping><description>&lt;p&gt;
After a couple of months of testing and using it internally, CodePlex Client source is on CodePlex.  Read the full announcement from &lt;a href="http://blogs.msdn.com/codeplex/archive/2007/05/11/open-sourcing-the-codeplex-client.aspx"&gt;Brad&lt;/a&gt;, and get the code &lt;a href="http://www.codeplex.com/CodePlexClient"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/CodePlex" rel="tag"&gt;CodePlex&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/CodePlex Client" rel="tag"&gt;CodePlex Client&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/CPC" rel="tag"&gt;CPC&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22687.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>Unit Testing Goes Pro!</title><link>http://www.agileprogrammer.com/scottden/archive/2007/03/30/22543.aspx</link><pubDate>Fri, 30 Mar 2007 16:45:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/03/30/22543.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22543.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/03/30/22543.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22543.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22543.aspx</trackback:ping><description>&lt;p&gt;
I guess all the rants finally paid off.  Unit Testing &lt;a href="http://blogs.msdn.com/nnaderi/archive/2007/03/27/unit-testing-trickling-into-pro.aspx"&gt;is going to be available in Visual Studio Pro.&lt;/a&gt;  I think this is great, yet I agree with &lt;a href="http://blogs.msdn.com/nnaderi/archive/2007/03/27/unit-testing-trickling-into-pro.aspx"&gt;Brad&lt;/a&gt; that Unit Testing is so fundamental that it should be &lt;a href="http://blogs.msdn.com/nnaderi/archive/2007/03/27/unit-testing-trickling-into-pro.aspx"&gt;part of the SDK&lt;/a&gt; just like MSBuild.  Time to start another petition.
&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22543.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>Swimming to Dublin</title><link>http://www.agileprogrammer.com/scottden/archive/2007/03/29/22540.aspx</link><pubDate>Thu, 29 Mar 2007 20:27:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/03/29/22540.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22540.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/03/29/22540.aspx#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22540.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22540.aspx</trackback:ping><description>&lt;p&gt;
I miss &lt;a href="http://blogs.msdn.com/agilemonkey/default.aspx"&gt;Casper&lt;/a&gt;.  One of our friends, Sarah, sent me &lt;a href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;saddr=new+york,+ny&amp;amp;daddr=Dublin,+Ireland&amp;amp;sll=57.984808,-55.019531&amp;amp;sspn=72.354033,164.53125&amp;amp;layer=&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;z=4&amp;amp;ll=48.166085,-36.5625&amp;amp;spn=43.171238,82.265625"&gt;directions&lt;/a&gt; to go see him from New York.  I think that swim at step 23 is going to kill me.
&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22540.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Scott Densmore</dc:creator><title>CodePlex Source Control Client Shipped</title><link>http://www.agileprogrammer.com/scottden/archive/2007/03/27/22524.aspx</link><pubDate>Tue, 27 Mar 2007 16:17:00 GMT</pubDate><guid>http://www.agileprogrammer.com/scottden/archive/2007/03/27/22524.aspx</guid><wfw:comment>http://www.agileprogrammer.com/scottden/comments/22524.aspx</wfw:comment><comments>http://www.agileprogrammer.com/scottden/archive/2007/03/27/22524.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.agileprogrammer.com/scottden/comments/commentRss/22524.aspx</wfw:commentRss><trackback:ping>http://www.agileprogrammer.com/scottden/services/trackbacks/22524.aspx</trackback:ping><description>&lt;p&gt;
When I joined the team in October, Brad was working on a little tool that would enable an "edit-merge-commit" style for &lt;a href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt;.  This allows the ability to work offline with the TFS infrastructure.  Over the past couple of months I have had the pleasure (Brad may not agree) of working on &lt;a href="http://www.codeplex.com/CodePlex/Wiki/View.aspx?title=CodePlexClient&amp;amp;referringTitle=Home"&gt;CodePlex Source Control Client&lt;/a&gt; (cpc).   You can read all about it &lt;a href="http://blogs.msdn.com/codeplex/archive/2007/03/26/announcing-the-codeplex-source-control-client.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Please give your feedback!
&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/scottden/aggbug/22524.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>