Cross platform WPF


#42

Hi everyone - I’m working on an cross platform WPF-like framework here:

It’s still early days, but many common controls are implemented (at least to a basic level) and it’s running on Windows with Direct2D and Linux with Gtk and Cairo.

I’m new to Gtk and Cairo so could do with some help on those areas! There is also an XAML implementation coming (https://github.com/SuperJMN/Perspex/)

Steven


#43

looks great @gorkys, I never seen the saying every time a fool says impossible, a genius get a new idea happen so fast. the hard parts going to be the the graphics WPF is has such the richness of WPF rendering stack has no equal.it’s like WPF is Warren Buffet rich, silverlight is Jimmy Buffet rich and UniRTMetro/HTML5 Canvas is golden coral all you can eat buffet. looks real good for a just getting started, its people like you that move the ball forward and make Open Source so cool. this open source thing is the best thing that every happen in .Net. As soon as you can MEF/WCF/Native View, ther softies always throw around the word great and exciting, this is the one time it’s really so true,this really is great and really is exciting!


#44

if you’re doing something that requires linux, I love to hear what you’re doing, if you really need mac, there are no free or pay platforms that come close to real wpf, learn cairo if mac need is beyond very simple,most cross isn’t even as good as modern web app.


#45

Thanks for all the replies everyone. Despite all the passion the answer I am hearing is that WPF isn’t going to be open sourced and therefore an implementation on other platforms is highly unlikely.

There are various independent efforts to make something cross platform work but nothing that would allow you to run existing WPF applications as is. This is fine, it’s just useful to know.

I believe I am going to be switching my application to be based on Chromium Embedded Framework for maximum cross platform support. Farewell WPF…


#46

Chromium Embedded Framework and ?, @justinmchase it’s hard to take you seriously, and at this point I’m getting the feeling your motive for starting this was to be provoke exactly the reaction you achieved, well done, WPF bashfest!, horray , now we can feel good about our framework and so superior about the excellent choices we’ve made!

If your app can be accomplished in a browser and max reach is an issue there are 100s of options, but I’m sure you already knew that before you created this thread.


#47

@gotamaprime CEF and possibly node-webkit. If not that then something similar. You can pretty easily embed CEF into a native window on different platforms.

My motivation for creating this thread was simply to find out the future of WPF. I love me some WPF (I have even contributed code to WPF during my stint at microsoft) but … I have cross platform needs now and there just hasn’t been a path forward with wpf.

When I heard about some of these announcements a spark of hope arose. If somehow there was ever something as powerful and easy to use as wpf I would definitely be excited about that.


#48

yeah, sorrry, , I’ve had my hope up too, and just got my bubble burst,
all I wanted was WCF and MEF, I knew WPF had no chance with the current Dev Div exec, they are still set on proving metro doesn’t suck and giving it it’s fourth name “Universal” ,maybe if they faceplant bad enough and fast enough,something can be salvaged, I not holding my breath.
I remember glenn block himself say WCF was core .Net, he was rightly proud with good reason,
so I check MSDN and sure enough
MSDN
Windows Communication Foundation, a core component of .NET Framework 3.0.
but this isn’t core .Net its .Net core. .net core is new and nimble so it have the new Odata(no thank you)WCF in name only,(thanks again Dev Div, my bestest frenemies)
and MEF Componentmodel is also core .Net but it’s not .Net core. so it got a similar treatments.
not only are they not gonna be get supported, they are being sabotaged with inferior RT garbage.
so it looks like same ol(new) microsoft. take at look at whats on github, I would call it ASP.Net.Not.VNext , I real hate that VNext, what are they gonna call the next version VNextNext.
what a disappointment and waste of time. shame on me for me for being stupid. how they get by making there specious statements I’ll never understand, they never said “core .Net” it’s . “Net Core, a new nimble reimagineering for the fast and fuild , cloud first, mobile first world” , just shameless .
not sure I can even continue with WPF now, feels a little dirty right now.

as far as you web path, I been building a web stack for a while now, node-webkit is a good component, I would look a everything and see how it fits your needs, react is very cool,bootstrap and bootstrap forms,mongoose or nosql, there a ton of great tools, I’m working on something super cool with HTML5 canvas, which I’m gonna focus on for now. good grief what a mess.

,


#49

I find it funny that people are talking about WPF being non-native on other platforms. Sure, a lot of behavior is hard-coded, including keyboard shortcuts, where lists of combo boxes appear etc., but WPF’s behavior isn’t native even on Windows. Text selection doesn’t look native. List boxes and tree views have ancient styles. Many controls have small styling bugs. It was even worse when only “ideal” text rendering was supported. You get used to it after some time and stop noticing, but the differences are still there.

If WPF is open-sourced, I’m sure it’ll be ported to other platforms quickly. DirectX is already emulated with Wine, it’s possible and it’s been done. Even if behavior is different, it would be fantastic. Behavior of standard controls can be fixed to match native behavior better later, it isn’t crucial.


#50

@justinmchase: This was pretty intense discussion to read through and we are super excited to see the community building various open source projects in this space. While cross platform support is not on our roadmap (http://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx), I wouldn’t bet on WPF never becoming open source and this is a very interesting area for us.There are a number of options around making WPF source more accessible that our team is actively investigating, and as we know more we will share the information with the community.


#51

@HarikrishnaMenon: Very encouraging words! Opening up of WPF would greatly benefit the Perspex project as even though the two frameworks diverge on many issues, they are still similar enough that I expect we could gain from the source. For example, our Grid implementation is taken from Moonlight (ported from C++!) but it misses some very useful features such as SharedSizeScope. Also System.Xaml isn’t quite flexibile enough for us (and doesn’t work with PCLs). Fingers crossed!


#52

@HarikrishnaMenon I hope you can collaborate with us in the Perspex project. Please, take a look to it, @grokys is doing GREAT work.

By the way, I would love to work together with you and Unni. Maybe you remember me :smile: Otherwise, you can ask Glenn Block how willing I am :wink:


#53

My understanding, which has been confirmed by several others on this board, is that the porting of WPF to other platforms is very difficult due its reliance on Win32 and DirectX.

So, might I humbly suggest an option for those who would wish for a cross-platform version of WPF?

Throw your enthusiasm behind the open-sourcing of Silverlight. Silverlight does not have the dependence on Wind32 and DirectX. I know that it doesn’t have all of the capabilities of WPF, but in Out-of-browser mode, it comes close.

It sure seems to me that the open-sourcing of Silverlight would be the quickest route to enabling the creation of cross-platform MVVM/XAML/C# apps.

If that makes sense to you, please make your voice heard. There is another thread in this forum dedicated to the open-sourcing of Silverlight, and I know the .Net Foundation people are monitoring that thread.


#54

It’s really not close, i have 0 interest in Silverlight as a WPF developper, it’s somewhat close in syntax, but it’s definately nowhere near the same thing, feels like a “toy” in comparison.


#55

ronan,
Obviously, that depends on your definition of “close”. You obviously have the option not to use Silverlight, but most everyone else would agree that Silverlight is very similar to WPF.
Just as one example, both Telerik and ComponentOne share a common code-base in the control set for WPF and Silverlight. That is, they use the same controls for each one. The two must be “close” for that to be possible, don’t you agree?
I’m curious what it is that you can do in WPF that you believe can’t be done in Silverlight?


#56

ronan,
Here’s one more example that I just recently heard about and found to be very interesting.
At the time Microsoft was developing RIA Services, unit testing was not yet available in Silverlight. So, the people at Microsoft used WPF to develop RIA Services and to test it. Then, when it was ready, they just recompiled the same code as Silverlight.
Most would say that they must be similar for that to be possible.


#57

Open source WPF could solve this


#58

good news for me, I’ve been following you for a long time, please give us more information about the team!
by the way, can wpf team build a forum website like this for the community?!


#59

I think the first one (if any?) who will do crossplatform WPF will be Xamarin team. They already have xplat Winforms implementation. So if they see potential benefits from WPF they will implement it in Mono & Xamarin


#61

Also be sure to check out [Edit: CENSORED - I saw forum guidelines and apparently you only want to talk about open source here, and no products] for cross-platform high performance commercially supported (limited reimplementation of) WPF as part of a game engine (Unity3D [also not open source]) that is getting support from Microsoft. (I’m not a user yet, but probably will be at some point soon. It is really unfortunate that Unity has such an old version of mono. It has prevented me from adopting it as soon as I wanted.)

Modern cross platform GUI (and for games) is something I have been in search of for something like 15 years now. I love(d) WPF (and Silverlight), but Microsoft is slow to figure out how to open source it, assuming they will do it. Here’s hoping that by 2020 we will have something good that is cross platform, open source, and works in games. I am finally delving into HTML5/AngularJS which is starting to make sense for larger projects (although it sounds like Angular 2 is a redesign, so it obviously hasn’t “arrived”), and ES6 will be a little nicer, and you can use HTML in crossplatform games via Awesomium, but many of us still hold our noses with web stuff and I still think we need a good cross platform .NET/mono option (and not just wrappers of WinForms/WPF/Gtk toolkits, which are stuck at the lowest common denominator.)

I also like the project above that plans to create a more modern WPF that supports things like generics. Sometimes I think WPF is brilliant but I also spend a lot of time and code to do simple things, and wonder what some brilliant people could do with a 2nd generation – and all the rough edges that could be smoothed. If the open source efforts are too slow and if no company is motivated to create such a thing, and MS effectively (if not intentionally) wants to hog Silverlight(/WPF) all to themselves in the attic of relics from yesterday and keep Moonlight locked up under patent threat once you leave the browser (last I heard anyway), should someone start a crowdfunded foundation to do all this? Maybe have crowdfunding campaigns for individual features and controls?


#62

I have been reading the guidelines and I don’t see any mention about only open source here. So, let me say…

There is already a cross platform WPF implementation that is robust and takes all the good things of the Microsoft implementation and improves the weak points:

  • Multiplaform: Windows, OSX, Linux, iOS, Android, Windows Phone, Windows Store
  • Optimized for realtime: taking care about draw calls, state changes.

The name, NoesisGUI, don’t hesitate to contact us for a trial or join our community (http://forums.noesisengine.com/)


.NET Foundation Website | Blog | Projects | Code of Conduct