Keeping the Dev Door Open
By now, everyone in the development community is familiar with the extent to which Microsoft has open sourced its development tools -- .NET Core, ASP.NET Core and others. What most might not know is that Microsoft tried numerous times in the past to do this. Now the company has achieved success in kicking the door open and keeping it open on its dev tools.
Scott Hanselman delivered that bit of development history to attendees at his keynote address entitled "Microsoft's Open Source Developer Journey," Tuesday morning at Visual Studio Live! in Redmond, Wash., on the Microsoft campus.
Hansleman, principal community architect for Web Platform and Tools at Microsoft, wanted to start off with a bit of historical context. "I've got some articles about them open sourcing .NET," he says. "Now notice the date. They've tried to open source .NET three or four times before. Things weren't right or ready. The Internet wasn't ready, GitHub didn't exist, and they didn't understand licensing appropriately."
Open source had a slightly different name at Microsoft several years ago. "Shared source is what they called it in the late '90s and early 2000s. It wasn't open source; it was source opened," he says. "They zipped it up, removed the good stuff like garbage collector, and gave it a license no one had ever heard of." He was not surprised that it didn't exactly take off, but things did eventually work out.
"Then we had ASP.NET and MVC do real open source, we had smarter licensing -- common sense licenses," says Hanselman. "This was after multiple iterations. It's interesting to point we really did intend to open source that 16 years ago. It just didn't work out."
Fast forward to today, and frameworks like .NET Core are not only open sourced, but actively receiving contributions from the development community. That doesn't mean it's the wild West though. "[All code] is going through same security checks. The code you give to us goes through same process," he says. "When a Microsoft engineer submits code, it goes through same process as yours."
Hanselman and Microsoft are interested in changing the developer demographic. "The number of .NET core downloads 40 percent are new developers, and that's a good thing," he says. "We want to change the demographic of.NET to bring new people in. We want to be a supportive and inclusive group."
While the full Visual Studio IDE may seem overwhelming to new developers, he's interested in helping people realize they can start small. "We need to make people understand there's value in Visual Studio. But there's also value in going from zero to ten miles an hour in ten minutes, says Hanselman. "They can participate in open source. We have more people help write .NET Core from outside than inside."
Now what Microsoft means when it says ".NET" has also evolved. ".NET used to mean framework that came with Windows. Now .NET is an umbrella term. There are multiple .NETs," Hansleman says. "There's the .NET Framework. There's .NET Core -- and version 2.0 came out yesterday -- and there's Mono that powers Xamarin. These are the big three controlled by Microsoft."
And as he points out, Microsoft has intended to share those offerings for much longer than most realize. "People forget how much is shared. In past, we haven't done good job of code sharing. The intent was righteous," he says. One relatively recent major attempt was through Portable Class Libraries that you can share anywhere, Hanselman admits the intersection where those were most applicable was quite small.
"Now, .NET Standard 2.0 is an API agreement," he says. "It's interface we can all count on; .NET Standard is a library; a contract we can agree on."
The full version of .NET Standard is indeed the standard for .NET. "We have hash tables, we have lists, we have stuff you recognize. Once you understand that base class library and regular expressions, you can become platform developers. And that is the promise of .NET."
He compared this to his own experience over the years. "I really like C#. C# was the language I wanted to use," he says. "Then ASP.NET appeared, and I became a Web developer. Then MVC came out, and I became a Web developer that cares about HTTP. Then Docker came out, and now I was a containers developer. Then the cloud happened, and I was a .NET developer who could put things in the cloud."
The commonality throughout that evolution was of course .NET. ".NET has shown up everywhere I want it to show up," Hanselman says. "Having the library and agreements familiar everywhere means code reuse everywhere at a level we haven't seen before. The promise of the .Net Standard 2.0 library is going to make that happen."
Hanselman proceeded to demonstrate much of what he was discussing, showing the flexibility and extensibility of .NET Core. Throughout the demos, he showed attendees how it can work with multiple versions of .NET running side by side, how it works with templates, Docker files, Azure sites, and open source app services. He also showed Visual Studio on the Mac, and how he can make ASP.NET Core apps as full complete apps that include multiplatform front end and back end.
The next Visual Studio Live! events are being held Sept. 18-21 in Chicago and Oct. 16-19 in Anaheim, Calif.
Lafe Low is the editorial liaison for ECG Events.