Build "We're going to reinvigorate Windows desktop development," claimed Julia Liuson, Microsoft's corporate VP responsible for developer tools and programming languages.
This is one of five missions on her mind, she told The Reg, another is "Visual Studio Live Share going public. We think that will transform how teams interact and work together."
Next is "Visual Studio IntelliCode. How we're taking AI, building that into helping developer productivity.
"Then there's our announcement on ML.NET," a C# machine-learning library. "We believe every developer will become an AI developer. You don't need to learn new programming languages."
Finally there is Dev Spaces, a new feature of Azure Kubernetes Service (AKS).
"In a microservices, cloud application world, you cannot run everything on your laptop," Liuson said. "Let's say you have 12 microservices, and you are only working on one of them. You just take the one microservice you want to work on, put it into a Dev Space, and you will still interact with the rest of the system. We think that is highly differentiated, for Kubernetes-based container development."
IntelliCode is intriguing, but the current preview has only limited functionality. Where might this technology go?
We have a long list of pain points that developers have. One of them is that the quantity of tools in Visual Studio means that developers do not always identify the right tool for the problem they are working on. Now we have machine learning as a tool, we do have a way to remind them, here is a tool that might solve your problem.
Then there are a lot of activities that developers don't enjoy. Security scanning, vulnerability scans. Do we have new approaches on how to solve the problem in a different way?
Testing is another one. Can we take even the information that the developer is willing to share, and use AI to say these are the highest ROI tests you should have?
The future of Windows desktop development
Going back to Windows desktop development, there are a confusing number of frameworks available, with Windows Forms, Windows Presentation Foundation (WPF) and Universal Windows Platform (UWP). With the removal of Windows Phone from the map, the value of UWP seems diminished. WPF, which developers regard as the best framework, seems to be frozen. Why not reinvigorate WPF?
"We just made a bunch of announcements," said Liuson. "We're bridging UWP with the other frameworks, and with .NET Core 3.0 we take Windows Forms and WPF and move it on top. So Windows developers will get all the advancement we have made in our .NET Core framework and runtime."
Does this mean WPF is no longer frozen?
"Yes. We will be looking at more controls, more capabilities. It is widely recognised that WPF is the best framework for desktop development on Windows. The fact that we're moving on top of .NET Core 3.0 gives us a path forward."
Setting these frameworks free from the Windows-only .NET Framework will enable innovation, said Liuson. "The challenge was that the .NET 4.x Framework, because it's a Windows component, we held ourselves to the highest standards of backward compatibility. We have millions of applications running on that framework. You can't even fix a bug, because you might break something. Whereas .NET Core has evolved as a componentised runtime. It gives the ability to make it an app framework, versus a component of Windows."
What benefit comes from the packaging option to deliver a desktop app as a single executable?
"The linker will strip away the stuff you don't need. So it will be smaller and faster on startup.
"We are very focused on .NET Core and our Xamarin offerings. We're broadening the surface area of .NET Core because we have millions of developers on Windows desktop. We are at a critical juncture where we really need to do something to help developers move forward."
Three Visual Studios – too many?
What about Visual Studio? Will Microsoft continue to have three separate products – Visual Studio, Visual Studio for Mac, and Visual Studio Code?
"I continue to see we will have three products. Actually Visual Studio for Mac and Visual Studio on Windows already share a lot of components. For example the ASP.NET capability that's in VS for Mac entirely came from the Windows side. We pretty much moved the binaries over.
"We also have a code-sharing strategy between Visual Studio, and VS for Mac, and VS Code. So they are not getting duplicated development. The next set of things that we will be building are services like IntelliCode, like Live Share, and you notice that those services will become available in all three products. Overall it is a developer preference."
What is the benefit to Microsoft of this non-commercial Visual Studio Code?
"We're trying to earn developers' love and loyalty. From that, hopefully, it will encourage them to build for our platforms. Which is our AI, our Azure, our Windows. That's what we're doing."
Is there any chance of .NET Core getting a cross-platform GUI framework?
"That is a fascinating topic. If I go to a bunch of .NET guys and say, 'how many of you want to have the WPF running on iOS and Android?' you will have a lot of people raise their hands. But then the real question is that, let's say we could even make the XAML run, but XAML designed for desktop? It's very dense. Is that the right design? And experience? For your phone? I don't think so.
"We want to ask developers, what is your pain point? Give us examples of what you are trying to do. Then we'll have a better answer. Right now, we've heard a bit of noise. That's why we haven't done anything. We have to do more customer research." ®