<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Michael Sync</title>
	
	<link>http://michaelsync.net</link>
	<description>Sharing our knowledge</description>
	<pubDate>Fri, 09 May 2008 07:39:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MichaelSync" type="application/rss+xml" /><feedburner:emailServiceId>513083</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>Silverlight 2 (beta1): Styling the Datagrid &amp; Formating Datagrid Date Column</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/286520149/silverlight-2-beta1-styling-the-datagrid-formating-datagrid-date-column</link>
		<comments>http://michaelsync.net/2008/05/08/silverlight-2-beta1-styling-the-datagrid-formating-datagrid-date-column#comments</comments>
		<pubDate>Fri, 09 May 2008 02:47:59 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=917</guid>
		<description><![CDATA[This sample will demonstrate how to create the custom style for Datagrid and how to format the column in Silverlight Datagrid.
Download : SL2DataGridWithStyle.zip (520 KB)

(As of now, please download the code and check-out the code in my sample. I will update the article tonight.Thanks.)
]]></description>
			<content:encoded><![CDATA[<p>This sample will demonstrate how to create the custom style for Datagrid and how to format the column in Silverlight Datagrid.</p>
<p><strong>Download</strong> : <a href="http://michaelsync.net/demo/SL2DataGridWithStyle.zip">SL2DataGridWithStyle.zip (520 KB)</a></p>
<p><img class="alignnone size-full wp-image-918" title="silverlight-datagrid-with-custom-style" src="http://michaelsync.net/wp-content/uploads/2008/05/silverlight-datagrid-with-custom-style.jpg" alt="silverlight Datagrid with Custom Style" width="492" height="487" /></p>
<p>(<em>As of now, please download the code and check-out the code in my sample. I will update the article tonight.Thanks.</em>)</p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=kxvFGc"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=kxvFGc" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=OnnufH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=OnnufH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=tqWzmh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=tqWzmh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=yb9XLh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=yb9XLh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=8K8ijh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=8K8ijh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=Qh9NUH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Qh9NUH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=6Ro56H"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=6Ro56H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=BCp1Nh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=BCp1Nh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=vfS39H"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=vfS39H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=0WFQCh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=0WFQCh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=tWU4OH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=tWU4OH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=3u9dHH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=3u9dHH" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/286520149" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/05/08/silverlight-2-beta1-styling-the-datagrid-formating-datagrid-date-column/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F05%2F08%2Fsilverlight-2-beta1-styling-the-datagrid-formating-datagrid-date-column</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/05/08/silverlight-2-beta1-styling-the-datagrid-formating-datagrid-date-column</feedburner:origLink></item>
		<item>
		<title>Can I use Silverlight 2 beta1 for commercial application?</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/285455354/can-i-use-silverlight-2-beta1-for-commercial-application</link>
		<comments>http://michaelsync.net/2008/05/07/can-i-use-silverlight-2-beta1-for-commercial-application#comments</comments>
		<pubDate>Wed, 07 May 2008 15:59:15 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=916</guid>
		<description><![CDATA[This is just a small (but interesting) post that I wanna share with my reader.

Someone from Codeproject forum said that they want to release their commercial application (which is written in Silverlight 2 beta) at the end of May. &#60;link&#62;. I was a lit bit surprise. a) AFAIK, it&#8217;s not allowed people to use SL2 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">This is just a small (but interesting) post that I wanna share with my reader.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://michaelsync.net/wp-content/uploads/2008/04/silverlight-indirect.png" alt="" width="208" height="78" /></p>
<p>Someone from Codeproject forum said that they want to release their commercial application (which is written in Silverlight 2 beta) at the end of May. &lt;<a href="http://www.codeproject.com/script/Forums/View.aspx?fid=1004257&amp;msg=2539888" target="_blank">link</a>&gt;. I was a lit bit surprise. a) AFAIK, it&#8217;s not allowed people to use SL2 beta1 for commercial application. b) a lot of people are so excited about Silverlight and they even started doing their commercial projects with beta1. I&#8217;m not sure what they gonna do when they know that they can&#8217;t use SL2beta1 for commercial application.</p>
<p>So, I wanna share what I heard from some MS guys regarding this question.</p>
<p><a href="http://blogs.msdn.com/ashish/archive/2008/04/03/silverlight-roadmap-questions.aspx">Ashish from Microsoft said</a> that ~</p>
<p style="padding-left: 30px;">Here is a rough timeline:<br />
<strong>Silverlight 2.0 Beta 1 (Q1CY08 with limited <span style="color: red;">(non commercial)</span> Go-Live)</strong><br />
Silverlight 2.0 Beta 2 (Q2CY08 with Go-Live)<br />
Silverlight 2.0 RTM (Summer 2008) – Exact timing TBD</p>
<p><a href="http://silverlight.net/forums/p/13534/45543.aspx">Tom Taylor from Microsoft Silverlight Team said</a> that ~</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">The license in the current version of Silverlight 2 (beta 1) does not allow for commerical use.</span> This will change for Silverlight Beta 2, and obviously for the final release.</p>
<p>Hope it is clear for you. Happy Silverlighting!</p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=I2ya4P"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=I2ya4P" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=ShHHyH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=ShHHyH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=YLFS8h"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=YLFS8h" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=fghXGh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=fghXGh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=EPrxNh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=EPrxNh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=9tDgJH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=9tDgJH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=2py8PH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=2py8PH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=zkE0wh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=zkE0wh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=UuRl9H"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=UuRl9H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=IQkSyh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=IQkSyh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=KNExEH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=KNExEH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=FYMcJH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=FYMcJH" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/285455354" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/05/07/can-i-use-silverlight-2-beta1-for-commercial-application/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F05%2F07%2Fcan-i-use-silverlight-2-beta1-for-commercial-application</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/05/07/can-i-use-silverlight-2-beta1-for-commercial-application</feedburner:origLink></item>
		<item>
		<title>Silverlight Rich Text Editor (Demo)</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/283345997/silverlight-rich-text-editor-demo</link>
		<comments>http://michaelsync.net/2008/05/04/silverlight-rich-text-editor-demo#comments</comments>
		<pubDate>Sun, 04 May 2008 15:10:42 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=908</guid>
		<description><![CDATA[Demo 1: Live Demo

Demo 2: Live Demo

Note: After not getting so much feedbacks from you guys, I realized that you guys really want to see the online demo that you can play around. So, we created those demos for you guys in very short time.. I haven&#8217;t implemented all features of Silverlight Rich Text Editor [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Demo 1:</strong> <a href="http://michaelsync.net/demo/RichTextEditor/RichTextEditor/ClientBin/TestPage.html" target="_blank">Live Demo</a></p>
<p><img class="alignnone size-medium wp-image-909" title="rte" src="http://michaelsync.net/wp-content/uploads/2008/05/rte.jpg" alt="" /></p>
<p><strong>Demo 2: </strong><a href="http://michaelsync.net/demo/RTE-demo2/ClientBin/TestPage.html" target="_blank">Live Demo</a></p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/05/rte2.jpg"><img class="alignnone size-full wp-image-910" title="rte2" src="http://michaelsync.net/wp-content/uploads/2008/05/rte2.jpg" alt="" width="500" height="333" /></a><br />
Note: After not getting so much feedbacks from you guys, I realized that you guys really want to see the online demo that you can play around. So, we created those demos for you guys in very short time.. I haven&#8217;t implemented all features of Silverlight Rich Text Editor in my sample since I&#8217;m really busy these days. I will<br />
keep on updating the demo..  Please feel free to let us know if you have any comment or suggestion.. You can also report a bug in <a href="http://www.codeplex.com/richtextedit/WorkItem/List.aspx">this link.</a></p>
<p>Thanks.</p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=Ngje0B"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=Ngje0B" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=n4Ns7H"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=n4Ns7H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=OM0ngh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=OM0ngh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=pj9nXh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=pj9nXh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=MiFbyh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=MiFbyh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=ahgK7H"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=ahgK7H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=vBVzWH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=vBVzWH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=WHZYxh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=WHZYxh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=OVcj2H"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=OVcj2H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=HvGEGh"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=HvGEGh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=Px4WvH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Px4WvH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=hs3QgH"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=hs3QgH" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/283345997" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/05/04/silverlight-rich-text-editor-demo/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F05%2F04%2Fsilverlight-rich-text-editor-demo</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/05/04/silverlight-rich-text-editor-demo</feedburner:origLink></item>
		<item>
		<title>Silverlight: The First Rich Text Editor</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/280044648/silverlight-the-first-rich-text-editor</link>
		<comments>http://michaelsync.net/2008/04/29/silverlight-the-first-rich-text-editor#comments</comments>
		<pubDate>Tue, 29 Apr 2008 12:01:45 +0000</pubDate>
		<dc:creator>Christoph Husse</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=904</guid>
		<description><![CDATA[This article has been written by Christoph Husse.
Many thanks to Michael for improvements and testing. He will provide his ToolBar for my rich text editor within the next days.
Download ~

RET-Introduction.pdf (140 KB)
RTE-Binary files.zip (77.6 KB)
http://www.codeplex.com/richtextedit
Live Demo Update!!

1. The First Rich Text Editor (RTE) for Silverlight 2
Visit http://www.codeplex.com/richtextedit for source code and latest bug fixes.
Many people [...]]]></description>
			<content:encoded><![CDATA[<p>This article has been written by Christoph Husse.</p>
<p>Many thanks to Michael for improvements and testing. He will provide his ToolBar for my rich text editor within the next days.</p>
<p><strong>Download</strong> ~</p>
<ul>
<li><a href="http://michaelsync.net/demo/RET-Introduction.pdf" target="_blank">RET-Introduction.pdf (140 KB)</a></li>
<li><a href="http://michaelsync.net/demo/RTE-Binary files.zip">RTE-Binary files.zip (77.6 KB)</a></li>
<li><a title="http://www.codeplex.com/richtextedit" href="http://www.codeplex.com/richtextedit" target="_blank">http://www.codeplex.com/richtextedit</a></li>
<li><a href="http://michaelsync.net/2008/05/04/silverlight-rich-text-editor-demo">Live Demo</a> <span style="color: red;">Update!!</span></li>
</ul>
<h2><span style="#000080;">1. The First Rich Text Editor (RTE) for Silverlight 2</span></h2>
<p style="justify;">Visit <a title="http://www.codeplex.com/richtextedit" href="http://www.codeplex.com/richtextedit" target="_blank">http://www.codeplex.com/richtextedit</a> for source code and latest bug fixes.</p>
<p style="justify;">Many people are waiting for a way to type rich text. Even if I think that Microsoft will bring out their own one, nobody knows how long to wait for and which features are included. My RTE ships with various common features and an extensive documentation. Please note that the whole thing is still in BETA state and there are some weird bugs on XP and different ones on Vista. It seems as if they are not caused by my component at all, because Visual Studio would notify me. So wait for the final version of Silverlight 2, until you use this component in any production environment! It is of course possible that some things are still undocumented or documented ones will not behave as expected. Don’t hesitate to report such incoherencies.</p>
<p>An incomplete feature list:</p>
<ul>
<li>Copy/Paste formatted text between RichTextBoxes and copy/paste from/to clipboard of unformatted but macro-enabled text. This means in windows clipboard even things like emoticons will be kept.</li>
<li>You may insert line breaks, unordered lists and blockquotes.</li>
<li>You may use various keyboard selection features like End/ Home/ PageUp/ PageDown/ Left/ Up/ Right/ Down, Ctrl+A/ End/ Home, Ctrl+Shift+End/ Home/ Left/ Right, Shift+End/ Home/ PageUp/ PageDown/ Left/ Up/ Right/ Down and so forth&#8230;</li>
<li>Supports direct Unicode character input using &#8220;Ctrl&#8221;+[NumPad].</li>
<li>All silverlight font formatting is supported and even some more like SUP/SUB formatting.</li>
<li>You may define macros and a proper object class that should replace matching text, like emoticons&#8230;</li>
<li>In contrast to many other rich text editors, this one is fully real-time. That means no preview is required because the editor allows editing all things directly.</li>
<li>If you only use macros and IRichTextObject to extend the control, you will automatically get support for secure content serialization of all control elements. Content serialization also supports to reload content and edit it again.</li>
<li>Secure content serialization gets rid of any potential security leak when storing user typed formatted text on a server and presenting it to visitors, because it is fully verifiable.</li>
<li>You may restrict font formatting to a well defined custom subset. This allows you to ensure that all user typed input matches your needs or website design. (this feature is currently not implemented, but only prototyped)</li>
<li>Snapshots allow convenient access to formatted content and also Find&amp;Replace with regular expressions for example&#8230;</li>
</ul>
<p>If you want to report any bug or improvements, please write me a mail to LooneyLynn@gmx.biz. I will then add the issue to CodePlex issue tracker. You should also check if your bug isn’t already there…</p>
<h3><span><span style="#000080;">1.1 A first look</span></span></h3>
<p>The following screenshot shows some formatting and the use of macros (as emoticons are). It also uses a custom designed border and you can see that the inner content automatically gets realigned to fit into the outer border. You may also customize selection back- and foreground as well as cursor color.</p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/04/preview.jpg"><img class="aligncenter size-full wp-image-905" src="http://michaelsync.net/wp-content/uploads/2008/04/preview.jpg" alt="A first look" width="500" height="313" /></a></p>
<p>There obviously are two uncommon features. The first thing is that you may insert any object derived from FrameworkElement into the text flow. The second thing is that such objects, as macros, are capable of assigning the formatting information, which will allow emoticons, for example, to also be underlined and background colored as the surrounding text is.</p>
<p>As you can see, there is a little problem with Silverlight’s interpolation feature. It leads to small separators which are visible after each char when font background is unequal to control background. For obscurity, this seems to be an issue of Vista, because under XP it is working as expected!<br />
If someone has an idea how to work around this issue, please tell me!</p>
<h3><span><span style="#000080;">1.2 Clipboard support</span></span></h3>
<p>But it goes further. If you select such custom objects, for example the button, you will be able to copy/paste it with Ctrl+c/v or internal clipboard methods including all text formatting. If you select and copy macros to clipboard, they will be translated back to their text representation allowing to copy/paste macros between application boundaries, where in contract formatted text operations are restricted to the same application only. Clipboard operations are also supported, if the browser does not support it or the user has denied access. But then of course all operations are restricted to the current application.</p>
<p>This way you are able to thread custom objects as letters and also remove/overwrite them as usual text with backspace for example.</p>
<h3><span><span style="#000080;">1.3 Future Features</span></span></h3>
<p>Of course this control is not perfect. The following features will be implemented within the next months:</p>
<ul>
<li> A XML scripting language to initialize rich text content in Expression Blend for example. This also eases management of multiple languages, because content and design are separated.</li>
<li> A way to wrap text around controls like known from Microsoft Office. Currently they are only inserted like a letter which limits capabilities of inserting images or any other kind of rich non-text content. But this feature is really far away from being simple, so don’t wait for it.</li>
<li> Non-editable XAML output which requires the XamlWriter that is currently not available.</li>
<li> Features that other developers may submit.</li>
</ul>
<h2><span><span style="#000080;">2. A tour through the demo</span></span></h2>
<p>To understand how to use this component I really recommend stepping through the demo file. It utilizes nearly all features and shows some tricks to realize hyperlinks or Find&amp;Replace with regular expressions using the abstract RTE interface. The following chapters refer to “RichText\Demo\Page.xaml.cs”.</p>
<h3><span><span style="#000080;">2.1 Initialization</span></span></h3>
<p>As RichtextEdit is derived from UserControl, you may use and initialize it as any other framework element.</p>
<pre name="code" class="csharp">

RichEdit = new RichTextEdit();
RichEdit.AutoFocus = true;
RichEdit.InsertString(…);
RichEdit.OnSelectionChanged += new NotificationHandler(RichEdit_OnSelectionChanged);
RichEdit.OnContentChanged += new NotificationHandler(RichEdit_OnContentChanged);

MSNEmoticons.Apply(RichEdit);

RichEdit.RegisterObject(new SerializableButton(null));
</pre>
<p>The above code initializes the content with a test string and makes the control ready to receive two special events. This allows your code to get notified if either the selection or content has changed. Also the MSNEmoticons-Extension is applied which will replace common emoticons like “:-)” with a matching MSN-Icon. The last line is something special and will be covered later. All lines except the object creation are optional!</p>
<h3><span><span style="#000080;">2.2 Updating a ToolBar</span></span></h3>
<pre name="code" class="csharp">

void RichEdit_OnSelectionChanged(object sender)
{
IsUpdating = true;

…
}
</pre>
<p>This event will update the whole Demo GUI according to the formatting at current selection. This method is very important for any useful ToolBar-Editor pair and you should try to understand what is going on there… The most important thing to mention is that all formatting properties like “RichTextEdit.FontAttributes” are set according to the current selection. That means you just have to read them out within the “OnSelectionChanged”-Handler and update your ToolBar properly.</p>
<h3><span><span style="#000080;">2.3 Find&amp;Replace</span></span></h3>
<p>To find text, we need to utilize the RichTextEdit.Snapshot. This allows us to directly operate on string content what is not common when dealing with rich text:</p>
<pre name="code" class="csharp">

private MatchCollection REGEX_Matches;
private Int32 REGEX_Index = 0;
private RichTextEdit.Snapshot REGEX_Snapshot;

private void BTN_Find_Click(object sender, RoutedEventArgs e)
{
REGEX_Snapshot = RichEdit.QueryText();

Regex Exp = new Regex(EDIT_Find.Text, RegexOptions.IgnoreCase |
RegexOptions.Multiline | RegexOptions.ECMAScript);

REGEX_Matches = Exp.Matches(REGEX_Snapshot.Text);
REGEX_Index = 0;

BTN_Replace.IsEnabled = true;
BTN_FindNext.IsEnabled = true;
BTN_FindNext_Click(null, null);
}
</pre>
<p>To realize the “Find Next” method, we just loop through all matches…</p>
<pre name="code" class="csharp">

private void BTN_FindNext_Click(object sender, RoutedEventArgs e)
{
if ((REGEX_Matches == null) || (REGEX_Matches.Count == 0))
{
BTN_FindNext.IsEnabled = false;
return;
}

if (REGEX_Matches.Count &lt;= REGEX_Index)
REGEX_Index = 0;

// select match
Match m = REGEX_Matches[REGEX_Index++];

REGEX_Snapshot.Select(CursorPosition.End, m.Index, m.Length);
}
</pre>
<p>As you can see a snapshot also allows us to select rich text based on string offsets.<br />
If you also want to replace rich text, thing will get a little bit more complicated. Firstly we need to remove the text referred by the current match entry. Then we insert the replacement and select it.</p>
<pre name="code" class="csharp">

private void BTN_Replace_Click(object sender, RoutedEventArgs e)
{
if ((REGEX_Matches == null) || (REGEX_Matches.Count == 0))
return;

if (REGEX_Matches.Count &lt;= REGEX_Index)
REGEX_Index = 1;

// replace selection
Match m = REGEX_Matches[REGEX_Index - 1];
Int32 iStart = m.Index;
Int32 iLen = m.Length;

REGEX_Snapshot.Remove(ref iStart, ref iLen);
REGEX_Snapshot.Select(CursorPosition.Start, iStart, 0);
REGEX_Snapshot.InsertString(EDIT_Replace.Text);
REGEX_Snapshot.Select(CursorPosition.Start,
REGEX_Snapshot.SelectionStart - EDIT_Replace.Text.Length,     EDIT_Replace.Text.Length);
}
</pre>
<p>Even if this might look strange, it is a very consistent way to realize Find&amp;Replace. Imagine there are custom objects between the letters that you wouldn’t know about. Such circumstances are handled within a snapshot and you don’t have to care about.</p>
<h2><span><span style="#000080;">3. Secure content serialization</span></span></h2>
<p>After a user has typed and formatted his text, you need to save it. My control provides a secure way to do this:</p>
<pre name="code" class="csharp">

private void BTN_Serialize_Click(object sender, RoutedEventArgs e)
{
MemoryStream Buffer = new MemoryStream();
RichTextEdit.Snapshot Snapshot = RichEdit.QuerySelectionText();

Snapshot.Serialize(false, Buffer);

// convert to base64
LABEL_Binary.Text = Convert.ToBase64String(Buffer.GetBuffer(), 0,             (int)Buffer.Length);
BTN_Deserialize.IsEnabled = true;
}
</pre>
<p>As you can see, again the snapshot is involved; you need a snapshot of what you want to serialize. If your web server does not support binary serialization, just encode it to base64 as shown above. All formatting, all macros and all custom rich text objects will be included in such a serialization stream.<br />
Deserialization works similarly:</p>
<pre name="code" class="csharp">

private void BTN_Deserialize_Click(object sender, RoutedEventArgs e)
{
MemoryStream Buffer = new
MemoryStream(Convert.FromBase64String(LABEL_Binary.Text));

RichEdit.InsertDeserialization(false, Buffer);
}
</pre>
<h3><span><span style="#000080;">3.1 Why is this secure?</span></span></h3>
<p>It is secure because it is 100% verifiable. Secure does NOT mean that it is encrypted; you still have to use SSL for encrypted content transmission. Verifiability prevents you from a whole range of common attacks because it is simply not possible to store harmful serialization content on your server or invoke harmful operations when visiting your site.<br />
In future versions, serialization will be improved to be compressed which will heavily reduce final stream size and though reduce your storage costs.</p>
<h3><span><span style="#000080;">4. Custom rich text objects</span></span></h3>
<p>Even if you may insert normal framework elements (FE), I don’t recommend it. A normal FE is not included in any kind of serialization and though not in clipboard operations. To allow FEs to be serialized, you have to create a class which implements the “IRichTextObject”-Interface. The following shows a rich text object wrapper around a simple button:</p>
<pre name="code" class="csharp">

class SerializableButton : UserControl, IRichTextObject
{
private String m_Caption;
private Button m_Instance;

private SerializableButton() : base() { }

public SerializableButton(String InCaption)
{
m_Caption = InCaption;
}

public Int16 GetTypeID()
{
return 0x100;
}

public Boolean IsFocusable
{
get
{
return true;
}
}

public void Serialize(FrameworkElement InElement, BinaryWriter InTarget)
{
SerializableButton Button = (SerializableButton)InElement;

InTarget.Write((String)Button.m_Instance.Content);
}

public FrameworkElement Deserialize(
Boolean InIgnoreWarnings,
BinaryReader InSource)
{
return CreateInstance(InSource.ReadString());
}

public FrameworkElement CreateInstance()
{
return CreateInstance(m_Caption);
}

private FrameworkElement CreateInstance(String InCaption)
{
if (InCaption == null)
throw new InvalidOperationException();

SerializableButton Result = new SerializableButton();

Result.m_Instance = new Button();
Result.m_Instance.Content = InCaption;
Result.Content = Result.m_Instance;
Result.Width = 100;
Result.Height = 25;

return Result;
}
}
</pre>
<p>The above code combines a framework element and the interface. In general this is the easiest way, because during serialization and deserialization you will only get a reference to the FE and it’s your duty to find the proper rich text object interface.<br />
The class implementing the interface should have a constructor that takes all parameters that are required to instantiate it. In our case we only need a caption for the underlying button. Those are also the parameters that should be serialized, because this way you only have to deserialize and pass them to the constructor to deserialize the whole rich text object.<br />
The instance creator is something special. The rich text object (RTO) can be threaded as a wrapper around a normal framework element. It provides a way to keep all required data through serialization, to later recreate a technically equal instance. An RTO instance should always provide technically equal framework elements through “CreateInstance” but NEVER return any object twice. It should just ensure that all returned objects referring to the same RTO constructor parameters will behave and look the same.<br />
Before all that you have to register the RTO with your editor as shown in initialization:</p>
<pre name="code" class="csharp">

RichEdit = new RichTextEdit();
…

RichEdit.RegisterObject(new SerializableButton(null));
</pre>
<p>You don’t need to pass any parameters, because this RTO instance should just provide the “Serialize”, “Deserialize” and “GetTypeID” methods which can be threaded as static, but static methods are not supported with interfaces…<br />
This technology is something hard to explain but it is very powerful if once understood. Please look at the demo and try to find out how it works.</p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=jrA1vq"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=jrA1vq" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=vIPE4G"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=vIPE4G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=oFoY9g"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=oFoY9g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=nwtPng"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=nwtPng" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=3mDtcg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=3mDtcg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=88ESUG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=88ESUG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=RdTCMG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=RdTCMG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=qjQCUg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=qjQCUg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=NQdhTG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=NQdhTG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=VBOCBg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=VBOCBg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=WaO5kG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=WaO5kG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=kLbblG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=kLbblG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/280044648" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/04/29/silverlight-the-first-rich-text-editor/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F04%2F29%2Fsilverlight-the-first-rich-text-editor</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/04/29/silverlight-the-first-rich-text-editor</feedburner:origLink></item>
		<item>
		<title>Win 2 Free Ebooks a Day at Manning.com!!</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/271854313/win-2-free-ebooks-a-day-at-manningcom</link>
		<comments>http://michaelsync.net/2008/04/16/win-2-free-ebooks-a-day-at-manningcom#comments</comments>
		<pubDate>Thu, 17 Apr 2008 02:33:45 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Fav Links]]></category>

		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=897</guid>
		<description><![CDATA[
Manning Publications is giving away 2 free ebooks a day through April (April 17 to April 30). They will choose two winners randomly everyday.  Winners are allowed to chose any ebook available on Manning.com.
All you need to do is that go to this link http://www.manning.com/free/ and give your first name and email address. That&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-full wp-image-898" title="spring-fling-special" src="http://michaelsync.net/wp-content/uploads/2008/04/spring-fling-special.jpg" alt="" width="333" height="145" /></p>
<p>Manning Publications is giving away 2 free ebooks a day through April (April 17 to April 30). They will choose two winners randomly everyday.  Winners are allowed to chose any ebook available on Manning.com.</p>
<p>All you need to do is that go to this link <a href="http://www.manning.com/free/" target="_blank">http://www.manning.com/free/</a> and give your first name and email address. That&#8217;s all. <strong>Good Luck!</strong></p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=xtbd05"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=xtbd05" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=rOjJraG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=rOjJraG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=QZeckUg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=QZeckUg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=xAQR0jg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=xAQR0jg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=4wW1gBg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=4wW1gBg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=kpNWa2G"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=kpNWa2G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=Z3WAAKG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Z3WAAKG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=xnA0u4g"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=xnA0u4g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=nXNJUQG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=nXNJUQG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=L5nYdJg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=L5nYdJg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=L8d8doG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=L8d8doG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=8HYTNCG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=8HYTNCG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/271854313" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/04/16/win-2-free-ebooks-a-day-at-manningcom/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F04%2F16%2Fwin-2-free-ebooks-a-day-at-manningcom</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/04/16/win-2-free-ebooks-a-day-at-manningcom</feedburner:origLink></item>
		<item>
		<title>Tip: Current version of Silverlight is 2. Not 2.0</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/271159521/tip-current-version-of-silverlight-is-2-not-20</link>
		<comments>http://michaelsync.net/2008/04/15/tip-current-version-of-silverlight-is-2-not-20#comments</comments>
		<pubDate>Wed, 16 Apr 2008 04:00:59 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=893</guid>
		<description><![CDATA[Did you know that the current version of Silverlight is &#8220;2&#8221; beta1. (Not 2.0 )

Silverlight 2 beta 1 is out for a while now but people are still using Silverlight &#8220;2.0&#8243; in some of their blogs. Seems like they are not aware of what happened to Silverlight version these days.

I noticed about this changes when [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that the current version of Silverlight is &#8220;<strong>2</strong>&#8221; beta1. (Not 2.0 )</p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/04/sl.jpg"><img class="alignnone size-full wp-image-895" title="sl" src="http://michaelsync.net/wp-content/uploads/2008/04/sl.jpg" alt="" width="308" height="92" /></a></p>
<p>Silverlight 2 beta 1 is out for a while now but people are still using Silverlight &#8220;2.0&#8243; in some of their blogs. Seems like they are not aware of what happened to Silverlight version these days.</p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/04/exp-studio.jpg"><img class="alignnone size-full wp-image-894" title="exp-studio" src="http://michaelsync.net/wp-content/uploads/2008/04/exp-studio.jpg" alt="" width="500" height="92" /></a></p>
<p>I noticed about this changes when Yi-Lun wrote &#8220;Silverlight 2 (not 2.0)&#8221; in one post of Silverlight forum. I was wondering why 2? why not 2.0 that we are familiar with. I didn&#8217;t keep silent and I did ask him about that. So, he forwarded me the response from Microsoft Marketing team as below.</p>
<blockquote><p>In general both Expression and Silverlight are trying to stick with much less geeky product version names and numbers.  For example we use ‘Preview’ instead of ‘CTP’.  Version 2 instead of 2.0, etc.</p>
<p>At this moment the shipping release of Expression and Silverlight aren’t yet aligned.  Expression Blend 2 supports the shipped Silverlight 1 release for example.  Silverlight 2 is such an important release for our users that we are committing to shipping a version of Expression Blend before Expression Blend 3 concurrent with the formal release of Silverlight 2.  As this will ship before Expression Blend 3, we need to call it something.  Thus Microsoft Expression Blend 2.5.</p></blockquote>
<p>This response will clear all of our questions related to the version of Expression Studio, Blend and Silverlight. I think it&#8217;s good to know. That&#8217;s why I&#8217;m sharing about this with you all. Thanks to Yi-lun.</p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=1M3Hzm"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=1M3Hzm" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=4fzFwmG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=4fzFwmG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=4ZV8cyg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=4ZV8cyg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=Mvmmsqg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Mvmmsqg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=WSyjyMg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=WSyjyMg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=Z2a0XcG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Z2a0XcG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=ALbgajG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=ALbgajG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=gR4TYig"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=gR4TYig" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=SQSYEBG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=SQSYEBG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=O3SwKWg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=O3SwKWg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=8FWlwaG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=8FWlwaG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=IF4iKqG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=IF4iKqG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/271159521" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/04/15/tip-current-version-of-silverlight-is-2-not-20/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F04%2F15%2Ftip-current-version-of-silverlight-is-2-not-20</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/04/15/tip-current-version-of-silverlight-is-2-not-20</feedburner:origLink></item>
		<item>
		<title>Silverlight 2 (beta1): New Installation Experience</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/270808676/silverlight-2-beta1-new-installation-experience</link>
		<comments>http://michaelsync.net/2008/04/15/silverlight-2-beta1-new-installation-experience#comments</comments>
		<pubDate>Tue, 15 Apr 2008 16:06:17 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=881</guid>
		<description><![CDATA[Did you know that the experience for installing Silverlight has been changed? Before start talking about new experience, let me summarize a lit bit about old installation experience firstly.
There were two installation modes such as indirect installation and inplace installation (direct installation) in earlier versions of Silverlight.
Old Installation Experience: Indirect Installation 

If you are using [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that the experience for installing Silverlight has been changed? Before start talking about new experience, let me summarize a lit bit about old installation experience firstly.</p>
<p>There were two installation modes such as indirect installation and inplace installation (direct installation) in earlier versions of Silverlight.</p>
<p><strong>Old Installation Experience: Indirect Installation </strong></p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/04/silverlight-indirect.png"><img class="alignnone size-full wp-image-888" title="silverlight-indirect" src="http://michaelsync.net/wp-content/uploads/2008/04/silverlight-indirect.png" alt="" width="208" height="78" /></a></p>
<p>If you are using indirect installation experience in your site, the image &#8220;Get Microsoft Silverlight&#8221; will be displayed for those who doesn&#8217;t install Silverlight in their machines. If the user clicks on the image, it will be redirected to <a href="http://www.microsoft.com/silverlight/install.aspx">this link</a> to download the Silverlight installer. The user need to download and install it manually.</p>
<p>This approach is not so convinced for users since he/she will need to navigate back to the page</p>
<p><strong>Old Installation Experience: Inplace Installation (a.k.a: Direct)<br />
</strong></p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/04/silverlight-inplace.jpg"><img class="alignnone size-full wp-image-889" title="silverlight-inplace" src="http://michaelsync.net/wp-content/uploads/2008/04/silverlight-inplace.jpg" alt="" width="214" height="144" /></a></p>
<p>This is another way of installing Silverlight. It&#8217;s also called &#8220;inplace&#8221; or &#8220;direct&#8221; installation. To enable this feature, you have to  inplaceInstallPrompt:true in createSilverlight() function. Then, the image above will be shown to the users who don&#8217;t have Silverlight installed. If the user clicks on that image, Silverlight.exe (installer) will be launched directly. In my opinion, it&#8217;s more convinced for users since it&#8217;s not required to navigate back to the original page.</p>
<p>The important thing to note here is that both approaches don&#8217;t require a browser restart if the user never had Silverlight installed before. Otherwise, the browser restart will be required.</p>
<p><strong>Silverlight 2: New Installation Experience</strong></p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/04/sl2newexp.png"><img class="alignnone size-full wp-image-890" title="sl2newexp" src="http://michaelsync.net/wp-content/uploads/2008/04/sl2newexp.png" alt="" width="221" height="65" /></a></p>
<p>In Silverlight 2 beta1, we will have the direct-installation experience only but the image has been changed as above. (&#8221;small and easy to understand&#8221; image) After installation, the user only need to refresh the browser to view the Silverlight content. OR you can call createSilverlight() again to get instantiation without refresh. (but we won&#8217;t call that function again since we won&#8217;t have any idea when the installation will be completed.)</p>
<p>I have tested this new experience in my friend&#8217;s laptop. I opened HardRock cafe website in his machine. The following was displayed since he never had Silverlight installed in his laptop.</p>
<p><img src="http://michaelsync.net/wp-content/uploads/2008/04/install-silverligh-small.jpg" alt="Silverlight Rock" /></p>
<p>So, I clicked on the image and installed Silverlight on his machine. After that, I just refreshed the browser then HardRock website became alive as expected. Cool!</p>
<p>but one interesting thing happened. You should disable the Internet Download Manager if you want to surf that site. My friend has &#8220;Internet Download Manager&#8221; installed in his machine so when I opened that site on browser,  &#8220;Internet Download Manager&#8221; asked me whether I want to download the unknown file called &#8220;items_2.bin&#8221; from HardRock site. It seems like that site was downloading something in his Isolated Storage.</p>
<p><img class="alignnone size-medium wp-image-891" title="internet-download-manager" src="http://michaelsync.net/wp-content/uploads/2008/04/internet-download-manager.jpg" alt="" /></p>
<p><em>Credit : Thanks to Piotr Puszkiewicz from Silverlight.</em></p>
<p>Related :</p>
<ul>
<li><a href="http://blogs.msdn.com/webnext/archive/2007/05/08/silverlight-install-modes.aspx">Laurence Moroney: Silverlight Install Modes</a></li>
<li><a href="http://silverlight.net/forums/p/12963/42183.aspx">Silverlight 2 in place installation</a></li>
</ul>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=26wdPx"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=26wdPx" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=zfditKG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=zfditKG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=pwltNJg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=pwltNJg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=IrcWLQg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=IrcWLQg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=rgpOusg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=rgpOusg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=RDQ6DYG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=RDQ6DYG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=f9IELHG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=f9IELHG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=dFy0nlg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=dFy0nlg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=Il85B0G"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Il85B0G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=DfIdm1g"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=DfIdm1g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=67gk8EG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=67gk8EG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=Mme8udG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Mme8udG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/270808676" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/04/15/silverlight-2-beta1-new-installation-experience/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F04%2F15%2Fsilverlight-2-beta1-new-installation-experience</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/04/15/silverlight-2-beta1-new-installation-experience</feedburner:origLink></item>
		<item>
		<title>[Funny] - No worry for warnings!</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/270827291/funny-no-worry-for-warnings</link>
		<comments>http://michaelsync.net/2008/04/15/funny-no-worry-for-warnings#comments</comments>
		<pubDate>Tue, 15 Apr 2008 14:06:22 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Fav Jokes]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=892</guid>
		<description><![CDATA[The boy is smoking and leaving smoke rings into the air.
The girl gets irritated with the smoke and says to her lover: &#8220;Can&#8217;t you see the warning written on the cigarettes packet, smoking is injurious to health!&#8221;
The boy replies back: &#8220;Darling, I am a programmer. We don&#8217;t worry about warnings, we only worry about errors.&#8221;
Related [...]]]></description>
			<content:encoded><![CDATA[<p>The boy is smoking and leaving smoke rings into the air.</p>
<p>The girl gets irritated with the smoke and says to her lover: &#8220;Can&#8217;t you see the warning written on the cigarettes packet, smoking is injurious to health!&#8221;</p>
<p>The boy replies back: &#8220;Darling, I am a programmer. We don&#8217;t worry about warnings, we only worry about errors.&#8221;</p>
<p>Related ~</p>
<ul>
<li><a href="http://michaelsync.net/2006/09/19/smoking-is-good-for-you">Smoking is good for you!</a></li>
<li><a href="http://michaelsync.net/2007/03/15/funny-thats-not-your-fault">[Funny] - That’s not your fault.</a></li>
<li><a href="http://michaelsync.net/2007/03/15/jokes-for-you-to-laugh">Jokes for you to laugh !!</a></li>
<li><a href="http://michaelsync.net/2006/07/28/dear-tech-support-team">Dear Tech Support Team</a></li>
<li><a href="http://michaelsync.net/2006/08/31/dear-god">Dear God</a></li>
</ul>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=GtrDHK"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=GtrDHK" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=Opo6A0G"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=Opo6A0G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=7KV35Rg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=7KV35Rg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=mK7QxMg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=mK7QxMg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=wAQwtQg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=wAQwtQg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=ypFo89G"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=ypFo89G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=0MlTMYG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=0MlTMYG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=exbV8lg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=exbV8lg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=PAeUHZG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=PAeUHZG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=FdW5cdg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=FdW5cdg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=zMfE2qG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=zMfE2qG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=wS9rarG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=wS9rarG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/270827291" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/04/15/funny-no-worry-for-warnings/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F04%2F15%2Ffunny-no-worry-for-warnings</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/04/15/funny-no-worry-for-warnings</feedburner:origLink></item>
		<item>
		<title>Silverlight 2 (beta1) - Rich Text Viewer</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/270128399/silverlight-2-beta1-rich-text-viewer</link>
		<comments>http://michaelsync.net/2008/04/14/silverlight-2-beta1-rich-text-viewer#comments</comments>
		<pubDate>Mon, 14 Apr 2008 17:18:02 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://michaelsync.net/?p=884</guid>
		<description><![CDATA[By: Christoph Husse
This is a guest post by Christoph Husse. I would like to say &#8220;thank you&#8221; for writing great article and being a guest blogger in my blog. I&#8217;m pretty busy with my project this week and can&#8217;t write any post for a while. Thank you! Chris
Thanks,
Michael Sync
Download ~

RichTextBlock.doc (110KB)
RichTextViewer.zip (943 KB)


Contents

 Introduction

How to [...]]]></description>
			<content:encoded><![CDATA[<p>By: Christoph Husse</p>
<blockquote><p>This is a guest post by Christoph Husse. I would like to say &#8220;thank you&#8221; for writing great article and being a guest blogger in my blog. I&#8217;m pretty busy with my project this week and can&#8217;t write any post for a while. Thank you! Chris</p>
<p>Thanks,<br />
Michael Sync</p></blockquote>
<p><strong>Download ~</strong></p>
<ul>
<li><a title="RichTextBlock.doc" href="http://michaelsync.net/demo/RichTextBlock.doc" target="_blank">RichTextBlock.doc</a> (110KB)</li>
<li><a title="RichTextViewer.zip" href="http://michaelsync.net/demo/RichTextViewer.zip" target="_blank">RichTextViewer.zip</a> (943 KB)</li>
</ul>
<p style="text-align: center;"><img src="http://michaelsync.net/wp-content/uploads/2008/04/text-viewer.jpg" alt="Silverlight 2 (beta1) - Rich Text Viewer" /></p>
<p><strong>Contents</strong></p>
<ol>
<li> Introduction
<ol>
<li>How to format text?</li>
</ol>
<ol>
<li>How to change text formatting?</li>
</ol>
<ol>
<li>How to use the component?</li>
</ol>
</li>
<li>A formatting Toolbar</li>
</ol>
<h2>Introduction</h2>
<p>This article describes how to utilize my RichTextBlock component to display text with basic formatting and MSN smilies. In general the TextBlock provided by Microsoft isn’t useful in many cases. Its text wrapping option doesn’t work correctly and it only supports one text format per time. Please note that my one isn’t a RichTextEditor but only a kind of viewer! Like my Demo shows, you may apply the text written to any TextBox directly within a RichTextBlock which will lead into a kind of real-time preview. This should be enough until Silverlight will itself bring a RichTextEdit into play.<br />
Of course the smilies got transparent borders which make them capable to be rendered over any given background without losing their smoothness.</p>
<h3>1.1.    How to format text?</h3>
<p>The control uses a syntax free markup language (ML) to realize formatting. This has two advantages. One the one hand it’s very easy to understand and on the other hand it is not possible to type something invalid. These two facts make the control ready to be used by the general public. For example a reduced HTML is much harder to understand for anyone not involved in web development and, of course, much harder to parse. The provided formatting should be enough for nearly all common input purposes like messages, guest-books, forums, and so on…</p>
<p>Internally, all context rendering is done within an exception handler. If anything goes wrong, the box will just be empty instead of throwing an exception. This is to prevent you from some Denial of Service attacks. Imagine an attacker who types in text that throws such an exception and you have forgotten to catch it…</p>
<p>The ML supports the following text formatting:</p>
<p><img src="http://michaelsync.net/wp-content/uploads/2008/04/ml-support.jpg" alt="" /></p>
<p>The sample screenshot above has been rendered with the following ML text (AutoReturn = false):</p>
<pre name="code" class="xml">

&lt;20&gt;Big :@ &lt;i&gt;text &lt;12&gt;.

&lt;item&gt;
This is a simple item and should be visible among two lines... Or maybe three, who knows that yet ;)?
&lt;/item&gt;

This is not an item.

&lt;indent&gt;
A non closed &lt;br&gt; indent showing that my small markup language is syntax free...

&lt;item&gt;
&lt;arial&gt;&lt;18&gt;&lt;i&gt;&quot;We're just starting &lt;b&gt;a new item without &lt;/&gt; &lt;i&gt;closing the previous one...
&lt;item&gt;
&lt;blue&gt;and &lt;12&gt;the whole &lt;green&gt;thing again!&quot;&lt;/&gt;
&lt;/item&gt;

After this it is enough to close the items one time...&lt;br&gt;
The following shows all supported smilies:&lt;br&gt;

(W):-**-):-O|-)+o(:-#^o):((F)8-):D8-|8o|(L)(K):P:):$:|:'((H):S(U):@
</pre>
<h3>1.2. How to change text formatting?</h3>
<p class="MsoNormal" style="text-align: justify">Of course, it is possible to change all the formatting macros. Internally a translation table with the following entry format is being used:</p>
<pre name="code" class="csharp">

new RepEntry()
{
Rep = TextReplacements.Confused,
Text = new String[] {&quot;:S&quot;, &quot;:-S&quot;, &quot;*confused*&quot;, &quot;*verwirrt*&quot;}
},
</pre>
<p>The String-Array contains a list of macros that will be replaced by the given TextReplacement if encountered in text. All of those entries assemble the RichTextBlock.RepList. By changing the String-Array you may customize the markup language. The internal semantic is not changeable in any efficient manner. If you want the ML to behave in another way, you will have to rewrite appropriate code sections.</p>
<h3>1.3. How to use the component?</h3>
<p class="MsoNormal" style="text-align: justify">The controls will always have a fixed width and a height-range. The reason for this is that there is simply no application in my mind that requires a width-range and it makes rendering much easier. The height will be adjusted every time the content is being updated and will never exceed its boundaries. Also no “half” lines will be displayed, like it is common with the normal TextBlock. If the last visible line does not fully fit into the component it is just skipped completely. Currently there are no ellipses supported if the text does not fit entirely into the visible control part.</p>
<p class="MsoNormal" style="text-align: justify">The following is the same code as my Demo is using and will allow real-time preview of typed ML including a state block showing the current formatting at cursor position:</p>
<pre name="code" class="csharp">

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;

namespace Demo
{
public partial class Page : UserControl
{
RichTextBox TextBox;
TextBlock State;
RichTextBlock TextBlock;

public Page()
{
InitializeComponent();

TextBox = new RichTextBox();

TextBox.Text = “Enter your text here :-)!”;

TextBox.Margin = new Thickness(100, 100, 0, 0);
TextBox.Width = 300;
TextBox.Height = 200;
TextBox.HorizontalAlignment = HorizontalAlignment.Left;
TextBox.VerticalAlignment = VerticalAlignment.Top;
TextBox.OnStateChanged += new StateChangedHandler(TextBox_OnStateChanged);

TextBlock = RichTextBlock.Create(TextBox.Text, 100, 320, 300, 0, 400);
TextBlock.HorizontalAlignment = HorizontalAlignment.Left;
TextBlock.VerticalAlignment = VerticalAlignment.Top;

TextBox.Preview = TextBlock;

State = new TextBlock();
State.Margin = new Thickness(100, 20, 0, 0);
State.Width = 300;
State.Height = 50;
State.HorizontalAlignment = HorizontalAlignment.Left;
State.VerticalAlignment = VerticalAlignment.Top;

LayoutRoot.Children.Add(State);
LayoutRoot.Children.Add(TextBox);
LayoutRoot.Children.Add(TextBlock);
}

void TextBox_OnStateChanged(object InSender, TextReplacements InState, bool IsValid)
{
State.Text = TextBox.StateToString();
}
}
}
</pre>
<p>If you are using huge contents for RichTextBlock or planning to frequently update the Text-Property, you might consider setting “RichTextBlock.AutoUpdate” to “false”, which will disable automatic re-rendering each time the Text-Property is changed. You manually have to call “Update()” if you want to re-render the content in this case!</p>
<p>As formatting heavily depends on special chars, don’t forget that Silverlight does currently only support US-keyboards. If you are using a non-US keyboard consider utilizing my InternationalTextBox instead of the TextBox provided by Microsoft!</p>
<h2>2.  A formatting Toolbar</h2>
<p>If you plan to use a formatting toolbar to provide a more convenient user interface, you will need to determine the format settings at a given cursor position. This is to show the current formatting within the toolbar and of course to insert a proper command. For this reason I wrote a little TextBox extension supporting all of this stuff. I called it RichTextBox, even if this might be misleading but I had no clue how to name it more precisely. The following properties are exported:</p>
<p><a href="http://michaelsync.net/wp-content/uploads/2008/04/rtb-properties.jpg"><img class="aligncenter size-full wp-image-887" title="rtb-properties" src="http://michaelsync.net/wp-content/uploads/2008/04/rtb-properties.jpg" alt="" width="497" height="171" /></a></p>
<p>A toolbar should register the “RichTextBox.OnStateChanged” event, to be notified each time the state at current cursor position has changed, maybe due to cursor movement or text updates. The handlers “IsValid” parameter will be set to “true” if “RichTextBox.SelectionLength” is zero, “false” otherwise. The reason for this is that it is rather complicated to support such formatting changes for custom text selections. And as far as it is not necessary, I’ve just skipped the feature. So if “IsValid” is “false” you should just disable all formatting components, except the smilies, which are still supported! Changing any of the above states when “IsValid” is “false” will have no effect…</p>
<p>To change the state at current cursor position, just set the above properties to any desired value. The RichTextBox will automatically insert a proper command into the text depending on current formatting.</p>
<p>To insert smilies at cursor position, just call RichTextBox.InsertSmiley().</p>
<p>If you want to realize a real-time preview you may also set the “RichTextBox.Preview” property to any RichTextBlock. It will be updated automatically.</p>
<p>And of course the RichTextBox automatically refers to your custom macro definition table. So you may change all macro definitions without losing the capabilities of this component…</p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=qoKcNI"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=qoKcNI" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=YIt7xBG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=YIt7xBG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=kEdYdeg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=kEdYdeg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=ONxanIg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=ONxanIg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=kaWm88g"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=kaWm88g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=lqkdoYG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=lqkdoYG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=fh6ePLG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=fh6ePLG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=eJYaVjg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=eJYaVjg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=p1BmeKG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=p1BmeKG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=NQc4jMg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=NQc4jMg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=ha49tMG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=ha49tMG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=ELdmMXG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=ELdmMXG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/270128399" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/04/14/silverlight-2-beta1-rich-text-viewer/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F04%2F14%2Fsilverlight-2-beta1-rich-text-viewer</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/04/14/silverlight-2-beta1-rich-text-viewer</feedburner:origLink></item>
		<item>
		<title>A Little Feedback for your article, Dr-Lam!</title>
		<link>http://feeds.feedburner.com/~r/MichaelSync/~3/269298286/a-little-feedback-for-your-article-dr-lam</link>
		<comments>http://michaelsync.net/2008/04/12/a-little-feedback-for-your-article-dr-lam#comments</comments>
		<pubDate>Sun, 13 Apr 2008 06:12:46 +0000</pubDate>
		<dc:creator>Michael Sync</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://michaelsync.net/2008/04/12/a-little-feedback-for-your-article-dr-lam</guid>
		<description><![CDATA[This is a guest post by Su. Before reading this, I just want you to know that this is not a technical article. This is nothing related to .NET or Silverlight that I used to post in my blog. But As I&#8217;m a Buddhist and currently staying in S&#8217;pore, I think I should probably post [...]]]></description>
			<content:encoded><![CDATA[<blockquote>This is a guest post by Su. Before reading this, I just want you to know that this is not a technical article. This is nothing related to .NET or Silverlight that I used to post in my blog. But As I&#8217;m a Buddhist and currently staying in S&#8217;pore, I think I should probably post her feedback here. Thanks for sending this post to me, Su!<br />
~ Michael Sync</p></blockquote>
<blockquote></blockquote>
<p>To whom it may concern, especially Dr Lam and Claire Huang,</p>
<p>I am referring to the article &#8220;<strong>Doctor with a heart for charitable causes, Page no. A4, My Paper, 26 Mar 2008</strong>&#8220;. First of all thanks to Dr Lam for his contribution and donation to Myanmar. The level of health condition in Myanmar is low due to low food hygiene standard and people need helping hand like what Dr Lam did. I do appreciate it.</p>
<p>However in the article, Huang quoted &#8220;I thought monks, being on a vegetarian diet, should not have coronary heart disease, but I was so shocked to see so many of them with severe coronary heart disease&#8221;.</p>
<p>I was originally from Myanmar and lived there since from 1980 to 2001. As a Buddhism. I would like to highlight that most of the Myanmar monks are not vegetarians, not like Chinese monks. To be a Buddhist monk, it is not necessary to be a vegetarian. I don&#8217;t think that Buddha himself was a vegetarian. He never set the rule to be a vegetarian in order to be a Buddhist. Some people choose to be vegetarians which came from Hindu. Therefore, vegetarian is &#8220;a choice&#8221;, not &#8220;a must&#8221; to a Buddhist.</p>
<p>I would like to ask Dr Lam, why was he so shocked? In fact, they were Myanmar monks and not Chinese monks. Did he ask the monks, who he referred, whether they are vegetarians or not? Were they from vegetarian monastery? What did he mean in that phrase? Why did he choose to put his surprise on Monk, why not Myanmar people?</p>
<p>I was confused after reading that paragraph and worried that it may create misunderstanding about Buddhism in Myanmar and Myanmar Monks to Singaporeans and Non-Buddhists due to tradition and culture difference between Myanmar and Chinese Monks. He may have seen vegetarian monks but they could not represent for whole Myanmar Monk, not vegetarians in majority, although he mentioned &#8220;so many of them&#8221;.</p>
<p>I would like to request that please leave the perception in Singapore before you comment about other countries.</p>
<p>Regards,<br />
Su</p>

<p><a href="http://feeds.feedburner.com/~a/MichaelSync?a=8VGPab"><img src="http://feeds.feedburner.com/~a/MichaelSync?i=8VGPab" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/MichaelSync?a=pPgMxpG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=pPgMxpG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=K7FZf6g"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=K7FZf6g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=xGindtg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=xGindtg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=jHCk9ig"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=jHCk9ig" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=agFls0G"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=agFls0G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=DIN1DfG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=DIN1DfG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=UcHzjyg"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=UcHzjyg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=0RJl36G"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=0RJl36G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=D8q8gug"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=D8q8gug" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=XKMVUtG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=XKMVUtG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/MichaelSync?a=CgX5dvG"><img src="http://feeds.feedburner.com/~f/MichaelSync?i=CgX5dvG" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MichaelSync/~4/269298286" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelsync.net/2008/04/12/a-little-feedback-for-your-article-dr-lam/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=MichaelSync&amp;itemurl=http%3A%2F%2Fmichaelsync.net%2F2008%2F04%2F12%2Fa-little-feedback-for-your-article-dr-lam</feedburner:awareness><feedburner:origLink>http://michaelsync.net/2008/04/12/a-little-feedback-for-your-article-dr-lam</feedburner:origLink></item>
	<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetFeedData?uri=MichaelSync</feedburner:awareness></channel>
</rss>
