top | item 18600950

Announcing Open Source of WPF, Windows Forms, and WinUI

874 points| TiredOfLife | 7 years ago |blogs.windows.com

375 comments

order
[+] mr_overalls|7 years ago|reply
I hated to see this advice to contributors:

"We will typically not accept contributions that implement support for an OS-specific technolology on another operating system. . . We also do not intend to accept contributions that provide cross-platform implementations for Windows Forms or WPF."

https://github.com/dotnet/wpf/blob/master/Documentation/cont...

Microsoft seems to be actually refusing to accept contributions that could make WPF cross-platform - it's a bit beyond "no official plans for cross platform".

[+] protomyth|7 years ago|reply
in Microsoft/microsoft-ui-xaml - Data/Telemetry

This project collects usage data and sends it to Microsoft to help improve our products and services. Read Microsoft's privacy statement to learn more.

For more information on telemetry implementation see the developer guide.

https://privacy.microsoft.com/en-US/privacystatement

https://github.com/Microsoft/microsoft-ui-xaml/blob/master/d...

Looks really easy to disable, but probably something some folks need to be aware of. Love the license and effort Microsoft put into this.

[+] kgwxd|7 years ago|reply
It would be nice if we could all agree on a global environment variable to opt-out of all telemetry so we wouldn't have to keep track of the thousands of places to turn it off.
[+] Kiro|7 years ago|reply
Am I the only one who always accepts these kind of "help improve the product" things? I want to help improve the product.
[+] anticensor|7 years ago|reply
In other words, how we find out color of your computer.
[+] kojoru|7 years ago|reply
See also Scott Hanselman's (emotional!) post on this: https://www.hanselman.com/blog/AnnouncingWPFWinFormsAndWinUI...
[+] contras1970|7 years ago|reply
> That means your (or my!) WPF/WinForms/WinUI apps can all use the same controls if you like, using XAML Islands. I could take the now 10 year old BabySmash WPF app and add support for pens, improved touch, or whatever makes me happy!

that's not interesting. the interesting question is: will there be a SQL Server Management Studio for GNU/Linux?

[+] epoch_100|7 years ago|reply
While unlikely, I hope one day that the entire Windows operating system will be made open source — I'm not sure how Microsoft would make the revenue work out, but I bet it could be done. And the world would be better for it.
[+] chrisseaton|7 years ago|reply
I think it's probably unlikely not because of any opinions of Microsoft, but because Windows is vast and contains large volumes of code they've licensed to use in closed source code, but not bought the ability to re-licence as open source.
[+] krylon|7 years ago|reply
I vaguely remember Mark Russinovich giving a talk or something a couple of years ago (when they open sourced .Net Core, I think, but don't quote me), and somebody asked when they would open source Windows, and his reply roughly that they had no specific plans, but that it was "definitely possible": https://venturebeat.com/2015/04/03/microsofts-mark-russinovi...

I agree it is unlikely, or at least would require a huge amount of work. Then again, Sun did it with Solaris, so who knows what the future holds?

If somebody had told me ten years ago that Microsoft would open source their .Net runtime, port SQL Server to Linux, replace their proprietary browser engine with Chromium, I would have asked that person to give me some of whatever they were smoking. ;-)

[+] fesoliveira|7 years ago|reply
I don't think open sourcing the entire OS is possible due to reasons raised by other posts, but maybe they could open source the kernel. This is the central part of Windows and what is actually important. Maybe they could even open source DirectX or some other proprietary library that became a standard over the years, like WPF, who knows.
[+] ocdtrekkie|7 years ago|reply
Because of legacy code issues, you're likely to just see the new parts of Windows get open sourced. When things get rewritten or ported or what-have-you (such as reimplementing these frameworks for .NET Core), it'll likely be open source. See how nothing from IE has been open sourced, but several components of Edge have been.

It's likely most of the nuts and bolts of Windows can be open sourced without threatening their business model, as competing OSes are pretty architecturally incompatible, and there will always be some closed source parts of Windows. Bear in mind, Microsoft is working heavily on shifting their revenue to being services-based as well.

[+] djsumdog|7 years ago|reply
I still hope enough people hack on ReactOS that one day it will catch up and can run most Win10 drivers, basic apps and eventually games.
[+] zdragnar|7 years ago|reply
Gross, no thank you. The trialware / bloatware that has come standard on windows from manufacturers was bad enough. Can you imagine how bad Lenovo Windows or Dell Windows would be? The Android landscape is bad enough.

At first, I was thinking that it would only be bad for the non-technical folk (i.e. other 99%) who wouldn't know how to re-install a better windows. But then, I remembered that even MS is having a hell of a time rolling out updates without breaking machines. All the different branded flavors of windows would just make getting windows updates that much harder or terrifying, I think.

[+] kypro|7 years ago|reply
Surely there is some incentive to do this for home licences?

Then they could charge for a subscription to the "pro" features and take a cut from apps on the Windows store.

[+] craftyguy|7 years ago|reply
I would rather see microsoft contribute to existing projects rather than throw code over the wall.
[+] mr_toad|7 years ago|reply
> I'm not sure how Microsoft would make the revenue work out

They could give away desktop licenses, even in the enterprise, and still rake in the cash from Active Directory and Exchange server licensing.

They probably make more from CALS than Windows desktop now.

[+] tozeur|7 years ago|reply
Even if Windows is open sourced (which would be pretty cool just to peak in there), there’s no way on Earth you’d be able to compile it. I heard a full build takes over 18 hours on insane hardware, talkin 64+ cores.
[+] jefe_|7 years ago|reply
Hope Apple is listening, it would nice if I could develop iOS apps without owning, leasing, or remotely connecting to a Mac.
[+] nine_k|7 years ago|reply
Apple is in the business of selling hardware and accompanying it with software and cloud services.

They have zero interest of Mac software running elsewhere. They do have an interest for other software to be runnable under macOS / iOS without a major porting effort, but not a very great interest, I suppose.

[+] msie|7 years ago|reply
That's as bad as saying how it would be nice to develop for Windows without owning a PC.
[+] garmaine|7 years ago|reply
You can, with a bit of leg work. There are ways of building iOS apps on Linux.
[+] hiccuphippo|7 years ago|reply
The crossplatform issue already opened, discussed and closed: https://github.com/dotnet/wpf/issues/48
[+] poizan42|7 years ago|reply
A more realistic approach for a cross-platform WPF might be to start with Mono's Moonlight (as Silverlight and WPF have a lot in common) - this could now be speed up by using parts of WPF.

However in 10 years no one has cared enough to start a project to do this, so I'm not too optimistic.

[+] ocdtrekkie|7 years ago|reply
Very excited to see WinForms and WPF especially hit open source. WinForms is still IMHO the hands-down most convenient way to quickly assemble a GUI for an app, and while Microsoft hasn't given it much love over the years, it's huge userbase will hopefully take advantage of the ability to iterate on it via GitHub.
[+] quickthrower2|7 years ago|reply
So does this mean WPF is alive? Is it sane to develop something new in WPF again?
[+] markmark|7 years ago|reply
I've done a bunch of WPF in my time, but I struggle to see what I'd use it for now. For line-of-business type apps I'd do it on the web, and for anything that had to be desktop I'd need to be really, really sure that it didn't need to be cross platform.
[+] DaiPlusPlus|7 years ago|reply
Depends if you subscribe to the idea that open-sourcing something is equivalent to putting it out to pasture.

MS’ problem is that Visual Studio is the only “real” software they produce that uses WPF - which also happens to be a flagship product. They need WPF to stay up-to-date but they can’t afford to invest their own FTE resources into it either when other products are more important as far as the C-levels are concerned.

I’m curious what this means for UWP XAML - as it has its origins in WPF. Can Microsoft use open contributed WPF code in UWP?

[+] alimbada|7 years ago|reply
No one wants desktop apps anymore. Everyone wants web apps. Except for legacy software WPF is dead unfortunately.
[+] hprotagonist|7 years ago|reply
I expect that WPF and WinForms are still windows-only, correct?
[+] qwerty456127|7 years ago|reply
WinForms is not windows-only, it has been implemented in Mono pretty long ago already. The major reason almost nobody develops WinForms apps on Linux is there is no visual WinForms designer (which is so good and intuitive in VisualStudio and that's a major WinForms strength) on Linux and given you are forced to code it manually other GUI toolkits can be more flexible, more powerful and look better. In fact I have developed some WinForms apps in VisualStudio on Windows specifically intending them to run on every of the 3 major OSes without modification.
[+] merriemcgaw|7 years ago|reply
That is correct, they will still be Windows-only technologies.
[+] miguelrochefort|7 years ago|reply
Many projects are porting variants of them to other platforms: Avalonia, Eto, Uno, Xamarin.Forms, etc.

Now that it's open source, the process should be even easier.

[+] jammygit|7 years ago|reply
Hypothetically, if 10 developers decided to make a WPF fork/patch that would work on linux, would it be a worthwhile project?
[+] merb|7 years ago|reply
except that maybe some user now can make a pr for linux
[+] boramalper|7 years ago|reply
Wouldn't it be better to license them under Apache instead of MIT considering that --presumably-- Microsoft might have some patented stuff in there?
[+] ajross|7 years ago|reply
Apache has a clear patent grant, but it's also transitive. Folks redistributing a modified library have to grant their own patents. Some customer might care about the distinction.

Also MS's lawyers may not be 100% clear about whether these libraries already include patented technology from other patent holders that MS may have licensed years ago.

MIT punts on the whole issue, so may seem "safer" to a lawyer when used with a giant existing code base. Apache is clearly the right choice for new development (for those who don't like GPLv3, anyway -- let's not get into that argument).

[+] c-smile|7 years ago|reply
Seems like "to Open Source" is another form of saying "to sunset the project" ...
[+] kelvin0|7 years ago|reply
Real question: why is WPF worth contributing to, if it can't be made cross-platform?

I've used WPF for about a day, and I never went back to using it. Not 'hating' on it, I just want to understand WPF and the incentives to open source it (I get it for .NET though).

[+] revskill|7 years ago|reply
Now i understand why MS bought Github. They need to collaborate on their own stuff in a private way by owning it.
[+] gU9x3u8XmQNG|7 years ago|reply
I'm not sure if it's applicable, however;

I'd be interested in any association that can be made against previous versions of such libraries, and the newly released open source libraries. Are the 'releases' between the old closed source and that of the newly open source significantly different?

If so, and either way; I'd be interested in knowing what kind of changes were applied in direct action of the source being released. Was it just cleaning/linting of the code? Were there features that were otherwise inappropriate (security? quality?) that needed attention before release.

Things like alignment with child dependency license agreements, or overall quality (in code, testing, and deployment) are things I find extremely interesting. Was there some interesting 'inappropriate' language in the source from developers long gone. Could this have effectively been the opposite spectrum of what happened with event-stream https://github.com/dominictarr/event-stream/issues/116

I'm not explicitly saying it's any of my business. I can imagine a multitude of reasons that this history would never be provided. But... as above.. I can consider reasons, perhaps; it should..?

I don't mean to discourage release. I really appreciate it. Just some thoughts..

Edit: Minor readability

[+] gaze|7 years ago|reply
If, as people here have suggested, that WPF is dead, I now wonder if desktop apps in general are being killed. I liked qt widgets quite a lot but I think that's mostly in maintenance mode. How do these companies expect the end user to interact with the next version of excel, autocad, solidworks, photoshop, etc?
[+] gigatexal|7 years ago|reply
Wow. What’s next? Windows itself? What if the next iteration of Windows was based on Intel’s Clear Linux?
[+] cjohansson|7 years ago|reply
I think Microsoft is aggressively trying to attract developers to use their products and this is yet another action in that direction. I think it’s a good move but I’m far from a conversion. My next OS will be a GNU/Linux