<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MichaelD!'s Tech Blog : Enterprise Library</title><link>http://weblogs.asp.net/michaeld/archive/tags/Enterprise+Library/default.aspx</link><description>Tags: Enterprise Library</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Unity Workshop</title><link>http://weblogs.asp.net/michaeld/archive/2008/02/02/unity-workshop.aspx</link><pubDate>Sat, 02 Feb 2008 16:20:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5694288</guid><dc:creator>MichaelD!!!</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/michaeld/rsscomments.aspx?PostID=5694288</wfw:commentRss><comments>http://weblogs.asp.net/michaeld/archive/2008/02/02/unity-workshop.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Awww jyea!&amp;nbsp; I'm officially slated a spot in the &lt;A class="" href="http://blogs.msdn.com/agile/archive/2008/01/29/unity-extensibility-workshop.aspx" target=_blank mce_href="http://blogs.msdn.com/agile/archive/2008/01/29/unity-extensibility-workshop.aspx"&gt;Unity Workshop&lt;/A&gt; announced earlier this week.&amp;nbsp; This will be a tremendous opportunity to dive further into my latest conceptual toy: &lt;A class="" href="http://en.wikipedia.org/wiki/Dependency_injection" target=_blank mce_href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;Dependency Injection&lt;/A&gt;.&amp;nbsp; I learned about DI when I started diving into the bowels of EntLib 3.1.&amp;nbsp; All paths pointed to this ObjectBuilder.dll.&amp;nbsp; I had to find out more about it.&lt;/P&gt;
&lt;P mce_keep="true"&gt;There are a lot of DI frameworks out there, but strangely enough none by the big MS.&amp;nbsp; I found this sort of strange.&amp;nbsp; The more I became enamored by this new toy (and the resulting power it brings), the more I scratched my head wondering why on earth there wasn't something like this for EntLib or from MS.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, for my first run&amp;nbsp;at building an application block, I set out to build an ObjectBuilder Application Block. :)&amp;nbsp; I actually have it completed, with full-on designer support, and was going to release it on CodePlex until I found out about Unity.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Mr. Hollander brings up a &lt;A class="" href="http://blogs.msdn.com/tomholl/archive/2008/02/02/unity-entlib.aspx" target=_blank mce_href="http://blogs.msdn.com/tomholl/archive/2008/02/02/unity-entlib.aspx"&gt;pretty great question&lt;/A&gt; about the time being spent on Unity.&amp;nbsp; Although I share his concern with the energy being spent on refactoring (it's the ultimate balance every great developer must learn), I would like to interject a point of my own.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I have great respect for&amp;nbsp;EntLib.&amp;nbsp; In fact, I'd have to&amp;nbsp;rank it in the top&amp;nbsp;3 public codebases I've encountered in my little journey of software development.&amp;nbsp; It tackles a lot of problems and I believe the design is very well-rounded.&amp;nbsp; I've learned an incredible amount of knowledge from studying this codebase, probably just as much or more so than the .NET Framework (I'm a Reflector Whore).&amp;nbsp; EntLib is a great reference tool, in addition to being a great productivity tool.&amp;nbsp; As such, I believe the refactoring is very much worth the time.&amp;nbsp; A codebase like this should offer Best Practices (since it is Patterns and Practices!) on how to develop a enterprise-level and scalable solution.&amp;nbsp; It's imperative that it shows developers the Right Way of doing things.&amp;nbsp; If that means finding obvious flaws and spending a couple weeks fixing them, then do it.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I guess the point I'm trying to share is that there is a lot more value to this framework than just its functionality.&amp;nbsp; We should keep that in mind when time spent into refactoring comes into play.&lt;/P&gt;
&lt;P mce_keep="true"&gt;And yes, I for one am a little taken aback by all the assemblers and configuration.&amp;nbsp; That didn't stop&amp;nbsp;me from mimmicking them in my own solution, however.&amp;nbsp; (I had to try it out first to get the eyebrow-raise). :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;Finally, I would like to encourage the EntLib team to PLEASE PLEASE PLEASE put more effort into the Configuration Designer in EntLib.&amp;nbsp; In fact, ScottGu or someone over in the .NET team should really take this thing and run with it.&amp;nbsp; We as developers should never ever EVER have to touch a line of XML to configure our applications.&amp;nbsp; That's tantamount to pulling open a command prompt these days.&amp;nbsp; It's 2008, you know. :)&amp;nbsp; I would really like to see the Configuration Editor turn into a full-scale application, complete with Redo/Undo and the like.&amp;nbsp; The interface needs to go through a information architect and user experience expert and make this a Real Deal application.&amp;nbsp; Configuration is King with application development and honestly, I didn't get the big "aha" moment with EntLib until I saw how you could create design components for your application block and run them through the Configuration Design console.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;Ok, off my soapbox for now...&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5694288" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/michaeld/archive/tags/Enterprise+Library/default.aspx">Enterprise Library</category><category domain="http://weblogs.asp.net/michaeld/archive/tags/Unity/default.aspx">Unity</category></item></channel></rss>