As it rolled out tools and features for coders at its Build developer conference Thursday, Microsoft showed that it is ready to embrace technologies and platforms not invented within its walls.
Rather than relying solely on internal tools, the Azure cloud services platform has incorporated a number of non-Microsoft technologies, including popular open source tools such as the Chef and Puppet configuration management software, the OAuth authorization standard, and the Hadoop data processing platform.
The company has also taken steps to incorporate open source into its product roadmaps, by releasing the code for its new compiler and setting up a foundation for managing open source .Net projects.
"Clearly Microsoft's message is its support of multi-platform. It will take any part of your stack, it doesn't have to be just Microsoft software," said Al Hilwa, IDC research program director for software development. "This is good for Microsoft and good for the ecosystem."
Microsoft's Azure strategy is to "enable developers to use the best of Windows ecosystem and the best of the Linux ecosystem together ... and one that enables you to build great applications and services that work on every device," Scott Guthrie, Microsoft's new executive vice president overseeing the cloud and enterprise group, told the audience of developers and IT professionals.
On the developer side, the company announced that it has open-sourced its next generation compiler for C# and Visual Basic, code-named Roslyn.
To date, compilers have been "black boxes," explained C# lead architect Anders Hejlsberg.
Roslyn is unique as a compiler because has a set of APIs (application programming interfaces) that can feed information about a project as it is being compiled to Microsoft's Visual Studio IDE (integrated development environment) and third-party development tools.
Hejlsberg demonstrated how Visual Studio can offer helpful tips through an "interactive prompt," using feedback from the compiler. For instance, it can flag libraries that have been called but not used in the program code.
Microsoft is hoping that other vendors will incorporate the API into their software development tools. Developers can also now add their own features into C# and have the compiler recognize them. Open-sourcing the compiler may also lead to efforts to create versions of C# for other platforms.
The company released Visual Studio 2013 Update 2 Release Candidate.
One new capability allows for two-way communication between the Visual Studio IDE and browsers.
Typically, when developers write code for a Web application in Visual Studio, they can check to see if it runs correctly by running it in a browser.
Now, using a technology known as Browser Link, developers can edit the source code directly in the browser. Browser Link will write the changes back to the source code file in Visual Studio. If a file such as a related style sheet is not open, Visual Studio can open the file and make the change as well.
Browser Link works on "any open browser," in Microsoft's words; the company named Google Chrome and Firefox, in addition to Internet Explorer.
In addition to open-sourcing C#, Microsoft has also started an organization, called the .Net Foundation, to manage additional open source .Net projects from Microsoft and others.
The company also announced the general availability of Visual Studio Online, a hosted version of the IDE that works within Azure and is incorporated into Microsoft Team Foundation Service to enable rapid DevOps-styled development.
On the cloud side of operations, Azure has incorporated two of the industry's leading open source configuration management tools, Chef and Puppet. Users can deploy these technologies to quickly boot up, configure or reconfigure large numbers of virtual machines.
Microsoft has also redesigned the Azure portal, giving it a much more flexible interface. It builds on the Windows Tile design, allowing users to add their own tiles that can display live information, such as metrics of how well the user's operations are performing. One tile even keeps a tally of the bill that the user has accumulated in the current billing cycle, which should help eliminate any surprises when the monthly payment comes due, Guthrie noted.
Guthrie touted a wide range of other Azure improvements and new features as well.
Azure now offers staging support. This feature allows a Web developer to set up a working copy of an application that is about to go live in a full production setting, for final testing. This eliminates the need to do the final test on the live production version of the application.
Also new with Azure is Traffic Management Server, a service that can route application requests to the copy of a distributed application that is closest to the requester's geographic origin, potentially lowering latency times for users.
Microsoft has taken further steps in integrating its Active Directory (AD) directory services into Azure.
Now enterprises can use their AD directories to authenticate mobile users, providing a single sign on option for employees and partners that allows them to use the same password for desktop and mobile device access to an organization's resources.
This AD support has also been incorporated in the Microsoft's Office365 hosted Office service.
On the data side, Azure's SQL Server service now offers more space and a higher promised service level agreement. Users now can store up to 500GB of data, rather than 150GB. Microsoft is also guaranteeing that the service will remain in operation for at least 99.95 percent of the time.
The company has also added a backup service that allows users to revert the database back to an earlier state any time in the prior 31 days. This "roll-back" feature would be valuable to a database administrator who accidentally deletes data or makes some other mistake that could cause irreparable loss of data.
Microsoft has also updated its HDInsight Hadoop service to run the latest version of Hadoop, version 2.2, and to incorporate the Hadoop YARN (Yet Another Resource Negotiator) scheduler that can be used to process jobs based on streaming data.