Tuesday, 3 April 2012

A look at LightSwitch

I have spent some time looking at LightSwitch, a Microsoft product that is in some ways similar to Stadium.

How does it create value?The primary aim of LightSwitch is to create business applications in a rapid manner.

Target users

LightSwitch is primarily targeted at developers who need to rapidly produce business applications.  It is very much part of Visual Studio and the application designer uses the Visual Studio IDE.

There are however contradicting statements from Microsoft regarding the target user:

Marketing saying it is aimed at at non-developers:


Jason Zander, corporate vice president of the Visual Studio Team in the Developer division says it is aimed at developers:


Microsoft is sending out a very confusing message but my impression is that it is definitely aimed at developers. In order to achieve anything substantial, coding is required.

Data and Screens

LightSwitch is focussed on building business applications and most business applications consist of at least two things:
  • Data
  • Screens
There is a clear split between these two in LightSwitch. User first defines the data for an application by creating an 'entity'.
Entity
This 'entity' can be linked to a new table in the database or an existing table. The user can then design the screen and link to it to the entity.

I like this clear separation between data and screens.

Screen designer

LightSwitch's screen designer does not have a WYSIWYG editor and I find the model very confusing. Here is an example of how the model looks:


It is not easy to map the design time concepts to the final screen and this requires some serious effort.

Screen templatesWhen user creates a new screen, user can choose from a list of templates. This is a great way the speed up the design process and I like this approach.


Business Logic
In order to specify business logic, code must be written, as specified below:

'Our goal with LightSwitch is to remove a lot of the “plumbing” work and instead allow you to concentrate on the core business logic of your application so that the code you write is exactly what you want to write and no more.'

Web applicationThe final web application is a Silverlight 4.0 application and can be hosted in a browser or a desktop application. I am baffled why Silverlight and not HTML 5.0?

Here is how the the final output looks like: