Monday, December 22, 2008

User Experience - It Ain't Just Paint

We’ve known for a while now that Microsoft is taking User Experience seriously – Bill Buxton’s keynote at MixUK ’08 being clear testament to that – but it’s nice that they’re starting to share out the goodness so the message can be shouted out clear and loud.

In December’s MSDN magazine, Dr Charles B Kreitzberg and Ambrose Little give us the first I of a new set of columns focusing on putting usability into practice.

From the article, the facets of UX are:

Interaction Design Defines how the user interacts with the product. It specifies the behavior of the product in response to actions by the user and focuses on the product's navigation as well as the specific controls that are used.

Information Architecture Defines how information is organized and presented. Its goal is to support discoverability and usability.

User Research The process of studying users in order to develop a design that meets their needs, capabilities, and preferences. The methods are varied and typically employ a number of interview techniques along with observation. User logs and secondary sources are also used. Surveys and focus groups can also be used although many UX designers avoid them.

Visual Design The graphic treatment of the UI. Visual designers may be graphic artists rather than UX designers. While visual excitement is important, it is also essential that the visual design does not impair readability or usability.

Usability Testing The process of observing users performing specific tasks on a prototype or mock-up of the UI. Traditionally, usability testing was performed in a lab with observers behind a one-way mirror. However, increasingly, usability tests use webcast technology.

I’m really looking forward to the rest of this series – if only there was an RSS feed for it!

Usability In Practice :

Not a lot of people know that #1: ESENT

Well actually, probably a lot of people *do* know about ESENT, but it was new to me today!

I found a link through to a .Net API for ESENT via a MSDN post this morning, and was curious as to what on earth ESENT actually is – and it turns out to be a rather interesting piece of Microsoft technology.

From the Wikipedia entry here:

The Extensible Storage Engine (ESE), also known as JET Blue, is an Indexed Sequential Access Method (ISAM) data storage technology from Microsoft. ESE is notably a core of Microsoft Exchange Server and Active Directory.

The MSDN entry goes in to more detail and links to the reference, and there’s a good introductory blog entry on the WindowsSDK blog. You have to wonder whether this might be a useful technology for offline enabling applications – so my next bit of research has to be whether Sync Services supports it.

Time to Google…

Microsoft ESE :

Managed API for ESENT :

Silverlight controls coming of age...

For me, Silverlight has never been about rich media, so much as rich applications. So the announcement and release of Silverlight 2 was a turning point. Prior to that, Silverlight had effectively no controls – meaning no useful controls for building line of business applications.

Today though, I came across a nice posting (in Italian) by Pietro Brambati that pointed to samples pages for both the intrinsic Silverlight 2.0 controls, and for the Silverlight Control Toolkit.

I love these kinds of mini-sites – they demonstrate the controls so much better than a textual description can, and handily give you a test harness as well. We use a “sample” ourselves when developing custom controls.

Italian introduction :

Silverlight 2.0 Controls Sample :

Silverlight Control Toolkit Sample :

Thursday, December 11, 2008

Top Tip: Rooted Views

In this VSJ article, Neal Ford highlights some quick tips and tricks for increasing your productivity.

One of the more interesting ones was that of improving your “focus” as a developer by using a feature of Windows Explorer that I’d never heard of – rooted views. All you need to do is start Windows Explorer with a couple of extra parameters, and the tree-view will appear to be rooted wherever you specify. So rooting your explorer view to the root of your projects’ source code will focus your attention on the files you should be working on rather than all the other guff in your computer.

Here’s how – just run (start->run)

explorer /e,/root,c:\myprojects\project1\source

which will give you an explorer folder rooted at the source folder for your project.

You can also create a shortcut (right-click on the desktop and select new->shortcut) with the above command as the target – put this shortcut on your start menu, desktop, dock, etc for fast focused access to your project folder.

Developer productivity Tips:

Wednesday, December 03, 2008

I know I've been quiet...

Busy with paying work and all in the run up to Xmas…

But three postings on piqued my interest this morning.

The first two are by Jon Skeet, and cover what Iterators are, and how to use them to auto-generate state machines. Really interesting stuff as it gives a great deep-dive into the IL code that’s being generated and what that can mean in terms of the code that actually gets executed.

The third post is by Mark Smith, and provides a good worked examination of the how to create extensible applications with the Managed Add-In Framework. Not to be confused with the Managed Extensibility Framework, which is more about dynamic composition, this is a well-structured mechanism for handling plug-ins. Another one for me to get my head around, I guess.

This evening tho’, I’m off to the screenedit session at the Circle in Manchester for UX themed sessions sponsored by Microsoft. See you there.


Iterators, Part 1:

Iterators, part 2: