Last month, Microsoft re-engineered its open source .NET Core runtime with version 2.0, to easily execute code in Visual Basic, C#, and F# — all Microsoft languages that, at one time, exclusively associated with the Windows operating system — so that code from these languages in any container, on any platform.
If you were not among those waiting anxiously for your favorite Visual Studio language from the 1990s to make its way onto a distributed platform, you may be wondering why this could be a big deal.
“When the .NET Standard 2.0 was being developed… I had a .NET 1.0, 15-year-old application that was part of my senior project [in 2000],” explained Scott Hanselman, Microsoft’s principal open source program manager, in a discussion for The New Stack Makers podcast. “It was a tiny virtual machine, and it was going to simulate an abstract virtual machine. This was the kind of code that you’d write 15 years ago. It’s not idiomatic 2017 code. It’s classically old, .NET code. It is as much a legacy application as it could be.”
Which meant that the code interacted with the typical type library components and data structures of .NET for Windows. Hanselman told us he was able to rewrite that old code for the current, open source .NET Standard specification, and run it under .NET Core, with about four hours of work. In our discussion, Hanselman told us essentially what he had to change, in order to run it in a Docker container, in Ubuntu, and eventually on a Raspberry Pi, both in Raspbian and Ubuntu.
“About 35,000 members, and about 2,500 types, are available within that Standard, and they’re also supported on Core,” he said. “So you could lift-and-shift, or take older software, and port it over in a fairly reasonable amount of time, and then that gives your application new life that it wouldn’t have had otherwise.”
In This Edition:
3:09: The story of how Scott Hanselman began pushing Microsoft further into open source.
5:41: How .NET Core maintains ties with an old Windows component called the Base Class Library, and still integrates with Linux containers.
9:12: Microsoft’s first (failed) attempt to open source .NET, in 2001.
13:04: “I remember 1995, we did some dumb stuff. . . Big companies do dumb stuff.”
21:26: The value that .NET Core brings to containers comes from mature, fully-developed languages.
34:12: The possibility of other languages that third parties may bring to .NET Core by way of the Intermediate Language.
Microsoft is a sponsor of The New Stack.
Title image of “Visual Basic by Example” by D. F. Scott (Scott M. Fulton, III), by the author.