One of the biggest features with LightSwitch in Visual Studio 11 is the Open Data Protocol (OData) support. OData is a standard Web protocol for exchanging data on the web which provides easy, secure access into data stores. Not only can you consume OData services in LightSwitch, the middle-tier services are also now exposed as OData service endpoints reachable by other clients. For instance, I showed how power users can easily perform analytics and reporting on your LightSwitch data using Excel PowerPivot.
However, this also allows you to create a different UI for your LightSwitch application so that you can expose it to other platforms that aren’t supported out of the box. Furthermore, all your business rules and access control logic is preserved when calling these services. Your data models, business logic, and access control logic is where you spend the bulk of your time when building a LightSwitch application and all this work is preserved.
The team has been focusing on the architecture of these services in LightSwitch as well as how to use them. Particularly:
- LightSwitch Architecture: OData
- Enhance Your LightSwitch Applications with OData
- Creating and Consuming LightSwitch OData Services
- OData Apps in LightSwitch
- Using LightSwitch OData Services in a Windows 8 Metro Style Application
The community has taken these examples even further. I’d like to call out Michael Washington who runs the www.LightSwitchHelpWebsite.com where he’s been on fire recently posting examples of companion clients. Check these out!
- A Full CRUD DataJs and KnockoutJs LightSwitch Example Using Only An .Html Page
- A Full CRUD LightSwitch JQuery Mobile Application
- Communicating With LightSwitch Using Android App Inventor
Jan van der Haegen also wrote a great MSDN Article last month using a WIndows Phone 7 client:
Opening up the middle-tier services was a major goal for LightSwitch and you can see why – it allows you to exchange data easily with other systems and clients over the Web. I’m excited to see what the community comes up with next!