WINUI An Open Letter to Microsoft
Published: 2021-02-24 15:26:38

**Warning** 

This post is highly opinionated. Written by an ex WPF adopter, it chronicles how a wonderful framework drowned in it's own sea of technical debt. 

Worst of all was that the most savvy tech player of the past twenty years did nothing.

**History**

[La jornada del muerto](https://en.wikipedia.org/wiki/Jornada_del_Muerto)

[WPF](https://en.wikipedia.org/wiki/Windows_Presentation_Foundation) 
 > Windows Presentation Foundation is a framework for creating Native Windows Desktop applications. While it supports many languages, the most popular is C#. It made the older C++ Windows interface (1987) much more easy to use. 

- Released in 2006 .NET Framework Version 3.
- Provides many wrappers for the massive Win32 API.
- Received high acclaim.
- Developer community loved it.
- Introduced [XAML](https://en.wikipedia.org/wiki/Extensible_Application_Markup_Language)

**UWP**

Then came Windows 8 (2012), where [WinRT](https://en.wikipedia.org/wiki/Windows_Runtime) got it's start and the dream of the Windows Phone reignited. Windows 8 and their phone business was the [largest fail](https://www.bing.com/search?q=windows+8+fail) in Microsoft's history.

[Universal Windows Platform](https://en.wikipedia.org/wiki/Universal_Windows_Platform)(UWP) was born; without use of Win32 Dlls. It targeted WINRT. This immediately made it a subset of WPF and omitted many system level features. 

WPF was dying but not confirmed. Just look up 'WPF Dead?' or 'WPF Airspace' on Google for background.

**Fractured Desktop**

- WinUI, 
- WPF, 
- UWP ,
- Winforms, 
- Native Win 32 using C++

Microsoft had thrown WPF Developers under the bus at the most critical stage in computer history; the internet boom. WPF's once great GUI was being shown up by Web Browsers. No problem we'll just put in a browser in our WPF app right? Wrong they botched that too, and only 6 short years later [admitted it](https://dwayneneed.github.io/wpf/2013/02/26/mitigating-airspace-issues-in-wpf-applications.html). Thanks Dwayne for the excellent post.

Very few WPF Developers worked with UWP apps, as the target audience was not the same. It too had the WebBrowser airspace issue.

WinForms - older than dirt and as ugly as Java Swing. It too had airspace issues.

And the winner is  Native Win 32 using C++.  Microsoft was unable to effectively put a wrapper around it for C# people (ever). 

**[WINUI] (https://docs.microsoft.com/en-us/windows/apps/winui/winui3/get-started-winui3-for-desktop)**
Just looking into the specs, we see something interesting. It appears that they are going to support WebView2 (Embedded Chrome Browser) in desktop apps. They are even talking about native fluent controls... ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/257p3au6gdpfr7lv4n8n.png)

Hey wait a minute sounds like [Electron](https://www.electronjs.org/) with one exception: Electron uses node, with zero native controls! Did node.js really overcome .NET?  Yes

Also, isn't Blazor talking about [desktop apps?](https://visualstudiomagazine.com/articles/2021/02/17/net-6-preview-1.aspx?)  It's only saving grace is WASM. 

**Bad Karma**

Microsoft's past history on the desktop is abysmal, in my opinion. They have no fewer than 5 different desktop frameworks, never continued one all the way through, stopped support but denied it, and went on to focus on Azure. Their decisions affected many people in negative ways. 

>Lessons
- Microsoft can't do GUI outside of Win32. 
- Even the Internet Explorer was bad.
- Microsoft is untrustworthy to their adopters.

**Getting on the Microsoft Bus Again?**

I'll wait to see what the real developers says about WINUI, in the meantime, I'll give the framework a once over to kind-of-sort-of see if they have changed their ways on their own desktop environment. 

In the meantime, I'd favor Electron as Microsoft already proved it with Visual Studio Code.

Is .NET Dying? Yes a slow painful death to the cloud which supports JavaScript 100%. .NET is dying because NPM and Node are king today. Unless something really amazing happens with WINUI, it's dead on arrival.

**Hey Microsoft**

All you need to do is provide a XAML to HTML convertor.  Call it a super set of HTML and CSS. Let it be the template for all HTML generation. We could then design all WebSites in XAML and Typescript. 

JWP2021 WINUI .Net Dead? WPF Dead?