<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">David Cumps</title><subtitle type="html">#region .Net Blog</subtitle><id>http://weblogs.asp.net/cumpsd/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/cumpsd/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2007-09-29T17:51:00Z</updated><entry><title>Design Patterns - Iterator Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/23/6435403.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/23/6435403.aspx</id><published>2008-07-23T12:42:00Z</published><updated>2008-07-23T12:42:00Z</updated><content type="html">
&lt;p&gt;Time for the next part in &lt;a href="http://blog.cumps.be/tags/design-patterns/" mce_href="http://blog.cumps.be/tags/design-patterns/" title="Design Patterns"&gt;our series&lt;/a&gt;, the &lt;strong&gt;Iterator Pattern&lt;/strong&gt;.&lt;/p&gt;
 
&lt;p&gt;Let's start with the definition: "&lt;strong&gt;Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.&lt;/strong&gt;"&lt;/p&gt;

&lt;img src="http://wiki.cumps.be/_media/files/blog/iterator/iterator8.gif" mce_src="http://wiki.cumps.be/_media/files/blog/iterator/iterator8.gif" alt="Iterator Pattern Class Diagram"&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-iterator-pattern/" title="Design Patterns - Iterator Pattern" mce_href="http://blog.cumps.be/design-patterns-iterator-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-iterator-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6435403" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Template Method Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/22/6430091.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/22/6430091.aspx</id><published>2008-07-22T08:23:00Z</published><updated>2008-07-22T08:23:00Z</updated><content type="html">
&lt;p&gt;Time for yet another pattern, the &lt;strong&gt;Template Method Pattern&lt;/strong&gt;. Have a look at all the other patterns in &lt;a href="http://blog.cumps.be/tags/design-patterns/" mce_href="http://blog.cumps.be/tags/design-patterns/" title="Design Patterns"&gt;&lt;strong&gt;the series&lt;/strong&gt;&lt;/a&gt; as well.&lt;/p&gt;
 
&lt;p&gt;The definition: "&lt;strong&gt;Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.&lt;/strong&gt;"&lt;/p&gt;

&lt;img src="http://wiki.cumps.be/_media/files/blog/template/template3.gif" mce_src="http://wiki.cumps.be/_media/files/blog/template/template3.gif" alt="Class Diagram Template Method Pattern"&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-template-method-pattern/" title="Design Patterns - Template Method Pattern" mce_href="http://blog.cumps.be/design-patterns-template-method-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-template-method-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6430091" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Wanted: Friends!</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/21/6427253.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/21/6427253.aspx</id><published>2008-07-21T14:12:00Z</published><updated>2008-07-21T14:12:00Z</updated><content type="html">&lt;p&gt;Today I'm going to tell you a &lt;strong&gt;little story&lt;/strong&gt; about me. I think of myself as your typical description of &lt;strong&gt;a geek&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passionate&lt;/strong&gt; about all things technological, eager to &lt;strong&gt;find out&lt;/strong&gt; how the inner details work together, a &lt;strong&gt;movie and music&lt;/strong&gt; lover, and spending &lt;strong&gt;too much&lt;/strong&gt; time behind a computer.&lt;/p&gt;

&lt;p&gt;Having all those feats, over the course of &lt;strong&gt;twenty years&lt;/strong&gt;, result in getting &lt;strong&gt;out of touch&lt;/strong&gt; with the what interests the large part of the population.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don't care&lt;/strong&gt; about soccer, drinking, going out or making a complete fool out of myself. I can talk for hours about some &lt;strong&gt;architecture&lt;/strong&gt; however, or about &lt;strong&gt;techy pranks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But you know what? My surroundings &lt;strong&gt;don't have a clue&lt;/strong&gt; what I'm talking about, usually ending up in me &lt;strong&gt;not bothering&lt;/strong&gt; anymore. Same for taste of humor, I love the &lt;strong&gt;dry British&lt;/strong&gt; kind, and everyone I know hates it.&lt;/p&gt;

&lt;p&gt;This isn't some sort of self-pity post however. I'm fine with &lt;strong&gt;making conversation&lt;/strong&gt;, but most of the time it's forced, and I constantly have to fight the &lt;strong&gt;analytical part&lt;/strong&gt; of my mind to not interfere and &lt;strong&gt;kill the conversation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That being said, I'd like to &lt;strong&gt;meet some other geeks&lt;/strong&gt; from around the world to have a chat with, the international developer &lt;b&gt;community&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Do you sometimes have the same feelings? Would you like to meet someone new? Talk about some &lt;strong&gt;random IT&lt;/strong&gt; thing, or just about your life to a &lt;strong&gt;fellow geek&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.cumps.be/?p=contact&amp;amp;lang=en" mce_href="http://www.cumps.be/?p=contact&amp;amp;lang=en" title="Contact Me!"&gt;&lt;strong&gt;Contact me!&lt;/strong&gt;&lt;/a&gt; Tell me something about you, where are you from, how old are you, what do you do, some story. Please? :)&lt;/p&gt;

&lt;p&gt;Writing all these articles is fun, but having dialogues is a lot &lt;strong&gt;more stimulating&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.cumps.be/?p=contact&amp;amp;lang=en" mce_href="http://www.cumps.be/?p=contact&amp;amp;lang=en" title="Contact Me!"&gt;&lt;strong&gt;I hope to hear from you!&lt;/strong&gt;&lt;/a&gt; :)&lt;/p&gt;

&lt;p&gt;(Yeah, &lt;strong&gt;non-geeks can mail too&lt;/strong&gt;, if you have some &lt;strong&gt;interest&lt;/strong&gt; in IT or &lt;strong&gt;aren't bored&lt;/strong&gt; by someone talking about it :))&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6427253" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="Personal" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Personal/default.aspx" /><category term="Community News" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Community+News/default.aspx" /><category term="General" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General/default.aspx" /></entry><entry><title>Design Patterns - Facade Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/21/6426795.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/21/6426795.aspx</id><published>2008-07-21T10:37:00Z</published><updated>2008-07-21T10:37:00Z</updated><content type="html">
&lt;p&gt;Time for another, &lt;strong&gt;simple&lt;/strong&gt;, design pattern. The &lt;strong&gt;Facade Pattern&lt;/strong&gt;.&lt;/p&gt;
 
&lt;p&gt;I'm going to &lt;strong&gt;need a break&lt;/strong&gt; soon, getting a bit burned out, which never is a good thing.&lt;/p&gt;
 
&lt;p&gt;Anyway, the definition of today's pattern: "&lt;strong&gt;Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.&lt;/strong&gt;"&lt;/p&gt;

&lt;img src="http://wiki.cumps.be/_media/files/blog/facade/facade2.gif" mce_src="http://wiki.cumps.be/_media/files/blog/facade/facade2.gif" alt="Facade Pattern Class Diagram"&gt;


&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-facade-pattern/" title="Design Patterns - Facade Pattern" mce_href="http://blog.cumps.be/design-patterns-facade-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-facade-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6426795" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Adapter Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/17/6408373.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/17/6408373.aspx</id><published>2008-07-16T22:29:00Z</published><updated>2008-07-16T22:29:00Z</updated><content type="html">
&lt;p&gt;We've seen &lt;b&gt;quite a few&lt;/b&gt; patterns so far, and I'm glad so many people like them.&lt;/p&gt;
 
&lt;p&gt;They turned out to be the &lt;b&gt;most popular&lt;/b&gt; posts I've ever written when it comes to development. &lt;b&gt;Thanks!&lt;/b&gt; :)&lt;/p&gt;
  
&lt;p&gt;A little &lt;b&gt;overview&lt;/b&gt; for the late joiners:&lt;/p&gt;
 
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.cumps.be/long-absence-design-patterns/" mce_href="http://blog.cumps.be/long-absence-design-patterns/" title="Long Absence - Design Patterns"&gt;&lt;b&gt;Long Absence - Design Patterns&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-strategy-pattern/" mce_href="http://blog.cumps.be/design-patterns-strategy-pattern/" title="Design Patterns - Strategy Pattern"&gt;&lt;b&gt;Design Patterns - Strategy Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-observer-pattern/" mce_href="http://blog.cumps.be/design-patterns-observer-pattern/" title="Design Patterns - Observer Pattern"&gt;&lt;b&gt;Design Patterns - Observer Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-observer-event-pattern/" mce_href="http://blog.cumps.be/design-patterns-observer-event-pattern/" title="Design Patterns - Observer/Event Pattern"&gt;&lt;b&gt;Design Patterns - Observer/Event Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-decorator-pattern/" mce_href="http://blog.cumps.be/design-patterns-decorator-pattern/" title="Design Patterns - Decorator Pattern"&gt;&lt;b&gt;Design Patterns - Decorator Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-factory-method-pattern/" mce_href="http://blog.cumps.be/design-patterns-factory-method-pattern/" title="Design Patterns - Factory Method Pattern"&gt;&lt;b&gt;Design Patterns - Factory Method Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-abstract-factory-pattern/" mce_href="http://blog.cumps.be/design-patterns-abstract-factory-pattern/" title="Design Patterns - Abstract Factory Pattern"&gt;&lt;b&gt;Design Patterns - Abstract Factory Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-singleton-pattern/" mce_href="http://blog.cumps.be/design-patterns-singleton-pattern/" title="Design Patterns - Singleton Pattern"&gt;&lt;b&gt;Design Patterns - Singleton Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-generic-singleton-pattern/" mce_href="http://blog.cumps.be/design-patterns-generic-singleton-pattern/" title="Design Patterns - Generic Singleton Pattern"&gt;&lt;b&gt;Design Patterns - Generic Singleton Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.cumps.be/design-patterns-command-pattern/" mce_href="http://blog.cumps.be/design-patterns-command-pattern/" title="Design Patterns - Command Pattern"&gt;&lt;b&gt;Design Patterns - Command Pattern&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
 
&lt;p&gt;Today we'll have a look at the &lt;b&gt;Adapter Pattern&lt;/b&gt;.&lt;/p&gt;

&lt;img src="http://wiki.cumps.be/_media/files/blog/adapter/adapter3.gif" mce_src="http://wiki.cumps.be/_media/files/blog/adapter/adapter3.gif" alt="Adapter Pattern Class Diagram"&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-adapter-pattern/" title="Design Patterns - Adapter Pattern" mce_href="http://blog.cumps.be/design-patterns-adapter-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-adapter-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6408373" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Command Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/16/6403537.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/16/6403537.aspx</id><published>2008-07-15T22:07:00Z</published><updated>2008-07-15T22:07:00Z</updated><content type="html">
&lt;p&gt;What's a lonely &lt;b&gt;geek&lt;/b&gt; to do late in the evening? Write about the &lt;b&gt;Command Pattern&lt;/b&gt; of course...&lt;/p&gt;
 
&lt;p&gt;Let's start with the definition: "&lt;b&gt;Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undo-able operations.&lt;/b&gt;"&lt;/p&gt;

&lt;img src="http://wiki.cumps.be/_media/files/blog/command/command1.gif" mce_src="http://wiki.cumps.be/_media/files/blog/command/command1.gif" alt="Command Pattern"&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-command-pattern/" title="Design Patterns - Command Pattern" mce_href="http://blog.cumps.be/design-patterns-command-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-command-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6403537" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Generic Singleton Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/15/6401804.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/15/6401804.aspx</id><published>2008-07-15T14:43:00Z</published><updated>2008-07-15T14:43:00Z</updated><content type="html">
&lt;p&gt;A little follow up from yesterday's &lt;a href="http://blog.cumps.be/design-patterns-singleton-pattern/" mce_href="http://blog.cumps.be/design-patterns-singleton-pattern/" title="Design Patterns - Singleton Pattern"&gt;&lt;strong&gt;Singleton Pattern&lt;/strong&gt;&lt;/a&gt;, where I asked for some help on how you would approach a &lt;strong&gt;generic singleton&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;With the help of &lt;a href="http://weblogs.asp.net/andrewseven/" mce_href="http://weblogs.asp.net/andrewseven/" title="Andrew Stevenson"&gt;&lt;strong&gt;Andrew Stevenson&lt;/strong&gt;&lt;/a&gt; and &lt;strong&gt;ExNihilo&lt;/strong&gt;, we came up with the following &lt;strong&gt;Generic Singleton Pattern&lt;/strong&gt;:&lt;/p&gt;

&lt;img src="http://wiki.cumps.be/_media/files/blog/singleton/genericsingleton.gif" mce_src="http://wiki.cumps.be/_media/files/blog/singleton/genericsingleton.gif" alt="Generic Singleton Pattern"&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-generic-singleton-pattern/" title="Design Patterns - Generic Singleton Pattern" mce_href="http://blog.cumps.be/design-patterns-generic-singleton-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-generic-singleton-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6401804" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Singleton Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/14/6400030.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/14/6400030.aspx</id><published>2008-07-14T16:02:00Z</published><updated>2008-07-14T16:02:00Z</updated><content type="html">&lt;p&gt;Today we'll have a look at a well known pattern, the &lt;b&gt;Singleton Pattern&lt;/b&gt;. Most people have already heard about this one.&lt;/p&gt;

&lt;p&gt;The definition: "&lt;b&gt;Ensure a class has only one instance and provide a global point of access to it.&lt;/b&gt;"&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/singleton/singleton2.gif" mce_src="http://wiki.cumps.be/_media/files/blog/singleton/singleton2.gif" title="" alt="Singleton Pattern"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-singleton-pattern/" title="Design Patterns - Singleton Pattern" mce_href="http://blog.cumps.be/design-patterns-singleton-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-singleton-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6400030" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Abstract Factory Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/13/6397252.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/13/6397252.aspx</id><published>2008-07-13T18:15:00Z</published><updated>2008-07-13T18:15:00Z</updated><content type="html">&lt;p&gt;Time to continue from yesterday's &lt;a href="http://blog.cumps.be/design-patterns-factory-method-pattern/" title="Design Patterns - Factory Method Pattern"&gt;&lt;b&gt;Factory Method Pattern&lt;/b&gt;&lt;/a&gt; by exploring the &lt;b&gt;Abstract Factory Pattern&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Anyway, time for the definition and then some code to make everything clear. "&lt;b&gt;Provide an interface for creating families of related or dependent objects without specifying their concrete classes.&lt;/b&gt;"&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/abstractfactory/factory6.gif" mce_src="http://wiki.cumps.be/_media/files/blog/abstractfactory/factory6.gif" title="" alt="Abstract Factory Pattern"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-abstract-factory-pattern/" title="Design Patterns - Abstract Factory Pattern" mce_href="http://blog.cumps.be/design-patterns-abstract-factory-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-abstract-factory-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6397252" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Factory Method Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/07/12/6393384.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/07/12/6393384.aspx</id><published>2008-07-12T19:35:00Z</published><updated>2008-07-12T19:35:00Z</updated><content type="html">
&lt;p&gt;I present you with the &lt;b&gt;next pattern&lt;/b&gt; in &lt;a href="http://blog.cumps.be/tags/design-patterns/" title="Design Patterns"&gt;our series&lt;/a&gt;, the &lt;b&gt;Factory Method&lt;/b&gt;! It took a while to get it out due to a stay in the hospital. (All is fine now :p)&lt;/p&gt;

&lt;p&gt;First of all, the definition: "&lt;b&gt;Define an interface for creating an object, but let the subclasses decide which class to instantiate. The Factory method lets a class defer instantiation to subclasses.&lt;/b&gt;"&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/factorymethod/factory3.gif" mce_src="http://wiki.cumps.be/_media/files/blog/factorymethod/factory3.gif" title="" alt="Factory Method Pattern"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-factory-method-pattern/" title="Design Patterns - Factory Method Pattern" mce_href="http://blog.cumps.be/design-patterns-factory-method-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-factory-method-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6393384" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Decorator Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/06/29/6336430.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/06/29/6336430.aspx</id><published>2008-06-29T19:42:00Z</published><updated>2008-06-29T19:42:00Z</updated><content type="html">&lt;p&gt;Following up on the &lt;a href="http://blog.cumps.be/design-patterns-observer-event-pattern/" title="Observer/Event Pattern"&gt;&lt;b&gt;Observer/Event Pattern&lt;/b&gt;&lt;/a&gt;, it’s time for the third pattern, the &lt;b&gt;Decorator Pattern&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;The definition: "&lt;b&gt;Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.&lt;/b&gt;"&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/decorator/decorator3.gif" mce_src="http://wiki.cumps.be/_media/files/blog/decorator/decorator3.gif" title="" alt="Decorator Pattern"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-decorator-pattern/" title="Design Patterns - Decorator Pattern" mce_href="http://blog.cumps.be/design-patterns-decorator-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-decorator-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6336430" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Observer/Event Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/06/27/6327751.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/06/27/6327751.aspx</id><published>2008-06-27T15:16:00Z</published><updated>2008-06-27T15:16:00Z</updated><content type="html">&lt;p&gt;Yesterday I described the &lt;a href="http://blog.cumps.be/design-patterns-observer-pattern/" title="Observer Pattern"&gt;&lt;b&gt;Observer Pattern&lt;/b&gt;&lt;/a&gt; and mentioned that the .NET CLR provides this functionality through &lt;b&gt;events and delegates&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Let’s have a look on how to &lt;b&gt;implement&lt;/b&gt; this right now.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/event/event2.gif" mce_src="http://wiki.cumps.be/_media/files/blog/event/event2.gif" title="" alt="Event Pattern"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-observer-event-pattern/" title="Design Patterns - Observer/Event Pattern" mce_href="http://blog.cumps.be/design-patterns-observer-event-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-observer-event-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6327751" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Observer Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/06/26/6324010.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/06/26/6324010.aspx</id><published>2008-06-26T19:21:00Z</published><updated>2008-06-26T19:21:00Z</updated><content type="html">&lt;p&gt;Yesterday we saw the &lt;a href="http://blog.cumps.be/design-patterns-strategy-pattern/" title="Strategy Pattern"&gt;&lt;b&gt;Strategy Pattern&lt;/b&gt;&lt;/a&gt;. Today I want to talk about the &lt;b&gt;Observer Pattern&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;First, the definition again: "&lt;b&gt;Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.&lt;/b&gt;"&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/observer/observer3.gif" mce_src="http://wiki.cumps.be/_media/files/blog/observer/observer3.gif" title="" alt="ObserverPattern"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-observer-pattern/" title="Design Patterns - Observer Pattern" mce_href="http://blog.cumps.be/design-patterns-observer-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-observer-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6324010" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Design Patterns - Strategy Pattern</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2008/06/25/6318835.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2008/06/25/6318835.aspx</id><published>2008-06-25T11:50:00Z</published><updated>2008-06-25T11:50:00Z</updated><content type="html">&lt;p&gt;The first pattern I want to talk about is the &lt;b&gt;Strategy pattern&lt;/b&gt;, which always reminds me about the Command &amp;amp; Conquer games so I’ll simply use it as an example :)&lt;/p&gt;

&lt;p&gt;First of all, the definition: "&lt;b&gt;Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.&lt;/b&gt;"&lt;/p&gt;

&lt;p&gt;I’m bad at remembering definitions or trying to imagine what they really mean, so let’s just go ahead and try to &lt;b&gt;create something and learn as we go&lt;/b&gt;, eventually we’ll end up implementing the Strategy pattern and you’ll '&lt;b&gt;get it&lt;/b&gt;' for the rest of your life, without a definition.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/strategy/strategy5.gif" mce_src="http://wiki.cumps.be/_media/files/blog/strategy/strategy5.gif" title="" alt="Strategy Pattern"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/design-patterns-strategy-pattern/" title="Design Patterns - Strategy Pattern" mce_href="http://blog.cumps.be/design-patterns-strategy-pattern/"&gt;&lt;b&gt;http://blog.cumps.be/design-patterns-strategy-pattern/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6318835" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/cumpsd/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Design Patterns" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Design+Patterns/default.aspx" /></entry><entry><title>Obfuscation - Making Reverse Engineering Harder</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/cumpsd/archive/2007/09/29/4245840.aspx" /><id>http://weblogs.asp.net/cumpsd/archive/2007/09/29/4245840.aspx</id><published>2007-09-29T15:51:00Z</published><updated>2007-09-29T15:51:00Z</updated><content type="html">&lt;p&gt;In a previous article I have demonstrated how &lt;strong&gt;easy&lt;/strong&gt; it is to &lt;a href="http://blog.cumps.be/reverse-engineering-with-reflector-and-reflexil/" mce_href="http://blog.cumps.be/reverse-engineering-with-reflector-and-reflexil/" title="Reverse Engineering with Reflector and Reflexil"&gt;decompile and reverse engineer .NET assemblies&lt;/a&gt; using Reflector and Reflexil. I've also shown that &lt;a href="http://blog.cumps.be/code-signing-as-reverse-engineering-protection/" mce_href="http://blog.cumps.be/code-signing-as-reverse-engineering-protection/" title="Code Signing as Reverse Engineering Protection"&gt;applying a strong name&lt;/a&gt; to your assembly does &lt;strong&gt;not protect your code&lt;/strong&gt; from reverse engineering. So, &lt;strong&gt;what else&lt;/strong&gt; is left?&lt;/p&gt;

&lt;p&gt;A technique called &lt;strong&gt;obfuscating&lt;/strong&gt; goes a long way in keeping your source code safe. An obfuscator will mangle your code, without changing the actual result, to make it &lt;strong&gt;increasingly harder&lt;/strong&gt; for someone to decompile your code and actually understand it.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://wiki.cumps.be/_media/files/blog/obfuscation/obfuscator1.gif" mce_src="http://wiki.cumps.be/_media/files/blog/obfuscation/obfuscator1.gif" title="" alt="Reflector viewing obfuscated assembly"&gt;&lt;/p&gt;

&lt;p&gt;Read more at &lt;a href="http://blog.cumps.be/obfuscation-making-reverse-engineering-harder/" title="Obfuscation - Making Reverse Engineering Harder" mce_href="http://blog.cumps.be/obfuscation-making-reverse-engineering-harder/"&gt;&lt;b&gt;http://blog.cumps.be/obfuscation-making-reverse-engineering-harder/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4245840" width="1" height="1"&gt;</content><author><name>CumpsD</name><uri>http://weblogs.asp.net/members/CumpsD.aspx</uri></author><category term="C#" scheme="http://weblogs.asp.net/cumpsd/archive/tags/C_2300_/default.aspx" /><category term="Tweaks" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Tweaks/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/cumpsd/archive/tags/.NET/default.aspx" /><category term="Security" scheme="http://weblogs.asp.net/cumpsd/archive/tags/Security/default.aspx" /></entry></feed>