<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Silverlight and Windows Phone SDK</title><link>http://blogs.msdn.com/b/silverlight_sdk/</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.20496 (Build: 5.6.583.20496)</generator><item><title>Windows Phone Design Guidelines on MSDN</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2012/02/01/windows-phone-design-guidelines-on-msdn.aspx</link><pubDate>Thu, 02 Feb 2012 06:18:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10263088</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10263088</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2012/02/01/windows-phone-design-guidelines-on-msdn.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2"&gt;It was recently brought to my attention that we have done a poor job of evangelizing the &lt;a href="http://msdn.microsoft.com/en-us/library/hh202915(v=vs.92).aspx"&gt;Windows Phone Design Guidelines on MSDN&lt;/a&gt;. These guidelines were previously available in PDF format, but a few months ago a couple of folks worked really hard to bring these to MSDN. Given the success of one of my previous posts, &lt;a href="http://blogs.msdn.com/b/silverlight_sdk/archive/2011/01/07/windows-phone-7-design-guidelines-cheat-sheet.aspx"&gt;the design cheat sheet&lt;/a&gt;, I would guess that developers are looking for these design guidelines presented in an easy-to-consume format.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Along the lines of easy to consume are the &lt;a href="http://msdn.microsoft.com/en-us/library/hh202879(v=vs.92).aspx"&gt;control design guideline topics&lt;/a&gt;. There are design guideline topics for most controls that ship with the Windows Phone SDK. These topics typically contain an image of the control and describe the standard appearance of a control and its standard use. The best part of these topics, in my opinion, is the Design Guidelines section that lists the important points you need to remember when using the control in your UI. The following images show parts of the topic for the Button control.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/2110.image_5F00_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/3108.image_5F00_thumb.png" width="187" height="244" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/2626.image_5F00_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/6232.image_5F00_thumb_5F00_1.png" width="244" height="175" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&lt;font size="2"&gt;So please, check out these topics and let us know what you think. Post a comment to this post or just use the feedback mechanism on the MSDN page.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;--Cheryl&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10263088" width="1" height="1"&gt;</description></item><item><title>Updates to the Windows Phone docs</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/20/updates-to-the-windows-phone-docs.aspx</link><pubDate>Tue, 20 Dec 2011 18:10:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10249667</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10249667</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/20/updates-to-the-windows-phone-docs.aspx#comments</comments><description>&lt;p&gt;We recently made a refresh of the Windows Phone documentation and samples. We've updated several samples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Background Agent&lt;/li&gt;
&lt;li&gt;Background Transfer Service&lt;/li&gt;
&lt;li&gt;Quick Card&lt;/li&gt;
&lt;li&gt;Search Extensibility&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also added the following new sample that shows how to use types in the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation(v=VS.92).aspx"&gt;NetworkInformation&lt;/a&gt; namespace to get the network status of the device, mobile network and other information.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Network and Device Information&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To get the latest samples go to the &lt;a href="http://msdn.microsoft.com/en-us/library/ff431744(v=VS.92).aspx"&gt;Code Samples&lt;/a&gt; page on MSDN.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In addition, we made fixes to several&amp;nbsp;docs, some based on your feedback on &lt;a href="http://wpdev.uservoice.com/forums/110707-docs"&gt;UserVoice&lt;/a&gt;. For example, we added links to the camera sample from the camera docs. Please keep your feedback coming and we'll keep updating and making changes!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10249667" width="1" height="1"&gt;</description></item><item><title>Muted audio even when the playback rate is set to a supported audio playback rate</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/19/muted-audio-even-when-the-playback-rate-is-set-to-a-supported-audio-playback-rate.aspx</link><pubDate>Mon, 19 Dec 2011 18:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10249296</guid><dc:creator>Nitya Ravi</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10249296</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/19/muted-audio-even-when-the-playback-rate-is-set-to-a-supported-audio-playback-rate.aspx#comments</comments><description>&lt;p&gt;Silverlight 5 supports multiple playback rates. When the playback rate is set to&amp;nbsp;a rate that does &lt;b&gt;not&lt;/b&gt; support audio playback, audio will be muted. If playback is reset back to 1 or to any value that supports audio playback after multiple rates that don&amp;rsquo;t support audio/pitch correction playback, the audio could still be muted.&lt;/p&gt;
&lt;p&gt;To work around this issue, you can reset the volume when the playback rate is changed. The following code demonstrates one way to reset the volume.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;void ME_RateChanged(object sender, RateChangedRoutedEventArgs e)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // For playback rates that support audio playback, Enforce audio playback by resetting the MediaElement Volume property&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //to unmute audio after multiple playbackRate changes.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.NewRate &amp;lt;= 2&amp;nbsp; &amp;amp;&amp;amp; e.NewRate &amp;gt;= 0.5)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ME.Volume = ME.Volume;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;-Nitya.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10249296" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/bugs/">bugs</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+5/">silverlight 5</category></item><item><title>Don't forget about the databinding features of Silverlight 4 that you get with Mango!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/16/don-t-forget-about-databinding-features-of-silverlight-4-you-get-with-mango.aspx</link><pubDate>Fri, 16 Dec 2011 23:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10248756</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10248756</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/16/don-t-forget-about-databinding-features-of-silverlight-4-you-get-with-mango.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif; font-size: small;"&gt;If you are a Windows Phone developer, there are some properties offered on the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase(v=VS.95).aspx"&gt;Binding&lt;/a&gt; object in SIlverlight 4, which is supported by Mango.&amp;nbsp;Thse properties were not offered in Silverlight 3/Windows Phone OS 7.0.&amp;nbsp;The SL4 binding&amp;nbsp;properties&amp;nbsp;make setting up control bindings much easier and help you avoid using a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx"&gt;value converter&lt;/a&gt; in many cases.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif; font-size: small;"&gt;You can set a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.stringformat(v=VS.95).aspx"&gt;StringFormat&lt;/a&gt; value on the binding to format your string in many common formats such as currency, date, time, etc&amp;nbsp;. For example, if you want the string to be formatted like currency, your binding would look like this:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Text&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;="{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;Binding&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt; StringFormat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;=C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-family: Consolas; font-size: small;" face="Consolas" color="#0000ff" size="2"&gt;&lt;span style="color: #0000ff; font-family: Consolas;" face="Consolas" color="#0000ff" size="2"&gt;&lt;span style="color: #0000ff; font-family: Consolas;" face="Consolas" color="#0000ff" size="2"&gt;&lt;span style="color: #000000; font-family: arial,helvetica,sans-serif;" face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;The docs for &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.stringformat(v=VS.95).aspx"&gt;StringFormat&lt;/a&gt; could use some work (don't worry--I've filed a bug and they should get fixed for the next update), but meanwhile look &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000; font-family: arial,helvetica,sans-serif;" face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;at the following topics for more information about what your format strings should look like:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;" face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/library/dwhawy9k(v=VS.95).aspx"&gt;Standard Format Strings&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;" face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/library/az4se3k1(v=VS.95).aspx"&gt;Date Format Strings&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif; font-size: small;"&gt;You can also set the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.fallbackvalue(v=VS.95).aspx"&gt;FallbackValue&lt;/a&gt; property that is used when the binding can't return a value.&amp;nbsp;In other words, this value will display in the UI when the binding doesn't resolve.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-family: courier new,courier; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Text&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;="{&lt;span face="Consolas" color="#a31515" size="2"&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;Binding Name,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;FallbackValue&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;=No Value&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;}"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;And finally set the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.targetnullvalue(v=VS.95).aspx"&gt;TargetNullValue&lt;/a&gt;&amp;nbsp;to display a value when the underlying source value is null or&amp;nbsp;nothing.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-size: small;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;Text&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;="{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;&lt;span face="Consolas" color="#a31515" size="2"&gt;Binding Name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;&lt;span face="Consolas" color="#ff0000" size="2"&gt;TargetNullValue&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" size="2"&gt;&lt;span face="Consolas" size="2"&gt;n/a}&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;All of these properties will show in Intellisense and speed development for you.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;Enjoy!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;&lt;span face="Consolas" color="#0000ff" size="2"&gt;--Cheryl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10248756" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Silverlight+4/">Silverlight 4</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/data+binding/">data binding</category></item><item><title>Silverlight 5 has released! The docs are up and a .chm is available</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/09/silverlight-5-has-released-the-docs-are-up-and-a-chm-is-available.aspx</link><pubDate>Fri, 09 Dec 2011 20:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10246206</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10246206</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/12/09/silverlight-5-has-released-the-docs-are-up-and-a-chm-is-available.aspx#comments</comments><description>&lt;p&gt;Silverlight 5 has released! Here's the link to&amp;nbsp;download the &lt;a title="http://go.microsoft.com/fwlink/?LinkId=229318" href="http://go.microsoft.com/fwlink/?LinkId=229318"&gt;Silverlight 5 tools&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Silverlight 5 offers many new features including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/system.windows.controls.pivot.pivotviewer(VS.95).aspx" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.pivot.pivotviewer(VS.95).aspx"&gt;PivotViewer&lt;/a&gt; control&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee721083(VS.95).aspx"&gt;Trusted applications&lt;/a&gt; in-browser&lt;/li&gt;
&lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/gg197424(XNAGameStudio.35).aspx" href="http://msdn.microsoft.com/en-us/library/gg197424(XNAGameStudio.35).aspx"&gt;3D graphics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ee671023(VS.95).aspx" href="http://msdn.microsoft.com/en-us/library/ee671023(VS.95).aspx"&gt;Vector printing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Improved text rendering including the &lt;a title="http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextblock(VS.95).aspx" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextblock(VS.95).aspx"&gt;RichTextBlock&lt;/a&gt; control.&lt;/li&gt;
&lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx" href="http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx"&gt;Hardware decode of H.264&lt;/a&gt; media&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a detailed list of the new features see the Silverlight content on MSDN, specifically, the &lt;a title="http://msdn.microsoft.com/en-us/library/gg986857(VS.95).aspx" href="http://msdn.microsoft.com/en-us/library/gg986857(VS.95).aspx"&gt;What's New for Silverlight 5&lt;/a&gt; topic.&lt;/p&gt;
&lt;p&gt;If you prefer your docs offline, here's the link to download the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=214685"&gt;.chm containing Silverlight 5 docs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;Cheryl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10246206" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+5/">silverlight 5</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+5+-chm/">silverlight 5 .chm</category></item><item><title>Tip for Using HyperlinkButton or Hyperlink in Silverlight for Windows Phone</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/10/25/tip-for-using-hyperlinkbutton-or-hyperlink-in-silverlight-for-windows-phone.aspx</link><pubDate>Tue, 25 Oct 2011 23:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10230023</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10230023</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/10/25/tip-for-using-hyperlinkbutton-or-hyperlink-in-silverlight-for-windows-phone.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2"&gt;If you’ve tried unsuccessfully to use the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton(VS.96).aspx"&gt;HyperlinkButton&lt;/a&gt; control or the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.documents.hyperlink(VS.95).aspx"&gt;Hyperlink&lt;/a&gt; type in your Silverlight for Windows Phone applications, I have a tip for you.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;In Silverlight for Windows Phone you must always set the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx"&gt;TargetName&lt;/a&gt; property to a value for the control to successfully navigate to the URL specified by &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.navigateuri(VS.96).aspx"&gt;NavigateUri&lt;/a&gt; when the hyperlink control is clicked. It doesn’t really matter what you set &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx"&gt;TargetName&lt;/a&gt; to, it just must be set. If you set &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx"&gt;TargetName&lt;/a&gt; and click the hyperlink control, the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.controls.webbrowser(v=VS.92).aspx"&gt;web browser&lt;/a&gt; will display with the correct page.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Here’s an example:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;HyperlinkButton Content=&amp;quot;HyperlinkButton&amp;quot; Height=&amp;quot;30&amp;quot; Name=&amp;quot;hyperlinkButton1&amp;quot; Width=&amp;quot;200&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NavigateUri=&amp;quot;&lt;/font&gt;&lt;a href="http://www.microsoft.com&amp;quot;"&gt;&lt;font size="2" face="Courier New"&gt;http://www.microsoft.com&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Courier New"&gt; TargetName=&amp;quot;_anything&amp;quot; /&amp;gt;     &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;This is different than the behavior for Silverlight for the desktop. On the desktop, you don’t need to explicitly set &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx"&gt;TargetName&lt;/a&gt;. If you do set it, the behavior is similar to the standard HTML TARGET attribute.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;HTH&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;--Cheryl&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10230023" width="1" height="1"&gt;</description></item><item><title>Windows Phone Mango release and we want your feedback!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/28/windows-phone-mango-releases.aspx</link><pubDate>Wed, 28 Sep 2011 17:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10217752</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10217752</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/28/windows-phone-mango-releases.aspx#comments</comments><description>&lt;p&gt;The Windows Phone Mango updates are going out to handsets, and the RTM version of the Mango SDK is now available. In addition, the Marketplace is now available on the web. Check it out &lt;a href="http://www.windowsphone.com/en-US/marketplace?wa=wsignin1.0"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can get the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27570"&gt;Windows Phone 7.1 SDK from the download center&lt;/a&gt;. In addition, the docs and samples&amp;nbsp;have been updated and finalized for this release as well. You can check out all the &lt;a href="http://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx"&gt;docs here&lt;/a&gt;. If you are just getting started building apps for Mango, you might what to check out the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/ff637516(VS.92).aspx"&gt;What's New in the Windows Phone SDK&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As we look forward to future releases, we would really love your feedback about the documentation and samples. Visit the &lt;a href="http://wpdev.uservoice.com/pages/110707-docs"&gt;Windows Phone Documentation UserVoice&lt;/a&gt; site to give us your feedback and vote on issues.&lt;/p&gt;
&lt;p&gt;Thanks and enjoy!&lt;/p&gt;
&lt;p&gt;Cheryl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10217752" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/windows+phone+mango/">windows phone mango</category></item><item><title>pInvoke in Silverlight5 and .NET Framework</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/27/pinvoke-in-silverlight5-and-net-framework.aspx</link><pubDate>Tue, 27 Sep 2011 18:06:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10217335</guid><dc:creator>Alexandra Rusina</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10217335</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/27/pinvoke-in-silverlight5-and-net-framework.aspx#comments</comments><description>&lt;p&gt;One of the new features in Silverlight 5 RC is the ability to call native code including Win32 APIs through platform invocation, or pInvoke.&lt;/p&gt;  &lt;p&gt;The technology itself is pretty well-known and it’s been in .NET since version 1.0. Here is one of the &lt;a href="http://msdn.microsoft.com/en-us/library/aa288468.aspx"&gt;tutorials for .NET&lt;/a&gt; that explains what pInvoke is about. So instead of explaining what pInvoke is, let me concentrate on how this feature works in Silverlight 5 and what differences with .NET you might expect.&lt;/p&gt;  &lt;p&gt;First of all, calling native APIs is available only in full-trust applications. This is a security restriction; there is simply too much power in Windows APIs for a partial-trust Web application to have. The good news is that Silverlight 5 allows your application to be full trust and consequently use pInvoke in both in and out of the browser. One more restriction is that pInvoke is available only on Windows, there is no Mac support.&lt;/p&gt;  &lt;p&gt;To get the things going, let me first re-introduce an example that &lt;a href="http://blogs.msdn.com/b/nickkramer/archive/2011/04/22/mix-2011-slides-quot-advanced-features-in-silverlight-5-med12-quot.aspx"&gt;Nick Kramer first presented at MIX&lt;/a&gt;. It shows how you can detect a removable drive (think about USB sticks or card readers). You click a button, and the program tells you whether you have a removable drive and if yes, what letter it’s assigned.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System;
&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows;
&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Controls;
&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Runtime.InteropServices;

&lt;span style="color: blue"&gt;namespace &lt;/span&gt;SamplePInvoke
{
    &lt;span style="color: blue"&gt;public partial class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MainPage &lt;/span&gt;: &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: #2b91af"&gt;UserControl
    &lt;/span&gt;{
        &lt;span style="color: blue"&gt;public &lt;/span&gt;MainPage()
        {
            InitializeComponent();
        }

        &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Import native method.
        &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;kernel32.dll&amp;quot;&lt;/span&gt;)]
        &lt;span style="color: blue"&gt;static extern int &lt;/span&gt;GetDriveType(&lt;span style="color: blue"&gt;string &lt;/span&gt;lpRootPathName);

        &lt;span style="color: blue"&gt;private void &lt;/span&gt;detectDrive_Click(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;br /&gt;                                       &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: #2b91af"&gt;RoutedEventArgs &lt;/span&gt;e)
        {
            &lt;span style="color: #2b91af"&gt;String&lt;/span&gt;[] drives = &lt;span style="color: blue"&gt;new string&lt;/span&gt;[] 
                { &lt;span style="color: #a31515"&gt;@&amp;quot;c:\&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;@&amp;quot;d:\&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;@&amp;quot;e:\&amp;quot;&lt;/span&gt;, &lt;br /&gt;                  &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: #a31515"&gt;@&amp;quot;f:\&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;@&amp;quot;g:\&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;@&amp;quot;h:\&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;@&amp;quot;i:\&amp;quot; &lt;/span&gt;};
            &lt;span style="color: blue"&gt;bool &lt;/span&gt;driveInserted = &lt;span style="color: blue"&gt;false&lt;/span&gt;;
            &lt;span style="color: blue"&gt;string &lt;/span&gt;driveLetter = &lt;span style="color: #a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
            &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;drive &lt;span style="color: blue"&gt;in &lt;/span&gt;drives)
            {
                &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Calling the native method. 
                // “2” means that the drive is a removable drive.
                &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(GetDriveType(drive) == 2)
                {
                    driveInserted = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
                    driveLetter = drive;
                }
            }
            &lt;span style="color: blue"&gt;if &lt;/span&gt;(driveInserted)
                textBlock1.Text = &lt;span style="color: #a31515"&gt;&amp;quot;Removable drive is &amp;quot; &lt;/span&gt;+ driveLetter;
            &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: blue"&gt;else
                &lt;/span&gt;textBlock1.Text = &lt;span style="color: #a31515"&gt;&amp;quot;No removable drive&amp;quot;&lt;/span&gt;;
        }
    }
}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;As I mentioned already and as you can see from the example above, in most cases the feature works exactly the same as in .NET. This code is basically identical in both Silverlight and WPF. &lt;/p&gt;

&lt;p&gt;However, there are also some differences as well, so keep on reading.&lt;/p&gt;

&lt;h1&gt;Marshaling&lt;/h1&gt;

&lt;p&gt;For marshaling, many applications use the methods from the &lt;b&gt;System.Runtime.InteropServices.Marshal&lt;/b&gt; class. But you might notice that &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal%28v=VS.100%29.aspx"&gt;.NET&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal%28v=VS.95%29.aspx"&gt;Silverlight&lt;/a&gt; versions of this class have different number of methods. As usual, Silverlight provides you with only a subset of the full .NET, which we believe represents the most used part. In fact, this is the same set of methods Silverlight itself uses for native interop and it is usually sufficient.&lt;/p&gt;

&lt;p&gt;Many of the methods from the Marshal class in the full .NET Framework are just managed wrappers around native APIs. Often, if you can’t find a certain method from the Marshal class in Silverlight, you can use the native API directly.&lt;/p&gt;

&lt;p&gt;For example, the method &lt;a href="http://msdn.microsoft.com/en-us/library/5cyb68cy.aspx"&gt;Marshal.AllocHGlobal&lt;/a&gt; exists in .NET and doesn’t exist in Silverlight. However, this method is just a wrapper around the Win32 &lt;a href="http://go.microsoft.com/fwlink/?LinkId=148628"&gt;LocalAlloc&lt;/a&gt; function from Kernel32.dll. So you need to call this native function directly instead of its managed wrapper and refactor you code accordingly.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="2"&gt;[&lt;span style="color: #2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;kernel32.dll&amp;quot;&lt;/span&gt;, EntryPoint = &lt;span style="color: #a31515"&gt;&amp;quot;LocalAlloc&amp;quot;&lt;/span&gt;)]
&lt;span style="color: blue"&gt;internal static extern &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;LocalAlloc_NoSafeHandle(
    &lt;span style="color: blue"&gt;int &lt;/span&gt;uFlags, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;sizetdwBytes);&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Usually, you can find what native method is being wrapped in the documentation of the managed method itself.&lt;/p&gt;

&lt;h1&gt;Reverse pInvoke Calls&lt;/h1&gt;

&lt;p&gt;In the first example in this article, the only call I make is from managed code to native code. However, sometimes you need to do the opposite: call a managed method from within the native code. It usually happens when a native method uses a callback or accepts a pointer to a function as one of its parameters and you want to use your managed method for this callback.&lt;/p&gt;

&lt;p&gt;In the full .NET such reverse calls and direct calls are treated the same. In Silverlight, however, you need to explicitly specify the “entry points” for reverse pInvoke calls by using the &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.allowreversepinvokecallsattribute.aspx"&gt;AllowReversePInvokeCalls attribute&lt;/a&gt;. Basically, all you need to do is to apply this attribute to managed methods that need to be called from the native code.&lt;/p&gt;

&lt;p&gt;Here is an example. Consider that you have the following C++ method:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;span style="color: blue"&gt;typedef int &lt;/span&gt;(*NumberSource) (&lt;span style="color: blue"&gt;void&lt;/span&gt;); 

&lt;span style="color: blue"&gt;int &lt;/span&gt;MultiplyByTen(NumberSource numberSource)
{
      &lt;span style="color: blue"&gt;int &lt;/span&gt;returnValue = numberSource() * 10;
      &lt;span style="color: blue"&gt;return &lt;/span&gt;returnValue;
}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;This sample method takes a pointer to a function returning integer as a parameter and multiplies the function’s return value by 10.&lt;/p&gt;

&lt;p&gt;In managed code, I need to declare this method as follows:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="2"&gt;[&lt;span style="color: #2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;testCPlusPlus.dll&amp;quot;&lt;/span&gt;)]
&lt;span style="color: blue"&gt;static extern int &lt;/span&gt;MultiplyByTen(&lt;span style="color: #2b91af"&gt;NumberSource &lt;/span&gt;src);

&lt;span style="color: blue"&gt;public delegate int &lt;/span&gt;&lt;span style="color: #2b91af"&gt;NumberSource&lt;/span&gt;();&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Note that instead of the function pointer I use a delegate. Again, this is identical to what you would do in the full .NET. Next, I create a managed method and pass it to the native method through a delegate binding.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;span style="color: blue"&gt;public int &lt;/span&gt;ManagedSource()
{
    &lt;span style="color: blue"&gt;return &lt;/span&gt;42;
}

&lt;span style="color: blue"&gt;public &lt;/span&gt;MainPage()
{
    InitializeComponent();
    &lt;span style="color: blue"&gt;int &lt;/span&gt;res = MultiplyByTen(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;NumberSource&lt;/span&gt;(ManagedSource));
}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;This code works fine in the full .NET, but in Silverlight the last line throws a security exception with the following message: &lt;i&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Delegate 'SilverlightApplication1.MainPage+NumberSource' must be bound to a method in a fully-trusted assembly and the method must have the AllowReversePinvokeCallsAttribute.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;To fix this problem, all I need to do is apply the AllowReversePinvokeCalls attribute to the ManagedSource method.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="2"&gt;[&lt;span style="color: #2b91af"&gt;AllowReversePInvokeCalls&lt;/span&gt;]
&lt;span style="color: blue"&gt;public int &lt;/span&gt;ManagedSource()
{
    &lt;span style="color: blue"&gt;return &lt;/span&gt;42;
}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;This feature is just an additional security measure, so you can have better control over what managed methods can and cannot be called by native APIs. &lt;/p&gt;

&lt;h1&gt;Processing Window Messages&lt;/h1&gt;

&lt;p&gt;Anybody familiar with Win32 API probably knows that Windows sends different messages to each registered window through the &lt;a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms633573%28v=vs.85%29.aspx"&gt;WindowProc&lt;/a&gt; function. For example, it sends messages whenever a USB device is inserted or removed. &lt;/p&gt;

&lt;p&gt;In WPF and even in Windows Form, you could take an existing window or subclass a Window class and override its WndProc method. However, in Silverlight the Window class doesn’t expose this method. One way to solve this problem is to define a hidden window by using native APIs. Here is another code example that detects the removal and insertion of a USB.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;span style="color: blue"&gt;public partial class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MainPage &lt;/span&gt;: &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: #2b91af"&gt;UserControl
&lt;/span&gt;{

&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Importing a set of necessary native methods from Win32 API.
&lt;/span&gt;[&lt;span style="color: #2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;User32&amp;quot;&lt;/span&gt;, EntryPoint = &lt;span style="color: #a31515"&gt;&amp;quot;CreateWindowEx&amp;quot;&lt;/span&gt;, &lt;br /&gt;    CharSet = &lt;span style="color: #2b91af"&gt;CharSet&lt;/span&gt;.Auto,SetLastError = &lt;span style="color: blue"&gt;true&lt;/span&gt;)]
&lt;span style="color: blue"&gt;static extern &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;CreateWindowEx(&lt;span style="color: blue"&gt;int &lt;/span&gt;dwExStyle, &lt;br /&gt;    &lt;span style="color: blue"&gt;string &lt;/span&gt;lpszClassName, &lt;span style="color: blue"&gt;string &lt;/span&gt;lpszWindowName, &lt;span style="color: blue"&gt;int &lt;/span&gt;style, &lt;br /&gt;    &lt;span style="color: blue"&gt;int &lt;/span&gt;x, &lt;span style="color: blue"&gt;int &lt;/span&gt;y, &lt;span style="color: blue"&gt;int &lt;/span&gt;width, &lt;span style="color: blue"&gt;int &lt;/span&gt;height,
    &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hWndParent, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hMenu, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hInst,
    [&lt;span style="color: #2b91af"&gt;MarshalAs&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;UnmanagedType&lt;/span&gt;.AsAny)] &lt;span style="color: blue"&gt;object &lt;/span&gt;pvParam);

[&lt;span style="color: #2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;user32.dll&amp;quot;&lt;/span&gt;)]
&lt;span style="color: blue"&gt;static extern &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;DefWindowProc(&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hWnd, &lt;span style="color: blue"&gt;int &lt;/span&gt;uMsg, 
    &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;wParam, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;lParam);

[&lt;span style="color: #2b91af"&gt;DllImport&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;user32&amp;quot;&lt;/span&gt;, CharSet = &lt;span style="color: #2b91af"&gt;CharSet&lt;/span&gt;.Auto, SetLastError = &lt;span style="color: blue"&gt;true&lt;/span&gt;)]
&lt;span style="color: blue"&gt;public static extern short &lt;/span&gt;RegisterClass(&lt;span style="color: #2b91af"&gt;WNDCLASS &lt;/span&gt;wc);

&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Marshaling the Window structure.
&lt;/span&gt;[&lt;span style="color: #2b91af"&gt;StructLayout&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;LayoutKind&lt;/span&gt;.Sequential, CharSet = &lt;span style="color: #2b91af"&gt;CharSet&lt;/span&gt;.Auto)]
&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: #2b91af"&gt;WNDCLASS
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public int &lt;/span&gt;style;
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WndProc &lt;/span&gt;lpfnWndProc;
    &lt;span style="color: blue"&gt;public int &lt;/span&gt;cbClsExtra;
    &lt;span style="color: blue"&gt;public int &lt;/span&gt;cbWndExtra;
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hInstance;
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hIcon;
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hCursor;
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hbrBackground;
    &lt;span style="color: blue"&gt;public string &lt;/span&gt;lpszMenuName;
    &lt;span style="color: blue"&gt;public string &lt;/span&gt;lpszClassName;
}

&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;//system detects USB insertion/removal
&lt;/span&gt;&lt;span style="color: blue"&gt;const int &lt;/span&gt;WM_DEVICECHANGE = 0x0219;
&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// system detects a new device
&lt;/span&gt;&lt;span style="color: blue"&gt;const int &lt;/span&gt;DBT_DEVICEARRIVAL = 0x8000;
&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// device removed
&lt;/span&gt;&lt;span style="color: blue"&gt;const int &lt;/span&gt;DBT_DEVICEREMOVECOMPLETE = 0x8004;

&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Callbacks must have AllowReversePInvokeCalls attribute.
&lt;/span&gt;[&lt;span style="color: #2b91af"&gt;AllowReversePInvokeCalls&lt;/span&gt;]
&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;Callback(&lt;br /&gt;    &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hWnd, &lt;span style="color: blue"&gt;int &lt;/span&gt;msg, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;wparam, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;lparam)
{
    &lt;span style="color: blue"&gt;if &lt;/span&gt;(msg == WM_DEVICECHANGE)
    {
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(wparam.ToInt32() == DBT_DEVICEARRIVAL) 
            textBlock1.Text = &lt;span style="color: #a31515"&gt;&amp;quot;USB inserted&amp;quot;&lt;/span&gt;;
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(wparam.ToInt32() == DBT_DEVICEREMOVECOMPLETE) 
            textBlock1.Text = &lt;span style="color: #a31515"&gt;&amp;quot;USB removed&amp;quot;&lt;/span&gt;;
    }
    &lt;span style="color: blue"&gt;return &lt;/span&gt;DefWindowProc(hWnd, msg, wparam, lparam);
}

&lt;span style="color: blue"&gt;public delegate &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IntPtr WndProc&lt;/span&gt;(
    &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;hWnd, &lt;span style="color: blue"&gt;int &lt;/span&gt;msg, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;wParam, &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;lParam);

&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Preventing garbage collection of the delegate
&lt;/span&gt;&lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WndProc &lt;/span&gt;dontGCthis;

&lt;span style="color: blue"&gt;public &lt;/span&gt;MainPage()
{
    InitializeComponent();

    &lt;span style="color: #2b91af"&gt;WNDCLASS &lt;/span&gt;wc = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WNDCLASS&lt;/span&gt;();

    &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Preventing garbage collection of the delegate
    &lt;/span&gt;dontGCthis = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WndProc&lt;/span&gt;(Callback);
    wc.lpfnWndProc = dontGCthis;

    &lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: green"&gt;// Note that you need to ensure unique names &lt;br /&gt;    // for each registered class.
    // For example, if you open the same plugin 
    // in two different tabs of the browser,
    // you still should not end up with 
    // two registered classes with identical names.
    &lt;/span&gt;wc.lpszClassName = &lt;span style="color: #a31515"&gt;&amp;quot;foobar&amp;quot; &lt;/span&gt;+ (&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Random&lt;/span&gt;()).Next();

    RegisterClass(wc);

    &lt;span style="color: #2b91af"&gt;IntPtr &lt;/span&gt;createResult = CreateWindowEx(0, wc.lpszClassName, &lt;br /&gt;        &lt;span style="color: #a31515"&gt;&amp;quot;Window title&amp;quot;&lt;/span&gt;, 0, 100, 100, 500, 500, &lt;br /&gt;        &lt;span style="color: #2b91af"&gt;IntPtr&lt;/span&gt;.Zero, &lt;span style="color: #2b91af"&gt;IntPtr&lt;/span&gt;.Zero, &lt;span style="color: #2b91af"&gt;IntPtr&lt;/span&gt;.Zero, 0);
}
}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;This example prints to a text block when a USB device is removed or inserted. Note that if you use the same code in WPF, it will work just fine. However, it’s important to remember that porting your existing pInvoke code from WPF to Silverlight might require some extra work (as usual).&lt;/p&gt;

&lt;h1&gt;More Examples&lt;/h1&gt;

&lt;p&gt;There were several good articles about pInvoke already written after Silverlight RC. I just wanted to share the list, since there never can be too many code examples, especially when you are dealing with such advanced topics as interop between managed and advanced code.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://csharperimage.jeremylikness.com/2011/09/silverlight-5-rc-released-using-pinvoke.html"&gt;Silverlight 5 RC Released - Using PInvoke&lt;/a&gt; by Jeremy Likness 

    &lt;br /&gt;A very simple article that shows how to call MessageBeep. The article takes you through initial marshaling concepts and introduces some best practices for interop coding. &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.pitorque.de/MisterGoodcat/post/Silverlight-5-PInvoke-fun-System-Font-Dialog.aspx"&gt;Silverlight 5 PInvoke fun - System Font Dialog&lt;/a&gt; by Peter Kuhn aka Mister Goodcat. 

    &lt;br /&gt;Another good article for beginners, but with a more advanced example showing how to load system fonts. &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://10rem.net/blog/2011/09/20/enumerating-midi-interfaces-using-silverlight-5-pinvoke"&gt;Enumerating MIDI Interfaces using Silverlight 5 PInvoke&lt;/a&gt; by Pete Brown. 

    &lt;br /&gt;I liked this one, since working with devices is one of the primary scenarios for pInvoke in Silverlight 5. &lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10217335" width="1" height="1"&gt;</description></item><item><title>Silverlight 5 RC support for application-restricted media</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/07/silverlight-5-support-for-application-restricted-media.aspx</link><pubDate>Thu, 08 Sep 2011 00:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10205381</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10205381</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/07/silverlight-5-support-for-application-restricted-media.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;Application restricted media (ARM) is new feature in Silverlight 5 RC that enables content providers to ensure their content under digital rights management (DRM) is consumed only by Silverlight applications they authorize.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;This enables experience protection of DRM&amp;rsquo;d content, which is particularly useful for media that contains revenue-generating ad content.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span size="2"&gt;To enable ARM for an application you must sign your content using an Authenticode x.509 certificate. You can use &lt;a href="http://msdn.microsoft.com/en-us/library/8s9b9yaz.aspx"&gt;signtool.exe&lt;/a&gt;, which you also use to create a &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee721083(VS.95).aspx#application_signing"&gt;&lt;span size="2"&gt;Silverlight trusted application&lt;/span&gt;&lt;/a&gt;&lt;span size="2"&gt;, although the Silverlight application consuming content does not have to be a trusted application.&amp;nbsp; For example, you could a command like the following:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; font-size: small;" size="2" face="Courier New"&gt;signtool sign /v /f certificateFile.pfx fileToSign&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;You can also use the signing mechanism in Visual Studio to sign your application. The following image shows the Signing tab in Visual Studio, which you access from Project Properties:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/8585.image_5F00_2.png"&gt;&lt;img style="background-image: none; margin: 5px 5px 5px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/7827.image_5F00_thumb.png" width="421" height="272" /&gt;&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;" size="2"&gt;To learn more about DRM content in general, see &lt;a href="http://msdn.microsoft.com/en-us/library/cc838192(VS.95).aspx"&gt;Digital Rights Management&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;--Cheryl&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10205381" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Silverlight+5+RC/">Silverlight 5 RC</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/DRM/">DRM</category></item><item><title>Silverlight 5 RC has released!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/01/silverlight-5-rc-has-released.aspx</link><pubDate>Thu, 01 Sep 2011 07:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10204516</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10204516</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/01/silverlight-5-rc-has-released.aspx#comments</comments><description>&lt;p&gt;The SL5 RC has released and you can now download the tools &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=27220"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is an exciting release and brings many new features to Silverlight. Following are just a few of the new features. You can check out more details in the &lt;a href="http://msdn.microsoft.com/en-us/library/gg986857(VS.96).aspx"&gt;What's New for Silverlight 5&lt;/a&gt; topic on MSDN.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.pivot.pivotviewer(VS.96).aspx"&gt;PivotViewer&lt;/a&gt; control, which adds support for dynamic client-based collections, XAML-based visuals, and&lt;br /&gt;customizability.&lt;/li&gt;
&lt;li&gt;Data binding improvements such as a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.datacontextchanged(VS.96).aspx"&gt;DataContextChanged&lt;/a&gt; event and &lt;strong&gt;PropertyChanged&lt;/strong&gt; added to the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.updatesourcetrigger(VS.96).aspx"&gt;UpdateSourceTrigger&lt;/a&gt; enumeration&lt;/li&gt;
&lt;li&gt;3D: Improvements to the 3D support added in SL5 beta. This includes XNA built-in effects, surface composition settings for depth and stencil buffers and mult-sample anti-aliasing&lt;/li&gt;
&lt;li&gt;File access: OpenFileDialog offers a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.openfiledialog.initialdirectory(VS.96).aspx"&gt;DefaultDirectory&lt;/a&gt; property&amp;nbsp;and SaveFileDialog offers a&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.savefiledialog.defaultfilename(VS.96).aspx"&gt;DefaultFileName&lt;/a&gt; property&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/&lt;a href=&amp;quot;/controlpanel/blogs/posteditor.aspx/&lt;a href=&amp;amp;quot;http:/msdn.microsoft.com/en-us/library/ee671023(VS.96).aspx&amp;amp;quot;&gt;Printing&lt;/a&gt;&amp;quot;&gt;Vector Printing&lt;/a&gt;"&gt;Printing&lt;/a&gt;: SL5 now supports vector printing in addition to the bitmap printing offered in SL4.&lt;/li&gt;
&lt;li&gt;&lt;ns0:title&gt;Remote control event support added with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.mediacommand(VS.96).aspx"&gt;MediaCommand&lt;/a&gt; event on UIElement.&lt;/ns0:title&gt;&lt;/li&gt;
&lt;li&gt;Application restricted media: Enables content providers to ensure DRM'd content is only consumed by SL applications they authorize. More about this feature&amp;nbsp;in an &lt;a href="http://blogs.msdn.com/b/silverlight_sdk/archive/2011/09/07/silverlight-5-support-for-application-restricted-media.aspx"&gt;upcoming blog post&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Support for OpenType and &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.textoptions.textformattingmode%28VS.96%29.aspx"&gt;pixel-snapped text&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The docs are updated with &lt;a href="http://msdn.microsoft.com/en-us/library/cc838158(VS.96).aspx"&gt;Silverlight 5 RC content&lt;/a&gt;, and you can get the chm &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=19131"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;--Cheryl&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10204516" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Silverlight+5+RC/">Silverlight 5 RC</category></item><item><title>Get the tools and submit your Mango apps!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/08/23/get-the-tools-and-submit-your-mango-apps.aspx</link><pubDate>Tue, 23 Aug 2011 16:51:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10199074</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10199074</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/08/23/get-the-tools-and-submit-your-mango-apps.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=27153"&gt;Windows Phone SDK 7.1 RC&lt;/a&gt; is now available. You&amp;nbsp;can use this version of the tools to create Windows Phone Mango apps and submit them to the marketplace.&lt;/p&gt;
&lt;p&gt;You need to uninstall previous versions of the tools before installing this version.&lt;/p&gt;
&lt;p&gt;These tools enable you to create Mango-targeted applications that include all the &lt;a href="http://msdn.microsoft.com/en-us/library/ff637516(VS.92).aspx"&gt;new Mango features&lt;/a&gt;. In addition you get some new tools such as the&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/library/hh286408(VS.92).aspx"&gt;isolated storage explorer&lt;/a&gt;&amp;nbsp;for viewing and debugging files in isolated storage, the memory profiler, an addition to the &lt;a href="http://msdn.microsoft.com/en-us/library/hh202934(VS.92).aspx"&gt;performance analysis suite&lt;/a&gt;,&amp;nbsp;and&amp;nbsp;the &lt;a href="http://msdn.microsoft.com/en-us/library/hh394032(VS.92).aspx"&gt;Marketplace Test Kit&lt;/a&gt;, which enables you to assess the marketplace readiness of your application before you submit it to the marketplace. There is also a great &lt;a href="http://msdn.microsoft.com/en-us/library/gg442300(VS.92).aspx"&gt;new emulator screen-shot tool&lt;/a&gt; that makes it easy to complete those final steps for marketplace submission.&lt;/p&gt;
&lt;p&gt;The tools are here, and the marketplace is open....now is the time to get on board with Mango.&lt;/p&gt;
&lt;p&gt;--Cheryl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10199074" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/windows+phone+mango/">windows phone mango</category></item><item><title>Ensuring your Windows Phone Applications Work on Mango</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/07/22/things-to-consider-when-testing-your-applications-for-mango.aspx</link><pubDate>Fri, 22 Jul 2011 16:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10188758</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10188758</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/07/22/things-to-consider-when-testing-your-applications-for-mango.aspx#comments</comments><description>&lt;p&gt;Not only does Mango support Silverlight 4, there are also numerous updates and improvements to Silverlight for Windows Phone. A bunch of work has gone into compatibility between Mango and Windows Phone 7, however you should test your existing applications on Mango, to make sure they behave as expected.&lt;/p&gt;
&lt;p&gt;There are a few known differences in the behavior of Silverlight API in comparison to the same API in Silverlight on Windows Phone 7. When the docs are published for Mango, you will be able to see these changes in the Version Notes section of the relevant API page. Following is an example of the Version Notes calling out a difference in Windows Phone OS 7.1.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/0361.image_5F00_6.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/4503.image_5F00_thumb_5F00_2.png" width="231" height="93" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One problem is of course is that you are probably testing your applications on Mango now, and may encounter unexpected behavior, and waiting until the docs publish isn&amp;rsquo;t the best solution. In the meantime, I&amp;rsquo;ll list the current known Silverlight for Windows Phone issues here.&lt;/p&gt;
&lt;h2&gt;Controls&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Image and MediaElement controls in a list&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone OS 7.1, scrolling performance was improved. However, if you display several &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.image(v=VS.96).aspx"&gt;Image&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement(v=VS.96).aspx"&gt;MediaElement&lt;/a&gt; controls in an &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol(v=VS.96).aspx"&gt;ItemsControl&lt;/a&gt;&amp;nbsp;(most importantly the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox%28v=VS.95%29.aspx"&gt;ListBox&lt;/a&gt;), you might notice issues with scrolling. In some cases, the list may scroll faster than the images can load, causing flickering in the UI. If this occurs consider loading the images on a background thread.&amp;nbsp; For more information on how to do this, see &lt;a title="Off-Thread Decoding of Images" href="http://blogs.msdn.com/b/slmperf/archive/2011/06/13/off-thread-decoding-of-images-on-mango-how-it-impacts-you-application.aspx"&gt;Off-Thread Decoding of Images&lt;/a&gt;, on the &lt;a href="http://blogs.msdn.com/b/slmperf/"&gt;Silverlight for Windows Phone Performance Team blog&lt;/a&gt;. Finally, make sure that you test the scrolling behavior on a Windows Phone device.&lt;/p&gt;
&lt;p&gt;(As a side note, if you are Windows Phone developer, you should be reading the &lt;a href="http://blogs.msdn.com/b/slmperf/"&gt;Performance Team&lt;/a&gt; blog on a regular basis. Great info there.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ScrollViewer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone OS 7.1, when you set the content indirectly for the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer(v=VS.96).aspx"&gt;ScrollViewer&lt;/a&gt;, such as with a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.contentpresenter(v=VS.96).aspx"&gt;ContentPresenter&lt;/a&gt;, you should call &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.updatelayout(v=VS.96).aspx"&gt;UpdateLayout&lt;/a&gt; prior to calling &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.scrolltoverticaloffset(v=VS.96).aspx"&gt;ScrollToVerticalOffset&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.scrolltohorizontaloffset(v=VS.96).aspx"&gt;ScrollToHorizontalOffset&lt;/a&gt;; otherwise, an exception will occur.&lt;/p&gt;
&lt;p&gt;To improve scrolling performance some events, properties and methods you had access to from the &amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer(v=VS.96).aspx"&gt;ScrollViewer&lt;/a&gt; are now handled by the system. Check out &lt;a href="https://blogs.msdn.com/b/slmperf/archive/2011/06/02/listbox-scrollviewer-performance-improvement-for-mango-and-how-it-impacts-your-existing-application.aspx"&gt;this post&lt;/a&gt; on the &lt;a href="http://blogs.msdn.com/b/slmperf/"&gt;Performance Team&lt;/a&gt; blog to get more details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TextBox&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone OS 7.1, when you set the &lt;a href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/html/P:System.Windows.Controls.Control.FontFamily"&gt;FontFamily&lt;/a&gt; property to a font that is downloaded or contained in a file, the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox(v=VS.96).aspx"&gt;TextBox&lt;/a&gt; renders at the position (0,0). When the font has finished downloading the application renders again with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox(v=VS.96).aspx"&gt;TextBox&lt;/a&gt; in the correct location.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VirtualizingStackPanel&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone OS 7.1, when you set a&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.rendertransform(v=VS.96).aspx"&gt;RenderTransform&lt;/a&gt; as a child of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel(v=VS.96).aspx"&gt;VirtualizingStackPanel&lt;/a&gt;, it is returned as a &lt;a href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/html/T:System.Windows.Media.CompositeTransform"&gt;CompositeTransform&lt;/a&gt;, regardless of the actual transform that is applied.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Navigation&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;NavigationEventArgs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone OS 7.1, if you use the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationeventargs(v=VS.96).aspx"&gt;NavigationEventArgs&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; constructor to create a &lt;a href="http://msdn.microsoft.com/en-us/library/ms607463(v=VS.96).aspx"&gt;NavigationEventArgs&lt;/a&gt; and pass null for the u&lt;i&gt;ri&lt;/i&gt; parameter, when accessed later the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationeventargs.uri(v=VS.96).aspx"&gt;Uri&lt;/a&gt; value returned will be empty Uri.&lt;/p&gt;
&lt;h2&gt;Media&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Image and MediaElement controls in a list&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone OS 7.1, scrolling performance was improved. However, if you display several &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.image(v=VS.96).aspx"&gt;Image&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement(v=VS.96).aspx"&gt;MediaElement&lt;/a&gt; controls in an &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol(v=VS.96).aspx"&gt;ItemsControl&lt;/a&gt;&amp;nbsp;(most importantly the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox%28v=VS.95%29.aspx"&gt;ListBox)&lt;/a&gt;, you might notice issues with scrolling. In some cases, the list may scroll faster than the images can load, causing flickering in the UI. If this occurs consider loading the images on a background thread.&amp;nbsp; For more information on how to do this, see &lt;a title="Off-Thread Decoding of Images" href="http://blogs.msdn.com/b/slmperf/archive/2011/06/13/off-thread-decoding-of-images-on-mango-how-it-impacts-you-application.aspx"&gt;Off-Thread Decoding of Images&lt;/a&gt;, on the&amp;nbsp; &lt;a href="http://blogs.msdn.com/b/slmperf/"&gt;Silverlight for Windows Phone Performance Team blog&lt;/a&gt;. Finally, make sure that you test the scrolling behavior on a Windows Phone device.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;WriteableBitmap&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In, Windows Phone OS 7.1, when you specify a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage(v=VS.96).aspx"&gt;BitmapImage&lt;/a&gt; as the parameter for the &lt;span style="text-decoration: underline;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa346377(v=VS.96).aspx"&gt;WriteableBitmap&lt;/a&gt;&lt;/span&gt; constructor, you must set the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage.createoptions(v=VS.96).aspx"&gt;CreateOptions&lt;/a&gt; property of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage(v=VS.96).aspx"&gt;BitmapImage&lt;/a&gt; before you use it to construct the &lt;span style="text-decoration: underline;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa346377(v=VS.96).aspx"&gt;WriteableBitmap&lt;/a&gt;&lt;/span&gt;; otherwise, an exception will occur.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Networking&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;HttpWebResponse&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Windows Phone OS 7.1, if you compare the value of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.contentlength(v=VS.96).aspx"&gt;HttpWebResponse.ContentLength&lt;/a&gt; property to -1 to determine if the &lt;strong&gt;ContentLength&lt;/strong&gt; header is set on an &lt;a href="http://msdn.microsoft.com/en-us/library/ww5755y6(v=VS.96).aspx"&gt;HttpWebResponse&lt;/a&gt;, you should compare the value as a 64-bit and 32-bit integers. To do this, you should cast the value to a 32-bit integer and compare with -1, as well as comparing with -1 as a 64-bit integer. The following code example shows how to do this.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new;" face="Courier New"&gt;if (response.ContentLength == -1L || (Int32)response.ContentLength == -1)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new;" face="Courier New"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new;" face="Courier New"&gt;&amp;nbsp;&amp;nbsp; // The ContentLength header is not set. Handle this appropriately.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new;" face="Courier New"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve also updated a few key conceptual topics with this information, and they will republish soon.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For control changes, see the &lt;a href="http://msdn.microsoft.com/en-us/library/ff426932(v=VS.96).aspx"&gt;Controls in Silverlight for Windows Phone&lt;/a&gt; topic and pay particular attention to the Compatibility Notes column of the table that lists controls.&lt;/li&gt;
&lt;li&gt;For media changes, see the &lt;a href="http://msdn.microsoft.com/en-us/library/ff426928(v=VS.96).aspx"&gt;Media in Silverlight for Windows Phone&lt;/a&gt; topics&lt;/li&gt;
&lt;li&gt;For networking changes, see &lt;a href="http://msdn.microsoft.com/en-us/library/ff637320(v=VS.96).aspx"&gt;Networking in Silverlight for Windows Phone&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;For general behavior changes that don&amp;rsquo;t fit into a nice feature bucket, see the &lt;a href="http://msdn.microsoft.com/en-us/library/ff426930(v=VS.96).aspx"&gt;Differences between Silverlight and Silverlight for Windows Phone&lt;/a&gt; topic.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, for changes to core Windows Phone features, see &lt;a href="http://msdn.microsoft.com/en-us/library/hh202996(v=VS.92).aspx"&gt;Windows Phone OS Application Compatibility&lt;/a&gt; topic.&lt;/p&gt;
&lt;p&gt;--Cheryl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10188758" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+for+windows+phone/">silverlight for windows phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/mango/">mango</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/compatibility/">compatibility</category></item><item><title>Mango Beta2…get it while it's fresh!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/06/29/mango-beta2-get-it-while-its-fresh.aspx</link><pubDate>Wed, 29 Jun 2011 17:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10181493</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10181493</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/06/29/mango-beta2-get-it-while-its-fresh.aspx#comments</comments><description>&lt;p&gt;The Mango &lt;span style="text-decoration: line-through;"&gt;Windows Phone Developer Tools&lt;/span&gt; Windows Phone SDK Beta2 released today (the tools have been renamed to SDK). With the beta2 release you will see some additions to the tools like the &lt;a href="http://msdn.microsoft.com/en-us/library/hh286408(v=VS.92).aspx"&gt;Isolated Storage Explorer&lt;/a&gt;, improvements to the profiler and emulator as well as numerous updates to the docs. You can get the Mango beta2 tools on the &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26648"&gt;download site&lt;/a&gt;, and see the changes to the documentation on &lt;a href="http://msdn.microsoft.com/en-us/library/ff637516(v=VS.92).aspx"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Additionally, if you are already a registered Windows Phone developer, you should get an invitation to install the Mango bits on one registered device. You can see the details of this on the &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/06/29/developers-get-goody-basket-full-of-mangos.aspx"&gt;Windows Phone Developer Blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;--Cheryl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10181493" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/mango/">mango</category></item><item><title>Fuel Tracker sample application for WP7 now in Visual Basic</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/06/20/fuel-tracker-sample-application-for-wp7-now-in-visual-basic.aspx</link><pubDate>Mon, 20 Jun 2011 20:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10177156</guid><dc:creator>Karl Erickson</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10177156</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/06/20/fuel-tracker-sample-application-for-wp7-now-in-visual-basic.aspx#comments</comments><description>&lt;p&gt;I'm happy to report that the &lt;a href="http://code.msdn.microsoft.com/Fuel-Tracker-Sample-9fe58263"&gt;Fuel Tracker sample&lt;/a&gt;&amp;nbsp;is now available in Visual Basic as well as C#. Additionally, we have fixed several small issues that various people have reported, one of which prevented the application from working correctly when running under the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=77586864-ab15-40e1-bc38-713a95a56a05&amp;amp;displaylang=en"&gt;Windows Phone Developer Tools 7.1 Beta&lt;/a&gt;. The accompanying &lt;a href="http://msdn.microsoft.com/en-us/library/gg680270(PandP.11).aspx"&gt;documentation&lt;/a&gt; has not yet been updated, but will be in the near future.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;Karl Erickson&lt;br /&gt;Silverlight User Education&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10177156" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/samples/">samples</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/guidance/">guidance</category></item><item><title>New Addition to Windows Phone Quickstarts- Pivot and Panorama Controls</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/05/25/new-addition-to-windows-phone-quickstarts-pivot-and-panorama-controls.aspx</link><pubDate>Wed, 25 May 2011 18:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10168375</guid><dc:creator>Nitya Ravi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10168375</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/05/25/new-addition-to-windows-phone-quickstarts-pivot-and-panorama-controls.aspx#comments</comments><description>&lt;p&gt;Windows Phone 7 includes &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.controls.panorama(VS.92).aspx"&gt;Panorama&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.phone.controls.pivot(VS.92).aspx"&gt;Pivot&lt;/a&gt; controls that you can use to display&amp;nbsp;controls and data&amp;nbsp;and navigate through them&amp;nbsp;using their built-in swipe and pan gestures.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/2870.PanoramaPivot_5F00_People_5F00_2.jpg"&gt;&lt;img height="156" width="244" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/3441.PanoramaPivot_5F00_People_5F00_thumb.jpg" alt="PanoramaPivot_People" border="0" title="PanoramaPivot_People" style="background-image: none; margin: 5px 5px 5px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/6177.PanoramaPivot_5F00_email_5F00_2.jpg"&gt;&lt;img height="172" width="244" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/4034.PanoramaPivot_5F00_email_5F00_thumb.jpg" alt="PanoramaPivot_email" border="0" title="PanoramaPivot_email" style="background-image: none; margin: 5px 5px 5px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To help you understand these controls we have added a new quickstart to our existing Windows Phone quickstarts collection- &lt;a href="http://create.msdn.com/en-US/education/quickstarts/Panorama_and_Pivot_Controls"&gt;Panorama and Pivot Controls&lt;/a&gt;. This quickstart provides an overview of Pivot and Panorama controls, different ways to create these controls and suggests some best practices to keep in mind. Hope you find it useful!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;-Nitya.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10168375" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Controls/">Controls</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/documentation/">documentation</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Quickstarts/">Quickstarts</category></item><item><title>Windows Phone Developer Tools 7.1 Beta now available!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/05/24/windows-phone-developer-tools-7-1-beta-now-available.aspx</link><pubDate>Tue, 24 May 2011 20:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10167975</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10167975</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/05/24/windows-phone-developer-tools-7-1-beta-now-available.aspx#comments</comments><description>&lt;p&gt;The Windows Phone Developer Tools 7.1 Beta released today. Download them &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=77586864-ab15-40e1-bc38-713a95a56a05&amp;amp;displaylang=en" title="here"&gt;here&lt;/a&gt;. ﻿﻿The tools enable you to get started developing applications for the next version of Windows Phone 7 Codenamed "Mango" and leverage new phone features while continuing to develop applications for Windows Phone&amp;nbsp; OS 7.0.&amp;nbsp;In addition to multi-targeting the tools offer some other great features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh202933(VS.92).aspx"&gt;Location data simulation&lt;/a&gt;&amp;nbsp;in the emulator&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh202936(VS.92).aspx"&gt;Acclerometer data simulation&lt;/a&gt;&amp;nbsp;in the emulator&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh202934(v=VS.92).aspx"&gt;Profiling tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh202931(v=VS.92).aspx"&gt;New templates to support SL/XNA content in the same application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;﻿Mango has numerous performance improvements such as fast application switching and the ability to run tasks in the background. In addition, Mango provides support for sockets and local database storage. For more information about the improvements and features in Mango, see &lt;a href="http://msdn.microsoft.com/en-us/library/ff637516(v=VS.92).aspx"&gt;What's New in Windows Phone Developer Tools&lt;/a&gt;.﻿ Mango also offers support for many of the features that were offered in Silverlight 4 such as improved data binding,&amp;nbsp;RichTextBox and Viewbox controls, webcam and microphone capture. For more information about new features for Silverlight for Windows Phone, see &lt;a href="http://msdn.microsoft.com/en-us/library/hh237342(v=VS.96).aspx"&gt;What's New for Silverlight for Windows Phone&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;--Cheryl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10167975" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+for+windows+phone/">silverlight for windows phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/xna+phone/">xna phone</category></item><item><title>Binding to Dynamic Properties with ICustomTypeProvider (Silverlight 5 Beta)</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/26/binding-to-dynamic-properties-with-icustomtypeprovider-silverlight-5-beta.aspx</link><pubDate>Tue, 26 Apr 2011 18:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10157552</guid><dc:creator>Alexandra Rusina</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10157552</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/26/binding-to-dynamic-properties-with-icustomtypeprovider-silverlight-5-beta.aspx#comments</comments><description>&lt;p&gt;Silverlight 5 Beta introduces a new &lt;a href="http://msdn.microsoft.com/en-sg/library/system.reflection.icustomtypeprovider.aspx"&gt;ICustomTypeProvider&lt;/a&gt; interface that enables data binding to objects the structure of which cannot be known until runtime. This is a common problem when you work with data in any format from databases to metadata or XML files to JSON objects. New attributes or new columns can be added over time and prior to Silverlight 5 you needed to update and recompile your source code if you wanted to show this new data through data binding in a Silverlight application.&lt;/p&gt;
&lt;p&gt;With &lt;a href="http://msdn.microsoft.com/en-sg/library/system.reflection.icustomtypeprovider.aspx"&gt;ICustomTypeProvider&lt;/a&gt; you can add properties to objects on the fly and then databind to these newly created objects. The interface is pretty simple:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;public interface &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #2b91af"&gt;ICustomTypeProvider
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Type &lt;/span&gt;GetCustomType();
}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;When you implement the ICustomTypeProvider interface you need to return your own Type. Silverlight&amp;rsquo;s data binding engine now checks whether an object implements this interface or not. If the object does implement ICustomTypeProvider, the data binding engine uses your custom type instead of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.type.aspx"&gt;System.Type&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;Implementing ICustomTypeProvider&lt;/h1&gt;
&lt;p&gt;However, implementing this interface requires some effort. Here is the list of things to consider:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create your own Type by deriving from &lt;a href="http://msdn.microsoft.com/en-us/library/system.type.aspx"&gt;System.Type&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Your new type needs to store its properties somewhere, so you need to create your own PropertyInfo by deriving from &lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx"&gt;System.Reflection.PropertyInfo&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;And don&amp;rsquo;t forget about &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx"&gt;INotifyPropertyChanged&lt;/a&gt; interface if you want your objects to work properly with the data binding. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In Silverlight 4 and earlier, you could not derive from System.Type or System.Reflection.PropertyInfo, but these APIs were changed in Silverlight 5 Beta. Here is the list of types that are now inheritable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.type.aspx"&gt;Type&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.assembly.aspx"&gt;Assembly&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.constructorinfo.aspx"&gt;ConstructorInfo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.eventinfo.aspx"&gt;EventInfo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.fieldinfo.aspx"&gt;FieldInfo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.memberinfo.aspx"&gt;MemberInfo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.methodbase.aspx"&gt;MethodBase&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.methodinfo.aspx"&gt;MethodInfo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.module.aspx"&gt;Module&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx"&gt;PropertyInfo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.localvariableinfo.aspx"&gt;LocalVariableInfo&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Creating a Helper Class&lt;/h1&gt;
&lt;p&gt;OK, implementing your own type and using reflection APIs might not be easy, but on the other hand it&amp;rsquo;s very flexible. What&amp;rsquo;s good is that you can write all this code just once and create a helper class that can be reused over and over.&lt;/p&gt;
&lt;p&gt;I created such a helper class myself and you are free to use it in your code. This helper allows you to combine statically defined properties with dynamic ones. The Silverlight team is considering releasing this helper later as a part of the toolkit, so your feedback is really appreciated. &lt;/p&gt;
&lt;p&gt;Just to be clear, the helper class is not a requirement for using this feature and you can handle things differently. Also, my implementation of the helper class is not the only possible implementation &amp;ndash; you are welcome to change it according to your needs or write your own.&lt;/p&gt;
&lt;p&gt;The structure of my helper class looks as follows:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CustomTypeHelper&lt;/span&gt;&amp;lt;T&amp;gt; : &lt;span style="color: #2b91af"&gt;ICustomTypeProvider&lt;/span&gt;, &lt;br /&gt;                                   &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #2b91af"&gt;INotifyPropertyChanged
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;private static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;CustomPropertyInfoHelper&lt;/span&gt;&amp;gt; _properties = 
        &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;CustomPropertyInfoHelper&lt;/span&gt;&amp;gt;();
    &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt; _customPropertyValues;
    &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CustomType &lt;/span&gt;_ctype;

    &lt;span style="color: blue"&gt;public event &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyChangedEventHandler &lt;/span&gt;PropertyChanged;
    &lt;span style="color: blue"&gt;private void &lt;/span&gt;NotifyPropertyChanged(&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;info) {}
    
    &lt;span style="color: blue"&gt;public &lt;/span&gt;CustomTypeHelper() {}

    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Type &lt;/span&gt;GetCustomType()

    &lt;span style="color: blue"&gt;public static void &lt;/span&gt;AddProperty(&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;name) {}
    &lt;span style="color: blue"&gt;public static void &lt;/span&gt;AddProperty(&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;name, &lt;span style="color: #2b91af"&gt;Type &lt;/span&gt;propertyType) {}
    &lt;span style="color: blue"&gt;public static void &lt;/span&gt;AddProperty(
         &lt;span style="color: #2b91af"&gt;String &lt;/span&gt;name, &lt;span style="color: #2b91af"&gt;Type &lt;/span&gt;propertyType, &lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Attribute&lt;/span&gt;&amp;gt; attributes) {}

    &lt;span style="color: blue"&gt;public void &lt;/span&gt;SetPropertyValue(&lt;span style="color: blue"&gt;string &lt;/span&gt;propertyName, &lt;span style="color: blue"&gt;object &lt;/span&gt;value) {}
    &lt;span style="color: blue"&gt;public object &lt;/span&gt;GetPropertyValue(&lt;span style="color: blue"&gt;string &lt;/span&gt;propertyName) {}

    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyInfo&lt;/span&gt;[] GetProperties() {}

    &lt;span style="color: blue"&gt;private class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CustomType &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;Type &lt;/span&gt;{}

    &lt;span style="color: blue"&gt;private class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CustomPropertyInfoHelper &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;PropertyInfo &lt;/span&gt;{}
}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;You can &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-10-15-75-52/ICustomTypeProviderSample.zip"&gt;download the source code for CustomTypeHelper&amp;lt;T&amp;gt; class and example of its usage&lt;/a&gt;. In this class, the list of properties is a static list, so that if you add a new property it will be added to all instances of this class. The values of properties for each instance are stored in the _customPropertyValues dictionary. The class is generic, so you can use it for different types (for example, create Customer and Product classes with their own sets of properties).&lt;/p&gt;
&lt;p&gt;You might notice that this helper class doesn&amp;rsquo;t allow for removing or changing properties. The feature itself doesn&amp;rsquo;t prohibit this, but it is hard to handle changes in the structure of the existing objects in a generalized helper class. You&amp;rsquo;d better figure it out for each particular application. But once again, I am looking for your feedback and if you can think of common scenarios or envision some kind of a general solution, let me know.&lt;/p&gt;
&lt;h1&gt;Using a Helper Class&lt;/h1&gt;
&lt;p&gt;Let&amp;rsquo;s see how you can use such a class. Imagine that you have a DataGrid named dataGrid1 and you want to bind it to a collection of objects that can add new properties at runtime. There are two options for using the CustomTypeHelper&amp;lt;T&amp;gt; class. First, you can simply inherit it. &lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;CustomTypeHelper&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt;
{
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;FirstName { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;LastName { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;If you need to preserve your own class hierarchy, you can use the classic delegation pattern. In this case you need to implement the ICustomTypeProvider on your class and also create a property or a field of the CustomTypeHelper&amp;lt;T&amp;gt; class to which you can delegate all the calls.&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;: &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #2b91af"&gt;ICustomTypeProvider
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;FirstName { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }
    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;LastName { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }

    &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CustomTypeHelper&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt; helper = &lt;br /&gt;        &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;CustomTypeHelper&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt;();

    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: green"&gt;// Redirect all method calls to the helper like shown below
    &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Type &lt;/span&gt;GetCustomType()
    {
        &lt;span style="color: blue"&gt;return &lt;/span&gt;helper.GetCustomType();
    }

    &lt;span style="color: blue"&gt;public static void &lt;/span&gt;AddProperty(&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;name)
    {
        &lt;span style="color: #2b91af"&gt;CustomTypeHelper&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt;.AddProperty(name);
    }

    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: green"&gt;// ... Do the same for all other methods from CustomTypeHelper&amp;lt;T&amp;gt;
&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;No matter whether you create your class through inheritance or by using the delegation pattern, you can use it for adding properties and data binding as shown below.&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="font-size: x-small"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt; customers = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt;();

&lt;span style="color: blue"&gt;public &lt;/span&gt;MainPage()
{
    InitializeComponent();

    dataGrid1.AutoGenerateColumns = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
    dataGrid1.ItemsSource = customers;

    &lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;.AddProperty(&lt;span style="color: #a31515"&gt;"Age"&lt;/span&gt;, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: blue"&gt;int&lt;/span&gt;));
    &lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;.AddProperty(&lt;span style="color: #a31515"&gt;"Married"&lt;/span&gt;, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: blue"&gt;bool&lt;/span&gt;));

    &lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;customer1 = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Customer &lt;br /&gt;        &lt;/span&gt;{ FirstName = &lt;span style="color: #a31515"&gt;"Mary"&lt;/span&gt;, LastName = &lt;span style="color: #a31515"&gt;"Smith" &lt;/span&gt;};
    customer1.SetPropertyValue(&lt;span style="color: #a31515"&gt;"Age"&lt;/span&gt;, 40);
    customer1.SetPropertyValue(&lt;span style="color: #a31515"&gt;"Married"&lt;/span&gt;, &lt;span style="color: blue"&gt;true&lt;/span&gt;);

    &lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;customer2 = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Customer &lt;br /&gt;        &lt;/span&gt;{ FirstName = &lt;span style="color: #a31515"&gt;"John"&lt;/span&gt;, LastName = &lt;span style="color: #a31515"&gt;"Smith" &lt;/span&gt;};
    customer2.SetPropertyValue(&lt;span style="color: #a31515"&gt;"Age"&lt;/span&gt;, 45);
    customer2.SetPropertyValue(&lt;span style="color: #a31515"&gt;"Married"&lt;/span&gt;, &lt;span style="color: blue"&gt;true&lt;/span&gt;);

    customers.Add(customer1);
    customers.Add(customer2);
}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, most of the reflection aspects can be hidden in the helper class and the public interface can be made pretty simple.&lt;/p&gt;
&lt;h1&gt;What about WPF and DLR?&lt;/h1&gt;
&lt;p&gt;Some of you might be familiar with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.icustomtypedescriptor.aspx"&gt;ICustomTypeDescriptor&lt;/a&gt; interface from WPF, which is solving the same problem as ICustomTypeProvider in Silverlight 5 (even the names are quite similar). So, why didn&amp;rsquo;t we simply add ICustomTypeDescriptor? The reason is that WPF&amp;rsquo;s interface requires its own hierarchy of classes (TypeDescriptor, EventDescriptor, etc.) which basically duplicates the reflection hierarchy and also increases the size of the installation package. It is more convenient to use the reflection hierarchy directly. In fact, this new reflection-based model is considered for both WPF and Silverlight. However, the next Silverlight release ships earlier than WPF, so for a while there will be some inconsistency in these APIs.&lt;/p&gt;
&lt;p&gt;Another question that many of you might have is whether this feature has anything to do with the &lt;a href="http://msdn.microsoft.com/en-us/library/dd233052.aspx"&gt;Dynamic Language Runtime (DLR),&lt;/a&gt; which is a part of the .NET 4 Framework. The answer is no, it&amp;rsquo;s an independent feature. &lt;/p&gt;
&lt;p&gt;Since it&amp;rsquo;s already a popular question, let me explain why. The DLR objects such as &lt;a href="http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx"&gt;ExpandoObject&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx"&gt;DynamicObject&lt;/a&gt; (or any other implementation of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.dynamic.idynamicmetaobjectprovider.aspx"&gt;IDynamicMetaObjectProvider&lt;/a&gt; interface) do not carry any type information for their properties. The data binding engine, on the other hand, needs to get this information in order to perform type conversion for anything other than String. &lt;/p&gt;
&lt;p&gt;For example, imagine that you have a text box bound to a property of the System.DateTime type. When you enter a value to this text box you of course enter just a string of characters. But the data binding engine checks the type of the bound property and converts the text box value from string to the necessary date format and vice versa. However, if you bind to a property of let&amp;rsquo;s say an ExpandoObject, the type of the property itself will simply change to string in this case and no data conversion will be possible. This is exactly what&amp;rsquo;s happening in WPF: you can bind DLR objects to UI elements, but no type conversion is happening, all you get from UI is strings.&lt;/p&gt;
&lt;p&gt;So, while DLR is very convenient for interacting with other platforms and languages, it&amp;rsquo;s not really suitable for data binding and interacting with the UI of your own application.&lt;/p&gt;
&lt;h1&gt;Downloads, Links, and Feedback&lt;/h1&gt;
&lt;p&gt;The feature is available in Silverlight 5 Beta. The helper class source code and usage example are also available. Here are the links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=41c85cc4-de12-4bdb-a60f-f120266e9780&amp;amp;displaylang=en"&gt;Download Silverlight 5 Beta and Tools&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-10-15-75-52/ICustomTypeProviderSample.zip"&gt;Download the CustomTypeHelper&amp;lt;T&amp;gt; source code&lt;/a&gt; (it is also attached to this blog post, see at the bottom of the page). &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And of course, your feedback is appreciated here in comments, on &lt;a href="http://forums.silverlight.net/"&gt;Silverlight forums&lt;/a&gt;, and at &lt;a href="http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions"&gt;UserVoice&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10157552" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-15-75-52/ICustomTypeProviderSample.zip" length="37566" type="application/zip" /><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Silverlight/">Silverlight</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/c_2300_/">c#</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+5+beta/">silverlight 5 beta</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/dynamic/">dynamic</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/ICustomTypeProvider/">ICustomTypeProvider</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/data+binding/">data binding</category></item><item><title>Silverlight 4 Documentation Updated</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/22/silverlight-4-documentation-updated.aspx</link><pubDate>Fri, 22 Apr 2011 20:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10157216</guid><dc:creator>agbcl</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10157216</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/22/silverlight-4-documentation-updated.aspx#comments</comments><description>&lt;p&gt;The Silverlight 4 documentation has been updated--both online MSDN docs and the offline CHM.&amp;nbsp; The CHM is Silverlight only and is great for fast, offline access.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=111305" title="Online Silverlight 4 MSDN Docs"&gt;Online Silverlight 4 MSDN Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=167824"&gt;Offline Silverlight 4 MSDN Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are numerous tweaks and small changes to the docs, but here are a few of the&amp;nbsp;new and updated&amp;nbsp;topics:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh180779(v=VS.95).aspx" title="Implementing MediaStream Sources"&gt;Implementing MediaStream Sources&lt;/a&gt;&lt;br /&gt;This topic describes how to create parsers for container formats and describes delivery mechanisms not natively supported by Silverlight.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh180778(v=VS.95).aspx" title="Delivering and Accessing Media Content"&gt;Delivering and Accessing Media Content&lt;/a&gt;&lt;br /&gt;This topic describes steps that you need to perform to deliver and access media content in Silverlight.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh180774(v=VS.95).aspx" title="Troubleshooting Media Issues "&gt;Troubleshooting Media Issues&lt;/a&gt;&lt;br /&gt;This topic describes how to diagnose and solve media issues in Silverlight.&lt;/p&gt;
&lt;p&gt;Updated:&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/cc838192(v=VS.95).aspx" title="Digital Rights Management (DRM) "&gt;Digital Rights Management (DRM)&lt;/a&gt;&lt;br /&gt;New Output Protection section.&lt;/p&gt;
&lt;p&gt;Updated: &lt;a href="http://msdn.microsoft.com/en-us/library/cc189080(v=VS.95).aspx" title="Supported Media Formats, Protocols, and Log Fields"&gt;Supported Media Formats, Protocols, and Log Fields&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Updated: &lt;a href="http://msdn.microsoft.com/en-us/library/cc189079(v=VS.95).aspx" title="MediaElement States"&gt;MediaElement States&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;-- Brian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10157216" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Silverlight+documentation/">Silverlight documentation</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Offline+docs/">Offline docs</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/chm/">chm</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/MediaStreamSource/">MediaStreamSource</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Silverlight+4+Documentation/">Silverlight 4 Documentation</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Output+Protection/">Output Protection</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Media/">Media</category></item><item><title>Adding Panorama and Pivot Controls to the Toolbox in Visual Studio (speeding development 1 second at a time)</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/15/adding-panorama-and-pivot-controls-to-the-toolbox-in-visual-studio-speeding-development-1-second-at-a-time.aspx</link><pubDate>Fri, 15 Apr 2011 16:58:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10154558</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10154558</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/15/adding-panorama-and-pivot-controls-to-the-toolbox-in-visual-studio-speeding-development-1-second-at-a-time.aspx#comments</comments><description>&lt;p&gt;So I started work on a sample today and decided I wanted to use a Pivot control. I created a new project in Visual Studio and looked for the Pivot control in the Toolbox, but didn’t find it. In the XAML editor I tried typing &amp;lt;phone:…and got Intellisense that suggested a Page, Frame or WebBrowser control, but I still did not see the Panorama or Pivot controls. I was a bit puzzled, but I haven’t used these controls in awhile, so I looked up Pivot in the reference documentation. I saw that Pivot (and Panorama) are in the Microsoft.Phone.Controls namespace in the Microsoft.Phone.Controls assembly.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/8802.image_5F00_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/8311.image_5F00_thumb_5F00_7.png" width="286" height="154" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Because this assembly reference is not added by default to the Windows Phone project, in order to use these controls, I would need to add a reference to this assembly and then map the namespace/assembly in XAML. &lt;/p&gt;  &lt;p&gt;Then I had a better idea. Why not add them to the Toolbox? Then I would get the reference and namespace mapping for free. So that’s what I did, and here’s how you can do it too.&lt;/p&gt;  &lt;p&gt;To add a new control to the Toolbox:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Display the Toolbox&lt;/li&gt;    &lt;li&gt;Right-click and select &lt;strong&gt;Choose Items…. &lt;/strong&gt;The following image shows an example.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/0385.image_5F00_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/5658.image_5F00_thumb_5F00_5.png" width="349" height="348" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Choose Toolbox Items dialog appears, and the Windows Phone Components tab should be selected. If not, select it.&lt;/li&gt;    &lt;li&gt;Scroll until you locate the Panorama and Pivot controls and check them. Again, see the following image for an example:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/7824.image_5F00_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/6232.image_5F00_thumb_5F00_3.png" width="467" height="350" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Check any other controls you would like in the Toolbox. For example, if you have the &lt;a href="http://silverlight.codeplex.com/releases/view/60291"&gt;Toolkit&lt;/a&gt; installed, you can add controls such as the ListPicker.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Now you can drag and drop the Panorama and Pivot controls from the Toolbox to the design surface, and you’ll get the necessary references and namespace mappings for free. Development just got faster!&lt;/p&gt;  &lt;p&gt;--Cheryl&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10154558" width="1" height="1"&gt;</description></item><item><title>Silverlight 5 Beta has released…Get the chm!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/13/silverlight-5-beta-has-released-get-the-chm.aspx</link><pubDate>Wed, 13 Apr 2011 21:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10153585</guid><dc:creator>Cheryl Simmons - MSFT</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10153585</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/13/silverlight-5-beta-has-released-get-the-chm.aspx#comments</comments><description>&lt;p&gt;We&amp;rsquo;ve got &lt;a href="http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/07/attending-mix-2011-there-s-an-app-for-that.aspx"&gt;apps&lt;/a&gt;, and we&amp;rsquo;ve got chms. Well, more specifically, a chm for Silverlight 5 beta.&lt;/p&gt;
&lt;p&gt;To start, you can check out &lt;a href="http://msdn.microsoft.com/en-us/library/gg986857(v=VS.96).aspx"&gt;what&amp;rsquo;s new for Silverlight 5 beta&lt;/a&gt;. In addition to the new 3D support, there are many great additions to Silverlight for the SL5 beta release.&lt;/p&gt;
&lt;p&gt;Next you will probably want the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=215392"&gt;Silverlight 5 Beta Tools for Visual Studio 2010&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Last but not least, get the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=214685"&gt;Silverlight 5 CHM&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10153585" width="1" height="1"&gt;</description></item><item><title>What's new in Silverlight 5 beta? 3D graphics support!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/13/what-s-new-in-silverlight-5-beta-3d-graphics-support.aspx</link><pubDate>Wed, 13 Apr 2011 19:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10153200</guid><dc:creator>John Mulhausen</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10153200</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/13/what-s-new-in-silverlight-5-beta-3d-graphics-support.aspx#comments</comments><description>&lt;p&gt;Happy Silverlight 5 Beta day!&amp;nbsp;The biggest additions to Silverlight 5 are certainly the support for GPU accelerated video and 3D graphics and the SDK team has been hard at work trying to get samples and documentation together for today. If you're a developer, after downloading the Silverlight 5 beta runtime, SDK, and developer tools, you'll probably want to start playing with the 3D features. In this blog post, I'll point you to the resources we created to help get you started.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.silverlight.net/getstarted/silverlight-5-beta/" title="&amp;lt;strong&amp;gt;Get the Silverlight 5 Beta, Tools, and SDK Now&amp;lt;/strong&amp;gt;"&gt;&lt;strong&gt;Get the Silverlight 5 Beta, Tools, and SDK Now&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1) &lt;a href="http://code.msdn.microsoft.com/XNA-Math-Helper-DLL-d4d1f7d4" title="The XNA Math Helper DLL"&gt;The XNA Math Helper DLL&lt;/a&gt;&lt;br /&gt;We expect that the math functions from XNA will be integrated into the Silverlight namespaces in the future, but for Silverlight 5 beta, you'll want to make use of this library instead. Add a reference to this DLL by right-clicking references in your Visual Studio project, clicking "Add Reference," selecting the "Browse" tab and navigating to this DLL's location. Then you can use &lt;a href="http://go.microsoft.com/fwlink/?LinkID=215530&amp;amp;clcid=0x409" title="the original XNA documentation"&gt;the original XNA documentation&lt;/a&gt; to make use of the math functions contained within. These are a real lifesaver when doing matrix math, creating camera views, changing object positions, etc.&lt;/p&gt;
&lt;p&gt;2) &lt;a href="http://msdn.microsoft.com/en-us/library/gg197424(v=XNAGameStudio.35).aspx" title="3D Graphics Overview Topic"&gt;3D Graphics Overview Topic&lt;/a&gt;&lt;br /&gt;A high-level overview of the basics, explaining the capabilities provided in this beta release.&lt;/p&gt;
&lt;p&gt;3) &lt;a href="http://msdn.microsoft.com/en-us/library/gg197425(v=XNAGameStudio.35).aspx" title="Textured 3D Cube Walkthrough "&gt;Textured 3D Cube Walkthrough&lt;/a&gt; and &lt;a href="http://go.microsoft.com/fwlink/?LinkID=215454&amp;amp;clcid=0x409" title="Downloadable Source Code"&gt;Downloadable Source Code&lt;/a&gt;&lt;br /&gt;This walkthrough and sample demonstrates how to create a complete Silverlight 5 beta 3D application, including the use of textures, the use of shaders, integration with Silverlight UI elements, and cross-thread synchronizing (between the rendering thread and main UI thread). When completed, you will have created a textured cube that can be manipulated with ordinary Silverlight UI elements (in this case, sliders).&lt;/p&gt;
&lt;p&gt;Already have the runtime installed? Here's the Textured Cube sample running live!&lt;/p&gt;
&lt;p&gt;
&lt;script type="text/javascript"&gt;&lt;!--
        function onSilverlightError(sender, args) {
            var error = args.ErrorCode;
            if (error == 8001) {
                alert("This sample requires Silverlight 5 Beta.\n" +
                    "After you upgrade, you might need to refresh or \n" +
                    "restart your browser in order to view the sample."); 
            }
        }
// --&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;div id="silverlightControlHost"&gt;
&lt;object height="400" type="application/x-silverlight-2" width="100%" data="data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAJAAB5nAAAVykAAAwAAAB3AGgAaQB0AGUAAAAAAAAAAAAAAAAAAADOAAAAaAB0AHQAcAA6AC8ALwBzAGEAbQBwAGwAZQBzAC4AbQBzAGQAbgAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBzAGkAbAB2AGUAcgBsAGkAZwBoAHQALwBzAGEAbQBwAGwAZQBiAHIAbwB3AHMAZQByAC8AQwBsAGkAZQBuAHQAQgBpAG4ALwBTAGkAbAB2AGUAcgBsAGkAZwBoAHQAQQBwAHAAbABpAGMAYQB0AGkAbwBuADMARABUAGUAcwB0AC4AeABhAHAAAAA8AAAAAAAAACYAAABvAG4AUwBpAGwAdgBlAHIAbABpAGcAaAB0AEUAcgByAG8AcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAA1AC4AMAAAAAwAAABmAGEAbABzAGUAAAD//wAAAAAAAAAAAAAAAAAAAAAAAA=="&gt;
&lt;param value="http://samples.msdn.microsoft.com/silverlight/samplebrowser/ClientBin/SilverlightApplication3DTest.xap" name="source" /&gt;
&lt;param value="onSilverlightError" name="onError" /&gt;
&lt;param value="white" name="background" /&gt;
&lt;param value="true" name="enableGPUAcceleration" /&gt;
&lt;param value="5.0" name="minRuntimeVersion" /&gt;
&lt;param value="false" name="autoUpgrade" /&gt;
&lt;/object&gt;
&lt;iframe id="_sl_historyFrame" style="width: 0px; height: 0px; visibility: hidden; border: 0px;"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;4) Reference documentation for the new API areas: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=215531&amp;amp;clcid=0x409" title="Microsoft.Xna.Framework "&gt;Microsoft.Xna.Framework&lt;/a&gt; (Silverlight Version), &lt;a href="http://go.microsoft.com/fwlink/?LinkID=215532&amp;amp;clcid=0x409" title="Microsoft.Xna.Framework.Graphics "&gt;Microsoft.Xna.Framework.Graphics&lt;/a&gt; (Silverlight Version), &lt;a href="http://go.microsoft.com/fwlink/?LinkID=215533&amp;amp;clcid=0x409" title="Micrososft.Xna.Framework.Silverlight"&gt;Micrososft.Xna.Framework.Silverlight&lt;/a&gt;, and the appearance of &lt;a href="http://go.microsoft.com/fwlink/?LinkID=215540&amp;amp;clcid=0x409" title="DrawingSurface "&gt;DrawingSurface&lt;/a&gt; in the System.Windows.Controls namespace.&lt;/p&gt;
&lt;p&gt;While XNA developers have enjoyed being able to use managed code to create and apply 3D effects for awhile now, in Silverlight 5 beta, effects are the purview of shaders. This is because the effects APIs from XNA haven't been integrated yet. For now, just as you must workaround the limitations of the beta release by manually importing the XNA math library, so must you write and compile shaders to have effects in Silverlight 5 beta. A minimum of a vertex shader and a pixel shader is required, but as you will see in the textured cube sample, they need not do anything terribly fancy.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We are working on posting some other samples that demonstrate 3D use, and look forward to posting them very soon. Hopefully you got to see the "Babylon" demo (showing the interior of a cafe) during the MIX presentation, featuring full-scene, full-screen, GPU-accelerated 3D.&amp;nbsp;It is really amazing to have an in-browser experience that feels so much like a modern 3D&amp;nbsp;game; truly an example of trailblazing plug-in technology at work!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10153200" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Silverlight/">Silverlight</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/3D/">3D</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/mulhausen/">mulhausen</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+5+beta/">silverlight 5 beta</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/cube/">cube</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/silverlight+5/">silverlight 5</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/gpu/">gpu</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/graphics/">graphics</category></item><item><title>Silverlight 5 Beta Breaking Changes</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/13/silverlight-5-beta-breaking-changes.aspx</link><pubDate>Wed, 13 Apr 2011 17:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10152896</guid><dc:creator>snoutholder</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10152896</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/13/silverlight-5-beta-breaking-changes.aspx#comments</comments><description>&lt;p&gt;There are currently no breaking changes for Silverlight 5 Beta to report.&lt;/p&gt;
&lt;p&gt;See also &lt;a href="http://msdn.microsoft.com/en-us/library/gg986858(VS.96).aspx"&gt;Silverlight Versions and Version Compatibility&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10152896" width="1" height="1"&gt;</description></item><item><title>Attending MIX 2011? There’s an app for that!</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/07/attending-mix-2011-there-s-an-app-for-that.aspx</link><pubDate>Thu, 07 Apr 2011 10:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10150884</guid><dc:creator>Nitya Ravi</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10150884</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/07/attending-mix-2011-there-s-an-app-for-that.aspx#comments</comments><description>&lt;p&gt;If you&amp;rsquo;re planning on attending &lt;a href="http://live.visitmix.com/"&gt;MIX 2011&lt;/a&gt; conference in Las Vegas&amp;nbsp;and if you own a Windows Phone, check out our new &lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;amp;id=58d5ccf2-0854-e011-854c-00237de2db9e"&gt;Conference Helper&lt;/a&gt; app for Windows Phone 7, that we just released to the marketplace. Conference Helper is a free app. You can get it either by searching in the marketplace or by downloading it from this link: &lt;span class="content1"&gt;&lt;span style="color: #4a4a4a; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;&lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;amp;id=58d5ccf2-0854-e011-854c-00237de2db9e"&gt;&lt;span style="font-family: Segoe UI; color: #0000ff;"&gt;http://social.zune.net/redirect?type=phoneApp&amp;amp;id=58d5ccf2-0854-e011-854c-00237de2db9e&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/3441.1.png"&gt;&lt;img height="244" width="148" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/5224.1_5F00_thumb.png" alt="1" border="0" title="1" style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 5px 5px 5px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can use this application to: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browse sessions by dates and time&lt;/li&gt;
&lt;li&gt;View keynotes&lt;/li&gt;
&lt;li&gt;View sessions filtered by speakers and tags.&lt;/li&gt;
&lt;li&gt;View session description&lt;/li&gt;
&lt;li&gt;Create your own customized schedule by adding sessions to &amp;ldquo;My Sessions&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Search by keywords&lt;/li&gt;
&lt;li&gt;Access sessions and schedule information even without Internet access&lt;/li&gt;
&lt;li&gt;View maps of the conference center and the neighborhood.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The app uses the phone&amp;rsquo;s internet connection to automatically detect and download any changes or additions to the conference session information.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;We also plan to release this app as a sample shortly. Keep checking this space for more updates.&lt;/p&gt;
&lt;p&gt;-Nitya.
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10150884" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/MIX11/">MIX11</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/MIX+2011/">MIX 2011</category></item><item><title>Windows Phone 7 XNA Game Tutorial For Ya</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/05/windows-phone-7-xna-game-tutorial-for-ya.aspx</link><pubDate>Tue, 05 Apr 2011 17:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10150129</guid><dc:creator>snoutholder</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10150129</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/04/05/windows-phone-7-xna-game-tutorial-for-ya.aspx#comments</comments><description>&lt;p&gt;The Microsoft game folks just released a tutorial that will guide you through the creation of a two-dimensional action game &amp;ndash; called Shooter &amp;ndash; on Windows, Xbox 360, or Windows Phone 7.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://create.msdn.com/en-us/education/gamedevelopment"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20/8726.gameDevSquare220.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://create.msdn.com/en-us/education/gamedevelopment"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10150129" width="1" height="1"&gt;</description></item><item><title>Start-to-Finish Guidance for Windows Phone 7 Application Development</title><link>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/03/29/start-to-finish-guidance-for-windows-phone-7-application-development.aspx</link><pubDate>Tue, 29 Mar 2011 13:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10145596</guid><dc:creator>Karl Erickson</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/silverlight_sdk/rsscomments.aspx?WeblogPostID=10145596</wfw:commentRss><comments>http://blogs.msdn.com/b/silverlight_sdk/archive/2011/03/29/start-to-finish-guidance-for-windows-phone-7-application-development.aspx#comments</comments><description>&lt;p&gt;If you are a C#/.NET developer who wants to learn the basics of phone application development using Silverlight, check out our new end-to-end guidance and sample application:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=212803"&gt;Building a Windows Phone 7 Application from Start to Finish&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/Fuel-Tracker-Sample-9fe58263"&gt;Fuel Tracker sample application&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This guidance does not assume any Silverlight or phone development experience,&amp;nbsp;but it takes you from whiteboard to marketplace, describing the key design and development scenarios along the way. It is designed to complement the &lt;a href="http://create.msdn.com/en-us/education/quickstarts"&gt;Windows Phone Development QuickStarts&lt;/a&gt;, but the focus here is on describing how the features work in the context of an actual application, using a simple but complete fuel tracking app as an example.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/2185.clip_5F00_image001_5F00_704F71B6.png"&gt;&lt;img height="233" width="553" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-20-metablogapi/2438.clip_5F00_image001_5F00_thumb_5F00_3A6A7C9C.png" alt="clip_image001" border="0" title="clip_image001" style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This guidance describes everything you need to know to accomplish the following tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installing the free development tools and creating a new Windows Phone project. &lt;/li&gt;
&lt;li&gt;Designing the user interface (UI) and choosing appropriate controls, icons, and graphics. &lt;/li&gt;
&lt;li&gt;Using the application bar and back button, and handling navigation between pages. &lt;/li&gt;
&lt;li&gt;Storing and retrieving data using isolated storage. &lt;/li&gt;
&lt;li&gt;Display data in controls, enabling user edits, and performing validation. &lt;/li&gt;
&lt;li&gt;Handling application deactivation, tombstoning, and reactivation. &lt;/li&gt;
&lt;li&gt;Using the photo chooser task. &lt;/li&gt;
&lt;li&gt;Publishing your application in the Windows Phone Marketplace. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As always, let us know if you have any feedback. In particular, we are interested in knowing whether you&amp;rsquo;d like to see more of this kind of guidance. &lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;Karl Erickson &lt;br /&gt;Silverlight Developer Guidance &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10145596" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/documentation/">documentation</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/samples/">samples</category><category domain="http://blogs.msdn.com/b/silverlight_sdk/archive/tags/Windows+Phone+7/">Windows Phone 7</category></item></channel></rss>
