<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.silverlight.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Programming with .NET - General</title><link>http://forums.silverlight.net/forums/17.aspx</link><description>General discussions around authoring Silverlight .NET applications.</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>Re: Silverlight - Code Reuse and Redundancy</title><link>http://forums.silverlight.net/forums/thread/55296.aspx</link><pubDate>Mon, 26 May 2008 05:04:08 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:55296</guid><dc:creator>Yi-Lun Luo - MSFT</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/55296.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=17&amp;PostID=55296</wfw:commentRss><description>&lt;p&gt;Hello, one thing to keep in mind is that Silverlight and desktop CLR are two different platforms. Think you have a .NET service and a Java client. There&amp;#39;s no way to reuse the .NET assembly and Java package across platforms. One good aspect of Silverlight is its programming model is similar to desktop CLR. Many times the code are exactly the same. So you can reuse code, but not assembly.&lt;/p&gt;
&lt;p&gt;To reuse the source code, in the &amp;quot;Solution Explorer&amp;quot;, in one of your project, add an existing item. In the &amp;quot;Add Existing Item&amp;quot; dialog, select a file. Look at the &amp;quot;Add&amp;quot; Button, and you&amp;#39;ll find a little arrow on the right side. Click the arrow, and you&amp;#39;ll see a popup menu. In the Popup menu, there&amp;#39;s an &amp;quot;Add as Link&amp;quot; option. By choosing this option, Visual Studio will link the file to the original project rather than make a copy, and all modifications you do in one project will automatically be reflected in another project.&lt;/p&gt;
&lt;p&gt;Regarding to the second concern, I think business logic should be put on the server. You can have many web services, one for each business logic unit. Silverlight works best with the service oriented architecture. SOA is about exposing business process as services so they can be reused by various client applications or other services. Yes, the reuse is in the service level, not code level. I suggest you to read some SOA articles. We (Microsoft) is an industry leader in SOA. Please check out our SOA solutions at &lt;a href="http://www.microsoft.com/soa/"&gt;http://www.microsoft.com/soa/&lt;/a&gt;. IBM is another industry leader in SOA. You can have a look at their web site at &lt;a href="http://www-306.ibm.com/software/solutions/soa/"&gt;http://www-306.ibm.com/software/solutions/soa/&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Re: Silverlight - Code Reuse and Redundancy</title><link>http://forums.silverlight.net/forums/thread/55143.aspx</link><pubDate>Sat, 24 May 2008 09:49:09 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:55143</guid><dc:creator>mchlSync</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/55143.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=17&amp;PostID=55143</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="/Themes/silverlight/images/icon-quote.gif"&gt; &lt;strong&gt;pmalik:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Silverlight Assembly References&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Silverlight applications cannot reference .NET class libraries. The same constraint applies in reverse -.NET applications cannot reference Silverlight applications.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Why don&amp;#39;t you reference Silverlight Library in .NET application? &amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Silverlight - Code Reuse and Redundancy</title><link>http://forums.silverlight.net/forums/thread/55117.aspx</link><pubDate>Sat, 24 May 2008 00:34:46 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:55117</guid><dc:creator>cklein</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/55117.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=17&amp;PostID=55117</wfw:commentRss><description>&lt;p&gt;These are all good questions. I also asked the question about source code reuse somewhere else. What I really like is to have an option or an automatic nant task to compile the&amp;nbsp; same project in .Net or Silverlight at will. Thus I share files at project level instead of the source code level.&lt;/p&gt;&lt;p&gt;The second question is really tricky regarding the layered architecture. I would prefer the layered architecture, as it gives better performance over all (Scott Gu told me the same assemblies will only be downloaded once if it&amp;#39;s used by many silverlight applications, not sure it&amp;#39;s true or not.) It&amp;#39;s just the first silverlight application got hit badly.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;And the codegenerator for WebService is bad, as it bloated the code. It probably will force me to create my own code generator.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I am also wondering what the performance will be if we have a lot segregated small assemblies for download. Theoretically we could have a single assembly for every dataobject. This could be one automatically, of course.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Same problems we have for webservice call. We used to do this in the code behind:&lt;/p&gt;&lt;p&gt;if (x)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CallServiceA&lt;/p&gt;&lt;p&gt;else&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = CallServiceB + CallServiceC&lt;/p&gt;&lt;p&gt;end if&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This may not be a good idea any more, since every call involves a lot overhead, and now silverlight does not allow synchronous calls. These kindof code sometimes does not belong to the businesslogic layer on the server side.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Silverlight - Code Reuse and Redundancy</title><link>http://forums.silverlight.net/forums/thread/55004.aspx</link><pubDate>Fri, 23 May 2008 15:06:30 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:55004</guid><dc:creator>tgrand</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/55004.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=17&amp;PostID=55004</wfw:commentRss><description>&lt;p&gt;When it comes to class libraries, it&amp;#39;s not very hard to target multiple .NET-based platforms using a single set of source files.&amp;nbsp; I&amp;#39;ve been doing it for years with a large codebase, and the situation is really not that changed with Silverlight entering the picture.&amp;nbsp; As long as most of your code meets the least common denominator set of functionality offered by the platforms you want to support, it seems like a waste to duplicate source files.&amp;nbsp; You can make up some differences by using preprocessor directives or compatibility layers / platform independent replacements for services only provided on one platform.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;By the way, you don&amp;#39;t need to rely on any special tools or tricks to accomplish this.&amp;nbsp; Just put your project files for the different platforms in the same directory as the shared source files, and have each project reference that same set of shared source files.&amp;nbsp; (Individual projects may of course reference some non-shared source files as well.)&amp;nbsp; You can even put all of the projects in the same solution and build your code for all of your supported platforms at once.&amp;nbsp; Visual Studio has several nice features that help support this style of development: Project-&amp;gt;Show All Files + right click on file-&amp;gt;include/exclude, the ability to unload/reload projects (a wonderful feature), pre/post build steps (in case you need to clear intermediate files, which you might), configuration management, and so on.&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Silverlight - Code Reuse and Redundancy</title><link>http://forums.silverlight.net/forums/thread/54971.aspx</link><pubDate>Fri, 23 May 2008 11:50:44 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:54971</guid><dc:creator>pmalik</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/54971.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=17&amp;PostID=54971</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;As architects, designers, and developers create the first wave of Silverlight applications, one thing has become apparent. We need to give some thought to how the use of Silverlight in the presentation layer changes the way we architect, design and code applications.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Some popular patterns that that have served us well in the past need to be revisited. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;I thought that I’d use this forum to highlight some of the challenges that many early Silverlight users face, and invite comments or suggestions from people working with or thinking about the same challenges.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;This post is related specifically to the topic of code reuse and redundancy. In future postings, I hope to take up other similar topics.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;With smart development tools and knowledge of best practices and enterprise design patterns, we seem to have been quite successful in maximizing reusability and minimizing redundancies in code. So, why is code reuse and redundancy important again? &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Two reasons –&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l2 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Silverlight applications cannot reference .NET class libraries. The same constraint applies to the reverse -.NET applications cannot reference Silverlight applications.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l2 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;The use of Silverlight often requires developers to find the right balance between code reuse, maintainability and performance.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;Let’s look these two points in more details.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Silverlight Assembly References&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Silverlight applications cannot reference .NET class libraries. The same constraint applies in reverse -.NET applications cannot reference Silverlight applications.&lt;br /&gt;This basically rules out the development of class libraries with common reusable logic to be used by both .NET and Silverlight applications.&lt;br /&gt;If a developer coded common math routines that need to be accessed by a Slverlight application and a .NET application, they may end up duplicating the exact same code in two different class libraries.&lt;br /&gt;Let’s take a more realistic scenario where a developer creates aspx pages with embedded Silverlight applications. Now suppose that several Silverlight controls and aspx pages (read code behind) need to access the same WCF service. It would be ideal if the developer could create one service agent class that contains the necessary web reference, the code to invoke the service, and a common API that can be used by all Silverlight applications/ controls and .NET applications that need to consume the Web service. This would ensure that Web service reference and the code to invoke the service exists in only one place. &lt;br /&gt;However, because of the fact that Silverlight &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;and .NET assemblies cannot reference each other,&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;developers may have to develop two service agents with the exact same code and Web service references.&lt;br /&gt;Taking this scenario forward, assume that we need entity translators to translate the types exposed by the proxy to business entities used internally in the Silverlight and ASP.NET applications. Again we will need to develop different translators with identical code.&lt;br /&gt;&lt;br /&gt;So, what’s the solution? Using source control features to link class files in different Visual Studio projects? Creating scripts that copy/ synchronize different class files?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Would you write a slightly intelligent script that would change the namespaces appropriately. These all work to some extent, but are far from an ideal solution. Me? For now, I’m living with duplicate code in different class files. &lt;br /&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Code Reuse vs. Performance and Maintainability&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Silverlight applications are downloaded to the user’s browser. This puts an extra burden on developers to keep the size of Silverlight applications as small as possible. You may think that the discipline that was required from developers of Web pages to keep the size of pages small is the same as what would apply to developers of Silverlight applications. Well, yes and no. &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;Silverlight provides design options that were not available to ASP.NET developers that force them to find a balance between code reuse and performance and maintainability,&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt;mso-add-space:auto;"&gt;&lt;font face="Calibri" size="3"&gt;Consider a Web application with a Silverlight control that access WCF services.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;There are several ways of designing this application. I think the two design options that most of us will consider are:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo3;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;a.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Encapsulate the presentation logic as well as logic for accessing Web service in the Silverlight application.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The business logic and business entities, if they exist, will also be part of the same Silverlight assembly.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo3;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;b.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Encapsulate the presentation logic in a Silverlight application. Create separate Silverlight class libraries for business components, business entities, and service agents. This approach allows common logic to be used by more than one Silverlight application.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt;mso-add-space:auto;"&gt;&lt;br /&gt;&lt;font face="Calibri" size="3"&gt;Both approaches have their advantages and disadvantages. &lt;br /&gt;Approach a provides better performance, a much leaner Silverlight application, but limited code reuse. Another Silverlight application in the same Web application may contain the same Web service reference an entity definitions.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt;mso-add-space:auto;"&gt;&lt;font face="Calibri" size="3"&gt;Approach b provides a layered application architecture and allows code reuse. However, it increases the number of the in-package and/or on-demand assemblies that need to be downloaded by the user’s browser. Additionally, some of these assemblies may contain code that is not used the executing Silverlight application, e.g. a service agent class that calls a Web service used by a Silverlight application or control on a different page.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt;mso-add-space:auto;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;An important point to note here is that if we applied something similar to approach b to an ASP.NET application, the common assemblies would live on the Web server or application server depending on how it was deployed. They would never be a&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;part of any discussion related to page size or internet bandwidth of end-users.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt;mso-add-space:auto;"&gt;&lt;font face="Calibri" size="3"&gt;When choosing between approaches a and b (and others), we need to consider the following very carefully:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;mso-list:l1 level1 lfo2;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;What is the right balance between code reuse, &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;performance, and maintainability?&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.75in;TEXT-INDENT:-0.25in;mso-list:l1 level1 lfo2;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Should we introduce layered architecture and object oriented design concepts in Silverlight applications with the same rigor as we do while developing server components, just because the platform allows it? &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;"&gt;&lt;font face="Calibri" size="3"&gt;After writing this post, I realize that it contains more questions than answers. Actually, it contains no answers. But like I said, the purpose of this post is to invite comments and views on this topic from readers.&lt;/font&gt;&lt;/p&gt;</description></item></channel></rss>