Scott Hunter is the Director of Program Management for .NET at Microsoft. He joined us on the Content Matters Podcast to talk about the latest release of the .NET platform and some of the capabilities it now offers to help developers build modern digital experiences.
Understanding .NET Core
Hunter started by explaining what the .NET framework is, which is a development platform, like Java or Node.js. The .NET framework allows developers to build applications that run on Windows operating systems. The thing is, it’s proprietary, closed source. But Microsoft realized that times were changing, and open source was becoming the go-forward approach to cross-platform development.
Which is why they created .NET Core.
“.NET Core is a completely open source version of .NET, that also happens to run cross-platform. So, it runs on any device, whether it's Windows or Mac, or Linux, or Android or iOS, or an IoT device, like a Nest thermostat or something like that; it's designed to run everywhere. And so, it's kind of our way of taking .NET and pulling it into this new modern era of open-source, cross-platform development.
“It is an evolution… part of the evolution is if I go and look at the way I would build an application in 2002 and I compare that with how I build an application today, they would be different. The tech world is always changing. Years ago, there was a protocol that everything was using called SOAP. And now everything is using something called REST or gRPC. And so, with .NET Core, we made a change as well. We said, we're not going to put all the older tech in .NET Core, we are only going to put the newer tech into .NET Core.”
Hunter said companies would continue to keep applications they built on the .NET framework unless it makes sense to rebuild to take advantage of newer technology. The good news is the two platforms can talk to each other
What’s New in .NET Core 3
Hunter explains that the newest release of .NET Core (version 3) brings in everything from the .NET framework that developers need to create any application. Some of these include:
- Developing Desktop Applications: You might be surprised to know that many companies are still building desktop applications.
- gRPC.NET: gRPC is a modern open-source, high-performance RPC framework, gRPC.NET allows any net application to talk to any other content application over the internet, including applications written in other languages.
- Blazer: Microsoft's SPA (single page application) technology.
“Most web applications are what we call SPA, which is a single page application. And what that means is, as we started building web apps over time, we tried to make them look more and more like apps used to run on your desktop. Which means when you click something on the screen, the whole screen doesn't redraw; it feels like you're just navigating inside of an application. To do that, historically, you've had to learn yet another programming language or programming technology - we call these web frameworks. And there's a couple of popular ones like Angular JS, or React, or View. So, it means most applications end up being some language for the backend, and a different language for the front end. With .NET Core 3, this technology called Blazer lets you build an application all the way from the code that runs in the browser to the code that runs on the backend server. All in C#; we call this full-stack development.”
A Few Other New Capabilities to Help Build Modern Apps
Hunter also shared insights on a few other new capabilities on the .NET platform:
Mobile App Development with Xamarin
Instead of building separate native mobile apps for iOS and Android, you can now build one mobile app that will run on all mobile platforms.
“One of our biggest Xamarin customers is UPS. So if you have a UPS app on your iPhone, or your Android device, or your iPad, that is a Xamarin application, which means the benefit to UPS was they wrote the code one time in C# and were able to share that code across all the devices.”
“What happened with the machine learning aspect is kind of a funny story… it happened by accident. The reality is, Microsoft has been using machine learning tech in our apps and our websites and our devices for a long time.” Think Hello face technology, PowerPoint recommendations, or Bing. “And one day, the team that built that tech came and presented to us and we're like: ‘Interesting.’ We convinced that team to basically take that source code they've been using for all those applications and more and open source it.”
It’s a library called Emerald.NET, and along with the library, Hunter’s team built a model builder to help developers leverage ML easier in their applications.
“[Model builder] gives you a wizard to select common machine learning patterns, like I want to do sentiment analysis, or I want to detect something we call regression, or I want to go see if I can predict something. And with this tool, you can feed some data; it will actually build your machine learning model for you automatically. And then it will give you the C# code to stick into your application to use the model that is built.”
Microsoft.NET now supports Apache Spark for big data analysis.
“Customers can now run queries against massive amounts of data. And what makes Apache Spark cool technology is, historically, a relational database sits on one computer. And so, all you can do is add more memory and a bigger CPU to it. And at some point you can't make it go any faster. With Apache Spark, it breaks up your query and spreads it across multiple peers. We call that a cluster. So instead of utilizing four or eight CPUs, it can utilize one hundred CPUs. And instead of using, you know, 64 gigabytes of RAM, it can use 30 terabytes of RAM across all those machines.”
Building Apps Has Never Been Easier
“I would say that it's probably easier today than it was. Development goes through weird cycles; it goes through being easy to hard, then back to easy. In .NET we're trying to go back to easy. We went through a phase where we have a bunch of talented engineers that know how to do crazy stuff with code, amd sometimes part of my job at Microsoft, and my team's job at Microsoft, is to make sure we don't ship complicated projects. We have awesome engineers that want to do cool engineering feats, but our real goal is to be the watchdog on the product to make sure that it's easy to use.”
Microsoft’s Shift to Open Source
There has always been a battle between Microsoft .NET and Java, and between close and open source. Microsoft has traditionally been on the closed side of that debate. But things have changed a lot in the last few years alone. Microsoft has made big commitments to open source and cross-language development efforts.
“I can give you some reasons why open source is important. And I'll do it in the context of .NET. So, we open-sourced .NET in 2014. And there's a couple things that customers like about open source. Sometimes there are technologies that I stopped investing in. But if they're open source, if a customer really cares, they can go fix a bug themselves… Today, more than half the contributions to .NET don't come from Microsoft; they come from the open-source community.
“I'll go back to that closed source, proprietary Microsoft time. Back then, if you were a customer, you would have no idea what the next version of our product was going to do. We didn't want to tell anybody because that was a secret. And we didn't want anybody to know so our competitors couldn't do it first. If I go to the open-source world, my roadmap is actually in GitHub. You can go look at GitHub and see what's planned for the next three, six, twelve months potentially, by looking at my roadmap. It makes the customer much happier to go, ‘I can actually see the future where this is going. I'm not afraid of this anymore, because I know this big change is going to come,’ because we're transparent and open about it.”
Hunter also provided a suggestion for developers who want to get hired with a specific company:
"One of the best ways to get a job in technology is to go find a couple of popular projects for the company that you want to go join and go file some issues, go fix some bugs, go make some pull requests. There is nothing better than that. That blows a resume out of the water because the company will go, ‘Oh, I can see these contributions you made in my source code, so I can see that you're a developer that understands how to use GitHub, how to use .NET, or use the tools.’ There's no better resume than doing that.”