<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>De's blog!</title>
	<atom:link href="http://www.depanca.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.depanca.net</link>
	<description>Walking RIA!</description>
	<pubDate>Fri, 21 Nov 2008 01:56:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Tour de Flex - Swiss army Flex tools</title>
		<link>http://www.depanca.net/2008/11/tour-de-flex-my-swiss-army-flex-tools/</link>
		<comments>http://www.depanca.net/2008/11/tour-de-flex-my-swiss-army-flex-tools/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 01:42:01 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[air]]></category>

		<category><![CDATA[ria]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=104</guid>
		<description><![CDATA[

Flex developer? You better have it!
It&#8217;s all in one sample application using tools and component from core Flex components, Adobe AIR and data integration, as well as a variety of third-party components, effects, skins, and more. Over 200 runnable example added in the application. each with source code and documentation and other detail information. This [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://farm4.static.flickr.com/3288/3046395709_0bc8145cb3.jpg" alt="Tour de Flex" />
</div>
<p>Flex developer? You better have it!<br />
It&#8217;s all in one sample application using tools and component from core Flex components, Adobe AIR and data integration, as well as a variety of third-party components, effects, skins, and more. Over 200 runnable example added in the application. each with source code and documentation and other detail information. This is very good reference tools! </p>
<p>Not yet Flex developer?<br />
Download, install and feel how Flex can affecting your mood to build an application.<br />
well.. it&#8217;s looks like You have no patient left to start building your flex  application. here is a good start.<br />
1. Download and install <a href="http://www.adobe.com/products/flex/flexdownloads/">flex builder</a><br />
2. Read the <a href="http://www.adobe.com/support/documentation/en/flex/">documentation</a><br />
3. Learn from the example provided in the Tour de Flex application.<br />
Yap! that&#8217;s it! happy FLEXING!! <img src='http://www.depanca.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>All right.. back to our Tour de Flex application. There is also Eclipse plugin available for Tour de Flex application. Click <a href="http://flex.org/tour">here</a> for more information.</p>
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/11/cairngorm-introduction/" title="Cairngorm : Introduction">Cairngorm : Introduction (0)</a></li>
</ul>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.depanca.net%2F2008%2F11%2Ftour-de-flex-my-swiss-army-flex-tools%2F';
  addthis_title  = 'Tour+de+Flex+-+Swiss+army+Flex+tools';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.depanca.net/2008/11/tour-de-flex-my-swiss-army-flex-tools/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cairngorm : Introduction</title>
		<link>http://www.depanca.net/2008/11/cairngorm-introduction/</link>
		<comments>http://www.depanca.net/2008/11/cairngorm-introduction/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 22:35:10 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[Cairngorm]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[j2ee]]></category>

		<category><![CDATA[microarchitecture]]></category>

		<category><![CDATA[pattern]]></category>

		<category><![CDATA[ria]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=71</guid>
		<description><![CDATA[This article present an open source architectural framework for Flex development called Cairngorm. An Architectural framework provide the internal structure of an application that separated into a few layer with the specific function. 
The Cairngorm microarchitecture addresses three key areas that Adobe Consulting has long recomended as best-practices for RIA development.
 


Handling user gestures on the client. [...]]]></description>
			<content:encoded><![CDATA[<p>This article present an open source architectural framework for Flex development called Cairngorm. An Architectural framework provide the internal structure of an application that separated into a few layer with the specific function. </p>
<p>The Cairngorm microarchitecture addresses three key areas that Adobe Consulting has long recomended as best-practices for RIA development.</p>
<p> </p>
<div>
<ol>
<li>Handling user gestures on the client. This is about using FrontController and Command pattern to implement a &#8220;Service to Worker&#8221; microarchitecture for listening and responding to user request. </li>
<li>Encapsulating business and server interaction. This key deal with how the Business delegate and Service locator pattern interact so that you can reuse and encapsulate business logic and establish a clear contract between client and server side development teams, independent of server side technical implementation such as Live Cycle Data Service, Web Services, Enterprise Java Beans, Cold Fusion components or event using XML over HTTP.</li>
<li>Managing state on the client and representing this state to the user interface. This is related to how the ValueObject class from J2EE can colaborate with the ModelLocator class to enabled an elegant strategy for maintaining a stateful client with a rich and cinematic user experience.</li>
</ol>
<div>From the three key areas of RIA development above, Cairngorm devide each key into a few class that deal with each point.</div>
<div>
<ol>
<li>FrontController</li>
<li>Command</li>
<li>Event</li>
<li>Delegate</li>
<li>ValueObject</li>
<li>ModelLocator</li>
</ol>
<div>If you are derrive from J2EE programmer, maybe you already familiar with the class above to building Java application. except for ModelLocator class. I&#8217;ll explain each of these class a long with the basic example using cairngorm. The example will read the XML value in http://www.depanca.net/samples/cairngorm/basic/employee.xml and  http://www.depanca.net/samples/cairngorm/basic/department.xml through HTTPService and update the label in the application.</div>
</div>
<div>
<ol>
<li>FrontController, <br />
FrontController is a class that control and manage event handling. An event invoked then dispatched to the related Command in the application. FronController extends com.adobe.cairngorm.control.FrontController to be able to add a new Command in the application.  </p>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// SimpleController</span></div>
</li>
<li class="li1">
<div class="de1">package controller</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="kw3">control</span>.<span class="me1">FrontController</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> command.<span class="me1">GetDepartmentCommand</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> command.<span class="me1">GetEmployeeCommand</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> event.<span class="me1">GetDepartmentEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> event.<span class="me1">GetEmployeeEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> SimpleController <span class="kw3">extends</span> FrontController</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> SimpleController<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;initializeCommand<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> initializeCommand<span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;addCommand<span class="br0">&#40;</span>GetEmployeeEvent.<span class="me1">EVENT_GET_EMPLOYEE</span>, GetEmployeeCommand<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;addCommand<span class="br0">&#40;</span>GetDepartmentEvent.<span class="me1">EVENT_GET_DEPARTMENT</span>, GetDepartmentCommand<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>The class above add a new Command to each Event invoked by the user. The FrontController class contain addCommand method to specify which Command invoked when an eEvent called in the application.</li>
<li>Command<br />
As you can see in the above example, each Command belong to one Event in the application. Command will call the business process in the backend through Delegate class (I&#8217;ll explain later) then handle the result of that calling process. To be able to handle this result, Command class need to implements mx.rpc.IResponder interface which have two method to implement in the command class. Command also have to implements com.adobe.cairngorm.commands.Command from cairngorm package and implements it&#8217;s execute method to call the service in the Delegate class.</p>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// GetEmployeeCommand</span></div>
</li>
<li class="li1">
<div class="de1">package command</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="me1">commands</span>.<span class="me1">Command</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="kw3">control</span>.<span class="me1">CairngormEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> delegate.<span class="me1">EmployeeDelegate</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> event.<span class="me1">GetEmployeeEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> model.<span class="me1">SimpleModelLocator</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">controls</span>.<span class="me1">Alert</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">IResponder</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">events</span>.<span class="me1">FaultEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">events</span>.<span class="me1">ResultEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> vo.<span class="me1">EmployeeVO</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> GetEmployeeCommand <span class="kw3">implements</span> Command, IResponder</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> GetEmployeeCommand<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> execute<span class="br0">&#40;</span> event : CairngormEvent <span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> getEmployeeEvent : GetEmployeeEvent = GetEmployeeEvent<span class="br0">&#40;</span>event<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> empDelegate : EmployeeDelegate = <span class="kw2">new</span> EmployeeDelegate<span class="br0">&#40;</span><span class="kw3">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;empDelegate.<span class="me1">getEmployee</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> result<span class="br0">&#40;</span> info : <span class="kw3">Object</span> <span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> resultEvent : ResultEvent = ResultEvent<span class="br0">&#40;</span>info<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> employeeVO : EmployeeVO = <span class="kw2">new</span> EmployeeVO<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;employeeVO.<span class="me1">employeeName</span> = resultEvent.<span class="me1">result</span>.<span class="me1">employee</span>.<span class="me1">employeename</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;employeeVO.<span class="me1">email</span> = resultEvent.<span class="me1">result</span>.<span class="me1">employee</span>.<span class="me1">employeeemail</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;SimpleModelLocator.<span class="me1">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">employeeVO</span> = employeeVO;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> fault<span class="br0">&#40;</span> info : <span class="kw3">Object</span> <span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> faultEvent : FaultEvent = FaultEvent<span class="br0">&#40;</span>info<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;Alert.<span class="kw3">show</span><span class="br0">&#40;</span><span class="st0">&quot;Fault message &quot;</span> + faultEvent.<span class="kw3">message</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// GetDepartmentCommand</span></div>
</li>
<li class="li1">
<div class="de1">package command</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="me1">commands</span>.<span class="me1">Command</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="kw3">control</span>.<span class="me1">CairngormEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> delegate.<span class="me1">DepartmentDelegate</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> event.<span class="me1">GetDepartmentEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> model.<span class="me1">SimpleModelLocator</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">controls</span>.<span class="me1">Alert</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">IResponder</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">events</span>.<span class="me1">FaultEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">events</span>.<span class="me1">ResultEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> vo.<span class="me1">DepartmentVO</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> GetDepartmentCommand <span class="kw3">implements</span> Command, IResponder</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> GetDepartmentCommand<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> execute<span class="br0">&#40;</span> event : CairngormEvent <span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> getDepartmentEvent : GetDepartmentEvent = GetDepartmentEvent<span class="br0">&#40;</span>event<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> departmentDelegate : DepartmentDelegate &nbsp;= <span class="kw2">new</span> DepartmentDelegate <span class="br0">&#40;</span><span class="kw3">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;departmentDelegate.<span class="me1">getDepartment</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> result<span class="br0">&#40;</span> info : <span class="kw3">Object</span> <span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> resultEvent : ResultEvent = ResultEvent<span class="br0">&#40;</span>info<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> departmentVO : DepartmentVO = <span class="kw2">new</span> DepartmentVO<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;departmentVO.<span class="me1">departmentName</span> = resultEvent.<span class="me1">result</span>.<span class="me1">department</span>.<span class="me1">departmentname</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;departmentVO.<span class="me1">description</span> = resultEvent.<span class="me1">result</span>.<span class="me1">department</span>.<span class="me1">description</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;SimpleModelLocator.<span class="me1">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">departmentVO</span> = departmentVO;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> fault<span class="br0">&#40;</span> info : <span class="kw3">Object</span> <span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> faultEvent : FaultEvent = FaultEvent<span class="br0">&#40;</span>info<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;Alert.<span class="kw3">show</span><span class="br0">&#40;</span><span class="st0">&quot; Fault message : &quot;</span> + faultEvent.<span class="kw3">message</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>If the calling proccess succeded, the calling process will return a ResultEvent handled by the result method. But if it fail, the fault mathod will handle the FaultEvent returned by the calling process.
</li>
<li>Event<br />
Event class provide an elegant method to handle user gastures in the application by specifying each gastures to an event that will be dispached to the related Command in the application. Each Event will carry any value related to the process in the Command class. An event class will extends com.adobe.cairngorm.control.CairngormEvent class from the cairngorm package.</p>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// GetEmployeeEvent</span></div>
</li>
<li class="li1">
<div class="de1">package event</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="kw3">control</span>.<span class="me1">CairngormEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> GetEmployeeEvent <span class="kw3">extends</span> CairngormEvent</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const EVENT_GET_EMPLOYEE : <span class="kw3">String</span> = <span class="st0">&quot;getEmployee&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> GetEmployeeEvent<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">super</span><span class="br0">&#40;</span>EVENT_GET_EMPLOYEE<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// GetDepartmentEvent</span></div>
</li>
<li class="li1">
<div class="de1">package event</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="kw3">control</span>.<span class="me1">CairngormEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> GetDepartmentEvent <span class="kw3">extends</span> CairngormEvent</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const EVENT_GET_DEPARTMENT : <span class="kw3">String</span> = <span class="st0">&quot;getDepartment&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> GetDepartmentEvent<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">super</span><span class="br0">&#40;</span>EVENT_GET_DEPARTMENT<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>When an Event instantiated, it will call the Constructor on the parent class and register a name for that related Event.
</li>
<li>Delegate<br />
Delegate class created to facilitate Flex application with an elegant method to call the service on the backend. By using delegate class, developers introduced to an easy way to manage service call. More centralized, structured and managed application service could make the application more easily to read and maintain.</p>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// EmployeeDelegate</span></div>
</li>
<li class="li1">
<div class="de1">package delegate</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="me1">business</span>.<span class="me1">ServiceLocator</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">AsyncToken</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">IResponder</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#91;</span>Bindable<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> EmployeeDelegate</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">private</span> <span class="kw2">var</span> service : <span class="kw3">Object</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">private</span> <span class="kw2">var</span> responder : IResponder;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> EmployeeDelegate<span class="br0">&#40;</span> responder : IResponder <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">this</span>.<span class="me1">service</span> = ServiceLocator.<span class="me1">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getHTTPService</span><span class="br0">&#40;</span><span class="st0">&quot;employeeService&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">this</span>.<span class="me1">responder</span> = responder;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> getEmployee<span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> <span class="kw3">call</span> : AsyncToken = service.<span class="kw3">send</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">call</span>.<span class="me1">addResponder</span><span class="br0">&#40;</span><span class="kw3">this</span>.<span class="me1">responder</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// DepartmentDelegate</span></div>
</li>
<li class="li1">
<div class="de1">package delegate</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="me1">business</span>.<span class="me1">ServiceLocator</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">AsyncToken</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">IResponder</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#91;</span>Bindable<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> DepartmentDelegate</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">private</span> <span class="kw2">var</span> service : <span class="kw3">Object</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">private</span> <span class="kw2">var</span> responder : IResponder;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> DepartmentDelegate<span class="br0">&#40;</span> responder : IResponder <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">this</span>.<span class="me1">service</span> = ServiceLocator.<span class="me1">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getHTTPService</span><span class="br0">&#40;</span><span class="st0">&quot;departmentService&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">this</span>.<span class="me1">responder</span> = responder;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> getDepartment<span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> <span class="kw3">call</span> : AsyncToken = service.<span class="kw3">send</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw3">call</span>.<span class="me1">addResponder</span><span class="br0">&#40;</span><span class="kw3">this</span>.<span class="me1">responder</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>The EmployeeDelegate class will lookup the service called &#8220;employeeService&#8221; registered in the application by using HTTPService call method. Delegate class usualy take the IResponder parameter to specify the responder class from the calling process in the application. Usualy the command class that implements the IResponderInterface.
</li>
<li>ModelLocator<br />
The ModelLocator pattern is new and introduced in the Cairngorm microarchitecture. Model locator created to manage the application state a long with the ValueObject pattern by centralizing the state management in the application. All state in the application will point to the ModelLocator class, then retrieve the related value for any object. ModelLocator is a singleton class which is mean for every application in the client only hold a single instance of it. But, there could be more than one ModelLocator class in the application that will create only a single instance of each class.</p>
<div class="geshi no actionscript">
<ol>
<li class="li1">
<div class="de1">package model</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> com.<span class="me1">adobe</span>.<span class="me1">cairngorm</span>.<span class="me1">model</span>.<span class="me1">ModelLocator</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> vo.<span class="me1">EmployeeVO</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">import</span> vo.<span class="me1">DepartmentVO</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#91;</span>Bindable<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">public</span> <span class="kw2">class</span> SimpleModelLocator <span class="kw3">implements</span> ModelLocator</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">private</span> <span class="kw3">static</span> <span class="kw2">var</span> modelLocator : SimpleModelLocator = <span class="kw2">new</span> SimpleModelLocator<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">var</span> employeeVO : EmployeeVO;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">var</span> departmentVO : DepartmentVO;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw3">static</span> <span class="kw2">function</span> getInstance<span class="br0">&#40;</span><span class="br0">&#41;</span> : SimpleModelLocator</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> modelLocator;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">function</span> SimpleModelLocator<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;employeeVO = <span class="kw2">new</span> EmployeeVO<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;departmentVO = <span class="kw2">new</span> DepartmentVO<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</li>
</ol>
<p>To be able to call the service in the application. You need to create the Service.mxml, register all service needed by the application then put it in your main application.</p>
<div class="geshi no xml">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;utf-8&quot;</span><span class="re2">?&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="coMULTI">&lt;!&#8211; Service.mxml &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;adobe:ServiceLocator</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">xmlns:mx</span>=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">xmlns:adobe</span>=<span class="st0">&quot;http://www.adobe.com/2006/cairngorm&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="coMULTI">&lt;!&#8211; Define the logout service &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:HTTPService</span> <span class="re0">id</span>=<span class="st0">&quot;employeeService&quot;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re0">method</span>=<span class="st0">&quot;POST&quot;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re0">url</span>=<span class="st0">&quot;http://www.depanca.net/samples/cairngorm/basic/employee.xml&quot;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re2">/&gt;</span></span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="coMULTI">&lt;!&#8211; Define the Login service &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:HTTPService</span> <span class="re0">id</span>=<span class="st0">&quot;departmentService&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re0">method</span>=<span class="st0">&quot;POST&quot;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re0">url</span>=<span class="st0">&quot;http://www.depanca.net/samples/cairngorm/basic/department.xml&quot;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/adobe:ServiceLocator<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
<p>and here is the main application.</p>
<div class="geshi no xml">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;utf-8&quot;</span><span class="re2">?&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="coMULTI">&lt;!&#8211; BasicCairngorm &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;mx:Application</span> <span class="re0">xmlns:mx</span>=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> <span class="re0">layout</span>=<span class="st0">&quot;absolute&quot;</span> <span class="re0">xmlns:controller</span>=<span class="st0">&quot;controller.*&quot;</span> <span class="re0">xmlns:local</span>=<span class="st0">&quot;*&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="coMULTI">&lt;!&#8211; Register controller &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;controller:SimpleController</span> <span class="re0">id</span>=<span class="st0">&quot;simpleControlelr&quot;</span> <span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="coMULTI">&lt;!&#8211; Register all service used by the application &#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;local:Services</span> <span class="re0">id</span>=<span class="st0">&quot;services&quot;</span> <span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:Script<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sc2">&lt;![CDATA[</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; </span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; import event.GetDepartmentEvent;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; import event.GetEmployeeEvent;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; import model.SimpleModelLocator;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; </span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; </span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; private function getEmployee() : void{</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; &nbsp;var eventGetEmployee : GetEmployeeEvent = new GetEmployeeEvent();</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; &nbsp;eventGetEmployee.dispatch();</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; } &nbsp;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; </span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; private function getDepartment() : void</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; &nbsp;var eventGetDepartment : GetDepartmentEvent = new GetDepartmentEvent();</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; &nbsp;eventGetDepartment.dispatch();</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp; }</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc2"> &nbsp;]]&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;/mx:Script<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:Label</span> <span class="re0">x</span>=<span class="st0">&quot;276&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;135&quot;</span> <span class="re0">text</span>=<span class="st0">&quot;{SimpleModelLocator.getInstance().employeeVO.employeeName}&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;lblEmployeeName&quot;</span> <span class="re0">color</span>=<span class="st0">&quot;#FF1503&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:Label</span> <span class="re0">x</span>=<span class="st0">&quot;276&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;161&quot;</span> <span class="re0">text</span>=<span class="st0">&quot;{SimpleModelLocator.getInstance().employeeVO.email}&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;lblEmail&quot;</span> <span class="re0">color</span>=<span class="st0">&quot;#03FF15&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:Label</span> <span class="re0">x</span>=<span class="st0">&quot;276&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;283&quot;</span> <span class="re0">text</span>=<span class="st0">&quot;{SimpleModelLocator.getInstance().departmentVO.departmentName}&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;lblDepartmentName&quot;</span> <span class="re0">color</span>=<span class="st0">&quot;#02D2FE&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:Label</span> <span class="re0">x</span>=<span class="st0">&quot;276&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;309&quot;</span> <span class="re0">text</span>=<span class="st0">&quot;{SimpleModelLocator.getInstance().departmentVO.description}&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;lblDescription&quot;</span> <span class="re0">color</span>=<span class="st0">&quot;#FEEF01&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:Button</span> <span class="re0">x</span>=<span class="st0">&quot;276&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;203&quot;</span> <span class="re0">label</span>=<span class="st0">&quot;Get Employee&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;btnGetEmployee&quot;</span> <span class="re0">click</span>=<span class="st0">&quot;getEmployee()&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;mx:Button</span> <span class="re0">x</span>=<span class="st0">&quot;276&quot;</span> <span class="re0">y</span>=<span class="st0">&quot;351&quot;</span> <span class="re0">label</span>=<span class="st0">&quot;Get Department&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;btnGetDepartment&quot;</span> <span class="re0">click</span>=<span class="st0">&quot;getDepartment()&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/mx:Application<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
<p>There are only 2 buttons and a few labels here. Each button will listen to the click event, and call the function getEmployee() and getDepartment() in the application. <br/><br />
Download source code : <a href="http://www.mediafire.com/?n2d05zzdjmz" target="_blank">BasicCairngorm.zip</a></p>
</div>
<p>Yap! That&#8217;s enough for this Cairngorm introduction. I know that this article is far from perfect. Any comments would be very appreciated. Thank you.. <img src='http://www.depanca.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</div>
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/11/tour-de-flex-my-swiss-army-flex-tools/" title="Tour de Flex - Swiss army Flex tools">Tour de Flex - Swiss army Flex tools (0)</a></li>
<li><a href="http://www.depanca.net/2008/10/springnet-simple-ioc-example/" title="Spring.Net simple IoC example">Spring.Net simple IoC example (0)</a></li>
<li><a href="http://www.depanca.net/2008/09/springnet/" title="Spring.Net">Spring.Net (0)</a></li>
</ul>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.depanca.net%2F2008%2F11%2Fcairngorm-introduction%2F';
  addthis_title  = 'Cairngorm+%3A+Introduction';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.depanca.net/2008/11/cairngorm-introduction/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C# simple MD5 encryption</title>
		<link>http://www.depanca.net/2008/10/c-simple-md5-encryption/</link>
		<comments>http://www.depanca.net/2008/10/c-simple-md5-encryption/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 07:18:26 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[encryption]]></category>

		<category><![CDATA[factory]]></category>

		<category><![CDATA[md5]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[password]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=81</guid>
		<description><![CDATA[This article show you an easy way about how to create MD5 encryption in C#.]]></description>
			<content:encoded><![CDATA[<p>Now this is the easiest way to MD5 password :</p>
<div class="geshi no csharp">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Collections</span>.<span class="me1">Generic</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Text</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Security</span>.<span class="me1">Cryptography</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">namespace</span> Net.<span class="me1">MedSo</span>.<span class="me1">Mooci</span>.<span class="me1">Security</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> MD5Encryption <span class="sy0">:</span> IEncryption</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">static</span> MD5Encryption md5Encryption;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Factory pattern to return only a single </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// instance of MD5Encryption in the application</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> MD5Encryption GetInstance<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>md5Encryption <span class="sy0">==</span> <span class="kw1">null</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw3">new</span> MD5Encryption<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> md5Encryption;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Default constructor</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> MD5Encryption<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Return the encrypted string</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> GetEncryptedString<span class="br0">&#40;</span><span class="kw4">string</span> strToEncrypt<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MD5CryptoServiceProvider provider <span class="sy0">=</span> <span class="kw3">new</span> MD5CryptoServiceProvider<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">byte</span><span class="br0">&#91;</span><span class="br0">&#93;</span> data <span class="sy0">=</span> Encoding.<span class="me1">ASCII</span>.<span class="me1">GetBytes</span><span class="br0">&#40;</span>strToEncrypt<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data <span class="sy0">=</span> provider.<span class="me1">ComputeHash</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> Encoding.<span class="me1">ASCII</span>.<span class="me1">GetString</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Hope this useful.<br />
Thank&#8217;s <img src='http://www.depanca.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/10/springnet-simple-ioc-example/" title="Spring.Net simple IoC example">Spring.Net simple IoC example (0)</a></li>
<li><a href="http://www.depanca.net/2008/09/springnet/" title="Spring.Net">Spring.Net (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/create-custom-country-combobox-control/" title="Create custom country ComboBox control">Create custom country ComboBox control (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/validation-form-integration-validation-block-tutorial-44/" title="Validation form integration - Validation block tutorial 4/4">Validation form integration - Validation block tutorial 4/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/write-the-validation-block-validation-block-tutorial-34/" title="Write the validation block - Validation block tutorial 3/4">Write the validation block - Validation block tutorial 3/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/a-little-introduction-of-microsoft-enterprise-library-validation-block/" title="A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4">A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/microsoft-enterprise-library-validation-block-tutorial-14/" title="Microsoft Enterprise Library - Validation block tutorial 1/4">Microsoft Enterprise Library - Validation block tutorial 1/4 (1)</a></li>
<li><a href="http://www.depanca.net/2008/04/get-country-list-from-windows-registry/" title="Get country list from windows registry">Get country list from windows registry (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/using-mysql-with-microsoft-enterprise-library-and-visual-studio-2008/" title="Using Microsoft Enterprise Library with MySql">Using Microsoft Enterprise Library with MySql (0)</a></li>
</ul>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.depanca.net%2F2008%2F10%2Fc-simple-md5-encryption%2F';
  addthis_title  = 'C%23+simple+MD5+encryption';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.depanca.net/2008/10/c-simple-md5-encryption/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Spring.Net simple IoC example</title>
		<link>http://www.depanca.net/2008/10/springnet-simple-ioc-example/</link>
		<comments>http://www.depanca.net/2008/10/springnet-simple-ioc-example/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 16:54:04 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[Spring.Net]]></category>

		<category><![CDATA[aop]]></category>

		<category><![CDATA[context]]></category>

		<category><![CDATA[DI]]></category>

		<category><![CDATA[Enterprise]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[IoC nunit]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[nhibernate]]></category>

		<category><![CDATA[Spring]]></category>

		<category><![CDATA[Spring.net]]></category>

		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=28</guid>
		<description><![CDATA[Here is another IoC example using Spring.Net similar to the Movie Finder example taken from Martin Fowler's article.
This example return a list of all employees that match the specified department and demonstrates how the Spring.Net IoC container can be used to supply an appropriate 

IEmployeeService implementation to an arbitrary EmployeeService instance.

Create new console application project called EmployeeFinder, and add the following references to use in this example.]]></description>
			<content:encoded><![CDATA[<p>Here is another IoC example using Spring.Net similar to the Movie Finder example taken from Martin Fowler&#8217;s article.<br />
This example return a list of all employees that match the specified department and demonstrates how the Spring.Net IoC container can be used to supply an appropriate IEmployeeService implementation to an arbitrary EmployeeService instance.</p>
<p>Create new console application project called EmployeeFinder, and add the following references to use in this example.</p>
<p>1. Common.Logging<br />
2. Common.Logging.Log4Net<br />
3. log4net<br />
4. Spring.Core<br />
5. System</p>
<p>Create Employee value object class.</p>
<div class="geshi no csharp">
<div class="head">Employee.cs</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw1">namespace</span> Net.<span class="me1">Depanca</span>.<span class="me1">EmployeeService</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> Employee</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">string</span> name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">string</span> department;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> Employee<span class="br0">&#40;</span><span class="kw4">string</span> name, <span class="kw4">string</span> department<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">name</span> <span class="sy0">=</span> name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">department</span> <span class="sy0">=</span> department;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Name <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span class="br0">&#123;</span> <span class="kw1">return</span> name; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set <span class="br0">&#123;</span> <span class="kw1">this</span>.<span class="me1">name</span> <span class="sy0">=</span> value; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Department <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span class="br0">&#123;</span> <span class="kw1">return</span> department; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set <span class="br0">&#123;</span> <span class="kw1">this</span>.<span class="me1">department</span> <span class="sy0">=</span> value; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Application entry point :</p>
<div class="geshi no csharp">
<div class="head">Program.cs</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Collections</span>.<span class="me1">Specialized</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Common.<span class="me1">Logging</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Common.<span class="me1">Logging</span>.<span class="me1">Log4Net</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Spring.<span class="me1">Context</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Spring.<span class="me1">Context</span>.<span class="me1">Support</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Spring.<span class="me1">Objects</span>.<span class="me1">Factory</span>.<span class="me1">Config</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Spring.<span class="me1">Objects</span>.<span class="me1">Factory</span>.<span class="me1">Support</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Spring.<span class="me1">Objects</span>.<span class="me1">Factory</span>.<span class="me1">Xml</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">namespace</span> Net.<span class="me1">Depanca</span>.<span class="me1">EmployeeService</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> Program</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">readonly</span> ILog LOG <span class="sy0">=</span> LogManager.<span class="me1">GetLogger</span><span class="br0">&#40;</span><span class="kw3">typeof</span><span class="br0">&#40;</span>Program<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>STAThread<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IApplicationContext ctx <span class="sy0">=</span> ContextRegistry.<span class="me1">GetContext</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EmployeeLister employeeLister <span class="sy0">=</span> <span class="br0">&#40;</span>EmployeeLister<span class="br0">&#41;</span>ctx.<span class="me1">GetObject</span><span class="br0">&#40;</span><span class="st0">&quot;MyEmployeeLister&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Employee<span class="br0">&#91;</span><span class="br0">&#93;</span> employees <span class="sy0">=</span> employeeLister.<span class="me1">EmployeeByDepartment</span><span class="br0">&#40;</span><span class="st0">&quot;Finance&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LOG.<span class="me1">Debug</span><span class="br0">&#40;</span><span class="st0">&quot;Searching for employee&#8230;.&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span>Employee employee <span class="kw1">in</span> employees<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LOG.<span class="me1">Debug</span><span class="br0">&#40;</span><span class="kw4">string</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;Employee name = {0}, Department = {1}&quot;</span>, employee.<span class="me1">Name</span>, employee.<span class="me1">Department</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LOG.<span class="me1">Debug</span><span class="br0">&#40;</span><span class="st0">&quot;Employee service done&#8230;.&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">catch</span><span class="br0">&#40;</span>Exception e<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LOG.<span class="me1">Debug</span><span class="br0">&#40;</span><span class="st0">&quot;Employee services is broken&#8230;.&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">finally</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot; - Press return to exit! - &quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.<span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Open the App.config file then fill it with the code bellow</p>
<div class="geshi no csharp">
<div class="head">App.config</div>
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;?</span>xml version<span class="sy0">=</span><span class="st0">&quot;1.0&quot;</span> encoding<span class="sy0">=</span><span class="st0">&quot;utf-8&quot;</span> <span class="sy0">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>configuration<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;</span>configSections<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>sectionGroup name<span class="sy0">=</span><span class="st0">&quot;common&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>section name<span class="sy0">=</span><span class="st0">&quot;logging&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;Common.Logging.ConfigurationSectionHandler, Common.Logging&quot;</span><span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>sectionGroup<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>sectionGroup name<span class="sy0">=</span><span class="st0">&quot;spring&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>section name<span class="sy0">=</span><span class="st0">&quot;context&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;Spring.Context.Support.ContextHandler, Spring.Core&quot;</span><span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>section name<span class="sy0">=</span><span class="st0">&quot;objects&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;Spring.Context.Support.DefaultSectionHandler, Spring.Core&quot;</span><span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>sectionGroup<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>section name<span class="sy0">=</span><span class="st0">&quot;log4net&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;log4net.Config.Log4NetConfigurationSectionHandler, log4net&quot;</span><span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;/</span>configSections<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;</span>common<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>logging<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>factoryAdapter type<span class="sy0">=</span><span class="st0">&quot;Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>arg key<span class="sy0">=</span><span class="st0">&quot;configType&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;INLINE&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>factoryAdapter<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>logging<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;/</span>common<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;</span>spring<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>context<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>resource uri<span class="sy0">=</span><span class="st0">&quot;config://spring/objects&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>context<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>objects xmlns<span class="sy0">=</span><span class="st0">&quot;http://www.springframework.net&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>description<span class="sy0">&gt;</span>An example that demonstrates simple IoC features.<span class="sy0">&lt;/</span>description<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span><span class="kw4">object</span> id<span class="sy0">=</span><span class="st0">&quot;MyEmployeeLister&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;Net.Depanca.EmployeeService.EmployeeLister, Net.Depanca.EmployeeService&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>property name<span class="sy0">=</span><span class="st0">&quot;EmployeeService&quot;</span> <span class="kw1">ref</span><span class="sy0">=</span><span class="st0">&quot;AnotherEmployeeFinder&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span><span class="kw4">object</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span><span class="kw4">object</span> id<span class="sy0">=</span><span class="st0">&quot;MyEmployeeFinder&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;Net.Depanca.EmployeeService.SimpleEmployeeFinder, Net.Depanca.EmployeeService&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span><span class="kw4">object</span> id<span class="sy0">=</span><span class="st0">&quot;AnotherEmployeeFinder&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;Net.Depanca.EmployeeService.ColonDelimiterEmployeeFinder, Net.Depanca.EmployeeService&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>constructor<span class="sy0">-</span>arg index<span class="sy0">=</span><span class="st0">&quot;0&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;employee.txt&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span><span class="kw4">object</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span><span class="kw4">object</span> type<span class="sy0">=</span><span class="st0">&quot;Spring.Objects.Factory.Attributes.RequiredAttributeObjectPostProcessor, Spring.Core&quot;</span><span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>objects<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;/</span>spring<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;</span>log4net<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>appender name<span class="sy0">=</span><span class="st0">&quot;ConsoleAppender&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;log4net.Appender.ConsoleAppender&quot;</span> <span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>layout type<span class="sy0">=</span><span class="st0">&quot;log4net.Layout.PatternLayout&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>conversionPattern value<span class="sy0">=</span><span class="st0">&quot;%-5level - %message%newline&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>layout<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>appender<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>root<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>level value<span class="sy0">=</span><span class="st0">&quot;DEBUG&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>appender<span class="sy0">-</span><span class="kw1">ref</span> <span class="kw1">ref</span><span class="sy0">=</span><span class="st0">&quot;ConsoleAppender&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>root<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>logger name<span class="sy0">=</span><span class="st0">&quot;Net.Depanca.EmployeeService&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>level value<span class="sy0">=</span><span class="st0">&quot;DEBUG&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>logger<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>logger name<span class="sy0">=</span><span class="st0">&quot;Spring&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>level value<span class="sy0">=</span><span class="st0">&quot;INFO&quot;</span> <span class="sy0">/&gt;</span> &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>logger<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;/</span>log4net<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>configuration<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>Now create the IEmployeeService interface</p>
<div class="geshi no csharp">
<div class="head">IEmployeeService.cs</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Collections</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">namespace</span> Net.<span class="me1">Depanca</span>.<span class="me1">EmployeeService</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">interface</span> IEmployeeService</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; IList FindAll<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Create the implementation class that will load the user information from file or from embeded resource in the application.</p>
<div class="geshi no csharp">
<div class="head">SimpleEmployeeFinder.cs</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Collections</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">namespace</span> Net.<span class="me1">Depanca</span>.<span class="me1">EmployeeService</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> SimpleEmployeeFinder <span class="sy0">:</span> IEmployeeService</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> ArrayList list <span class="sy0">=</span> <span class="kw3">new</span> ArrayList<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> SimpleEmployeeFinder<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; InitList<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">void</span> AddEmployee<span class="br0">&#40;</span>Employee employee<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list.<span class="me1">Add</span><span class="br0">&#40;</span>employee<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> IList FindAll<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw3">new</span> ArrayList<span class="br0">&#40;</span>list<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">void</span> InitList<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">list</span>.<span class="me1">Add</span><span class="br0">&#40;</span><span class="kw3">new</span> Employee<span class="br0">&#40;</span><span class="st0">&quot;obelix&quot;</span>, <span class="st0">&quot;Service&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Here is another IEmployeeService implementation that take the information from file.</p>
<div class="geshi no csharp">
<div class="head">ColonDelimiterEmployeeFinder.cs</div>
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Collections</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">IO</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">namespace</span> Net.<span class="me1">Depanca</span>.<span class="me1">EmployeeService</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> ColonDelimiterEmployeeFinder <span class="sy0">:</span> IEmployeeService</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">readonly</span> <span class="kw4">char</span><span class="br0">&#91;</span><span class="br0">&#93;</span> Delimiter <span class="sy0">=</span> <span class="kw3">new</span> <span class="kw4">char</span><span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#123;</span><span class="st0">&#39;:&#39;</span><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> FileInfo employeeFile;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> IList employees;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> ColonDelimiterEmployeeFinder<span class="br0">&#40;</span>FileInfo file<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EmployeeFile <span class="sy0">=</span> file;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> FileInfo EmployeeFile<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span class="br0">&#123;</span> <span class="kw1">return</span> employeeFile; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; employeeFile <span class="sy0">=</span> value;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>employeeFile <span class="sy0">!=</span> <span class="kw1">null</span> <span class="sy0">&amp;</span>amp;<span class="sy0">&amp;</span>amp; employeeFile.<span class="me1">Exists</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; InitList<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> IList FindAll<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> employees;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">void</span> InitList<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; employees <span class="sy0">=</span> <span class="kw3">new</span> ArrayList<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">using</span><span class="br0">&#40;</span>StreamReader reader <span class="sy0">=</span> EmployeeFile.<span class="me1">OpenText</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> line <span class="sy0">=</span> <span class="kw1">null</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="br0">&#40;</span>line <span class="sy0">=</span> reader.<span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="kw1">null</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> tuple <span class="sy0">=</span> line.<span class="me1">Split</span><span class="br0">&#40;</span>Delimiter<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Employee employee <span class="sy0">=</span> <span class="kw3">new</span> Employee<span class="br0">&#40;</span>tuple<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, tuple<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; employees.<span class="me1">Add</span><span class="br0">&#40;</span>employee<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<div class="geshi no csharp">
<div class="head">EmployeeLister.cs</div>
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Collections</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> Spring.<span class="me1">Objects</span>.<span class="me1">Factory</span>.<span class="me1">Attributes</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">namespace</span> Net.<span class="me1">Depanca</span>.<span class="me1">EmployeeService</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">class</span> EmployeeLister</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> IEmployeeService employeeService;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> EmployeeLister<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>Required<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> IEmployeeService EmployeeService <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get <span class="br0">&#123;</span> <span class="kw1">return</span> employeeService; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set <span class="br0">&#123;</span> employeeService <span class="sy0">=</span> value; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> Employee<span class="br0">&#91;</span><span class="br0">&#93;</span> EmployeeByDepartment<span class="br0">&#40;</span><span class="kw4">string</span> department<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IList allList <span class="sy0">=</span> employeeService.<span class="me1">FindAll</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IList employees <span class="sy0">=</span> <span class="kw3">new</span> ArrayList<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span>Employee employee <span class="kw1">in</span> allList<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="br0">&#40;</span>employee.<span class="me1">Department</span><span class="br0">&#41;</span>.<span class="me1">Equals</span><span class="br0">&#40;</span>department<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; employees.<span class="me1">Add</span><span class="br0">&#40;</span>employee<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="br0">&#40;</span>Employee<span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>ArrayList.<span class="me1">Adapter</span><span class="br0">&#40;</span>employees<span class="br0">&#41;</span>.<span class="me1">ToArray</span><span class="br0">&#40;</span><span class="kw3">typeof</span><span class="br0">&#40;</span>Employee<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Create employee.txt file used by ColonDelimiterEmployeeFinder.cs to find the related employee.</p>
<div class="geshi no csharp">
<div class="head">employee.txt</div>
<ol>
<li class="li1">
<div class="de1">Patric<span class="sy0">:</span>Finance</div>
</li>
<li class="li1">
<div class="de1">Spongebob<span class="sy0">:</span>Finance</div>
</li>
<li class="li1">
<div class="de1">Asterix<span class="sy0">:</span>service</div>
</li>
<li class="li1">
<div class="de1">Obelix<span class="sy0">:</span>service</div>
</li>
</ol>
</div>
<p>Now to test the IoC feature.<br />
Run the application. You&#8217;ll get a result similar to the figure bellow.</p>
<p><img src="http://farm4.static.flickr.com/3014/2962272799_eb72a3cdd9.jpg" alt="Result using ColonDelimiterEmployeeFinder" /></p>
<p>change the ref value &#8220;AnotherEmployeeFinder&#8221; in the App.config file to &#8220;MyEmployeeFinder&#8221;. Then run the application. You&#8217;ll get the following result in your window. </p>
<p><img src="http://farm4.static.flickr.com/3057/2963276794_06f25e822b.jpg" alt="Result using SimpleEmployeeFinder" /></p>
<p>You see from the above result. The 1st result take the employee data from the employee.txt file. And the 2nd result using the hardcoded data in the SimpleEmployeeFinder.cs.</p>
<p><a href="http://www.mediafire.com/?5twwmw4to4z" target="_blank">Download example</a></p>
<p>&nbsp;</p>
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/09/springnet/" title="Spring.Net">Spring.Net (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/validation-form-integration-validation-block-tutorial-44/" title="Validation form integration - Validation block tutorial 4/4">Validation form integration - Validation block tutorial 4/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/write-the-validation-block-validation-block-tutorial-34/" title="Write the validation block - Validation block tutorial 3/4">Write the validation block - Validation block tutorial 3/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/a-little-introduction-of-microsoft-enterprise-library-validation-block/" title="A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4">A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/microsoft-enterprise-library-validation-block-tutorial-14/" title="Microsoft Enterprise Library - Validation block tutorial 1/4">Microsoft Enterprise Library - Validation block tutorial 1/4 (1)</a></li>
<li><a href="http://www.depanca.net/2008/04/create-custom-country-combobox-control/" title="Create custom country ComboBox control">Create custom country ComboBox control (0)</a></li>
<li><a href="http://www.depanca.net/2008/10/c-simple-md5-encryption/" title="C# simple MD5 encryption ">C# simple MD5 encryption  (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/get-country-list-from-windows-registry/" title="Get country list from windows registry">Get country list from windows registry (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/using-mysql-with-microsoft-enterprise-library-and-visual-studio-2008/" title="Using Microsoft Enterprise Library with MySql">Using Microsoft Enterprise Library with MySql (0)</a></li>
<li><a href="http://www.depanca.net/2008/11/cairngorm-introduction/" title="Cairngorm : Introduction">Cairngorm : Introduction (0)</a></li>
</ul>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.depanca.net%2F2008%2F10%2Fspringnet-simple-ioc-example%2F';
  addthis_title  = 'Spring.Net+simple+IoC+example';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.depanca.net/2008/10/springnet-simple-ioc-example/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Spring.Net</title>
		<link>http://www.depanca.net/2008/09/springnet/</link>
		<comments>http://www.depanca.net/2008/09/springnet/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 01:02:09 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[Spring.Net]]></category>

		<category><![CDATA[aop]]></category>

		<category><![CDATA[context]]></category>

		<category><![CDATA[DI]]></category>

		<category><![CDATA[Enterprise]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[IoC nunit]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[nhibernate]]></category>

		<category><![CDATA[Spring]]></category>

		<category><![CDATA[Spring.net]]></category>

		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=21</guid>
		<description><![CDATA[Spring.Net is an application framework that provides comprehensive infrastructural support for developing enterprise .Net application (taken from Spring.Net documentation). Spring.Net is based from Java version of Spring framework that widely known as very useful application framework to develop an enterprise application using Java.
Spring.Net contain a lot of feature and organized into modules shown bellow.


Spring.Core module [...]]]></description>
			<content:encoded><![CDATA[<p>Spring.Net is an application framework that provides comprehensive infrastructural support for developing enterprise .Net application<em> <span style="color: #808080;">(taken from Spring.Net documentation)</span></em>. Spring.Net is based from Java version of Spring framework that widely known as very useful application framework to develop an enterprise application using Java.</p>
<p>Spring.Net contain a lot of feature and organized into modules shown bellow.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3062/2899809677_181c20896a.jpg" alt="Spring.Net Modules" width="296" height="369" /></p>
<ol>
<li>Spring.Core module is the most fundamental module.</li>
<li>Spring.AOP used to perform Aspect-Oriented Programming (AOP). For more information about AOP in .Net, refer to Spring.Net documentation (<a title="Spring.Net AOP" href="http://www.springframework.net/doc/reference/html/aop.html#aop-introduction-defn" target="_blank"><em>Chapter 9. Aspect Oriented Programming with Spring.NET</em></a>)</li>
<li>Spring.Data used to perform data access functionality in ADO.NET and also to perform declarative transaction management.</li>
<li>Spring.Data.NHibernate used to integrate NHibernate with Spring.Net to archive efficiency and consistency while doing database operation. For more information about NHibernate refer to NHibernate website <em><a title="NHibernate website" href="http://www.hibernate.org/343.html" target="_blank">www.hibernate.org</a></em></li>
<li>Spring.Web used to create effective ASP.NET website.</li>
<li>Spring.Web.Extensions also used to create an effective ASP.NET website.</li>
<li>Spring.Services. Use this module to adapt plain .NET objects so they can be used with a specific distributed communication technology, such as .NET Remoting, Enterprise Services, and ASMX Web Services.</li>
<li>Spring.Testing.NUnit is used to perform integration testing with NUnit. (<a title="NUnit home page" href="http://www.nunit.org/index.php" target="_blank"><em>www.nunit.org</em></a>)</li>
</ol>
<p>From the documentation it&#8217;s said that it&#8217;s important to note that the spring framework does not<br />
force you to use everything within it; it&#8217;s not an all-or-othing solution.<br />
While the Spring framework does not force any particular application architecure it encourages the use of a<br />
well layered application architecture with distinct tiers for the presentation, service, data access, and database.<br />
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/10/springnet-simple-ioc-example/" title="Spring.Net simple IoC example">Spring.Net simple IoC example (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/validation-form-integration-validation-block-tutorial-44/" title="Validation form integration - Validation block tutorial 4/4">Validation form integration - Validation block tutorial 4/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/write-the-validation-block-validation-block-tutorial-34/" title="Write the validation block - Validation block tutorial 3/4">Write the validation block - Validation block tutorial 3/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/a-little-introduction-of-microsoft-enterprise-library-validation-block/" title="A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4">A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/microsoft-enterprise-library-validation-block-tutorial-14/" title="Microsoft Enterprise Library - Validation block tutorial 1/4">Microsoft Enterprise Library - Validation block tutorial 1/4 (1)</a></li>
<li><a href="http://www.depanca.net/2008/04/create-custom-country-combobox-control/" title="Create custom country ComboBox control">Create custom country ComboBox control (0)</a></li>
<li><a href="http://www.depanca.net/2008/10/c-simple-md5-encryption/" title="C# simple MD5 encryption ">C# simple MD5 encryption  (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/get-country-list-from-windows-registry/" title="Get country list from windows registry">Get country list from windows registry (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/using-mysql-with-microsoft-enterprise-library-and-visual-studio-2008/" title="Using Microsoft Enterprise Library with MySql">Using Microsoft Enterprise Library with MySql (0)</a></li>
<li><a href="http://www.depanca.net/2008/11/cairngorm-introduction/" title="Cairngorm : Introduction">Cairngorm : Introduction (0)</a></li>
</ul>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.depanca.net%2F2008%2F09%2Fspringnet%2F';
  addthis_title  = 'Spring.Net';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.depanca.net/2008/09/springnet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Send e-mail using PHP Mailer</title>
		<link>http://www.depanca.net/2008/09/using-php-mail/</link>
		<comments>http://www.depanca.net/2008/09/using-php-mail/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 02:52:44 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[php]]></category>

		<category><![CDATA[mail]]></category>

		<category><![CDATA[mailer]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=20</guid>
		<description><![CDATA[This is an example to send e-mail from your PHP website.

1. Download the example code from here.
2. Extract to your server.
3. Call http://localhost/test/inputform.html in your browser.
4. Fill all necessary input form with your information and click submit.]]></description>
			<content:encoded><![CDATA[<p>This is an example to send e-mail from your PHP website.</p>
<p>1. Download the example code from <a title="Send e-mail using PHP mailer example" href="http://www.mediafire.com/?sharekey=877592b4b8d1d7f8d2db6fb9a8902bda" target="_blank">here</a>.<br />
2. Extract to your server.<br />
3. Call http://localhost/test/inputform.html in your browser.<br />
4. Fill all necessary input form with your information and click submit.<br />
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/08/how-to-run-xampp-server-from-cd-in-windows/" title="How to run XAMPP server from CD on Windows">How to run XAMPP server from CD on Windows (2)</a></li>
</ul>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.depanca.net%2F2008%2F09%2Fusing-php-mail%2F';
  addthis_title  = 'Send+e-mail+using+PHP+Mailer';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.depanca.net/2008/09/using-php-mail/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to run XAMPP server from CD on Windows</title>
		<link>http://www.depanca.net/2008/08/how-to-run-xampp-server-from-cd-in-windows/</link>
		<comments>http://www.depanca.net/2008/08/how-to-run-xampp-server-from-cd-in-windows/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 06:50:02 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[xampp]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[autorun]]></category>

		<category><![CDATA[cd]]></category>

		<category><![CDATA[live]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=19</guid>
		<description><![CDATA[Hi, in this article I&#8217;ll show you how to run your PHP websites using XAMPP from CD.
If you are not familiar using XAMPP then you can read the documentation and installation guide from here.
First of all you need to download Ampstart, a small software to help you run your XAMPP server from CD.
Here is the [...]]]></description>
			<content:encoded><![CDATA[<p>Hi, in this article I&#8217;ll show you how to run your PHP websites using XAMPP from CD.</p>
<p>If you are not familiar using XAMPP then you can read the documentation and installation guide from <a href="http://www.apachefriends.org/en/xampp.html" target="_blank">here</a>.<br />
First of all you need to download <a title="Ampstart" href="http://ampstart.ampstart.com/" target="_blank">Ampstart</a>, a small software to help you run your XAMPP server from CD.</p>
<p>Here is the complete steps :</p>
<p>1. Download and copy AMPstart in your XAMPP folder.</p>
<p>you can simply download the AMPstart from this url : <a href="http://ampstart.ampstart.com/" target="_blank">http://ampstart.ampstart.com/</a></p>
<p>2. Create AMPstart.ini file in the root of your XAMPP installation folder, edit and fill it with the following information.</p>
<p><strong>[MYSQL]<br />
folder=c:\mysql\data<br />
overwrite=1</strong></p>
<p><strong>[WEBSITE]<br />
website=htdocs\[your website]</strong></p>
<p>This code set your mysql/data folder to your c drive in your local hard drive.</p>
<p>3. Create autorun.bat file in the same directory as above.<br />
<strong> @echo off<br />
echo initializing&#8230;.<br />
echo please wait while the application is initializing&#8230;.<br />
mkdir c:\mysql\data<br />
xcopy \mysql\data c:\mysql\data /E<br />
echo running the application&#8230;<br />
start AMPstart.exe</strong></p>
<p>By creating autorun.bat file, you will automatically copy your mysql/data folder to c:\mysql\data. <strong>Change this location if you already have mysql folder in your drive c in your local computer!</strong>.</p>
<p>4. Now create the autorun.inf</p>
<p><strong>[autorun]<br />
open=autorun.bat<br />
icon=any_icon_file_for_your_drive<br />
Label=server</strong></p>
<p>5. Copy all files in your XAMPP installation directory to CD. So your file structure will looks like :</p>
<p>[Your CD Drive]<br />
- AMPstart.exe<br />
- autorun.inf<br />
- autorun.bat<br />
- AMPstart.ini<br />
- [Other files on your XAMPP installation folder]</p>
<p>Hope this useful, Thank you <img src='http://www.depanca.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/09/using-php-mail/" title="Send e-mail using PHP Mailer ">Send e-mail using PHP Mailer  (0)</a></li>
</ul>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.depanca.net%2F2008%2F08%2Fhow-to-run-xampp-server-from-cd-in-windows%2F';
  addthis_title  = 'How+to+run+XAMPP+server+from+CD+on+Windows';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.depanca.net/2008/08/how-to-run-xampp-server-from-cd-in-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Validation form integration - Validation block tutorial 4/4</title>
		<link>http://www.depanca.net/2008/04/validation-form-integration-validation-block-tutorial-44/</link>
		<comments>http://www.depanca.net/2008/04/validation-form-integration-validation-block-tutorial-44/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 07:35:19 +0000</pubDate>
		<dc:creator>De'</dc:creator>
		
		<category><![CDATA[.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[Enterprise library]]></category>

		<category><![CDATA[Validation]]></category>

		<category><![CDATA[Enterprise]]></category>

		<category><![CDATA[Library]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.depanca.net/?p=16</guid>
		<description><![CDATA[And now this is the last part of the tutorial. In this section I would like to show you how to put your Validation code into the windows form application. When you finish to combine your validation code and your windows form, the windows form will perform automatic validation when user type on your input [...]]]></description>
			<content:encoded><![CDATA[<p>And now this is the last part of the tutorial. In this section I would like to show you how to put your Validation code into the windows form application. When you finish to combine your validation code and your windows form, the windows form will perform automatic validation when user type on your input form.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3099/2606534336_09a76fbd51.jpg?v=0" alt="Validation example" /></p>
<p>I will show you how to do this?<br />
Using the previous example about validating User and Address object, now we create the integration form for those object.<br />
1. You need to include the <strong>Validation.Integration.WinForms</strong> project to your project. In your Microsoft visual studio right click in your solution then choose <strong>add &gt; existing project</strong> then Point to your Enterprise Library home &gt; App Blocks &gt; Src &gt; Validation &gt; Integration &gt; WinForms. Choose the <strong>Validation.Integration.WinForms.csproj</strong> then click open.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3217/2606786190_18a5e448d5.jpg?v=0" alt="Add validation windows form integration project" /></p>
<p>You can see now in your toolbox a new tab called <strong>Validation.Integration.WinForms Components</strong>.Add the <strong>ValidationProvider</strong> control in your form.<br />
After you do this, right click your project and choose add reference. On the Add reference dialog choose project tab then add the <strong>ValidationIntegrationWinForms </strong>in the list provided.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3171/2606811762_04a8463ed8.jpg?v=0" alt="Validation provider control" width="351" height="200" /></p>
<p style="text-align: left;">Next, you have to add another control called ErrorProvider into your windows form.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3102/2606799996_8ce8e1bf96.jpg?v=0" alt="Error provider" width="303" height="196" /></p>
<p>2. The second step is about to configure each control that you have been add to your windows form. Choose the ValidationProvider control in your form then open the properties window. Change the default name of ValidationProvider control to your desire name. Then choose ErrorProvider properties to the one in your form. After that fill the SourceTypeName with the full name of your class to validate followed by &#8216;,&#8217; and your Project name. the complete configuration of ValidationProvider will look like something like this.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3199/2606585271_46068687aa.jpg?v=0" alt="Validation provider configuration" width="500" height="250" /></p>
<p style="text-align: left;">3. Create your input field based on the properties on the User and Address class. Then configure each of the field properties. Bellow is the properties that have to be configured to use the ValidationProvider.<br />
- PerformValidation on &lt;Your ValidationProvider name&gt;, set to be true.<br />
- SourcePropertyName on &lt;Your ValidationProvider name&gt;, fill it with one of the properties in your Object to validate.<br />
- ValidatedProperty on  &lt;Your ValidationProvider name&gt;, fill it with field property that hold the value of it.</p>
<p style="text-align: left;">Here is the picture about how to do it.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3196/2606683151_e5c42af146.jpg?v=0" alt="Set field properties" width="500" height="337" /></p>
<p style="text-align: center;">
<p style="text-align: left;">After you finish to configure each field, run the application and doing some test case.</p>
<p style="text-align: left;">Click <a href="http://www.mediafire.com/?mzx9dmwnx2j" target="_blank">here </a>to download the complete code of this example.</p>
<p style="text-align: left;">Sometimes there is an error when you try to validate using PropertyComparisonValidator. It&#8217;s show a message &#8220;ValidationProvider.GetExistingValidatedControlItem throws NullReferenceException&#8221;. Read <a href="http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=8414">this </a>discussion in the forum about how to fix it. </p>
<p><a title="Previous page" href="http://www.depanca.net/2008/04/write-the-validation-block-validation-block-tutorial-34/" target="_self">&lt;&lt; back</a> &nbsp; &nbsp; </p>
<p>&nbsp;</p>
<h3>Related Articles</h3>
<ul class="related_post">
<li><a href="http://www.depanca.net/2008/04/write-the-validation-block-validation-block-tutorial-34/" title="Write the validation block - Validation block tutorial 3/4">Write the validation block - Validation block tutorial 3/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/a-little-introduction-of-microsoft-enterprise-library-validation-block/" title="A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4">A little introduction of Microsoft Enterprise Library Validation block - Validation block tutorial 2/4 (0)</a></li>
<li><a href="http://www.depanca.net/2008/04/microsoft-enterprise-library-validation-block-tutorial-14/" title="Microsoft Enterprise Library - Validation block tutorial 1/4">Microsoft Enterprise Library - Validation block tutorial 1/4 (1)</a></li>
<li><a href="htt