Visual Studio LightSwitch provides a simplified development environment where you can build business applications quickly so that you can concentrate on the business logic instead of the application infrastructure.
Microsoft says: “Most business applications are forms-over-data applications that provide a UI for viewing, adding, and modifying data. When you use other development tools to build forms-over-data applications, much of your time is spent on repetitive tasks. You write code to interact with a database, you write code for the user interface, and you write code for the business logic. When you use LightSwitch, much of the repetitive work is done for you and, in fact, you can create a LightSwitch application without writing any code at all! For most applications, the only code you have to write is the code that only you can write: the business logic.”
But…Is LightSwitch the silver bullet that we were searching for? Is really a great tool or maybe it´s another RAD tool that we have to forget?
I have been working with Visual Studio LightSwitch since the first version, working with the Silverlight version. Now, the current version supports HTML instead of the Silverlight version. I will try to summarize my opinion based on the experience that I have creating apps that use LightSwitch.
If you are using the version 2012, please, update as soon as possible to use the latest version, the ultimate version is better than the first one and have more options that will help to you to do better software.
If you need to update an existing project to the latest version, you have a big challenge! The update process always is very very hard and not always works… Good luck! The update process must be improved, must be smoother for the user without any bugs. My experiences with updates are very bad, always with “bugs”… Another thing that I don´t like if that the updates don´t allow you to come back…do a backup before upgrading!
The latest version has a new HTML client to forget the Silverlight version…FALSE! The HTML version sounds good, but with the current status the new HTML version doesn’t replace the Silverlight version, is only a complement.
For example, if you want to manage your roles and users, you can only use the Silverlight version….at least if you want to use the screens that LigthSwitch generates automatically.
Another topic is the screens that generates each version. If you want a data-driven application, sure that you will need grids, paging, sort and search options, master-details….The Silverlight version is great for this goal! It seems awesome! But not the HTML version.
The HTML version generates poorer screens than the Silverlight version, not the kind of screens that I would like to see in a data-driven application. The scaffolding options are worse in the HTML version. HTML version is a good complement for the Silverlight version. The HTML version is better to create responsive UI that the user wants to see in mobile devices (Windows 8, Windows Phone, Android…). HTML based version, cross-platform, responsive….good features to make cross-platform mobile apps.
It would be better is the HTML version could be an real alternative, supporting more kind of scaffoldings to forget the Silverlight version. I would prefer not to use Silverlight.
The new version is based on JQueryMobile. Please! Change it! JQueryMobile sounds good! But it´s very hard to customize and too focused on making mobile applications. I don´t imagine a business data-driven application based on JQueryMobile.
For example, with the latest wave the Microsoft LigthSwitch team is focused on “Cloud Bussiness Apps”…How to use LigthSwitch to create data-driven apps inside SharePoint….Really is JQueryMobile UI the best option to create SharePoint apps??? No! In my opinion, it would be great change the UI framework, for example, to use BootStrap. The ASP.NET team uses BootStrap, is more powerful and easier to customize.
Another topic to improve is the integration with the ALM tools…please!! Microsoft always must offer the best integration between their tools!! Only the latest version supports integration with TFS Build and I still cannot deploy automatically on Windows Azure!
Another recommendation…Never use it for public web application and never use it if the customer don´t understand how LigthSwitch works! It´s a RAD tool that generates a lot of screens very fast saving time…but you lost the control over the application, you cannot do whatever you want. If the customer doesn’t understand it be sure that he will want features than the application doesn’t support and you’ll be in trouble. LigthSwitch works well for me to make internal or backend applications.
If you want to save time without losing the control over the application ASP.NET Scaffolding could be an intermediate solution. ASP.NET Scaffolding is a code generation framework for ASP.NET Web applications.
Even though in this post I have explain some topics that I don´t like, I really think that LightSwitch could be a great tool is everybody understand the domain context where the tool can fit and of course, understanding its limitations.
- It´s real that you can build business applications quickly .
- It´s real that that you can save time without losing time on repetitive tasks.
- It´s real that that the HTML version is easier to customize and has more extensibility points that the Silverlight version.
- For some applications, It´s real that you could create a data-driven app without writing any code at all.
- It´s real that it´s great for internal or backend applications to do the work that any developer want to do…CRUDs!
But now, Visual Studio LightSwitch is worse that Microsoft sells but is better than the developers think. Depending on the scenario Visual Studio LightSwitch could save you a lot of time if you know to use it.
And remember Microsoft :
- Complete the HTML version to forget the Silverlight version.
- Complete the HTML version with more scaffolding focused on business apps.
- Change the UI framework not to use JQueryMobile.
- Improve the update process between versions, more reliable process.
- Improve the integration with ALM tools.