SilverlightShow: Developing Silverlight Analog Clock - pattern oriented approach Comments http://www.silverlightshow.net/ Silverlight articles, Silverlight tutorials, Silverlight videos, Silverlight samples SilverlightShow.net http://www.rssboard.org/rss-specification Argotic Syndication Framework 2008.0.2.0, http://www.codeplex.com/Argotic en-US estoychev@completit.com (Emil Stoychev) Re: Developing Silverlight Analog Clock - pattern oriented approach <p>MERHA.. ÇOK GÜZEL..</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment7835 nevin http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Fri, 13 Apr 2012 12:36:26 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Refreshingly well written. Many thanks.</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment4149 Maurice Calvert http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 04 Aug 2010 14:41:54 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Really good one !!!</p> <p>open my wing towards silverlight.</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment3802 Piyush Sheth http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Tue, 15 Jun 2010 21:43:14 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach Awesome article http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment3189 Saranyan Yethirajam http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Mon, 08 Mar 2010 08:06:47 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach Hi,<div><br /></div><div>This is very nice. </div><div><br /></div><div>Could you describe how to handle GUI events, such as Button clicks?  </div><div><br /></div><div>Thanks </div><div><br /></div><div>Chris. </div><div><br /></div><div><br /></div> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment2721 Chris http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Sun, 29 Nov 2009 22:47:55 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>> Silverlight is not allowed to bind to an object which is not a FrameworkElement. While in WPF this is allowed. I think that is a lame limitation and it is too strange for me. </p> There some changes in data binding in Silverlight 4 beta documentation: <p> <p>The target can be any <span target="T:System.Windows.DependencyProperty" sdata="cer"><a href="http://www.silverlightshow.net/items/5d84204a-b8f0-dd6d-7e08-dd2b26b736da.htm">DependencyProperty</a></span> of a <span target="T:System.Windows.FrameworkElement" sdata="cer"><a href="http://www.silverlightshow.net/items/308ad9d2-fb22-2fac-ae7c-c5dad3796f1c.htm">FrameworkElement</a></span>. The target can also be a <span target="T:System.Windows.DependencyProperty" sdata="cer"><a href="http://www.silverlightshow.net/items/5d84204a-b8f0-dd6d-7e08-dd2b26b736da.htm">DependencyProperty</a></span> of a <span target="T:System.Windows.DependencyObject" sdata="cer"><a href="http://www.silverlightshow.net/items/f692e13c-3d63-c8ec-4b17-d83fe908f982.htm">DependencyObject</a></span> in the following cases:</p> <ul> <li> <p>The <span target="T:System.Windows.DependencyObject" sdata="cer"><a href="http://www.silverlightshow.net/items/f692e13c-3d63-c8ec-4b17-d83fe908f982.htm">DependencyObject</a></span> is the value of a property of a <span target="T:System.Windows.FrameworkElement" sdata="cer"><a href="http://www.silverlightshow.net/items/308ad9d2-fb22-2fac-ae7c-c5dad3796f1c.htm">FrameworkElement</a></span>. </p> </li> <li> <p>The <span target="T:System.Windows.DependencyObject" sdata="cer"><a href="http://www.silverlightshow.net/items/f692e13c-3d63-c8ec-4b17-d83fe908f982.htm">DependencyObject</a></span> is in a collection that is the value of a <span target="T:System.Windows.FrameworkElement" sdata="cer"><a href="http://www.silverlightshow.net/items/308ad9d2-fb22-2fac-ae7c-c5dad3796f1c.htm">FrameworkElement</a></span> property (for example, the <span target="P:System.Windows.FrameworkElement.Resources" sdata="cer"><a href="http://www.silverlightshow.net/items/c26f7749-2e4d-0d2b-fa86-53626bd873d7.htm">Resources</a></span> property). </p> </li> <li> <p>The <span target="T:System.Windows.DependencyObject" sdata="cer"><a href="http://www.silverlightshow.net/items/f692e13c-3d63-c8ec-4b17-d83fe908f982.htm">DependencyObject</a></span> is in a <span target="T:System.Windows.DependencyObjectCollection`1" sdata="cer"><a href="http://www.silverlightshow.net/items/6fd74ee4-be3c-c1c5-dd88-b2acc1e9c489.htm">DependencyObjectCollection<span class="languageSpecificText"><span class="cs"></span><span class="vb">(</span></span>T<span class="languageSpecificText"><span class="cs"></span><span class="vb">)</span><span class="cpp"></span><span class="fs"></span></span></a></span>.</p> </li> </ul> </p> <p> </p> <br /> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment2701 Sergey http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Fri, 20 Nov 2009 23:18:36 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} p {mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:595.3pt 841.9pt; margin:2.0cm 42.5pt 2.0cm 3.0cm; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style> <p><span>Hi <a shape="rect" href="http://www.silverlightshow.net/Profile.aspx?userId=0f58cf98-55a0-4fff-9f40-d66448768b7e" id="ctl00_cphMiddle_ContentPlaceHolderContent_hlnkAuthor" shape="rect">Pencho</a>!</span></p> <p><span>Thank you for good explanation of MVP pattern. It's clear but situation is changed when an application has more than one Views and Models, then Presenter becomes too complicated. I've never used MVP but I've tried to use MVC and I think they have much in common with each other. But finally, when the Controller became too complex, I decided to reconstruct my application with MVVM pattern and I'm still happy along with it. May be I've left out something and MVC/MVP are good enough too, but I'm still a naive designer and I'm learning by making mistakes. And I haven’t read your other articles about patterns – may be I’ll change my mind.</span></p> <p><span>Anyway I've translated you article for <a shape="rect" href="http://silverlight.su/" title="silverlight" target="_blank" shape="rect">silverlight.su</a> for Russian as well as some of your other articles because I hope it'll be useful for others and I hope you won't mind.</span></p> <p><span>I have a question: why you allow “set” mutator in this code:</span></p> <p><span style="font-family: "courier new"; color: #0000ff; font-size: 10pt;">public</span><span style="font-family: "courier new"; font-size: 10pt;"> <span style="color: #2b91af;">ClockData</span> <span style="color: #010001;">ClockData<br /> </span></span><span style="font-family: "courier new"; font-size: 10pt;">{<br /> </span><span style="font-family: "courier new"; font-size: 10pt;">      <span style="color: #0000ff;">get<br /> </span></span><span style="font-family: "courier new"; font-size: 10pt;">      {<br /> </span><span style="font-family: "courier new"; font-size: 10pt;">            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">this</span>.<span style="color: #010001;">clockData</span>;<br /> </span><span style="font-family: "courier new"; font-size: 10pt;">      }<br /> </span><span style="font-family: "courier new"; font-size: 10pt;">      <span style="color: #0000ff;">set<br /> </span></span><span style="font-family: "courier new"; font-size: 10pt;">      {<br /> </span><span style="font-family: "courier new"; font-size: 10pt;">            <span style="color: #0000ff;">this</span>.<span style="color: #010001;">OnClockChangind</span>( <span style="color: #0000ff;">new</span> <span style="color: #2b91af;">ClockDataEventArgs</span>( <span style="color: #0000ff;">this</span>.<span style="color: #010001;">clockData</span> ) );<br /> <br /> </span><span style="font-family: "courier new"; font-size: 10pt;">            <span style="color: #0000ff;">this</span>.<span style="color: #010001;">clockData</span> = <span style="color: #0000ff;">value</span>;</span></p> <p><span style="font-family: "courier new"; font-size: 10pt;">            <span style="color: #0000ff;">this</span>.<span style="color: #010001;">OnClockChanged</span>( <span style="color: #0000ff;">new</span> <span style="color: #2b91af;">ClockDataEventArgs</span>( <span style="color: #0000ff;">this</span>.<span style="color: #010001;">clockData</span> ) );<br /> </span><span style="font-family: "courier new"; font-size: 10pt;">      }<br /> </span><span style="font-family: "courier new"; font-size: 10pt;">}</span> </p> <p><span>I think it is not a good idea because you use OnClockChaning and OnClockChanged methods in two placed. So you could delete mutator and use:</span></p> <p><span style="font-family: "courier new"; color: #010001; font-size: 10pt;">clockModel</span><span style="font-family: "courier new"; font-size: 10pt;">.<span style="color: #010001;">ClockData</span>.<span style="color: #010001;">Update</span>( <span style="color: #2b91af;">DateTime</span>.<span style="color: #010001;">Now</span> );<br /> </span><span style="font-family: "courier new"; font-size: 10pt;"><span style="font-family: times new roman; font-size: 16px;">instead of:</span><br /> </span><span style="font-family: "courier new"; color: #010001; font-size: 10pt;">clockModel</span><span style="font-family: "courier new"; font-size: 10pt;">.<span style="color: #010001;">ClockData</span> = <span style="color: #0000ff;">new</span> <span style="color: #2b91af;">ClockData</span>().<span style="color: #010001;">Update</span>( <span style="color: #2b91af;">DateTime</span>.<span style="color: #010001;">Now</span> );</span></p> <p><span style="font-family: "courier new"; font-size: 10pt;">---------</span></p> <p><span style="font-family: "courier new"; font-size: 10pt;">Regards, Sergey</span> </p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment2691 Sergey http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 18 Nov 2009 23:58:28 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach Nice article and fresh use of code. It has given me a new direction of light in silverlight as i was in dark about this topic<br /> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment2670 Divyesh Sharma http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Sat, 14 Nov 2009 21:33:47 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach I wonder if anyone at Microsoft read your concluding comment...  They are advertising this article on the sliverlight blog!<br /> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment2081 pashute http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 22 Jul 2009 16:59:01 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p> Hi Blueling,</p> <p>First I would like to thank you for the nice words. Yes, sometimes I am very frustrated with the lack of functionality in Silverlight. Looking for "work-arounds" is a very common task when developing Silverlight application. But I think this is normal, however Silverlight is only second version and it is at the beginning of its development. I think we have a wrong practice to compare Silverlight with WPF. I am sure the next version of Silverlight will be much better, and I lot of the problems will be solved.</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment1097 ppopadiyn http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Tue, 24 Feb 2009 00:47:23 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>> Silverlight is not allowed to bind to an object which is not a FrameworkElement. While in WPF this is allowed. I think that is a lame limitation and it is too strange for me.</p> <p>I have just gone through the same experience as you ... there are so many data binding things that do work in WPF that do not in Silverlight.. either the browser crashes or you get "Attribute {StaticResource xyz} value is out of range"...</p> <p>That data binding does not work on anything than FrameworkElement is an absolute catastrophe for Silverlight. How fine would it have been to create things like the clock minute markes with a ListBox that uses a Canvas as ItemsPanel and TranslateTransform and RotateTransform to place the bars ... binding to a list of 60 doubles.</p> <p>I really hope the next Silverlight version will allow a broader usage of data binding. Also it is a pitty that they did not come up with something like x:Array .. most of the collection classes that ship with the SL framework are Generics which cannot be instanciated in a ResourceDictionary in XAML...</p> <p>Excellent article btw... like the even better looking clock from your other post also very much!</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment1087 blueling http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Sun, 22 Feb 2009 15:16:28 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p> Hi Simon,</p> <p>Sorry for the inconvenience, I will replace the rar archive with zip</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment1046 ppopadiyn http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Fri, 13 Feb 2009 02:40:49 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Why use rar ? why not zip ... then we can all unzip for free ....</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment1045 Simon http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Fri, 13 Feb 2009 01:07:23 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p><font size="2"> <p>Hi!</p> <p>First of all thanks for the post it was the best sample about the M-V-P pattern that i found over the net. But i have a doubt about it.</p> <p>I would like to know why in the presenter class, a delegate is used to answer to the model changes (instead of using directly this<font size="2">.ClockView.Update(e.ClockData) ) and why a direct acces to the model.Start() (instead of using a delegate) is used to anwer the view changes.</font> <p> </p> <p><font size="2">Is it just to show us both ways or it has a real meaning that i am missing? </font></p> </p> </font></p> <p><font size="2">Thanks again for everything</font></p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment726 Miki http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 19 Nov 2008 15:36:00 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Hi Miquel</p> <p>I am happy that you find the article useful. About your question, there isn't any secret meaning that you are missing. In the classical form of the M-V-P pattern the situation is exactly the same as you have described. The presenter update the view directly (without using delegate), and also the presenter must be attached to the Start event of the IView interface and when the event fires then he calls model.Start(). I can't remember for any valid reason that has forced me to use that approach, maybe just for experiment.</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment725 ppopadiyn http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 19 Nov 2008 15:27:36 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p><font size="2"> <p>Hi!</p> <p>First of all thanks for the post it was the best sample about the M-V-P pattern that i found over the net. But i have a doubt about it.</p> <p>I would like to know why in the presenter class, a delegate is used to answer to the model changes (instead of using directly this<font size="2">.ClockView.Update(e.ClockData) ) and why a direct acces to the model.Start() (instead of using a delegate) is used to anwer the view changes.</font> <p> </p> <p><font size="2">Is it just to show us both ways or it has a real meaning that i am missing? </font></p> </p> </font></p> <p><font size="2">Thanks again for everything</font></p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment723 Miquel Salvà http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 19 Nov 2008 14:57:31 GMT COOL <p>THATS SIMPLY AMAZING, GOOD ARTICLE, I WANNA BE AS U!!!</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment662 David http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 12 Nov 2008 14:05:43 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Hi <span id="ctl00_ContentPlaceHolderContent_itemComments_dlstComments_ctl22_lblCommentAuthor">paulo_fg@hotmail.com</span></p> <p><span>It is not possible to see the current application under Linux. In order to see it you should install Moonlight and to build the sample for Moonlight. </span>Moonlight is an open source implementation of Silverlight, primarily for Linux and other Unix/X11 based operating systems.</p> <p>In September of 2007, Microsoft and Novell announced a technical collaboration that includes access to Microsoft's test suites for Silverlight and the distribution of a Media Pack for Linux users. The main goals of that collaboration are:</p> <ul> <li>To run Silverlight applications on Linux.</li> <li>To provide a Linux SDK to build Silverlight applications.</li> </ul> <p>I am not a Linux fan and I am not capable to give you more specific information how to do that.</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment637 ppopadiyn http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Thu, 06 Nov 2008 09:22:18 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>why i cant view this in linux?</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment633 paulo_fg@hotmail.com http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Thu, 06 Nov 2008 07:23:12 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Hi Tom</p> <p>Thank you for the nice words. I am very happy you find my article useful. If you have any ideas or wishes for future pattern oriented articles, do not hesitate to share them with me. :)</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment628 ppopadiyn http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Thu, 06 Nov 2008 02:55:54 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>That's</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment625 Andi X http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Thu, 06 Nov 2008 02:08:44 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Hi Bill</p> <p>Thanks for the comment. The initial idea of the article was introducing the MVP pattern, and the clock is just a simple example, a concrete realization of the MVP. Of course I agree in the real world using MVP or MVC for simple applications is not appropriate and as you said it is an overkill. This leads to needless complexity - a symptom, which frequently happen when developers anticipate changes to the requirements and put facilities in the software to deal with those potential changes. Preparing for future changes should keep our code flexible and prevent nightmarish changes later. Unfortunately sometimes the effect is not what we expect. By preparing for many contingencies, the design becomes littered with constructs that are never used. Some of those preparation may pay off, but many do not. Also that the design carries the weight of these unused elements. All these make the software difficult for understand and complex.</p> <p>But for advance solutions using that pattern can have great benefits. Really I didn't mention when to use the MVP and when not to use it. I think it is a matter of experience. Everyone should experiment with it.</p> <p>I will give you a simple example from my experience. Currently I am a part of a team working over a WinForms application for customers from Holland. A very small module of the application was initially intended only for create, read, update and delete data operations (also known as CRUD - a major part of nearly all computer software). That part has been developed before I join to the team and was based on the classical approach - using DataSet, BindingSource, DataRowView, DataBinding.... etc. Everything was perfect until the last 2 months when numerous issues about that module was coming from the clients. All of the issues included implementation of a custom domain logic. I started resolving them one by one mixing the bussiness logic with the user interface (attaching events, adding validation, some calculations....). Suddenly I was faced in a situation where I was asked to make what appears to be a simple change. I looked the change over and made a reasonable estimate. But later when started implementing the change, I found myself chasing changes through huge portions of code, modifying far more functions and classes. Of course the result was "<em>It was too complicated than I thought</em>". After some sleepless nights changing the whole module, removing all bindings and implementing the MVP pattern, my life now is little more easier :)</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment621 ppopadiyn http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 05 Nov 2008 15:28:33 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <meta content="Word.Document" name="ProgId" /> <meta content="Microsoft Word 12" name="Generator" /> <meta content="Microsoft Word 12" name="Originator" /> <link href="file:///C:\Users\Bill\AppData\Local\Temp\msohtmlclip1\01\clip_filelist.xml" rel="File-List" /> <link href="file:///C:\Users\Bill\AppData\Local\Temp\msohtmlclip1\01\clip_themedata.thmx" rel="themeData" /> <link href="file:///C:\Users\Bill\AppData\Local\Temp\msohtmlclip1\01\clip_colorschememapping.xml" rel="colorSchemeMapping" /><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-GB</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="--" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><style type="text/css"> <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 72.0pt 72.0pt 72.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} </style> <![endif]--> <p class="MsoNormal">With all due respect to your article (I think it's a very good MVC induction) but in the particular context you're using it, I think it’s overkill! I know you're just experimenting but it's important for new developers reading this to also understand when it's a good idea to use a particular OOP pattern and when it's not. In your analog clock example, this should simply be a reusable control with styling/templating capabilities for designers to play with (background, hands etc.) or even throw in a project themselves. This at least is the Silverlight way. Any extensions to the clock like stopwatches as you mentioned are nothing more than subclasses of the clock control. But I’m sounding a little too criticizing and that’s not my intention, just my personal thought... Keep it up!</p> <p class="MsoNormal">Bill Sithiro</p> </p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment620 Bill Sithiro http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 05 Nov 2008 13:52:18 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Excellent example!  It is direct and concise.  I am a trainer and would love to use this as an example of how MVP and XAML should be done.   Please keep writing...</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment618 Tom Kinser http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 05 Nov 2008 11:58:16 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>very cool illustrating application and very organized topic , keep Going</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment614 Mina Saad http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 05 Nov 2008 03:39:41 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Hi this is Naveen...Excellent!!! Gud Job....keep posting such articles...really usefull for ppl like me who are new this Light.</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment612 Naveen http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 05 Nov 2008 00:34:44 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Hello guys</p> <p>Thanks for the nice words. That was my first real Silverlight project and i was worried about the result. I will keep working harder and plan soon to post a second article about the clock with some improvments and also another patern oriented article with a practicle example. If you have any suggestions about future articles, do not hesitate to share them with me as comments, thanks again for the nice words.</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment611 ppopadiyn http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Wed, 05 Nov 2008 00:25:09 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p>Really well done article - thanks!</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment609 Dave http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Tue, 04 Nov 2008 20:25:34 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <p> awesome article keep up</p> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment600 Rajesh Lal http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Thu, 30 Oct 2008 10:46:39 GMT RE: Developing Silverlight Analog Clock - pattern oriented approach <div><font size="2" face="Arial">Very well done - thank you for sharing this.</font></div> <div> </div> <div><font size="2" face="Arial">David Roh</font></div> http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx#comment598 davidjjon http://www.silverlightshow.net/items/Developing-Silverlight-Analog-Clock-pattern-oriented-approach.aspx Thu, 30 Oct 2008 10:33:14 GMT