<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Dheeman Dutta</title>
        <link>http://geekswithblogs.net/DheemanDutta/Default.aspx</link>
        <description>Just Another Blog.....</description>
        <language>en-US</language>
        <copyright>Dheeman Dutta</copyright>
        <managingEditor>dheemandutta@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Dheeman Dutta</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/DheemanDutta/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>WCF Service Method Overloading</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2010/01/27/wcf-service-method-overloading.aspx</link>
            <description>&lt;p&gt;You all may have found this one out even earlier, but I found this out just a few days before. A WCF Service doe not allow normal method overloading , which is supported by .NET. It throws InvalidOPerationException.&lt;/p&gt;
&lt;p&gt;As for the reasons to why this happens is becasue WSDL is not a object orinted language and does not support these features of OOP. However overloading can be performed in WCF service in a roundabout way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ServiceContract]&lt;br /&gt;
interface ICalculator&lt;br /&gt;
{&lt;br /&gt;
 [OperationContract(Name="AddIntegers")]&lt;br /&gt;
 int Add(int a,int b)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; [OperationContract(Name="AddDouble")]&lt;br /&gt;
 double Add(double a,double b)&lt;br /&gt;
}&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Name property in the OperationContract attribute enables the WSDL to make the difference between to same named methods here.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137653"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137653" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/137653.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2010/01/27/wcf-service-method-overloading.aspx</guid>
            <pubDate>Wed, 27 Jan 2010 09:09:35 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/137653.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2010/01/27/wcf-service-method-overloading.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/137653.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/137653.aspx</trackback:ping>
        </item>
        <item>
            <title>I Am Back</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2010/01/27/i-am-back.aspx</link>
            <description>&lt;p&gt;Could post for a long time becuase of some personal problems... Sorry for that ..... Hoping to make some new posts pretty soon.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137651"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137651" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/137651.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2010/01/27/i-am-back.aspx</guid>
            <pubDate>Wed, 27 Jan 2010 08:21:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/137651.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2010/01/27/i-am-back.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/137651.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/137651.aspx</trackback:ping>
        </item>
        <item>
            <title>Usng List.Exists&lt;&gt;</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2009/05/17/usng-list.exists.aspx</link>
            <description>&lt;p&gt;List&lt;int&gt;&lt;/int&gt; ss = new List&lt;int&gt;&lt;/int&gt;(); &lt;/p&gt;
&lt;p&gt;ss.Add(1); &lt;/p&gt;
&lt;p&gt;ss.Add(3); &lt;/p&gt;
&lt;p&gt;ss.Add(5); &lt;/p&gt;
&lt;p&gt;ss.ForEach(delegate(int x) &lt;/p&gt;
&lt;p&gt;{ if (x &amp;lt; 4) Console.WriteLine(x); });&lt;/p&gt;
&lt;p&gt; Console.ReadKey(); &lt;/p&gt;
&lt;p&gt;Also checked out that this is probably the best in compared to Foreach and For loops &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132187"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132187" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/132187.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2009/05/17/usng-list.exists.aspx</guid>
            <pubDate>Sun, 17 May 2009 17:09:50 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/132187.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2009/05/17/usng-list.exists.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/132187.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/132187.aspx</trackback:ping>
        </item>
        <item>
            <title>Eror while loading assemblies dynamically</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2009/01/07/eror-while-loading-assemblies-dynamically.aspx</link>
            <description>I was trying to load PropertyInfo object using Reflection , when I came accross a very strange thing. 
I was loading the Assembly using
1) Asembly.LoadFile() and then
2) did a GetTypes()

Unfortunately it was throwing an exception that it was unable to load all properties while performing the GetTypes(). However the Assembly.Load() was performing as expected. Digging into the details of the root cause of exception I found out that the assembly that I was trying to load dynamically was dependent on other types, which it could not load. 

I found a roundabout in working with this

I did a 
1) Asembly.LoadFrom() and then
2) did a GetTypes()

and it worked..

Still trying to figure out why the previous one did not work. Any ideas???

Cheers

            



&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128478"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128478" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/128478.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2009/01/07/eror-while-loading-assemblies-dynamically.aspx</guid>
            <pubDate>Wed, 07 Jan 2009 15:35:26 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/128478.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2009/01/07/eror-while-loading-assemblies-dynamically.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/128478.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/128478.aspx</trackback:ping>
        </item>
        <item>
            <title>Unity Application Block</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2008/12/03/unity-application-block.aspx</link>
            <description>I started working with the Unity Application Block just the other day. It is the Dependency Injection Block that has recently been introduced in the Enterprise Library Block 4.1. Personally speaking I found it much easier to understand and work with compared to the other standard DI tools like Castle Windsor and Structure map. &lt;br /&gt;
&lt;br /&gt;
Some very useful links regarding Unity are :&lt;br /&gt;
&lt;br /&gt;
http://www.codeplex.com/unity&lt;br /&gt;
&lt;br /&gt;
Also you can check Scot ha's blog , whci contains a few number of podcasts which were very helpful to me.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cheers...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127570"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127570" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/127570.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2008/12/03/unity-application-block.aspx</guid>
            <pubDate>Wed, 03 Dec 2008 16:42:22 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/127570.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2008/12/03/unity-application-block.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/127570.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/127570.aspx</trackback:ping>
        </item>
        <item>
            <title>Adding Custom Search Conditions in your List.Exists() method.</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2008/07/16/adding-custom-search-conditions-in-your-list.exists-method.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;In one of my previous article (October 2006) on this topic , I’ve shown how to use the Exists() method of a list in order to find an object in the list that matched a certain value. However there I also mentioned about one disadvantage&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;            “&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;the value to be checked needs to be more or less predetermined (hardcoded) as the delegate method does not take any other parameters.”&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Therefor it meant that an Exists method can only find an object in a lIst , if it contained on perdetermined serach condition, it will however fail to find if the search condition changes . And I found no good way of getting around this limitiaton then. Here I’ll be presenting a way to perform a cutomised find, such that the search criteria need not be hard-coded. (ref method CheckIfExists() in the October2006 article) . If you have ever used any method that a .net generic list exposes and has a Predicate&amp;lt;&amp;gt; as a parameter (for e.g. Exists()), the above mentioned disadvantage is there. The predictate is a delegate declared in the .Net framework. Because of this this delegate , your methods need to match the signature of this delegate in order to be used in a method like Exists(), which takes . As a result you won’t be able to add any other parameter to your method , like customsearchCondition in your method as this voilates the signature of the Predicate&amp;lt;&amp;gt; delegate. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So I first overloaded the Predicate&amp;lt;&amp;gt; delegate to have my own Signature&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;delegate&lt;/span&gt; &lt;span style="COLOR: blue"&gt;bool&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Predicate&lt;/span&gt;&amp;lt;T&amp;gt;(T obj, &lt;span style="COLOR: teal"&gt;string&lt;/span&gt; customsearchCondition);&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Once this is done , I created a class of my own , ListBase&amp;lt;T&amp;gt; which inherits from List&amp;lt;T&amp;gt; , so that I can use all the existing facilitis that a .net List&amp;lt;&amp;gt; provides without adding any more code.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;ListBase&lt;/span&gt;&amp;lt;T&amp;gt;:&lt;span style="COLOR: teal"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;Now I add the following method to my class&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&lt;font size="2"&gt;
            &lt;p&gt; &lt;/p&gt;
            &lt;p&gt;&lt;font face="Arial"&gt; private bool TryFindFirstWhere&amp;lt;T&amp;gt;(IEnumerable&amp;lt;T&amp;gt; collection, Predicate&amp;lt;T&amp;gt; predicate, out T foundItem, RequestId matchVal)&lt;br /&gt;
                    {&lt;br /&gt;
                        if (collection == null)&lt;br /&gt;
                            throw new ArgumentNullException("collection");&lt;br /&gt;
                        if (predicate == null)&lt;br /&gt;
                            throw new ArgumentNullException("predicate");&lt;/font&gt;&lt;/p&gt;
            &lt;p&gt;&lt;font face="Arial"&gt;            foreach (T item in collection)&lt;br /&gt;
                        {&lt;br /&gt;
                            if (predicate(item,matchVal))&lt;br /&gt;
                            {&lt;br /&gt;
                                foundItem = item;&lt;br /&gt;
                                return true;&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;/font&gt;&lt;/p&gt;
            &lt;p&gt;&lt;font face="Arial"&gt;            // didn't find any item that matches.&lt;br /&gt;
                        foundItem = default(T);&lt;br /&gt;
                        return false;&lt;br /&gt;
                    }&lt;/font&gt;&lt;/p&gt;
            &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;This method ensures that I have to pass my search condition along with the Predicate&amp;lt;&amp;gt; and returns a boolean value if the object is found in the list. In order to actually get the object from the list, I also add one out parameter, which will assigned the object once it is found. If the object is not found, I’m returning the default value of the data type.&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;Any better suggestions would always be appreciated...........&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;Cheers&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123845"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123845" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/123845.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2008/07/16/adding-custom-search-conditions-in-your-list.exists-method.aspx</guid>
            <pubDate>Wed, 16 Jul 2008 15:26:34 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/123845.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2008/07/16/adding-custom-search-conditions-in-your-list.exists-method.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/123845.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/123845.aspx</trackback:ping>
        </item>
        <item>
            <title>SkyDrive</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2008/01/27/skydrive.aspx</link>
            <description>&lt;p&gt;Windows Live has  a great feature integrated to itself, known as SkyDrive, where you can manage files and keep them on the web. The max size is 1 GB . But it's really a great feature..&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118985"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118985" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/118985.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2008/01/27/skydrive.aspx</guid>
            <pubDate>Sun, 27 Jan 2008 13:36:25 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/118985.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2008/01/27/skydrive.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/118985.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/118985.aspx</trackback:ping>
        </item>
        <item>
            <title>Design patterns - Part 4-Builder Pattern in .NET</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2008/01/01/design-patterns---part-4-builder-pattern-in-.net.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;Object creation as you might remember was done using the Factory Pattern (as mentioned in an blog previously “&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a title="Click To View Entry." href="http://geekswithblogs.net/DheemanDutta/archive/2007/05/21/Factory-Pattern-in-.NET.aspx"&gt;&lt;span style="BACKGROUND: white"&gt;&lt;font color="#000080"&gt;Design patterns - Part 1-Factory Pattern in .NET&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;”. &lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;But not always creating involves a single process. Sometimes it takes more than one processes to create a full product, and then creation of these separate objects in a particular way needs the Builder pattern. But Builder pattern will not be suffice in the scenario, that I’m going to present now. A factory along with a builder will do the trick for us.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Let us consider , we are making a Computer.. We need a keyboard, mouse also to give the computer a full sense. So our creation process is not limited to making only the computer(read CPU ) itself, you also need to create the Mouse,Keyboard and many other accessories. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Lets assume we have classes for Mouse,Keyboard etc.. like as follows….&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: #e0dfe3; PADDING-RIGHT: 5.4pt; BORDER-TOP: #e0dfe3; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #e0dfe3; PADDING-TOP: 0in; BORDER-BOTTOM: #e0dfe3; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;KeyBoard&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; KeyBoard() { &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"This is a good Keyboard"&lt;/span&gt;); }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; KeyBoard(&lt;span style="COLOR: blue"&gt;bool&lt;/span&gt; isremote) { &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (isremote) { &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"This is a remote Keyboard "&lt;/span&gt;); } &lt;span style="COLOR: blue"&gt;else&lt;/span&gt; { &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"Good Silver Keyboard"&lt;/span&gt;); } }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: #e0dfe3; PADDING-RIGHT: 5.4pt; BORDER-TOP: #e0dfe3; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #e0dfe3; PADDING-TOP: 0in; BORDER-BOTTOM: #e0dfe3; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Mouse&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; Mouse() { &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"This is a optical mouse"&lt;/span&gt;); }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;WebCam&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; WebCam() { &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"This is a 2 MP Camera"&lt;/span&gt;); }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Just like the “&lt;strong&gt;Factory Pattern&lt;/strong&gt;” (ref. &lt;strong&gt;&lt;a title="Click To View Entry." href="http://geekswithblogs.net/DheemanDutta/archive/2007/05/21/Factory-Pattern-in-.NET.aspx"&gt;&lt;span style="BACKGROUND: white"&gt;&lt;font color="#000080"&gt;Design patterns - Part 1-Factory Pattern in .NET&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;) we will still be having an abstract class (Computer class here) . The only addition is that ,because a full computer needs to have a “&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;KeyBoard&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;” and “&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;Mouse&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;” , the Computer class here has two memebers for these corresponding objects.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The code follows&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;abstract&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: teal"&gt;KeyBoard&lt;/span&gt; keyBoard;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: teal"&gt;Mouse&lt;/span&gt; mouse;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: teal"&gt;KeyBoard&lt;/span&gt; KeyBoard&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; keyBoard; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { keyBoard = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Mouse&lt;/span&gt; Mouse&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; mouse; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { mouse = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;      &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;      &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now just as in the the “&lt;strong&gt;Factory Pattern&lt;/strong&gt;” (ref. &lt;strong&gt;&lt;a title="Click To View Entry." href="http://geekswithblogs.net/DheemanDutta/archive/2007/05/21/Factory-Pattern-in-.NET.aspx"&gt;&lt;span style="BACKGROUND: white"&gt;&lt;font color="#000080"&gt;Design patterns - Part 1-Factory Pattern in .NET&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;) we will create the individual computers. In our sample we’re creating three type sof computers..lets see&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Brand1Computer&lt;/span&gt;:&lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Brand2Computer&lt;/span&gt;:&lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;CustomAssembledComputer&lt;/span&gt;:&lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: teal"&gt;WebCam&lt;/span&gt; webCam;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: teal"&gt;WebCam&lt;/span&gt; WebCamera&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; webCam; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { webCam = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;; }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;      &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now take a close look in the abobe three classes . While the first two just inheris the abstract class, the last one adds another functionality to itself, i.e. the WebCamera and thus have a property for that.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now we need to create the builder, in order to create the whole assembly.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;abstract&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;abstract&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; CreateFullComputer(&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; computer);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The Builder as you might see is an abstract class. The individual builder classes still needs to be put in place. In each of these individual classes we will create the whole assembly in the order we want.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Brand1ComputerBuilder&lt;/span&gt; : &lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;override&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; CreateFullComputer(&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; computer)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: teal"&gt;Brand1Computer&lt;/span&gt; brand1 = (&lt;span style="COLOR: teal"&gt;Brand1Computer&lt;/span&gt;)computer;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           brand1.KeyBoard = &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           brand1.Mouse = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Mouse&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Brand2ComputerBuilder&lt;/span&gt;:&lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;override&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; CreateFullComputer(&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; computer)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: teal"&gt;Brand2Computer&lt;/span&gt; brand2 = (&lt;span style="COLOR: teal"&gt;Brand2Computer&lt;/span&gt;)computer;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            brand2.KeyBoard = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;KeyBoard&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            brand2.Mouse = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Mouse&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;CustomAssembledComputerBuilder&lt;/span&gt;:&lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;override&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; CreateFullComputer(&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; computer)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: teal"&gt;CustomAssembledComputer&lt;/span&gt; customComp = (&lt;span style="COLOR: teal"&gt;CustomAssembledComputer&lt;/span&gt;)computer;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           customComp.KeyBoard = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;KeyBoard&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;true&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           customComp.Mouse = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Mouse&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           customComp.WebCamera = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;WebCam&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So we have our individual builders. Just take a closer look first at  “&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;Brand1ComputerBuilder&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;” where I have opted that this assembly will not have a mouse. “&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;Brand2ComputerBuilder&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;” however is a more general assembly in all respects. “&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;CustomAssembledComputerBuilder” &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;however , adds a webcamera to its accessories list during creation. So you might see that , what I mentioned during my first few lines , that a builder is more necessary when multiple creational steps are the present.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;We have not finished yet…. !! Where is the actual factory that creates the computer ( as in the &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;“&lt;strong&gt;Factory Pattern&lt;/strong&gt;” )&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;We will create that now..&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;enum&lt;/span&gt; &lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        BrandOne,&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        BrandTwo,&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        Custom&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;   &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;ComputerFactory&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt; _registered = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt; _loaded = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt; _builders = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; Register(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt; computerType,&lt;span style="COLOR: teal"&gt;Type&lt;/span&gt; type,&lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt; builder)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           _registered.Add(computerType, type);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           _builders.Add(computerType, builder);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; CreateComputer(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt; computerType)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (_loaded[computerType] == &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                  LoadComputer();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; computer = (&lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt;)_loaded[computerType];&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (_builders[computerType] != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               &lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt; builder = (&lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt;)_builders[computerType];&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               builder.CreateFullComputer(&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; computer);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; computer;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; LoadComputer()&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR: teal"&gt;DictionaryEntry&lt;/span&gt; obj &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; _registered)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               &lt;span style="COLOR: teal"&gt;Type&lt;/span&gt; type = (&lt;span style="COLOR: teal"&gt;Type&lt;/span&gt;)obj.Value;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               &lt;span style="COLOR: teal"&gt;ConstructorInfo&lt;/span&gt; cinfo = type.GetConstructor(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Type&lt;/span&gt;[] { });&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               _loaded.Add(obj.Key, (&lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt;)cinfo.Invoke(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: blue"&gt;object&lt;/span&gt;[] { }));&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;    }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If you take a close look in the factory class here and the factory class in the “&lt;strong&gt;Factory Pattern&lt;/strong&gt;” (ref. &lt;strong&gt;&lt;a title="Click To View Entry." href="http://geekswithblogs.net/DheemanDutta/archive/2007/05/21/Factory-Pattern-in-.NET.aspx"&gt;&lt;span style="BACKGROUND: white"&gt;&lt;font color="#000080"&gt;Design patterns - Part 1-Factory Pattern in .NET&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;) you will find a few subtle differences. Lets analyse them a bit…&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now we have a new Hashtable declared &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;          &lt;/span&gt;&lt;/div&gt;
&lt;div align="center"&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;Hashtable&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; _builders = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The Register method now takes in a new parameter along with the old parameters. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; Register(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt; computerType,&lt;span style="COLOR: teal"&gt;Type&lt;/span&gt; type,&lt;strong&gt;&lt;span style="COLOR: red"&gt;Builder builder&lt;/span&gt;&lt;/strong&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The builder is getting passed as a parameter now during registration. Let’s see how that helps. Within the “Register” method we have a new line &lt;/span&gt;&lt;/div&gt;
&lt;div align="center"&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;_builders.Add(computerType, builder);&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt; What this does is that, this maps the enum type with a corresponding builder object in the Hash table.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The “CreateComputer” method has also changed a bit. Along with the usual factory code we have the following code block added to it.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;if&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; (_builders[computerType] != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               &lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt; builder = (&lt;span style="COLOR: teal"&gt;Builder&lt;/span&gt;)_builders[computerType];&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;               builder.CreateFullComputer(&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; computer);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;           }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Therefore , unlike the Factory pattern, we now check the builders hashtable for null and actually load the corresponding builder from the _builders hashtable. And once we have this object we will call the “&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;CreateFullComputer” &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;method of the builder. This method takes in a computer and creates the full assembly , as mentooned in its builder and retuns the Computer object.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The “&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;LoadComputer” &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;method is still same as it was before.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now its time to actually create these objects and see&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;static&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;Main&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;[] args)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: teal"&gt;ComputerFactory&lt;/span&gt; cFactory = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;ComputerFactory&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            cFactory.Register(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt;.BrandOne, &lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR: teal"&gt;Brand1Computer&lt;/span&gt;), &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Brand1ComputerBuilder&lt;/span&gt;());&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            cFactory.Register(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt;.BrandTwo, &lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR: teal"&gt;Brand2Computer&lt;/span&gt;), &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Brand2ComputerBuilder&lt;/span&gt;());&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            cFactory.Register(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt;.Custom, &lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR: teal"&gt;CustomAssembledComputer&lt;/span&gt;), &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;CustomAssembledComputerBuilder&lt;/span&gt;());&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"Brand 1 :"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: teal"&gt;Computer&lt;/span&gt; computer = cFactory.CreateComputer(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt;.BrandOne);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"Brand 2 :"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            computer = cFactory.CreateComputer(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt;.BrandTwo);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: maroon"&gt;"Custom :"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            computer = cFactory.CreateComputer(&lt;span style="COLOR: teal"&gt;ComputerType&lt;/span&gt;.Custom);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.ReadKey();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The output is as follows&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Brand 1 :&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This is a optical mouse&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Brand 2 :&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This is a good Keyboard&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This is a optical mouse&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Custom :&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This is a remote Keyboard&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This is a optical mouse&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This is a 2 MP Camera&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118140"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118140" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/118140.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2008/01/01/design-patterns---part-4-builder-pattern-in-.net.aspx</guid>
            <pubDate>Tue, 01 Jan 2008 16:13:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/118140.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2008/01/01/design-patterns---part-4-builder-pattern-in-.net.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/118140.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/118140.aspx</trackback:ping>
        </item>
        <item>
            <title>Design patterns  - Part 3 - The Prototype Pattern</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2007/06/02/Design-patterns----Part-3---The-Prototype-Pattern.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;The Prototype pattern helps us in creating objects from existing ones. There can be any of the two following situations that may occur .&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;CASE 1:&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;Sometimes you may need to create an object of a certain class, but you do not have all the parameters that the constructor of that object need to create that object .&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;CASE 2:&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;You need to capture the present state of an object and create another object.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;In either of the two above cases , we can &lt;em&gt;&lt;u&gt;clone&lt;/u&gt;&lt;/em&gt; the  existing object to create the new one.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;Cloning(copying) in .net can be of two types,&lt;em&gt;&lt;u&gt; Deep Copy&lt;/u&gt;&lt;/em&gt; and &lt;em&gt;&lt;u&gt;Shallow Copy. &lt;/u&gt;&lt;/em&gt;  [you can easily find the difference between the two googling in the internet. &lt;/font&gt;&lt;span style="FONT-FAMILY: Wingdings"&gt;J&lt;/span&gt;&lt;font face="Calibri"&gt; ] . &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;While performing shallow copy we ususally use obj.MemberWiseClone() feature of .net. Here the cloned object has the structure and the basic properties(value types ) from which the it is cloned. But using this method, we cannot have the data that persisted deeper in the source object, i.e you might have an object that houses an ArrayList with some other object instance. Now performing shallow copy will copy the ArrayList for you in the cloned object , but will not copy the object instances in the ArrayList. You need to do a deep copy to achieve that. One of the popular methods of deep copying is by implementing System.Iclonable . &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;Suppose we want to clone (shallow) an existing Car object to create another Car.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;                                abstract class Car&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;{ &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;                public abstarct Car CloneCar();&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;// other methods and code&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;class MyDreamCar : Car&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;{&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;//other code&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;public override Car CloneCar()&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;                {&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;                return (MyDreamCar)this.MemberwiseClone();&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;                }&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;font face="Calibri"&gt;}&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;                &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112943"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112943" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/112943.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2007/06/02/Design-patterns----Part-3---The-Prototype-Pattern.aspx</guid>
            <pubDate>Sat, 02 Jun 2007 12:22:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/112943.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2007/06/02/Design-patterns----Part-3---The-Prototype-Pattern.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/112943.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/112943.aspx</trackback:ping>
        </item>
        <item>
            <title>Design patterns-part 2- Abstract Factory Pattern</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2007/05/24/Abstract-Factory-Pattern.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;In the Factory Pattern we were creating objects of different types (viz. different car types Ambassador, Ford etc.) using the pattern. But sometimes we may need to create same object , but each having a different creational process, i.e. though they are objects of the same type they may have different attributes initialized when they are created based on our requirement. There comes the need of Abstract Factory Pattern.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Here we design an interface which acts as the contract for the AbstractFactory&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;interface&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; IAbstractfactory&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Hashtable Carattributes();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;We are creating two types of the same car , but with different initialized attributes. These classes implement the interface IAbstractfactory.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; EconomicCAR:IAbstractfactory&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; Hashtable Carattributes()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        Hashtable eco = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; Hashtable();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        eco["Price"]="1000";&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        eco["colorsAvailable"]=3;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; eco;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; BusinessCAR:IAbstractfactory&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; Hashtable Carattributes()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        Hashtable business = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; Hashtable();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        business["Price"]="20000";&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        business["colorsAvailable"]=2;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        business["isAvailableinCountry"]=&lt;span style="COLOR: blue"&gt;true&lt;/span&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; business;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;You can clearly see that both car types have different attributes. But as mentioned before &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Both of these actually are same type of projects.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Now we create the CarBase class as the base class of the cars.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;class&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; CarBase&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  IAbstractfactory _abstractfactory;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Hashtable _carattributes;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; IAbstractfactory Factory&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;span style="COLOR: blue"&gt;get&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _abstractfactory;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;span style="COLOR: blue"&gt;set&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              _abstractfactory=&lt;span style="COLOR: blue"&gt;value&lt;/span&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; Hashtable CarAttributes&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;span style="COLOR: blue"&gt;get&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              _carattributes=Factory.Carattributes();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _carattributes;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;This class contains the a get/set property of type interface IAbstractFactory. This enables us to send any type of class at runtime, that implements the interface IAbstractFactory. The CarAttributes property enables only a get and gets the Carattributes of the passed-in _abstractfactory object. This way we do not need to have any if-else constructs while creating an object.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Now we come to the cars that actually inherit from the CarBase class.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;class&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; CarEconomic:CarBase&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; CarEconomic()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        Factory= &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; EconomicCAR ();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; CarBusiness:CarBase&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; CarBusiness()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        Factory= &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; BusinessCAR ();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;CarEconomic and CarBusiness are two class we would actually need to create at runtime. Both of these inherit from CarBase. In their corresponding constructors they pass the required object(that implements IAbstractFactory) to the Factory property of the CarBase class.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;In main&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;static&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Main&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;[] args)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  CarBusiness _business= &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; CarBusiness();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt;(DictionaryEntry e &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; _business.CarAttributes )&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        Console.WriteLine(e.Key + ": " + e.Value);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Console.WriteLine();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  CarEconomic _economic = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; CarEconomic();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt;(DictionaryEntry e &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; _economic.CarAttributes )&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        Console.WriteLine(e.Key + ": " + e.Value);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Console.ReadLine();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;As seen from the code above, we are passing either CarBusiness or CarEconomic to create the corresponding object at runtime..&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt; Cheers...&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112746"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112746" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/112746.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2007/05/24/Abstract-Factory-Pattern.aspx</guid>
            <pubDate>Thu, 24 May 2007 15:21:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/112746.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2007/05/24/Abstract-Factory-Pattern.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/112746.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/112746.aspx</trackback:ping>
        </item>
        <item>
            <title>Design patterns - Part 1-Factory Pattern in .NET</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2007/05/21/factory-pattern-in-.net.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;What is a factory? .. A factory is a place where objects are created. Factory Pattern is a well known pattern which will help you to create objects when the following scenario may arrive.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Suppose we have a factory of cars which builds cars of type Ford, Ambassador, Mclaren, Ferrari.  The existing code has a method CreateCar() that takes in cartype as an argument and returns the required Car object. The existing code may be as follows….&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;                        &lt;span style="FONT-SIZE: 10pt"&gt;public enum CarType{&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Ford=0,&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Ambassador=1,&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Mclaren=2,&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Ferrari=3&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                           }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            public Car(CarType cartype)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        if(cartype==CarType.Ford)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                                    // return Ford object&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        else if(cartype==CarType.Ambassador)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                                    //return Ambassador object&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              …&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              …&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                              …&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }     &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;The above code works pretty well as of now. But it has problems in terms of scalability and maintainability. If now we need to increase the type of cars available, the only way we can do that is to keep on increasing the number of if/else-if constructs. This produces more of un-maintainable code. Here comes the need of &lt;strong&gt;Factory Pattern&lt;/strong&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Encapsulating the logic inside a CarFactory solves a part of the problem , but our factory also need to be both scalable and maintainable in the sense that it needs to provide a generic solution to creational logic , and not just the current workflow scope. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Now we are increasing our range of cars , as told before. Therefore to start of with are increasing the enum items.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;            &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;            &lt;span&gt;     &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;enum&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; CarType&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            Ford,&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            Mitsubishi,&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            Ambassador,&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            Peugot&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Now we create the required classes&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;abstract&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; Car&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; Ford:Car&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; Mitsubishi:Car&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; Ambassador:Car&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; Peugot:Car&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Car here is an abstract class that is being inherited by the child classes whose instance we are trying to create.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Now we create the actual CarFactory.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;class&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; CarFactory&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            Hashtable _registeredcars = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; Hashtable();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            Hashtable _loadedcars = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; Hashtable();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: green"&gt; Asscociating the CarType with the actual object&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;param name="cartype"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: gray"&gt;///&lt;/span&gt;&lt;span style="COLOR: gray"&gt;&amp;lt;param name="car"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; Register(CarType cartype,Type car)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  _registeredcars.Add(cartype,car);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; Register(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; cartype,Type car)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  _registeredcars.Add(cartype,car);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; Car CreateCar(CarType cartype)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;if&lt;/span&gt;(_loadedcars[cartype]==&lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        LoadCar();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; (Car)_loadedcars[cartype];&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; LoadCar()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt;(DictionaryEntry obj &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; _registeredcars)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        Type type = (Type)obj.Value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                        &lt;span style="COLOR: green"&gt;//  could have used Activator class &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR: green"&gt;&lt;/span&gt;ConstructorInfo info = type.GetConstructor(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; Type[] {});&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;_loadedcars.Add(obj.Key,(Car)info.Invoke(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: blue"&gt;object&lt;/span&gt;[]{}));&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The CarFactory class consists of two Hashtables&lt;/span&gt; &lt;span style="FONT-SIZE: 10pt"&gt;registeredcars and loadedcars.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;The Register method add the registerd cars to the hashtable. This is the full list of objects that you can create out of this factory. It is quite evident from the Register method that it adds a cartype and car in the Hashtable and performs the logical connection between the two.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;The CreateCar method takes a cartype as argument and returns a car object. While creating a car it checks whether the asked-for car object is already loaded, it returns the object from the loadedcars Hashtable, otherwise it first loads it and then returns the object.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;The LoadCar method does the main job in creating the asked-for car object and returning it. It loops in the registeredcars Hashtable to check whether the object is there , already registered in the Hashtable. It uses Reflection to create the type and adds it in the loadedcars Hashtable. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;Now as the factory is implemented , it start using it …&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;      &lt;span style="COLOR: blue"&gt;static&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Main&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;[] args)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  CarFactory factory = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; CarFactory();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  &lt;span style="COLOR: green"&gt;//registering cars&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in -0.25in 0pt 1.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;factory.Register(CarType.Ambassador,&lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(Ambassador));&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  factory.Register(CarType.Ford,&lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(Ford));&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Car _car = factory.CreateCar(CarType.Ford);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Console.WriteLine(_car.GetType().ToString());&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                  Console.ReadLine();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;The cars that are needed are first registered, using a call to the Register method. Then we create the reuired car object by calling the Createcar() and passing the suitable cartype.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;You can clearly see that any object that is registered ,can be created on runtime without the use of the earlier if-else… blocks. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112659"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112659" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/112659.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2007/05/21/factory-pattern-in-.net.aspx</guid>
            <pubDate>Mon, 21 May 2007 15:28:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/112659.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2007/05/21/factory-pattern-in-.net.aspx#feedback</comments>
            <slash:comments>14</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/112659.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/112659.aspx</trackback:ping>
        </item>
        <item>
            <title>My First Few Days @ a BIG BRAND</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2007/04/22/My-First-Few-Days--IBM.aspx</link>
            <description>It was quite a thrilling experience when a bigbrand gave me the offer as a .net developer after my 3yrs of experience. I was thrilled to bits being a part of the big league , that too with such a  big company . I was coming from relatively medium level company,  with nice people (at least in my project and the HR guys, don't kow about the rest of them) . The induction meeting continued for 2 days @ the Park Hotel. Made some new freinds there. It was all going nice and fine &lt;strong&gt;&lt;font color="#ff0000"&gt;UNTILL&lt;/font&gt;&lt;/strong&gt; I was allocated in a project that had &lt;font color="#ff9900"&gt;ms-access, excell&lt;/font&gt; as the programming interfaces in it. In my previous project I was working with technology and frameworks that belonged to the top of the stack in MS-Techologies. like &lt;font color="#ff00ff"&gt;asp.et 2.0, C# 3.0, Windows WorkFlow Foundation,Ajax 1.0&lt;/font&gt; and now I cannot even install .net as my project does ot require it. That is really frustrating , isn't it??? Is this the price one needs to  pay to join a so called &lt;strong&gt;&lt;font color="#ff0000"&gt;BIG BRAND&lt;/font&gt;&lt;/strong&gt;.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111893"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111893" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/111893.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2007/04/22/My-First-Few-Days--IBM.aspx</guid>
            <pubDate>Sun, 22 Apr 2007 18:11:18 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/111893.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2007/04/22/My-First-Few-Days--IBM.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/111893.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/111893.aspx</trackback:ping>
        </item>
        <item>
            <title>Enterprise Library 3.0 -April 2007</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2007/04/18/111768.aspx</link>
            <description>&lt;p&gt;Guys Enterprise Library 3.0--April 2007 is out . &lt;/p&gt;
&lt;p&gt;This release of Enterprise Library includes: Caching Application Block, Cryptography Application Block, Data Access Application Block, Exception Handling Application Block, Logging Application Block, Policy Injection Application Block, Security Application Block and Validation Application Block.&lt;/p&gt;
&lt;p&gt;Download it from :&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=62ef5f79-daf2-43af-9897-d926f03b9e60&amp;amp;displaylang=en&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111768"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111768" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/111768.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2007/04/18/111768.aspx</guid>
            <pubDate>Wed, 18 Apr 2007 04:35:32 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/111768.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2007/04/18/111768.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/111768.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/111768.aspx</trackback:ping>
        </item>
        <item>
            <title>To Find a control that has caused the postback</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2007/04/04/110777.aspx</link>
            <description>&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; Control GetPostBackControl(Page page)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Control control &lt;SPAN style="COLOR: navy"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; ctrlname &lt;SPAN style="COLOR: navy"&gt;=&lt;/SPAN&gt; page.Request.Params.Get(&lt;SPAN style="COLOR: #008080"&gt;"__EVENTTARGET"&lt;/SPAN&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (ctrlname !&lt;SPAN style="COLOR: navy"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt; &amp;amp;&amp;amp; ctrlname !&lt;SPAN style="COLOR: navy"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Empty)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control = page.FindControl(ctrlname);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;else&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;foreach&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; ctl &lt;SPAN style="COLOR: blue"&gt;in&lt;/SPAN&gt; page.Request.Form)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Control c &lt;SPAN style="COLOR: navy"&gt;=&lt;/SPAN&gt; page.FindControl(ctl);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (c is System.Web.UI.WebControls.Button)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control &lt;SPAN style="COLOR: navy"&gt;=&lt;/SPAN&gt; c;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;break&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; control;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The above code is taken from &lt;A href="http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx"&gt;http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx&lt;/A&gt;&amp;nbsp;... A beautiful example...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheeers..&lt;/P&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110777"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110777" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/110777.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2007/04/04/110777.aspx</guid>
            <pubDate>Wed, 04 Apr 2007 05:27:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/110777.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2007/04/04/110777.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/110777.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/110777.aspx</trackback:ping>
        </item>
        <item>
            <title>Generic EventHandler a new way of handling events</title>
            <link>http://geekswithblogs.net/DheemanDutta/archive/2007/02/15/106368.aspx</link>
            <description>&lt;P&gt;I was surprised to see the syntax of the new Generic Eventhandler... Using the .net 1.1 way we can declare events using the following steps..&lt;/P&gt;
&lt;P&gt;STEP 1: &lt;U&gt;&lt;EM&gt;declare a delegate&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;public delegate void DivThreeHandler(object ,DivByThreeEventArgs e);&lt;/P&gt;
&lt;P&gt;The abobe delegate declares the parameters to be sent to the event handlers.Any class that wants to handle this event needs to have a method that mathces this signature.&lt;/P&gt;
&lt;P&gt;STEP 2: &lt;EM&gt;&lt;U&gt;define&amp;nbsp;the EventArgs derived class&lt;/U&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;public class DivByThreeEventArgs:EvetArgs&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;...........code.......&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;STEP3: &lt;EM&gt;&lt;U&gt;define the class that want to be notified of the event.&lt;/U&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;public class DivByThreeListener&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;public void Display(object o,DivByThreeEventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;...............&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;As you can see that the signature of&amp;nbsp;Display mathces with the delegate.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;STEP4: &lt;EM&gt;&lt;U&gt;Declare the event and notify the intended class.&lt;/U&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;in event generating class ....declare the event&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;public static event DivByThreeEventHndler EventThree;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;public static void Main()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DivByThreeListener dbl = new DivByThreeListener();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;EventThree += new DivByThreeHandler(dbl.Display);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;GenerateNumbers();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Now the function(in the same class) that invokes the event and thus notifies all &amp;nbsp;clients..........&lt;/P&gt;
&lt;P&gt;&amp;nbsp;public static void OnEventThree(DivByThreeEventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;if(EventThree!=null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;EventThree(new object(),e);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;EventThree is null if no client is hooked to the delegate..&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;This was the C# 1.1 way . As C# 2.0 was introduced generics came in and so did &lt;STRONG&gt;Generic EventHandler.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;=================================================================================================================&lt;/STRONG&gt;&lt;/P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;B&gt;The foll. is taken from MSDN library :-&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&amp;nbsp;EventHandler&lt;/B&gt; is a predefined delegate that represents an event handler method for an event, regardless of whether the event generates event data. If your event does not generate event data, substitute &lt;B&gt;EventArgs&lt;/B&gt; for the generic type parameter; otherwise, supply your own custom event data type and substitute it for the generic type parameter.&lt;/P&gt;
&lt;P&gt;The advantage of using &lt;B&gt;EventHandler&lt;/B&gt; is that you do not need to code your own custom delegate if your event generates event data.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;==================================================================================================================&lt;/P&gt;
&lt;P&gt;namespace GenericEvnetHandler&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //---------------------------------------------------------&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class MyEventArgs : EventArgs&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string msg;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MyEventArgs(string messageData)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = messageData;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Message&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return msg; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { msg = value; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //---------------------------------------------------------&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //---------------------------------------------------------&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class ListenEvent&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void SampleEventHandler(object src, MyEventArgs mea)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(mea.Message);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.ReadKey();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //---------------------------------------------------------&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Declare an event of delegate type EventHandler of &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MyEventArgs.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static event EventHandler&amp;lt;MyEventArgs&amp;gt; SampleEvent;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListenEvent le = new ListenEvent();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SampleEvent += new EventHandler&amp;lt;MyEventArgs&amp;gt;(ListenEvent.SampleEventHandler);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnDemoEvent("Hey there, Bruce!");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnDemoEvent("How are you today?");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnDemoEvent("I'm pretty good.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnDemoEvent("Thanks for asking!");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void OnDemoEvent(string val)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Copy to a temporary variable to be thread-safe.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventHandler&amp;lt;MyEventArgs&amp;gt; temp = SampleEvent;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (temp != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp(null , new MyEventArgs(val));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers...&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=106368"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=106368" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/DheemanDutta/aggbug/106368.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dheeman Dutta</dc:creator>
            <guid>http://geekswithblogs.net/DheemanDutta/archive/2007/02/15/106368.aspx</guid>
            <pubDate>Thu, 15 Feb 2007 01:47:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DheemanDutta/comments/106368.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DheemanDutta/archive/2007/02/15/106368.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DheemanDutta/comments/commentRss/106368.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/DheemanDutta/services/trackbacks/106368.aspx</trackback:ping>
        </item>
    </channel>
</rss>