Microsoft: .NET Core Is the Future, So Get Moving
In a Visual Studio Live! conference keynote Tuesday a couple of Microsoft program managers were on hand to discuss what's going on with .NET today and tomorrow, clearly signaling that .NET Core is the future of the ecosystem and that programmers should use it for all new development projects.
The keynote at the Visual Studio Live! conference in San Diego was presented by Beth Massi, Product Marketing Manager, .NET Platform, and Jon Galloway, Senior Program Manager, .NET Team, who started out describing the growth of the .NET ecosystem, which started with the .NET Framework debuting in 2002.
".NET is a general-purpose programming platform that literally you can build anything with," Massi said. "It's really from desktop to Web, cloud, mobile, gaming -- you do all this with .NET."
As far as the growth of the ecosystem, in just the past year, more than 1 million Visual Studio developers signed on, bringing the total audience of "active developers" -- those who use the IDE at least twice a month -- to about 4 million.
Several implementations of .NET have evolved over the years to support the aforementioned workloads, said Massi, who noted that once you learn how to work with one workload, it's easy to translate your skills to others.
A recent initiative to tie all of the .NET implementations together is the .NET Standard, which Massi said can be thought of as a contract that all those implementations of .NET support.
".NET Standard is just a specification of a common infrastructure and API set that allows you to not only move skills ... you can write libraries and use those binaries across these workloads," said Massi, who presented the vast bulk of the keynote, while Galloway was on hand to run through live demonstrations of various topics.
Much of the presentation focused on .NET Core, a more recent, cross-platform, open source implementation of .NET guided by the .NET Foundation, an independent nonprofit organization. The .NET Core 2.0 iteration that debuted last year is now used by more than half a million developers.
"This platform is definitely not dying, it's definitely on the trajectory of high growth," Massi said, speaking of .NET in general.
That growth will include several new developments in the future, the duo said, and following is a recap for what's on tap for .NET.
Development of traditional Windows desktop applications heretofore has been done with the traditional .NET Framework. That's going to change.
"As we move forward into the future, with .NET Core 3, we're going to see some more workloads that we're going to be working on here, mainly Windows desktop."
Beth Massi, Product Marketing Manager, .NET Platform, Microsoft
"As we move forward into the future, with .NET Core 3, we're going to see some more workloads that we're going to be working on here, mainly Windows desktop," Massi said. "We're bringing Windows desktop workloads to .NET Core 3, as well as AI and IoT scenarios.
"The big deal here is now that if you're a WinForms or WPF developer you can actually utilize the .NET Core runtime."
It's still Windows, she said. It's still your Windows application framework for desktop apps, but developers will be able to take advantage of the .NET Core feature set, such as improved performance, side-by-side installs, language features and other innovations being made in the platform itself. "So that's kind of a big deal," Massi said.
While .NET Core is about improved performance, self-contained .exe files for desktop application deployment flexibility and more, it also provides UI interop.
"It's about, instead of totally rewriting your apps to take advantage of Windows 10 or more modern UI controls, we're making it so that you can use modern UI controls in WinForms and WPF -- that's what UI interop is," Massi said.
So, with .NET Core the future, what will happen to the traditional Windows-centric .NET Framework? The presenters said it will still be released with Windows, as it's a component of Windows itself, so it will be supported for the lifetime of Windows. Microsoft is just going to be making highly compatible targeted improvements to .NET Framework after version 4.
"What we keep trying to do with .NET Framework is add new features to it, but then we end up breaking applications just because of the global nature of how it's installed on a machine," said Massi, who noted it's installed on more than 1 billion machines. "Heaven forbid patch Tuesday ends up on tax day. We've done that before and broke it."
"We will continue to update the .NET Framework, but you'll see it slowing down," Massi said, noting developers primarily will see new security protocols or critical Windows features they can take advantage of, along with bug fixes and other things that maintain a very high compatibility bar so things don't get broken.
So .NET Core will be taking over new workloads from the .NET Framework, and developers can migrate to the new platform at their own pace.
"So you shouldn't feel pressured to move off .NET Framework, but just know that it's going to be much more highly targeted compatible fixes kind of going forward and we recommend that all new development that you start on .NET is on .NET Core if possible," Massi said, noting that because Microsoft has very large product lines written on .NET Framework it's not going away.
"If I've got a stable existing platform, I can opt in to new features, I can kind of light those up, and if I'm doing new development I can jump right into .NET Core."
Jon Galloway, Senior Program Manager, .NET Team, Microsoft
"That's best of both worlds," Galloway said, "because if I've got a stable existing platform, I can opt in to new features, I can kind of light those up, and if I'm doing new development I can jump right into .NET Core, but if I have existing code I can say, 'ooh, I would like to use these cool fast features or these new exciting features, I can pull those into my .NET Framework apps.'"
Regarding the inevitable migration to .NET Core, Massi likened the situation to Windows 7, which will be losing official support soon, prompting people to move on to Windows 10. Speaking of the similar move from .NET Framework to .NET Core, she said, "this is really just trying to move you forward."
The duo then moved on to one of the hottest areas of the .NET ecosystem, involving Web development.
"Blazor is really about bringing .NET to the browser, via WebAssembly," Massi said. "This is an experimental project because WebAssembly is still kind of young, still being developed, but you're going to get native performance, strong typing, be able to write all C# code, server and client, all the way through. So that's the Blazor project.
"This is what we're looking at as part of the 3.0 wave," Massi continued. "What is coming for sure is what we're calling Razor Components, and this is kind of like thinking of it as server-side Blazor. So it's the Blazor programming model, so this is basically like just saying, 'hey, WebAssembly is not ready, we're still going to give you Blazor on the server side, so that when it is ready you won't have to rewrite any of your code.' Ok so, it will run on the server side and when WebAssembly is ready, with no code changes you'll be able to push it down to the browser itself." [More on that can be found in the article "Server-Side Blazor to Ship in .NET Core 3.0"]
"This is really fun," Galloway said with enthusiasm as he launched into an example Blazor demo that involved a counter app.
Moving on to artificial intelligence (AI), Massi said it's the "next workload we're also bringing with the .NET Core wave as well."
"When we talk about Cognitive Services in Azure, we're really talking about commoditized AI, where we already have prebuilt models and you are accessing them via the vision services, or speech/language, those sorts of things," Massi said. "And that works great, and it's super simple to use, but the models are already built and trained. If you have a domain that is more complex than maybe trying to find dogs in photos or something like that, you probably need to build your own models.
"ML.NET is really a machine learning framework for .NET developers that was built internally for Bing and Office and used over many, many years, and we're taking that code and -- I don't know about you guys, but if you have some code laying around, like, for the last 15 years, your APIs are probably not as clean as they should be," Massi said. "So what's happening with ML.NET right now in the open is we're in preview, OK, and we're changing these APIs so they're much more consumable.
"The idea is that you can build you own custom models, you can train them, and you can use them in any -- this is a cross-platform library so you can use them in any type of workload, any type of application that you're building.
"Some of the features or things you can do with ML.NET: sentiment analysis, predictive maintenance recommendations, object detection, adding more and more different types of patterns into ML.NET as we go."
Galloway chimed in to mention the Infer.NET project, described as kind of a sister project to ML.NET but more focused on projects such as statistical analysis. He noted that while ML.NET primarily involves using its own prebuilt machine learning models, to which developers must adapt their patterns, with Infer.NET, developers can provide their own models and the framework will use them to "figure stuff out."
Massi invited the audience to check out the AI and ML spaces in the .NET ecosystem, where lots of interesting things are happening. Galloway agreed. "There's tons of great documentation for it," he said. "It's also the kind of thing where you're taking advantage of over a decade of experience with all these hosting services at scale."
Galloway and Massi pointed to the .NET blog to learn more about the recently announced ML.NET 0.6 release.
To recap the presentation, Massi concluded with: ".NET is a platform for building any application, and we're making a ton of innovative changes to .NET Core, adding more workloads, helping you in your applications, be more productive, quicker, faster and better. And I just wanted to say thank you so much for being part of this ecosystem and growing the community. It's all you. You are the .NET community. Make sure you stay involved and help your fellows learn all the different types of workloads you're building together."
The next Visual Studio Live! conference will be in Orlando Dec. 2-7.