The Anatomy of a LightSwitch Application Series Part 1 - Architecture Overview

The announcement of Visual Studio LightSwitch this week has generated a lot of discussion, and as expected a number of questions about "what is LightSwitch really building under the covers?". To help shed some light on that (sorry, couldn't resist) we're putting together a blog series that takes a more in depth look at the Anatomy of a LightSwitch application. We'll start with this high-level architectural overview and then drill into each architectural layer and other specific topics over the coming weeks.

Microsoft Visual Studio LightSwitch applications are built on a classic three-tier architecture. Each tier runs independently of the others and performs a specific role in the application. The presentation tier is responsible for human interaction with the application. Its primary concern is data visualization and editing. The logic tier processes requests from a client to fetch data, update data, or to perform other operations. This tier’s primary role is to shield direct access to the data from unwanted or invalid reads and updates. This helps to ensure the long-term integrity and security of the data. The data storage tier is responsible for durable storage of the application data.

A typical three-tier application

Designing a new three-tier application from scratch can be difficult and complex. Each tier presents a myriad of technology choices and internal system design. Each has distinct deployment and manageability concerns. Each must handle communications with the adjacent tier, and ensure secure access from trusted sources.

LightSwitch removes the complexity of building a three-tier application by making specific technology choices for you. You concentrate on the business logic and not the plumbing.

When we map the specific technologies used in LightSwitch to this architecture you find that the LightSwitch presentation tier is a Silverlight 4.0 application. It can run as a Windows desktop application or hosted in a browser. The LightSwitch logic tier exposes a set of WCF RIA DomainServices running in ASP.NET 4.0. The logic tier process can be hosted locally (on the end-user’s machine), on an IIS server, or in a Windows AzureWebRole. A LightSwitch application’s primary application storage uses SQL Server or SQL Azure and can consume data from existing SharePoint 2010 lists, databases accessible via an Entity Framework provider, and custom build WCF RIA DomainServices.

A LightSwitch 1.0 three-tier application

As you can see, a LightSwitch application is built on top of existing .NET technologies and proven architectural design patterns.

p.s. Lightswitch is desparately needed for small businesses that need low-cost/quick solutions. Snooty developers that don't have to pay for business costs out of pocket should not be judging this! I can't think of a small business that could not benefit from this.

This look really good, I'm looking forward to getting on the band waggon with this, will there or are there a Forum for this. I currently do a lot of work with ASP.NET Dynamic Data and get involved on the forum (forums.asp.net/1145.aspx), I see this as something like that but with way more potential.

I'd just like to second Mike's comment. I work for a small business (<40 employees) in the water purification industry. We are currently working with half a dozen Access databases and need to a) move to SQL server to prevent data duplication and b) update the database software to cope with the large number of records currently displayed in any combo box or search result. This technology looks like an ideal intermediate step as the business grows.

Love it conceptually. It appears to be targeted at 'small' businesses although the 3 tier architecture would imply significant scalability. Can you clarify that? For example, is it agile enough to handle a firm with a couple hundred users, a couple hundred input forms and a hundred reports? How about 1000 users?

Is this same as selecting Silverlight business application with RIA as project template in VS2010? If yes, what is the difference between LightSwitch and selecting project template as Silverlight business app with RIA Services?

Matt Evans

13 Aug 2010 1:42 PM

MikeV,

No, the Silverlight / RIA business application templates are an entirely different animal from LightSwitch.

While LightSwitch apps will use many of the same technologies already available in Visual Studio, the development experience, and the resultant LightSwitch applications, are considerably more prescriptive, and give you much more "for free" than the existing RIA/Silverlight templates do.

Lisa Morgan

19 Aug 2010 4:19 PM

I see the dust rising in the distance as thousands of Access power users trample each other to be the first to use this. This will replace Access as the work-group developer's tool of choice, in the places where the "developer" is just the power user who is least afraid to try. I see a sizeable potential user-base for this tool and I can't wait to see where MS goes with it!

I agree with Mike that there is a need for this sort of tool, a need Access and Excel have filled but without the beauty of managed code. Sure, as a professional developer I hope and believe we will always be needed, but there is a huge segment of the business-user market that needs more than a few macros will give them but way less than a complete customized solution. This is a much-needed tool to fill that gap.

Keith - Watford - UK

25 Aug 2010 1:05 PM

Watched the video , read the articles and now it's time to play! And to think, I was looking at ASP MVC 3.0, yikes. This is going to get rid of a lot of the donkey work for the Accounts/CRM app that I'd planned. I do note that there will still be the need for the clever coder. It appears to be a beautiful and well thought-out enhancement to the Visual Studio Tools. Big Tick as far as I'm concerned. PS There will no doubts be some anglo/ european customisation issues!

Joshua Ramirez

27 Aug 2010 7:28 AM

Honest Appraisal?

I'm just getting into this series. I'm a developer, one of the "snooty developers" Mike mentioned. While some part of me is dying inside while reading this, another part of me understands that this technology is sorely needed. I wouldn't compare it to the Access generation of development, but an evolution of that. Will it put developers like myself out of business? Hardly. But if successful, it will certainly have a significant impact on the development landscape of the .NET development world. The key is to embrace change, not fight it. Otherwise, you're left holding your nuts in the cold alone and confused. By nuts, I mean walnuts of course. What'd ya think I meant?