First Look: Hubble

Posted Sunday, May 13, 2012 by

I'm finally ready to give you all the first look at the Windows 8 Metro application I've been working on. Hubble is a new way to create and manage issues on your GitHub repositories.

I've used Semantic Zoom to provide management overviews so you can easily visualise how work items are distributed either over your team or milestones. For management I've created a unique drag and drop Kanban style board to assign tasks between collaborators, milestones or labels. Here's the first sneak peek:

If you like what you see help spread the word!

Patch Support in HttpClient

Posted Tuesday, May 01, 2012 by

Lately I've been working with the System.Net.Http.HttpClient originally from the WebAPI and part of what's available to build Metro style apps in Windows 8. I really like the way the client has been designed and especially the async /await support.

One thing I noticed while working with the GitHub API was that while HttpClient supports the PATCH method there's no nice helper methods like GetAsync or PostAsync, thankfully it's very easy to put together so here's some extension methods to add PatchAsync to HttpClient.

public static class HttpClientExtensions

{

    public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, string requestUri, HttpContent content)

    {

        var method = new HttpMethod("PATCH");

        var request = new HttpRequestMessage(method, requestUri)

        {

            Content = content

        };

 

        return await client.SendAsync(request);

    }

 

    public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, Uri requestUri, HttpContent content)

    {

        var method = new HttpMethod("PATCH");

        var request = new HttpRequestMessage(method, requestUri)

        {

            Content = content

        };

 

        return await client.SendAsync(request);

    }

 

    public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, string requestUri, HttpContent content, CancellationToken cancellationToken)

    {

        var method = new HttpMethod("PATCH");

        var request = new HttpRequestMessage(method, requestUri)

        {

            Content = content

        };

 

        return await client.SendAsync(request, cancellationToken);

    }

 

    public async static Task<HttpResponseMessage> PatchAsync(this HttpClient client, Uri requestUri, HttpContent content, CancellationToken cancellationToken)

    {

        var method = new HttpMethod("PATCH");

        var request = new HttpRequestMessage(method, requestUri)

        {

            Content = content

        };

 

        return await client.SendAsync(request, cancellationToken);

    }

}

Hope this helps people.

Metro Theme Resources and Templates

Posted Thursday, April 26, 2012 by

One thing that always helps when building xaml applications is to have easy access to reference the Theme resources and control Templates.

Thankfully for building Windows 8 Metro style applications you can find the appropriate files at C:\Program Files\Windows Kits\8.0\Include\winrt\xaml\design.

ThemeResources.xaml contains the resource dictionaries for the Dark (Default), Light and HighContrast themes while Generic.xaml contains the default styles and templates for most of the xaml controls. Incredibly useful when needing to know how the control is put together and how you can affect it.

For instance FlipView has a 3 pixel margin built into it, which is nice to know before trying to track down why your alignment is a little in your own code.

I'm spending a lot of time with Windows 8 at the moment so will be blogging about it more here or a the Marker Metro website.

Windows 8 Hackathon

Posted Monday, April 02, 2012 by

A week ago I had the opportunity to attend a hackathon run out of the Auckland Microsoft office. The idea was to spend the weekend building a Windows 8 Metro application either as a one off experiment or for the longer term goal of having something ready for the launch of Windows 8. When developing with new platforms such as Metro and WinRT searches on Bing or Google won't help you so having some Microsoft experts and a lot of other developers around really helps smooth the rough edges you'll invariably encounter. It also provided the chance to sit down and use Windows 8 in anger, I think it's only after this sort of use that you can really judge a new operating system.

In terms of development I chose to keep working with C# and Xaml and found that almost all my skills from Windows Phone transferred across which was incredibly gratifying. There were obviously some new API's to learn around Tiles, the Charms and the new async / await syntax (which is awesome BTW), but this was expected and the API's I worked with held little surprises. I'll be sharing bits and pieces of what I learnt through the blog over the next few weeks. I found the new Visual Studio very good, although I missed Resharper and found myself mashing a lot of useless key combinations. This missing of old favorites was probably more keenly felt in that libraries and packages I'm used to developing with such as Caliburn Micro don't yet have ports to WinRT. I'm hoping these libraries will eventually make their way over.

After a weekend of solid use I'm feeling a lot more comfortable with Windows 8, initially I was having reservations about the Metro / Desktop split but now it's not jarring or distracting and I feel is fine. I do think there will need to be some sort of introduction tutorial for new users as I don't think a lot of the gestures / key combinations aren't intuitive. Even though this is a Consumer Preview / Beta not having more of an introductory experience is a misstep that may have put a lot of people off.

In the end the weekend was a great experience meeting some really talented individuals building some fantastic applications. I was also honored to have my app "Hubble" a GitHub issue management client voted by the other attendees as one of the top three apps winning me a new Nokia Lumia 800! I plan to continue development of the app and will put more details up as I go. A big thanks to all the people organizing the event, it was a great weekend.

Hubble

New Opportunity with Marker Metro

Posted Thursday, March 22, 2012 by

From next month I'm happy to announce I'll be taking a full time role as a Senior Metro Developer at Marker Metro, an award winning Metro agency behind apps such as the incredibly popular Alphajax for Windows Phone. With Ben Gracewood also joining I'll have the privilege of working with a lot of highly skilled designers and developers on a lot of things I can't talk about yet. So stay tuned to the Marker Metro website and our respective Twitter feeds.

It's going to be a change moving back to full time employment from contract / freelance, not having to worry about invoices or taxes as much. But I'll be continuing with my Windows Phone apps and tutorials and will still be expanding the website into Windows 8 Metro apps and tutorials. More in the coming months!

Page 1 of 2812345>

Professional Windows App Development