Can you believe it is four months since I posted my first blog from Microsoft TechED in Berlin? Time certainly does fly by, and so does the changing world of software development. At Synergex we are committed to ensuring that we keep abreast of advancing technologies, so that we can continue providing expert advice and direction to Synergy/DE developers.
This week I’m in London, and for the start of the week I can actually say “sunny” London. Considering the weather we have been having here recently, I can honestly say spring may just be on its way! I’m in London attending DevWeek 2010. A software developer’s conference sponsored by, but not presented by, Microsoft. I say that to emphasise that this is not another TechED. This conference focuses more on the people using the tools and technologies, the real people like you and me, and not just the products on offer.
DevWeek 2010 is a lot smaller, in attendee numbers, than the TechED conference. There are hundreds of people here, not thousands. It’s a lot more personal, and you get much more opportunity to “discuss” (read “ague my case”) with the presenters. The first session I attended on Monday morning had twelve people in the room, so it’s a lot more intimate. The content, however, is far from small scale, with some impressive solutions to today’s application requirements.
Monday was a pre-conference day and I spent it delving deep into Silverlight, Microsoft’s XAML/WPF based Web development and application deployment environment. You can achieve many cool things very easily with just a line or two of code. Did you know, using Silverlight, it’s possible to deploy your application to appear to run natively on an Apple MAC?
One thing this conference has again emphasised to me is the abstract between software development and design. And by design I mean the user interface. All us programmers believe we can “cut it” when it comes to UI development, and many of us can do a reasonable job. But put today’s design tools into the hands of the UI designers and it’s amazing what they can produce. And the ease at which you can then implement their “styles” into you application is astonishing! My first “hello world” foray into UI design was to produce a form with a round ball like object on it, and of course the customary “Press Me” button. Pressing the button caused the ball to drop from the top of the window to the bottom, and then bounce a couple of times before coming to a rest. Using Microsoft’s Expression Blend made it far too easy. It really is a simple case of draw the object (my ball), define the result (ball at bottom of window) and pick a transition (how it gets from top to bottom). Add my button, and a couple of clicks later, it really does look like the ball is naturally falling (starts slow and speeds up) and then bounces a little as it comes to its final resting place. And I have not written a single line of code!
OK, So I can hear you thinking “and the use of a bouncing ball is?” Good question. Not much, I agree, but the techniques can easily add such a visual edge to you application. Consider if you created a button style, which you could apply, as a default, to all buttons within your application. The style could, for example, make the button double in size, including the text, when you hover over it with the mouse, making it easier to read. Maybe have a circular ripple effect when you press it. What if the input control (field) on your form that had focus is automatically magnified, giving the user a clearer view of what’s being asked for, without obscuring other areas of the form. Your options are endless, and from a software developers standpoint – no code changes. The code to data bind you fields to your Synergy data remains the same, but the look can be infinitely customisable.
Ensuring we structure our UI design correctly, data bind our controls in the XAML and avoid all non-UI related code behind ensures that we can utilise these UI development tools to the full. We’ll be presenting these cool techniques at this year’s SPC in October, so make sure you’ve booked your place!