Okay, so I have blogged a few entries on how to this and that on Visual Studio Lightswitch. And I have gotten a lot of questions offline from folks who want to try it out. I have remembered several of the questions, and here are the things that I had to say, as answers.
But first, I would like to put everything in its proper context.
First, LightSwitch was made to be a tool for those with a beginner’s level (if not level 0) in programming. Although it makes use of pretty advanced technology/ies, it was not made primarily to develop enterprise level applications. It is more fit (IMHO) for smaller, probably single office/department applications that would require connectivity within the group. So for those who are into developing Enterprise level apps, LS is not for you. But if you are just pretending to be a developer of Enterprise Level apps.. well.. try notepad.
Second, I look at lightswitch as what I call a “New generation RAD tool”, nothing more. It is not the answer to all your problems.
And lastly, although I was able to illustrate that VS-LS uses industry accepted pattern and tools like MVVM, Entity Framework and Silverlight 4, this does not equate to one being an expert in any of these technologies even if one has already built and deployed an application using VS-LS.
At first glance, VS LS looks like a fun tool, and nothing more than that. But I did try to dig deeper and saw that there are two angles one might try to look at.
- How lightswitch was made and
- What lightswitch can make.
On how lightswitch was made, or deeper on what technologies it brings to the user, I am quite happy. Visual Studio LightSwitch was made to create small applications from scratch, with the least amount of coding as possible. Just imagine a tool that allows you to keep track of your cellphone contacts with the ability to search, filter, validate and deploy on either the desktop of the web, with zero lines of code. You will get menus, buttons, error messages, tabs, validation messages, dropdown data entry for phone numbers without needing to learn VB.Net or C#. This might get you to think that even a non-IT or a non-Developer person can make such, and I won’t blame you for that, because I also believe that is true.
There is one thing I can say about VS-LS though, that might surprise some. I am basing this on the fact, that VS-LS is available for free. Yes, all the things I wrote about, for free? Well it is a free world, and I am free to speculate as much as I want.. and blog about it. Hahaha!
For all those that are not in the know, most technologies we use are military products. Remote controlled planes, cars etc. GPS, NightVision Goggles and a lot more. I see this as like the same with technology in the software development arena. I see LS as a tool, whose parts are remnants of technologies used for developing MS-Sharepoint. If one looks deeper into a deployed Sharepoint site, and how it is maintained, the automation behind it and the patterns used for deployment, you might see some familiar stuff, and common with VS-LS. So in short, I see LS as more of a by-product than a whole product in itself. I know what I just wrote looks to be demeaning to the builders of VS-LS, but I see it as a very smart way of putting together available technology to build a totally separate application that can hold its own as a separate product. Not enough of that running around nowadays.
On what lightswitch can make, I have already expressed the essence of my thoughts. It is safer to look at VS-LS as a tool to create small apps, and that’s it. If one looks at it closer, one will see that the possibilities are huge. I know VS-LS can build larger apps. Its ability to hook up with RIA datasources and existing datasources gives it the ability to consume data from an enterprise level database. But access to a big DB does not make a small app an enterprise app. And if one does decide to use VS-LS to create such a large scaled app, then one should prepare for a lot of effort and tweaking. With that, I am not saying that it is impossible for one to make such a large scale app using LS, just prepare some headache tablets.
One dangerous note that I have though with VS-LS comes from VS-LS’ good feature. The fact that it uses current technologies to create an application is somewhat of a worry for me. I have often seen applicants trying to be accepted as developers. And when I look at their CV, sometimes, I get impressed. I see numerous technologies written down for each project they have either completed or have been a part of. JQuery, MVC, t-SQL, ASP.Net etc. I use these to guide the interview. Then I find out that the applicant who claims on paper that he/she has been administering a DB for the past year doesn’t even know the difference between a toupee and a tuple. Get my drift?
That interview would go..
Me: “Ah.. I see here you are familiar with EF, MVVM and Silverlight OOB. Why did you choose MVVM over MVC on such a recent project?”
Applicant: “Because MVVM has more letters than MVC?”
Me: “ah.. you used LightSwitch for this?”
Applicant: “yes sir.”
I know it is unfair to blame this on VS-LS, so I am not going to do that. This is a people problem, and a separate topic for a separate blog. J