<?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-20661353</id><updated>2011-11-22T19:34:05.441+05:30</updated><category term='Database'/><category term='Design Principles'/><category term='.NET'/><title type='text'>Shishir's Blog</title><subtitle type='html'>Blog on Agile, Design and .NET</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shishir Kumar Mishra</name><uri>http://www.blogger.com/profile/00670159132217969610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20661353.post-8244889788996945541</id><published>2006-12-22T10:04:00.000+05:30</published><updated>2006-12-22T10:17:01.115+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Microsoft Build Sidekick</title><content type='html'>&lt;p class="MsoNormal"&gt;I worked on a task where I had to modify our NANT build file to MSBuild file and I had to all those changes in notepad. &lt;br /&gt;Sometime I wonder why I never did googling for "UI editor for modifying the MSBuild file". It may not be very important finding but I thought to put it blog because I made a mistake by not doing even basic analysis work before starting a tedious work.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  The tool I found was Microsoft Build Sidekick, more information can be found @ http://www.attrice.info/msbuild/index.htm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20661353-8244889788996945541?l=shishirmishra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/8244889788996945541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20661353&amp;postID=8244889788996945541&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/8244889788996945541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/8244889788996945541'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/2006/12/microsoft-build-sidekick.html' title='Microsoft Build Sidekick'/><author><name>Shishir Kumar Mishra</name><uri>http://www.blogger.com/profile/00670159132217969610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20661353.post-8028221369536921637</id><published>2006-12-12T08:56:00.000+05:30</published><updated>2006-12-13T04:55:08.449+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>Normalization - Where to Stop?</title><content type='html'>Why most designers don't go beyond the 3NF?&lt;br /&gt;&lt;br /&gt;The First thing we learn in our DBMS Topics is Normalization. Whether you are a data modeler, DBA, or SQL developer, normalization is one of those topics we all learn. We learn this early either at work or during our formal IT degree.&lt;br /&gt;&lt;br /&gt;But take a look at most production databases. The best you will find that the database has been implemented using Third normal form (3NF). Very few databases reflect higher normal forms, such as Boyce-Codd normal form (BCNF), the Fourth normal form (4NF), and the Fifth normal form (5NF). So, why don't most database designers go beyond the 3NF?&lt;br /&gt;&lt;br /&gt;If you want to know what these normal forms are, they can be found in my &lt;a href="http://shishirmishra.blogspot.com/2006/12/database-normalization.html"&gt;previous post&lt;/a&gt; for your reference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How far should you go with normalization?&lt;/span&gt;&lt;br /&gt;To be sure, each progressive step may impact upon overall performance. I have seen normalization taken to absurd lengths. In one of the recent discussion one person came out with the idea of different financial document types. As though the world of accounting is going to change. I had to remind him that Accounting is just the recording of historical events :)&lt;br /&gt;&lt;br /&gt;A while ago I was reading an article and there the author mentioned about the normalization. Over a period of time I learnt to ask few questions before I decide how much normalization is required.&lt;br /&gt;1. What is the nature of the system. Is it an OLTP or OLAP system?&lt;br /&gt;2. What is the nature of DB Query. Are they mostly Insert or Retrieve?&lt;br /&gt;3. For Part of DB where the inserts are more, its better to have the Data in 3rd normal form.&lt;br /&gt;4. For system where Retrieve operation is more than Inserts, 2nd Normal form is the best.&lt;br /&gt;&lt;br /&gt;Where you draw the line in the sand is ultimately up to you, but you will be better equipped to draw it with a sound understanding of the various normal forms and the risks of not going far enough.&lt;br /&gt;&lt;br /&gt;Until Next Time... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20661353-8028221369536921637?l=shishirmishra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/8028221369536921637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20661353&amp;postID=8028221369536921637&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/8028221369536921637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/8028221369536921637'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/2006/12/normalization-where-to-stop.html' title='Normalization - Where to Stop?'/><author><name>Samir Kumar Mishra</name><uri>http://www.blogger.com/profile/14088080259482491311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp1.blogger.com/_5jYh7n4e07Y/RsJslP6lHGI/AAAAAAAAAZw/KDzjxH67zdQ/s320/Me.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20661353.post-1367903484324441435</id><published>2006-12-12T08:46:00.000+05:30</published><updated>2006-12-12T08:47:29.663+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>Database Normalization</title><content type='html'>I was talking to a developer a while ago and when I started talking about database normalization the other person was kind of lost in a vaccum. I was wondering what happened, but then realized that he does not know much about the normalization and he finds it kind of boring. Boring because all the text books give very lengthy explanation of normalization and most of the times they are boring to read :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Being a Developer It's important to understand the differences between 3NF, BCNF, 4NF, and 5NF along with other normal forms. Here are concise definitions of each normal form.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;First normal form (1NF)&lt;/span&gt;&lt;br /&gt;Each table must have a primary key, i.e., a minimal set of attributes that can uniquely identify a record. Eliminate repeating groups (categories of data that would seem to be required a different number of times on different records) by defining keyed and non-keyed attributes appropriately. Atomicity: Each attribute must contain a single value, not a set of values.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Second normal form (2NF)&lt;/span&gt;&lt;br /&gt;The database must meet all the requirements of the 1NF. In addition to that, if a table has a composite key, all attributes must be related to the whole key. And, data that is redundantly duplicated across multiple rows of a table is moved out to a separate table.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Third normal form (3NF)&lt;/span&gt;&lt;br /&gt;In Addition to all the requirements for 2NF, The data stored in a table must be dependent only on the primary key and not on any other field in the table. Any field that is dependent not only on the primary key but also on another field is moved out to a separate table.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Boyce-Codd normal form (BCNF)&lt;/span&gt;&lt;br /&gt;There must be no non-trivial functional dependencies of attributes on something other than a superset of a candidate key (called a superkey).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Fourth normal form (4NF)&lt;/span&gt;&lt;br /&gt;There must be no non-trivial multi-valued dependencies of attribute sets on something other than a superset of a candidate key. A table is said to be in 4NF if and only if it is in the BCNF and multi-valued dependencies are functional dependencies. The 4NF removes unwanted data structures: multi-valued dependencies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Fifth normal form (5NF)&lt;/span&gt;&lt;br /&gt;There must be no non-trivial join dependencies that do not follow from the key constraints. A table is said to be in the 5NF if and only if it is in 4NF and every join dependency in it is implied by the candidate keys.&lt;br /&gt;&lt;br /&gt;Happy Reading :)&lt;br /&gt;&lt;br /&gt;Until Next time... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20661353-1367903484324441435?l=shishirmishra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/1367903484324441435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20661353&amp;postID=1367903484324441435&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/1367903484324441435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/1367903484324441435'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/2006/12/database-normalization.html' title='Database Normalization'/><author><name>Samir Kumar Mishra</name><uri>http://www.blogger.com/profile/14088080259482491311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp1.blogger.com/_5jYh7n4e07Y/RsJslP6lHGI/AAAAAAAAAZw/KDzjxH67zdQ/s320/Me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20661353.post-116333447260951291</id><published>2006-11-12T17:55:00.000+05:30</published><updated>2006-11-13T06:49:32.513+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Principles'/><title type='text'>Way of implementing Dependency Injection</title><content type='html'>&lt;p class="MsoNormal"&gt;I am working on spring .NET for last of couple of months so thought to put my understanding of idea behind Sring.NET framework in following words. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size:24;"&gt;A&lt;/span&gt;&lt;/b&gt;ny cohesive application made of lots of reusable components. A good designer always dream of reducing the dependency among components in application. Dependency Injection allows coder to get rid of such menial tasks of creating of instances and setting the dependency of objects in code. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Dependency Injection using Factories:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Factories provide centralized approach to handle to instance creation and resolve the dependency among components and hence provide easier way of code maintenance which could have been big mess if such things solved in decentralized way. Using encapsulation Factories shields the information about object creation and it also hides the information about how factored components fit with each other in architecture of the application. All the client code has to do is to call create instance of factory method. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Following is sample code to achieve dependency injection using Factories: &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Factory Code:&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;using&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;namespace&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt; DependencyInjectionFactory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;interface&lt;/span&gt; IFactoredProduct{}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; ConcreteFactoredProduct:IFactoredProduct{}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&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;&lt;span style=""&gt;  &lt;/span&gt;AbstractProduct&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; IFactoredProduct _factoredProduct;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; AbstractProduct(IFactoredProduct factoredProduct){}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; ConcreteProduct:AbstractProduct&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; ConcreteProduct(IFactoredProduct factoredProduct)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;:&lt;span style="color:blue;"&gt;base&lt;/span&gt;(factoredProduct){}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; ConcreteProductTwo:AbstractProduct&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; ConcreteProductTwo(IFactoredProduct factoredProduct)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;:&lt;span style="color:blue;"&gt;base&lt;/span&gt;(factoredProduct){}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;enum&lt;/span&gt; AbstractFactoryEnum&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;ConcreteFactory1,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;ConcreteFactory2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&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; AbstractFactory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;abstract&lt;/span&gt; AbstractProduct Create();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; AbstractFactory GetFactory(AbstractFactoryEnum enumValue)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;(enumValue == AbstractFactoryEnum.ConcreteFactory1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                           &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; ConcreteFactory1();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;else&lt;/span&gt; &lt;span style="color:blue;"&gt;if&lt;/span&gt;(enumValue == AbstractFactoryEnum.ConcreteFactory2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                           &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; ConcreteFactory2();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; ConcreteFactory1:AbstractFactory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; AbstractProduct Create()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:green;"&gt;//Object creation and dependecy issue is solved here&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; ConcreteProduct(&lt;span style="color:blue;"&gt;new&lt;/span&gt; ConcreteFactoredProduct());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; ConcreteFactory2:AbstractFactory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; AbstractProduct Create()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; ConcreteProductTwo(&lt;span style="color:blue;"&gt;new&lt;/span&gt; ConcreteFactoredProduct());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;span style=""&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Client Code: &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;AbstractFactory factory = &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                           &lt;/span&gt;AbstractFactory.GetFactory(AbstractFactoryEnum.ConcreteFactory1);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;AbstractProduct product = factory.Create(); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:green;"&gt;//Client code calls Create method of Factory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;Console.WriteLine(product.GetType().ToString());&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="font-size:9;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;From boilerplate wiring point of view factories has following problems: &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Instance creation code is hard coded in implementation of factory and thus makes it non extensible. Client code as seen in above code has to know what kind of factory has to be created. &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;All dependencies of objects are well known at compile time. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Dependency Injection using Containers:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Above problems can be solved by containers. Containers provides one layer of abstraction through allow client code to get rid of life cycle management and dependency issues. Containers are not new concept and have been in MS platform for long time now. MTS, CLR are some of the examples of heavy weight containers.&lt;span style=""&gt;  &lt;/span&gt;In .NET world Spring.NET (http://www.springframework.net/) allows you to create custom light weight containers. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Following is the code which solves same problem described above (DI using factories) in bit different way.&lt;/p&gt;  &lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;br /&gt;&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Source Code:&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;using&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;namespace&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; DependencyInjectionContainer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;interface&lt;/span&gt; IFactoredProduct{}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; ConcreteFactoredProduct:IFactoredProduct{}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&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;&lt;span style=""&gt;  &lt;/span&gt;AbstractProduct&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; IFactoredProduct _factoredProduct;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; AbstractProduct(IFactoredProduct factoredProduct){}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; ConcreteProduct:AbstractProduct&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; ConcreteProduct(IFactoredProduct factoredProduct)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;                  &lt;/span&gt;:&lt;span style="color:blue;"&gt;base&lt;/span&gt;(factoredProduct){}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;span style=""&gt;     &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In Container approach instance creation and object plumbing is done thorough configuration file and thus avoid any hard coding like Factories approach.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:maroon;"   &gt;xml&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:fuchsia;"   &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:red;"   &gt;version&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;="1.0"&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:fuchsia;"   &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:red;"   &gt;encoding&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;="utf-8"&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:fuchsia;"   &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;?&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;&lt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:maroon;"   &gt;configuration&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;configSections&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;sectionGroup&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="spring"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;section&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="context"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;="Spring.Context.Support.ContextHandler, Spring.Core"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;/&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;section&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="objects"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;="Spring.Context.Support.DefaultSectionHandler, Spring.Core"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;/&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;!--&lt;/span--&gt;&lt;span style="color:maroon;"&gt;sectionGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;!--&lt;/span--&gt;&lt;span style="color:maroon;"&gt;configSections&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;spring&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;context&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;resource&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;uri&lt;/span&gt;&lt;span style="color:blue;"&gt;="config://spring/objects"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;/&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;!--&lt;/span--&gt;&lt;span style="color:maroon;"&gt;context&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;objects&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;object&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;="concreteProduct"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;="DependencyInjectionContainer.ConcreteProduct,DependencyInjection"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                           &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;constructor-arg&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="factoredProduct"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ref&lt;/span&gt;&lt;span style="color:blue;"&gt;="factoredInstance"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;/&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;!--&lt;/span--&gt;&lt;span style="color:maroon;"&gt;object&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;object&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;="factoredInstance"&lt;/span&gt;&lt;span style="color:fuchsia;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;="DependencyInjectionContainer.ConcreteFactoredProduct,DependencyInjection"&gt;&lt;!--&lt;/span--&gt;&lt;span style="color:maroon;"&gt;object&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;!--&lt;/span--&gt;&lt;span style="color:maroon;"&gt;objects&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;!--&lt;/span--&gt;&lt;span style="color:maroon;"&gt;spring&lt;/span&gt;&lt;span style="color:blue;"&gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;&lt;!--&lt;/span--&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:maroon;"   &gt;configuration&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;color:blue;"   &gt;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Client Code: The way Client code consumes created object is:&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;IApplicationContext appContext = ContextRegistry.GetContext(); &lt;span style=""&gt;                   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:9;"  &gt;Console.WriteLine(appContext.GetObject("concreteProduct").GetType().ToString());&lt;span style=""&gt;                &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:9;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;More on “Dependency Injection” can be found in interesting article from Martin Fowler @ &lt;a href="http://www.martinfowler.com/articles/injection.html#FormsOfDependencyInjection"&gt;http://www.martinfowler.com/articles/injection.html#FormsOfDependencyInjection&lt;/a&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20661353-116333447260951291?l=shishirmishra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/116333447260951291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20661353&amp;postID=116333447260951291&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/116333447260951291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/116333447260951291'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/2006/11/way-of-implementing-dependency.html' title='Way of implementing Dependency Injection'/><author><name>Shishir Kumar Mishra</name><uri>http://www.blogger.com/profile/00670159132217969610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20661353.post-116061474443203797</id><published>2006-10-12T06:10:00.000+05:30</published><updated>2006-10-12T06:29:04.443+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Principles'/><title type='text'>Writing Zero Defect software</title><content type='html'>&lt;p class="MsoNormal"&gt;Yesterday I was listening an Arcast with title "Writing zero defect software" from http://www.skyscrapr.net/blogs/arcasts/default.aspx?ID=340. Dr. Neil talks about attitude (psychological part) of developer, how to tackle when bug is found, quality, TDD and discoverability of feature. He says that our software development should be done in such way that it should be always ready for shipped (may not be always with all feature, a typical agile value). He also explained one interesting fact that “why developer go for complex solution” and explanation seems to be a big truth.  &lt;span style=""&gt; &lt;/span&gt;He says that we should have feeling of pride whatever piece of code we deliver and that feeling can only come if we strive to ship zero defect software. He is really concerned about fact our expectation for software are very low, clients always expect that software can not be developed without bugs and bugs are inevitable. He says that we need to set our standard high from software development industry and it should be on par with other industry like Car, Aero plane manufacture. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I am not sure whether we can really make “Zero defect software” or not but, if we implement his idea in our day to day activities of software development then we can definitely reduce the number of bugs in our system drastically. So, I would request you to listen the Arcast mentioned in above link.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20661353-116061474443203797?l=shishirmishra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/116061474443203797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20661353&amp;postID=116061474443203797&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/116061474443203797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/116061474443203797'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/2006/10/writing-zero-defect-software.html' title='Writing Zero Defect software'/><author><name>Shishir Kumar Mishra</name><uri>http://www.blogger.com/profile/00670159132217969610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20661353.post-115948347836442963</id><published>2006-09-29T04:01:00.000+05:30</published><updated>2006-09-29T04:14:38.463+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Principles'/><title type='text'>Questions Every Designer Should Ask</title><content type='html'>Here is the much awaited task for you. You got to come up with a design for the given module. I guess this is how we all get our first design assignment. With the slight variation in the situation everybody goes through this sometime or other in their career.&lt;br /&gt;&lt;br /&gt;While Design related tasks are much awaited for every programmer. Its every (most if not all) programmer's wish to become a designer. But when the first assignment comes they kind of get nervous and start looking at books to find a Quickest Way to produce the artifact. There are few books which can help you do the design and draw models etc but as a Designer there are few questions which needs to be asked before we start drawing design models.&lt;br /&gt;&lt;br /&gt;1.  What is the Functional Requirement?&lt;br /&gt;2.  What are the steps involved to meet the functional requirement.&lt;br /&gt;3.  What is Already Existing? Find out from other team members/designers as which of the functionality already exists.&lt;br /&gt;4.  What is the Design Guideline?&lt;br /&gt;5.  Are there any design constraints?&lt;br /&gt;6.  How much is enough? There is no limit on amount of details one can put in a design document but somewhere a line must be drawn where one says "This much detail is Enough".&lt;br /&gt;7.  What are the dependencies (both Internal and External)?&lt;br /&gt;8.  How is other parts of the system depend on yours?&lt;br /&gt;9.  What are the entities who play a role here? List all the entities from the system involved in the activity.&lt;br /&gt;10. What are the artifacts to be produced?&lt;br /&gt;11. What are the non-functional requirement eg Speed, Transaction Control etc.&lt;br /&gt;&lt;br /&gt;If we ask these questions in the beginning then rest becomes easy. That's why designer love their work :)&lt;br /&gt;&lt;br /&gt;Until Next Time...:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20661353-115948347836442963?l=shishirmishra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/115948347836442963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20661353&amp;postID=115948347836442963&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/115948347836442963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/115948347836442963'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/2006/09/questions-every-designer-should-ask.html' title='Questions Every Designer Should Ask'/><author><name>Samir Kumar Mishra</name><uri>http://www.blogger.com/profile/14088080259482491311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp1.blogger.com/_5jYh7n4e07Y/RsJslP6lHGI/AAAAAAAAAZw/KDzjxH67zdQ/s320/Me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20661353.post-115853914134166611</id><published>2006-09-18T05:55:00.000+05:30</published><updated>2006-09-18T05:55:41.356+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Principles'/><title type='text'>Power of Simplicity</title><content type='html'>More often I come across people who think that a Powerful system has to be complex. Or if the system is powerful it must have lots and lots of complex logic in it. Somehow this amuses me to a greater extent. Quite oftent I end up asking these question to myself:&lt;br /&gt;1. Why a Powerful System has to be complex?&lt;br /&gt;2. What makes a System Powerful?&lt;br /&gt;3. Is Simplicity not a powerful feature in itself?&lt;br /&gt;4. Is it not a fact that if a Complex System is analysed properly, it consists of many simple systems?&lt;br /&gt;&lt;br /&gt;The list of questions are endless and I rarely meet a person who can think through in these lines and try to implement a system in the most simplistic possible way.&lt;br /&gt;&lt;br /&gt;Next time will discuss about why we need a simplistic approach.. Until next time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20661353-115853914134166611?l=shishirmishra.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shishirmishra.blogspot.com/feeds/115853914134166611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20661353&amp;postID=115853914134166611&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/115853914134166611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20661353/posts/default/115853914134166611'/><link rel='alternate' type='text/html' href='http://shishirmishra.blogspot.com/2006/09/power-of-simplicity.html' title='Power of Simplicity'/><author><name>Samir Kumar Mishra</name><uri>http://www.blogger.com/profile/14088080259482491311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp1.blogger.com/_5jYh7n4e07Y/RsJslP6lHGI/AAAAAAAAAZw/KDzjxH67zdQ/s320/Me.PNG'/></author><thr:total>0</thr:total></entry></feed>
