Cementing a commitment to open source
In 2016 Microsoft has taken tangible steps to shed its historical disdain for open source. There is nothing that screams open source quite like Linux, and Microsoft’s official embrace of Linux in 2016 has been remarkable. In March, Microsoft announced its membership in the Eclipse Foundation. Strategically this makes sense because Eclipse is a popular Java IDE and there is huge growth potential for Java development on Azure. The Eclipse Foundation is firmly rooted in the open source community, so it follows that throughout the year announcements rolled out regarding open source support for Linux-based Azure tools. Then, on November 16th Microsoft became an uber- member of the Linux Foundation…say what? Dogs and cats living together…mass hysteria!
In 2001 Steve Ballmer called Linux a “cancer” and now Satya Nadella is singing the praises. Why does it matter, and why should a MS-centric developer give a hoot? One take suggests that as Microsoft matures under Nadella, it is rebooting innovation. I don’t dispute that but all kumbaya aside, as the competition for cloud services heats up, Microsoft has no other choice but pal up to Linux (and by association, the open source community).
In another sense, it is truly all about choice. So by adding Linux expertise to its already strong hand in the enterprise space, Microsoft is positioning itself to offer amazing, multi-platform choices for organizations eyeing the cloud. I’m not sure we’ll see a rush of new app’s targeting the popular Linux desktop distros, but .NET Core creates some exciting potential.
.NET Core (and ASP.NET Core)
On June 27th, Microsoft released 1.0 of .NET Core, (along with ASP.NET Core 1.0 and EF Core 1.0) for Windows, Mac OS X and Linux. This is yet another indication that Microsoft is depreciating its old strategy of tying everything back to Windows. The .NET Core framework is not a version release of the .NET Framework, it’s a soup to nuts rewrite that leaves the old baggage behind. Closely related to .NET Core is ASP.NET Core which is also open source. ASP.NET Core’s modular design makes it fast and efficient. Also, it unites the MVC and Web API models and dumps WebForms... Hallelujah! See below, P.S. WebForms Rant for more on that topic.
2016 honorable mentions that support the aforementioned
February-April: Microsoft acquires Xamarin. Announces tight Xamarin/Visual Studio integration, even for the free Visual Studio Community edition
April 14th: release of Visual Studio Code version 1.0.
June 13th: LinkedIn acquisition
Sept. 15th: Hiring Rob Eisenberg
Entire year: Support of free, cross-platform, open source dev tools (editors, IDE’s and plugin/extensions. See this great rundown of .NET announcements from the 2016 Microsoft Build Developer Conference.
On changing hearts and minds
Bill Gates, with an impressive list of philanthropic achievements, has probably done more than anyone or anything to shed the “Evil Empire” moniker. Since taking the reins in early 2014, Nadella’s leadership and vision is shaping a forward thinking Microsoft. A favorite Nadella quote backs my hunch that 2017 will be another exciting year:
“Be passionate and bold. Always keep learning. You stop doing useful things if you don't learn.”
P.S. WebForms Rant
Disconnecting ASP.NET WebForms from .NET Core demonstrates that Microsoft is moving forward, and leaving bad proprietary habits behind. Microsoft cannot afford to squander its brain trust on 15+ year-old technologies (e.g. WebForms, IE and ActiveX) from a bygone era.To be fair, WebForms has produced many great sites and applications. However, clinging to it demonstrates techno impotence and delaying investments in learning new and better approaches is ignorant.
It is amazing (and scary) how some corporate managers and application developers defend WebForms tooth and nail. Their argument is always the same; that applications can be brought into production easier and faster. In a very narrow-minded sense, this may be true, but WebForms does not support quality design, intrinsically and holistically, like the newer patterns and frameworks. For example, concepts relating to separation of concerns (SoC), and unit testing are not easily supported in WebForms. So although you may experience faster delivery times with WebForms, it’s a short-term benefit. Later on you pay for it in spades, in terms of error-prone and time consuming adaptive maintenance.
Thankfully Microsoft has provided sane and incremental pathways to transition away from WebForms. MVC hybrid app’s can be crafted because WinForms and MVC share a common IIS pipeline.