<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-380907648337279914</id><updated>2012-02-16T02:34:48.534-08:00</updated><category term='WF'/><category term='AbstractFactory'/><category term='General'/><category term='CLR 4.0'/><category term='Singleton'/><category term='Factory'/><category term='Pattern'/><title type='text'>Codesagar</title><subtitle type='html'>Bangalore-fastfood style code servings for programmers with a versatile stomach!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codesagar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codesagar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chai</name><uri>http://www.blogger.com/profile/05910073140157800906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='17' src='http://1.bp.blogspot.com/_D1BcMjtTCFE/SlirhZFFMKI/AAAAAAAACEQ/TzKi90nR7EY/S220/20-Jun-09-FirstDayTests-003.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-380907648337279914.post-6080174654534701856</id><published>2009-07-19T09:22:00.000-07:00</published><updated>2009-07-19T09:22:53.016-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Quick overview of WF</title><content type='html'>&lt;a href="http://www.informit.com/articles/printerfriendly.aspx?p=1316798"&gt;Quick overview of WF&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/380907648337279914-6080174654534701856?l=codesagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesagar.blogspot.com/feeds/6080174654534701856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=380907648337279914&amp;postID=6080174654534701856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/6080174654534701856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/6080174654534701856'/><link rel='alternate' type='text/html' href='http://codesagar.blogspot.com/2009/07/quick-overview-of-wf.html' title='Quick overview of WF'/><author><name>Chai</name><uri>http://www.blogger.com/profile/05910073140157800906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='17' src='http://1.bp.blogspot.com/_D1BcMjtTCFE/SlirhZFFMKI/AAAAAAAACEQ/TzKi90nR7EY/S220/20-Jun-09-FirstDayTests-003.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-380907648337279914.post-7230802786137477518</id><published>2009-07-19T09:03:00.000-07:00</published><updated>2009-07-19T09:04:23.871-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CLR 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 new features (PDC08)</title><content type='html'>&lt;div&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL17/"&gt;MSDN Channel 9 link&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;- Activities have in/out Arguments that can be bound to scoped Variables&lt;div&gt;- persistence points, no-persist zones&lt;/div&gt;&lt;div&gt;- adapting to mid-stream process changes. activities can be updated midstream&lt;/div&gt;&lt;div&gt;- tracking service - 28'&lt;/div&gt;&lt;div&gt;- WF4 vs WF3 - 33'&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;- Support for Partial Trust Env&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;- Rehosting improvements (nothing in particular demo'd)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/380907648337279914-7230802786137477518?l=codesagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesagar.blogspot.com/feeds/7230802786137477518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=380907648337279914&amp;postID=7230802786137477518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/7230802786137477518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/7230802786137477518'/><link rel='alternate' type='text/html' href='http://codesagar.blogspot.com/2009/07/wf-40-new-features.html' title='WF 4.0 new features (PDC08)'/><author><name>Chai</name><uri>http://www.blogger.com/profile/05910073140157800906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='17' src='http://1.bp.blogspot.com/_D1BcMjtTCFE/SlirhZFFMKI/AAAAAAAACEQ/TzKi90nR7EY/S220/20-Jun-09-FirstDayTests-003.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-380907648337279914.post-4908192007835543311</id><published>2009-07-19T04:03:00.000-07:00</published><updated>2009-07-19T05:55:41.815-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CLR 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4 custom activities</title><content type='html'>&lt;a href="http://channel9.msdn.com/posts/pdc2008/tags/.NET+Framework/"&gt;PDC 2008 cast on custom activities in WF 4&lt;br /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;- Base Activity Library supports Interop, Error handling, etc &lt;/div&gt;&lt;div&gt;- Instead of binding properties across activities, Variables are now introduced to box the scope of the outgoing args of an activity.&lt;/div&gt;&lt;div&gt;- No real talk about passivation (&lt;a href="http://channel9.msdn.com/pdc2008/TL17/"&gt;Kenny Wolf's talk&lt;/a&gt; handles that)&lt;/div&gt;&lt;div&gt;- "custom execution patterns" -- 35'&lt;/div&gt;&lt;div&gt;- WorkflowInvoker class is new - can be used for firing up individual activities for debugging/unit testing&lt;/div&gt;&lt;div&gt; - Scheduling activities explicitly: AEC.ScheduleActivity()&lt;/div&gt;&lt;div&gt;- handling faults - 45.5'&lt;/div&gt;&lt;div&gt;- WorkflowElement class&lt;/div&gt;&lt;div&gt;- AEC.CreateNamedBookmark&lt;/div&gt;&lt;div&gt;- AEC.SetupAsyncOperationBlock - 53'&lt;/div&gt;&lt;div&gt;- Activity designers - 56.5'&lt;/div&gt;&lt;div&gt;- Rehosting designers - 63'&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Usage of C# 3.0 features distracts the viewer of this demo a bit&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/380907648337279914-4908192007835543311?l=codesagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesagar.blogspot.com/feeds/4908192007835543311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=380907648337279914&amp;postID=4908192007835543311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/4908192007835543311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/4908192007835543311'/><link rel='alternate' type='text/html' href='http://codesagar.blogspot.com/2009/07/wf-4-custom-activities.html' title='WF 4 custom activities'/><author><name>Chai</name><uri>http://www.blogger.com/profile/05910073140157800906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='17' src='http://1.bp.blogspot.com/_D1BcMjtTCFE/SlirhZFFMKI/AAAAAAAACEQ/TzKi90nR7EY/S220/20-Jun-09-FirstDayTests-003.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-380907648337279914.post-6147745364745900235</id><published>2008-12-09T14:55:00.000-08:00</published><updated>2008-12-09T15:17:47.545-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='AbstractFactory'/><category scheme='http://www.blogger.com/atom/ns#' term='Singleton'/><title type='text'>Dish #2: A generic AbstractFactory class</title><content type='html'>&lt;span style="font-family:Lucida Console;"&gt; &lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#region&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; Copyright&lt;br /&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Copyright 2008 Codesagar.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DISCLAIMER: Author claims no responsibility for any damages whatsoever&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;stemming out either directly or indirectly from the usage of any of the&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;source code made available through Codesagar.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#endregion&lt;br /&gt;&lt;br /&gt;using&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; System;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;namespace&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; Factories&lt;br /&gt;{&lt;br /&gt;   &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; Usage: TConcreteFactory is the concrete factory that implements this base &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; class and creates instances of type TCreatedType (and its derived classes)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;typeparam name="TConcreteFactory"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Concrete factory type&lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;/typeparam&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;typeparam name="TProduct"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Product type to be created by the &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; concrete factory&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;/typeparam&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;AbstractFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;TConcreteFactory, TProduct&amp;gt; :&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;SingletonBase&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;TConcreteFactory&amp;gt; &lt;br /&gt;        &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;where&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; TConcreteFactory : &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;, &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;()&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;where&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; TProduct : &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;class&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    {&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; This is the factory class that must be implemented by your concrete &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; factory instance.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;param name="args"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Arguments that your implementation of Create &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; can accept.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Return the instance of your desired type TProduct or its &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; subtype&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;span style="color:008000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:808080;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;virtual&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; TProduct Create(&lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;params&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[] args)&lt;br /&gt;       {&lt;br /&gt;           &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;throw&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;NotImplementedException&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;();&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt; &lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleProduct&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; { }&lt;br /&gt;   &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; : &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;AbstractFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;, &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;gt;&lt;br /&gt;   {&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;override&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; Create(&lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;params&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[] args)&lt;br /&gt;       {&lt;br /&gt;           &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;();&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt; &lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleClient&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    {&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="color:0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; Demonstrate()&lt;br /&gt;       {&lt;br /&gt;           &lt;/span&gt;&lt;span style="color:2B91AF;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ExampleFactory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;.Instance.Create();&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/380907648337279914-6147745364745900235?l=codesagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesagar.blogspot.com/feeds/6147745364745900235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=380907648337279914&amp;postID=6147745364745900235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/6147745364745900235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/6147745364745900235'/><link rel='alternate' type='text/html' href='http://codesagar.blogspot.com/2008/12/dish-2-generic-abstractfactory-class.html' title='Dish #2: A generic AbstractFactory class'/><author><name>Chai</name><uri>http://www.blogger.com/profile/05910073140157800906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='17' src='http://1.bp.blogspot.com/_D1BcMjtTCFE/SlirhZFFMKI/AAAAAAAACEQ/TzKi90nR7EY/S220/20-Jun-09-FirstDayTests-003.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-380907648337279914.post-4031452842485883938</id><published>2008-12-08T14:23:00.000-08:00</published><updated>2008-12-09T10:41:32.084-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='Factory'/><category scheme='http://www.blogger.com/atom/ns#' term='Singleton'/><title type='text'>Dish #1: Generic Singleton base class</title><content type='html'>&lt;span style="font-family:Lucida Console;font-size:-1;"&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#region Copyright&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///Copyright 2008 Codesagar.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///DISCLAIMER: Author claims no responsibility for any damages whatsoever&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///stemming out either directly or indirectly from the usage of any of the&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///source code made available through Codesagar.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#endregion&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;using System;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;///Codesagar factory dishes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;namespace Factories&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// This class provides a generic singleton base class that provides a static member&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// of the derived type tha points to the singleton instance. Ths class also provides&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// the public singleton getter Instance to access the public interface of the derived &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// class.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// &lt;/span&gt;&lt;typeparam name="T"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;The derived class that should be used as a singleton&lt;/span&gt;&lt;/typeparam&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    public class SingletonBase&lt;/span&gt;&lt;t&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; where T : class, new()&lt;/span&gt;&lt;/t&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        #region protected static instance&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        protected static T s_instance;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        #endregion&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        #region protected constructor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        protected SingletonBase()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        #endregion&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        #region Singleton interface&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        public static T Instance&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;            get&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;            {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                if (s_instance == null)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                    T instance = new T();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                    // Insure all writes used to construct new value have been flushed.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                    // For more, see &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                    // http://blogs.msdn.com/brada/archive/2004/05/12/volatile-and-memorybarrier.aspx&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                    System.Threading.Thread.MemoryBarrier();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                    s_instance = instance;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;                return s_instance;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;            }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        #endregion&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// A sample singleton class that derives its singleton properties&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// from the Singleton&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    /// &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    class MySingleton : SingletonBase&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;mysingleton&gt;&lt;/mysingleton&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        public void Test()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;            Console.WriteLine("MySingleton::Test called!");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    public class Client&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        public void TestMySingleton()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;            MySingleton.Instance.Test();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/380907648337279914-4031452842485883938?l=codesagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesagar.blogspot.com/feeds/4031452842485883938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=380907648337279914&amp;postID=4031452842485883938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/4031452842485883938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/4031452842485883938'/><link rel='alternate' type='text/html' href='http://codesagar.blogspot.com/2008/12/dish-1-generic-singleton-base-class.html' title='Dish #1: Generic Singleton base class'/><author><name>Chai</name><uri>http://www.blogger.com/profile/05910073140157800906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='17' src='http://1.bp.blogspot.com/_D1BcMjtTCFE/SlirhZFFMKI/AAAAAAAACEQ/TzKi90nR7EY/S220/20-Jun-09-FirstDayTests-003.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-380907648337279914.post-1053472214129305307</id><published>2008-11-30T09:35:00.000-08:00</published><updated>2008-12-08T14:23:51.530-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Codesagar - Inauguration</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Codesagar&lt;/span&gt; - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;thats&lt;/span&gt; what i could &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;think&lt;/span&gt; of naming this blog dedicated to giving quick programming tips to achieve something worthwhile. A dedication to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;gazzillion&lt;/span&gt; Bangalore &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;fast food&lt;/span&gt; joints around every nook and corner that go by all &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;sortsa&lt;/span&gt; names ending with "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Sagar&lt;/span&gt;" :P &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Some quick reading tips for dish names (every code post is called a dish).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;# preceding a number means that the dish is in C# . &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Example: Dish#1 is in C#.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;++ preceding a number means that the dish is in C++ &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/380907648337279914-1053472214129305307?l=codesagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesagar.blogspot.com/feeds/1053472214129305307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=380907648337279914&amp;postID=1053472214129305307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/1053472214129305307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/380907648337279914/posts/default/1053472214129305307'/><link rel='alternate' type='text/html' href='http://codesagar.blogspot.com/2008/11/codesagar-inauguration.html' title='Codesagar - Inauguration'/><author><name>Chai</name><uri>http://www.blogger.com/profile/05910073140157800906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='17' src='http://1.bp.blogspot.com/_D1BcMjtTCFE/SlirhZFFMKI/AAAAAAAACEQ/TzKi90nR7EY/S220/20-Jun-09-FirstDayTests-003.jpg'/></author><thr:total>0</thr:total></entry></feed>
