Team Development Series–Part 1: Introduction (Peter Hauge)

We recently announced a new version of LightSwitch available in Visual Studio 2013 Preview!  In this post we’ll discuss Team Development as one of our major investment areas for Visual Studio 2013 and how the latest version dramatically improves the experience working in teams on your LightSwitch project.

Visual Studio LightSwitch is a rapid development environment for building line of business applications for the desktop and mobile devices.  As more enterprises have adopted LightSwitch we’ve received lots of feedback that building larger & more complex line of business apps is critical.  To scale out the development experiences to better align with the complexity of applications, we needed to rethink the way teams interact when working in Visual Studio.

The changes necessary to truly enable multi-developer teams working on the same LightSwitch project required architectural changes to the product.  You’ve seen some of the key ones already with our prior post on Solution Explorer Enhancements.  A quick note on Upgrade, you can bring forward your Visual Studio 2012 projects automatically!  Just open the projects in Visual Studio 2013 and we’ll make the changes for you so you can take advantage of the new features!  (NOTE:  Upgrading a project created in a prior version of Visual Studio is a 1-way transform, you won’t be able to continue working on this project with prior versions of Visual Studio after upgrade.)

imageKey Architecture Changes supporting Team Development

Flat Project Structure:  We used to have a ‘nested’ project structure, where the Server & Client projects were sub-projects of the main LightSwitch project.  We’ve found that this is a very unusual project hierarchy in Visual Studio and there were many features (and 3rd party tools) that didn’t work well with this structure.  Source Code Control was a key area impacted by our nested projects where none of the 3rd party SCC add-ins worked properly with common operations (check in, get latest, etc).  Now that we have a flat project structure the SCC providers work as expected, along with other built-in Visual Studio tools like FX Cop, Code Map, etc., are all working!

Breaking up the model:  If you’re not familiar with our model, take a look the Architectural Overview by Stephen Provine.  In Visual Studio 2012, the definitions and information for all the entities, queries, screens, etc., are stored in only a few files.  The challenge with Source Code Control operations is having too much information in single files (that multiple people modify) leads to frequent manual merge operations that can go awry.  In Visual Studio 2013, we’ve divided the model so that each screen, entity and query have their own model files dramatically reducing the potential for merge conflicts.  When conflicts arise, they’re easier to understand and manage so it’s less likely to merge incorrectly.

In the series of posts we’ll talk about the following areas:

Now that Visual Studio 2013 Preview is available, please give it a spin and send us your feedback by visiting the LightSwitch forum or sending us a smile or frown from the feedback button within the product.  I’m especially interested in any feedback (smile or frown!) if you have multiple developers working on the same LightSwitch project!

-Peter Hauge, Senior Test Lead, LightSwitch Team