Visual Studio Lightswitch grows to support cloud, plug-ins

Microsoft has announced the second beta of its Visual Studio Lightswitch …

Microsoft announced yesterday the second beta of Visual Studio Lightswitch, its new business application-oriented development framework. New to this beta is support for third-party extensions as well as application deployment to Microsoft's Windows Azure cloud computing platform.

In spite of its "Visual Studio" branding and availability via MSDN, Lightswitch is not aimed at traditional, professional developers. Rather, its purpose is to assist business users in developing line-of-business applications. There is a rich history of this kind of program—simple database or spreadsheet-driven applications, developed by accountants, or business analysts, or other nonprofessional developers to assist in some business task. The programs are often quirky, temperamental, and developed in unique and unconventional programming styles, but they have an important feature: they work, and they do something useful at relatively low cost to the business. These applications are typically developed in Access, Excel, and perhaps even Visual Basic 6. Often, the programs become essential to the business, shared among members of a department, and distributed and used far more widely than their creator ever intended.

It's at this point in their lifetime that professional developers often become involved, after the company that has become so dependent on the software discovers that Access doesn't actually work very well when you have a dozen people all trying to use the same database at the same time. So the professionals inherit undocumented, badly structured software and are then tasked with making it good, or at least fit for its newly expanded role. This tends to make future development expensive and complex.

It's this kind of application—and this kind of nonprofessional development—that Lightswitch is aimed at. The goal is to make these applications better for all involved. For the nonprofessional developer, it will provide all the tools they need to quickly assemble their program. The applications will tend to be simple—a database supporting the standard create/read/update/delete operations, reporting, graphing or charting of the data, a little light number crunching—and Lightswitch provides templates for screens with prebuilt functionality to support these operations, easy database connectivity, data validation, and so on. This is where the newly announced third-party extensibility comes into play: third parties will now be able to provide features like new screen templates, database connectors, and themes, further extending the capabilities of the product.

And for the professional developers who often end up supporting and extending these programs? Lightswitch provides a more structured environment for development, ensuring that whatever the pros inherit is better-designed and more easily understood. Instead of cobbled-together Access databases, they'll get good, clean, well-structured programs. If Lightswitch gains market traction, it will be a big win for all involved.

The new beta is available to MSDN Subscribers, and from March 17, to the general public. The beta is available in English and German; a Japanese version was planned, but has been delayed. Final availability will occur later this year.

29 Reader Comments

It's at this point in their lifetime that professional developers often become involved, after the company that has become so dependent on the software discovers that Access doesn't actually work very well when you have a dozen people all trying to use the same database at the same time. So the professionals inherit undocumented, badly structured software and are then tasked with making it good, or at least fit for its newly expanded role. This tends to make future development expensive and complex.

This. I am actually working on several projects that started in, of all things, FileMaker.... I actually hit the point where I said that I no longer would try to support projects developed in it because of how horrible it's been trying to convince the people who use them that FileMaker just doesn't do what they are asking it to. When someone in the company comes and asks why FileMaker isn't doing something right, I want to curl up in a ball, covering my ears and talk gibberish until they feel awkward and leave...

Maybe I might be able to convince them to temporarily use Lightswitch when it comes out until I can get in and write a real application that they want...

Lightswitch provides a more structured environment for development, ensuring that whatever the pros inherit is better-designed and more easily understood. Instead of cobbled-together Access databases, they'll get good, clean, well-structured programs.

I'll believe it when I see it. In my experience there is no such thing as a programming environment that doesn't let people make horribly structured code. Its the same thing as building an idiot proof car or computer or VCR/DVD/Bluray player (as the case may be). Build a idiot proof code environment and the world will just build you a better idiot.

And for the professional developers who often end up supporting and extending these programs? Lightswitch provides a more structured environment for development, ensuring that whatever the pros inherit is better-designed and more easily understood. Instead of cobbled-together Access databases, they'll get good, clean, well-structured programs

I'll believe it when I see it. If the person building the app doesn't think like a developer, developers are going to inherit apps with incomprehensible logic to them.

But at least they'll be web-based apps that inherently support multiuser access right out of the gate. I guess that's enough of an improvement to justify your statement.

The phrase "a development tool for non-developers." should send chills down any developer's spine. I shudder to think what awful applications created with this tool developers will be tasked with maintaining 10 years from now.

And for the professional developers who often end up supporting and extending these programs? Lightswitch provides a more structured environment for development, ensuring that whatever the pros inherit is better-designed and more easily understood. Instead of cobbled-together Access databases, they'll get good, clean, well-structured programs

I'll believe it when I see it. If the person building the app doesn't think like a developer, developers are going to inherit apps with incomprehensible logic to them.

But at least they'll be web-based apps that inherently support multiuser access right out of the gate. I guess that's enough of an improvement to justify your statement.

Perhaps they mean they've made it easy to rip apart the software and replace it. Access is nearly impossible to do this to because the databases are always designed so badly. I can hope...

I understand the trepidations of my fellow developers here, but if they manage to make incremental gains it will be better than nothing. At least Microsoft is trying to improve things here, and I'm willing to give them credit for that.

Edit: JSawyer, I'm guessing you mean no offense, but that comment seems a little awkward to say the least.

Call me pessimistic, but it seems to me this would just mean that these little apps can stay underground even longer before they reach that maintenance pain point where us professionals get called in. Which then means they'll have spent even more time accreting into the fetid mass of undocumented business rules and bad data that these always become, and be an even bigger headache to untangle. I can't see it helping unless it's really restrictive about how you build the applications, in which case users will just go back to Excel, VBA, and Access.

I understand the trepidations of my fellow developers here, but if they manage to make incremental gains it will be better than nothing. At least Microsoft is trying to improve things here, and I'm willing to give them credit for that.

You could look at it that way, but you'd be wrong (IMO). The way I see it MS is giving a bunch of idiot non-developers a large gun aimed at their feet and saying "here use this". In other words, they are encouraging people who know nothing about software to write software. It will not end well.

You could look at it that way, but you'd be wrong (IMO). The way I see it MS is giving a bunch of idiot non-developers a large gun aimed at their feet and saying "here use this". In other words, they are encouraging people who know nothing about software to write software. It will not end well.

And this situation differs from Access/Excel/VBA how exactly?

Maybe I'm being too optimistic, but I don't see how it could make things necessarily worse.

I understand the trepidations of my fellow developers here, but if they manage to make incremental gains it will be better than nothing. At least Microsoft is trying to improve things here, and I'm willing to give them credit for that.

You could look at it that way, but you'd be wrong (IMO). The way I see it MS is giving a bunch of idiot non-developers a large gun aimed at their feet and saying "here use this". In other words, they are encouraging people who know nothing about software to write software. It will not end well.

I think you're looking at it all wrong. These users already write software. They do it in Excel and Access (and I've even seen Word Macros). If this tool makes life easier for both the non-developer business analyst that needs to create tools to help him work, and (hopefully) the developer that will have to support it when the rest of the BA team decides to adopt it, then it's a true win-win.

I look forward to seeing this tool in action, and depending on how well it works, I might suggest it to all my clients with technical needs, but no budget to hire us for little projects.

Definitely looking forward to trying this, for smaller businesses I can see a huge boon. I'm an accountant, but I did a programming degree, so I've been made chief excel guy at my smallish firm. Trying to switch over to webapps is simply a too arduous task for myself (I'm simply not given the time to do it and there's the concern that if I leave, the knowledge goes with it, whereas there's a few people who hack apart excel spreadsheets). Plus it's been 5 years since I finished university, I only really know Microsoft products well now and that applies to a few people I work with. This looks like the perfect midground, we're never going to bring in external developers (too small) and there's no off the shelf products that suit our needs, but we can at least improve fairly dramatically, bring in some logic and cleanliness to what is otherwise a mess of spreadsheets.

The phrase "a development tool for non-developers." should send chills down any developer's spine. I shudder to think what awful applications created with this tool developers will be tasked with maintaining 10 years from now.

No worse than the crappy Access applications or Excel macros that people use right now. There are companies for which core parts of their business depends on crappy Access applications which don't scale and don't necessarily work very well over VPN connections or for remote offices.

Of course there are also crappy "professional" developers who makes crappy software which, at some point, other non-crappy developers have to fix or maintain (the dailywtf.com is rife with such horror stories).

I understand the trepidations of my fellow developers here, but if they manage to make incremental gains it will be better than nothing. At least Microsoft is trying to improve things here, and I'm willing to give them credit for that.

You could look at it that way, but you'd be wrong (IMO). The way I see it MS is giving a bunch of idiot non-developers a large gun aimed at their feet and saying "here use this". In other words, they are encouraging people who know nothing about software to write software. It will not end well.

I think you're looking at it all wrong. These users already write software. They do it in Excel and Access (and I've even seen Word Macros). If this tool makes life easier for both the non-developer business analyst that needs to create tools to help him work, and (hopefully) the developer that will have to support it when the rest of the BA team decides to adopt it, then it's a true win-win.

I look forward to seeing this tool in action, and depending on how well it works, I might suggest it to all my clients with technical needs, but no budget to hire us for little projects.

Right, of course they write software today. Where you and I disagree is whether this is in any way what so ever a good thing. I consider it to be terrible. MS claims, and you're believing, that this tool will somehow improve the situation. As a software engineer my opinion is that it will only serve to make it worse by encouraging even more shitty internal tools. As I stated before: there is no such thing as an idiot proof design environment. They will just take this new one and do more terrible things with it, period.

I’m going to make a prediction; Everything about this product, not the least of which is its use of “Visual Studio” in the name, will embolden people that don’t know WTF they are doing to make an even bigger and more intractable mess before the professionals get the emergency call to come try pull it out of the fire.

I understand the trepidations of my fellow developers here, but if they manage to make incremental gains it will be better than nothing. At least Microsoft is trying to improve things here, and I'm willing to give them credit for that.

You could look at it that way, but you'd be wrong (IMO). The way I see it MS is giving a bunch of idiot non-developers a large gun aimed at their feet and saying "here use this". In other words, they are encouraging people who know nothing about software to write software. It will not end well.

I think you're looking at it all wrong. These users already write software. They do it in Excel and Access (and I've even seen Word Macros). If this tool makes life easier for both the non-developer business analyst that needs to create tools to help him work, and (hopefully) the developer that will have to support it when the rest of the BA team decides to adopt it, then it's a true win-win.

I look forward to seeing this tool in action, and depending on how well it works, I might suggest it to all my clients with technical needs, but no budget to hire us for little projects.

Right, of course they write software today. Where you and I disagree is whether this is in any way what so ever a good thing. I consider it to be terrible. MS claims, and you're believing, that this tool will somehow improve the situation. As a software engineer my opinion is that it will only serve to make it worse by encouraging even more shitty internal tools. As I stated before: there is no such thing as an idiot proof design environment. They will just take this new one and do more terrible things with it, period.

And shitty non-professionally developed tools exist because non-shitty tools and developers have a non-zero (very shitty!) budget. So, unless you're going to start working for free, shitty tools are going to exist because people, being the shitheads that they are, are going to want to do the best they can with the tools (or shit, in your parlance) they are allowed to have. It's amazingly useful for them, even if it appears to be shit to you. These "terrible things" you're referring to allow people to get their stuff done without having to spend all their fucking time at work. You know, so they can go home and not spend all day at their shitty jobs doing shitty things that you poor poor "real" developers will be forced to condescend to fix later because they've become useful to the company and are suddenly worth having an actual budget to do the right way.

I wonder if Peter is confusing Lightswitch with WebMatrix. The reviews I have read say that WebMatrix is aimed at end users for simple websites, but Lightswitch is aimed at developers. It does, after all, install in Visual Studio. Cf. http://arstechnica.com/microsoft/news/2 ... switch.ars

I wonder if Peter is confusing Lightswitch with WebMatrix. The reviews I have read say that WebMatrix is aimed at end users for simple websites, but Lightswitch is aimed at developers. It does, after all, install in Visual Studio. Cf. http://arstechnica.com/microsoft/news/2 ... switch.ars

I talked extensively with Microsoft about the exact targeting of Lightswitch last week, so I'm quite confident in my description. WebMatrix is much more programmery.

Access with linked tables and scripted in vb is no less valid or difficult an approach as doing the same with JavaScript and PHP with a browser. In fact, for rapid generation of forms and reports it is arguably much better in terms of dev time and app-like user experience.

And shitty non-professionally developed tools exist because non-shitty tools and developers have a non-zero (very shitty!) budget. So, unless you're going to start working for free, shitty tools are going to exist because people, being the shitheads that they are, are going to want to do the best they can with the tools (or shit, in your parlance) they are allowed to have. It's amazingly useful for them, even if it appears to be shit to you. These "terrible things" you're referring to allow people to get their stuff done without having to spend all their fucking time at work. You know, so they can go home and not spend all day at their shitty jobs doing shitty things that you poor poor "real" developers will be forced to condescend to fix later because they've become useful to the company and are suddenly worth having an actual budget to do the right way.

I totally understand all this. I just hate every bit of it because I'm the poor son of a bitch that gets to fix it all when it goes south. So I apologize if I don't greet this with the fanfare that the shitheads will greet it with, but its not a happy thing from my perspective.

And shitty non-professionally developed tools exist because non-shitty tools and developers have a non-zero (very shitty!) budget. So, unless you're going to start working for free, shitty tools are going to exist because people, being the shitheads that they are, are going to want to do the best they can with the tools (or shit, in your parlance) they are allowed to have. It's amazingly useful for them, even if it appears to be shit to you. These "terrible things" you're referring to allow people to get their stuff done without having to spend all their fucking time at work. You know, so they can go home and not spend all day at their shitty jobs doing shitty things that you poor poor "real" developers will be forced to condescend to fix later because they've become useful to the company and are suddenly worth having an actual budget to do the right way.

I totally understand all this. I just hate every bit of it because I'm the poor son of a bitch that gets to fix it all when it goes south. So I apologize if I don't greet this with the fanfare that the shitheads will greet it with, but its not a happy thing from my perspective.

Well, the good news is, if it's not included with an MS Office site license you'll never see it. :-/ (You want what? Oh, that's extra. Sorry, no.)

And shitty non-professionally developed tools exist because non-shitty tools and developers have a non-zero (very shitty!) budget. So, unless you're going to start working for free, shitty tools are going to exist because people, being the shitheads that they are, are going to want to do the best they can with the tools (or shit, in your parlance) they are allowed to have. It's amazingly useful for them, even if it appears to be shit to you. These "terrible things" you're referring to allow people to get their stuff done without having to spend all their fucking time at work. You know, so they can go home and not spend all day at their shitty jobs doing shitty things that you poor poor "real" developers will be forced to condescend to fix later because they've become useful to the company and are suddenly worth having an actual budget to do the right way.

I totally understand all this. I just hate every bit of it because I'm the poor son of a bitch that gets to fix it all when it goes south. So I apologize if I don't greet this with the fanfare that the shitheads will greet it with, but its not a happy thing from my perspective.

Man, poor you, you have shitty aspects to your job thanks to others acting in a way that suits their current workload and not thinking about your working environment? None of us in the rest of the world ever need to deal with that, we get given perfect scenarios every time, everything is perfectly thought out and well budgeted for, you're really the only one in that nightmare.

Look at it this way, if everything was done perfectly the first time, that spreadsheet first rolled out 10 years ago was actually a perfectly written application, you'd probably wouldn't have a job to even do. As it stands, software shouldn't last all that long anyway, or at it least it should be a constantly improving thing to meet new needs and demands. The KPI I need to calculate today might be completely different if the bank decides that the conditions they put on a loan is better reflected by a new calculation, so software is rewritten to suit. That's when it gets fixed and cleaned up and how it worked in the real world can be looked at, and you can clean it up somewhat.

Access with linked tables and scripted in vb is no less valid or difficult an approach as doing the same with JavaScript and PHP with a browser. In fact, for rapid generation of forms and reports it is arguably much better in terms of dev time and app-like user experience.

Like anything else it can be done very well or terribly.

No, no, a thousand times no. Access front ends and MDE's are an abomination. If nothing else, the fact that you can't use source control or proper versioning makes it a completely invalid choice for anything remotely professional. There are free versions of VS and SQL server, not to mention open source alternatives. There is no excuse for using Access, except ignorance. Ignorance is fine for an end user, but if you're calling yourself a professional you need to do better.

I understand the trepidations of my fellow developers here, but if they manage to make incremental gains it will be better than nothing. At least Microsoft is trying to improve things here, and I'm willing to give them credit for that.

You could look at it that way, but you'd be wrong (IMO). The way I see it MS is giving a bunch of idiot non-developers a large gun aimed at their feet and saying "here use this". In other words, they are encouraging people who know nothing about software to write software. It will not end well.

I think you're looking at it all wrong. These users already write software. They do it in Excel and Access (and I've even seen Word Macros). If this tool makes life easier for both the non-developer business analyst that needs to create tools to help him work, and (hopefully) the developer that will have to support it when the rest of the BA team decides to adopt it, then it's a true win-win.

I look forward to seeing this tool in action, and depending on how well it works, I might suggest it to all my clients with technical needs, but no budget to hire us for little projects.

Right, of course they write software today. Where you and I disagree is whether this is in any way what so ever a good thing. I consider it to be terrible. MS claims, and you're believing, that this tool will somehow improve the situation. As a software engineer my opinion is that it will only serve to make it worse by encouraging even more shitty internal tools. As I stated before: there is no such thing as an idiot proof design environment. They will just take this new one and do more terrible things with it, period.

I don't give a flying fuck if you think it's "good" or not,and neither does the marketplace. The simple fact is it happens, and business needs to support it. As such, MS is offering tools to make that option less horrible (potentially) for both the business user that needs the tool they're developing, and the eventual developer that will have to support it.

I know its 6AM and I've been up all night, but I can't make any sense out of this other than that it is completely off topic racism that you think is somehow humorous. Are you my uncle-in-law? If so, how did you get a computer and internet?!

Access with linked tables and scripted in vb is no less valid or difficult an approach as doing the same with JavaScript and PHP with a browser. In fact, for rapid generation of forms and reports it is arguably much better in terms of dev time and app-like user experience.

Like anything else it can be done very well or terribly.

No, no, a thousand times no. Access front ends and MDE's are an abomination. If nothing else, the fact that you can't use source control or proper versioning makes it a completely invalid choice for anything remotely professional. There are free versions of VS and SQL server, not to mention open source alternatives. There is no excuse for using Access, except ignorance. Ignorance is fine for an end user, but if you're calling yourself a professional you need to do better.

Access front ends are rarely designed by large teams, or even teams at all. The back end for important apps is SQL server. As such, the need for version control is minimal at best. The front ends are in fact better looking and more responsive, and more natural, than most web applications. They are not in any way an abomination. With care they look great and you get stuff out of the box that takes weeks or months to do in PHP or C#. The runtime apps can be served over terminal services/remoteapps to any user much more securely than most web apps.

You have no idea what the hell you are talking about. You demonstrate only that you are prejudiced toward one toolchain or another, instead of choosing the right tool for the job. This in turn indicates that as a professional you probably suck, speaking one professional to another. I've written plenty of apps and APIs in C/C++ as well as Java, from embedded devices (Palm/RIM), to server side, and have to say that the professional who tries to write these data driven apps in Visual C# is normally an idiot or looking for make-work.

Access with linked tables and scripted in vb is no less valid or difficult an approach as doing the same with JavaScript and PHP with a browser. In fact, for rapid generation of forms and reports it is arguably much better in terms of dev time and app-like user experience.

Like anything else it can be done very well or terribly.

No, no, a thousand times no. Access front ends and MDE's are an abomination. If nothing else, the fact that you can't use source control or proper versioning makes it a completely invalid choice for anything remotely professional. There are free versions of VS and SQL server, not to mention open source alternatives. There is no excuse for using Access, except ignorance. Ignorance is fine for an end user, but if you're calling yourself a professional you need to do better.

Access front ends are rarely designed by large teams, or even teams at all. The back end for important apps is SQL server. As such, the need for version control is minimal at best. The front ends are in fact better looking and more responsive, and more natural, than most web applications. They are not in any way an abomination. With care they look great and you get stuff out of the box that takes weeks or months to do in PHP or C#. The runtime apps can be served over terminal services/remoteapps to any user much more securely than most web apps.

You have no idea what the hell you are talking about. You demonstrate only that you are prejudiced toward one toolchain or another, instead of choosing the right tool for the job. This in turn indicates that as a professional you probably suck, speaking one professional to another. I've written plenty of apps and APIs in C/C++ as well as Java, from embedded devices (Palm/RIM), to server side, and have to say that the professional who tries to write these data driven apps in Visual C# is normally an idiot or looking for make-work.

It's just a front end, and a damn good one.

I'll have to disagree with you on the last part, just because you are doing exactly what he did: disregarding a tool (C#) for a given situation, as I have been there, trying to fix a Office solution that was distributed to partners of the company and there were many issues, mostly because each partner used a different version of Office (XP,2003 and 2007) and the amount of bad design and coding (the guy made a complete standalone tool, with windows and such written using VBA). So, we just wrote a C# version, using SQLlite and the embedded Crystal Reports in VS, that would allow him to distribute the tool and guarantee it would work in any client running any version of Windows (XP and above) and to let them udpate pricing by donwloading new quarterly pricing as it was made available. It was an important sales tool (running a couple of million dollars in a couple of countries, but there was no budget to do it properly - a web based solution).

Access with linked tables and scripted in vb is no less valid or difficult an approach as doing the same with JavaScript and PHP with a browser. In fact, for rapid generation of forms and reports it is arguably much better in terms of dev time and app-like user experience.

Like anything else it can be done very well or terribly.

No, no, a thousand times no. Access front ends and MDE's are an abomination. If nothing else, the fact that you can't use source control or proper versioning makes it a completely invalid choice for anything remotely professional. There are free versions of VS and SQL server, not to mention open source alternatives. There is no excuse for using Access, except ignorance. Ignorance is fine for an end user, but if you're calling yourself a professional you need to do better.

Access front ends are rarely designed by large teams, or even teams at all. The back end for important apps is SQL server. As such, the need for version control is minimal at best. The front ends are in fact better looking and more responsive, and more natural, than most web applications. They are not in any way an abomination. With care they look great and you get stuff out of the box that takes weeks or months to do in PHP or C#. The runtime apps can be served over terminal services/remoteapps to any user much more securely than most web apps.

You have no idea what the hell you are talking about. You demonstrate only that you are prejudiced toward one toolchain or another, instead of choosing the right tool for the job. This in turn indicates that as a professional you probably suck, speaking one professional to another. I've written plenty of apps and APIs in C/C++ as well as Java, from embedded devices (Palm/RIM), to server side, and have to say that the professional who tries to write these data driven apps in Visual C# is normally an idiot or looking for make-work.

It's just a front end, and a damn good one.

I'll have to disagree with you on the last part, just because you are doing exactly what he did: disregarding a tool (C#) for a given situation, as I have been there, trying to fix a Office solution that was distributed to partners of the company and there were many issues, mostly because each partner used a different version of Office (XP,2003 and 2007) and the amount of bad design and coding (the guy made a complete standalone tool, with windows and such written using VBA). So, we just wrote a C# version, using SQLlite and the embedded Crystal Reports in VS, that would allow him to distribute the tool and guarantee it would work in any client running any version of Windows (XP and above) and to let them udpate pricing by donwloading new quarterly pricing as it was made available. It was an important sales tool (running a couple of million dollars in a couple of countries, but there was no budget to do it properly - a web based solution).

I used the word "normally". I don't know the specifics of your situation. The access runtime is normally used for distribution and will work on different Windows versions. Nowadays there is also the option of using VMWare thin provisioning or remote application services (citrix or Microsoft) for deployment. These technologies entirely get around those version issues that might remain should the runtime prove indequate. This is not say that visual c# is never the answer for these types of formlreport apps, bit those situations are very few.