Build 2014 – Day 1 keynote

For the last couple years it has been a tradition that I capture a stream of consciousness as I watch the big Microsoft keynote announcements at Build, PDC, TechEd North America. I enjoy doing it so that my work colleagues are able to catch up on the news as soon as they wake up in Australia, and for anyone else that wants an overview of the keynote without needing to dedicate hours watching it.

As I am live blogging it, the post is a stream of text and screen captures as they happened in real time. I have added additional links and a summary below as the highlights:

Highlights

The entire conference & screenshots are continued below

Continue reading

Easy to use icons in Windows 8 applications by using Segoe UI Symbol font

When creating your “Windows Modern Style UI applications” (read: Metro), one difficult aspect of the creation can be finding great icons to help keep a consistent look.

One little known trick is that Microsoft have already created a collection of icons that you can use in your applications. You simply need to use the “Segoe UI Symbol” font and know the character code for the icon.
An additional advantage of using an icon font, is that the icons are vector based and will scale crisply.

To browse the icons that are available open the Character map (search for it on the start screen). Change the font to Segoe UI Symbol, then scroll to the bottom for the really good ones.
Take note of the hex value of the character you want (E0EB in the sample image below).

image

 

From within your Windows 8 application, set the FontFamily to “Segoe UI Symbol”. Then tell the XAML that you are using the hex value of a character by putting it in the format ᄑ  The ampersand escapes the string, the #x defines it as a hex value, the semicolon then closes the character escape off.

So our aeroplane icon would be defined in XAML like this: 
The full line of XAML would be: <TextBlock FontSize="72" FontFamily="Segoe UI Symbol" Text="" />

The screenshot below shows the icons being displayed in the Visual Studio designer.

image

Start exploring with the character map, you may save yourself a heap of time by using the predefined icons Microsoft have created!

Reblogged from my Infragistics blog

By David Burela

I’m speaking at DDD Sydney

The “Developer Developer Developer” conferences have consistently been a great event. If you are in Sydney be sure to purchase your ticket and come this weekend! It is only $25 for a full day of talks, food & giveaways.

http://www.dddsydney.com

I’m also proud to say that I’ll be speaking this year on Windows 8 Development 101: The basics of XAML and ViewModels
The Windows 8 platform will soon allow people to build “Metro style applications” and sell them on the Windows Marketplace.
Join David Burela as he takes anyone who is new to Desktop development through the basics of developing for Windows 8. XAML, Databinding, DataTemplates and ViewModels will all be introduced.
Discover how to separate your UI from your business logic, how to create List Views that display your data richly, plus much more.
The techniques here can be applied to any XAML based application: WinRT, WP7, WPF, SL5.

By David Burela

Background tasks in Windows 8 failing instantly

I have seen an instance where trying to instantiate a background task in Windows 8 results in it failing instantly, or throwing an UnauthorizedAccessException.

This happens when you have put the task is in a 2nd project whose build output is set to Class Library. Simply go into the project settings, and change the Output type to WinMD file.

image

By David Burela

My notes from the Windows Phone 8 announcement

Note: the first few screenshots were low quality, the later images are fine once the connection improved. I’ll update the images once the session is downloadable

Summary

(click to read more)

Windows 8 demo–Updating application tiles

I have had requests to share the Windows 8 demos that I gave at the Windows 8 Developer camp. The source code is available on Github at https://github.com/DavidBurela/Win8Demo-Tiles

Text tile

Application tiles in your application can be updated by sending a formatted XML message to the TileUpdateManager. The easiest way to achieve this is to get a base template for the tile style that you want (Text only, Image, Image and Text, etc) then modifying the Text or Image elements of the template. The code below shows how a XML template can be taken and updated with custom text. The XML document is then used to create a TileNoficitacion which is then sent to the TileUpdateManager.

/// <summary>
/// Set the application's tile to display text content.
/// After clicking, go back to the start screen to watch your application's tile update.
/// </summary>
private void SetTileTextButtonClick(object sender, RoutedEventArgs e)
{
    // Tiles use a predefined set of standard templates to display their content.
    // The updates happen by sending a XML fragment to the Tile update manager.
    // To make things easier, we will get the template for a square tile with text as a base, and modify it from there
    var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText01);

    // Find the 'text' element in the template's XML, and insert the text "Hi :-)" into it.
    var elements = tileXml.GetElementsByTagName("text");
    elements[0].AppendChild(tileXml.CreateTextNode("Hi :-)"));

    // Create a TileNotification from our XML, and send it to the Tile update manager
    var tileNotification = new TileNotification(tileXml);
    TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
}

Image tile from local image file

It is also possible to create the XML from scratch and send it to the TileUpdateManager. The code below updates the application tile with an image tile. It starts by instantiating a XmlDocument, creating each of the XML elements, and then chaining the elements together to form the final XML document. The path to the image is given as being a local application resource through the convention ms-appx:///Assets/DemoImage.png

/// <summary>
/// Set the application's tile to display a local image file.
/// After clicking, go back to the start screen to watch your application's tile update.
/// </summary>
private void SetTileImageButtonClick(object sender, RoutedEventArgs e)
{
    // It is possible to start from an existing template and modify what is needed.
    // Alternatively you can construct the XML from scratch.
    var tileXml = new XmlDocument();
    var title = tileXml.CreateElement("title");
    var visual = tileXml.CreateElement("visual");
    visual.SetAttribute("version", "1");
    visual.SetAttribute("lang", "en-US");

    // The template is set to be a TileSquareImage. This tells the tile update manager what to expect next.
    var binding = tileXml.CreateElement("binding");
    binding.SetAttribute("template", "TileSquareImage");
    // An image element is then created under the TileSquareImage XML node. The path to the image is specified
    var image = tileXml.CreateElement("image");
    image.SetAttribute("id", "1");
    image.SetAttribute("src", @"ms-appx:///Assets/DemoImage.png");

    // All the XML elements are chained up together.
    title.AppendChild(visual);
    visual.AppendChild(binding);
    binding.AppendChild(image);
    tileXml.AppendChild(title);

    // The XML is used to create a new TileNotification which is then sent to the TileUpdateManager
    var tileNotification = new TileNotification(tileXml);
    TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
}

Image tile from remote image

A remote image can be used by again using a template (or hand crafting the XML from scratch as in the previous example), but this time providing a URI to an image hosted on a remote web server, rather than a local application resource.

/// <summary>
/// Set the application's tile to display a remote image on the internet.
/// After clicking, go back to the start screen to watch your application's tile update.
/// </summary>
private void SetTileRemoteImageButtonClick(object sender, RoutedEventArgs e)
{
    var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareImage);

    // Find the 'image' element in the template's XML. Change the src attribute to a remote URL
    var elements = tileXml.GetElementsByTagName("image");
    var imageElement = elements[0] as XmlElement;
    imageElement.SetAttribute("src", @"http://i.microsoft.com/global/en-us/homepage/PublishingImages/sprites/microsoft.png");

    // Create a TileNotification from our XML, and send it to the Tile update manager
    var tileNotification = new TileNotification(tileXml);
    TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
}

Again, this source code is available as a working example on Github at https://github.com/DavidBurela/Win8Demo-Tiles By David Burela

Windows 8 developer camp companion application + source code

I put aside a few hours over the weekend and created a companion application for the “Windows 8 developer camps” that are currently running all around Australia. http://www.lalaninja.com.au/2012/03/19/windows-8-developer-camps-australia/

It only took a few hours to throw something simple together for the attendees. The application provides some basic features to help out on the day

  • Daily schedule
  • Dates
  • XDDN details. So that attendees can continue with their Windows 8 learning
  • Links to online Windows 8 developer resources
  • Links to source code of the demos I gave in my presentations (submitted in pending app update)

Download the Windows Phone 7 marketplace right now
http://www.windowsphone.com/en-AU/apps/1a7853b1-1d2c-4d1c-9ba1-6d709053eced

I have made the source code available for anyone that wants to see how a simple app can be put together in only a few hours and submitted to the marketplace.
https://github.com/DavidBurela/Windows8DeveloperCampPhoneApplication

scheduleXDDN informationonline resources

By David Burela

XDDN around Australia

To try and streamline the XDDN groups around Australia, I have been working with the organisers of the other cities to create a few central locations for everything.
For those unfamiliar with XDDN, it is a usergroup I run that focuses on UX, Design and Development on Microsoft UI platforms. Such as Win8, WinPhone7, HTML5, etc.

The main reason for moving everything to Meetup is that it allows everyone to easily see upcoming events and get automatically notified when new events are created.
Having XDDN on Meetup.com also supports my other goals of getting more people involved with their local development communities. Joining the groups will allow you to easily find other local groups that you may want to attend, such as Agile or Alt.Net groups.
Please join the group for your city, as the old event sites (such as EventBrite) will be slowly decommissioned over the next few weeks.

XDDN Melbourne – April meeting

This month I have organised for Ian Randall (@Kiwipom) to talk at the April XDDN meeting.

I have also created a new twitter account @XDDN_AU from which I will be tweeting all of the sessions for Melbourne, Sydney & Perth. Be sure to follow it.

Register here: http://xddn-melbourne-april2012.eventbrite.com/

Learn about creating great MVVM applications with LESS CODE. Ian Randall will be demonstrating how to use Caliburn.Micro to create cleaner XAML based applications. These techniques will work with WinRT (Windows 8), Silverlight, Windows Phone 7 and WPF.
Caliburn.Micro can be downloaded at http://caliburnmicro.codeplex.com/

Time: 5:30 pm networking & pizza.
6:00 pm presentations start.

Caliburn.Micro – Ian Randall

Caliburn.Micro (http://caliburnmicro.codeplex.com/) is more than just an MVVM library, it’s a client application framework that works every bit as hard for your app that a web framework does: Logging, composition, binding, and much, much more.
This session will cover getting started with Caliburn.Micro and give practical demonstrations of Convention Over Configuration, Actions, Screens & Conductors and will go a bit deeper under the covers (if we get time).

Ian Randall is a software developer for Datacom in Auckland and a XAML geek on the internets. He helps to run the Metro Meetup in Auckland and just spent the last 6 months putting on ‘codemania’ (http://codemania.co.nz). He is currently trying to catch a breath…
He loves Melbourne, partly for the friendly Victorian people, but mostly for @aeoth’s legendary chocolate brownies.

By David Burela

I’m speaking at the Melbourne March XDDN

I’m speaking at Melbourne XDDN this month. With the Windows 8 Consumer Preview released, now is the perfect time to reexamine Windows 8. Below are the meeting details:

Register here: http://xddn-melbourne-march2012.eventbrite.com/
Date: Wed 21st March
Time: 5:30 networking & pizza. 6pm presentations start

A tour around Windows 8 – David Burela
Windows 8 has been announced to the public and is being branded as “Windows reimagined”. This introductory session will show some of the new features coming with Windows 8.
A touch first interface, user account syncing via the cloud, “charms”, app to app data sharing, and the ability to use a picture password to log into windows will all be demonstrated.

Getting started with Windows 8 development – David Burela
So you’ve heard that Windows 8 has a new way of applications known as “Metro styled immersive apps”, but what does this actually mean? What is WinRT? Is Microsoft really making developers use HTML5 to create desktop apps? What about your previous investments in Silverlight?
Join David Burela as he helps clarify what the new programming model is and what impact it will have on you. Explanations of WinRT and how to create basic applications will be shown.

By David Burela