microsoft / microsoft-ui-xaml

Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
MIT License
6.29k stars 675 forks source link

i can use xaml Designer with c++ winui3? #6647

Closed 908317477 closed 1 year ago

908317477 commented 2 years ago

I hope to use the xaml designer to develop C + + winui3 applications,This will greatly improve efficiency。Do you intend to provide modification function? Or provide a way to develop winui3 interactively with c# and C + +.

dylech30th commented 2 years ago

It's been a long discussion about the XAML designer of WinUI, see #5917 , the WinUI team suggest developers choose the hot reload over the XAML designer, however, IMO being unable to customize the built-in control is a great drawback of this approach

pjmlp commented 2 years ago

Unfortunately not, the team is failing to provide any good tooling for C++ at the same level as C++/CX, and the issue referred by @dylech30th doesn't cover the whole cluckly IDL development part.

For writing C++ Windows applications with a nice development experience you are better off going with Qt or C++ Builder, we are years away until C++/WinRT provides anything similar, and has been promised since C++/CX was deprecated in 2015.

Best of all, with Qt or C++ Builder, you can go on macOS and GNU/Linux as well.

908317477 commented 2 years ago

@dylech30th So is it a better way for Microsoft not to do XAML?If Microsoft has evaluated this and believes that hot overloading is the way of UI development in the future, I am happy to try it.

dylech30th commented 2 years ago

Well, I think it will be a significant improvement on developers' experience if Microsoft decided to add the XAML designer to cooperate with the hot reload, but at least for now (if you check the last community call on Jan 19) I don't see any tendencies from the Win UI team to do this. They incline to push the hot reload, quote in their own words, "IMO, Hot Reload and Live Visual Tree are fine", but from my point of view I think the hot reload is not enough

kmgallahan commented 2 years ago

in their own words, "IMO, Hot Reload and Live Visual Tree are fine"

@dylech30th Why are you quoting me? I don't work for MS.

Also, as they stated in the community call the WPF & UWP designers were straightforward to implement due to their code living in the OS, whereas that isn't the case for WinUI 3 so it would take a substantial amount of work.

I'm not against a designer, I'm just trying to be pragmatic here as it is obvious the WinUI team is fairly small and they can only get so much done every quarter/year.

pjmlp commented 2 years ago

They should have thought of it before deprecating C++/CX in 2015.

dylech30th commented 2 years ago

in their own words, "IMO, Hot Reload and Live Visual Tree are fine"

@dylech30th Why are you quoting me? I don't work for MS.

Also, as they stated in the community call the WPF & UWP designers were straightforward to implement due to their code living in the OS, whereas that isn't the case for WinUI 3 so it would take a substantial amount of work.

I'm not against a designer, I'm just trying to be pragmatic here as it is obvious the WinUI team is fairly small and they can only get so much done every quarter/year.

sry for the misunderstanding, what I want to say is even the designer itself can be replaced by hot reload, we still need alternatives for those functionalities that are not for visual design purpose but still very vital (like the example I stated before, i.e., change the style of the built-in controls)

llothar commented 2 years ago

They incline to push the hot reload, quote in their own words, "IMO, Hot Reload and Live Visual Tree are fine", but from my point of view I think the hot reload is not enough

Thats the normal wording when something sucks but as product manager you have to show positive attitude rather than admitting that it's a failure. For C++ they still think and wait that reflection is coming at the language level. Herb Sutter and Kenny Kerr (two of the C++ core members and the creator of WinRT) said this indirectly at the CppCon. But this can't be possible before 2023, maybe even 2026 (as C++ iterates in 3 year intervals)

Given all the other problems don't expect anything usable before 2025.

pjmlp commented 2 years ago

@llothar Reflection won't be part of ISO C++23, so there you have it, how great Microsoft decided to deal with C++ customers on WinRT.

Then they do all these public announcements how "modern" it is.

Any C++ developer should consider Qt and C++ Builder instead, or the new SixtyFPS startup that has been able to provide in two years the C++ tooling that seems so impossible to do in Redmond.

llothar commented 2 years ago

@pjmlp Yes it's a shame. It seems that Frontend needs to go C# and backend of your code is C++. Now every toolkit/operating system has it's own GUI language:

I know that the C++ object model is just not flexible enough for a lot of the GUI convenience and stability (fragile base class problem). But i wish they had picked an easy interoperation language like Objective-C.

Lets see how Slint is doing. But i'm pretty sure that you always have to go with the native toolkit on Android and macOS/iOS to be accepted and support the latest OS features. Cross Platform is not a thing anymore. What we need is finally a modern Windows Gui Toolkit that is not sandboxing us.

pjmlp commented 2 years ago

@llothar Agree with the observation, although Qt, C++ Builder prove what is possible, for 25 years now.

So they can come up with excuses about reflection and such, yet the competition has no issues providing the tooling, which for a moment C++/CX almost nailed it.

Even if C# takes the role, that isn't my problem, as I am mainly doing C# on Windows anyway, the problem is that we are forced to adopt C++/WinRT for the features that we need to write bindings for, with tooling reminiscient from OLE 2.0 heyday.

I consider a big lack of respect to paying customers to have deprecated C++/CX without tooling that can match it, same applies to the whole story with WinUI 3.0 and lack of designers.

There isn't any hot reload that will save us to manually write endless XAML boilerplate for behaviors, story boards, styles,...

Whatever, I moved back to the Web, and don't consider advising anyone to adopt WinUI until it can match WPF/WinForms API surface level and designer tooling.

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 5 days.

pjmlp commented 1 year ago

Bring C++/WinRT out of the stone age.

This is what C++/CX could have been, had it not been killed by internal politics, by a team that is now rather having fun with Rust/WinRT, without any respect for Microsoft paying customers.

C++ Builder, released in 1997, 26 years of commercial use and still going.

Qt, released in1995, 28 years of commercial use and still going.

Not only they provide a proper developer experience with a designer tool, they are cross platform.

CAKCy commented 1 year ago

Please read and act accordingly!

image

The link again: https://developercommunity.visualstudio.com/t/Feature-request-Visual-designer-for-Wi/1608476?q=WinUI+Designer

Oh! And SPREAD THE WORD! PLEASE!