Interesting little tidbit from Microsoft’s Build developer conference:
Updates helping you support the Fluent Design System, so you can create immersive, deeply engaging experiences with Microsoft’s updated design language. Now every organization can make beautiful solutions that empower your customers to do more. With UWP XAML Islands, you can access the more capable, flexible, powerful XAML controls regardless which UI stack you use – whether it’s Windows Forms, WPF, or native Win32.
It seems like Microsoft is giving developers of Win32 applications the option to add Fluent Design to their applications.
fluent
immersive
deeply engaging
experiences
design language
beautiful solutions
empower
islands
more capable
flexible
powerful
Microsoft really seem to have trouble keeping a unified direction for developers. They were going to make everything dotNet once, back around the Vista/7 days, then they walked that back and built WinRT/Metro directly on their older COM stuff. We’ve gotten to the point where this technology is now easy to develop and distribute and they’re taking some of the reasons why you’d use it and giving them back to their older technology sets. This isn’t a bad thing but just a indication that they really can’t keep a direction going for more than a few years
Microsoft wants you on .net, but they also know that businesses don’t want to migrate from win32. If they try to force the issue, suddenly Linux, Chrome OS or OSX become much more viable alternatives if everything has to be rewritten anyway. Remember also, that the desktop isn’t the only space they have to worry about incursion on either. Companies will often choose to rewrite code for cloud/webserver platforms if forced to upgrade. Don’t need a Microsoft based web server to deploy a web based ERP even if the desktop OS isn’t being upgraded.
For some reason people think that .NET code is uncommon compared to win32.
Almost anything bespoke applications I have worked on in the last 10 years is .NET. Until recently I was still supporting .NET 1.1 applications.
Also you can still use Win32 libraries via PInvoke, COM via Interop and all of this can be hooked up to ASP.NET where you can even build a nice web interface.
I think a lot of people on here seem to live in the *nix world and don’t really know what people are doing with .NET.
Edited 2018-05-08 18:18 UTC
Not really. Xaml and .Net is pretty similar across all platforms these days. The framework slightly changes, but it’s just an API. It’s not as bigger jump as say, Win32 + COM, MFC or VB 6 to .Net was.
This just seems like the tech is maturing and they are opening it up to more usages.
Also Microsoft are standardising .NET across platforms. .NET Standard allows you to build libraries that can target several different platforms without any issues. It replaces Portable Class Libraries.
https://docs.microsoft.com/en-us/dotnet/standard/net-standard
Edited 2018-05-09 16:32 UTC
YES! And even though it works with what seems like a bit of magic, it does work pretty well.
Having said that, I got a pure server project targeting an API from a big telephony vendor, which was I think .Net 4.0, to compile and function in .Net Core. The only weird part was that it was badly isolated from the UI code, so it wanted to have access to the WinForms assemblies to compile (it didn’t use any of the functionality, I think it was just referencing something in one of the API’s we don’t use.) That is one thing to love about .Net and managed code in general – if the assembly doesn’t reference the types defined in an assembly, generally you can get the code you want to run on most .Net run times that are at the same level or after the target code. Types aren’t blindly referenced if they aren’t actually used.
I’ve done something similar with some very old code of mine. I wrote it around .NET 1.1 / .NET 2.0 and other than some faffing it wasn’t tooo much of a slog to get running with .NET Core.