Willoughby “Star Gazing Evening” This Saturday

Based in Sydney and not doing anything this Saturday evening?  Do you like looking up at the sky at night?  Do you want a closer look at the Moon, Jupiter, and various beautiful deep sky objects such the Jewel Box, Omega Centauri, and various Messier objects?  Don’t have a clue what I’m talking about but would like to learn a bit about astronomy?  Then join the Northern Sydney Astronomical Society (which I’m a member of) and Willoughby Council for a “star party” this Saturday September 26.  Click here for details on the council website (though there’s not much there).

I’ll have my telescope there showing people Jupiter and its moons (the 4 that are visible from Earth), and there will be 9 other telescopes set up looking at various objects in the sky (fingers crossed for good weather and no dust storms).  There will also be talks, food, and information stalls, and I’m sure lots of fun to be had.

It’s free, so come along and join us between 6pm and 9pm this Saturday at Bicentennial Reserve, Small Street, Willoughby.


Silverlight 3 Released + RIA Services Installer Issue

As you probably know already, Silverlight 3 RTW has been released.  Download the tools for Visual Studio here:


I made the mistake of uninstalling RIA Services before installing the Silverlight 3 RTW Tools thinking it would be a part of the installer (which it wasn’t).  Silverlight 3 RTW has a new project template called Silverlight Business Application that relies on RIA Services, and doesn’t appear in Visual Studio as a project template unless RIA Services is installed.  When I found it wasn’t installed I tried to install it again the installer told me it needed the Silverlight 3 Beta SDK to be installed in order to continue!  Brad Abrams from Microsoft let me know that there would be an update to the RIA Services installer soon, but in the meantime I came up with a hack to the installer to get it to install.  Download Orca, a .msi editor from here:


After installing it, right click on the RiaServices.msi file and select Edit with Orca.  Select the InstallExecuteSequence table, and change the DependencyCheck action to Installed (instead of NOT Installed).  Then select the InstallUISequence table and make the same change to its DependencyCheck action.  Save the file, and try to install it again and it should install!  It’s a hack, and should be fixed soon, but in the meantime if you’ve uninstalled RIA Services like I did or you’re just getting started with Silverlight this should get you going.

Update: No sooner than I blog this then I’m told that the July Preview of RIA Services has been released.  So much for my impatience :).  Get it here:


One more note, unfortunately the ComboBox control still doesn’t have the SelectedValuePath and SelectedValue properties for databinding in foreign key scenarios – a pet peeve of mine.  Tim Heuer from Microsoft said when I asked him that they have it down on their list but it didn’t make it this time unfortunately.

SDDN Sydney Meeting

As Miguel has posted, there is a new Silverlight Designers and Developers Network (SDDN) group starting in Sydney, and meeting for the first time this coming Tuesday, May 5th.  I will be speaking about styling in Silverlight, based upon my current article series hosted over at the SilverlightShow.net website.  I’ll be covering styling from introductory concepts through to advanced topics.  Here’s the invitation if you’d like to come along…

This meeting we will see Chris Anderson (blog), from Peer Placements will be discussing advanced styling in Silverlight for both developers and designers. Topics will cover styling strategies, tools, advanced xaml techniques, fashions, and a discussion on designing user experiences.    

Jordan Knight (Blog) from Readify will run through the exciting new features in Silverlight 3, and demonstrate how you might use them in a real working reference application. This in depth session will cover perspective 3D, pixel shaders, navigation features, out of browser and much more. Other concepts like Model-View-ViewModel, dependency injection, unit testing and designing template friendly (read designer friendly) applications will also be touched upon.  


Attendees will have the opportunity to win a copy of the full Expression 2 suite, worth $1000!  

When and Where?  

The date and time: Tuesday May 5 at 6:00 PM for a 6:30 PM start.  

The venue is the Pyrmont Bridge Hotel, Level 2, Pyrmont, NSW. See map for details.  

Attendance is FREE, but please RSVP by entering your details in the registration in the registration tool on the site (http://www.sddn.org.au) or send an email to info@sddn.org.au.  

Who will this group interest?  

The focus of the group is not just on developers. Traditionally developers have had great community support, whereas designers not so much… now that Silverlight 2 is out we plan to change this.  

Silverlight is as interesting for developers as it is for designers. Due in part to Silverlight’s excellent separation of design and development concerns we have new problems to solve around finding the best ways to work together.  

To this end the SDDN will facilitate an ongoing discussion and promote the development of ideas and best practices for anyone who works with Silverlight.  

To register interest head over to http://www.sddn.org.au. Use the registration tool in the header of the site.

Building a Silverlight Line-Of-Business Application – Part 7.2

After a slight delay due to preparing for my Code Camp and SDNUG presentations, here’s part 2 of my styling series.  In this article I cover fashions in UI design, choosing fonts and colours, and using animations and icons and themes.  I then take a look at some good examples of design in Silverlight.  Based on feedback from my first article I threw in some additional discussion about designing user experiences vs designing user interfaces.  You can read the article here:


Building a Silverlight Line-Of-Business Application – Part 7.1

Part 7.1 (yes, .1) of my series on building a line-of-business application with Silverlight is now available on the SilverlightShow.net website here:


This is the start of a 7 part mini-series on styling the application within my main series of building line of business applications.  As I expected (and hoped) this article (being predominantly opinion based) is generating some controversy so join in and add your own comments – the designer-developer interaction needs to be argued and discussed widely and I thought I’d get some going by prodding it with a big stick.  This is the only opinion article in this mini-series – don’t worry I’ll be getting to the real stuff soon.  The articles in this series will be released on a weekly basis so expect  part 2 in a week or so.  For these articles I’m still working in Silverlight 2 as Silverlight 3 doesn’t have a go-live license yet (and we have no idea when it will) and many people have been working with my existing framework so I want to keep helping them.  I will be noting new Silverlight 3 features throughout the articles where appropriate though that would allow you to do whatever it is in a better way.

Mix09 News

Well there’s no doubt about it, Microsoft provided masses of news for the blogosphere over the last few days from Mix09.  While (as I tried to prove through my article series) Silverlight 2 was mostly ready for building business applications, Silverlight 3 is practically designed for building business applications (assuming running in a sandboxed environment is practical for your application).  Up until now I was more or less the only person writing about building business applications in Silverlight in depth, but things will be changing – mere hours after the Silverlight 3 news announced there are numerous (and reasonably extensive) articles on implementing the new features.  I am not a believer in reinventing the wheel and writing on topics that have been covered elsewhere unless I have something different to add, so instead I’ll list what I particularly like and link to articles on each:

RIA Data Services – while not Silverlight specific per se, though it does have a tight integration with Silverlight it also has a lot of potential for all other types of applications.  Previously Microsoft has predominantly released technologies which promote a very tight linkage between the presentation layer and the database with 1:1 links between entities / business objects and database tables in a simple 2 tier/layer fashion (I’m guessing partly because it was easy and partly in order to show how easily an application can be developed in their demos), though that has absolutely no place in real-world applications for obvious reasons.  RIA Data Services finally acknowledges this is not an acceptable strategy and provides a path between database and presentation layer which is customisable at each layer, so we can finally have well structured but flexible application designs in a method that is easy to implement.  Despite my initial scepticism, I am incredibly impressed with RIA Data Services – it’s exactly what I have wanted as a business application developer forever, and I believe it is going to be absolutely revolutionary in enabling developers to build scalable, robust solutions in a standard way.  I was afraid it was going to be another “look how easily we can do this” technology we often see which has absolutely no value in major development projects but looks good from a sales/demonstration perspective, but from my first impressions it’s actually fundamentally very well designed.  I’m sure I will have feedback when I have finished incorporating it into my project, but from my initial play I am really happy where it is going and very impressed with it.  Nikhil Kothari has a good overview of the topic here.

DataGrid Update – the DataGrid control now supports grouping! I’ll now be able to swap back to using it instead of the open source DevExpress grid. In addition there is a new DataPager enabling data to be paged in the DataGrid without retrieving the entire set of data at once. With these features the Silverlight DataGrid overtakes all other platforms (WinForms, ASP.NET, and WPF) in functionality required for business applications.

DataForm – this is a means to view and edit details (such as we did in article 5 in my series), I’m guessing similar to the FormView/DetailsView control in ASP.NET. I still need to play with this more to form a full opinion but it’s looking good.

Validation – my field validation control becomes obsolete now with built in validation using per property metadata (attributes on each property in your business objects). I’m yet to see how this goes with more complicated rules other than hard coded data formatting and value ranges so I’ll reserve my opinion right now, but it does look good. Brad Abrams discusses this (and a lot of the other business related improvements) based upon his Mix09 talk here.

Out of Browser / Run on Desktop – this is pretty major – you can now right click on your Silverlight application (if enabled) and select to run the application out of the browser. The application will then be “installed” on your machine with a shortcut in the Start menu, and for all intents and purposes appear like a desktop application. As a part of the application launch it will check to see if the application has been updated and download it if so, and if not simply use the cached version. Very nice. Tim Heuer has blogged about this here.

ComboBox Nightmare – the infamous “ComboBox Nightmare” that I documented in this article with Silverlight 2 has been half fixed in Silverlight 3. Now when you have cascading dropdown lists the dropdown height will be recalculated properly each time. Unfortunately no SelectedValue support as yet which it will need to be ready for business applications. I will be lobbying for this in the final version!

Another thing worth mentioning is that the new version handles a lot of the async issues when making web service calls behind the scenes. I’m also looking forward to the ClearType font rendering promised in the final version. There are numerous other new features worthwhile checking out in addition to the ones listed above. Tim Heuer lists all the new features here.

The only problem with it all is that I have two talks in 2 weeks time (SDNUG on April 2 and Code Camp in Wagga Wagga on April 4) on building Line of Business Applications in Silverlight and this news changes everything!  I am working on new versions of the presentations now, as the vast majority of my subject matter (summary lists, server communication, edit details forms, validation, etc) is now obsolete with better solutions now available in Silverlight 3.  In fact, I think the only major topic they didn’t infringe on was my reporting solution (which Silverlight 4 will do away with if it has printing support)!  Though Silverlight 3 is in beta and doesn’t have a go-live license as yet I see little point presenting my solutions to building business applications in Silverlight 2 and the workarounds I used, as these new features change the entire landscape for developers, and though we don’t know how long it will be until go-live I see little benefit in starting developing new business applications in Silverlight 2. With these updates Silverlight is really heading in the right direction. I might even go so far to say these updates make Silverlight the best platform in their suite for building business applications upon.

Expect a new release of my business application framework for Silverlight coming sometime in the near future!  The next release will have major styling improvements (along with a 7 part article series on styling), including a drop-in DLL that will provide much of the structural framework for your application (note I am still investigating the new navigation framework in Silverlight 3 and maybe working in with that instead).  It will specifically cater for Silverlight 3 projects, providing an additional layer to what has been announced from Mix09.

New Silverlight Write And Win Competition


A few months ago as I was getting into Silverlight I wrote an article on building a line of business application in Silverlight and entered it into a competition on the SilverlightShow.net website and came second.  Since then I’ve continued writing additional articles in this series for the SilverlightShow.net website that have been very popular.  Well this competition is being run again, with the details here:


When this competition was run previously the winners were determined by votes from the community.  This time however the winners will be determined by a panel of experts, of which I’ve been invited to be on.  This is quite an honour for me as I hold all the judges in very high esteem (they are the biggest names in the Silverlight community) and I feel privileged to be in their company.

There are awesome prizes on offer so if you’re looking to get into Silverlight or are looking to make a name for yourself there are good incentives to get writing.  I’m not accepting any bribes :), but I will list some of the criteria I’d expect in the articles I give the most points to:

  • – This is an article competition, so the judging will be based upon the article itself – not the accompanying program or code.  You may write a brilliant program, but the program/code should be seen as supporting the article – it should not be seen as the entry itself.  That’s not to say the program/code isn’t important or required, but it’s not the primary focus.  So don’t spend all your time on the code then leave the article until the last minute!
  • – Not all entrants will be from an English speaking background so I won’t place a lot of emphasis on your spelling or grammar.  The article should be easy and enjoyable to read however.
  • – The quality of the article is more important than its quantity (ie. its length).  You might have noticed that my articles tend to be long (the last one coming close to 7000 words) but often shorter is better.  Clarity is the key, and the longer the article the longer you need to hold the reader’s attention for.
  • – The quality of code is not vital, but does indicate your prowess as a developer.
  • – You shouldn’t need to put swathes of code in your article – just note some interesting or unusual snippets worth mentioning.
  • – Talk about your decision making process – why you did one thing and not the other, what alternatives you had, problems you encountered, your experience working with Silverlight as opposed to other technologies, etc.
  • – The topic you choose may be rated partially on its uniqueness and its usefulness to regular Silverlight developers.  Some topics have been done to death (obtaining data from a web service is one of those) so avoid those unless you have something different to say.

These probably won’t be all the criteria, but are just those I can think of off the top of my head.  I look forward to reading your entry!

Building a Silverlight Line-Of-Business Application – Part 5

Part 5 of my series on building a line-of-business application with Silverlight is now available on the SilverlightShow.net website here:


The focus of this article is building the data entry form for a product – it sounds simple but there were quite a few issues to workaround.

Building A Line-Of-Business Application Part 4

Part 4 of my series on building a line-of-business application with Silverlight is now available on the SilverlightShow.net website here:


It’s been a few weeks coming but there has been a lot of development involved and a few rather difficult challenges to overcome.  The topics I originally intended to cover ended up being split in half due to the huge amount of area that it would have covered (this article is over 4000 words on its own), so for this article I’m focusing just on developing a business object framework and implementing a business object using it.  It’s not overly Silverlight focused but very important to get right when building a line of business application.  I’ll make up for the lack of Silverlight focus in the next article, which will be available early next week when I discuss building a Silverlight data entry form.  All the code for this is already available and the demo has been updated too – you can get to it from the article.