I tinkered with the first public beta of Microsoft’s new Lightswitch application development tool. Here’s a few initial thoughts:
- Lightswitch makes it very easy to access data in pretty rich ways. Business people who are not developers will be able to unlock corporate data in ways that would typically require a developer or significant knowledge of querying tools, etc.
- Lightswitch is easy, approachable, but there’s still some learning curve involved. Layout Items such as Vertical Stack, Horizontal Stack, Text and Picture, and so on provide rich user interface capabilities, but how long will it take users to learn how to use them properly.
- Data access is very easy — maybe too easy. Just point Lightswitch to an existing data store and go!
- Relationships to data are automatic or easy to assign. The features around these relations are very good — Master-Detail screens are super easy.
- There’s no hard deployment requirement for Lightswitch apps. Yes, it requires Silverlight, etc., but you don’t have to deliver it into an IIS farm, etc.
- OOPS! Businesses must realize that all previous points add up to the potential for major train wrecks with data. For example, data relationship features make it easy to create Master-Detail screens, but cascading deletes are just as easy.
- Businesses should take great care to ensure that all Lightswitch application development runs against TEST data. Far too many companies ignore or skip this Best Practice, but they may suffer seriously if they aren’t careful.
- Protect data at the database; not in the app. Again, this is a Best Practice for software design, but I wouldn’t expect business people to be in tune with it. DBA’s or data owners must protect production data and provide matching test databases (identical schema, data domains, security, etc.)
- Don’t prototype and expand. People will be tempted to take a Lightswitch application’s generated code, turn it into a full-fledged Silverlight project and then build from there. Don’t! Is it possible? Probably, but it’s also possible to climb stairs to the top of the Empire State Building. I suspect future versions of Lightswitch will reduce this gap (a la creating OCX’s with VB back in the day)
Lastly, I did run into several bugs — not unexpected in an early beta. One example the product team may be interested in has to do with changing screen layout in non-debug mode (Ctrl-F5 from VS2010) results in
Error: The last change wasn’t successfully persisted. Please shut down the running application. Error: Change cannot be persisted because KittyHawk is not running under debug mode.