<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8555311645104283032</id><updated>2012-02-16T16:52:23.492-08:00</updated><category term='Unity'/><category term='Best practices'/><category term='Composite Application Guidance'/><category term='Design patterns'/><category term='WCF'/><category term='Prism'/><category term='Composite Appplications'/><category term='Silverlight'/><category term='Unity 2.0'/><title type='text'>Search for perfection in technology</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mnabeelkhan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mnabeelkhan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nabeel</name><uri>http://www.blogger.com/profile/12556529470311513810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8555311645104283032.post-8670814266555628948</id><published>2011-10-16T21:23:00.000-07:00</published><updated>2011-10-19T12:27:10.721-07:00</updated><title type='text'>WPF Styling Architecture</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="color: white; font-family: Arial; language: en-US; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-color-index: 0; mso-fareast-font-family: +mj-ea; mso-fareast-theme-font: major-fareast; mso-font-kerning: 12.0pt; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-color: white; mso-style-textfill-fill-themecolor: background1; mso-style-textfill-type: solid;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;What is meant by Style&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white; font-family: Arial; language: en-US; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-color-index: 0; mso-fareast-font-family: +mj-ea; mso-fareast-theme-font: major-fareast; mso-font-kerning: 12.0pt; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-color: white; mso-style-textfill-fill-themecolor: background1; mso-style-textfill-type: solid;"&gt;&lt;span style="color: black;"&gt;Features that allow developers and&amp;nbsp;designers to create visually compelling effects and to create a consistent appearance for the product (MSDN).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;A convenient way to apply a set of property values to more than one element (MSDN).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: white; font-family: Arial; language: en-US; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-color-index: 0; mso-fareast-font-family: +mj-ea; mso-fareast-theme-font: major-fareast; mso-font-kerning: 12.0pt; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-color: white; mso-style-textfill-fill-themecolor: background1; mso-style-textfill-type: solid;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;Why we need styles&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;Flexibility&lt;/span&gt; &lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;Reduce the amount of core code&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;Accessibility&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;Separation of Layout from Content.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: white; font-family: Arial; language: en-US; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-color-index: 0; mso-fareast-font-family: +mj-ea; mso-fareast-theme-font: major-fareast; mso-font-kerning: 12.0pt; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-color: white; mso-style-textfill-fill-themecolor: background1; mso-style-textfill-type: solid;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;Different Type of Styles&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="color: white; font-family: Arial; language: en-US; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-color-index: 0; mso-fareast-font-family: +mj-ea; mso-fareast-theme-font: major-fareast; mso-font-kerning: 12.0pt; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-color: white; mso-style-textfill-fill-themecolor: background1; mso-style-textfill-type: solid;"&gt;&lt;span style="color: black;"&gt;Inline styles.&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;CSS&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;WPF Styles Architecture.&lt;/span&gt; &lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: black;"&gt;Complete presentation can be found here.&lt;div style="width:425px" id="__ss_9755853"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/mnabeelkhan/socal-code-campusc" title="Socal code camp_usc" target="_blank"&gt;Socal code camp_usc&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9755853" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/mnabeelkhan" target="_blank"&gt;mnabeelkhan&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: black;"&gt;Download sample code here.&lt;iframe title ="Preview" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="https://skydrive.live.com/embedicon.aspx/.Public/StylesArchitecture.App.zip?cid=964146934d2c32c7&amp;sc=documents"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: black;"&gt;Happy coding&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8555311645104283032-8670814266555628948?l=mnabeelkhan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mnabeelkhan.blogspot.com/feeds/8670814266555628948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mnabeelkhan.blogspot.com/2011/10/wpf-styling-architecture.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/8670814266555628948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/8670814266555628948'/><link rel='alternate' type='text/html' href='http://mnabeelkhan.blogspot.com/2011/10/wpf-styling-architecture.html' title='WPF Styling Architecture'/><author><name>Nabeel</name><uri>http://www.blogger.com/profile/12556529470311513810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8555311645104283032.post-5530076671769546164</id><published>2011-03-16T00:29:00.000-07:00</published><updated>2011-03-16T00:47:20.991-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity'/><category scheme='http://www.blogger.com/atom/ns#' term='Prism'/><category scheme='http://www.blogger.com/atom/ns#' term='Best practices'/><title type='text'>Prism – Composite Application Guidance for WPF and Silverlight</title><content type='html'>Over the years Microsoft based applications have evolved in such a way that makes them robust, easy to maintain and follow solid design patterns. Prims provides guidance to help design such applications. Prism is based on Composite Application guidance. This was the topic of presentation that I did at San Gabriel Valley .NET developers group meeting (&lt;a href="http://www.sgvdotnet.org/"&gt;http://www.sgvdotnet.org/&lt;/a&gt;) . This talk covered introduction to Composite Applications as design pattern, how PRISM helps us implement Composite Applications and some code examples for that. At the end this talk will include where technology is leading us in this area.&lt;br /&gt;Slide deck can be downloaded from &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B8NVabEp_OFsZjhiYjI4YjMtMGFjOS00OTQ0LWI1ZTktNGIyMTc5MTQzOTU2&amp;amp;hl=en"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8555311645104283032-5530076671769546164?l=mnabeelkhan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mnabeelkhan.blogspot.com/feeds/5530076671769546164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mnabeelkhan.blogspot.com/2011/03/prism-composite-application-guidance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/5530076671769546164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/5530076671769546164'/><link rel='alternate' type='text/html' href='http://mnabeelkhan.blogspot.com/2011/03/prism-composite-application-guidance.html' title='Prism – Composite Application Guidance for WPF and Silverlight'/><author><name>Nabeel</name><uri>http://www.blogger.com/profile/12556529470311513810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8555311645104283032.post-4393615647691352429</id><published>2010-05-18T17:50:00.000-07:00</published><updated>2010-05-21T21:06:02.840-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity'/><category scheme='http://www.blogger.com/atom/ns#' term='Design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Application Guidance'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Appplications'/><category scheme='http://www.blogger.com/atom/ns#' term='Unity 2.0'/><title type='text'>Unity 2.0 Design pattern in simple words</title><content type='html'>As part of my search for perfection in technology, I come accross many different technologies. Some of them are worth delving into. One of them is Unity 2.0 design pattern. In this article I will try to explain the basic premise of Unity 2.0 design pattern, where it should be used, where it should not be used and simple steps to implement Unity 2.0 Design pattern.&lt;br /&gt;&lt;br /&gt;Unity 2.0 design pattern in simple words:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Unity 2.0 is a type of design pattern that can be used to implement composite application library. &lt;/li&gt;&lt;li&gt;Unity 2.0 design pattern lets us to view different modules of our composite application to appear as signal entity. &lt;/li&gt;&lt;li&gt;It allows objects belonging to different modules to implement dependency on each other.&lt;/li&gt;&lt;/ul&gt;From the above mentioned points, the most important word here is dependency. So in more simpler words&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Unity 2.0 design pattern is used to implement dependency injection"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to implement Unity 2.0 design pattern?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Download Unity 2.0 library. This can be found &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=2d24f179-e0a6-49d7-89c4-5b67d939f91b&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Create composite application using Composite Application Guidance. You can find the details about this &lt;a href="http://msdn.microsoft.com/en-us/library/ff648611.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Override the boot strapping class in composite application to use Unity bootstrapper.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Identify classes in your composite application that are dependent.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Create a dependency injection (DI) container using the Unity 2.0 library.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Implement dependency injection using one of the following techniques:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Using build up to wire up objects not created by the container&lt;/li&gt;&lt;li&gt;Using injection attributes&lt;/li&gt;&lt;/ol&gt;Happy coding!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8555311645104283032-4393615647691352429?l=mnabeelkhan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mnabeelkhan.blogspot.com/feeds/4393615647691352429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mnabeelkhan.blogspot.com/2010/05/unity-20-design-pattern-in-simple-words.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/4393615647691352429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/4393615647691352429'/><link rel='alternate' type='text/html' href='http://mnabeelkhan.blogspot.com/2010/05/unity-20-design-pattern-in-simple-words.html' title='Unity 2.0 Design pattern in simple words'/><author><name>Nabeel</name><uri>http://www.blogger.com/profile/12556529470311513810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8555311645104283032.post-4116400884441204209</id><published>2010-04-28T15:08:00.000-07:00</published><updated>2010-04-28T22:04:28.490-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Silverlight 4.0 - Best practices</title><content type='html'>Any technology company that pursues excellence, bases their work on some patterns and practices. For some these practices are part of their vault of company secrets and for some their practices are not so secret. I am big fan of sharing knowledge in order to acquire more knowledge. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Following are some best practices that I came across during my search for perfection in Silverlight 4.0 technology.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;1. Head first design pattern:&lt;/strong&gt; If you look at the evolution that Silverlight been thorough since its inception, you will realize that now it has evolved in a complete development platform. Due to this fact, I think anyone who wants to create a solution in Silverlight 4.0 has to think about the architecture first. Also, the technologies that complement Silverlight 4.0 can fully be appreciated if we have good architecture. Specially if we implement the separation of concerns design pattern.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;2. Harness the power of WCF:&lt;/strong&gt; One of the great things about Microsoft is the fact that they come up with a great technology that makes you excited. Although most of the times it takes Microsoft three releases to produce such a technology but still I think it is a great feat. Similar is the story of WCF. I have been working on services development since 2002 and had a close tab on all web services technologies. I think in regards of WCF, Microsoft has got it right. One of the amazing things in WCF is its support for Silverlight. Especially the advent of WCF RIA services. If you are implementing any line of business application for web, you should definitely look into this as development platform.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I welcome all comments.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8555311645104283032-4116400884441204209?l=mnabeelkhan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mnabeelkhan.blogspot.com/feeds/4116400884441204209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mnabeelkhan.blogspot.com/2010/04/silverlight-40-best-practices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/4116400884441204209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8555311645104283032/posts/default/4116400884441204209'/><link rel='alternate' type='text/html' href='http://mnabeelkhan.blogspot.com/2010/04/silverlight-40-best-practices.html' title='Silverlight 4.0 - Best practices'/><author><name>Nabeel</name><uri>http://www.blogger.com/profile/12556529470311513810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
