<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ssasidh</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ssasidh"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Ssasidh"/>
	<updated>2026-06-25T06:32:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71051</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71051"/>
		<updated>2012-11-20T02:30:13Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ Facade Pattern Tutorial at thecafetechno.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. [http://www.blackwasp.co.uk/Facade.aspx Blackwasp.co.uk]===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf Lecture Notes on Facade Pattern]===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 Facade Pattern at dofactory.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. [http://www.theperlreview.com/Articles/v0i4/facade.pdf Facade Pattern at theperlreview.com] ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl.&lt;br /&gt;
&lt;br /&gt;
=== 9. [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade Structural Facades]===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern.&lt;br /&gt;
&lt;br /&gt;
=== 10. [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern The Facade Pattern]===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71050</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71050"/>
		<updated>2012-11-20T02:29:53Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ Facade Pattern Tutorial at thecafetechno.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. [http://www.blackwasp.co.uk/Facade.aspx Blackwasp.co.uk]===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf Lecture Notes on Facade Pattern]===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 Facade Pattern at dofactory.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. [http://www.theperlreview.com/Articles/v0i4/facade.pdf Facade Pattern at theperlreview.com] ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl.&lt;br /&gt;
&lt;br /&gt;
=== 9. [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade Structural Facades]===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern.&lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71049</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71049"/>
		<updated>2012-11-20T02:29:26Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ Facade Pattern Tutorial at thecafetechno.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. [http://www.blackwasp.co.uk/Facade.aspx Blackwasp.co.uk]===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf Lecture Notes on Facade Pattern]===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 Facade Pattern at dofactory.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. [http://www.theperlreview.com/Articles/v0i4/facade.pdf Facade Pattern at theperlreview.com] ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl.&lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71047</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71047"/>
		<updated>2012-11-20T02:28:36Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ Facade Pattern Tutorial at thecafetechno.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. [http://www.blackwasp.co.uk/Facade.aspx Blackwasp.co.uk]===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf Lecture Notes on Facade Pattern]===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 Facade Pattern at dofactory.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71046</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71046"/>
		<updated>2012-11-20T02:28:12Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ Facade Pattern Tutorial at thecafetechno.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. [http://www.blackwasp.co.uk/Facade.aspx Blackwasp.co.uk]===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf Lecture Notes on Facade Pattern]===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71045</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71045"/>
		<updated>2012-11-20T02:27:38Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 5. http://www.blackwasp.co.uk/Facade.aspx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ Facade Pattern Tutorial at thecafetechno.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. [http://www.blackwasp.co.uk/Facade.aspx Blackwasp.co.uk]===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71043</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71043"/>
		<updated>2012-11-20T02:26:53Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ Facade Pattern Tutorial at thecafetechno.com]===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71042</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71042"/>
		<updated>2012-11-20T02:26:09Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 3. http://sourcemaking.com/design_patterns/facade */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://sourcemaking.com/design_patterns/facade Facade Patterns at sourcemaking.com] ===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71041</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=71041"/>
		<updated>2012-11-20T02:23:14Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 2. http://java.dzone.com/articles/design-patterns-uncovered-1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://java.dzone.com/articles/design-patterns-uncovered-1 Design Patterns at java.dzone.com]===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;br /&gt;
# http://en.wikipedia.org/wiki/Facade_pattern&lt;br /&gt;
# http://userpages.umbc.edu/~tarr/dp/lectures/&lt;br /&gt;
# http://www.dofactory.com/Default.aspx&lt;br /&gt;
# http://www.headfirstlabs.com/books/hfdp/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70896</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70896"/>
		<updated>2012-11-19T23:28:10Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison of Videos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70895</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70895"/>
		<updated>2012-11-19T23:26:41Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison of Videos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70894</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70894"/>
		<updated>2012-11-19T23:26:18Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison of Videos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70892</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70892"/>
		<updated>2012-11-19T23:25:47Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison of Videos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! C#&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70891</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70891"/>
		<updated>2012-11-19T23:25:12Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison of Videos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Language&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! C#&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! Java&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70885</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70885"/>
		<updated>2012-11-19T23:20:14Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison of Videos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! [http://en.wikipedia.org/wiki/Facade_pattern #1]&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! [http://java.dzone.com/articles/design-patterns-uncovered-1 #2]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://sourcemaking.com/design_patterns/facade #3]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/ #4] &lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.blackwasp.co.uk/Facade.aspx #5]&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf #6]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 #7]&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! &lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.theperlreview.com/Articles/v0i4/facade.pdf #8]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! &lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade #9]&lt;br /&gt;
! ****&lt;br /&gt;
! **&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern #10]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=wFOCmN5zNHA #1]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related #2]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 #3]&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! [https://www.youtube.com/watch?v=B1Y8fcYrz5o #4]&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70859</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70859"/>
		<updated>2012-11-19T22:51:03Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;br /&gt;
# http://www.theperlreview.com/&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70857</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70857"/>
		<updated>2012-11-19T22:49:50Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Directory of Sites''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Comparison of Videos''' ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70850</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70850"/>
		<updated>2012-11-19T22:45:19Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70847</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70847"/>
		<updated>2012-11-19T22:44:04Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 3. Facade Design Pattern - Course C# 4.0 by Avad Boudiah */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Ayad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70844</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70844"/>
		<updated>2012-11-19T22:43:18Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Video tutorials on Facade pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Avad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70841</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70841"/>
		<updated>2012-11-19T22:42:59Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 4. Facade Design Pattern by Derek Banas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Avad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4.[https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70832</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70832"/>
		<updated>2012-11-19T22:37:14Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Video tutorials on Facade pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Avad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas] ===&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70831</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70831"/>
		<updated>2012-11-19T22:36:49Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Video tutorials on Facade pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern by Zane Academy] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern by Mike Abyss]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0 by Avad Boudiah] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
=== 4. [https://www.youtube.com/watch?v=B1Y8fcYrz5o Facade Design Pattern by Derek Banas]&lt;br /&gt;
&lt;br /&gt;
This video describes a step by step approach to implement the facade pattern with the help of a real world bank account example. The narrator has provided with links to the code in the description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70817</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70817"/>
		<updated>2012-11-19T22:19:19Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ***&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ****&lt;br /&gt;
! ***&lt;br /&gt;
! ****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70750</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70750"/>
		<updated>2012-11-19T21:16:42Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Examples&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70749</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70749"/>
		<updated>2012-11-19T21:16:15Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70735</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70735"/>
		<updated>2012-11-19T21:11:51Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Language&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Language&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70727</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70727"/>
		<updated>2012-11-19T21:08:02Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Language&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Language&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70725</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70725"/>
		<updated>2012-11-19T21:07:23Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Language&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
! Usage Guidance&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simplicity&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Language&lt;br /&gt;
! Comparison with related patterns&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
! Content Structure&lt;br /&gt;
! Real World Example&lt;br /&gt;
! Advantages and Disadvantages&lt;br /&gt;
! Usage Guidance|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70715</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70715"/>
		<updated>2012-11-19T20:59:07Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 120%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70712</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70712"/>
		<updated>2012-11-19T20:57:41Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
! *****&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70562</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70562"/>
		<updated>2012-11-19T09:00:09Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Directory of Sites'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of Videos'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Videos&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! Video 1&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Video 2&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Video 3&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Video 4&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70561</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70561"/>
		<updated>2012-11-19T08:50:20Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! Site 1&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 2&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 3&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 4&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 5&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 6&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 7&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 8&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 9&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! Site 10&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70560</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70560"/>
		<updated>2012-11-19T08:49:03Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70559</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70559"/>
		<updated>2012-11-19T08:48:15Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Sites|Sites&lt;br /&gt;
! Simple to Understand&lt;br /&gt;
! Coded Examples&lt;br /&gt;
! Languages&lt;br /&gt;
! Pseudo-Code&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70558</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70558"/>
		<updated>2012-11-19T08:43:32Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
! Unit Testing&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70557</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70557"/>
		<updated>2012-11-19T08:38:53Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Video tutorials on Facade pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
=== 3. [http://mrbool.com/facade-design-pattern-course-c-4-0-lesson-23/18691 Facade Design Pattern - Course C# 4.0] ===&lt;br /&gt;
&lt;br /&gt;
This video is from a series of design patterns tutorials using coded samples in C#. It is a step by step screencast that tries to explain the actual working of the facade pattern with a simple example.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70556</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70556"/>
		<updated>2012-11-19T08:38:42Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Directory of Sites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
=== 7. http://www.dofactory.com/Patterns/PatternFacade.aspx#_self2 ===&lt;br /&gt;
&lt;br /&gt;
This page describes a very concise introduction to the Facade pattern. The author explains a brief overview of the pattern and it's usage using UML diagrams. The highlight of the article is a with an explanatory example and then a much more detailed real world example.&lt;br /&gt;
&lt;br /&gt;
=== 8. http://www.theperlreview.com/Articles/v0i4/facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This paper is a scholarly article from the e-magazine &amp;quot;The Perl Review&amp;quot; [http://www.theperlreview.com/] by Brian D. Foy. The article entails how the facade pattern is used to promote reusability and to use facades as objects. The article illustrates two different types of implementing the facade pattern - adhoc facades and apriori facades. There are sufficient examples to explain each subsection and all the code samples are in Perl. &lt;br /&gt;
&lt;br /&gt;
=== 9. http://www.programmersheaven.com/2/Tutorial-Design-Patterns-Structural-Facade ===&lt;br /&gt;
&lt;br /&gt;
This is an extremely well detailed article that covers a wide variety of aspects ranging from technical definitions to actual real world implications of the facade pattern. It explains the pattern's complexities and intricacies with the help of well defined UML diagrams and actual pseudo-code to convey the idea as lucidly as possible. The article also provides with downloads of sample VB projects using the facade pattern. &lt;br /&gt;
&lt;br /&gt;
=== 10. http://www.netobjectivestest.com/PatternRepository/index.php?title=TheFacadePattern ===&lt;br /&gt;
&lt;br /&gt;
This article details the Facade pattern and how it fixes real world problems like code in legacy system. It explains with lucid diagrams and illustrations how refactoring old, legacy code are fixed with facades. However, the only shortcoming is that it doesn't have actual code blocks to explain the concepts.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70543</id>
		<title>CSC/ECE 517 Fall 2012/ch2b 1w61 ps</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch2b_1w61_ps&amp;diff=70543"/>
		<updated>2012-11-19T06:58:22Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* 2. Facade pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Facade, directory of sites=&lt;br /&gt;
==Introduction==&lt;br /&gt;
[http://en.wikipedia.org/wiki/GOF GoF] definition for facade design pattern is, &amp;quot;Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following list of sites and online videos provide information about the Facade pattern, including the implementation.&lt;br /&gt;
&lt;br /&gt;
==Directory of Sites==&lt;br /&gt;
=== 1. [http://en.wikipedia.org/wiki/Facade_pattern Facade pattern (Wikipedia)]===&lt;br /&gt;
&lt;br /&gt;
This page talks about the usage of the facade pattern. There is also a code example in Java describing the pattern.&lt;br /&gt;
Although this page attempts to describe the facade pattern and also has a code example, there is very limited content on the pattern itself. This page does not specify the advantages and disadvantages of using this pattern. Also, there is no mention of the scenarios in which this pattern could be used. A comparison with other similar patterns like Adapter is also missing.&lt;br /&gt;
&lt;br /&gt;
=== 2. http://java.dzone.com/articles/design-patterns-uncovered-1===&lt;br /&gt;
&lt;br /&gt;
This article is well-structured and starts with a real world example of the facade pattern. It also specifies similarities with the Adapter pattern in it's description. It also tells the reader when to use this pattern along with a sequence diagram of the pattern. Finally, it provides a facade pattern code example in Java. This example also has comments to help the reader in understanding the code. The disadvantages of using this pattern are also described towards the end of the article.&lt;br /&gt;
&lt;br /&gt;
=== 3. http://sourcemaking.com/design_patterns/facade===&lt;br /&gt;
&lt;br /&gt;
This article separates the description into several well defined sections which provide a good overall understanding to the reader. The article starts with the need for this pattern and then goes on to describe the pattern pattern with an simple real life example. It also provides a 'Checklist' to guide the developer in implementing the pattern. Subtle differences between Adapter and Facade pattern are also mentioned. A very attractive part of this article is that there are code examples provides for different languages like C#, C++, Delphi, Java and PHP.&lt;br /&gt;
&lt;br /&gt;
=== 4. http://thecafetechno.com/tutorials/design-patterns/facade-pattern-in-java/===&lt;br /&gt;
&lt;br /&gt;
This page describes the need for using the facade pattern. It also has a good code example for the pattern which is easy to understand. An important section of this article is that it gives several scenarios where the facade pattern could be used. The conclusion describes the advantages of the pattern. An important section that is missing is a comparison with other similar patterns.&lt;br /&gt;
&lt;br /&gt;
=== 5. http://www.blackwasp.co.uk/Facade.aspx===&lt;br /&gt;
&lt;br /&gt;
This article describes the ideal usage of the facade pattern and the advantages of this pattern. It also gives a real world example where this pattern is used which gives the reader a better idea about the pattern. There is a generic UML diagram and code example for implementing this pattern. One of the shortcomings of this article is that it doesn't use a practical example for the implementation and only gives a very generic, high-level implementation.&lt;br /&gt;
&lt;br /&gt;
=== 6. http://userpages.umbc.edu/~tarr/dp/lectures/Facade.pdf ===&lt;br /&gt;
&lt;br /&gt;
This document starts with the Intent for using the Facade pattern. It then goes on to describe the motivation and applicability for the pattern. The benefits and liabilities have also been mentioned towards the end. Although there is a real world example listed in this document, this document does not attempt to explain this example. Also, there is no code implementation present for this example.&lt;br /&gt;
&lt;br /&gt;
== Video tutorials on Facade pattern ==&lt;br /&gt;
&lt;br /&gt;
=== 1. [http://www.youtube.com/watch?v=wFOCmN5zNHA JAVA: Facade Design Pattern] ===&lt;br /&gt;
&lt;br /&gt;
This video talks about the Facade design pattern along with the UML diagram and facade pattern implementation examples from the JDK. It also talks about the advantages and the scenarios in which this pattern can be used.&lt;br /&gt;
&lt;br /&gt;
=== 2. [http://www.youtube.com/watch?v=WLjvNpP6yeQ&amp;amp;feature=related Facade pattern]===&lt;br /&gt;
This video explains the Facade pattern in detail along with a walk through of the code example. The link to the code is also provided in the video description.&lt;br /&gt;
&lt;br /&gt;
==Comparison ==&lt;br /&gt;
&lt;br /&gt;
== References==&lt;br /&gt;
# http://en.wikipedia.org/wiki/GOF&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65371</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65371"/>
		<updated>2012-09-20T20:13:10Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is designed for the principle of least surprise. Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDEs were introduced.&lt;br /&gt;
&lt;br /&gt;
==== What is an IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Integrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. &lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It contains smart auto code completion and code navigation features.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart and flexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than that in other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake and most of the Ruby gems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode. This method iscalled &amp;quot;Just In Time&amp;quot;(JIT) or it can compile it ahead of time to produce Java bytecode i.e. &amp;quot;Ahead Of Time(AOT)&amp;quot;. Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
! Unit Testing&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_(programming_language)&lt;br /&gt;
#http://rubylearning.com/satishtalim/ruby_installation.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;br /&gt;
#http://www.heroku.com/&lt;br /&gt;
#http://www.aptana.com/products/studio3/download&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://netbeans.org/about/history.html&lt;br /&gt;
#http://netbeans.org/features/index.html&lt;br /&gt;
#http://wiki.netbeans.org/Ruby&lt;br /&gt;
#http://sourceforge.net/projects/rubyeclipse/&lt;br /&gt;
#http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects&lt;br /&gt;
#http://www.gnu.org/software/emacs/&lt;br /&gt;
#http://macromates.com/&lt;br /&gt;
#http://www.jetbrains.com/company/history.jsp&lt;br /&gt;
#http://www.jetbrains.com/ruby/features/index.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/JRuby&lt;br /&gt;
#http://jruby.org/&lt;br /&gt;
#http://www.easyeclipse.org/site/plugins/rubyeclipse.html&lt;br /&gt;
#http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_cs&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ms&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ri&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;br /&gt;
*[http://my.safaribooksonline.com/book/web-development/ruby/9781847193988|Aptana RadRails: An IDE for Rails Development (Book)]&lt;br /&gt;
*[http://www.amazon.com/NetBeans-Ruby-Rails-JRuby-Firstpress/dp/1430216360|NetBeans Ruby and Rails IDE with JRuby (Book)]&lt;br /&gt;
*[http://pragprog.com/book/textmate/textmate|TextMate: Power Editing for the Mac (Book)]&lt;br /&gt;
*[http://jetbrains.dzone.com/articles/navigation-inside-rubymine|Navigation Inside RubyMine (Online Resource)]&lt;br /&gt;
*[http://pragprog.com/book/jruby/using-jruby|Using JRuby: Bringing Ruby to Java(Book)]&lt;br /&gt;
*[http://www.deitel.com/ResourceCenters/Software/Eclipse/EclipseforRubyonRailsDevelopment/tabid/1467/Default.aspx|Eclipse for Ruby on Rails Development (Online Resource)]&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65236</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65236"/>
		<updated>2012-09-19T21:57:55Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* What is an IDE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is designed for the principle of least surprise. Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDEs were introduced.&lt;br /&gt;
&lt;br /&gt;
==== What is an IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Integrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. &lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It contains smart auto code completion and code navigation features.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart and flexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than that in other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake and most of the Ruby gems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode. This method iscalled &amp;quot;Just In Time&amp;quot;(JIT) or it can compile it ahead of time to produce Java bytecode i.e. &amp;quot;Ahead Of Time(AOT)&amp;quot;. Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
! Unit Testing&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_(programming_language)&lt;br /&gt;
#http://rubylearning.com/satishtalim/ruby_installation.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;br /&gt;
#http://www.heroku.com/&lt;br /&gt;
#http://www.aptana.com/products/studio3/download&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://netbeans.org/about/history.html&lt;br /&gt;
#http://netbeans.org/features/index.html&lt;br /&gt;
#http://wiki.netbeans.org/Ruby&lt;br /&gt;
#http://sourceforge.net/projects/rubyeclipse/&lt;br /&gt;
#http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects&lt;br /&gt;
#http://www.gnu.org/software/emacs/&lt;br /&gt;
#http://macromates.com/&lt;br /&gt;
#http://www.jetbrains.com/company/history.jsp&lt;br /&gt;
#http://www.jetbrains.com/ruby/features/index.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/JRuby&lt;br /&gt;
#http://jruby.org/&lt;br /&gt;
#http://www.easyeclipse.org/site/plugins/rubyeclipse.html&lt;br /&gt;
#http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_cs&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ms&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;br /&gt;
*[http://my.safaribooksonline.com/book/web-development/ruby/9781847193988|Aptana RadRails: An IDE for Rails Development (Book)]&lt;br /&gt;
*[http://www.amazon.com/NetBeans-Ruby-Rails-JRuby-Firstpress/dp/1430216360|NetBeans Ruby and Rails IDE with JRuby (Book)]&lt;br /&gt;
*[http://pragprog.com/book/textmate/textmate|TextMate: Power Editing for the Mac (Book)]&lt;br /&gt;
*[http://jetbrains.dzone.com/articles/navigation-inside-rubymine|Navigation Inside RubyMine (Online Resource)]&lt;br /&gt;
*[http://pragprog.com/book/jruby/using-jruby|Using JRuby: Bringing Ruby to Java(Book)]&lt;br /&gt;
*[http://www.deitel.com/ResourceCenters/Software/Eclipse/EclipseforRubyonRailsDevelopment/tabid/1467/Default.aspx|Eclipse for Ruby on Rails Development (Online Resource)]&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65056</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65056"/>
		<updated>2012-09-15T01:38:04Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Feature Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is designed for the principle of least surprise. Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDEs were introduced.&lt;br /&gt;
&lt;br /&gt;
==== What is an IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It contains smart auto code completion and code navigation features.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart and flexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than that in other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake and most of the Ruby gems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode. This method iscalled &amp;quot;Just In Time&amp;quot;(JIT) or it can compile it ahead of time to produce Java bytecode i.e. &amp;quot;Ahead Of Time(AOT)&amp;quot;. Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
! Unit Testing&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_(programming_language)&lt;br /&gt;
#http://rubylearning.com/satishtalim/ruby_installation.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;br /&gt;
#http://www.heroku.com/&lt;br /&gt;
#http://www.aptana.com/products/studio3/download&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://netbeans.org/about/history.html&lt;br /&gt;
#http://netbeans.org/features/index.html&lt;br /&gt;
#http://wiki.netbeans.org/Ruby&lt;br /&gt;
#http://sourceforge.net/projects/rubyeclipse/&lt;br /&gt;
#http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects&lt;br /&gt;
#http://www.gnu.org/software/emacs/&lt;br /&gt;
#http://macromates.com/&lt;br /&gt;
#http://www.jetbrains.com/company/history.jsp&lt;br /&gt;
#http://www.jetbrains.com/ruby/features/index.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/JRuby&lt;br /&gt;
#http://jruby.org/&lt;br /&gt;
#http://www.easyeclipse.org/site/plugins/rubyeclipse.html&lt;br /&gt;
#http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_cs&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ms&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;br /&gt;
*[http://my.safaribooksonline.com/book/web-development/ruby/9781847193988|Aptana RadRails: An IDE for Rails Development (Book)]&lt;br /&gt;
*[http://www.amazon.com/NetBeans-Ruby-Rails-JRuby-Firstpress/dp/1430216360|NetBeans Ruby and Rails IDE with JRuby (Book)]&lt;br /&gt;
*[http://pragprog.com/book/textmate/textmate|TextMate: Power Editing for the Mac (Book)]&lt;br /&gt;
*[http://jetbrains.dzone.com/articles/navigation-inside-rubymine|Navigation Inside RubyMine (Online Resource)]&lt;br /&gt;
*[http://pragprog.com/book/jruby/using-jruby|Using JRuby: Bringing Ruby to Java(Book)]&lt;br /&gt;
*[http://www.deitel.com/ResourceCenters/Software/Eclipse/EclipseforRubyonRailsDevelopment/tabid/1467/Default.aspx|Eclipse for Ruby on Rails Development (Online Resource)]&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65055</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65055"/>
		<updated>2012-09-15T01:36:50Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Ruby */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is designed for the principle of least surprise. Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDEs were introduced.&lt;br /&gt;
&lt;br /&gt;
==== What is an IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It contains smart auto code completion and code navigation features.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart and flexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than that in other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake and most of the Ruby gems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode. This method iscalled &amp;quot;Just In Time&amp;quot;(JIT) or it can compile it ahead of time to produce Java bytecode i.e. &amp;quot;Ahead Of Time(AOT)&amp;quot;. Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_(programming_language)&lt;br /&gt;
#http://rubylearning.com/satishtalim/ruby_installation.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;br /&gt;
#http://www.heroku.com/&lt;br /&gt;
#http://www.aptana.com/products/studio3/download&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://netbeans.org/about/history.html&lt;br /&gt;
#http://netbeans.org/features/index.html&lt;br /&gt;
#http://wiki.netbeans.org/Ruby&lt;br /&gt;
#http://sourceforge.net/projects/rubyeclipse/&lt;br /&gt;
#http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects&lt;br /&gt;
#http://www.gnu.org/software/emacs/&lt;br /&gt;
#http://macromates.com/&lt;br /&gt;
#http://www.jetbrains.com/company/history.jsp&lt;br /&gt;
#http://www.jetbrains.com/ruby/features/index.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/JRuby&lt;br /&gt;
#http://jruby.org/&lt;br /&gt;
#http://www.easyeclipse.org/site/plugins/rubyeclipse.html&lt;br /&gt;
#http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_cs&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ms&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;br /&gt;
*[http://my.safaribooksonline.com/book/web-development/ruby/9781847193988|Aptana RadRails: An IDE for Rails Development (Book)]&lt;br /&gt;
*[http://www.amazon.com/NetBeans-Ruby-Rails-JRuby-Firstpress/dp/1430216360|NetBeans Ruby and Rails IDE with JRuby (Book)]&lt;br /&gt;
*[http://pragprog.com/book/textmate/textmate|TextMate: Power Editing for the Mac (Book)]&lt;br /&gt;
*[http://jetbrains.dzone.com/articles/navigation-inside-rubymine|Navigation Inside RubyMine (Online Resource)]&lt;br /&gt;
*[http://pragprog.com/book/jruby/using-jruby|Using JRuby: Bringing Ruby to Java(Book)]&lt;br /&gt;
*[http://www.deitel.com/ResourceCenters/Software/Eclipse/EclipseforRubyonRailsDevelopment/tabid/1467/Default.aspx|Eclipse for Ruby on Rails Development (Online Resource)]&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65048</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65048"/>
		<updated>2012-09-15T01:33:24Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is desined for the principle of least surprise.Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDE's were introduced.&lt;br /&gt;
&lt;br /&gt;
==== What is an IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It contains smart auto code completion and code navigation features.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart and flexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than that in other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_(programming_language)&lt;br /&gt;
#http://rubylearning.com/satishtalim/ruby_installation.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;br /&gt;
#http://www.heroku.com/&lt;br /&gt;
#http://www.aptana.com/products/studio3/download&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://netbeans.org/about/history.html&lt;br /&gt;
#http://netbeans.org/features/index.html&lt;br /&gt;
#http://wiki.netbeans.org/Ruby&lt;br /&gt;
#http://sourceforge.net/projects/rubyeclipse/&lt;br /&gt;
#http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects&lt;br /&gt;
#http://www.gnu.org/software/emacs/&lt;br /&gt;
#http://macromates.com/&lt;br /&gt;
#http://www.jetbrains.com/company/history.jsp&lt;br /&gt;
#http://www.jetbrains.com/ruby/features/index.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/JRuby&lt;br /&gt;
#http://jruby.org/&lt;br /&gt;
#http://www.easyeclipse.org/site/plugins/rubyeclipse.html&lt;br /&gt;
#http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_cs&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ms&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;br /&gt;
*[http://my.safaribooksonline.com/book/web-development/ruby/9781847193988|Aptana RadRails: An IDE for Rails Development (Book)]&lt;br /&gt;
*[http://www.amazon.com/NetBeans-Ruby-Rails-JRuby-Firstpress/dp/1430216360|NetBeans Ruby and Rails IDE with JRuby (Book)]&lt;br /&gt;
*[http://pragprog.com/book/textmate/textmate|TextMate: Power Editing for the Mac (Book)]&lt;br /&gt;
*[http://jetbrains.dzone.com/articles/navigation-inside-rubymine|Navigation Inside RubyMine (Online Resource)]&lt;br /&gt;
*[http://pragprog.com/book/jruby/using-jruby|Using JRuby: Bringing Ruby to Java(Book)]&lt;br /&gt;
*[http://www.deitel.com/ResourceCenters/Software/Eclipse/EclipseforRubyonRailsDevelopment/tabid/1467/Default.aspx|Eclipse for Ruby on Rails Development (Online Resource)]&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65046</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65046"/>
		<updated>2012-09-15T01:33:11Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Additional References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is desined for the principle of least surprise.Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDE's were introduced.&lt;br /&gt;
&lt;br /&gt;
==== What is an IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It contains smart auto code completion and code navigation features.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart and flexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_(programming_language)&lt;br /&gt;
#http://rubylearning.com/satishtalim/ruby_installation.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;br /&gt;
#http://www.heroku.com/&lt;br /&gt;
#http://www.aptana.com/products/studio3/download&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://netbeans.org/about/history.html&lt;br /&gt;
#http://netbeans.org/features/index.html&lt;br /&gt;
#http://wiki.netbeans.org/Ruby&lt;br /&gt;
#http://sourceforge.net/projects/rubyeclipse/&lt;br /&gt;
#http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects&lt;br /&gt;
#http://www.gnu.org/software/emacs/&lt;br /&gt;
#http://macromates.com/&lt;br /&gt;
#http://www.jetbrains.com/company/history.jsp&lt;br /&gt;
#http://www.jetbrains.com/ruby/features/index.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/JRuby&lt;br /&gt;
#http://jruby.org/&lt;br /&gt;
#http://www.easyeclipse.org/site/plugins/rubyeclipse.html&lt;br /&gt;
#http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_cs&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ms&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;br /&gt;
*[http://my.safaribooksonline.com/book/web-development/ruby/9781847193988|Aptana RadRails: An IDE for Rails Development (Book)]&lt;br /&gt;
*[http://www.amazon.com/NetBeans-Ruby-Rails-JRuby-Firstpress/dp/1430216360|NetBeans Ruby and Rails IDE with JRuby (Book)]&lt;br /&gt;
*[http://pragprog.com/book/textmate/textmate|TextMate: Power Editing for the Mac (Book)]&lt;br /&gt;
*[http://jetbrains.dzone.com/articles/navigation-inside-rubymine|Navigation Inside RubyMine (Online Resource)]&lt;br /&gt;
*[http://pragprog.com/book/jruby/using-jruby|Using JRuby: Bringing Ruby to Java(Book)]&lt;br /&gt;
*[http://www.deitel.com/ResourceCenters/Software/Eclipse/EclipseforRubyonRailsDevelopment/tabid/1467/Default.aspx|Eclipse for Ruby on Rails Development (Online Resource)]&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65044</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65044"/>
		<updated>2012-09-15T01:32:42Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Additional References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is desined for the principle of least surprise.Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDE's were introduced.&lt;br /&gt;
&lt;br /&gt;
==== What is an IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It contains smart auto code completion and code navigation features.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart and flexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_(programming_language)&lt;br /&gt;
#http://rubylearning.com/satishtalim/ruby_installation.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://en.wikipedia.org/wiki/Ruby_on_Rails&lt;br /&gt;
#http://www.heroku.com/&lt;br /&gt;
#http://www.aptana.com/products/studio3/download&lt;br /&gt;
#http://en.wikipedia.org/wiki/RadRails&lt;br /&gt;
#http://netbeans.org/about/history.html&lt;br /&gt;
#http://netbeans.org/features/index.html&lt;br /&gt;
#http://wiki.netbeans.org/Ruby&lt;br /&gt;
#http://sourceforge.net/projects/rubyeclipse/&lt;br /&gt;
#http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects&lt;br /&gt;
#http://www.gnu.org/software/emacs/&lt;br /&gt;
#http://macromates.com/&lt;br /&gt;
#http://www.jetbrains.com/company/history.jsp&lt;br /&gt;
#http://www.jetbrains.com/ruby/features/index.html&lt;br /&gt;
#http://en.wikipedia.org/wiki/JRuby&lt;br /&gt;
#http://jruby.org/&lt;br /&gt;
#http://www.easyeclipse.org/site/plugins/rubyeclipse.html&lt;br /&gt;
#http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_cs&lt;br /&gt;
#http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ms&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;br /&gt;
[http://my.safaribooksonline.com/book/web-development/ruby/9781847193988|Aptana RadRails: An IDE for Rails Development (Book)]&lt;br /&gt;
[http://www.amazon.com/NetBeans-Ruby-Rails-JRuby-Firstpress/dp/1430216360|NetBeans Ruby and Rails IDE with JRuby (Book)]&lt;br /&gt;
[http://pragprog.com/book/textmate/textmate|TextMate: Power Editing for the Mac (Book)]&lt;br /&gt;
[http://jetbrains.dzone.com/articles/navigation-inside-rubymine|Navigation Inside RubyMine (Online Resource)]&lt;br /&gt;
[http://pragprog.com/book/jruby/using-jruby|Using JRuby: Bringing Ruby to Java(Book)]&lt;br /&gt;
[http://www.deitel.com/ResourceCenters/Software/Eclipse/EclipseforRubyonRailsDevelopment/tabid/1467/Default.aspx|Eclipse for Ruby on Rails Development (Online Resource)]&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65029</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65029"/>
		<updated>2012-09-15T01:24:01Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Refactoring Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is desined for the principle of least surprise.Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDE's were introduced.&lt;br /&gt;
&lt;br /&gt;
==== IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It has a smart auto code completion and code navigation feature.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart andflexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|[27]]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65027</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65027"/>
		<updated>2012-09-15T01:23:45Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Refactoring Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is desined for the principle of least surprise.Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDE's were introduced.&lt;br /&gt;
&lt;br /&gt;
==== IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It has a smart auto code completion and code navigation feature.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart andflexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/][[CSC/ECE_517_Fall_2011/ch1_1a_ms | [24]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[26]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|27]]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65025</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65025"/>
		<updated>2012-09-15T01:23:06Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Refactoring Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is desined for the principle of least surprise.Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDE's were introduced.&lt;br /&gt;
&lt;br /&gt;
==== IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It has a smart auto code completion and code navigation feature.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart andflexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[[CSC/ECE_517_Fall_2011/ch1_1a_ms | [23]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[24]]][[CSC/ECE_517_Fall_2011/ch1_1a_ri|[25]]][[CSC/ECE_517_Fall_2011/ch1_1a_lj|26]][http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65023</id>
		<title>CSC/ECE 517 Fall 2012/ch1 1w29 sa</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2012/ch1_1w29_sa&amp;diff=65023"/>
		<updated>2012-09-15T01:22:24Z</updated>

		<summary type="html">&lt;p&gt;Ssasidh: /* Refactoring Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IDEs for Ruby ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
----&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
----&lt;br /&gt;
Ruby is a dynamic, reflective, object oriented programming language which was first developed in mid 90s by Yukihiro &amp;quot;Matz&amp;quot; Matsumoto in Japan.[http://en.wikipedia.org/wiki/Ruby_(programming_language)]. It is a cross plat-form interpreted and object-oriented language. It is desined for the principle of least surprise.Matz says &amp;quot;I wanted to minimize my frustration during programming, so I want to minimize my effort in programming. That was my primary goal in designing Ruby. I want to have fun in programming myself. After releasing Ruby and many people around the world got to know Ruby, they said they feel the way I feel. They came up with the phrase the principle of least surprise.&amp;quot;[http://rubylearning.com/satishtalim/ruby_installation.html]&lt;br /&gt;
In 2004, web application framework of Ruby &amp;quot;Ruby on Rails&amp;quot; was introduced by David Heinemeier Hansson. With increased complexity of codes, it became essential to design a development environment which will include some intelligence in code writing with increased version control and simpler debugging. Thus IDE's were introduced.&lt;br /&gt;
&lt;br /&gt;
==== IDE ====&lt;br /&gt;
----&lt;br /&gt;
An IDE(Intgrated Development Environment) is a software application which provides comprehensive facilities during a project for its design, development, production. With these facilities for heavy projects, it should be seen that simpler projects are not being implemented with increased complexity.&lt;br /&gt;
An IDE normally consists of:&lt;br /&gt;
#A source code editor&lt;br /&gt;
#A compiler and/or an interpreter (computing)|interpreter&lt;br /&gt;
#Build automation tools&lt;br /&gt;
#A debugger&lt;br /&gt;
#Version Control System&lt;br /&gt;
#Testing facilities&lt;br /&gt;
&lt;br /&gt;
This article explains features of various IDE which are widely used for development of Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== List of Popular IDEs for Ruby ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== RadRails ====&lt;br /&gt;
[[File:radrails-logo.png|thumb|RadRails Logo]]&lt;br /&gt;
[[File:R2-assist-lrg.png|thumb|The Code Assist Feature]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== History =====&lt;br /&gt;
RadRails was started as an open source project by Kyle Shank, Marc Baumbach, and Matt Kent in September 2005 during their time as developers at IBM at Raleigh, NC. Along with Andy Gianfagna and Ryan Lowe, the project continued through 2006. Based on their idea for a startup, Kyle and Matt working on Persai with RadRails pushed as a side project. In the best interests of the RadRails community, Kyle handed over the project to Aptana who later on March 9, 2007 took over it and renamed it to Aptana RadRails.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
RadRails[http://en.wikipedia.org/wiki/RadRails] is a complete open source, web development tool supported by Aptana[http://www.aptana.com/]. RadRails is essentially a Rapid Application Development IDE for the Ruby on Rails[http://en.wikipedia.org/wiki/Ruby_on_Rails] framework. It comes bundled with an Integrated Debugger (for a more visual and intuitive debugging experience) and a Built-in Terminal (to run utilities like gem, rake etc.). The IDE can be customized to include custom scripts and commands. Some of the other salient features of RadRails include:&lt;br /&gt;
&lt;br /&gt;
* HTML, CSS, and JavaScript Unification&lt;br /&gt;
: Apart from Ruby and Rails, it supports development with HTML, CSS, Javascript, PHP and Python. It also provides support for latest versions of popular browsers along with HTML5 and CSS3.&lt;br /&gt;
* Deployment Wizard&lt;br /&gt;
: Provides support for multiple protocols like FTP, SFTP, FTPS and Capistrano. Enables support for continuous and multiple synchronized setups and integration and deployment to hosting services like Heroku[http://www.heroku.com/].&lt;br /&gt;
* Git Integration&lt;br /&gt;
: Supports most Github based functions like git source code control, collaborating with team mates to use merge, pull and push to repositories set up at Github or other servers. Git-based deployments are also supported.&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. The IDE is built to support cross platform compatibility and comes with a GNU GPL license. The latest stable release is version 3.2.2.[http://www.aptana.com/products/studio3/download]&lt;br /&gt;
At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool.[http://en.wikipedia.org/wiki/RadRails]&lt;br /&gt;
&lt;br /&gt;
==== Netbeans ====&lt;br /&gt;
----&lt;br /&gt;
[[File:netbeans-logo.png|thumb|Netbeans Logo]]&lt;br /&gt;
[[File:ruby_netbeans.png|thumb|Netbeans IDE for Ruby]]&lt;br /&gt;
===== History =====&lt;br /&gt;
NetBeans started as a student project (originally called Xelfi) in Czechoslovakia, now the Czech Republic, in 1996. The goal was to write a Delphi-like Java IDE (Integrated Development Environment) in Java. Xelfi was the first Java IDE written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since the Java IDE space was uncharted territory at that time.[http://netbeans.org/about/history.html]&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.[http://netbeans.org/features/index.html]&lt;br /&gt;
Some of the smart features[http://wiki.netbeans.org/Ruby] in Netbeans IDE for Ruby are:&lt;br /&gt;
* Refactoring and Debugging&lt;br /&gt;
* Code Coverage Support&lt;br /&gt;
* Rake Runner&lt;br /&gt;
* Live Code Templates&lt;br /&gt;
* Ruby Gems Manager&lt;br /&gt;
 &lt;br /&gt;
===== Architecture =====&lt;br /&gt;
Ruby architecture for NetBeans consists of the following three layers:&lt;br /&gt;
::Backends&lt;br /&gt;
NetBeans utilizes debug-commons project from RubyForge. This project is common effort of RDT developers (mainly Markus Barchfeld) and Netbeans. All backend works are being done there.&lt;br /&gt;
::Intermediate library&lt;br /&gt;
It is an IDE-independent Java library intermediating communication between various Ruby debugging backends and a frontend. It is based on the one that was in RDT[http://sourceforge.net/projects/rubyeclipse/] but with slightly remade threading part and others part refactored. Also this library will be kept and developed as part of debug-commons since it is supposed to be developed by all interested parties in the future. It uses kxml2 XML Pull Parser implementation which needs to be bundled within a frontend.&lt;br /&gt;
::NetBeans frontend&lt;br /&gt;
Standard NetBeans module utilizing libraries/layers above.&lt;br /&gt;
&lt;br /&gt;
==== Textmate ====&lt;br /&gt;
----&lt;br /&gt;
[[File:textmate-logo.png|thumb|TextMate Logo]]&lt;br /&gt;
[[File:mac_textmate.jpg|thumb|Ruby Code for Binary Tree in TextMate]]&lt;br /&gt;
===== History =====&lt;br /&gt;
Allan Odgaard is known to be the principal developer of TextMate. He started the project way back in 2004 and released the first version TextMate 1.0 on 5 October 2004. Through the period of the following years, Odgaard released more stable versions, like TextMate 1.5, before it was recognized officially by winning the Apple Design Award for Best Developer Tool, at Apple’s Worldwide Developers Conference in San Francisco, California in August 2006. It has continued to release improvements over the years with TextMate 1.5.11 being the latest stable release as of 13 July 2012. Also, on 7 September, 2012, TextMate 2.0 has been made available as a preview release.&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
TextMate is the most popular Ruby based IDE for the Mac OS. It is a simple GUI based text editor tool specially made for Mac OS X.   Some the most important features provided by TextMate include:&lt;br /&gt;
* Nested scopes&lt;br /&gt;
* CSS-like Selectors to Pinpoint the Scope of Actions and Settings&lt;br /&gt;
* Auto-Complete&lt;br /&gt;
* Dynamic Outline for Working With Multiple Files[http://manual.macromates.com/en/working_with_multiple_files#auto-updating_projects]&lt;br /&gt;
* Project management&lt;br /&gt;
&lt;br /&gt;
===== Architecture =====&lt;br /&gt;
TextMate is often referred to as a culmination of EMACs[http://www.gnu.org/software/emacs/] and Mac OS X. In spite of numerous requests for a Windows or Linux version, TextMate continues to be exclusive to the Mac Operating Systems.&lt;br /&gt;
TextMate is not an IDE but by using its powerful snippets, macros, and unique scoping system, it can often provide features that even a language specific IDE lacks. It has enough project management features to keep most users happy, but is otherwise kept lightweight with a clean and minimalistic GUI.[http://macromates.com/]&lt;br /&gt;
&lt;br /&gt;
==== RubyMine ====&lt;br /&gt;
----&lt;br /&gt;
[[File:rm-logo.png|thumb|RubyMine Logo]]&lt;br /&gt;
[[File:RubyMine_interface.png|thumb|RubyMine Interface]]&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. First version of RubyMine was released on April 28th, 2009.Its most recent version is RubyMine 4.5[http://www.jetbrains.com/company/history.jsp]&lt;br /&gt;
&lt;br /&gt;
===== Overview[http://www.jetbrains.com/ruby/features/index.html] =====&lt;br /&gt;
#RubyMine has a ruby editor with highlighting feature and coloring scheme. It has a smart auto code completion and code navigation feature.&lt;br /&gt;
#RubyMine supports Ruby on rails with intelligent code maintenance.&lt;br /&gt;
#Testing features of RuyMine:&lt;br /&gt;
## Unit Testing&lt;br /&gt;
## Functional testing with Cucumber&lt;br /&gt;
## Support for Shoulda Framework&lt;br /&gt;
#It has a graphical debugger. Debugging features include: &lt;br /&gt;
##Convinient user interface&lt;br /&gt;
##Smart andflexible breakpoints&lt;br /&gt;
##Call stack. &lt;br /&gt;
##Remote debugging is also possible.&lt;br /&gt;
#VCS specific operations include subversion, git, cvs, perforce, github .&lt;br /&gt;
&lt;br /&gt;
===== Pros =====&lt;br /&gt;
#RubyMine is a completely Ruby on Rails focused tool.&lt;br /&gt;
#It provides built in support for all common gems required for rails development.&lt;br /&gt;
#It also provides very good support for other frameworks.&lt;br /&gt;
#Autocomplete feature makes the tool intelligent.&lt;br /&gt;
#Debugger in RubyMine is easy to set up.&lt;br /&gt;
&lt;br /&gt;
===== Cons =====&lt;br /&gt;
#RubyMine is not a lightweight tool.&lt;br /&gt;
#Lots of bundles are required to create a project. If developer doesn't have all of them, project won't work.&lt;br /&gt;
#Refactoring in RubyMine is more confusing than other tools like Ecllipse, NetBeans.&lt;br /&gt;
&lt;br /&gt;
==== jRuby====&lt;br /&gt;
----&lt;br /&gt;
[[File:jruby-logo.png|thumb|JRuby Logo]]&lt;br /&gt;
[[File:jruby-debugger.png|thumb|JRuby Debugger]]&lt;br /&gt;
===== History =====&lt;br /&gt;
JRuby was created in 2001 by Jan Petersen. It was created to support Ruby development. It started supporting Ruby on Rails from version 0.9 which was released in May 2006. Latest version of Jruby is 1.6.0 which includes Ruby 1.9.2 compatibility and experimental support for C APIs of ruby 1.9.2[http://en.wikipedia.org/wiki/JRuby]&lt;br /&gt;
&lt;br /&gt;
===== Features[http://jruby.org/] =====&lt;br /&gt;
JRuby is essentially a Ruby interpreter which is written in Java. Important features of Jruby include:&lt;br /&gt;
#It is an open source software.&lt;br /&gt;
#It is platform independent.&lt;br /&gt;
#It can be called directly from Java programs.&lt;br /&gt;
#It supports swing class in Java.&lt;br /&gt;
#It is compatible with all the versions of Ruby.&lt;br /&gt;
#It has built in support for Ruby on Rails, Rspec, Rake andmost of the Rubygems.&lt;br /&gt;
&lt;br /&gt;
===== Architecture[http://en.wikipedia.org/wiki/JRuby] =====&lt;br /&gt;
JRuby's virtual machine has 3 features. It can interpret the code directly, compile it just after typing it to produce Java Bytecode which is called Just In Time(JIT) or it can compile it ahead of time to produce Java bytecode i.e. Ahead Of Time(AOT). Second and third modes are available from version 1.1. JRuby virtual machine runs in all the 3 modes. Interpretation and compilation can be done at the same time. Decompilation of the code is also possible to optimize it.&lt;br /&gt;
&lt;br /&gt;
==== RDT (Ruby Plugin for Eclipse) ====&lt;br /&gt;
----&lt;br /&gt;
[[File:eclipse-logo.png|thumb|Eclipse Logo]]&lt;br /&gt;
[[File:RDT.png|thumb|Eclipse Interface]]&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Eclipse is an Integrated Development Environment which supports development in numerous languages like C, C++, COBOL, Perl, PHP, Python, R, Ruby on Rails etc. It is basically written mostly in Java was initially developed for Java development. But then it was developed not only for development phase but also for design phase. &lt;br /&gt;
RDT(Ruby Development Tool) is used for Ruby development in eclipse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
The Ruby Development Tools (RDT) contain all the components needed to develop applications using Ruby languagage. RDT includes a Ruby debugger, code outline, syntax highlighting, ri/rdoc integration, code completion, code folding, variable occurence marking and much more. [http://www.easyeclipse.org/site/plugins/rubyeclipse.html]&lt;br /&gt;
Current version of RDT is 0.5 . Improvements in next version i.e. 0.6 include:&lt;br /&gt;
#Code folding — Folding can be enabled for classes and methods.&lt;br /&gt;
#Outline view — More detailed, with support for local variables.&lt;br /&gt;
#RI view — Use Ruby's ri utility from an RDT view.&lt;br /&gt;
#Task tags — Create tasks for configurable keywords (like TODO, FIXME) in Ruby comments.&lt;br /&gt;
#Editor improvements — Auto-complete of brackets, parentheses, and single/double quotes; better code-assist.&lt;br /&gt;
#Inspection shortcuts — Configurable shortcuts for frequently used inspections during a Debug session, like showing all methods of an object, #global constants, and so on.[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/]&lt;br /&gt;
&lt;br /&gt;
=== Comparison Table of Popular IDEs for Ruby ===&lt;br /&gt;
----&lt;br /&gt;
==== Basic Comparison ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Developer&lt;br /&gt;
! Software release|Last stable release&lt;br /&gt;
! Platforms Supported|Platform Dependence&lt;br /&gt;
! Software license|License&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| Aptana|Aptana, Inc.&lt;br /&gt;
| Aptana RadRails 2.0.5&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| GNU General Public License|GPL, proprietary&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
| Oracle Corporation&lt;br /&gt;
| 7.0 (Ruby on Rails unsupported  by 7.2)&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CDDL or GPL v2&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
| 1.5.11&lt;br /&gt;
| Mac OS X&lt;br /&gt;
| 2.0 GPL, 1.0 proprietary&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
| JetBrains&lt;br /&gt;
| 4.0.3&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Proprietary&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
| Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger&lt;br /&gt;
| 1.6.7.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| CPL, GPL, LGPL&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
| Open Source Community&lt;br /&gt;
| 4.2&lt;br /&gt;
| Cross-platform&lt;br /&gt;
| Eclipse Public License&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Feature Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Refactoring&lt;br /&gt;
! Error Reporting &amp;amp; Suggestion&lt;br /&gt;
! Code Formatting&lt;br /&gt;
! Git Integration&lt;br /&gt;
! Syntax Highlights&lt;br /&gt;
! Code Folding&lt;br /&gt;
! Debugging Mode&lt;br /&gt;
! Code Analysis&lt;br /&gt;
! Rake Integration&lt;br /&gt;
! Support for Other Languages&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Refactoring Comparison ====&lt;br /&gt;
[[CSC/ECE_517_Fall_2011/ch1_1a_ms | [23]]][[CSC/ECE_517_Fall_2011/ch1_1a_cs|[24]]][[http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_ri|[25]]][[http://expertiza.csc.ncsu.edu/wiki/index.php/CSC/ECE_517_Fall_2011/ch1_1a_lj|26]][http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/]&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Integrated development environment|IDE&lt;br /&gt;
! Rename&lt;br /&gt;
! Convert Local Variable to Field&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
! Extract Method&lt;br /&gt;
! Inline Class&lt;br /&gt;
! Inline Local Variable&lt;br /&gt;
! Inline Method&lt;br /&gt;
! Merge Class Parts in File&lt;br /&gt;
! Merge with External Parts&lt;br /&gt;
! Move Field&lt;br /&gt;
! Move Method&lt;br /&gt;
! Push Down&lt;br /&gt;
! Push Up&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! NetBeans&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! RubyMine&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! Yes&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
! No&lt;br /&gt;
|-&lt;br /&gt;
! jRuby&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|-&lt;br /&gt;
! RDT (Eclipse)&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
! Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Additional References ===&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Ssasidh</name></author>
	</entry>
</feed>