Visual Studio LightSwitch is Microsoft’s attempt to reenter the non-professional software development market. The term “non-professional” is a bit of a misnomer, as Microsoft is targeting professionals in every career and industry except IT. The idea is that someone with little or no programming experience can use this tool to quickly create simple and effective line-of-business applications. As the application grows in complexity, they can then learn to use C# or VB to add business rules that cannot be expressed declaratively.
We spoke with Alessandro Del Sole, author of Microsoft Visual Studio LightSwitch Unleashed, to get some more insights into the product.
InfoQ: To begin with I would like to ask the question, "Who should be using LightSwitch?". I am starting here because LightSwitch was originally portrayed as something for non-professional programmers to build their own business applications, but yet all of the marketing seems to be directed to existing Visual Studio users.
Alessandro Del Sole: Actually LightSwitch is definitely a tool for programmers and has the goal of reaching a high number of developers, both non-professional and professional. The target audience is pretty large in my opinion, so let me try to explain what I mean.
Beginners can take advantage of a simple RAD environment and can quickly build business applications without knowing what is going behind the scenes (although it would be convenient to know something about background technologies) while pro devs can save a lot of time by avoiding the need of implementing a custom data access layer, the user interface, all the plumbing code which is made by LightSwitch but they can enhance applications by implementing additional features reusing their existing Silverlight or WPF knowledge.
LightSwitch also provides the easiest way for migrating to the .NET technologies for existing VB 6/VBA developers or Microsoft Access users. It is not surprising that a lot of interest around LightSwitch is from existing Access users.
I would say that (and I actually say this in my book) LightSwitch is intended for: Beginners who want or need to start building applications quickly without an effective background as a programmer; Professional/expert developers who want to be productive quickly and that can also enhance generated applications with custom features or extensions; existing VB 6/VBA/Access/FoxPro users who want to migrate to more modern technologies with a reasonable effort; Companies or departments that need to build internal apps for specific business requirements and this scenario can include non-professional programmers/power users. There are a lot of “power users” who aren’t pro devs but that use Access or Excel at work to automate some processes and in the case they are asked to start building departmental, distributed applications, then LightSwitch is a good choice.
Non-professional can definitely use LightSwitch to build data-centric applications for personal purposes as well. I would just say that, regardless of the target audience, LightSwitch is a good choice anytime one needs to work with data while people should consider other .NET technologies for different purposes.
InfoQ: With VB 6 and FoxPro no longer available, it is not surprising that their former users are looking for a replacement that lacks the complexity of straight .NET development. But Access is still a viable product with regular updates. So why would an Access user be tempted to switch to LightSwitch?
Alessandro: Yes, VB 6 and FoxPro developers have a great opportunity of moving to .NET (and consequently to other more modern technologies) through LightSwitch with an easier approach. Actually there is still a huge number of VB 6 developers around the World and this product has an incredible longevity, but I would absolutely encourage any VB 6 developer to explore the possibilities of LightSwitch with specific regard to business applications.
Microsoft Access is particularly popular for at least a couple of reasons: data can be stored inside a single file that you can bring with yourself anywhere, and the ease of use of the product, due to a convenient user interface and to the so-called wizards that make it easier to create data-centric applications. The disadvantage of Access is that it is not an appropriate tool for a business because networking is just partially allowed and so multiple users cannot write on the database simultaneously, there is no concurrency check and, more generally, there is no support for a distributed infrastructure. Also, a typical Access database cannot be greater than 2 GB. You can customize your business logic, but you have to know VBA which sounds old-fashioned in the time of .NET Framework 4.x.
LightSwitch can work on a single workstation as well as in distributed environments, so if you are an existing Access developer that is used to automate your processes on your own machine, you can still do the same with LightSwitch and SQL Server. This makes easier to switch to a distributed environment if required. LightSwitch focuses on the business logic, it is very efficient, it uses all the most modern technologies from Microsoft and opens to creating data-centric applications that run on the desktop, the Web, the Cloud, all using the same tooling and since it uses SQL Server as the intrinsic database engine, there's no 2 GB size limitation!
InfoQ: What do you see as the biggest limitations for LightSwitch?
Alessandro: From a developer perspective there is one thing that in my opinion should be addressed in order to make LightSwitch even better: importing stored procedures from existing SQL Server databases. For now the only way you have to use stored procs is creating a WCF RIA Service and pass through an Entity Data Model, as I describe in my book. It would be incredibly useful if this could be automated when importing database objects. This is probably a limitation, but certainly acceptable if compared to how powerful LightSwitch is. Another limitation could be the lack of a built-in reporting tool; I don't think this is a technical limitation, while it is when users have to consider migrating to LightSwitch and this is what the developer community thinks. I can tell you that tons of Access users take reporting as an important comparison point when thinking about migrating to LightSwitch. I partially agree that this is a limitation, since you have a basic export to Excel available and there are some free extensions such as the Office Integration Pack that make it easy to create basic reports. I also use to say that if LightSwitch had reporting, the price would be probably higher and it would not be nice for those guys who do not need reporting. And so, you have the freedom of deciding how much you want to spend by choosing among 3rd party reporting tools. There are solutions to limitations ;-)
InfoQ: A big fear for many IT departments is “getting suck”. This happens a lot with Access and Excel based projects where they outgrow the capabilities of the platform only after they become too large to easily convert into a traditional .NET or Java application. Should this be a concern for LightSwitch?
Alessandro: LightSwitch requires developers or power users to already have an idea of the direction the project is going to take. This is an important difference between other tools and LightSwitch. I personally consider Excel an incredibly powerful spreadsheet with business analysis capabilities, but totally far from being a structured data source (as instead a lot of people erroneously do). In LightSwitch you have a great infrastructure that can absolutely adapt to the growth of a project, and you already are on .NET. You work on a real database and so you have rules and constraints, which implies more attention, but you can certainly add data sources and functionalities to the application as the project grows. The real problem could be the lack of built-in reporting and charting tools, but you can easily solve this problem by downloading extensions from the Visual Studio Gallery; some of them provide this kind of functionalities even for free.
InfoQ: So how would you describe the ideal scenario for LightSwitch?
Alessandro: There isn't just one ideal scenario for LightSwitch, given the number of possibilities it offers. Of course you must have an application that works with data. No other usages of LightSwitch are ideal (and possible).
In this context I would probably say that an ideal scenario is business, distributed applications working over departmental networks; I build departmental applications for the organization that I work for, and LighSwitch has really been a time saver.
The next version of LightSwitch also includes OData support, which means that you will also be able of exposing your LightSwitch data to other clients such as mobile apps or business analysis tools supporting this open protocol.
InfoQ: For someone getting started with LightSwitch, what are the most significant stumbling blocks?
Alessandro: About people getting started, it depends on their level of experience. I think that if one is an absolute novice, difficulties can come from general programming concepts (such as understanding data types, understanding what a database is, and so on). If one is not a novice, I can't imagine any areas of difficulties in using the product. If the problem one needs to solve can fit in the LightSwitch's targets, then it will make things easier.
About the Interviewee
Alessandro Del Sole has been Microsoft Most Valuable Professional (MVP) for Visual Basic since July 2008. He is well known throughout the global VB community and is community leader on the Italian Visual Basic Tips and Tricks web site and co-founder of LightSwitch Tips & Tricks, first Italian community about LightSwitch. He authored Visual Basic 2010 Unleashed and Visual Studio LightSwitch Unleashed books and he is frequent contributor to the MSDN Visual Basic Developer Center. He enjoys writing articles on .NET development, writing blog posts on both his Italian and English blogs, and producing instructional videos. Alessandro has been awarded MVP Of The Year for Visual Basic in 2009, 2010, and 2011. You can find him online in forums or newsgroups.