How do you feel about Microsoft? Do you think that Microsoft is a closed company that does everything in its power to win professionals and consumers over to the dark side? If so, you’re not alone. Many have a negative view of Microsoft. But is that view still true? Or is something totally unexpected happening and is Microsoft actually changing?
But first, why should you listen to me? I am totally biased. I’m a Microsoft developer, have a Windows Phone, use a Microsoft Surface and I even have a Microsoft Band. I’m a Microsoft Most Valuable Professional (MVP) in Visual Studio and Development Technologies and I wrote several books on Microsoft stuff like Azure, C# and Visual Studio Team Services. I think Microsoft is the best. And I think Microsoft is changing, a lot, and I’m changing with it. It’s changing so much that I started learning Linux and Java and that I have ordered my first ever MacBook. Not because I’m leaving Microsoft but because I’m embracing the new direction that Microsoft is going in.
Open Source
My moment of revelation was on April 2014 during the keynote of the Microsoft Build conference. Anders Hejlsberg - C# lead architect and inventor of TypeScript - made a huge announcement on stage in front of thousands of Microsoft developers: he open-sourced the C# compiler and language. Yes, you read it correctly: Microsoft open-sourced one of its biggest projects and put it on GitHub (ok, first it was on Codeplex but that got quickly fixed). That was the first time I started really thinking about open-source and what that would mean for my future. Of course I already used some open source software such as jQuery but I hadn’t given it much thought.
Since April 2014 a lot has changed. One big step is that Microsoft started the .NET Foundation:
The .NET Foundation is an independent organization to foster open development and collaboration around the .NET ecosystem. It serves as a forum for community and commercial developers alike to broaden and strengthen the future of the .NET ecosystem by promoting openness and community participation to encourage innovation.
And the .NET Foundation is doing a lot of work. Big frameworks like .NET Core, the .NET Compiler Platform (Roslyn), ASP.NET Core, Entity Framework Core, MSBuild, and NuGet are all open sourced by the .NET Foundation. They accept pull requests and work completely in the open. You can read the language design notes for C# and you can view recordings of the discussions the ASP.NET team has on YouTube. Outside the .NET Foundation Microsoft is also running a lot of other projects on GitHub. PowerShell, CNTK (Microsofts AI framework behind Cortana), the JavaScript engine in Microsoft Edge and much more. Microsoft is even the top open source contributor on GitHub.
Cross platform
The .NET Core initiative is worth pointing out. This is a major initiative to make sure that .NET isn’t a Windows only platform. .NET Core supports Windows, Linux and Mac OS. Combine this with the Xamarin tooling and you can suddenly write .NET code for platforms ranging from the Microsoft Hololens to an iOS tablet, a Docker container or Raspberry Pi. On top of .NET Core, Microsoft builds ASP.NET Core: a cross platform framework for building modern web applications that can run anywhere. To support this new cross platform movement, Microsoft has also released SQL Server on Linux and made PowerShell run on Linux. This doesn’t mean that Microsoft is abandoning Windows but the world is definitely getting bigger from Microsofts point of view.
Developer tools
And that’s not the only thing Microsoft is doing. When you look at the developer tools and languages that Microsoft builds, there are also a lot of changes. Where Visual Studio previously meant a rich desktop client aimed at developing applications for Windows, Visual Studio now spans a whole family of products:
- VS Code is a super optimized cross platform code editor that’s developed in open source. A fun fact is that Google uses TypeScript (developed by Microsoft in open source) and VS Code to build Angular 2.
- Visual Studio for Mac is a fully featured IDE that runs on the Mac and lets you build ASP.NET Core and Xamarin applications.
- Visual Studio Mobile Center offers cloud and lifecycle features for your mobile applications. Automated builds, cross device testing and distribution are all integrated and the product is growing rapidly. You can get started with just a GitHub account.
- Visual Studio Team Services is a cloud hosted SaaS solution for DevOps. VSTS helps you with your Agile and Lean processes, gives you a hosted continuous integration and continuous deployment option integrated with automated testing, package management and monitoring solutions for all kinds of languages and environments.
The Cloud
And then there is Microsoft Azure. Microsoft Azure is the cloud solution that Microsoft builds and operates. Azure is huge. It has the highest number of datacenters of all cloud providers and supports a lot of different platforms. If you look at the Azure Marketplace you see solutions like Ubuntu, Oracle, Java, PHP, Hadoop, Blockchain services, and of course .NET. In whatever language on whatever platform you choose to develop, you can run it on Azure.
For me these are really exciting times. I’m eagerly waiting on my first Mac while playing with Bash on Windows and use Pluralsight to get up to speed on the Java world. I can’t wait to see what the future is going to bring but for now I can already say: it’s a great time to be a Microsoft developer.
Questions? Feedback? Please leave a comment!