Beauty and the Beast

In the past few weeks I’ve been playing around with Silverlight, WCF, ADO.Net Entities, and more recently some Java based in Eclipse and the Android SDK.

The Microsoft Side

Starting with Silverlight, I have had some frustrations with how “klunky” the interaction with designing UI’s is. Silly things like adding a tooltip with a number of controls on it  to an item, and using databinding to specify the text on the tooltip just doesn’t work.  If I used the Tooltip.Text=”{DataBinding Name}” attribute, it worked fine.  But if I tried to create a composite control to display in the tooltip, the databinding just didn’t work.  Googling didn’t help.

Additionally,it seems that when databinding does not quite work correctly when viewing a silverlight aplication, the entire silverlight canvas would just go “white”.  This happened not only on my sample applications written and run both on my laptop and on my PC at work, AND when using demo applications written by very respectable .Net component creators and authors.

Entities were just as frustrating.  Creating Entities from views ended up with entities that had a primary key containing EVERY single column from the view.  Trying to remove all the non-key columns using the UI required a right click and then un-ticking an option on EACH column.  There was no clear way to select all of the columns and just do it once.  Worse than that, after doing that extremely manual process, there were endless problems getting the entity model to “compile” without errors.  Eventually I had to edit the model in notepad to correct the numerous errors.

On my PC at work, when viewing the model, the entities would randomly disappear.  The only way to bring them back was to zoom in once, and zoom back out.  After doing that, the designer would display without any further errors.

I’ve heard many people praise Visual Studio.Net and especially 2008 as being incredibly stable and reliable. But from seeing these few, yet irritating, issues I can see that the starting points of their software is not always great. But given that Silverlight 2.0has been released for a while, it seems that even some of their released products are not above reproach.

One thing that I do admire though, is that the tutorials, video’s, documentation and samples available to get me started in using these technologies was really great.  There’s plenty of bloggers and resources out there to help anyone get started.  With VS.Net 2008 Express has helped make this possible. My laptop at home was using the Express editions, while my PC at work has a licensed copy the full edition. Both were able to work really well with all the new technologies.

The Java/Android/Eclipse Side

I got interested in Android a little while ago (issues with Windows Mobile mainly, and the inability to write apps for my phone if I bought an iPhone).  Android 1.5’s SDK was recently released, and so I downloaded it, and looked at their site and got some tutorial information. 

The installation instructions pointed to Eclipse and a plugin to enable integration with the Android SDK. That work all happened pretty easily. One of the first things I noticed was that the SDK documentation and surrounding pages had very few links to community sites.  Microsoft’s was teaming with links.

Then came time to run through the official Android “Notepad” tutorial.  There was a sample project to download and a bunch of steps.  The steps weren’t really logical, the code sample contained a LOT of errors that needed correcting, and I spent a LOT of time trying to figure out what I was supposed to be doing instead of actually understanding what the code was about.

As a new developer to Android, this could easily have put me off. If I was new to Java and had not recently played with XAML, it would most definitely have.  Perhaps I didn’t have the right starting points for getting to know Android, but starting at, should have given them to me.  Silverlight’s main site ( had links to loads of great resources, but I didn’t find any real alternatives on Android’s site.

What did impress me, however, was how well the Eclipse IDE worked.  It had some impressive refactoring, and intellisense abilities.  And where Microsoft “borrowed” features from Java, Android had “borrowed” from Silverlight.  Their UI design is very much similar to XAML, and the UI editor in Eclipse was pretty fully fledged.

A few of the small things that I had seen as “new features” being implemented in VS 2010, were already working in Eclipse,and I really liked some of the ability to infer creation of fields and properties on a class.

When I last used Java, there were no real IDE’s worth using (please bear in mind that this was about 9 years ago, so no flames please)  I haven’t really visited the Java world since then, so this was quite a pleasant surprise.