<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jayway Team Blog &#187; windows phone</title>
	<atom:link href="http://blog.jayway.com/tag/windows-phone/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jayway.com</link>
	<description>Sharing Experience</description>
	<lastBuildDate>Sat, 11 Feb 2012 10:33:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WebClient/WebRequest threading untangled</title>
		<link>http://blog.jayway.com/2012/01/18/webclientwebrequest-threading-untangled/</link>
		<comments>http://blog.jayway.com/2012/01/18/webclientwebrequest-threading-untangled/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 06:39:00 +0000</pubDate>
		<dc:creator>Andreas Hammar</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=11865</guid>
		<description><![CDATA[WebRequest and its baby sister WebClient behave differently regarding what thread they return on. This is a short post to really clarify what returns where. Summary WebClient will always return on the UI thread if called from the UI thread WebRequest will always return on a background thread The investigation To test this I created [...]]]></description>
			<content:encoded><![CDATA[<p>WebRequest and its baby sister WebClient behave differently regarding what thread they return on. This is a short post to really clarify what returns where.</p>
<h2>Summary</h2>
<ul>
<li>WebClient will always return on the UI thread if called from the UI thread </li>
<li>WebRequest will always return on a background thread </li>
</ul>
<h2>The investigation</h2>
<p>To test this I created a super-simple app that fetches some stuff using WebClient and WebRequest, from the UI and from a background worker.</p>
<p>The code:</p>
<pre class="brush: csharp;">

public partial class MainPage : PhoneApplicationPage
{
    private readonly int _uiThreadId = Thread.CurrentThread.ManagedThreadId;

    // Constructor
    public MainPage()
    {
        InitializeComponent();
    }

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        WriteThreadInfo(&quot;UI&quot;);

        Dispatcher.BeginInvoke(() =&gt; WriteThreadInfo(&quot;dispatcher&quot;));

        RunUiRequests();

        LaunchWorkerRequests();

        base.OnNavigatedTo(e);
    }

    private void RunUiRequests()
    {
        var request = WebRequest.CreateHttp(&quot;http://www.jayway.com&quot;);
        request.BeginGetResponse(RequestCallbackFromUI, null);

        var client = new WebClient();
        client.DownloadStringCompleted += client_DownloadFromUIStringCompleted;
        client.DownloadStringAsync(new Uri(&quot;http://www.jayway.com&quot;, UriKind.RelativeOrAbsolute));
    }

    private void LaunchWorkerRequests()
    {
        var worker = new BackgroundWorker();
        worker.DoWork += (sender, ex) =&gt;
                                {
                                    Thread.Sleep(2000);

                                    WriteThreadInfo(&quot;worker&quot;);

                                    var request = WebRequest.CreateHttp(&quot;http://www.jayway.se&quot;);
                                    request.BeginGetResponse(RequestCallbackFromWorker, null);

                                    var client = new WebClient();
                                    client.DownloadStringCompleted += client_DownloadFromWorkerStringCompleted;
                                    client.DownloadStringAsync(new Uri(&quot;http://www.jayway.com&quot;, UriKind.RelativeOrAbsolute));

                                };
        worker.RunWorkerAsync();
    }

    private void client_DownloadFromWorkerStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        WriteThreadInfo(&quot;webclient from worker&quot;);
    }

    private void RequestCallbackFromWorker(IAsyncResult ar)
    {
        WriteThreadInfo(&quot;webrequest from worker&quot;);
    }

    void client_DownloadFromUIStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        WriteThreadInfo(&quot;webclient from UI&quot;);
    }

    private void RequestCallbackFromUI(IAsyncResult ar)
    {
        WriteThreadInfo(&quot;webrequest from UI&quot;);
    }

    private void WriteThreadInfo(string threadName)
    {
        var id = Thread.CurrentThread.ManagedThreadId;
        Debug.WriteLine(&quot;{0,-28} Thread is {1} ({2})&quot;,
                        threadName,
                        id,
                        (id == _uiThreadId) ? &quot;UI&quot; : &quot;background&quot;);
    }
}

&#160;
</pre>
<p>And one set of results from running this is: </p>
<p><font face="Courier New">UI&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Thread is 257753342 (UI)<br />
    <br />dispatcher&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Thread is 257753342 (UI)</p>
<p>webrequest from UI&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Thread is 255066402 (background)</p>
<p>webclient from UI&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Thread is 257753342 (UI)</p>
<p>worker&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Thread is 254411058 (background)</p>
<p>webclient from worker&#160;&#160;&#160;&#160;&#160;&#160;&#160; Thread is 236257614 (background)</p>
<p>webrequest from worker&#160;&#160;&#160;&#160;&#160;&#160; Thread is 255066402 (background)</font></p>
<p>As you can see, the WebClient returns on the UI thread when called from the UI thread, but when called from the worker thread – it returns on a background thread.</p>
<p>I hope you feel enlightened – I do <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/wlEmoticon-smile.png" /></p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:41b83fb3-a9dc-43c3-8b7d-c510f1634b86" class="wlWriterEditableSmartContent">
<p> <a href="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/WebRequestThreadingTestApp1.zip" target="_blank">Download source here</a></p>
</div>
<p><font face="Courier New">&#160;</font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2012/01/18/webclientwebrequest-threading-untangled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crafting the &#216;redev Windows Phone app live tile</title>
		<link>http://blog.jayway.com/2012/01/09/crafting-the-redev-windows-phone-app-live-tile/</link>
		<comments>http://blog.jayway.com/2012/01/09/crafting-the-redev-windows-phone-app-live-tile/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 21:46:11 +0000</pubDate>
		<dc:creator>Andreas Hammar</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=11731</guid>
		<description><![CDATA[In November last year, it was once again time for the 2011 Øredev developer conference. For the 2010 conference, we at Jayway created a schedule app with a social twist – a puzzle game that you played by talking to other participants. When updating the app this year, we decided to make use of the [...]]]></description>
			<content:encoded><![CDATA[<p>In November last year, it was once again time for the 2011 <a href="http://oredev.org/2011">Øredev</a> developer conference. For the 2010 conference, we at Jayway created a schedule app with a social twist – a puzzle game that you played by talking to other participants. When updating the app this year, we decided to make use of the live tile feature on Windows Phone. We were happy with the results and the added user value, and would like to share how we did it.</p>
<h2>Deciding what to show</h2>
<p>Since the app was going to be used throughout the conference, showing something about what’s coming up would be nice. At first we were thinking about showing upcoming session titles with speaker names etc – maybe one randomized at a time. But then, we ended up with something more personal and more graphical – thumbnails of upcoming speakers. Here’s what the tile looks like:</p>
<p align="center">front:  <a href="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_before_front.png" rel="lightbox"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="tile_before_front" src="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_before_front_thumb.png" alt="tile_before_front" width="177" height="177" border="0" /></a>         back: <a href="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_before_back.png" rel="lightbox"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="tile_before_back" src="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_before_back_thumb.png" alt="tile_before_back" width="176" height="177" border="0" /></a></p>
<p align="left">Hence the front of the tile shows the speakers, and the back of the tile shows at what time the next sessions start. Instead of just using the back of the tile – we opted for giving the user as immediate information as possible – so whenever he/she would look at their start screen – something useful would be there, not just the app logo. This we think is a viable solution for this kind of short-term usage app, but maybe is not suitable for a lifetime app, like your bank, that you will (hopefully) keep forever and will not use every 5 minutes.</p>
<p align="left">We put a finale in there as well; after the conference was over – the tile changed to:</p>
<p align="center">front: <a href="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_original_tile.png" rel="lightbox"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="tile_original_tile" src="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_original_tile_thumb.png" alt="tile_original_tile" width="178" height="178" border="0" /></a>         back: <a href="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_after_back.png" rel="lightbox"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="tile_after_back" src="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/tile_after_back_thumb.png" alt="tile_after_back" width="177" height="176" border="0" /></a></p>
<p align="left">Nice huh? When the conference is over – the conference logo comes back as the app’s front tile and a nice message shows on the back. Maybe the message is a bit too much, but I think it’s a nice pointer to un-pin the app from your start screen. An app should be on the start screen for a reason– and this conference app does not really belong there once the conference is over.</p>
<h2>Install size vs bandwidth usage</h2>
<p>We bundled all speaker images with the app. This creates a larger file to install, but gives less data to download when updating the tile, and less hassle if you compare with downloading and caching. With lots of people coming from abroad, we thought it would be better to rely the dodgy conference wireless <em>once</em> during installation instead of on each tile update.</p>
<h2>Implementing the tile</h2>
<p>The of-the-shelf solution for updating a tile is very well documented here: <a href="http://msdn.microsoft.com/en-us/library/hh202979(v=vs.92).aspx">updating the tile</a> and <a href="http://msdn.microsoft.com/en-us/library/hh202941(v=vs.92).aspx">running in the background</a>. What can be a bit tricky is creating a fully customized tile, which is done by rendering a background image for the tile using WriteableBitmap. The blog post <a href="http://http://blogs.msdn.com/b/johnalioto/archive/2011/08/30/10203141.aspx">Customize a Windows Phone 7 Live Tile by John P Alioto</a> helped me on the way.</p>
<p>The OnInvoke method first checks whether to reset the tile and remove the background agent, then launches the canvas setup on the current dispatcher. When not running on the dispatcher, cross threading issues keep popping up.</p>
<pre class="brush: csharp;">protected override void OnInvoke(ScheduledTask task)
{
    if (CheckConferenceEndedAndDisableAgent(task))
    {
        NotifyComplete();
        return;
    }

    Deployment.Current.Dispatcher.BeginInvoke(SetupCanvas);
}

private bool CheckConferenceEndedAndDisableAgent(ScheduledTask task)
{
    if (!ConferenceTimeCalculator.HasConferenceEnded())
        return false;

    var tileData = new StandardTileData
                       {
                           BackgroundImage = new Uri("Background.png", UriKind.RelativeOrAbsolute),
                           Title = APP_TITLE,
                           BackTitle = "welcome back!",
                           BackContent = APP_TITLE + " is over"
                       };
    var tile = ShellTile.ActiveTiles.First();
    tile.Update(tileData);

    Debug.WriteLine("conference has ended, removing scheduled task");
    ScheduledActionService.Remove(task.Name);
    return true;
}

private void SetupCanvas()
{
    _canvas = new Canvas
                  {
                      Height = TILE_SIDE,
                      Width = TILE_SIDE
                  };

    var bmp = new BitmapImage
                  {
                      CreateOptions = BitmapCreateOptions.None
                  };

    bmp.ImageOpened += OnBackgroundBmpOpened;
    bmp.UriSource = new Uri("Background.png", UriKind.RelativeOrAbsolute);
}</pre>
<p>as you can see, the SetupCanvas only opens the background image then returns. Since the original tile file Background.png is a content file – we have to wait for the ImageOpened event to be raised before trying to render it – otherwise the result will only be black.</p>
<p>So, when the image is opened, we open all the images for all the speakers:</p>
<pre class="brush: csharp;">
private void OnBackgroundBmpOpened(object sender, RoutedEventArgs e)
{
    Debug.WriteLine("background opened");
    var image = new Image
                    {
                        Source = (BitmapImage)sender,
                        Width = 173,
                        Height = 173
                    };

    Canvas.SetLeft(image, 0);
    Canvas.SetTop(image, 0);
    _canvas.Children.Add(image);

    Deployment.Current.Dispatcher.BeginInvoke(LaunchOpenOfAllSpeakerImages);
}

public void LaunchOpenOfAllSpeakerImages()
{
    _nbrOfSpeakers = _speakers.Count;
    Debug.WriteLine("starting tile update for {0} speakers",
                    _nbrOfSpeakers);
    foreach (var speaker in _speakers)
        GetSpeakerBitmap(speaker);
}

private void GetSpeakerBitmap(ISpeaker speaker)
{
    var bmp = new BitmapImage { CreateOptions = BitmapCreateOptions.None };
    bmp.ImageOpened += OnSpeakerBmpOpened;

    //live
    //bmp.UriSource = new Uri(speaker.ImageUri, UriKind.RelativeOrAbsolute);

    //cached
    bmp.UriSource = new Uri("/images/speakers/" + speaker.Id + ".jpg", UriKind.RelativeOrAbsolute);
}

private void OnSpeakerBmpOpened(object sender, RoutedEventArgs e)
{
    Debug.WriteLine("image opened");
    var mySpeakerIndex = _nbrOfSpeakers;
    _nbrOfSpeakers -= 1;

    AddImageToCanvas(mySpeakerIndex, (BitmapImage)sender);

    if (_nbrOfSpeakers == 0)
        RenderComposedBitmap();
}

private void AddImageToCanvas(int mySpeakerIndex, BitmapImage bitmapImage)
{
    var image = new Image
                    {
                        Source = bitmapImage,
                        Width = 57,
                        Height = 57,
                        Stretch = Stretch.UniformToFill,
                        Opacity = 1
                    };

    _canvas.Children.Add(image);
    Canvas.SetLeft(image, 58 * (mySpeakerIndex % 3));
    Canvas.SetTop(image, 58 * (mySpeakerIndex / 3));
}</pre>
<p>and finally, when all images have been opened, we render the image and update the tile:</p>
<pre class="brush: csharp;">private void RenderComposedBitmap()
{
    Debug.WriteLine("rendering composed bitmap");
    var writeableBitmap = new WriteableBitmap(173, 173);

    writeableBitmap.Render(_canvas, null);
    writeableBitmap.Invalidate();

    WriteJpg(writeableBitmap);
    UpdateTile();
}

private void UpdateTile()
{
    var tile = ShellTile.ActiveTiles.First();
    var data = new StandardTileData
                   {
                       Title = "",
                       BackTitle = APP_TITLE,
                       BackgroundImage = new Uri("isostore:/" + TILE_BACKGROUND_IMAGE_URI, UriKind.RelativeOrAbsolute),
                       BackContent = "next sessions: " + _sessionstart
                   };
    tile.Update(data);
    NotifyComplete();
}</pre>
<p>The Control Canvas is used for layout of the tile. As guys who love Grid’s and dynamic layout – we first tried using a Grid with three columns and three rows, but could not get the images to render correctly. During a Windows Phone Code Camp at Jayway, <a href="http://buzzfrog.blogs.com/">Dag König</a> nicely pointed us towards the Canvas which he had used in his <a href="http://www.windowsphone.com/sv-se/apps/d0bd170e-ce51-4dca-97ef-1dd18ab9abbe">Month Tile</a> app – works beautifully. It’s probably just some Measure/Arrange-calls together with an Invalidate to get a Grid-powered tile to render correctly, left as exercise for the reader <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="http://blog.jayway.com/wordpress/wp-content/uploads/2012/01/wlEmoticon-winkingsmile.png" alt="Winking smile" /></p>
<p>That’s it! Hope this inspires or helps someone out there. L8r g8rs!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2012/01/09/crafting-the-redev-windows-phone-app-live-tile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP7 app update and NeutralResourcesLanguage</title>
		<link>http://blog.jayway.com/2011/11/10/wp7-app-update-and-neutralresourceslanguage/</link>
		<comments>http://blog.jayway.com/2011/11/10/wp7-app-update-and-neutralresourceslanguage/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 19:23:24 +0000</pubDate>
		<dc:creator>Andreas Hammar</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[marketplace]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=10846</guid>
		<description><![CDATA[The Windows Phone Marketplace was updated with new features in July 2011, one has to do with default language. The previous process to submit an app required you to define the default language when submitting the app, the new version checks the default language in the uploaded xap. The problem An app created before July [...]]]></description>
			<content:encoded><![CDATA[<p>The Windows Phone Marketplace was updated with new features in July 2011, one has to do with default language. The previous process to submit an app required you to define the default language when submitting the app, the new version checks the default language in the uploaded xap.</p>
<h2>The problem</h2>
<p>An app created before July 18th 2011 will not have the AssemblyInfo attribute NeutralResourcesLanguage and submitting an update to this app will give you the error:</p>
<p><font face="Courier New">Error 2003: The [NeutralResourceLanguage] attribute is missing on the entry assembly.</font></p>
<h2>The fix</h2>
<p>So, the fix for this is simple – add the attribute in AssemblyInfo.cs. (can also be done through selecting in a drop down in app properties)</p>
<p><font face="Courier New">[assembly: NeutralResourcesLanguage(&quot;en-us&quot;)]</font></p>
<h2>The quirk</h2>
<p>English it not always English. There is something called location groups. If you’re lucky – you’ll now pass through submission. If you’re not, you’ll end up with:</p>
<p><font face="Courier New">Error 1047: An update cannot support fewer languages than the previous app instance supported.</font></p>
<p>Whoah, what is this? For me, this was because I had stated the language as <strong>English (International)</strong> when submitting the first time. The rules are:</p>
<table border="0" cellspacing="0" cellpadding="5" width="600">
<tbody>
<tr>
<td valign="top" width="300"><strong>Stated on first submit</strong></td>
<td valign="top" width="300"><strong>Needed in AssemblyInfo.cs</strong></td>
</tr>
<tr>
<td valign="top" width="300">English (International)</td>
<td valign="top" width="300">“en”</td>
</tr>
<tr>
<td valign="top" width="300">English</td>
<td valign="top" width="300">“en-us” or “en-ca”</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>I learned this from the MSDN forum page <a href="http://http://forums.create.msdn.com/forums/t/87638.aspx">helpful tips on language processes during app submission</a>. To quote: <em>If the parent instance was marked as “English (International)”, you need to use [NeutralResourcesLanguage(“en”)], if it was “English”, use [NeutralResourcesLanguage(“en-US”)] or [NeutralResourcesLanguage(“en-CA”)], in other cases use two-letter language name.</em></p>
<h2>Summary</h2>
<p>My final statement ended up as:</p>
<p><font face="Courier New">[assembly: NeutralResourcesLanguage(&quot;en-us&quot;)]</font></p>
<p>This bit me when submitting updates – I really hope this helps you avoid or find the problem quickly <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.jayway.com/wordpress/wp-content/uploads/2011/11/wlEmoticon-smile.png" /></p>
<p>Bye!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2011/11/10/wp7-app-update-and-neutralresourceslanguage/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WP7 Marketplace Beta &#8211; new app downloadable delay</title>
		<link>http://blog.jayway.com/2011/11/03/wp7-marketplace-beta-new-app-downloadable-delay/</link>
		<comments>http://blog.jayway.com/2011/11/03/wp7-marketplace-beta-new-app-downloadable-delay/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 07:06:47 +0000</pubDate>
		<dc:creator>Andreas Hammar</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[marketplace]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=10754</guid>
		<description><![CDATA[Have you seen the new (since fall 2011) ways to publish a Windows Phone app to Marketplace? In addition to regular publishing, you can now publish as private beta or targeted. Neither will make the app discoverable in the Marketplace, Beta is time limited and does not include the full certification requirements. MSDN has a [...]]]></description>
			<content:encoded><![CDATA[<p>Have you seen the new (since fall 2011) ways to publish a Windows Phone app to Marketplace? In addition to regular publishing, you can now publish as <em>private beta </em>or <em>targeted</em>. Neither will make the app discoverable in the Marketplace, Beta is time limited and does not include the full certification requirements. MSDN has a really good <a href="http://http://msdn.microsoft.com/en-us/library/hh334586(v=VS.92).aspx">Marketplace submission comparison: Application Distribution Options.</a></p>
<p>Now, onto the topic of the hour: <strong>Beta submission</strong>.</p>
<h2></h2>
<h2>Empirical timing results</h2>
<p>I have during the past months submitted numerous apps to the Marketplace as beta – and come to the conclusion: (this probably will just be true for the near future AND the region I’m in – Sweden)</p>
<p>1) Beta submission takes <strong>4 hours </strong>to complete – the app then becomes “published”</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2011/11/image.png" rel="lightbox"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.jayway.com/wordpress/wp-content/uploads/2011/11/image_thumb.png" width="575" height="291" /></a></p>
<p>2) It takes another <strong>8 hours</strong> before the app becomes available for download!</p>
<h2>Error when trying to download right after submission completed</h2>
<p>Before the 8 hours, hitting the deep link gives Marketplace error: 805a0194. An explanation of the error can be found in this <a href="http://stackoverflow.com/questions/7777822/marketplace-windows-phone-beta-test-error-code-805a0194/7777955#7777955">StackOverflow response</a>: it’s a 404 – not found.</p>
<p>Why is it like this? I don’t know. Probably propagation of the xap package onto download servers. Annoying – but more bearable once you see the system in it.</p>
<p>Go publish those apps!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2011/11/03/wp7-marketplace-beta-new-app-downloadable-delay/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Implicit styles in Windows Phone 7</title>
		<link>http://blog.jayway.com/2011/10/18/implicit-styles-in-windows-phone-7/</link>
		<comments>http://blog.jayway.com/2011/10/18/implicit-styles-in-windows-phone-7/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 13:56:02 +0000</pubDate>
		<dc:creator>Andreas Hammar</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[blend 4]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=10574</guid>
		<description><![CDATA[Coming from WPF and Silverlight for the desktop into Silverlight for Windows Phone, which is Silverlight 3, can leave you longing for some features – one that I missed was Implicit Styles. But, with the Mango (7.1) release of WP7 we now have Silverlight 4! What are implicit styles? A style that has a target [...]]]></description>
			<content:encoded><![CDATA[<p>Coming from WPF and Silverlight for the desktop into Silverlight for Windows Phone, which is Silverlight 3, can leave you longing for some features – one that I missed was <strong>Implicit Styles.</strong> But, with the Mango (7.1) release of WP7 we now have Silverlight 4!</p>
<h2>What are implicit styles?</h2>
<p>A style that has a target type but no x:Key is treated as implicit and will be applied to all descendant elements in the visual tree.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://t0.gstatic.com/images?q=tbn:ANd9GcTVrpOjk-hFI1bx6K86uENmtTM9dPpFmeHJbrwnKF3WDj8-rLNX" /></p>
<h2>Why should I use an implicit style?</h2>
<p>I think it’s very nice to not have to set the style on each and every control in a section of your app that you want exactly the same look on. Instead just create an implicit style in one of the parent elements and let the good times roll <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/wlEmoticon-smile.png" /></p>
<h2>What does an implicit style look like in XAML?</h2>
<pre class="brush: xml; first-line: 2;">&lt;Grid Grid.Row=&quot;1&quot; VerticalAlignment=&quot;Top&quot;&gt;
    &lt;Grid.RowDefinitions&gt;
        &lt;RowDefinition/&gt;
        &lt;RowDefinition/&gt;
        &lt;RowDefinition/&gt;
    &lt;/Grid.RowDefinitions&gt;
    &lt;Grid.Resources&gt;
        <strong>&lt;Style TargetType=&quot;TextBlock&quot;
               BasedOn=&quot;{StaticResource PhoneTextNormalStyle}&quot;&gt;</strong>
            &lt;Setter Property=&quot;FontSize&quot; Value=&quot;21&quot;/&gt;
            &lt;Setter Property=&quot;Foreground&quot; Value=&quot;Pink&quot;/&gt;
        &lt;/Style&gt;
    &lt;/Grid.Resources&gt;
    &lt;TextBlock Grid.Row=&quot;0&quot; Text=&quot;styles&quot;/&gt;
    &lt;TextBlock Grid.Row=&quot;1&quot; Text=&quot;blend&quot;/&gt;
    &lt;TextBlock Grid.Row=&quot;2&quot; Text=&quot;wow&quot;/&gt;
&lt;/Grid&gt;</pre>
<p>the above XAML will produce:</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/image.png" rel="lightbox"><img style="background-image: none; border-right-width: 0px; margin: 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://blog.jayway.com/wordpress/wp-content/uploads/2011/10/image_thumb.png" width="83" height="106" /></a></p>
<p>But if we change the style to having a key:</p>
<pre class="brush: xml; first-line: 2;">&lt;Style <strong>x:Key=&quot;PinkStyle&quot;</strong> TargetType=&quot;TextBlock&quot;
BasedOn=&quot;{StaticResource PhoneTextNormalStyle}&quot;&gt;</pre>
<p>we instead get:</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/image1.png" rel="lightbox"><img style="background-image: none; border-right-width: 0px; margin: 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://blog.jayway.com/wordpress/wp-content/uploads/2011/10/image_thumb1.png" width="80" height="104" /></a></p>
<p>so – it has to be an “anonymous” style.</p>
<h2>It’s all about looks - applying the style e.v.e.r.y.w.h.e.r.e</h2>
<p>So – what will happen if we put the style in App.xaml? You guessed it – visual tree propagation galore! All your textblocks will get the style.</p>
<pre class="brush: xml; first-line: 2;">&lt;Application.Resources&gt;
    &lt;Style …&gt;
        …
    &lt;/Style&gt;
&lt;/Application.Resources&gt;</pre>
<p>&#160;</p>
<p><img src="http://img.thesun.co.uk/multimedia/archive/00766/SNA2708Z5-682_766323a.jpg" /></p>
<p>There you go! I don’t use this all the time – but it can make the XAML nice and tidy if you are repeating many controls on a page that should share the same looks.</p>
<p>Happy styling!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2011/10/18/implicit-styles-in-windows-phone-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fixing WP7 app not starting after project rename</title>
		<link>http://blog.jayway.com/2011/10/12/fixing-wp7-app-not-starting-after-project-rename/</link>
		<comments>http://blog.jayway.com/2011/10/12/fixing-wp7-app-not-starting-after-project-rename/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 19:43:04 +0000</pubDate>
		<dc:creator>Andreas Hammar</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=10396</guid>
		<description><![CDATA[If your Windows Phone 7 project isn’t starting at all – you’re not even hitting App.xaml.cs, you’ve probably renamed the app project. Fix: Set the startup object on the app project’s properties page In the .csproj file, this corresponds to the SilverlightAppEntry element: &#60;SilverlightAppEntry&#62;PhotoDiary.App&#60;/SilverlightAppEntry&#62; I would call it a bug, that you cannot rename a [...]]]></description>
			<content:encoded><![CDATA[<p>If your Windows Phone 7 project isn’t starting at all – you’re not even hitting App.xaml.cs, you’ve probably renamed the app project.</p>
<p><strong>Fix</strong>: Set the <em>startup object</em> on the app project’s properties page</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/startup_object.jpg" rel="lightbox"><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="startup_object" border="0" alt="startup_object" src="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/startup_object_thumb.jpg" width="484" height="202" /></a></p>
<p>In the .csproj file, this corresponds to the <em>SilverlightAppEntry </em>element:</p>
<pre class="brush: xml; first-line: 1;">

&lt;SilverlightAppEntry&gt;PhotoDiary.App&lt;/SilverlightAppEntry&gt;

</pre>
<p>I would call it a bug, that you cannot rename a project and have the <em>SilverlightAppEntry</em> update accordingly. But luckily, the work-around is simple. </p>
<p>Have a nice day!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2011/10/12/fixing-wp7-app-not-starting-after-project-rename/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WP7: Link in text with RichTextBox on mango</title>
		<link>http://blog.jayway.com/2011/10/05/wp7-link-in-text-with-richtextbox-on-mango/</link>
		<comments>http://blog.jayway.com/2011/10/05/wp7-link-in-text-with-richtextbox-on-mango/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 08:09:33 +0000</pubDate>
		<dc:creator>Håkan Reis</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[mango]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[wp7]]></category>
		<category><![CDATA[wp7.5]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/2011/10/05/wp7-link-in-text-with-richtextbox-on-mango/</guid>
		<description><![CDATA[While the first iteration of Windows Phone was based on Silverlight 3 the upcoming release, mango, is based on Silverlight 4. That means a lot of new functionality like implicit styling and and rich text controls. Especially the last was interesting as it gives you a lot more control over the displayed text. What I [...]]]></description>
			<content:encoded><![CDATA[<p>While the first iteration of Windows Phone was based on Silverlight 3 the upcoming release, mango, is based on Silverlight 4. That means a lot of new functionality like implicit styling and and rich text controls. Especially the last was interesting as it gives you a lot more control over the displayed text. What I was looking for, was to place a link in the text and have it open a web page from the application. If you want to get to the core just jump to the end of the post but first a bit of background on the rich text box.</p>
<p><strong>About the rich text box</strong></p>
<p>In mango there is a control called <strong>RichTextBox,</strong> that boost a lot of functionality like right to left text and inline formatting. I’m going to focus on adding an inline link to an external web page, as for example in a tweet. Before mango this wasn’t possible to do in a text box. There was workarounds like using the wrap panel from the <a title="Silverlight toolkit for Windows Phone" href="http://silverlight.codeplex.com/">Silverlight for Windows Phone toolkit</a> or write your own control and add the text word by word). </p>
<p>The <em>RichTextBox</em> consists of a bunch of child elements and a set of properties that handles text flow and overall style. In the textbox you will add <em>Paragraphs</em> of text that can be broken down into text parts with attributes like bold, italic, Inline images, etc. There is also the <em>Run</em> that can have it’s on style when it comes to font, size and so on. That way it’s quite easy to build up a complex text. However, there is no support for it in blend so you have to dig into the XAML or code to get what you want:</p>
<pre class="brush: xml;">&lt;RichTextBox&gt;
    &lt;Paragraph&gt;
        The quick &lt;Bold&gt;brown&lt;/Bold&gt;
        fox &lt;Italic&gt;jumped&lt;/Italic&gt;
        over the &lt;Underline&gt;lazy&lt;/Underline&gt;
        dog.
    &lt;/Paragraph&gt;
&lt;/RichTextBox&gt;</pre>
<p>And on the phone you will get a little line of text like this:</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/quick01.png" rel="lightbox"><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="quick01" border="0" alt="quick01" src="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/quick01_thumb.png" width="244" height="32" /></a></p>
<p>You could do a lot more with it with both fonts and colors but the problem comes when you want to bind to it. You could do this in a few ways as well, if the text use some kind of markup you could have a converter do the work for you and translate this to elements needed or you can do (as I will show) an injection directly into the textbox. The XAML for what I want is like this:</p>
<pre class="brush: xml;">&lt;RichTextBox&gt;
    &lt;Paragraph x:Name=&quot;TweetParagraph&quot;/&gt;
&lt;/RichTextBox&gt;</pre>
<p>So I the result I want is to inject links and accented text so that I can present a tweet to the user. This end result I want is something like this:</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/Capture.png" rel="lightbox"><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="Capture" border="0" alt="Capture" src="http://blog.jayway.com/wordpress/wp-content/uploads/2011/10/Capture_thumb.png" width="244" height="129" /></a></p>
<p>Mostly it just the matter of breaking down the text in words (just split on space) and then add them one by one in the rich text box. This is done in a loop for each word, added to a paragraph in the rich text box like this:</p>
<pre class="brush: csharp;">foreach (var tweetWord in tweetWords)
{
    if (tweetWord.StartsWith(&quot;http://&quot;))
        TweetParagraph.Inlines.Add(GetAsLink(tweetWord + &quot; &quot;));
    else
        TweetParagraph.Inlines.Add(GetAsRun(tweetWord + &quot; &quot;));
}</pre>
<p>I also identified words that start with # or @ and add these with accent color. You could of course add them with click functionality as well to handle things like navigating and showing a twitter user etc but I think you get the idea.</p>
<pre class="brush: csharp;">private Run GetAsRun(string tweetWord)
{
    if (tweetWord.StartsWith(&quot;#&quot;) || tweetWord.StartsWith(&quot;@&quot;))
        return GetAsAccentedRun(tweetWord);

    return new Run { Text = tweetWord };
}

private Run GetAsAccentedRun(string tweetWord)
{
    return new Run
               {
                   Foreground = _accentColor,
                   Text = tweetWord
               };
}</pre>
<p><strong>But now for the actual link </strong></p>
<p>At first I hade trouble with it, normally a link just points around in your application. It don’t target the browser and that goes for a hyperlink as well. So my first solution was to catch the click event and on that create a new browser task with the URL. But this seems a bit awkward for just a web link. And indeed there was a simple solution to make sure it opened in a browser window.</p>
<pre class="brush: csharp;">private Hyperlink GetAsLink(string tweetWord)
{
    var hl = new Hyperlink
    {
        NavigateUri = new Uri(tweetWord),
        TargetName = &quot;_blank&quot;,
        Foreground = _accentColor
    };

    hl.Inlines.Add(tweetWord);

    return hl;
}</pre>
<p>The trick here is in the <em>TargetName </em>using the <em>_blank</em> as you do in a normal HTML link ensures that you open a new browser window, even if the link is placed in you Windows Phone application. And if you want that directly in XAML then it will look like this:</p>
<pre class="brush: xml;">&lt;Paragraph&gt;
    &lt;Hyperlink NavigateUri=&quot;http://jayway.com&quot;
               TargetName=&quot;_blank&quot;&gt;jayway.com&lt;/Hyperlink&gt;
&lt;/Paragraph&gt;</pre>
<p>Neat!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2011/10/05/wp7-link-in-text-with-richtextbox-on-mango/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 planning poker game application</title>
		<link>http://blog.jayway.com/2010/07/14/windows-phone-7-planning-poker-game-application/</link>
		<comments>http://blog.jayway.com/2010/07/14/windows-phone-7-planning-poker-game-application/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 21:28:00 +0000</pubDate>
		<dc:creator>Håkan Reis</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[wp7dev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/2010/06/28/windows-phone-7-planning-poker-game-application/</guid>
		<description><![CDATA[Update 2: Now using the RTM SDK! Update: Now using the new beta of the windows phone SDK! I was trying out a few things on the windows phone 7 platform and wanted to come up with a simple application idea. There are numerous of simple list application examples out there like twitter and RSS [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://blog.jayway.com/wordpress/wp-content/uploads/2010/06/JayPoker.png"><img class="wlDisabledImage" style="margin: 0px 5px 0px 0px; display: inline;" title="JayPoker" src="http://blog.jayway.com/wordpress/wp-content/uploads/2010/06/JayPoker_thumb.png" alt="JayPoker" width="144" height="240" align="left" /></a></p>
<p><strong>Update 2</strong>: Now using the RTM SDK!<br />
<strong>Update</strong>: Now using the new beta of the windows phone SDK!</p>
<p>I was trying out a few things on the windows phone 7 platform and wanted to come up with a simple application idea. There are numerous of simple list application examples out there like twitter and RSS readers but I wanted to try something different, something both useful and a bit more playful. And with a limited time.</p>
<p>So why not a planning poker application? Most of the graphics was already there like the coffee cup, infinity mark and the logo so it was simple to whip it together. But I still think there are a few interesting parts in this.</p>
<p>As it’s static data, there are no more than the numbers, coffee cup, question mark and the infinity sign.  I didn’t bother with any complicated view model, just went along with static buttons. And one big button as the currently selected card. I re-styled the button to make it look like a card and added the graphics and text. The big card is normally hidden but when I select a card it is populated with the selected cards content and the popped up.</p>
<p>The trick here is that if the selected card is an Image the I create a new image and assign it to the content and if its text I assign that directly to the content.</p>
<pre class="brush: csharp; ruler: true; auto-links: false; smart-tabs: false;">if (_currentCard.Content is Image)
  BigButton.Content = new Image
    {
      Source = ((Image)_currentCard.Content).Source,
      Height = 234,
      Width = 202
    };
else
  BigButton.Content = _currentCard.Content;</pre>
<p>Next up is the animation. I wanted the card to flip over while I tuned up the dark overlay. The basic animation was easy to set, I just used a combination of scale and plane transforms to get the big card from the small size and up to the full screen view with a flip. It was a bit trickier to get the card to start and end the animation on the right spot. A little calculation together with naming of the places where I should modify the animation, with  an “x:Name” property, did the trick. Now I was able to modify it from code using the following to set the position:</p>
<pre class="brush: csharp; ruler: true; auto-links: false; smart-tabs: false;">int xValue = -180 + 120 *
    int.Parse(_currentCard.GetValue(Grid.ColumnProperty).ToString());
int yValue = -260 + 190 *
    (int.Parse(_currentCard.GetValue(Grid.RowProperty).ToString()) - 1);

((EasingDoubleKeyFrame)FindName("startX")).Value = xValue;
((SplineDoubleKeyFrame)FindName("endX")).Value = xValue;
((EasingDoubleKeyFrame)FindName("startY")).Value = yValue;
((SplineDoubleKeyFrame)FindName("endY")).Value = yValue;</pre>
<p>It's not the most elegant code, with no safeguards when I cast between stuff, but I whipped it together during an afternoon and it was rewarding to see what could be accomplished with some 50 lines of code and a little blend. And who knows I might clean it up and publish it as soon as the devices are out and the market place is up.</p>
<p><strong>Updated: </strong>Since the new beta of the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c8496c2a-54d9-4b11-9491-a1bfaf32f2e3&amp;displaylang=en" target="_blank">developer tools</a> came out a couple of days ago I updated the planning poker application. Most of the updates consist of exchanging 3-4 assembly references with one; <em>Microsoft.Phone.</em> And the the emulator turned out to quite a bit speedier, woohoo!</p>
<p><strong>Updated 2: </strong>With the RTM release of the SDK, some more updates had to be made. <em>Manifest validation</em> has now been turned on, and some stuff in the manifest changed.</p>
<p>Final app here: <a href="http://blog.jayway.com/wordpress/wp-content/uploads/2010/09/JayPoker_rtm.zip" target="_self">JayPoker_rtm.zip</a></p>
<p>Description of how to transform a beta app to an RTM compliant app: <a href="http://10rem.net/blog/2010/09/16/announcing-the-windows-phone-7-release-wp7-silverlight-toolkit-and-xna-40">http://10rem.net/blog/2010/09/16/announcing-the-windows-phone-7-release-wp7-silverlight-toolkit-and-xna-40</a></p>
<p>Time to plan the next sprint // <a title="blog. reis se" href="http://blog.reis.se" target="_blank">Håkan Reis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2010/07/14/windows-phone-7-planning-poker-game-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 series paper prototype</title>
		<link>http://blog.jayway.com/2010/05/27/windows-phone-7-series-paper-prototype/</link>
		<comments>http://blog.jayway.com/2010/05/27/windows-phone-7-series-paper-prototype/#comments</comments>
		<pubDate>Thu, 27 May 2010 13:16:56 +0000</pubDate>
		<dc:creator>Håkan Reis</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/2010/05/27/windows-phone-7-series-paper-prototype/</guid>
		<description><![CDATA[I was trying to figure out what text size to use on the Windows Phone to make it readable. After using the 24” monitor where I get a “big ass” phone, also known as a .Pad ,  I realized that it’s not going to work. So I started out a little quest to find some [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://blog.jayway.com/wordpress/wp-content/uploads/2010/05/mockup.jpg"><img style="margin: 0px 10px 0px 0px; display: inline; border-width: 0px;" title="mockup" src="http://blog.jayway.com/wordpress/wp-content/uploads/2010/05/mockup_thumb.jpg" border="0" alt="mockup" width="154" height="125" align="left" /></a> I was trying to figure out what text size to use on the Windows Phone to make it readable. After using the 24” monitor where I get a “big ass” phone, also known as a .Pad <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ,  I realized that it’s not going to work.</p>
<p>So I started out a little quest to find some data around the phone and what dimensions you could expect. However, there are no single specification around from Microsoft, so the actual size of the screen may vary. Searching around web brought very little technical specifications, but you know a few facts: It’s going to be 480x800 pixels, and 16:9 form factor on the screen. So I did a couple of educated guesses and assumed a 3.8” screen. Interesting enough, this told me that it actually is going to have a whopping 240dpi resolution, that's close to a an old laser printer, and in full color – amazing.</p>
<p><a rel="lightbox" href="http://blog.jayway.com/wordpress/wp-content/uploads/2010/05/mini.png"><img style="margin: 0px 0px 0px 10px; display: inline; border-width: 0px;" title="mini" src="http://blog.jayway.com/wordpress/wp-content/uploads/2010/05/mini_thumb.png" border="0" alt="mini" width="200" height="182" align="right" /></a>So on to the mockup, as soon as I got the dimensions right I started to print out a few pages, checking fonts and sizes (and got a surprise by how small the texts and icons got in the actual size). I used the skin from the emulator as base. Next, I wanted to get a feeling of it in the hand as well, so I started adding some depth. A few minutes later I found myself creating a cut-out paper prototype you see to the right here.</p>
<p>If you like you can cut out some slits  and do a left/right and a top/bottom sliding version. That way you can even use it to user test panoramic and pivot applications as well as that big sliding home screen.</p>
<p>So here it is the Windows Phone 7 series paper prototype (PDF and PSD format), enjoy.</p>
<p><strong>Updated: </strong>A few other printouts added, XPS and PDF for both Letter and A4</p>
<p><a title="Windows Phone 7 series paper prototype" href="http://blog.reis.se/WP7_PaperPrototype.zip" target="_blank">Windows Phone 7 series paper prototype</a> (zip with psd)<br />
<a title="Windows Phone 7 series paper prototype (zip with XPS and PDF for Letter and A4)" href="http://blog.reis.se/WP7_PaperPrototype_pdf_xps.zip" target="_blank">Windows Phone 7 series paper prototype</a> (zip with XPS and PDF for Letter and A4)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2010/05/27/windows-phone-7-series-paper-prototype/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Microsoft MIX10 brain dump</title>
		<link>http://blog.jayway.com/2010/03/18/microsoft-mix10-brain-dump-2/</link>
		<comments>http://blog.jayway.com/2010/03/18/microsoft-mix10-brain-dump-2/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 04:29:39 +0000</pubDate>
		<dc:creator>Håkan Reis</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[blend 4]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mix10]]></category>
		<category><![CDATA[silverlight 4]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/2010/03/18/microsoft-mix10-brain-dump-2/</guid>
		<description><![CDATA[Also cross-posted on my personal blog After three days of the Microsoft Mix10 event the brain tend to overflow. So I sit down at a Starbucks and try to summarize my thoughts before my mind explodes. It’s easy to get caught up in positive buzz during events like this but I really think Microsoft is [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;">Also cross-posted on my <a title="personal blog" href="http://blog.reis.se/post/microsoft-mix10-brain-dump.aspx" target="_blank">personal blog</a></p>
<p>After three days of the Microsoft Mix10 event the brain tend to overflow. So I sit down at a Starbucks and try to summarize my thoughts before my mind explodes.</p>
<p>It’s easy to get caught up in positive buzz during events like this but I really think Microsoft is doing a lot of things right here with Windows Phone 7 series, the next level of .NET and Silverlight and Internet Explorer 9, among other things. Some of it, I believe, accounts to all the focus on User Experience and the influence that Bill Buxton have on this.</p>
<p>Also if you want to catch any of the sessions most of them are up at the <a href="http://live.visitmix.com/Videos" target="_blank">mix10 site</a> already.</p>
<p><strong>Silverlight release pace</strong></p>
<p>This was a big surprise to me; Silverlight 4 is going to be released as early as next month end the release candidate (RC) is out now. I was more in the lines of a beta and the an RC in the summer and a release late 2010. But it seems they try to align and do a big release with .NET 4, VS2010 and Silverlight 4. As a bonus the Pivot control will be in the controls toolkit so that’s going to be fun to play with.</p>
<p><a href="http://go.microsoft.com/fwlink/?LinkID=141284">Silverlight 4 Tools RC</a> | <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a9ef9a95-58d2-4e51-a4b7-bea3cc6962cb&amp;displaylang=en" target="_blank">.NET 4 RC</a> | <a href="http://www.microsoft.com/downloads/details.aspx?familyid=457BAB91-5EB2-4B36-B0F4-D6F34683C62A&amp;displaylang=en#filelist" target="_blank">VS2010 RC</a></p>
<p><strong>About the Windows Phone 7 series</strong></p>
<p>The development platform for Windows Phone 7 series was, of course, one of the biggest news on the starting keynote and lot of sessions around it followed. I think they are on the right track with the platform. A few surprises surfaced, like the inclusion of DirectX to utilize HW backed video decoding and the <a href="http://developer.windowsphone.com/windows-phone-7-series/" target="_blank">Windows Phone development tools</a> being released for free.</p>
<p>But a few questions and problems surfaced as well, as you can se all over the web it seems they are not including cut &amp; paste and market place being the only application deployment channel. Other things I thought about was:</p>
<ul>
<li>How is the user interface is going to perform in right to left markets.</li>
<li>What the possibilities are to hook in other services, like for example Pandora, to provide music streams for the native Zune player.</li>
<li>And I still have a few issues with lag in the interface as well as accidental clicks, lets just hope the will get this issues out the door before they release it.</li>
</ul>
<p>The user experience work that has been put into the new OS is really cool, the decision to remove all chrome and go for a real clean and consistent look is really fresh. And the decision to let the back button work on all levels across the phone, in-applications as well as between was a stroke of genius.</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&amp;displaylang=en#filelist" target="_blank">Windows Phone Dev tools</a> | <a href="http://go.microsoft.com/?linkid=9713252" target="_blank">UI Design guidelines</a></p>
<p><strong>What about HTML 5 and IE 9</strong></p>
<p>It was pretty obvious that they should release some news around Internet Explorer 9 and its take on HTML 5. It is just an early technology preview but I have to say I’m impressed by the results. They did tone down the JavaScript speed issues but quite frankly they were on par with the other browsers and at those speeds it really is less of an issue. What still is an issue is standards, and anything but a 100/100 score on Acid3 is a failure in my eyes.</p>
<p>What they did show was the brilliant work they have done on the GPU acceleration part. This really was amazing 720p HD video streaming on a netbook was blazing fast, they even manage to pump two 720p streams without a glitch, impressive. And rendering HMTL5, CSS3 and SVG with hardware acceleration really looks promising.</p>
<p>If anything it shows that the Internet Explorer team is still in the game and might really get a decent browser out the door.</p>
<p><a href="http://ie.microsoft.com/testdrive/info/ThankYou/Default.html" target="_blank">IE9 platform preview</a></p>
<p><strong>Expression Blend 4</strong></p>
<p>The things I saw done with blend was quite cool, this tool has come a long way from the first release and is now a potent tool. The tight integration with Adobe was finally in place, just point to the assets and start editing it in Illustrator or Photoshop. What’s more impressive, if I got it right, was that you were able to bind to a text object from the imported Illustrator assets directly to the object in your ViewModel! This really puts design control back into the hands of the designer.</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6f014e07-0053-4aca-84a7-cd82f9aa989f&amp;displaylang=en" target="_blank">Expression Blend 4 beta</a></p>
<p><strong><a href="http://oredev.org/2010/call-for-papers" target="_blank">Get real</a></strong></p>
<p>So what’s left for me now is to find the time to play with all these new toys and and experience for myself what they are capable of before it’s time to <a href="http://oredev.org/2010/call-for-papers" target="_blank">Get Real</a> and start creating.</p>
<p>Have fun // <a title="blog. reis se" href="http://blog.reis.se" target="_blank">Håkan Reis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2010/03/18/microsoft-mix10-brain-dump-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

