We have a Silverlight based application which currently supports only one production version. Idea is to support three concurrent versions of the same application and user will switch to the newer versions based on their interest or they can still continue with the older version.We still have to use the existing database for all these three versions. What is the best way to architect this so that we can differentiate the code between the versions and still keep the data in sync and run all the versions in parallel.