<?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: Conquest through extreme composition + glue, Part 3</title>
	<atom:link href="http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/feed/" rel="self" type="application/rss+xml" />
	<link>http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/</link>
	<description>software, trading, family, fun</description>
	<lastBuildDate>Mon, 11 Jan 2010 03:09:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: robertmaldon</title>
		<link>http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/comment-page-1/#comment-226</link>
		<dc:creator>robertmaldon</dc:creator>
		<pubDate>Tue, 29 May 2007 03:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/#comment-226</guid>
		<description>Ah, apologies, I didn&#039;t read through the post thoroughly enough to understand you were coding the config, not annotating the actual domain objects. Interesting idea. I would be curious to see how it scales for a medium or large application, and whether you have to &quot;include&quot; multiple GlueConfig objects to compose an application.

Keep up the blogging!</description>
		<content:encoded><![CDATA[<p>Ah, apologies, I didn&#8217;t read through the post thoroughly enough to understand you were coding the config, not annotating the actual domain objects. Interesting idea. I would be curious to see how it scales for a medium or large application, and whether you have to &#8220;include&#8221; multiple GlueConfig objects to compose an application.</p>
<p>Keep up the blogging!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chrisdrop</title>
		<link>http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/comment-page-1/#comment-225</link>
		<dc:creator>chrisdrop</dc:creator>
		<pubDate>Tue, 29 May 2007 00:22:55 +0000</pubDate>
		<guid isPermaLink="false">http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/#comment-225</guid>
		<description>Hey there. I also think that XML config files give you that &quot;understanding of how an application works&quot;. You can think of a glue config as exactly the same thing as a spring config XML. It is NOT an annotation approach like CAB that asks you to annotate THE TARGET OBJECTS - but an approach that exists OUTSIDE the target objects. I found myself taking &#039;ctor code from so many classes, cut&#039;n&#039;pasting them into a spring objects xml file - turning it into XML... So I tried to bang out something that was identical to that - but C#.

After a few years of springin&#039; - I think that having &quot;sensible defaults&quot; saves you a lot of over-springin&#039;. I still want the OPTION of injecting something - but by default - I want a sensible constructor overload and/ or a setter aviailable as a &quot;seam&quot; when I need it. This gets rid of much of the over-springin&#039; IMO.

As to annotations - I do not like to decorate my actual target classes with ANYTHING like this stuff. This is why I opted for an approach where I still have POCO&#039;s (except in the container-aware scenarios where I need a handle to the factory) - that are not embellished with any container info - just a config - like spring - and a container &quot;up high&quot; in the app that pulls it all together.

As to &quot;overriding the annotations&quot; - the answer is no - BUT the deeper answer is - it is not needed because you can have different configs&#039; just like in spring. In fact, you can get a good degree of reuse as well by simply using composed sets of glue cofigs. You can import a config using composition. You then put your environmental depends and per-enviroment variations in configs that are small - and import the main configs - just like I have done using spring.

Since they all lie outside your actual code - you can again think of them as the same as a spring config. In fact - if you package them by themselves, you can wire your hard dependencies to the cofig package alone and your other packages have not a clue - they just ref your core abstractions.

There it is:)

I hope you are well - and that Sunguard is treating you all well these days. My best to Solomon next time you see him.

-Chris</description>
		<content:encoded><![CDATA[<p>Hey there. I also think that XML config files give you that &#8220;understanding of how an application works&#8221;. You can think of a glue config as exactly the same thing as a spring config XML. It is NOT an annotation approach like CAB that asks you to annotate THE TARGET OBJECTS &#8211; but an approach that exists OUTSIDE the target objects. I found myself taking &#8216;ctor code from so many classes, cut&#8217;n'pasting them into a spring objects xml file &#8211; turning it into XML&#8230; So I tried to bang out something that was identical to that &#8211; but C#.</p>
<p>After a few years of springin&#8217; &#8211; I think that having &#8220;sensible defaults&#8221; saves you a lot of over-springin&#8217;. I still want the OPTION of injecting something &#8211; but by default &#8211; I want a sensible constructor overload and/ or a setter aviailable as a &#8220;seam&#8221; when I need it. This gets rid of much of the over-springin&#8217; IMO.</p>
<p>As to annotations &#8211; I do not like to decorate my actual target classes with ANYTHING like this stuff. This is why I opted for an approach where I still have POCO&#8217;s (except in the container-aware scenarios where I need a handle to the factory) &#8211; that are not embellished with any container info &#8211; just a config &#8211; like spring &#8211; and a container &#8220;up high&#8221; in the app that pulls it all together.</p>
<p>As to &#8220;overriding the annotations&#8221; &#8211; the answer is no &#8211; BUT the deeper answer is &#8211; it is not needed because you can have different configs&#8217; just like in spring. In fact, you can get a good degree of reuse as well by simply using composed sets of glue cofigs. You can import a config using composition. You then put your environmental depends and per-enviroment variations in configs that are small &#8211; and import the main configs &#8211; just like I have done using spring.</p>
<p>Since they all lie outside your actual code &#8211; you can again think of them as the same as a spring config. In fact &#8211; if you package them by themselves, you can wire your hard dependencies to the cofig package alone and your other packages have not a clue &#8211; they just ref your core abstractions.</p>
<p>There it is:)</p>
<p>I hope you are well &#8211; and that Sunguard is treating you all well these days. My best to Solomon next time you see him.</p>
<p>-Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: robertmaldon</title>
		<link>http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/comment-page-1/#comment-224</link>
		<dc:creator>robertmaldon</dc:creator>
		<pubDate>Mon, 28 May 2007 21:28:10 +0000</pubDate>
		<guid isPermaLink="false">http://chrisdonnan.com/blog/2007/05/25/conquest-through-extreme-composition-glue-part-3/#comment-224</guid>
		<description>Having used Spring on a few large projects in recent years I can&#039;t say that I am exclusively happy with either the pure-XML or pure-annotations approach.

To me the main value of a Spring XML config file is that you can get an understanding of how an application works - the main components, how they are related, maybe even the &quot;workflow&quot; of the application - much quicker than digging through lots of code.

The downside of the pure-XML approach is that it is easy to get caught up with defining everything in Spring XML, which has a few nasty side effects (just ask my colleague Solomon - http://jroller.com/page/Solomon?entry=compiling_xml_for_faster_startup).

Where possible, therefore, I lean towards defining only the top level application objects and &quot;workflow&quot; components in Spring XML and use annotations for the rest.

One question on Glue: Do you have the option of overriding the annotations? For example, in a test env you may want the object to be prototype but in the main app you need the same object to be configured as a singleton.</description>
		<content:encoded><![CDATA[<p>Having used Spring on a few large projects in recent years I can&#8217;t say that I am exclusively happy with either the pure-XML or pure-annotations approach.</p>
<p>To me the main value of a Spring XML config file is that you can get an understanding of how an application works &#8211; the main components, how they are related, maybe even the &#8220;workflow&#8221; of the application &#8211; much quicker than digging through lots of code.</p>
<p>The downside of the pure-XML approach is that it is easy to get caught up with defining everything in Spring XML, which has a few nasty side effects (just ask my colleague Solomon &#8211; <a href="http://jroller.com/page/Solomon?entry=compiling_xml_for_faster_startup)" rel="nofollow">http://jroller.com/page/Solomon?entry=compiling_xml_for_faster_startup)</a>.</p>
<p>Where possible, therefore, I lean towards defining only the top level application objects and &#8220;workflow&#8221; components in Spring XML and use annotations for the rest.</p>
<p>One question on Glue: Do you have the option of overriding the annotations? For example, in a test env you may want the object to be prototype but in the main app you need the same object to be configured as a singleton.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

