Microsoft's development platform today: What you need to know
Connect shows direction for .NET, cloud and mobile efforts
How Visual Studio 2017 shows Microsoft's new direction
Visual Studio 2017 also shows how Microsoft's approach has changed. It is huger than ever, though the pain is mitigated by a new installer that lets you pick and choose the components you require in a cleaner and more flexible manner than before. That menu includes:
- Visual C++ for Linux Development
- Clang with Microsoft CodeGen (for more standards-compliant C++ on Windows)
- Docker tools
- A stack of Azure tools
Using Visual Studio 2017, I started a new ASP.NET Core project and checked the option for Enable Container (Docker) Support. I was prompted to install Docker for Windows, did so, and shortly afterwards was up and running with a "Hello world" ASP.NET application. Notable was the fact that Docker was running a Debian container, as a quick peek at the PATH environment reveals, and now on Hyper-V rather than Virtual Box.
Visual Studio 2017 running ASP.NET Core in a Linux container on Docker on Windows
Joel Spolsky, CEO of Stack Overflow, was at Connect. His first job, back in the nineties, was at Microsoft working on Excel. I asked him to compare the company he joined with the Microsoft of today.
"Everybody that I worked with in Microsoft had this attitude of, we're huge and we're winning, we can afford to be gracious, we can bend over backwards to help Lotus port 1-2-3 to Windows and WordPerfect to Windows, while at the same time the Excel team and the Word team are competing against them," he said.
"The Microsoft of today has taken that to another level, of wanting to be everybody's favorite company, no matter who you are. The fact that the money in development tools has now moved into providing cloud services – which are meterable and not piratable – and now Visual Studio is just a way to get things on Azure. That puts them in a very comfortable position of being able to be friendly to everyone in the world."
Despite Spolsky's assertion, many remain wary of Microsoft, recalling how it held back browser development, resisted open source, or other crimes real or imagined.
Further, Microsoft platform developers have not had an easy time, with a series of technologies hyped one year, and neglected the next.
The company's commitment to C# and .NET has never faltered though, and this remains true, although its investment is now focused more on cross-platform .NET Core than the mature Windows-only .NET Framework.
Today Microsoft is in transition. The journey to cross-platform is not easy. The new .NET Core is by all accounts fast, but frustrating for long-term .NET developers because of missing pieces. SQL Server on Linux is not as good as on Windows, and again there are gaps ranging from .NET Stored Procedures to Reporting Services. Container support on Windows is just getting started.
Nevertheless, there is momentum behind its current direction. Some things are evident. The Xamarin tools are important and meeting a real need. Whether or not the UWP ever really catches on no longer looks critical for the company. It is making sense of open source and happy to support other people's platforms, provided that it has some hope of a cloud sale. ®