Skip to content
This repository has been archived by the owner on Mar 8, 2024. It is now read-only.

Discussion: one platform to rule them all #228

Open
ghost opened this issue Nov 21, 2017 · 25 comments
Open

Discussion: one platform to rule them all #228

ghost opened this issue Nov 21, 2017 · 25 comments

Comments

@ghost
Copy link

ghost commented Nov 21, 2017

instead of many platform and then make a standard for them to comply with, why not make a new platform to replace them all.
e.g. the following scenario may be the best option for developers

  1. make a forge from xamarin and call it UAP (universal app platform).
  2. change the control names to one compatible with WPF nomenclature. (the most used).
  3. add all the missing controls, events, properties from other platforms, WPF, UWP.
  4. abandon the others and focus your development on the new one.

thus we will have a single platform (write once, compile to many).

@ghost ghost mentioned this issue Nov 21, 2017
4 tasks
@touseefbsb
Copy link

@auahub but if we forge from xamarin forms then the performance problem of xamarin forms will come along with it and native development will still be more performant.

@insinfo
Copy link

insinfo commented Nov 22, 2017

https://flutter.io/
https://www.embarcadero.com/br/
https://www1.qt.io/company/
they solved the performance problem by implementing a graphical UI API from scratch over OpenGL
"write once, compile for many" is the view of the above

@ghost
Copy link
Author

ghost commented Nov 22, 2017

@touseefbsb I,m not using xamarin so I dont know about the performance problem, but I think this expected whenever you target a platform not made by you.
@insinfo thats great news, I hope they finish the xaml standard as soon as possible so I can change my projects to it.

@touseefbsb
Copy link

@insinfo flutter and other projects like these are new and awesome no doubt but they use different languages, and not xaml and c# another is ionic which also uses web technologies to make cross platform apps, xamarin forms is the best only problem is the performance which is not as good as native even it comes to 90 percent as performant as native that would be perfect I guess

@insinfo
Copy link

insinfo commented Nov 22, 2017

@touseefbsb What I meant is that the Flutter, Embarcadero, and Qt5 team solved the performace problem by implementing a hardware accelerated UI API with OpenGL, if these Frameworks added C# and XAML in the pipeline stack would be perfect, that means that if the Microsoft wants it could do the same in Xamarin.Forms, Xamarin.Forms looks like a large erratic build.

@insinfo
Copy link

insinfo commented Nov 22, 2017

@touseefbsb do you have a demo of Xamarin performance loss to post here?
  who knows if this shows Microsoft the big problem in the way that Xamarin is implemented, maybe if Microsoft followed the Embarcadero idea. would be better

@insinfo
Copy link

insinfo commented Nov 22, 2017

The ideal would be a benchmark of Frameworks: Xamarin.Forms, Flutter, Embarcadero, Qt5, Cordova, Phonegap and Native

@ghost
Copy link
Author

ghost commented Nov 23, 2017

the problem is that microsoft has too much things to spend time and efforts on. .net, .netcore, asp.net, asp.netcore, UWP, WPF, xamarin.native, xamarin.form. if they shift their focus on one of them like xamarin.forms then definitely they can solve the performance and compatibility problems.

@touseefbsb
Copy link

no I dont have a demo as such but performance problem of xamarin forms as compared to native is well known in the xamarin community, recently microsoft has been improving that performance in their latest release of xamarin forms, but I havent seen any benchmark to make sure how much improvement that actually is

@insinfo
Copy link

insinfo commented Nov 23, 2017

Microsoft really has many platforms and projects to dedicate effort and investment, but the majority of these platforms are already ready for use and consolidated, and do not depend on so much effort, and without counting that Microsoft is not a small company, it has great minds and people of great value if Microsoft wanted it could create a new team to develop a graph API 2D multiplatform hardware accelerated UI that support C#/XAML, for example Direct2D/Win2D was an excellent API that Microsoft developed very fast, plus the problem is that it seems that they do not want to do this.

@stuart-beattie
Copy link

Hi, a new hardware accelerated cross platform UI layer driven by xaml/xamarin/c# on .net core seems like a good idea to me; one that might also support running in the browser.

@dotMorten
Copy link

Yup it sure is an interesting idea, but that's not what xaml standard is. Similarly to .net standard, it's merely a contract that xaml implementations promise to adhere to. It's not a framework in itself.

@jarenduan
Copy link

Should port Xamarin.Forms to .Net Core, and make the XAML Standard a part of .Net Standard.

@dotMorten
Copy link

@jarenduan Xamarin.Forms is a wrapper around the platform UI. .NET Core doesn't have any UI to wrap. Also that's not really the scope of the XAML Standard, as that is merely just trying to define a set of PMEs for all xaml frameworks.

@jarenduan
Copy link

jarenduan commented Feb 7, 2018

@dotMorten , you are right, and that's the reality.

.NET Core doesn't have any UI to wrap.

There would be, or there has to be, if we make XAML Standard a part of .Net Standard.

I believe it is intentional that MS didn't introduce anything related UI when they're starting .Net Core and .Net Standard. It cannot be accepted that millions of Windows desktop apps are suddenly able to run on Mac/Linux, let alone the technical and legal problems.

And we did have a pretty much close solution to all that - Siverlight, which is dead, of course.

@dotMorten
Copy link

There is, if we make XAML Standard a part of .Net Standard.

No. That's not what the XAML Standard is. The standard isn't a UI Framework, but a set of agreed-upon APIs/markup. This is actually the same as .NET Standard which isn't a .NET runtime (it's just a reference api design for .NET compilers/CLRs to implement, like .NET Core, .NET Framework, Mono etc).

@jarenduan
Copy link

I totally understand and agree with you. However, in the discussion, it is obvious that we want something more than a markup standard. We want a UI framework standard based on XAML, and we want something runnable. Extending and rename to XAML UI standard and moving it into .Net Standard (maybe 3.0) could be a good start.

@insinfo
Copy link

insinfo commented Feb 10, 2018

@jarenduan I fully agree with you, we can not remain silent, since Microsoft has made available XAML Standard here in Github open for the community to get involved, we have to spread our ideas, desires and show that we want more than a simple markup.

@touseefbsb
Copy link

yeah tht is wht we r trying to do here lets just hope and pray that they actually listen to this feedback and take this seriously

@Scherlac
Copy link

Scherlac commented Feb 18, 2018

Maybe the easiest way to put uwp on github and find the narrowness API layer where we can split (on the bottom: GDI, DirectX or OpenGL or whatever is there; on the top some input binding, touch library, dag&drop, system bindings, clip board etc.) and find the best fitting replacement.
That means we copy and merge UWP, WPF and use it as defacto standard. Please dont't reinvent the wheel again and again.
I wrote a simple master mind game (ThinkkLogic) on day one using WPF, on day two I made modification to fit with UWP, so it runs on my lumia 640 (ThinkkUniversal), since then I search an equally easy way to move this to android (MS also forcing on us) with no luck! And that's not Xamarin for sure.

One thing I don't understand here: doesn't xaml have a XSD Schema file? Isn't that a "standard"?

I think the more important standards have there own xml based documentation system and the corresponding schema, like IP-XACT; AUTOSAR; etc.

@carldebilly
Copy link

We did it by natively compile UWP XAML to Wasm, Android & iOS. Will be published as open source on Github in few days !

http://platform.uno/

Carl.

@JanabiSoft
Copy link

@carldebilly is it final or just starting a new project,

@touseefbsb
Copy link

@carldebilly I know its still very early project but I would like to give some feedback, I tried the playground samples on the website and the controls seem to be very bad at performance, when we click them or they change state its not as fast as normal web controls or native controls. also I was wondering what kind of performance would it give compared to Xamarin native and Xamarin forms and also the normal native ( kotlin and swift ) for mobile development.

@insinfo
Copy link

insinfo commented May 9, 2018

@touseefbsb the UNO seems interesting, but it has a lot of overhead, this is far from being a platform to develop high performance real world applications.
Noeses engine has a lot more potential because it runs on top of OpenGL / WebGL. with low overhead, close to zero.
https://www.noesisengine.com/forums/viewtopic.php?t=341

@YAJeff
Copy link

YAJeff commented Jan 10, 2019

I started this in my free time:
https://github.com/XamlEngine/Samples
Example:
http://www.xamlengine.com

It's rendering Xaml natively in the browser using WebAssembly & WebGL. It exposes the Xaml to any language that can run in the browser/WebAssembly.

Anyone want to help build it?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants