The biggest reason it's hard to find books on Forms development in .NET 4.0 is that Microsoft is abandoning WinForms for WPF. Although WinForms will continue to work in the near future, it will not be improved on. If it's possible, I would suggest to move to WPF. If not, books on Winforms in .NET 2.0 and 3.5 should be sufficient.
is there any semi-authoritative answer
to why Microsoft just doesn't support
.NET on the Mac itself?
The best answer is probably that you don't "just support" .NET on the Mac. You spend hundreds of millions of dollars and several years porting .NET to the Mac.
While some things are fully managed and would not require porting, most things are wrappers around the Win32 API (windows, controls, gdi+, cryptography, active directory, COM, enterprise services, device access, sound, video, codecs, winforms, etc, etc).
Every single one of these would have to be abstracted in the backend and remapped to equivalent native libraries on OSX. Of course, there's not going to be a nice clean mapping, so you also have to write hacks upon hacks to get it functioning exactly the same.
Then there's the issue that these APIs on OSX can be brittle and Apple isn't very good at backwards compatibility, so you get to redo your hacks with every major release (and sometimes minor release and hotfixes), racking up a high maintenance cost.
Basically, it's a tremendous amount of money and work for very little gain on a platform whose owner would be against you doing it anyways. And you don't really want to spend money to help people migrate off of your own platform onto a competitor's.
So you are left with not-perfect cross-platform choices:
- C++, which will still require porting in the future
- Silverlight out of the browser, for Microsoft support
- Mono, which does the work to support a healthy subset of .NET, but isn't Microsoft
Best Answer
You may not decompile Microsoft's assets.
However you don't have to.
There is an open source project that has the class & method you need. It's called Mono and here is the direct link to it:
https://github.com/mono/mono/blob/master/mcs/class/System.Web/System.Web/HttpUtility.cs