<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Solomon</title>
	<atom:link href="http://www.ms.oyangudi.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ms.oyangudi.com/blog</link>
	<description>from Oyangudi...</description>
	<lastBuildDate>Sat, 06 Mar 2010 16:54:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Lambda Expressions</title>
		<link>http://www.ms.oyangudi.com/blog/video-tutorials/lambda-expressions/</link>
		<comments>http://www.ms.oyangudi.com/blog/video-tutorials/lambda-expressions/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 16:54:18 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Video Tutorials]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/video-tutorials/lambda-expressions/</guid>
		<description><![CDATA[YouTube - Lambda Expressions. What are they good for.]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:b59f5327-37d8-40e0-bc42-79ed3f5036a4" class="wlWriterEditableSmartContent"><embed src="http://www.youtube.com/v/yzEnCOKQGsY&amp;rel=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed><br />
<br />
<a href="http://www.youtube.com/watch?v=yzEnCOKQGsY">YouTube<br />
				- Lambda Expressions.  What are they good for.</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/video-tutorials/lambda-expressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSharp Extension Methods</title>
		<link>http://www.ms.oyangudi.com/blog/video-tutorials/csharp-extension-methods/</link>
		<comments>http://www.ms.oyangudi.com/blog/video-tutorials/csharp-extension-methods/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 16:44:24 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Video Tutorials]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/video-tutorials/csharp-extension-methods/</guid>
		<description><![CDATA[YouTube - CSharp Extension Methods]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:8645b67e-fe00-4330-b149-9c9ca5259a5d" class="wlWriterEditableSmartContent"><embed src="http://www.youtube.com/v/3BmVB674DIE&amp;rel=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed><br />
<br />
<a href="http://www.youtube.com/watch?v=3BmVB674DIE">YouTube<br />
				- CSharp Extension Methods</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/video-tutorials/csharp-extension-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reflection &#8211; Accessing Methods</title>
		<link>http://www.ms.oyangudi.com/blog/video-tutorials/reflection-accessing-methods/</link>
		<comments>http://www.ms.oyangudi.com/blog/video-tutorials/reflection-accessing-methods/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 15:54:44 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Video Tutorials]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/video-tutorials/reflection-accessing-methods/</guid>
		<description><![CDATA[YouTube - Reflection &#8211; Accessing Methods]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:08ef6581-6c48-4389-987c-77e6a7584381" class="wlWriterEditableSmartContent"><embed src="http://www.youtube.com/v/MTQMWFc-S2k&amp;rel=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed><br />
<br />
<a href="http://www.youtube.com/watch?v=MTQMWFc-S2k">YouTube<br />
				- Reflection &#8211; Accessing Methods</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/video-tutorials/reflection-accessing-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simplifying Reflection with Interfaces</title>
		<link>http://www.ms.oyangudi.com/blog/video-tutorials/simplifying-reflection-with-interfaces/</link>
		<comments>http://www.ms.oyangudi.com/blog/video-tutorials/simplifying-reflection-with-interfaces/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 15:48:52 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Video Tutorials]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/video-tutorials/simplifying-reflection-with-interfaces/</guid>
		<description><![CDATA[YouTube - Simplifying Reflection with Interfaces]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:0a6e3912-6828-4779-bdfe-dbc4da7906d6" class="wlWriterEditableSmartContent"><embed src="http://www.youtube.com/v/-2GO_Ux2DgQ" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed><br />
<br />
<a href="http://www.youtube.com/watch?v=-2GO_Ux2DgQ">YouTube<br />
				- Simplifying Reflection with Interfaces</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/video-tutorials/simplifying-reflection-with-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatically Implementing Interfaces</title>
		<link>http://www.ms.oyangudi.com/blog/video-tutorials/automatically-implementing-interfaces/</link>
		<comments>http://www.ms.oyangudi.com/blog/video-tutorials/automatically-implementing-interfaces/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 15:32:59 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Video Tutorials]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/video-tutorials/automatically-implementing-interfaces/</guid>
		<description><![CDATA[YouTube - Automatically Implementing Interfaces]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:44109f42-80b0-49ba-b7b8-004722ffff4f" class="wlWriterEditableSmartContent"><embed src="http://www.youtube.com/v/3ldUpP9Q0Hs&amp;rel=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed><br />
<br />
<a href="http://www.youtube.com/watch?v=3ldUpP9Q0Hs">YouTube<br />
				- Automatically Implementing Interfaces</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/video-tutorials/automatically-implementing-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Image Galleries for your website</title>
		<link>http://www.ms.oyangudi.com/blog/web-design/free-image-galleries-for-your-website/</link>
		<comments>http://www.ms.oyangudi.com/blog/web-design/free-image-galleries-for-your-website/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 04:52:45 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/web-design/free-image-galleries-for-your-website/</guid>
		<description><![CDATA[Highslide JS Smooth Gallery Slideshow 2! GreyBox (E)2 Photo Gallery Imago minishowcase pyxy Spry slideviewer Zenphoto Hoverbox FrogJS SimpleViewer Polaroid fShow dfGallery The Flash XML Gallery Flash Page Flip]]></description>
			<content:encoded><![CDATA[<p><a href="http://highslide.com/" target="_blank">Highslide JS</a></p>
<p><a href="http://smoothgallery.jondesign.net/showcase/gallery/" target="_blank">Smooth Gallery</a></p>
<p><a href="http://www.electricprism.com/aeron/slideshow/" target="_blank">Slideshow 2!</a></p>
</p>
<p><a href="http://orangoo.com/labs/GreyBox/" target="_blank">GreyBox</a></p>
<p><a href="http://www.e2interactive.com/e2_photo_gallery/" target="_blank">(E)2 Photo Gallery</a></p>
<p><a href="http://imago.codeboje.de/" target="_blank">Imago</a></p>
<p><a href="http://minishowcase.net/" target="_blank">minishowcase</a></p>
<p><a href="http://fennecfoxen.org/pyxy/gallery" target="_blank">pyxy</a></p>
<p><a href="http://labs.adobe.com/technologies/spry/demos/gallery/index.html" target="_blank">Spry</a></p>
<p><a href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html" target="_blank">slideviewer</a></p>
<p><a href="http://www.zenphoto.org/" target="_blank">Zenphoto</a></p>
<p><a href="http://sonspring.com/journal/hoverbox-image-gallery" target="_blank">Hoverbox</a></p>
<p><a href="http://www.puidokas.com/portfolio/frogjs/" target="_blank">FrogJS</a></p>
<p><a href="http://www.simpleviewer.net/simpleviewer/" target="_blank">SimpleViewer</a></p>
<p><a href="http://www.no3dfx.com/polaroid/" target="_blank">Polaroid</a></p>
<p><a href="http://www.flshow.net/" target="_blank">fShow</a></p>
<p><a href="http://www.dezinerfolio.com/2007/06/07/dfgallery/" target="_blank">dfGallery</a></p>
<p><a href="http://www.dezinerfolio.com/2007/05/21/the-flash-xml-gallery-free-download/" target="_blank">The Flash XML Gallery</a></p>
<p><a href="http://www.paulvanroekel.nl/picasa/flashpageflip/" target="_blank">Flash Page Flip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/web-design/free-image-galleries-for-your-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DateTimePicker &#8211; reset focus</title>
		<link>http://www.ms.oyangudi.com/blog/csharp/datetimepicker-reset-focus/</link>
		<comments>http://www.ms.oyangudi.com/blog/csharp/datetimepicker-reset-focus/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 03:54:18 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[DatTimePicker reset focus]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/vbnet/datetimepicker-reset-focus/</guid>
		<description><![CDATA[Code Snippet &#8211; VB.NET Private Sub DateTimePicker1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.Enter     Dim fmt As DateTimePickerFormat = DateTimePicker1.Format &#160;     DateTimePicker1.Format = DateTimePickerFormat.Long     DateTimePicker1.Format = DateTimePickerFormat.Custom     DateTimePicker1.Format = fmt End Sub &#160; Code Snippet &#8211; C# private void dateTimePicker1_Enter(object sender, EventArgs e) {     DateTimePickerFormat fmt = dateTimePicker1.Format;          dateTimePicker1.Format = DateTimePickerFormat.Long;     dateTimePicker1.Format [...]]]></description>
			<content:encoded><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0d494f32-4078-4dfa-8bdb-0e3a4c42fc51" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px">Code Snippet &#8211; VB.NET</div>
<div style="background: #ddd; max-height: 300px; overflow: auto">
<ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;">
<li><span style="color:#0000ff">Private</span> <span style="color:#0000ff">Sub</span> DateTimePicker1_Enter(<span style="color:#0000ff">ByVal</span> sender <span style="color:#0000ff">As</span> System.Object, <span style="color:#0000ff">ByVal</span> e <span style="color:#0000ff">As</span> System.EventArgs) <span style="color:#0000ff">Handles</span> DateTimePicker1.Enter</li>
<li style="background: #f3f3f3">    <span style="color:#0000ff">Dim</span> fmt <span style="color:#0000ff">As</span> DateTimePickerFormat = DateTimePicker1.Format</li>
<li>&nbsp;</li>
<li style="background: #f3f3f3">    DateTimePicker1.Format = DateTimePickerFormat.Long</li>
<li>    DateTimePicker1.Format = DateTimePickerFormat.Custom</li>
<li style="background: #f3f3f3">    DateTimePicker1.Format = fmt</li>
<li><span style="color:#0000ff">End</span> <span style="color:#0000ff">Sub</span></li>
</ol></div>
</p></div>
</p></div>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:cc322ee4-0fd6-47f7-8a9a-29f67da590e6" class="wlWriterEditableSmartContent">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
<div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px">Code Snippet &#8211; C#</div>
<div style="background: #ddd; max-height: 300px; overflow: auto">
<ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;">
<li><span style="color:#0000ff">private</span> <span style="color:#0000ff">void</span> dateTimePicker1_Enter(<span style="color:#0000ff">object</span> sender, <span style="color:#2b91af">EventArgs</span> e)</li>
<li style="background: #f3f3f3">{</li>
<li>    <span style="color:#2b91af">DateTimePickerFormat</span> fmt = dateTimePicker1.Format;</li>
<li style="background: #f3f3f3">    </li>
<li>    dateTimePicker1.Format = <span style="color:#2b91af">DateTimePickerFormat</span>.Long;</li>
<li style="background: #f3f3f3">    dateTimePicker1.Format = <span style="color:#2b91af">DateTimePickerFormat</span>.Custom;</li>
<li>    dateTimePicker1.Format = fmt;</li>
<li style="background: #f3f3f3">}</li>
</ol></div>
</p></div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/csharp/datetimepicker-reset-focus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Patterns Interview Questions #2</title>
		<link>http://www.ms.oyangudi.com/blog/design-patterns/design-patterns-interview-questions-2/</link>
		<comments>http://www.ms.oyangudi.com/blog/design-patterns/design-patterns-interview-questions-2/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 02:00:07 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Design Patterns]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/design-patterns/design-patterns-interview-questions-2/</guid>
		<description><![CDATA[Q1. What are design patterns? Ans. A pattern is a proven (and recurring) solution to a problem in a context. Each pattern describes a problem which occurs over and over again in our environment, and describes its solution to this problem in such a way that we can use this solution a lots of times. [...]]]></description>
			<content:encoded><![CDATA[<p><b>Q1. What are design patterns?     <br /></b>    <br /><b>Ans.</b> A pattern is a proven (and recurring) solution to a problem in a context. Each pattern describes a problem which occurs over and over again in our environment, and describes its solution to this problem in such a way that we can use this solution a lots of times. In simple words, there are a lot of common problems which a lot of developers have faced over time. These common problems ideally should have a common solution too. It is this solution when documented and used over and over becomes a design pattern.</p>
<p><b>Q2. Can we always apply the same solution to different problems at hand?     <br /></b>    <br /><b>Ans.</b> No. Design patterns would study the different problems at hand. To these problems then it would suggest different design patterns to be used. However, the type of code to be written in that design pattern is solely the discretion of the Project Manager who is handling that project.</p>
<p><b>Q3.What should be the level of detail/abstraction which should be provided by a design pattern?     <br />Ans.</b> Design patterns should present a higher abstraction level though it might include details of the solution. However, these details are lower abstractions and are called strategies. There may be more than one way to apply these strategies in implementing the patterns.</p>
<p><b>Q4. What are the most common problems which one faces during the application design phase that are solved by design patterns?     <br />Ans.</b> These are:</p>
<ul>
<li>Identifying components, internal structures of the components, and relationships between components.</li>
<li>Determining component granularity and appropriate interactions</li>
<li>Defining component interfaces.</li>
</ul>
<p><b>Q5. How does one decide which Design pattern to use in our application?     <br />Ans.</b> We need to follow these steps:</p>
<ol>
<li>We need to understand the problem at hand. Break it down to finer grained problems. Each design pattern is meant to solve certain kinds of problems. This would narrow down our search for design patterns.</li>
<li>Read the problem statement again along with the solution which the design pattern will provide. This may instigate to change a few patterns that we are to use.</li>
<li>Now figure out the interrelations between different patterns. Also decide what all patterns will remain stable in the application and what all need to change (with respect to Change Requests received from the clients).</li>
</ol>
<p>Q<b>6. What is Refactoring?</b></p>
<p>Ans. Learning different design patterns is not sufficient to becoming a good designer. We have to understand these patterns and use them where they have more benefits. Using too many patterns (more than required) would be over-engineering and using less design patterns than required would be under-engineering. In both these scenarios we use refactoring. Refactoring is a change made to the internal structure of the software to make it easier to understand and cheaper to modify, without changing its observable behaviour.</p>
<p><b>Q7. What are Antipatterns?</b></p>
<p>Ans. Though the use of patterns fulfils our objectives in the applications; there are also several instances where several applications did not fulfill their goals. The architects of these applications too need to document these wrong decisions. This helps us in repeating these mistakes in our future applications. Such documented mistakes are called antipatterns.</p>
<p>Thus antipatterns are negative solutions which cause more problems than what they address. For ex. We might use entity beans which have fine-grained interfaces which can directly be accessed from the client side. This would result in considerable RMI and transaction management overhead. It results in poor performance and un-scalable applications.</p>
<p><b>SPECIFIC PATTERNS</b></p>
<p><b>Q8. As we do development in tiers, how do we divide patterns in tiers?</b></p>
<p><b>Ans.</b> The Sun Java Center has classified the patterns in three tiers. These are:</p>
<ol>
<li>Presentation tier patterns for web-component tier,</li>
<li>Business tier patterns for business logic (EJB) tier, and</li>
<li>Integration tier patterns for connection to the databases.</li>
</ol>
<p>The presentation tier patterns are:</p>
<p>Intercepting filter, Front Controller, View Helper, Composite View, Service-to-Worker, and Dispatcher View.</p>
<p>The business tier patterns are:</p>
<p>Business delegate, Value Object, Session Façade, Composite Entity, Value Object Assembler, Value List Handler, and Service Locator.</p>
<p>Integration tier patterns are:</p>
<p>Data Access Object (DAO) and Service Activator.</p>
<p><a href="http://relatedlinks.googlelabs.com/"></a></p>
<p><b>Q9. What is Intercepting Filter pattern?</b></p>
<p><b>Ans.</b> Provides a solution for pre-processing and post-processing a request. It allows us to declaratively apply filters for intercepting requests and responses. For ex. Servlet filters.</p>
<p><b>Q10. What is Front Controller pattern?</b></p>
<p><b>Ans.</b> It manages and handles requests through a centralized code. This could either be through a servlet or a JSP (through a Java Bean). This Controller takes over the common processing which happens on the presentation tier. The front controller manages content retrieval, security, view management and retrieval.</p>
<p><b>Q11. What is View Helper pattern?</b></p>
<p><b>Ans.</b> There generally are two parts to any application – the presentation and the business logics. The “View” is responsible for the output-view formatting whereas “Helper” component is responsible for the business logic. Helper components do content retrieval, validation and adaptation. Helper components generally use Business delegate pattern to access business classes.</p>
<p><b>Q12. What is Composite View pattern?</b></p>
<p><b>Ans.</b> This pattern is used for creating aggregate presentations (views) from atomic sub-components. This architecture enables says piecing together of elementary view components which makes the presentation flexible by allowing personalization and customization.</p>
<p><b>Q13. What is Service to Worker pattern?</b></p>
<p><b>Ans.</b> This is used in larger applications wherein one class is used to process the requests while the other is used to process the view part. This differentiation is done for maintainability.</p>
<p><b>Q14. What is Dispatcher View pattern?</b></p>
<p><b>Ans.</b> This is similar to Service to Worker pattern except that it is used for smaller applications. In this one class is used for both request and view processing.</p>
<p><b>Q15. What is Business Delegate pattern?</b></p>
<p><b>Ans.</b> This pattern is used to reduce the coupling between the presentation and business-logic tier. It provides a proxy to the façade from where one could call the business classes or DAO class. This pattern can be used with Service Locator pattern for improving performance.</p>
<p><b>Q16. What is Value Object (VO) pattern?</b></p>
<p><b>Ans.</b> Value Object is a serializable object which would contain lot of atomic values. These are normal java classes which may have different constructors (to fill in the value of different data) and getter methods to get access to these data. VOs are used as a course grained call which gets lots of data in one go (this reduces remote overhead). The VO is made serializable for it to be transferred between different tiers within a single remote method invocation. </p>
<p><a href="http://relatedlinks.googlelabs.com/"></a></p>
<p><b>Q17. What is Session Façade pattern?</b></p>
<p><b>Ans.</b> This pattern hides the complexity of business components and centralizes the workflow. It provides course-grained interfaces to the clients which reduces the remote method overhead. This pattern fits well with declarative transactions and security management.</p>
<p><b>Q18. What is Value Object Assembler pattern?</b></p>
<p><b>Ans.</b> This pattern allows for composing a Value Object from different sources which could be EJBs, DAOs or Java objects.</p>
<p><b>Q19. What is Value List Handler pattern?</b></p>
<p><b>Ans.</b> This pattern provides a sound solution for query execution and results processing.</p>
<p><b>Q20. What is Service Locator pattern?</b></p>
<p><b>Ans.</b> It provides a solution for looking-up, creating and locating services and encapsulating their complexity. It provides a single point of control and it also improves performance.</p>
<p><b>Q21. What is Data Access Object pattern?</b></p>
<p><b>Ans.</b> It provides a flexible and transparent access to the data, abstracts the data sources and hides the complexity of Data persistence layer. This pattern provides for loose coupling between business and data persistence layer.</p>
<p><b>Q22. What is EJB Command pattern?</b></p>
<p><b>Ans.</b> Session Façade and EJB Command patterns are competitor patterns. It wraps business logic in command beans, decouples the client and business logic tier, and reduces the number of remote method invocations.</p>
<p><b>Q23. What is Version Number pattern?</b></p>
<p><b>Ans.</b> This pattern is used for transaction and persistence and provides a solution for maintaining consistency and protects against concurrency. Every time a data is fetched from the database, it comes out with a version number which is saved in the database. Once any update is requested on the same row of the database, this version is checked. If the version is same, the update is allowed else not.</p>
<p><b>Q24. What all patterns are used to improve performance and scalability of the application?</b></p>
<p><b>Ans.</b> VO, Session Façade, Business Delegate and Service Locator.</p>
<p><b>Q25. What design patterns could be used to manage security?</b></p>
<p><b>Ans.</b> Single Access Point, Check point and Role patterns.</p>
<p><a href="http://relatedlinks.googlelabs.com/"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/design-patterns/design-patterns-interview-questions-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET AJAX Interview Questions</title>
		<link>http://www.ms.oyangudi.com/blog/interview-questions-ajax/asp-net-ajax-interview-questions/</link>
		<comments>http://www.ms.oyangudi.com/blog/interview-questions-ajax/asp-net-ajax-interview-questions/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 00:57:29 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Interview Questions - AJAX]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/?p=64</guid>
		<description><![CDATA[The ASP.NET AJAX Interview Questions contains the most frequently asked questions in ASP.NET AJAX. These lists of questions will gauge your familiarity with the ASP.NET AJAX platform. What is Ajax? The term Ajax was coined by Jesse James Garrett and is a short form for &#34;Asynchronous Javascript and XML&#34;. Ajax represents a set of commonly [...]]]></description>
			<content:encoded><![CDATA[<p>The ASP.NET AJAX Interview Questions contains the most frequently asked questions in ASP.NET AJAX. These lists of questions will gauge your familiarity with the ASP.NET AJAX platform. </p>
<p><b>What is Ajax?</b></p>
<p>The term Ajax was coined by Jesse James Garrett and is a short form for &quot;Asynchronous Javascript and XML&quot;. Ajax represents a set of commonly used techniques, like HTML/XHTML, CSS, Document Object Model(DOM), XML/XSLT, Javascript and the XMLHttpRequest object, to create RIA&#8217;s (Rich Internet Applications).</p>
<p>Ajax gives the user, the ability to dynamically and asynchronously interact with a web server, without using a plug-in or without compromising on the user’s ability to interact with the page. This is possible due to an object found in browsers called the XMLHttpRequest object. </p>
<p><b>What is ASP.NET AJAX?</b></p>
<p>‘ASP.NET AJAX’ is a terminology coined by Microsoft for ‘their’ implementation of AJAX, which is a set of extensions to ASP.NET. These components allow you to build rich AJAX enabled web applications, which consists of both server side and client side libraries. </p>
<p><b>Which is the current version of ASP.NET AJAX Control Toolkit?</b></p>
<p>As of this writing, the toolkit version is Version 1.0.20229 (if you are targeting Framework 2.0, ASP.NET AJAX 1.0 and Visual Studio 2005) and Version 3.0.20229 (if targeting .NET Framework 3.5 and Visual Studio 2008).</p>
<p><b>What role does the ScriptManager play?</b></p>
<p>The ScriptManager manages all ASP.NET AJAX resources on a page and renders the links for the ASP.NET AJAX client libraries, which lets you use AJAX functionality like PageMethods, UpdatePanels etc. It creates the PageRequestManager and Application objects, which are prominent in raising events during the client life cycle of an ASP.NET AJAX Web page. It also helps you create proxies to call web services asynchronously.</p>
<p><b>Can we use multiple ScriptManager on a page?</b></p>
<p>No. You can use only one ScriptManager on a page.</p>
<p><b>What is the role of a ScriptManagerProxy?</b></p>
<p>A page can contain only one ScriptManager control. If you have a Master-Content page scenario in your application and the MasterPage contains a ScriptManager control, then you can use the ScriptManagerProxy control to add scripts to content pages. </p>
<p>Also, if you come across a scenario where only a few pages in your application need to register to a script or a web service, then its best to remove them from the ScriptManager control and add them to individual pages, by using the ScriptManagerProxy control. That is because if you added the scripts using the ScriptManager on the Master Page, then these items will be downloaded on each page that derives from the MasterPage, even if they are not needed, which would lead to a waste of resources.</p>
<p><b>What are the requirements to run ASP.NET AJAX applications on a server?</b></p>
<p>You would need to install ‘ASP.NET AJAX Extensions’ on your server. If you are using the ASP.NET AJAX Control toolkit, then you would also need to add the AjaxControlToolkit.dll in the /Bin folder.</p>
<p><b>Note:</b> ASP.NET AJAX 1.0 was available as a separate downloadable add-on for ASP.NET 2.0. With ASP.NET 3.5, the AJAX components have been integrated into ASP.NET.</p>
<p><b>Explain the UpdatePanel?</b></p>
<p>The UpdatePanel enables you to add AJAX functionality to existing ASP.NET applications. It can be used to update content in a page by using Partial-page rendering. By using Partial-page rendering, you can refresh only a selected part of the page instead of refreshing the whole page with a postback.</p>
<p><b>Can I use ASP.NET AJAX with any other technology apart from ASP.NET?</b></p>
<p>To answer this question, check out this example of using ASP.NET AJAX with PHP, to demonstrate running ASP.NET AJAX outside of ASP.NET. Client-Side ASP.NET AJAX framework can be used with PHP and Coldfusion.</p>
<p><b>How can you cancel an Asynchronous postback?</b></p>
<p>Yes you can.   <br /><b>     <br />Difference between Server-Side AJAX framework and Client-side AJAX framework?</b></p>
<p>ASP.NET AJAX contains both a server-side Ajax framework and a client-side Ajax framework. The server-side framework provides developers with an easy way to implement Ajax functionality, without having to possess much knowledge of JavaScript. The framework includes server controls and components and the drag and drop functionality. This framework is usually preferred when you need to quickly ajaxify an asp.net application. The disadvantage is that you still need a round trip to the server to perform a client-side action.</p>
<p>The Client-Side Framework allows you to build web applications with rich user-interactivity as that of a desktop application. It contains a set of JavaScript libraries, which is independent from ASP.NET. The library is getting rich in functionality with every new build released.</p>
<p><b> How can you debug ASP.NET AJAX applications?</b></p>
<p>Explain about two tools useful for debugging: Fiddler for IE and Firebug for Mozilla.</p>
<p><b>Can we call Server-Side code (C# or VB.NET code) from javascript?</b></p>
<p>Yes. You can do so using PageMethods in ASP.NET AJAX or using webservices.</p>
<p><b>Can you nest UpdatePanel within each other?</b></p>
<p>Yes, you can do that. You would want to nest update panels to basically have more control over the Page Refresh.</p>
<p><b>How can you to add JavaScript to a page when performing an asynchronous postback?</b></p>
<p>Use the ScriptManager class. This class contains several methods like the RegisterStartupScript(), RegisterClientScriptBlock(), RegisterClientScriptInclude(), RegisterArrayDeclaration(),RegisterClientScriptResource(), RegisterExpandoAttribute(), RegisterOnSubmitStatement() which helps to add javascript while performing an asynchronous postback.</p>
<p><b>Explain differences between the page execution lifecycle of an ASP.NET page and an ASP.NET AJAX page?</b></p>
<p>In an asynchronous model, all the server side events occur, as they do in a synchronous model. The Microsoft AJAX Library also raises client side events. However when the page is rendered, asynchronous postback renders only the contents of the update panel, where as in a synchronous postback, the entire page is recreated and sent back to the browser.</p>
<p><b>Explain the AJAX Client life-cycle events</b></p>
<p><a href="http://msdn.microsoft.com/hi-in/library/bb386417%28en-us%29.aspx">Here’s</a> a good article about the same.</p>
<p><b>Is the ASP.NET AJAX Control Toolkit(AjaxControlToolkit.dll) installed in the Global Assembly Cache?</b></p>
<p>No. You must copy the AjaxControlToolkit.dll assembly to the /Bin folder in your application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/interview-questions-ajax/asp-net-ajax-interview-questions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Patterns Interview Questions #1</title>
		<link>http://www.ms.oyangudi.com/blog/design-patterns/design-patterns-interview-questions-1/</link>
		<comments>http://www.ms.oyangudi.com/blog/design-patterns/design-patterns-interview-questions-1/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 00:47:15 +0000</pubDate>
		<dc:creator>Solomon</dc:creator>
				<category><![CDATA[Design Patterns]]></category>

		<guid isPermaLink="false">http://www.ms.oyangudi.com/blog/?p=63</guid>
		<description><![CDATA[What is a Design Pattern? Design Pattern is a re-usable, high quality solution to a given requirement, task or recurring problem. Further, it does not comprise of a complete solution that may be instantly converted to a code component, rather it provides a framework for how to solve a problem. In 1994, the release of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is a Design Pattern? </strong></p>
<p><b>Design Pattern</b> is a re-usable, high quality solution to a given requirement, task or recurring problem. Further, it does not comprise of a complete solution that may be instantly converted to a code component, rather it provides a framework for how to solve a problem.     <br />In 1994, the release of the book Design Patterns, Elements of Reusable Object Oriented Software made design patterns popular.    <br />Because design patterns consist of proven reusable architectural concepts, they are reliable and they speed up software development process.     <br />Design Patterns are in a continious phase of evolution, which means that they keep on getting better &amp; better as they are tested against time, reliability and subjected to continious improvements. Further, design patterns have evolved towards targeting specific domains. For example, windows-based banking applications are usually based on singleton patterns, e-commerce web applications are based on the MVC (Model-View-Controller) pattern.     <br /><b>Design Patterns are categorized into 3 types:      <br />Creational Patterns      <br />Structural Patterns      <br />Behavioral Patterns      <br /></b></p>
<p>&#160;</p>
<p><strong>What are Creational Design Patterns? </strong></p>
<p>The <b>Creational Design Patterns</b> focus on how objects are created and utilized in an application. They tackle the aspects of when and how objects are created, keeping in mind whats the best way these objects should be created.    <br />Listed below are some of the commonly known Creational Design Patterns:    <br />&gt;&gt;&gt; Abstract Factory Pattern    <br />&gt;&gt;&gt; Factory Pattern    <br />&gt;&gt;&gt; Builder Pattern    <br />&gt;&gt;&gt; Lazy Pattern    <br />&gt;&gt;&gt; Prototype Pattern    <br />&gt;&gt;&gt; Singleton Pattern</p>
<p><strong></strong></p>
<p><strong>Whats the difference between Abstract Factory Pattern and Factory Pattern? </strong></p>
<p>In an <b>abstract factory design</b>, a framework is provided for creating sub-components that inherit from a common component. In .NET, this is achieved by creating classes that implement a common interface or a set of interfaces, where the interface comprises of the generic method declarations that are passed on to the sub-components. TNote that not just interfaces, but even abstract classes can provide the platform of creating an application based on the abstract factory pattern.     <br />Example, say a class called CentralGovernmentRules is the abstract factory class, comprised of methods like ShouldHavePolice() and ShouldHaveCourts(). There may be several sub-classes like State1Rules, State2Rules etc. created that inheriting the class CentralGovernmentRules, and thus deriving its methods as well.    <br />Note that the term &quot;Factory&quot; refers to the location in the code where the code is created.    <br /><b>A Factory Pattern</b> is again an Object creation pattern. Here objects are created without knowing the class of the object. Sounds strange? Well, actually this means that the object is created by a method of the class, and not by the class&#8217;s constructor. So basically the Factory Pattern is used wherever sub classes are given the priviledge of instantiating a method that can create an object. </p>
<p>&#160;</p>
<p><strong>Describe the Builder Design Pattern </strong></p>
<p>In a builder design pattern, an object creation process is separated from the object design construct. This is useful becuase the same method that deals with construction of the object, can be used to construct different design constructs. </p>
<p><strong></strong></p>
<p><strong>What is the Lazy Design Pattern? </strong></p>
<p>The approach of the Lazy Design Pattern is not to create objects until a specific requirement matches, and when it matches, object creation is triggered. A simple example of this pattern is a Job Portal application. Say you register yourself in that site thus filling up the registration table, only when the registration table is filled, the other objects are created and invoked, that prompt you to fill in other details too, which will be saved in other tables. </p>
<p><strong></strong></p>
<p><strong>What is the Prototype Design Pattern? </strong></p>
<p>A prototype design pattern relies on creation of clones rather than objects. Here, we avoid using the keyword &#8216;new&#8217; to prevent overheads. </p>
<p><strong></strong></p>
<p><strong>What is the Singleton Design Pattern? </strong></p>
<p>The Singleton design pattern is based on the concept of restricting the instantiation of a class to one object. Say one object needs to perform the role of a coordinator between various instances of the application that depend on a common object, we may design an application using a Singleton. Usage of Singleton patterns is common in Banking, Financial (such as Banking tools or Car Loan tools etc.) and Travel based applications where the singleton object consists of the network related information.    <br />A singleton class may be used to instantiate an object of it, only if that object does not already exist. In case the object exists, a reference to the existing object is given. A singleton object has one global point of access to it.     <br />An ASP.NET Web Farm is also based on the Singleton pattern. In a Web Farm, the web application resides on several web servers. The session state is handled by a Singleton object in the form of the aspnet_state.exe, that interacts with the ASP.NET worker process running on each web server. Note that the worker process is the aspnet_wp.exe process. Imagine one of the web servers shutting down, the singleton object aspnet_state.exe still maintains the session state information across all web servers in the web farm.    <br />In .NET, in order to create a singleton, a class is created with a private constructor, and a &quot;static readonly&quot; variable as the member that behaves as the instance. </p>
<p><strong></strong></p>
<p><strong>What are Structural Design Patterns? </strong></p>
<p>A structural design pattern establishes a relationship between entities. Thus making it easier for different components of an application to interact with each other. Following are some of the commonly known structural patterns:    <br /><b>&gt;&gt;&gt; Adapter Pattern &#8211; Interfaces of classes vary depending on the requirement.     <br />&gt;&gt;&gt; Bridge Pattern &#8211; Class level abstraction is separated from its implementation.      <br />&gt;&gt;&gt; Composite Pattern &#8211; Individual objects &amp; a group of objects are treated similarly in this approach.      <br />&gt;&gt;&gt; Decorator Pattern &#8211; Functionality is assigned to an object.       <br />&gt;&gt;&gt; Facade Pattern &#8211; A common interface is created for a group of interfaces sharing a similarity.      <br />&gt;&gt;&gt; Flyweight Pattern &#8211; The concept of sharing a group of small sized objects.      <br />&gt;&gt;&gt; Proxy Pattern &#8211; When an object is complex and needs to be shared, its copies are made. These copies are called the proxy objects.      <br /></b></p>
<p>&#160;</p>
<p><strong>What are the different types of Proxy Patterns? </strong></p>
<p>1 &#8211; Remote Proxy &#8211; A reference is given to a different object in a different memory location. This may be on a different or a same machine.   <br />2 &#8211; Virtual Proxy &#8211; This kind of object is created only &amp; only when really required because of its memory usage.    <br />3 &#8211; Cache Proxy &#8211; An object that behaves as a temporary storage so that multiple applications may use it. For example, in ASP.NET when a page or a user control contains the OutputCache directive, that page/control is cached for some time on the ASP.NET web server. </p>
<p><strong></strong></p>
<p><strong>What is a behavioral design pattern? </strong></p>
<p>Behaviorial design patterns focus on improving the communication between different objects. Following are different types of behavioral patterns:   <br />&gt;&gt;&gt; Chain Or Responsibilities Pattern &#8211; In this pattern, objects communicate with each other depending on logical decisions made by a class.    <br />&gt;&gt;&gt; Command Pattern &#8211; In this pattern, objects encapsulate methods and the parameters passed to them.     <br />&gt;&gt;&gt; Observer Pattern &#8211; Objects are created depending on an events results, for which there are event handlers created.</p>
<p><strong></strong></p>
<p><strong>What is the MVC Pattern (Model View Controller Pattern)? </strong></p>
<p>The MVC Pattern (Model View Controller Pattern) is based on the concept of designing an application by dividing its functionalities into 3 layers. Its like a triad of components. The Model component contains the business logic, or the other set of re-usable classes like classes pertaining to data access, custom control classes, application configuration classes etc. The Controller component interacts with the Model whenever required. The control contains events and methods inside it, which are raised from the UI which is the View component.   <br />Consider an ASP.NET web application. Here, all aspx, ascx, master pages represent the View.    <br />The code behind files (like aspx.cs, master.cs, ascx.cs) represent the Controller.    <br />The classes contained in the App_Code folder, or rather any other class project being referenced from this application represent the Model component.    <br />Advantages: * Business logic can be easily modified, without affecting or any need to make changes in the UI.    <br />* Any cosmetic change in the UI does not affect any other component. </p>
<p><strong></strong></p>
<p><strong>What is the Gang of Four Design Pattern? </strong></p>
<p>The history of all design patterns used in modern day applications derive from the Gang of Four (GoF) Pattern. Gang of Four patterns are categorized into 3 types:   <br /><b>1 &#8211; Creational     <br />2 &#8211; Structural      <br />3 &#8211; Behavioral      <br /></b>    <br />The term &quot;Gang of Four&quot; (or &quot;GoF&quot; in acronym) is used to refer to the four authors of the book <b>Design Patterns: Elements of Reusable Object-Oriented Software</b>. <i>The authors are Erich Gamma, Ralph Johnson, Richard Helm and John Vlissides. </i></p>
<p>&#160;</p>
<p><strong>When should design patterns be used? </strong></p>
<p>While developing software applications, sound knowledge of industry proven design patterns make the development journey easy and successful. Whenever a requirement is recurring, a suitable design pattern should be identified. Usage of optimal design patterns enhance performance of the application. Though there are some caveats. Make sure that there are no overheads imposed on a simple requirement, which means that design patterns should not be unnecessarily be used. </p>
<p><strong></strong></p>
<p><strong>How many design patterns can be created in .NET? </strong></p>
<p>As many as one can think. Design patterns are not technology specific, rather their foundation relies on the concept of reusability, object creation and communication. Design patterns can be created in any language. </p>
<p><strong></strong></p>
<p><strong>Describe the Ajax Design Pattern. </strong></p>
<p>In an Ajax Design Pattern, partial postbacks are triggered asyncronously to a web server for getting live data. A web application would not flicker here, and the web site user would not even come to know that a request is being sent to the web server for live data.   <br />Such a design pattern is used in applications like Stock Market Websites to get live quotes, News Websites for live news, Sports websites for live scores etc. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ms.oyangudi.com/blog/design-patterns/design-patterns-interview-questions-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
