July 2014 Update

Over the past couple of months we’ve been hard at work on the service side of our architecture, we’ve changed the length of our sprints from 4 weeks to 3 weeks (better alignment with other Microsoft teams), and we’ve been pushing out incremental updates to the client experiences every few weeks instead of monthly. As a result, we’ve been a little quiet here on the blog.

In this post I’ll try to catch you up and show some of the changes we’ve made to make your development experiences with Monaco that much more enjoyable.

Is my file saved?

Many online experiences don’t require an explicit “Save” action by the user to persist data. For example, I'm writing this blog in Word Online and at the bottom of the page in the status bar I can see two states: "SAVING..." and "SAVED TO ONENOTE".


Monaco has the same auto-save experience since its inception. You don't need to explicitly save your files, they will be persisted on idle, which is generally within 1 or 2 seconds. Our telemetry shows us though that developers like to press Ctrl+S to save files! In fact, 95% of all keyboard commands are Ctrl+S!


It appears that there is a lot of muscle memory out there or people are concerned that they will lose data. We could have added an explicit Save button to the workbench, but we like the clean experience of web applications (and even client apps like OneNote) that eliminate the need to constantly save. Therefore, we took a cue from Office Online and added "SAVING..." and "SAVED" indicators to the workbench, at the top of the editor.


Our hope is that this is enough of a visual indicator that your files are always safe and you don't have to press Ctrl+S quite so often, making your experience with Monaco even smoother. After we've collected additional telemetry data, I'll let you know if the change makes a difference.

git user.name and user.email

When using git on your desktop you usually set the user.name and user.email globally, and just one time. When using git in Monaco, every website is conceptually the same as a new desktop. So, on the first commit you are always prompted to set these configuration values.

We tried to make this process easier by opening the configuration editor in the console on first commit. Now, on first commit from the git viewlet we will set the global user.email and user.name to the email you are logged into the Azure portal with. To change the git configuration options, simply issue git config --global -e from the command prompt:



The Monaco editor is used in a number of places across Microsoft and one of our partners requested support for fenced code blocks.


As you can see above on the left, we also do proper syntax colorization in the markdown based on the language mode supplied after the triple back-tic. Interestingly, we use the same tokenizer to color source code in the preview, on the right.

New Node Inspector

Azure recently updated to the latest version of node-inspector for debugging Node sites using Chrome. It’s a two step process to enable the tool. First, enable Web Sockets on the CONFIGURE tab for your site in the Azure portal.


Next, update the web.config file to turn on debugging. If web.config isn’t present, simply run the site once from within Monaco and we will generate it for you.


Restart the site (press Run in Monaco), open a new tab in Chrome, and browse to http://yoursitename.azurewebsites.net/app.js/debug to load the debugger (assuming “app.js” is your startup file).  For more information on using node inspector in Azure, check out this great article.

Try Azure Websites

Admittedly, getting started with Azure takes a little commitment. You need to provide a credit card to get started, even with a trial subscription (it helps prevent abuse of the service).

To make it easier for developers to kick the tires, the Azure Website team have made it possible to try out their platform by quickly creating a site without all the hassles of creating a subscription, you simply need a Microsoft account. Choose from an array of Node, HTML, JavaScript (and soon TypeScript), PHP, Python, Java, and .NET templates, kick the tires, download the code, or better yet edit it with Monaco.

The site will expire in about 30 minutes after creation so we did some work to make the whole experience smoother and let you know how much time you have before you need to push the code to a repository or download it as a zip (from the overflow commands on the EXPLORE viewlet).


If Java is your language of choice, we now support colorization of .properties files as well as HTML and JavaScript IntelliSense in .jsp files.


Send your friends to http://azure.microsoft.com/en-us/services/websites/ and have them create a Website for free. When they click on "Edit in Visual Studio Online" they will be able to experience the full power of Azure Websites developed with Monaco.


Thanks for following us. Try out the latest features of Monaco and let us know what you think!

Comments (3)

  1. Ed Roman says:

    Chris, awesome update, thanks.  I'm super excited about what you're working on with Monaco.  Would love to chat with you about a potential feature — my email is edward.w.roman@gmail.com.

  2. Steve says:

    Great to hear Monaco is still being worked on! With a couple of months of no update posts I was getting a little worried 🙂

    One thing that discourages me from working in Monaco though, is relevant to the content of this post: the fact that files are saved every couple of seconds, makes it difficult to work with file-watching build tools. These end up running constantly and needlessly, wasting your site's resources.

  3. Jenda says:

    Agreed Steve. I should be able to do an explicit save after I'm done with a bunch of changes and thus trigger the build tools. Until that it's great if the program/page protects whatever I've written from loss, but it should do that in a form of a separate "autosave". If the program/page/computer crashes I like to be offered to restore the unsaved changes, but I'd like to keep the option of NOT saving them.

Skip to main content