<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Fri, 24 Feb 2012 04:02:41 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>blog</title><subtitle>blog</subtitle><id>http://www.rudigrobler.net/blog/</id><link rel="alternate" type="application/xhtml+xml" href="http://www.rudigrobler.net/blog/"/><link rel="self" type="application/atom+xml" href="http://www.rudigrobler.net/blog/atom.xml"/><updated>2012-02-13T06:33:30Z</updated><generator uri="http://www.squarespace.com/" version="Squarespace Site Server v5.11.81 (http://www.squarespace.com/)">Squarespace</generator><entry><title>The feedback loop</title><id>http://www.rudigrobler.net/blog/2012/2/13/the-feedback-loop.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2012/2/13/the-feedback-loop.html"/><author><name>Rudi Grobler</name></author><published>2012-02-13T06:33:30Z</published><updated>2012-02-13T06:33:30Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>In Windows Phone (and most other mobile platforms), the user has very limited direct contact with the developer. The platform encourage the users to leave comments but unfortunately their is no easy way for the developer to reply to these reviews… until now!</p>  <p>A new feature of <a href="http://www.wpdashboard.net/">Windows Phone Dashboard</a> is the ability to contact users who left reviews!</p>  <p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; border-top: 0px; border-right: 0px; padding-top: 0px" border="0" src="https://public.bay.livefilestore.com/y1pfxembUapcF9wl8zpZQ_KFTy1tgPgFM-ePTA9WzHGyujo04ShOuo1nnJDVF26mt3Hx7VNlxNsaxSkdxIvJmPcwA/Reviews.png?psid=1" /></p>  <p>Just click on the users name, this will take you to the zune social site where you can send the user a mail!</p>  <p><img src="https://public.bay.livefilestore.com/y1pX6NEbu_t-KzdGIvSpdUhLFtSyGWBiA1bhjT_f6JLPg0SPI5y5iCB-y6wiAIsX1td_K5WfzR4gc0jbz_PMFxtlQ/ZuneMessage.PNG?psid=1" /></p>  <p>&#160;</p>    <p>Want to learn more about Windows phone Dashboard? Read the EXCELLENT review on <a href="http://www.wpcentral.com/windows-phone-dashboard-beta-developers">WPCentral</a></p>]]></content></entry><entry><title>Kung Fu Windows Phone&amp;ndash;Marketing 101</title><id>http://www.rudigrobler.net/blog/2012/1/9/kung-fu-windows-phonendashmarketing-101.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2012/1/9/kung-fu-windows-phonendashmarketing-101.html"/><author><name>Rudi Grobler</name></author><published>2012-01-09T10:06:03Z</published><updated>2012-01-09T10:06:03Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><img border="0" alt="" src="https://public.bay.livefilestore.com/y1pwRLDp-WMSFIqelO1mWavVhbPGqR5us7ZuoMEga0zHpT5GbXHAngysjhdT01V-0shkZEcPdjrFMB4jt_kbv40kw/KungFuBanner.PNG?psid=1" width="527" height="137" /></p>  <p>So, you have written your application and it rocks… But you are the only one who downloaded the application? How do you get more poeple to download your piece of art? Telerik has jus released a AWESOME whitepaper on how to promote your application</p>  <p>Download –&gt; <a title="http://www.telerik.com/products/windows-phone/getting-started/promote-your-wp7-app.aspx" href="http://www.telerik.com/products/windows-phone/getting-started/promote-your-wp7-app.aspx">http://www.telerik.com/products/windows-phone/getting-started/promote-your-wp7-app.aspx</a></p>  <blockquote>   <p>“You’ve built your WP7 app, uploaded it on the marketplace and now you are probably out of your comfort zone wondering what comes next? What should you do to get your download numbers up? Most probably you do not have a marketer at your disposal or an advertising budget.”</p> </blockquote>  <p><img src="https://public.bay.livefilestore.com/y1pMZrcK4qEmo8xansxIvG0Ou8X5h-_c6Vc0jOReFz3iNy_WzKVi9S8OaEkHDEyvJx_MeFG-9Hz1LZosNfSx0ojMg/MArketing.jpg?psid=1" /></p>  <ul>   <li><strong>MAKE YOUR APP’S PRESENTATION SEXY</strong></li>    <ul>     <li>Make the most of your landing page</li>      <li>Monitor the stats</li>      <li>Google Analytics? Now possible</li>      <li>YouTube is your friend – SEO tips</li>   </ul>    <li><strong>BUILD YOUR CORE OF MOST LOYAL USERS</strong></li>    <ul>     <li>Start off with a free version</li>      <li>Add support/feedback link to your app</li>      <li>Beta test your app</li>      <li>Get in touch with the Microsoft User Community</li>      <li>Get in touch with local user groups</li>   </ul>    <li><strong>INCREASE DOWNLOADS THROUGH IN-APP TRICKS</strong></li>    <ul>     <li>Regularly update your app</li>      <li>Add “Rate my app” message to your app</li>   </ul>    <li><strong>IN-APP ADS</strong></li>    <ul>     <li>Microsoft Advertising SDK</li>      <li>Alternative Advertising networks</li>   </ul> </ul>]]></content></entry><entry><title>Kung Fu Windows Phone - User Feedback</title><id>http://www.rudigrobler.net/blog/2012/1/7/kung-fu-windows-phone-user-feedback.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2012/1/7/kung-fu-windows-phone-user-feedback.html"/><author><name>Rudi Grobler</name></author><published>2012-01-07T17:43:27Z</published><updated>2012-01-07T17:43:27Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><img border="0" alt="" src="https://public.bay.livefilestore.com/y1pwRLDp-WMSFIqelO1mWavVhbPGqR5us7ZuoMEga0zHpT5GbXHAngysjhdT01V-0shkZEcPdjrFMB4jt_kbv40kw/KungFuBanner.PNG?psid=1" width="527" height="137" /></p>  <p>One of the easiest tips I can give any windows phone developer is… USE THE TILT EFFECT!!!</p>  <p>If you create a new Windows Phone application using any of the templates that support sample data (Pano, Pivot or Databound), it will create a Windows Phone app that has a list off items that you can selected… notice when you click on any of these items that their is NO indication that you clicked on it!</p>  <p><img src="https://public.bay.livefilestore.com/y1pEuzMPaBc6i2sjCvOq_Y9vnm3iKmwrVIoqIjcYazS9uMzoggJFCjiU4Zo5WxnMkGBlNL62j5N9VBRB6xTO8SVIg/user_feedback_1-7-2012_19.28.29.71.png?psid=1" width="214" height="388" /></p>  <p>Let’s change this… Via NuGet, download and install the Silverlight Toolkit for Windows Phone. Once you have this installed, add the toolkit namespace</p>  <pre class="brush: xml;">xmlns:toolkit=&quot;clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit&quot;</pre>

<p>And enable the tilt effect</p>

<pre class="brush: xml;">toolkit:TiltEffect.IsTiltEnabled=&quot;True&quot;</pre>

<p>Easy? Try it out and see the difference…</p>

<p>This works for buttons too… Also make sure that you NEVER use color changes in listboxes to indicate selection (This is the default for “normal” silverlight applications)</p>]]></content></entry><entry><title>Kung Fu Windows Phone - Capitalization</title><id>http://www.rudigrobler.net/blog/2012/1/6/kung-fu-windows-phone-capitalization.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2012/1/6/kung-fu-windows-phone-capitalization.html"/><author><name>Rudi Grobler</name></author><published>2012-01-06T08:09:48Z</published><updated>2012-01-06T08:09:48Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="https://public.bay.livefilestore.com/y1pwRLDp-WMSFIqelO1mWavVhbPGqR5us7ZuoMEga0zHpT5GbXHAngysjhdT01V-0shkZEcPdjrFMB4jt_kbv40kw/KungFuBanner.PNG?psid=1" border="0" alt="" width="527" height="137" /></p>
<p>Capitalization is one of these un-written rules of windows phone! Your application will not be rejected because it uses capitalization wrong but it does make your application look a little&hellip; different <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://www.rudigrobler.net/resource/Windows-Live-Writer-Kung-Fu-Windows-Phone-Tip-1_8AB6-?fileId=15899123" alt="Smile" /></p>
<p>So, let&rsquo;s look at the official &ldquo;rules&rdquo; for capitalization:</p>
<p>Use lowercase for:</p>
<ul>
<li>Page/Panorama/Pivot titles</li>
<li>List titles</li>
<li>List group titles</li>
<li>Push button control text or words that function as commands</li>
<li>List items</li>
<li>Example text that appears in search boxes</li>
<li>Link controls in the middle of a sentence</li>
</ul>
<p>Use sentence caps for:</p>
<ul>
<li>Check box and radio button labels</li>
<li>Progress indicators</li>
<li>Status, notification and explanatory text</li>
<li>Toggle switches</li>
</ul>
<p>Use all caps for:</p>
<ul>
<li>Application title</li>
<li>Date and times AM or PM</li>
</ul>
<p>Although this is considered the &ldquo;rules&rdquo;, as a tip&hellip; Launch the Music and Video hub and verify!</p>
<p>BTW. Also note that capitalization is different based on current language! Don&rsquo;t believe me, change your language to German and check out the music &amp; video hub</p>]]></content></entry><entry><title>LittleWife™</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/10/24/littlewife.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/10/24/littlewife.html"/><author><name>Rudi Grobler</name></author><published>2011-10-24T09:19:25Z</published><updated>2011-10-24T09:19:25Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>One of the big advantages of mobile applications is that thy are featured in a marketplace where the users gets to rate the applications… This makes the best applications naturally float to the top…</p>

<p>Why not help this process a little by asking your users (after a couple of runs) if thy would like to rate your application?</p>

<p>Introducing LittleWife™</p>

<p>LittleWife is a very simple service with one very important method… Nag()</p>

<pre class="brush: csharp;">namespace MmaUnderground
{
    using System.IO.IsolatedStorage;
    using System.Windows;
    using Microsoft.Phone.Tasks;

    public class LittleWife
    {
        public static void Nag()
        {
            if (!IsolatedStorageSettings.ApplicationSettings.Contains(&quot;RunCount&quot;))
            {
                IsolatedStorageSettings.ApplicationSettings[&quot;RunCount&quot;] = 0;
            }

            int runCount = (int)IsolatedStorageSettings.ApplicationSettings[&quot;RunCount&quot;];
            runCount++;

            if (runCount == 5)
            {
                if (MessageBox.Show(&quot;Do you enjoy using The UnderGround? Please take a quick minute to rate it...&quot;, &quot;The UnderGround&quot;, MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                {
                    MarketplaceReviewTask task = new MarketplaceReviewTask();
                    task.Show();
                }
            }
            IsolatedStorageSettings.ApplicationSettings[&quot;RunCount&quot;] = runCount;
        }
    }
}</pre>

<p>To use LittleWife, just add the following to the application life cycle events…</p>

<pre class="brush: csharp;">private void Application_Launching(object sender, LaunchingEventArgs e)
{
    LittleWife.Nag();
}

NOTE: Inspiration for the name is based on <a href="http://blogs.msdn.com/b/andypennell/archive/2010/11/01/error-reporting-on-windows-phone-7.aspx">LittleWatson</a> by <a href="http://blogs.msdn.com/b/andypennell/">Andy Pennell</a></pre>]]></content></entry><entry><title>applicationbar opacity in mango</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/10/23/applicationbar-opacity-in-mango.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/10/23/applicationbar-opacity-in-mango.html"/><author><name>Rudi Grobler</name></author><published>2011-10-23T19:14:52Z</published><updated>2011-10-23T19:14:52Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>In mango, a common way of using the ApplicationBar is to minimize it and make it opaque. This minimizes the space used and also hints to the user that their is more content to scroll thru.</p>
<p><img src="https://byfiles.storage.live.com/y1pdO2mN22jjiawtL3XuVjAmtdwdcUsJ81FBWpT-6pjjDTvvp9cSLWuddnSlAnlqksEkUzPr-KWV8A/TheUnderGround_10-23-2011_21.3.46.288.png?psid=1" alt="TheUnderGround_10-23-2011_21.3.46.288" /></p>
<p>One &ldquo;trick&rdquo; the OS uses is to make the menu non-opaque when expanded</p>
<p><img src="https://byfiles.storage.live.com/y1p8pUOUw88l13Xba909XDyzBYTv4fvvSHSvgMbpsId1-l_u_OZb1wJRsjhW374D6Mx90jMcgz_4H0/TheUnderGround_10-23-2011_21.3.50.682.png?psid=1" alt="TheUnderGround_10-23-2011_21.3.50.682" /></p>
<p>Here is how to do this, set your applicationBar&rsquo;s opacity and attach the StateChanged event handler</p>
<pre class="brush: xml;">&lt;phone:PhoneApplicationPage.ApplicationBar&gt;
    &lt;shell:ApplicationBar Opacity="0.9" Mode="Minimized" StateChanged="ApplicationBar_StateChanged"&gt;
        &lt;shell:ApplicationBarIconButton IconUri="/Images/appbar.refresh.rest.png" Text="refresh" x:Name="refreshButton" Click="refreshButton_Click" /&gt;
        &lt;shell:ApplicationBar.MenuItems&gt;
            &lt;shell:ApplicationBarMenuItem Text="about" x:Name="aboutButton" Click="aboutButton_Click" /&gt;
        &lt;/shell:ApplicationBar.MenuItems&gt;
    &lt;/shell:ApplicationBar&gt;
&lt;/phone:PhoneApplicationPage.ApplicationBar&gt;</pre>
<p>In this event handler, switch the opacity</p>
<pre class="brush: csharp;">private void ApplicationBar_StateChanged(object sender, Microsoft.Phone.Shell.ApplicationBarStateChangedEventArgs e)
{
    if (e.IsMenuVisible == true)
    {
        ApplicationBar.Opacity = 1.0;
    }
    else
    {
        ApplicationBar.Opacity = 0.9;
    }
}</pre>
<p>Easy&hellip;</p>]]></content></entry><entry><title>Windows PHONE WEEKEND WORKSHOP - CAPE TOWN</title><category term="Events"/><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/10/5/windows-phone-weekend-workshop-cape-town.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/10/5/windows-phone-weekend-workshop-cape-town.html"/><author><name>Rudi Grobler</name></author><published>2011-10-05T11:11:08Z</published><updated>2011-10-05T11:11:08Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>After the success of the first <a href="http://www.rudigrobler.net/blog/2011/9/28/free-windows-phone-weekend-workshop.html">Windows Phone Weekend Workshop</a> in Johannesburg, we will be hosting another event but this time for the capetonians&hellip;</p>
<p>Here is the full event details</p>
<p>Windows Phone Camp is a free event where you can learn everything you need to know to develop and publish a Windows Phone &lsquo;Mango&rsquo; application. Whether you&rsquo;re a student just starting out or a seasoned developer for Windows Phone, Android, Symbian, Web OS or iOS, we&rsquo;ll share tips and tricks and all-around Windows Phone</p>
<p>Agenda</p>
<p>8:30 AM Arrival and Registration <br />9:00 AM Welcome/ Windows Phone 7.5 Overview for Developers <br />9:45 AM Building Windows Phone Applications with Visual Studio 2010 <br />10:45 AM Break <br />11:00 AM Building Windows Phone 7.5 Apps with Silverlight <br />12:00 AM Lunch <br />1:00 PM Windows Phone 7.5 Fast Application Switching, Tombstoning and Multitasking <br />2:00 PM Break <br />2:15 PM Live Tiles and Push Notifications <br />3:15 PM Break&nbsp; <br />3:30 PM Building Games for Windows Phone 7.5 <br />4:30 PM Monetizing a Windows Phone 7.5 Application <br />5:00 PM What&rsquo;s Next/Resources/Event Ends</p>
<p>SPACE IS VERY LIMITED SO PLEASE REGISTER ASAP</p>
<p><a title="http://wp7camp.eventbrite.com/" href="http://wp7camp.eventbrite.com/">http://wp7camp.eventbrite.com/</a></p>]]></content></entry><entry><title>I will be presenting at tech-ed africa 2011</title><category term="Events"/><id>http://www.rudigrobler.net/blog/2011/10/5/i-will-be-presenting-at-tech-ed-africa-2011.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/10/5/i-will-be-presenting-at-tech-ed-africa-2011.html"/><author><name>Rudi Grobler</name></author><published>2011-10-05T07:37:11Z</published><updated>2011-10-05T07:37:11Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Tech-ed Africa 2011 is around the corner and I will be presenting 3 sessions:</p>
<p><a href="http://www.teched.co.za/session.aspx?sid=0dca52ad-a750-4aed-88d5-e8c581c4fe85&amp;rid=e3f78ec5-e847-469c-8346-556b16d1997e&amp;from=profile">WPH203 | Mango MUST HAVE developer features</a></p>
<p>Tue, 18 Oct 2011 (09:15 - 10:15) | Breakout session | 200 - Intermediate | Windows Phone | Session A3</p>
<p><a href="http://www.teched.co.za/session.aspx?sid=87e577cc-2d27-4554-b50c-5a19a8b8ad53&amp;rid=e3f78ec5-e847-469c-8346-556b16d1997e&amp;from=profile">WUX304 | Effective Validation Techniques with MVVM in Silverlight</a></p>
<p>Tue, 18 Oct 2011 (13:15 - 14:15) | Whiteboard | 300 - Advanced | Web and User Experience | Session B2</p>
<p><a href="http://www.teched.co.za/session.aspx?sid=ea982677-8d23-4c2f-b478-ac0f34d99565&amp;rid=e3f78ec5-e847-469c-8346-556b16d1997e&amp;from=profile">WPH401 | Expert Lessons: Top Tips for Building a Successful Windows Phone Application</a></p>
<p>Wed, 19 Oct 2011 (17:15 - 18:15) | Breakout session | 400 - Expert | Windows Phone | Session B1</p>
<p>Hope to see you there!!!</p>
<p>BTW. A friend of mine wrote an excellent Tech-ed Africa Windows Phone Application so check it out <a href="http://www.sadev.co.za/content/teched-africa-2011-windows-phone-7">here</a></p>]]></content></entry><entry><title>TextBox.TextChanged event fire twice on the Phone</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/textboxtextchanged-event-fire-twice-on-the-phone.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/textboxtextchanged-event-fire-twice-on-the-phone.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T09:43:44Z</published><updated>2011-09-28T09:43:44Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Its very rare that I ever user the TextChanged event directly&hellip; but never say never!</p>
<p>I recently needed it and for some weird reason it fired twice for every key pressed, here is a simplified example of the problem. I added a simple TextBlock and TextBox</p>
<p>
<pre class="brush: xml;">&lt;phone:PhoneApplicationPage     
    x:Class="TextBoxTest.MainPage"    
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"    
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"    
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"    
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"    
    mc:Ignorable="d" d:DesignWidth="480" 
    d:DesignHeight="768"    
    FontFamily="{StaticResource PhoneFontFamilyNormal}"    
    FontSize="{StaticResource PhoneFontSizeNormal}"    
    Foreground="{StaticResource PhoneForegroundBrush}"    
    SupportedOrientations="Portrait" Orientation="Portrait"    
    shell:SystemTray.IsVisible="True"&gt;    
    &lt;StackPanel&gt;        
        &lt;TextBlock Text="Count: 0" x:Name="counterTextBlock" /&gt;        
        &lt;TextBox x:Name="textBox" TextChanged="textBox_TextChanged" /&gt;    
    &lt;/StackPanel&gt;
&lt;/phone:PhoneApplicationPage&gt;
</pre>
</p>
<p>And then attached the TextChanged event handler from XAML. The event handler just increments a counter and prints it on the screen</p>
<p>
<pre class="brush: csharp;">public partial class MainPage : PhoneApplicationPage 
{ 
    public MainPage() 
    { 
        InitializeComponent(); 
    } 
    
    int count = 0; 
    
    private void textBox_TextChanged(object sender, TextChangedEventArgs e) 
    { 
        count++; 
        counterTextBlock.Text = "Count: " + count; 
    } 
}
</pre>
</p>
<p>Running it, for every letter I type, it increments twice (Sounds weird, but try it)</p>
<p>After searching a bit, I found <a href="http://stackoverflow.com/questions/3438806/textbox-textchanged-event-firing-twice-on-windows-phone-7-emulator">this</a> post on Stackoverflow (By none other than the legend <a href="http://stackoverflow.com/users/22656/jon-skeet">Jon Skeet</a>) about exactly the same problem. It turns out that the problem is how the TextBox was styled to Metro-fy&trade; it&hellip; Here is a simplified version of the original template</p>
<p>
<pre class="brush: xml;">
&lt;Style x:Key=&quot;SimplefiedTextBoxStyle&quot; TargetType=&quot;TextBox&quot;&gt;    
    &lt;Setter Property=&quot;Template&quot;&gt;        
        &lt;Setter.Value&gt;            
            &lt;ControlTemplate TargetType=&quot;TextBox&quot;&gt;                
                &lt;Grid Background=&quot;Transparent&quot;&gt;                    
                    &lt;Border x:Name=&quot;EnabledBorder&quot;&gt;                        
                        &lt;ContentControl x:Name=&quot;ContentElement&quot; /&gt;                    
                    &lt;/Border&gt;                    
                    &lt;Border x:Name=&quot;DisabledOrReadonlyBorder&quot;
                            Visibility=&quot;Collapsed&quot;&gt;                        
                        &lt;TextBox x:Name=&quot;DisabledOrReadonlyContent&quot; 
                            Text=&quot;{TemplateBinding Text}&quot; /&gt;                    
                    &lt;/Border&gt;                
                &lt;/Grid&gt;            
            &lt;/ControlTemplate&gt;        
        &lt;/Setter.Value&gt;    
    &lt;/Setter&gt;
&lt;/Style&gt;
</pre></p>
<p>Notice the second TextBox, if you remove it&hellip; the event only fires once (But then you have no differentiation when disabled/read only)</p>]]></content></entry><entry><title>Panorama Tombstone Caveat</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/panorama-tombstone-caveat.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/panorama-tombstone-caveat.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T09:43:12Z</published><updated>2011-09-28T09:43:12Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>In my previous post, I showed a couple of helpers that make it dead simple (pun intended) to tombstone common controls per page! The one &ldquo;thing&rdquo; that I have discovered thou, is that their is a problem with the way I do Panorama tombstoning.</p>
<p>BTW. the way I do it is the &ldquo;recommended&rdquo; way so I am not sure how to fix this&hellip; Any suggestions are very welcome!</p>
<p>NOTE: Have a look at how the Facebook application does it, thy got it right so it MUST be possible?</p>
<p>Let me show you the problem, here is my panorama, I used exactly the demo in the previous post&hellip; the only thing I changed is I made the header &ldquo;1234567890&rdquo;. You will see why now. Next, I keep it on the first panorama item and tombstone. After rehydration, this is the UI</p>
<p>&nbsp;</p>
<p><a href="http://yydgew.bay.livefilestore.com/y1pOSN74SOcfg8eQw0X3K3W6A4ZIEbhWl_CR2hWJD7brofomIcJe871qcmuLrZS_EdYpLi6kmj3_ggh24nGIaIDgbf8k8rGLtEh/Pano1.PNG?psid=1"><img src="http://yydgew.bay.livefilestore.com/y1pOSN74SOcfg8eQw0X3K3W6A4ZIEbhWl_CTWvXE0j7Oobrcrz2UihoF-R6vlTOe1VIjUqhpmfDzx_E2W8N_97InSlGZ0a1xing/Pano1.PNG?psid=1" alt="" width="591" height="449" /></a></p>
<p>Looks ok&hellip; Next, I move to the second panorama item, tombstone and rehydrate</p>
<p><a href="http://yydgew.bay.livefilestore.com/y1p2plvKxKd7zg-SMjOTbmw1l9JBwt5xPpHeRFgaQSlyuleLbxhb7n8eI5cMtX9hTIweClqyl0DqWsA4iymKGZNcxhsJWub-MpD/Pano2.PNG?psid=1"><img src="http://yydgew.bay.livefilestore.com/y1p2plvKxKd7zg-SMjOTbmw1l9JBwt5xPpHckcxDR25D8D6syLYA1WeSJGjYmybfvGZ-dahsQ9EBoQQKoPGuIAHyRT7OwJfUxmX/Pano2.PNG?psid=1" alt="" width="590" height="450" /></a></p>
<p>What&rsquo;s wrong with this picture?</p>
<p>Although the DefaultItem is now set to the second panorama item, the header still starts at 1?</p>
<p>I DO NOT HAVE A SOLUTION YET&hellip; but I thought it might be worth pointing out that this will happen if you use Panorama.DefaultItem on rehydration!</p>
<p>PS. After posting my article I also found <a href="http://blogs.msdn.com/b/ptorr/archive/2011/03/06/a-penny-for-your-thoughts-on-tombstoning.aspx">this interesting post</a> by <a href="http://blogs.msdn.com/b/ptorr/">Peter Torr</a> and <a href="http://tombstonehelper.codeplex.com/">this codeplex project</a> relating to tombstoning!</p>]]></content></entry><entry><title>Ask and you shall receive</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/ask-and-you-shall-receive.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/ask-and-you-shall-receive.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T09:42:29Z</published><updated>2011-09-28T09:42:29Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>How do you get your users to rate your application? In my opinion, the current way (Tap and hold the application icon) is not very discoverable! In a new application I am writing, I started playing around with a new idea&hellip; Why not ask for it?&nbsp;</p>
<p><a href="http://public.bay.livefilestore.com/y1pogZ8o-xlscW_ebiuBuXPL9IYyZPvlFIORTdjkh9Y5FfkiWwMa75RTSKQTB50N6sJ30RxUs6IRDTiN-lZ7Ef8gg/HomebrewAbout.PNG?psid=1"><img style="background-image: none; padding-left: 0; padding-right: 0; padding-top: 0; border: 0;" src="http://public.bay.livefilestore.com/y1pogZ8o-xlscW_ebiuBuXPL3VZMsoVIq_Dx02u80RkoxeHqnvdV6Gw67OYZ5yfDWWFxx9tjvNo-8iVrEqt3DnF7A/HomebrewAbout.PNG?psid=1" border="0" alt="" width="313" height="600" /></a></p>
<p>The launchers and choosers in Windows Phone OS makes it dead simple to do this! Here is the code to take your user to the marketplace page for your application</p>
<p>
<pre class="brush: csharp;">MarketplaceReviewTask task = new MarketplaceReviewTask();
task.Show();
</pre>
</p>
<p>I also allow my users to email me there feedback directly, here is the code</p>
<p><pre class="brush: csharp;">
EmailComposeTask task = new EmailComposeTask();
task.Subject = &quot;Homebrew feedback&quot;;
task.To = &quot;rudi@bbd.co.za&quot;;
task.Show();
</pre></p>
<p>Simple, I know&hellip; But it could make the difference between a average 3 star rating by the odd user or a 4+ star rating by satisfied users!</p>]]></content></entry><entry><title>WP7 TombstoneHelper</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/wp7-tombstonehelper.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/wp7-tombstonehelper.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T09:41:46Z</published><updated>2011-09-28T09:41:46Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><a href="http://yydgew.bay.livefilestore.com/y1pqkafWKn8PdhdJQbOalInsnbnkC1C-2w-y42WX26r4LgSbcumW8maPmDfpnvSKvhHh6iDMnhQYvDoJ4u9CFOVMusaVgiw6m0H/networkengineertombstone.jpg?psid=1"><img style="background-image: none; padding-left: 0; padding-right: 0; padding-top: 0; border-width: 0;" src="http://yydgew.bay.livefilestore.com/y1p_5R6JouIXqcIfOFNglmdXh1UsgK4JJpusjllDFcaJXAzBVm-USaxB-BV42mM0WLJ-wSZaGNQmZEojeDUqmHLPQAq6dYq8PHs/networkengineertombstone.jpg?psid=1" border="0" alt="" width="600" height="450" /></a></p>
<blockquote>
<p>&ldquo;The procedure in which the operating system terminates an application&rsquo;s process when the user navigates away from the application. The operating system maintains state information about the application. If the user navigates back to the application, the operating system restarts the application process and passes the state data back to the application.&rdquo;</p>
</blockquote>
<p>When your application gets tombstoned, you get a opportunity to save some state about your application&hellip; Common questions I get is what should I save, where should I save it and when? Let me try and address some of these questions:</p>
<p>What should I save</p>
<p><strong>Panorama</strong>: Panorama.SelectedIndex</p>
<p><strong>Pivot</strong>: Pivot.SelectedIndex</p>
<p><strong>ListBox</strong>: ScrollViewer.VerticalOffset &amp; ScrollViewer.HorizontalOffset</p>
<p><strong>TextBox</strong>: TextBox.Text, TextBox.SelectionStart &amp; TextBox.SelectionLength</p>
<p><strong>CheckBox</strong>: CheckBox.IsChecked</p>
<p><strong>RadioButton</strong>: RadioButton.IsChecked</p>
<p><strong>Slider</strong>: Slider.Value</p>
<p>Where should I save it</p>
<p>Each page has a State dictionary and their is also a application-wide dictionary as part of the PhoneApplicationService. These state dictionaries get automatically persisted when tombstoned! The helper class will save each control that you give to it on the page specific dictionary and it will use the control &lsquo;s name as the key!</p>
<p>When should I save it</p>
<p>The last question is when? You have two options here&hellip; Application lifecycle events (Application_Activated &amp; Application_Deactivated) or on a page level you can override the OnNavigateTo &amp; OnNavigateFrom!</p>
<p>Since the helper class really try and address page specific state, it makes sense that we will be using the OnNavigateTo/OnNavigateFrom!</p>
<p>Lets try it out&hellip;</p>
<p>The helpers are implemented as extension methods so all you have to do is</p>
<p><pre class="brush: csharp;">
public partial class NormalPage : PhoneApplicationPage
{
    public NormalPage()
    {
        InitializeComponent();            
    }

    protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        base.OnNavigatedFrom(e);

        this.Save(textBox);
        this.Save(checkBox);
        this.Save(radioButton1);
        this.Save(radioButton2);
        this.Save(slider);
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);

        this.Load(textBox);
        this.Load(checkBox);
        this.Load(radioButton1);
        this.Load(radioButton2);
        this.Load(slider);
    }
}
</pre></p>
<p>Easy, isn&rsquo;t it!</p>
<p><a href="http://cid-8781d455bf61cd0d.office.live.com/self.aspx/BlogDemos/LifecycleDemo.zip">Here</a> is the sample application</p>
<p>Read more about the Windows Phone execution model here:</p>
<p><a title="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/15/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-1.aspx" href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/15/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-1.aspx">Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and Choosers, and Few More Things That Are on the Way &ndash; Part 1</a></p>
<p><a title="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/16/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-2.aspx" href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/16/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-2.aspx">Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and Choosers, and Few More Things That Are on the Way &ndash; Part 2</a></p>
<p><a title="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/20/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-more-part-3.aspx" href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/20/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-more-part-3.aspx">Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and more&hellip; &ndash; Part 3</a></p>]]></content></entry><entry><title>FREE Windows Phone Weekend Workshop</title><category term="Events"/><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/free-windows-phone-weekend-workshop.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/free-windows-phone-weekend-workshop.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:32:59Z</published><updated>2011-09-28T08:32:59Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><img title="Untitled" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-33-14-metablogapi/0028.Untitled_5F00_thumb_5F00_51B1073D.png" border="0" alt="Untitled" width="484" height="242" /></p>
<p><a href="http://www.sadev.co.za">Robert MacLean</a> and myself will be presenting a FULL day workshop on Windows Phone! Space is limited so please register ASAP!</p>
<p><em><a href="http://blogs.msdn.com/b/southafrica/archive/2011/08/25/windows-phone-weekend-warrior-weekend-17th-september-2011.aspx">Here is the original blog post from the DPE South Africa blog</a>:</em></p>
<p><em>"Windows Phone is an important leap forward in Microsoft&rsquo;s overall mobile strategy and the developer community has taken notice. Now is the time to embrace the &ldquo;tile-and-app&rdquo; UI and reap the rewards Windows Phone provides your development team and user community. If you are new to Windows Phone come join us for our sessions on Windows Phone development where we will be covering introductory topics all the way to more advanced topics. If you are currently writing an application for the platform come through and have access to our experts to help you with your application, or polish your Windows Phone platform understanding in the sessions. Topics covered during the day are:</em></p>
<p><em>- Introduction to Windows Phone </em></p>
<p><em>- Building a Silverlight Application</em></p>
<p><em>- Silverlight Controls for the Phone</em></p>
<p><em>- Advanced Silverlight topics</em></p>
<p><em>- Windows Phone Hardware</em></p>
<p><em>- Services</em></p>
<p><em>- Performance</em></p>
<p><em>- Getting your app onto the Marketplace</em></p>
<p><em>- Building Windows Phone XNA Applications</em></p>
<p><em>- Advanced XNA Topics</em></p>
<p>&nbsp;</p>
<p><em>Where: Microsoft Offices Johannesburg </em><br /><em>When: 17th September 2011 09:00 &ndash; 16:00 </em><br /><em>Register Here on <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032492910&amp;Culture=en-ZA">Global Events</a></em></p>
<p>&nbsp;</p>
<p><em>Cost: Free!!!!"</em></p>]]></content></entry><entry><title>Locally relevant applications for Windows Phone 7</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/locally-relevant-applications-for-windows-phone-7.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/locally-relevant-applications-for-windows-phone-7.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:32:32Z</published><updated>2011-09-28T08:32:32Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>One of the big wp7 development goals for me personally in the last couple of weeks have been to develop some locally relevant applications! I live in South Africa and we only recently were added to the &ldquo;allowed&rdquo; list of countries who can develop and consume wp7 applications! The application I wrote is definitely not a big brand official application but it was something that I needed! After my last trip, I decided to try out our new Gautrain from the airport back to my house! While planning this trip, I was curios exactly where the station is, what its going to cost me, what time is the next train, etc&hellip; All these questions made me decide to write it myself&hellip;</p>
<p>&nbsp;</p>
<p><img src="http://image.catalog.zune.net/v3.2/image/f7ba1095-10aa-425d-944a-5e02a68b242e?width=320&amp;height=320" alt="" width="250" /></p>
<p>&nbsp;</p>
<p>The application is simple called Gautrain, and will help you get all the information you need before traveling on the Gautrain!</p>
<p>The first &ldquo;big&rdquo; brand WP7 application I have noticed is news24&hellip; I am sure we will see more of these jumping aboard (super sport, dstv, etc)</p>
<p>&nbsp;</p>
<p><img src="http://image.catalog.zune.net/v3.2/image/0c99f117-cef9-472b-b466-604c78c1facc?width=320&amp;height=320" alt="" width="250" /></p>
<p>Hopefully we will see loads more applications like this in the next couple of months! If you are currently working on a South Africa specific application, please let me know!!!</p>
<p>PS. One of my colleagues, <a href="http://www.sadev.co.za/">Robert MacLean</a> also wrote a SA specific application called AA Rate Calculator</p>
<p><img src="http://image.catalog.zune.net/v3.2/image/594df782-f524-42fd-bd83-7df551359e0d?width=320&amp;height=320" alt="" width="250" /></p>]]></content></entry><entry><title>A WP7 Application for WP7 developers...</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/a-wp7-application-for-wp7-developers.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/a-wp7-application-for-wp7-developers.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:32:01Z</published><updated>2011-09-28T08:32:01Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><img src="http://image.catalog.zune.net/v3.2/image/71a55ada-8811-4040-b840-3a6267d24316?width=160&amp;height=120" alt="" /><br />I known this is a very niche application, but if you are a WP7 developer and have couple of WP7 application in the marketplace, try Keep an Eye</p>
<p><img src="http://image.catalog.zune.net/v3.2/image/2155d53c-6c73-4bf4-b9b7-78e43da4f8e4/?width=100&amp;height=100" alt="" width="480" height="800" /></p>
<p>Keep an eye helps you too monitor all your applications that you have released! It shows you each apps current positioning overall and in its category. You can also drill into a application which will take you to a detail view where you can then see each applications reviews.</p>
<p>Give it a try&hellip;</p>
<p><a href="http://www.rudigrobler.net//navigate/?appID=6f64e435-f3ad-e011-a53c-78e7d1fa76f8"><img style="background-image: none; padding-left: 0; padding-right: 0; padding-top: 0; border: 0;" src="http://microsoftfeed.com/wp-content/uploads/2011/04/Windows-Phone-7-Download-Button.png" border="0" alt="" width="137" height="45" /></a></p>]]></content></entry><entry><title>Creating a Soundboard</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/creating-a-soundboard.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/creating-a-soundboard.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:31:19Z</published><updated>2011-09-28T08:31:19Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>One of the easiest, and fun (Or annoying) applications to create on windows Phone is soundboards! I have 2 soundboard applications in the marketplace and thought I share some of the things I learned creating them!</p>
<p>Before you can start creating your soundboard, you need to know what sounds you would like to play. Or more importantly, where to find these sounds? Here are a couple of great sites to start with</p>
<ul>
<li>The Freesound Project (freesound.org)</li>
<br />
<li>Partners in Rhyme (partnersinrhyme.com)</li>
<br />
<li>Soungle (soungle.com)</li>
<br />
<li>Sounddogs (sounddogs.com)</li>
<br />
<li>SoundLab, a pack of game-centric Sounds from Microsoft (create.msdn.com/en-US/education/catalog/utility/soundlab)</li>
<br />
</ul>
<p>Once you have these great sounds, you need to play them&hellip; Luckily Silverlight/XNA makes this very simple! We are going to use the XNA SoundEffect class to play our media files, here is my little helper method to play a sound:</p>
<p>
<pre class="brush: csharp;">private void PlaySound(string filename)
{    
    Stream stream = TitleContainer.OpenStream(filename);    
    SoundEffect effect = SoundEffect.FromStream(stream);    
    FrameworkDispatcher.Update();    
    effect.Play();
}

</pre>
</p>
<p>Note: All my sound files must be .wav files and also added to my project with a build action set to Content!</p>
<p>The only part you have to do yourself now is create a ViewModel that stores all the filenames and their descriptions and list them or alternatively you need to create buttons on your UI and in the click handlers play different sounds!</p>
<p>The <a href="http://www.rudigrobler.net/windows-phone">Duke Nukem Soundboard</a> uses the ViewModel list approach and <a href="http://www.rudigrobler.net/windows-phone">In A Sitcom</a>uses the button approach!</p>
<p>One of the big lessons I learned while writing soundboards is that tactile feedback is VERY important! On a soundboard, if you click on a sound, you will typically stay on exactly the same page and the sound will start playing&hellip; If you do not give the user &ldquo;some&rdquo; feedback, thy might press the button multiple times&hellip; The Silverlight toolkit has an awesome attached behaviour called TiltEffect, that is very simple to use and give a user a subtle hint that thy have actually pressed a button! If you have an application where an action like clicking a button do not navigate you away, always try and give some indication that the button was pressed!</p>
<p>The final lesson I wanna share is that a soundboard also typically do not use your network, etc&hellip; Don&rsquo;t forget to remove these capabilities from your manifest before submitting! If you include 3<sup>rd</sup>part libraries that might use networking features but you do not use them&hellip; The submission process checker will still think that you need network access! As a safety precaution, remove all the capabilities in you manifest! I normally have a little batch file for each of my projects that just checks what capabilities my application require using CapabilityDetection.exe (Part of the SDK)</p>
<p>And that is it!!!</p>]]></content></entry><entry><title>Installing Mango on your Samsung Taylor</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/installing-mango-on-your-samsung-taylor.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/installing-mango-on-your-samsung-taylor.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:30:40Z</published><updated>2011-09-28T08:30:40Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><img src="http://i.i.com.com/cnwk.1d/i/tim//2010/07/19/DSC_0048_540x359.JPG" alt="Video" width="540" height="359" /></p>
<p>&nbsp;</p>
<p>Just before WP7 was launched some developers received pre-production devices, either Samsung Taylors or LG (something)&hellip; These devices were just developer devices and was never designed to receive updates, here is the official MS statement:</p>
<blockquote>
<p>The Samsung Taylor was intended for pre-production use only.<br />They were updated to an RTM release at end of Beta to bridge the gap between end of Beta and general availability of production phones.</p>
<br />
<p>I know of no plans to release any further update for the Samsung Taylor devices</p>
</blockquote>
<p>&nbsp;</p>
<p>Well, with a little bit of ChevronWP7 magic, I managed to get Mango installed on my device, here is the steps I followed:</p>
<p>1. First, I used the &ldquo;bad&rdquo; ChevronWP7.Updater.exe to get my device from 7004 to NoDo (7390)</p>
<p><a title="So who wants Windows Phone Updates, like right now-" href="http://blog.walshie.me/2011/04/04/so-who-wants-windows-phone-updates-like-right-now">So who wants Windows Phone Updates, like right now-</a></p>
<p>&nbsp;</p>
<p><img src="http://wpfanboy.com/wp-content/uploads/2011/04/20b9235446pdater.png.png" alt="" /></p>
<p>&nbsp;</p>
<p>2. Then I used the ChevronWP7 fix to get it back on the official release path</p>
<p><a title="&ldquo;Walshed&rdquo; Phone Support Tool- official fix to get you back on track - Updated!" href="http://blog.walshie.me/walshed-phone-support-tool-official-fix-to-get-you-back-on-track">&ldquo;Walshed&rdquo; Phone Support Tool- official fix to get you back on track - Updated!</a></p>
<p><a href="http://blog.walshie.me/files/WPST_634409698362927500.png"><img title="WPST" src="http://blog.walshie.me/files/WPST_thumb_634409698385115000.png" border="0" alt="WPST" width="567" height="515" /></a></p>
<p>3. Now that the phone is on NoDo, I used a cool tool by one of the XDA geniuses to get the phone provision so I can receive the Mango update</p>
<p><a title="http://forum.xda-developers.com/showthread.php?t=1149265" href="http://forum.xda-developers.com/showthread.php?t=1149265">http://forum.xda-developers.com/showthread.php?t=1149265</a></p>
<p>&nbsp;</p>
<p><img src="https://byfiles.storage.live.com/y1p4Wl4ix9uzpdaf9AEmpm2cLgu_R70b0bsxwuJr3HDcQ-coaMjxvijj5aiqCK_y7cv7jWKnRSWTaE/Provision.png?psid=1" alt="Provision" /></p>
<p>4. And then I updated my phone using Zune (Note that at this stage I still use the normal Zune and not the special 4.8 &ndash; although I think it will work with that version too)</p>
<p>That's it, my device is now running WP7 Mango!</p>
<p>DISCLAIMER: I TAKE NO RESPONSIBILITY IF YOU BRICK YOUR PHONE!</p>]]></content></entry><entry><title>AgFx hidden gem - PhoneApplicationFrameEx</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/agfx-hidden-gem-phoneapplicationframeex.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/agfx-hidden-gem-phoneapplicationframeex.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:29:42Z</published><updated>2011-09-28T08:29:42Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p><a href="http://www.rudigrobler.net/agfx-makes-writing-data-heavy-windows-phone-applications-child-s-play">As I mentioned in a earlier post</a>, I stared using AgFx and it&rsquo;s made writing reliable WP7 applications easier&hellip; One of the hidden gems of this package is the AgFx.Controls.Phone.dll library! It contains PhoneApplicationFrameEx&hellip; Just replace your old RootFrame with this new PhoneApplicationFrameEx</p>
<p>
<pre class="brush: csharp;">private void InitializePhoneApplication()
{    
    if (phoneApplicationInitialized)        
        return;    

    // Create the frame but don't set it as RootVisual yet; this allows the splash    
    // screen to remain active until the application is ready to render.    
    RootFrame = new PhoneApplicationFrameEx();    
    RootFrame.Navigated += CompleteInitializePhoneApplication;    
    
    // Handle navigation failures    
    RootFrame.NavigationFailed += RootFrame_NavigationFailed;    

    // Ensure we don't initialize again    
    phoneApplicationInitialized = true;
}
</pre>
</p>
<p>PS. this is in you App.xaml.cs</p>
<p>Next, a little setup</p>
<p><pre class="brush: csharp;">
Grid headerLayout = new Grid();

ProgressBar pb = new ProgressBar 
    {     
        Height = 23,     
        VerticalAlignment = VerticalAlignment.Top,     
        Background = new SolidColorBrush() 
    };
headerLayout.Children.Add(pb);

RootFrame.HeaderContent = headerLayout;
Binding pbBinding = new Binding(&quot;IsLoading&quot;) 
    {         
        Source = DataManager.Current 
    };
pb.SetBinding(ProgressBar.IsIndeterminateProperty, pbBinding);
</pre></p>
<p>This code binds a progress bar to the IsLoading property on AgFx&rsquo;s DataManager and adds it to the header of this new PhoneApplicationFrameEx</p>
<p>Now, you might wonder why this piece of code is cool? Every time you download data using AgFx (no mater on which page you are), a progress bar will be displayed on top of you page indicating to the user that data is being downloaded/parsed!</p>
<p>And you don&rsquo;t have to do a thing&hellip; Cool, huh?</p>]]></content></entry><entry><title>Screenshot Tools for WP7</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/screenshot-tools-for-wp7.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/screenshot-tools-for-wp7.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:28:53Z</published><updated>2011-09-28T08:28:53Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>A couple of people have been asking me what I use to take my screenshot (both for marketplace and website/marketing)&hellip; the best tool I have found is Screenshot Tool by @smixx</p>
<p>&nbsp;</p>
<p><a href="http://yydgew.bay.livefilestore.com/y1pKNnSJ-XdYYvnX0_G7sCRM7ZMregV9km4lClAGDFe49lsUHrvqaV0frE-9IyuFtiknkPXBGQZLf5VffjWtnRPLzKLDxnyhfNd/ScreenshotTool.png?psid=1"><img style="background-image: none; padding-left: 0; padding-right: 0; padding-top: 0; border: 0;" src="http://yydgew.bay.livefilestore.com/y1pKNnSJ-XdYYvnX0_G7sCRM7ZMregV9km412XZjWMScE9iQRuuzO4oRB4X_9DagPYu45tY2POtYqP_BGCIMu2CUwhwd0Fe31vc/ScreenshotTool.png?psid=1" border="0" alt="" width="485" height="300" /></a></p>
<p>&nbsp;</p>
<p>This tool allows me to take screen shots for marketplace (already resized to 800x480) or marketing shots with or without a skin on them! Have a look at the following screenshot as a example:</p>
<p>&nbsp;</p>
<p><a href="http://yydgew.bay.livefilestore.com/y1pEB10tLiD9zcxwrE3vwTF3ch6LADpo8OcFa1OhSCqwxH55S0-3gRYzWhkJwJbte7JrEJSd1bQ18avKQvhfVxoNg7wEvXK-EKD/Brew%20Master_6-8-2011_9.37.55.900.png?psid=1"><img style="background-image: none; padding-left: 0; padding-right: 0; padding-top: 0; border: 0;" src="http://yydgew.bay.livefilestore.com/y1pEB10tLiD9zcxwrE3vwTF3ch6LADpo8Oc05DfqW-POY_Rw9o9DZCN74MY5ld89ifoV1cjQ4VnRBKhK5E_11Jb6MzNPT1XPkOi/Brew%20Master_6-8-2011_9.37.55.900.png?psid=1" border="0" alt="" width="251" height="450" /></a></p>
<p>&nbsp;</p>
<p>In this screenshot I used the HTC HD7 as the default skin&hellip;</p>
<p>&nbsp;</p>
<p>For the latest version, go to <a href="http://www.innovativetechguy.com/">Cory Smith</a>&rsquo;s website (AKA <a href="http://twitter.com/#!/smixx">@smixx</a>)</p>]]></content></entry><entry><title>Duke Nukem Soundboard now available for Windows Phone!</title><category term="Windows Phone"/><id>http://www.rudigrobler.net/blog/2011/9/28/duke-nukem-soundboard-now-available-for-windows-phone.html</id><link rel="alternate" type="text/html" href="http://www.rudigrobler.net/blog/2011/9/28/duke-nukem-soundboard-now-available-for-windows-phone.html"/><author><name>Rudi Grobler</name></author><published>2011-09-28T08:27:52Z</published><updated>2011-09-28T08:27:52Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Duke Nukem Forever is FINALLY here&hellip; And it looks AWESOME!!! Here is the trailer:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/wVuuyRGB_BA" frameborder="0" allowfullscreen></iframe></p>
<p>If you&rsquo;re a huge Duke fan (like me) and just love the voice taunts, install the Duke Nukem Soundboard! Its packed with some of his best taunts&hellip;</p>
<p><a href="http://yydgew.bay.livefilestore.com/y1pJb2skWJHdJe_0ERJ29NMpyml5NVcETLYGZF_hEMRDVtTcMRr03RyHRHcU-UM_F_vJ-i2jd-iBRw36L82hn6LiD-uQ798WJFE/Duke%20Nukem%20Soundboard_6-8-2011_9.39.33.596.png?psid=1"><img style="background-image: none; padding-left: 0; padding-right: 0; padding-top: 0; border-width: 0;" src="http://yydgew.bay.livefilestore.com/y1pzu4GTwBog0l2fWmByG__TTk8B17rYyB1O3LVfvaoxp7ff4Xt3Uilv_KibQ65Nfy6wXZmiyAXdwfRrrZqqKoF6PjxXVg55Kf9/Duke%20Nukem%20Soundboard_6-8-2011_9.39.33.596.png?psid=1" border="0" alt="" width="240" height="450" /></a></p>
<p>Click <a href="http://www.rudigrobler.net//navigate/?appID=15ee6e9a-4e8f-e011-986b-78e7d1fa76f8">here</a> to download</p>]]></content></entry></feed>
