microsoft / xaml-standard

XAML Standard : a set of principles that drive XAML dialect alignment
Other
807 stars 54 forks source link

Discussion: one platform to rule them all #228

Open ghost opened 6 years ago

ghost commented 6 years ago

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).

touseefbsb commented 6 years ago

@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 commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

@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 commented 6 years ago

@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 commented 6 years ago

@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 commented 6 years ago

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

ghost commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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

dotMorten commented 6 years ago

@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 commented 6 years ago

@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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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

touseefbsb commented 6 years ago

@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 commented 6 years ago

@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 commented 5 years ago

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?