Standard: [Proposal] .NET UI Standard

Created on 27 May 2018  路  9Comments  路  Source: dotnet/standard

Hi,

The .NET Standard was a great solution to overcome the various shapes of .NET and all its flavors.

Maybe it's time to implement a .NET UI standard?
It will be a library of contracts for controls, layouts, user-input event hooks, navigation, styling, responsive adaptations, animations, shapes, and basically all tools a decent UI library is supposed to offer.
Maybe even an opinionated default theme.

This will allow .NET UI Standard providers (be it WPF, UWP, Xamarin.Forms, Avalonia, Uno, or even web technologies, like ASP.NET Core), to implement renderers for the same UI in any platform while giving the developer the option to reuse the same UI structure.
We may consider using XAML as the language to describe those UIs but the core shouldn't be XAML but rather a CLR-based set of interfaces.

Related:

Most helpful comment

I think there is nothing wrong with having a cross-platform UI stack. But even if we had one today, it wouldn't belong here. Keep in mind that .NET Standard is neutral with respect to the application model as this API set needs to be implemented by everyone. This includes headless devices, console apps, cloud services, and web assembly. Forcing everyone to support a client side UI stack is not only not desirable, it's just not feasible.

So while I'm supportive of that effort (I'm famous for hating on the Electron-style experience) this issue just doesn't belong here, sorry. However, there is a User Voice item that is tracking that and I'm sure there are people thinking about it. So please don't read me closing this as not being supportive. I just don't want to track that here.

All 9 comments

This shouldn't depend on anythinks. Not event XAML, C#, Java, Javascript, C++, .... To me it must be implement in IL (MSIL, WASM, ...) to be usable from any Framework/language and keep performance to the top.
I think's that what you intended to say. since the xaml part may be transform in this "interface compliant thinks". So some base Framework made in XAMl may be used to provide a small easy to use base.

I don't talk about .NET Standard. I talk about making a whole new project project.

In fact it's already done before you make this issue. I thougth you were talking about this and you didn't understand what .net standard was about.
Sorry.

Note that even W3C describes the DOM (using IDL). Obviously interfaces in say C# would be fine, eg have IActionable, IClickable, IDraggable, IButton, IRadioButton, IToggleButton etc.

Note that interfaces allow for multiple inheritance

@birbilis
Exactly. I don't want the W3C to describe the .NET Standard UI DOM, I want Microsoft to describe a UI that is biased towards .NET developers.

I think there is nothing wrong with having a cross-platform UI stack. But even if we had one today, it wouldn't belong here. Keep in mind that .NET Standard is neutral with respect to the application model as this API set needs to be implemented by everyone. This includes headless devices, console apps, cloud services, and web assembly. Forcing everyone to support a client side UI stack is not only not desirable, it's just not feasible.

So while I'm supportive of that effort (I'm famous for hating on the Electron-style experience) this issue just doesn't belong here, sorry. However, there is a User Voice item that is tracking that and I'm sure there are people thinking about it. So please don't read me closing this as not being supportive. I just don't want to track that here.

@terrajobst
.NET Standard, is a library that defines a set of contracts that any .NET framework has to implement.
.NET UI Standard, is a lib that defines a set of contracts any .NET UI framework has to implement.

By this issue I didn't mean that .NET UI Standard should be part of .NET Standard, but merely an appendix to it (probably depending on it).

That User Voice item is from 2015. That's before Microsoft even acquired Xamarin. Xamarin is headed the right direction to solving that, but it follows its own model and makes up its own standards, while the opposite should be: Microsoft defining a set of standards everyone follows. Kinda XAML Standard, just XAML is the wrong word, should rather be UI.

I mean it could have been in .NET Core, but really it doesn't belong there either, because my request is an abstraction of the feature-set of any UI in any .NET, @birbilis defined it best.

OK posted it here please vote!

Maybe the community needs to define a UI standard without Microsoft...

Was this page helpful?
0 / 5 - 0 ratings

Related issues

virzak picture virzak  路  4Comments

KexyBiscuit picture KexyBiscuit  路  3Comments

chrisaut picture chrisaut  路  3Comments

tbonham picture tbonham  路  5Comments

valeriob picture valeriob  路  4Comments