<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Convention over Configuration &#8211; The Next Generation?</title>
	<atom:link href="http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Fri, 23 Jul 2010 18:21:18 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Server Naming and Configuration Conflicts</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-37265</link>
		<dc:creator>Server Naming and Configuration Conflicts</dc:creator>
		<pubDate>Sat, 05 Jun 2010 12:59:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-37265</guid>
		<description>[...] I wrote about related multi-environment configuration issues in this earlier post: Convention over Configuration &#8211; The Next Generation [...]</description>
		<content:encoded><![CDATA[<p>[...] I wrote about related multi-environment configuration issues in this earlier post: Convention over Configuration &#8211; The Next Generation [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36723</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Thu, 17 Sep 2009 17:38:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36723</guid>
		<description>David,

I respect your point of view. This is more of a wondering-out-loud than a &quot;do it like this&quot; blog post.

I myself am still feeling out this style to see whether I like it or not.

Thanks for your comments.</description>
		<content:encoded><![CDATA[<p>David,</p>
<p>I respect your point of view. This is more of a wondering-out-loud than a &#8220;do it like this&#8221; blog post.</p>
<p>I myself am still feeling out this style to see whether I like it or not.</p>
<p>Thanks for your comments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Nelson</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36715</link>
		<dc:creator>David Nelson</dc:creator>
		<pubDate>Wed, 16 Sep 2009 17:36:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36715</guid>
		<description>I think this is taking convention over configuration way too far. The entire concept of choosing sensible defaults only makes sense in cases where you can safely make a default choice without negative consequences. MSMQ or the database can never be safe default choices because they require extra information that cannot be defaulted (i.e. the queue name or connection string). If you are going to make the developer supply the connection string anyway, there is little or no value in &quot;choosing&quot; the database option for him in the first place. 

Add to that the fact that convention over configuration is really creating silent choices. If the configuration is stated, you can see plainly what it is. If the configuration is not stated (i.e. uses the convention) then you have to know what the convention is, or go look it up, which reduces maintainability. That means that the convention has to be as simple and obvious as possible, or it is going to make the system less maintainable, not more. Now you want to change the convention depending on the circumstances, essentially magnifying the complexity of the convention and making it even less likely that anyone will be able to keep track of it. In my opinion this is just creating a nightmare for developers and administrators. I would rather see the configuration stated plainly than have to guess what it is while I am trying to solve a problem.</description>
		<content:encoded><![CDATA[<p>I think this is taking convention over configuration way too far. The entire concept of choosing sensible defaults only makes sense in cases where you can safely make a default choice without negative consequences. MSMQ or the database can never be safe default choices because they require extra information that cannot be defaulted (i.e. the queue name or connection string). If you are going to make the developer supply the connection string anyway, there is little or no value in &#8220;choosing&#8221; the database option for him in the first place. </p>
<p>Add to that the fact that convention over configuration is really creating silent choices. If the configuration is stated, you can see plainly what it is. If the configuration is not stated (i.e. uses the convention) then you have to know what the convention is, or go look it up, which reduces maintainability. That means that the convention has to be as simple and obvious as possible, or it is going to make the system less maintainable, not more. Now you want to change the convention depending on the circumstances, essentially magnifying the complexity of the convention and making it even less likely that anyone will be able to keep track of it. In my opinion this is just creating a nightmare for developers and administrators. I would rather see the configuration stated plainly than have to guess what it is while I am trying to solve a problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36628</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Tue, 01 Sep 2009 12:40:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36628</guid>
		<description>RT,

I&#039;d suggest joining the NServiceBus discussion group for getting your questions answered:

http://tech.groups.yahoo.com/group/nservicebus/

Thanks for your kind words.</description>
		<content:encoded><![CDATA[<p>RT,</p>
<p>I&#8217;d suggest joining the NServiceBus discussion group for getting your questions answered:</p>
<p><a href="http://tech.groups.yahoo.com/group/nservicebus/" rel="nofollow">http://tech.groups.yahoo.com/group/nservicebus/</a></p>
<p>Thanks for your kind words.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RT</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36626</link>
		<dc:creator>RT</dc:creator>
		<pubDate>Tue, 01 Sep 2009 11:54:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36626</guid>
		<description>Hi Udi,

Over the last 2 yrs I&#039;ve built a custom solution(Mysql/.NET based) to solve a complex (domain boundary crossing)problem in distributing custom Datasets between Domain apps(different kinds of Db&#039;s in different departments with different &quot;business rules being handled by the Event-handlers at the endpoints(message subscribers)&quot;) at a certain domain event occurence, a so called: &quot;Domain Event Service Bus&quot;, if you could call it that way. A pain at first but with many benefits, I keep trying to make it better or move to a more proven solution, perhaps NServiceBus as one of the components to make it more robust.

Been reading your blogs and tips on how to make things simpler and to be able to make an easy/simple solution(possibly with NService Bus) to easily deploy in production on different platforms(windows/linux etc)
I am currently evaluating NserviceBUS and learning.
We are all still learning as we go along and NserviceBus is a great tool in simplifying complex solutions I think.

Any advice or pointers to gather more info on these technologies and implementations and to point me in the right direction?


Keep up the good work!</description>
		<content:encoded><![CDATA[<p>Hi Udi,</p>
<p>Over the last 2 yrs I&#8217;ve built a custom solution(Mysql/.NET based) to solve a complex (domain boundary crossing)problem in distributing custom Datasets between Domain apps(different kinds of Db&#8217;s in different departments with different &#8220;business rules being handled by the Event-handlers at the endpoints(message subscribers)&#8221;) at a certain domain event occurence, a so called: &#8220;Domain Event Service Bus&#8221;, if you could call it that way. A pain at first but with many benefits, I keep trying to make it better or move to a more proven solution, perhaps NServiceBus as one of the components to make it more robust.</p>
<p>Been reading your blogs and tips on how to make things simpler and to be able to make an easy/simple solution(possibly with NService Bus) to easily deploy in production on different platforms(windows/linux etc)<br />
I am currently evaluating NserviceBUS and learning.<br />
We are all still learning as we go along and NserviceBus is a great tool in simplifying complex solutions I think.</p>
<p>Any advice or pointers to gather more info on these technologies and implementations and to point me in the right direction?</p>
<p>Keep up the good work!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36625</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Tue, 01 Sep 2009 06:03:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36625</guid>
		<description>Adam,

I may get another post up on this topic as we progress with its implementation in NServiceBus. It probably won&#039;t be coming in the next day or two, though :-)</description>
		<content:encoded><![CDATA[<p>Adam,</p>
<p>I may get another post up on this topic as we progress with its implementation in NServiceBus. It probably won&#8217;t be coming in the next day or two, though <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam D.</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36624</link>
		<dc:creator>Adam D.</dc:creator>
		<pubDate>Tue, 01 Sep 2009 03:59:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36624</guid>
		<description>Udi,

The current place where I&#039;m contracting is about to roll out a staging environment for the first time along with the rest of a development department&#039;s processes. So far, we will be leveraging Castle Windsor for IoC. We are looking at the possibility of dropping in configuration to parts /should it be necessary/. Can we expect a follow up to this article that touch on the various comments made here?

Thanks,

Adam</description>
		<content:encoded><![CDATA[<p>Udi,</p>
<p>The current place where I&#8217;m contracting is about to roll out a staging environment for the first time along with the rest of a development department&#8217;s processes. So far, we will be leveraging Castle Windsor for IoC. We are looking at the possibility of dropping in configuration to parts /should it be necessary/. Can we expect a follow up to this article that touch on the various comments made here?</p>
<p>Thanks,</p>
<p>Adam</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36599</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 19 Aug 2009 15:52:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36599</guid>
		<description>Chris (15),

You&#039;ve got it - it&#039;s convention *over* configuration, not *instead of*. We&#039;ll probably always need both. The thing is, as more developers use more frameworks - an ORM, MVC, message bus, etc - we&#039;d serve them well by formalizing which combinations work best together and under which circumstances those combinations should be used.

10x</description>
		<content:encoded><![CDATA[<p>Chris (15),</p>
<p>You&#8217;ve got it &#8211; it&#8217;s convention *over* configuration, not *instead of*. We&#8217;ll probably always need both. The thing is, as more developers use more frameworks &#8211; an ORM, MVC, message bus, etc &#8211; we&#8217;d serve them well by formalizing which combinations work best together and under which circumstances those combinations should be used.</p>
<p>10x</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36598</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 19 Aug 2009 15:48:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36598</guid>
		<description>Gilligan,

The more there are of us interested in this, the more likely Microsoft will be to come along for the ride :)

Spread the word.</description>
		<content:encoded><![CDATA[<p>Gilligan,</p>
<p>The more there are of us interested in this, the more likely Microsoft will be to come along for the ride <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Spread the word.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36597</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 19 Aug 2009 15:47:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36597</guid>
		<description>Martin,

Always nice hearing encouragement - thanks :)</description>
		<content:encoded><![CDATA[<p>Martin,</p>
<p>Always nice hearing encouragement &#8211; thanks <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36596</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 19 Aug 2009 15:46:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36596</guid>
		<description>Max,

I had thought of environment variables, it just that they&#039;re not particularly convenient to change though that may be more easily solvable than trying to making web apps accept parameters some other way...

Will definitely keep thinking this one through.</description>
		<content:encoded><![CDATA[<p>Max,</p>
<p>I had thought of environment variables, it just that they&#8217;re not particularly convenient to change though that may be more easily solvable than trying to making web apps accept parameters some other way&#8230;</p>
<p>Will definitely keep thinking this one through.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36595</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 19 Aug 2009 15:44:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36595</guid>
		<description>Jørn,

I fully understand where you&#039;re coming from - I felt that pain myself. What I can say is that even the stuff that seems static may need to flex a bit now and again, and it may need to do that in coordinated ways that we&#039;d like to give a name to.

I&#039;m not saying that command line parameters are the ultimate solution, I&#039;m just trying to get deeper clarity on what the problem we&#039;ve all been feeling actually is.

Best regards.</description>
		<content:encoded><![CDATA[<p>Jørn,</p>
<p>I fully understand where you&#8217;re coming from &#8211; I felt that pain myself. What I can say is that even the stuff that seems static may need to flex a bit now and again, and it may need to do that in coordinated ways that we&#8217;d like to give a name to.</p>
<p>I&#8217;m not saying that command line parameters are the ultimate solution, I&#8217;m just trying to get deeper clarity on what the problem we&#8217;ve all been feeling actually is.</p>
<p>Best regards.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36594</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 19 Aug 2009 15:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36594</guid>
		<description>Julian,

Hmm - that&#039;s an interesting perspective. I guess that as long as we attempt to improve, we&#039;ll learn something along the way, better preparing ourselves to understand and take the next step.

Thanks for sharing your opinions.</description>
		<content:encoded><![CDATA[<p>Julian,</p>
<p>Hmm &#8211; that&#8217;s an interesting perspective. I guess that as long as we attempt to improve, we&#8217;ll learn something along the way, better preparing ourselves to understand and take the next step.</p>
<p>Thanks for sharing your opinions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36593</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Wed, 19 Aug 2009 15:39:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36593</guid>
		<description>Michael,

I think you&#039;ve got it, just you might not have internalized the result. We&#039;re looking at raising the level of abstraction that developers work at, say what you want - not how it should be done. As frameworks get more and more features, configuration options, etc - we need a way to say &quot;you see this combination here? use that in this scenario&quot;.

Does that make sense?</description>
		<content:encoded><![CDATA[<p>Michael,</p>
<p>I think you&#8217;ve got it, just you might not have internalized the result. We&#8217;re looking at raising the level of abstraction that developers work at, say what you want &#8211; not how it should be done. As frameworks get more and more features, configuration options, etc &#8211; we need a way to say &#8220;you see this combination here? use that in this scenario&#8221;.</p>
<p>Does that make sense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Cyvas</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36588</link>
		<dc:creator>Chris Cyvas</dc:creator>
		<pubDate>Mon, 17 Aug 2009 14:32:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36588</guid>
		<description>Seems to me Chris&#039;s comments above capture what we do with dashCommerce, where we have a Web.Debug.config, Web.Release.config, etc. Then a post-build event copies the file over as Web.config based on your solution build configuration. It would be easy enough to take either a command line switch or grab the setting from a configuration file. But, you need the convention to backup the configuration in this case. :)

Good stuff!

Chris</description>
		<content:encoded><![CDATA[<p>Seems to me Chris&#8217;s comments above capture what we do with dashCommerce, where we have a Web.Debug.config, Web.Release.config, etc. Then a post-build event copies the file over as Web.config based on your solution build configuration. It would be easy enough to take either a command line switch or grab the setting from a configuration file. But, you need the convention to backup the configuration in this case. <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Good stuff!</p>
<p>Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gilligan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36586</link>
		<dc:creator>Gilligan</dc:creator>
		<pubDate>Mon, 17 Aug 2009 11:46:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36586</guid>
		<description>I love the vision you have looking toward the future of our craft!
I think this would be awesome but would require the popular development environments, like Microsoft, to build these conventions into their frameworks. Just have a set of conventions for how each app should run and then let the developer override those as needed, maybe similar to what the Web Deployment Project tool tried to do with config files but deeper.</description>
		<content:encoded><![CDATA[<p>I love the vision you have looking toward the future of our craft!<br />
I think this would be awesome but would require the popular development environments, like Microsoft, to build these conventions into their frameworks. Just have a set of conventions for how each app should run and then let the developer override those as needed, maybe similar to what the Web Deployment Project tool tried to do with config files but deeper.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Rue</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36582</link>
		<dc:creator>Martin Rue</dc:creator>
		<pubDate>Mon, 17 Aug 2009 08:05:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36582</guid>
		<description>I&#039;m hoping convention over configuration is the next generation of how we create our projects. I see having a convention as simply using a default configuration.

Of course, flexibility to change the convention is also needed, but an initial and sensible convention makes the barrier to entry much smaller for a particular technology - ASP.NET MVC comes to mind.

Developers have a smaller barrier to entry as they become familiar with the technology and if they out grow the default convention, they can dig into configuation to learn how to change it.

Nice post Udi.</description>
		<content:encoded><![CDATA[<p>I&#8217;m hoping convention over configuration is the next generation of how we create our projects. I see having a convention as simply using a default configuration.</p>
<p>Of course, flexibility to change the convention is also needed, but an initial and sensible convention makes the barrier to entry much smaller for a particular technology &#8211; ASP.NET MVC comes to mind.</p>
<p>Developers have a smaller barrier to entry as they become familiar with the technology and if they out grow the default convention, they can dig into configuation to learn how to change it.</p>
<p>Nice post Udi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reflective Perspective - Chris Alcock &#187; The Morning Brew #413</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36580</link>
		<dc:creator>Reflective Perspective - Chris Alcock &#187; The Morning Brew #413</dc:creator>
		<pubDate>Mon, 17 Aug 2009 06:18:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36580</guid>
		<description>[...] Convention over Configuration – The Next Generation? - Udi Dahan talks about the next steps in the Convention over Configuration movement, dreaming of an ideal where we don&#8217;t have to read over configuration files, startup code, an implementation details to get going on a project [...]</description>
		<content:encoded><![CDATA[<p>[...] Convention over Configuration – The Next Generation? &#8211; Udi Dahan talks about the next steps in the Convention over Configuration movement, dreaming of an ideal where we don&#8217;t have to read over configuration files, startup code, an implementation details to get going on a project [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: max</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36578</link>
		<dc:creator>max</dc:creator>
		<pubDate>Sun, 16 Aug 2009 23:46:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36578</guid>
		<description>Udi, your solution is called &quot;environment variables&quot;. You can have as many of them as you want, and even web apps can access the values. Come up with the right convention, set them up once on all machines, and then it&#039;s all gravy. :)</description>
		<content:encoded><![CDATA[<p>Udi, your solution is called &#8220;environment variables&#8221;. You can have as many of them as you want, and even web apps can access the values. Come up with the right convention, set them up once on all machines, and then it&#8217;s all gravy. <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DotNetShoutout</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36577</link>
		<dc:creator>DotNetShoutout</dc:creator>
		<pubDate>Sun, 16 Aug 2009 23:02:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36577</guid>
		<description>&lt;strong&gt;Convention over Configuration – The Next Generation? - Udi Dahan...&lt;/strong&gt;

Thank you for submitting this cool story - Trackback from DotNetShoutout...</description>
		<content:encoded><![CDATA[<p><strong>Convention over Configuration – The Next Generation? &#8211; Udi Dahan&#8230;</strong></p>
<p>Thank you for submitting this cool story &#8211; Trackback from DotNetShoutout&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jørn Wildt</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36576</link>
		<dc:creator>Jørn Wildt</dc:creator>
		<pubDate>Sun, 16 Aug 2009 16:50:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36576</guid>
		<description>I remember my previous project where we started using IoC for the first time. A great great improvement over our previous solutions. But we decided to configure dependencies in the web.config file - and that was a deployment mess, because everytime we upgraded the system, we had to copy some new lines from the development file to the release file - without modifying the existing real configurations.

Later on we got the advice that config files should only include stuff that the sysadmin wants to configure - never internal static unchangeable stuff like the typical IoC setup.

What is needed is some way to split the stuff that changes from development to release and keep that separate from all the more static stuff. Doing this helps deployment a lot: you can always copy the static config files, and only need to modify the dynamic file.

So I am all for splitting dynamic and static stuff. But doing it through command line parameters? Nah, not really - then I would probably write a batch file for starting the servers so I wouldn&#039;t have to remember all the command line parameters when installing the system ... and I would actually rather edit a config file than a batch file - the intent of the config file is, of course, *configuration* - whereas you never know what a batch file does.

/Jørn</description>
		<content:encoded><![CDATA[<p>I remember my previous project where we started using IoC for the first time. A great great improvement over our previous solutions. But we decided to configure dependencies in the web.config file &#8211; and that was a deployment mess, because everytime we upgraded the system, we had to copy some new lines from the development file to the release file &#8211; without modifying the existing real configurations.</p>
<p>Later on we got the advice that config files should only include stuff that the sysadmin wants to configure &#8211; never internal static unchangeable stuff like the typical IoC setup.</p>
<p>What is needed is some way to split the stuff that changes from development to release and keep that separate from all the more static stuff. Doing this helps deployment a lot: you can always copy the static config files, and only need to modify the dynamic file.</p>
<p>So I am all for splitting dynamic and static stuff. But doing it through command line parameters? Nah, not really &#8211; then I would probably write a batch file for starting the servers so I wouldn&#8217;t have to remember all the command line parameters when installing the system &#8230; and I would actually rather edit a config file than a batch file &#8211; the intent of the config file is, of course, *configuration* &#8211; whereas you never know what a batch file does.</p>
<p>/Jørn</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Julian Birch</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36575</link>
		<dc:creator>Julian Birch</dc:creator>
		<pubDate>Sun, 16 Aug 2009 14:49:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36575</guid>
		<description>I&#039;ve spent a fair bit of time on the question of reducing deployment friction on a wide variety of apps.  What you&#039;re advocating is significantly far in advance of what I&#039;ve actually got implemented.  However, I&#039;ll make a few observations:

Being able to store environmental deltas in files like nServiceBus does is incredibly useful.  Extending these to be standardized would obviously help e.g. &quot;This is the standard production delta&quot;.

More sophisticated tweaks require a proper programming language/DSL.  I think that IronPython and IronRuby look like better candidates for a workable format than XML.  This also allows you to just write your configuration API the once.

The fewer admin settings there are, the better.  Sooner or later, someone&#039;s going to have to enter the connect strings, the queue names and so on.

Finally, different firms have different workflows.  The &quot;Dev/Integration/Production&quot; split is only appropriate for those with that workflow.  I think, ultimately, this is a function of the installer.  There isn&#039;t really a workflow-aware install framework for .NET, though.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve spent a fair bit of time on the question of reducing deployment friction on a wide variety of apps.  What you&#8217;re advocating is significantly far in advance of what I&#8217;ve actually got implemented.  However, I&#8217;ll make a few observations:</p>
<p>Being able to store environmental deltas in files like nServiceBus does is incredibly useful.  Extending these to be standardized would obviously help e.g. &#8220;This is the standard production delta&#8221;.</p>
<p>More sophisticated tweaks require a proper programming language/DSL.  I think that IronPython and IronRuby look like better candidates for a workable format than XML.  This also allows you to just write your configuration API the once.</p>
<p>The fewer admin settings there are, the better.  Sooner or later, someone&#8217;s going to have to enter the connect strings, the queue names and so on.</p>
<p>Finally, different firms have different workflows.  The &#8220;Dev/Integration/Production&#8221; split is only appropriate for those with that workflow.  I think, ultimately, this is a function of the installer.  There isn&#8217;t really a workflow-aware install framework for .NET, though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Hart</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36574</link>
		<dc:creator>Michael Hart</dc:creator>
		<pubDate>Sun, 16 Aug 2009 13:15:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36574</guid>
		<description>So when I&#039;m talking about anticipating all scenarios, I&#039;m imagining something like this:

Developer chooses the integration config. The framework has all sorts of smarts to figure out if MSMQ is installed, if not maybe choose a different messaging system, check if SQLite is installed, etc, etc - so this is the goal you&#039;re talking about, right? Which would require us/the-framework-developers to have already thought about all these scenarios and configured these checks and choices.

So if you find yourself in a situation that the framework setup hasn&#039;t anticipated or you want to point to a different system than what the framework wants to point to, then you&#039;ll need a config for that.

So what this boils down to is... ummm... I can&#039;t quite figure out what you&#039;re advocating :-) Is it just a more comprehensive set of steps that the framework takes so that the chances of you needing to tweak something is reduced? Or is there something deeper I&#039;m not quite getting?</description>
		<content:encoded><![CDATA[<p>So when I&#8217;m talking about anticipating all scenarios, I&#8217;m imagining something like this:</p>
<p>Developer chooses the integration config. The framework has all sorts of smarts to figure out if MSMQ is installed, if not maybe choose a different messaging system, check if SQLite is installed, etc, etc &#8211; so this is the goal you&#8217;re talking about, right? Which would require us/the-framework-developers to have already thought about all these scenarios and configured these checks and choices.</p>
<p>So if you find yourself in a situation that the framework setup hasn&#8217;t anticipated or you want to point to a different system than what the framework wants to point to, then you&#8217;ll need a config for that.</p>
<p>So what this boils down to is&#8230; ummm&#8230; I can&#8217;t quite figure out what you&#8217;re advocating <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Is it just a more comprehensive set of steps that the framework takes so that the chances of you needing to tweak something is reduced? Or is there something deeper I&#8217;m not quite getting?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36573</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 16 Aug 2009 10:38:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36573</guid>
		<description>Brad,

That&#039;s a solution I see many people using so I&#039;m glad to hear it&#039;s working for you too. I hope that when you see the steps that we&#039;ve taken that you&#039;ll enjoy that we were able to whittle away a little bit of complexity.

Do let me know if you have any ideas on how we can make things simpler for you and the rest of the NServiceBus community.</description>
		<content:encoded><![CDATA[<p>Brad,</p>
<p>That&#8217;s a solution I see many people using so I&#8217;m glad to hear it&#8217;s working for you too. I hope that when you see the steps that we&#8217;ve taken that you&#8217;ll enjoy that we were able to whittle away a little bit of complexity.</p>
<p>Do let me know if you have any ideas on how we can make things simpler for you and the rest of the NServiceBus community.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: udidahan</title>
		<link>http://www.udidahan.com/2009/08/15/convention-over-configuration-the-next-generation/comment-page-1/#comment-36572</link>
		<dc:creator>udidahan</dc:creator>
		<pubDate>Sun, 16 Aug 2009 10:33:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.udidahan.com/?p=1081#comment-36572</guid>
		<description>Michael,

I&#039;m not saying we should take control away from developers and put it in the hands of the framework, but that we add some context to the conventions we&#039;ve already put in place. 

We don&#039;t even have to anticipate all scenarios if we leave the door to configuration open. Anything we can simplify incrementally is a nice win and we should take what we can get as we figure out what steps to take next.

Thanks for your comments.</description>
		<content:encoded><![CDATA[<p>Michael,</p>
<p>I&#8217;m not saying we should take control away from developers and put it in the hands of the framework, but that we add some context to the conventions we&#8217;ve already put in place. </p>
<p>We don&#8217;t even have to anticipate all scenarios if we leave the door to configuration open. Anything we can simplify incrementally is a nice win and we should take what we can get as we figure out what steps to take next.</p>
<p>Thanks for your comments.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
