The Story of Synchronized Settings

The Story of Synchronized Settings

Rate This
  • Comments 51

As you may have read in our post about signing into Visual Studio 2013, one benefit of signing in is the ability to roam your product’s settings across machines. In this post I’ll tell you more about the Synchronized Settings feature.

When looking at feedback from customers or requests for new features that enhance productivity, a few requests easily surfaced right to the top. Everyone wanted their Visual Studio IDE installed in minutes, set up in seconds, and ready to use in a blink! This request wasn’t just about a faster install & setup process but begged us to broaden the scope of user convenience when setting up machines as well as the convenience of use during continued usage of the product. We tried to understand how we could set up the IDE the way a customer likes it without them having to make all the setting tweaks for every new install of Visual Studio. From these questions came the idea of a Connected IDE where the IDE is connected to the cloud participating in services and features that enhance the productivity of Visual Studio users.

When we asked MVPs what comes to mind when they think about a Connected IDE, one of the top answers was "Settings". That is where the journey of Synchronized Settings began.

Listening to customers

It started off as a simple idea to synchronize all settings changes from one machine to another, but we soon realized that it really wasn't as simple as that. It quickly became clear that if this capability was to work well we needed to identify the top most commonly modified settings. To learn what users expected, we asked team members (close and far), as well as customers early on to see if what we considered the top settings to synchronize matched their expectations. Feedback we got from the public survey as well as various customer councils, helped solidify the scope.

Based on feedback received from the survey we also defined some core principles to ensure we delivered a seamless and smooth synchronized settings experience:

  1. It just works
  2. Don’t disturb the developer
  3. Start with a small yet impactful scope, and learn

We decided to keep settings synchronized only within the same product families. Our product editions differ in their features, capabilities and default settings. Maintaining one set of settings that safely applied across all of them and across multiple devices created conflicts that were difficult to resolve automatically. Settings therefore synchronize between Visual Studio 2013 Professional, Premium and Ultimate editions across devices. For our Express family of products, settings will only synchronize across devices for the same edition.

Once the feature was up and running, we also conducted user studies to verify that the experience we were building around this scope was what our customers expected. Based on what we heard, we made tweaks and adjustments to the experience.

Settings we decided to synchronize, and why

The key to delivering a seamless, exciting, and impactful experience, is to pick the most impactful scope and ensure that every scenario for that scope works perfectly. Applying this strategy to Synchronized Settings we picked the top settings that our customers most often modify. These are the settings that made it in -

First Launch Settings: Default collection of settings chosen when Visual Studio is launched

When you launch Visual Studio 2013 for the first time, you will be asked to select a default collection of settings. We make a note of this default collection and then apply it on the initial configuration of subsequent machines where you sign in, so we won’t waste your time asking for the same information again.

First launch settings and theme selection dialog

Settings under Tools Options

With Synchronized Settings, IDE options like enabling line numbers, editor tab settings vs spaces, enhanced scrollbar, font size, show start page on startup will get synchronized across machines automatically for you. Here is the complete list of options that will synchronize across machines.

Settings under Tools Options that are synchronized across machines

 

Command Window Aliases

User created aliases to perform functions within Visual Studio from the Command Window will also synchronize across machines.

Command windows aliases

Fast is good!

Fast performing Visual Studio is not just expected by developers but it is most definitely important to the teams building the features. Throughout the design of Synchronized Settings we kept performance in mind. To help us identify potential performance bottlenecks and less-common error conditions we added detailed telemetry logged as anonymous product usage data. This telemetry included data on every failure and time taken for every download, upload, and application of settings. This data helped us gauge whether the feature's performance met our principles and goals. We set a high bar for performance and strove to meet it.

Feedback in all shapes and forms is important, but especially important is how our customers use the products and features we build. We rely on telemetry from customers who have opted into our Customer Experience Improvement Program via “Help -> Customer Feedback Options” to help us take data driven decisions. With Visual Studio 2013 Preview now released, the team is reviewing incoming data to help find and fix remaining performance and functional issues.

Synchronized Settings Options

Developers want control over how their product behaves, so we have an options page where you can tell us exactly which settings you’d like to keep synchronized across all machines and which ones you’d like to isolate per machine. These options are not synchronized across your machines, so any selection made here is specific to the machine it is made on.

Synchronized Settings options page

Sticking to our guiding principle of never disturbing our customers, we opted for smart defaults whenever possible as to not interrupt your work. Only when we cannot be sure of the right next step do we send you a notification. Acting on a settings conflict notification offers three choices: accepting the settings stored online (online wins), uploading local settings to all other machines (local wins), or keeping Synchronized Settings disabled on this machine.

Try it out - we want Feedback!

I’ve already mentioned how important feedback is, but here goes one more time!

Your feedback will help ensure we are providing the best user experience with the Synchronized Settings feature. We hope you will install Visual Studio 2013 Preview, try the Synchronized Settings feature, and send us feedback. It's important we hear back from you on what settings we should synchronize next. Every comment and bug is reviewed and used in the continuous improvement of the feature and product. If you find bugs or encounter something that doesn't work as expected, please send us feedback using the Visual Studio Feedback Tool or file a bug at the Visual Studio Connect site. Emotions are key! However productive we may think a feature makes you it’s important to know what it makes you feel. If you love what you see or hate it, make sure you send us a smile or frown from the upper right corner of the IDE.

We have more settings on the wish list and are aware that there will be additional settings that you'd like to see synchronized. It's important we hear back from you on what settings we should synchronize next.

Thanks!

clip_image009

Radhika Tadinada - Program Manager, Visual Studio Platform Team

Short Bio – Radhika joined Microsoft as a Program Manager on the Visual Studio team in 2011. She owns the Synchronized Settings feature and is responsible for other IDE features like search and document management.

Leave a Comment
  • Please add 8 and 5 and type the answer here:
  • Post
  • Nice post. Keep sharing such this kinds of post here and aware us from it. Keep it up.

  • Definitely needs to sync toolbars and docked windows/panes.

  • Tabs vs. Spaces settings isn't a user setting that should be synchronized, it's a project specific setting. I often times have two or more projects on the same machine (or even in the same solution) with different tabs vs. spaces settings. This particular setting should be defined in a ClassLibrary1.settings file that lives SxS with the corresponding .csproj files.

  • I'm not sure toolbars and docked windows/panes should be sync. Those settings seem pretty dependent on what your available workspace is. A larger monitor, or the availability of multiple monitors might impact the way you lay out elements of the user interface. That said, you might be able to store them as presets that can be synchronized and chosen as part of setup.

  • Can't emphasize how great this feature is. My settings are now (finally!!) synchronized between my laptop, work, and home computers. I do like what @Johnathan suggested though.. I end up doing this between assemblies for Xamarin projects and back-to-normal VS only projects.

    Keep up the good work!

    Cheers!

  • I'm glad this feature is finally part of Visual Studio - up until now I've been using an extension and separate Cloud storage to manage this, and now I don't have to! Excellent :-)

    One thing though - I would love it if you would include the syncing of code snippets with the stuff that gets synced - I have loads that I'm constantly having to copy around and to have these included would be fantastic.

  • Great work. I love visual studio. Not sure what all the crying is about, I like the new features.

  • I like the idea of synchronized settings.  I have 2 machines that I do all of my development work on, and I think it will be nice to be able to change a setting on one machine and have that apply automatically to the other machine.  Keep up the good work!

  • I'd like to be able to sync the layout of my panes in VS. I want to keep the Solution Explorer on one particular side, I want the same windows (error list, output window, breakpoints, etc.) opened in the same place, same order, etc. across all devices and versions of VS. That should be included in these synchronization options.

  • May i know why express edition can't find MFC temlate when create a new project?

  • "May i know why express edition can't find MFC temlate when create a new project?"

    Likely because Express doesn't include MFC.

  • Je ne comprends absolument rien de rien. Je suis arrivé sur le site de ARRAYFIRE et puis Cuda tool kit et maintenent ici. Je suis trop bleu pour être ici..Respect tout le monde

  • You should make it easier to opt out as well.

  • Hello Radhika Tadinada and team.

    I am adapting to the new server concept....and I quite like it.  See my comment.  I was upgrading my visual basic copy you see.

    I'd like to tell you about exactly how this work you present is making a difference.  I routinely work on influenza and infectious disease via protein data.  Having the ability to routinely craft research sets using this concept should lead to greater interchange in protein study.  For example, I plan to share a topic concerning multi drug resistance using the tools I can now reach. I was an invited presenter at Sanger, UK, several years ago where I gave a presentation on where I thought software should proceed in this regard.

    It can also impact pretty young students.  My daughter, age twelve, told me about a year ago she wanted a phone app that had it all when it came to her dog.

    She shaped the design and pushed the possibilities.  They are just about ready.

    A place for photos, weight, specific diet, input from scale, vet records, chip info, (if pet so equipped)....yes and scaleable if it makes it to the win 8 platform.  FIDO Kilo. There was one point when she talked about blue tooth to training collar.....that is not in there as yet.  Still room for more. Finance chart, ect.

    I wanted to take a moment because I seem to see many fairly negative comments.  I think rather, I should say well done, and hope you know I think this work is fantastic....and opens a brighter future.  Having trained at John Hopkins, I recognize a product group clear and effective in teaching and research.  This work is both.  I think the future might show a sales trend also. Thank you for the new tool bar and site end use. I can't wait to move forward with new ideas here in.

    M.

  • 打开编译器太慢了!对于一个学生党来说,这是没有必要的步骤啊!

Page 2 of 4 (51 items) 1234