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

👨‍💻☎ [Cancelled] WinUI Community Call: October 20, 2021 #6050

Closed gabbybilka closed 2 years ago

gabbybilka commented 2 years ago

Update (10/19/2021) 📢: The October WinUI Community Call has been cancelled - we'll see you in November.

Instead of a live Q&A, we'll be answering your questions posted here, For additional questions, please feel free to open up separate issues for them on the repo.


Please join us for the October 2021 edition of the WinUI Community Call. This event will be live-streamed to YouTube at the following link: https://youtu.be/h4apI79wt4o

Details

Date: October 20, 2021 Time: 16:00-17:00 UTC (9:00-10:00am Pacific)

Anyone and everyone is welcome - no pre-registration is required. This will be an informal interactive live stream directly with members of our engineering team.

Format

The community call is a call among the WinUI team that is live-streamed onto YouTube. We present on new updates, share information, welcome guests, and answer your questions. In this month's call, we'll be sharing WinUI roadmap updates and info about the latest WinUI 3 release in Windows App SDK Preview 2 (#6049). We'll also be joined by folks from the React Native for Windows team to share latest updates and give an overview of how RN4W integrates with and layers on top of WinUI.

Agenda

Q&A Code of Conduct

Leave us your questions in the comments on this issue or live in the YouTube chat during the stream!

kmgallahan commented 2 years ago

@gabbybilka The last pinned community call should be replaced with this one.

thatsofia commented 2 years ago

Are there going to be updates to the styles of WPF so users don't have to rely on external dependencies?

And perhaps open-sourcing UXTheme?

And a more user-facing question I have is whether click and drag support for menus is coming. I'm not sure if there's an issue in this repo already but people (in my circles at least) including myself have noticed this. And hey... isn't Paint using XAML islands now?

Ah and a question at a more personal level that I'm only asking because the RNW folks are here. It looks like the Xbox app for Windows uses an old version of RNW (and hence WinUI). It also doesn't use MSIX? What's up with that? And what other clients, be it Microsoft or external, use RNW?


Edit: Also, last time I really checked in with WinUI 3.0, UWP wasn't supported. I'm not much of a UWP developer but are you folks not tired tired of burning those who have followed Microsoft? I remember reading https://github.com/microsoft/WindowsAppSDK/issues/105 where people were complaining about the lack of official .NET 6 support in UWP apps. The entire situation is rather messy. Again, only briefly looked at the docs of UWP stuff. More or less sad for those people.

llothar commented 2 years ago

When will we get the ink canvas control in WinUI3 ?

MrDeej commented 2 years ago

Please enable Windowing in next preview. It works good enough in Experimental1 to use. The operating system is called "Windows", not "Window" :) We need multiple windows (on same thread) to enable desktop productivity.

pjmlp commented 2 years ago

Any roadmap updates regarding XAML C++/WinRT and IDL tooling?

Also, will XAML compiler ever be aware of C++ modules? Currently it just doesn't work given the tricks made with partial types and #includes from generated code (...g.h).

jaymarvin98 commented 2 years ago

Hello!

Is this the best place/forum to ask general questions? I hesitate to create an "Issue".

My question is about the file system interface of UWP, the main actor being StorageFile. Is this mechanism/API supported in WinUI 3, or Win UI 2 for that matter? Or do you have to revert to the older System.IO Win32 APIs?

Thanks, Jay Marvin

ghost1372 commented 2 years ago

When will the designer be available for WinUI 3?

ghost1372 commented 2 years ago

Is there a plan to add datagrid control?

MEK3DK commented 2 years ago

What level of rendering performance does WinUI 3 target compared to WPF? Faster to render for example 1000 buttons or? In the examples seen so far, it seems like WinUI 3 is quite slow at rendering, is that due to debug code still in the release or?

MEK3DK commented 2 years ago

Will Width and Height properties for a Window be supported in 1.0? It seems funny to release a UI framework for Windows where you cannot set Width and Height.

(I know there is a bug for it: https://github.com/microsoft/microsoft-ui-xaml/issues/2731)

MEK3DK commented 2 years ago

A big roadblock for moving from WPF to WinUI 3 is that WinUI 3 classes are sealed, will that be fixed in 1.0 or 1.1?

(Bug related to it: https://github.com/microsoft/microsoft-ui-xaml/issues/780)

alex-aparin commented 2 years ago

Hello! Unfortunately I came across on multiple limitations of WinUi 3 as GUI framework. Here is my questions (I will very appreciate if you cover these ones):

  1. What is about Vulkan support. My application heavily uses Vulkan engine to render different scenes. I want to easily migrate to WinUi (but it seems like there is no direct support). Some custom control with vulkan rendering will be enough.
  2. This one is related to the previous question (it's kind of workaround). Will WinUi support of including native controls (especially for native win32 HWND) in nearest releases? (Here is list of related issues #3812, #1833, ##3291). I analyzed the WinUI 3 application. I noticed that it does not use native win32 children (it seems like that they are custom drawn, except for top level window - WinUIDesktopWin32WindowClass) This is problem because Vulkan API requires native HWND . (Just as example - WPF provides similar feature)
  3. Why does API not have effective way to override appearance of any controls. (I know that composition can be applied for custom draw controls, but it's very ineffective to render such primitives as Line, Rectangle, Path because they are derived class of Shape. It has overhead (for example due implementation, each of such instances allocated memory on heap etc). Just as example - WPF proposes direct rendering to Visual object, its content has render instructions which will be processed later on GPU - I did not find similar way in WinUI 3). It's related to #6036
ghost1372 commented 2 years ago

At the time of release of WinUI 3 1.0.0-experimental1, it was announced that this is the latest experimental version, The same thing was said recently in the release of the preview2. Therefore, until the release of the official version (WinUI 3 v1.0.0), we will no longer have experimental and preview builds from version 1.0.0. So what should we wait for? The official version in the coming weeks? Experimental and preview versions of version 1.x.x?


Update: I noticed that due to some critical bugs we will see preview3 soon.

wjk commented 2 years ago

Where's the source code? We were promised source years and years ago, and not one line of core WinUI 3 code has hit GitHub to date. Even if you can't release the WinUI 3 C++ source yet due to its OS repo history, at least please let us be able to submit PRs for the NuGet packaging and MSBuild targets, since (AFAIK) those components were written from scratch. There are plenty of things we, the community would be able to improve on (for example, https://github.com/microsoft/WindowsAppSDK/discussions/1444), if only you let us!

harvinders commented 2 years ago

@ryandemopoulos Sorry, have to ask it. When are we going to see 1.0 released? Why I ask? We can then plan our activities properly.

seanocali commented 2 years ago

Will there be gamepad support in 1.0?

gabbybilka commented 2 years ago

Hey folks, as you've seen by the title update, we've had to cancel the WinUI community call this month.

Typically, we'd address your questions asked in this issue in the live Q&A. Instead, we'll be replying directly in this thread. We appreciate your flexibility!

saint4eva commented 2 years ago

UWP cancelled, meeting cancelled

lhak commented 2 years ago

And, finally, when will this bug https://github.com/microsoft/microsoft-ui-xaml/issues/3665 be fixed? It prevents actually using win2d and has not been fixed for almost a year now.

terrycox commented 2 years ago

Referring to https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4171#issuecomment-896330268 As I understand it, WCT was awaiting 2.7 styles in WinUI 3 in order to update to experimental (or now, I assume, preproduction preview 3.) Are the style changes there and will MVVM be available soon? I'm at CommunityToolkit.Mvvm" Version="7.0.3" with Microsoft.ProjectReunion.WinUI" Version="0.8.2".

rick-palmsens commented 2 years ago

So yeah, whats up with UWP support? Please a yes or no on whether it is being dropped.

terrycox commented 2 years ago

Can Ryan provide any further information regarding Pivot? I'm still using it and need to figure out where to take my code.

kmgallahan commented 2 years ago

Hot reload for C# and XAML seems completely broken in Preview 2 with VS 2019. Is 2019 support going to be added back by Nov 8 / Preview 3 / Release?

kmgallahan commented 2 years ago

Activation via toast notification results in a crash using Preview 2 w/ VS 2019, is that to be expected right now?

kmgallahan commented 2 years ago

After release in November will this repo be close to silent through the rest of the year like 2020, or can we anticipate any further progress before 2022?

kmgallahan commented 2 years ago

Any chance of better exception handling before 2022?

terrycox commented 2 years ago

I'm not sure why the Community Call was canceled, but if it's because you guys are rushing to get ready for Windows App SDK 1.0, I suspect you're rushing too much...

ryandemopoulos commented 2 years ago

Are there going to be updates to the styles of WPF so users don't have to rely on external dependencies?

And perhaps open-sourcing UXTheme?

And a more user-facing question I have is whether click and drag support for menus is coming. I'm not sure if there's an issue in this repo already but people (in my circles at least) including myself have noticed this. And hey... isn't Paint using XAML islands now?

Ah and a question at a more personal level that I'm only asking because the RNW folks are here. It looks like the Xbox app for Windows uses an old version of RNW (and hence WinUI). It also doesn't use MSIX? What's up with that? And what other clients, be it Microsoft or external, use RNW?

Edit: Also, last time I really checked in with WinUI 3.0, UWP wasn't supported. I'm not much of a UWP developer but are you folks not tired tired of burning those who have followed Microsoft? I remember reading microsoft/WindowsAppSDK#105 where people were complaining about the lack of official .NET 6 support in UWP apps. The entire situation is rather messy. Again, only briefly looked at the docs of UWP stuff. More or less sad for those people.

Regarding WPF and UxTheme, both are good ideas, but neither are planned at this time. We're focusing our resources on bringing new value primarily to WinUI, as we have a lengthy ToDo list in terms of features to add and bugs to fix.

Could you help me understand what "click and drag support for menus" means? Is this re-ordering within a menu or something like that?

@stmoy should answer the question around React Native for Windows.

ryandemopoulos commented 2 years ago

Hello!

Is this the best place/forum to ask general questions? I hesitate to create an "Issue".

My question is about the file system interface of UWP, the main actor being StorageFile. Is this mechanism/API supported in WinUI 3, or Win UI 2 for that matter? Or do you have to revert to the older System.IO Win32 APIs?

Thanks, Jay Marvin

@MikeHillberg, are you able to answer this?

ryandemopoulos commented 2 years ago

Is there a plan to add datagrid control?

I don't have a timeframe, but having a DataGrid solution is certainly important. UWP XAML also did not have a DataGrid, and our team felt it was important enough that we ported the Silverlight DataGrid into the Windows Community Toolkit a few years ago -- it was actually the only control we've ever produced for UWP XAML that was .NET only (since we didn't have the time to re-write it in C++.

We have a lengthy list of high priority things to get to -- not just shipping in WinAppSDK 1.0, but also many other strongly-requested features like Islands, Mica, Muti-Window support, and several other controls. I think eventually we'll want to bring in DataGrid too but it will be a process of weighing that against other community requests.

ryandemopoulos commented 2 years ago

What level of rendering performance does WinUI 3 target compared to WPF? Faster to render for example 1000 buttons or? In the examples seen so far, it seems like WinUI 3 is quite slow at rendering, is that due to debug code still in the release or?

The short answer is "sometimes faster than WPF, sometimes slower". I don't have specific data on-hand right now for rendering exactly 1000 buttons, but time-to-render is a function of a lot of things -- how quickly we can create the objects in memory, how quickly we can render them to screen with the compositor and DirectX, how quickly we tick animations (we are much more performant on that), etc.

We are actively -- as in right now -- fixing bugs and improving WinUI 3's overall performance including the ability to rapidly render XAML objects and image-based assets. It's one of our endgame items before we ship in WinAppSDK 1.0, and also potential targets for servicing updates too. It's a high pri item for us right now and should improve noticeably over the coming months.

ryandemopoulos commented 2 years ago

A big roadblock for moving from WPF to WinUI 3 is that WinUI 3 classes are sealed, will that be fixed in 1.0 or 1.1?

(Bug related to it: #780)

Regretfully, we weren't able to get to this for 1.0. We definitely want to get to this for a future release.

ryandemopoulos commented 2 years ago

Hello! Unfortunately I came across on multiple limitations of WinUi 3 as GUI framework. Here is my questions (I will very appreciate if you cover these ones):

  1. What is about Vulkan support. My application heavily uses Vulkan engine to render different scenes. I want to easily migrate to WinUi (but it seems like there is no direct support). Some custom control with vulkan rendering will be enough.
  2. This one is related to the previous question (it's kind of workaround). Will WinUi support of including native controls (especially for native win32 HWND) in nearest releases? (Here is list of related issues Question: How to migrate a simple Win32 app to WinUI 3.0 #3812, Discussion: Legacy Pond (Legacy control container in XAML) for XAML Desktop #1833, #Discussion: Vulkan embedding #3291). I analyzed the WinUI 3 application. I noticed that it does not use native win32 children (it seems like that they are custom drawn, except for top level window - WinUIDesktopWin32WindowClass) This is problem because Vulkan API requires native HWND . (Just as example - WPF provides similar feature)
  3. Why does API not have effective way to override appearance of any controls. (I know that composition can be applied for custom draw controls, but it's very ineffective to render such primitives as Line, Rectangle, Path because they are derived class of Shape. It has overhead (for example due implementation, each of such instances allocated memory on heap etc). Just as example - WPF proposes direct rendering to Visual object, its content has render instructions which will be processed later on GPU - I did not find similar way in WinUI 3). It's related to How to render content of Control object? #6036

@codendone can you answer these?

stmoy commented 2 years ago

@thatsofia

It looks like the Xbox app for Windows uses an old version of RNW (and hence WinUI). It also doesn't use MSIX? What's up with that?

Thanks for reaching out! We work closely with Facebook to ensure that React Native for Windows stays aligned with the RN Core versions - in fact, we just released v0.66 of RNW to coincide with the release of v0.66 for RN core. Even so, it takes teams a while to update to the latest version (including folks that we work closely with like the Xbox team).

And what other clients, be it Microsoft or external, use RNW?

Great question -- we're working on putting together a customer showcase site, but it has been a work in progress. In the meantime, a few of our big customers that leverage RN as part of their product include:

Some external customers include:

We can't wait to share even more info when the customer showcase site goes live!

If you have any other questions, please reach out to the React Native for Windows team on GitHub: https://github.com/microsoft/react-native-windows

ryandemopoulos commented 2 years ago

Where's the source code? We were promised source years and years ago, and not one line of core WinUI 3 code has hit GitHub to date. Even if you can't release the WinUI 3 C++ source yet due to its OS repo history, at least please let us be able to submit PRs for the NuGet packaging and MSBuild targets, since (AFAIK) those components were written from scratch. There are plenty of things we, the community would be able to improve on (for example, microsoft/WindowsAppSDK#1444), if only you let us!

Becoming open source has been much, much more difficult for us than we anticipated. I personally vastly underestimated the amount of effort it has required. It's more than just "release the code" -- it required us to decouple from the OS and private API calls (which took months of work but is mostly completed), but also still requires us to change our build systems so that we can accept PRs, comb thru millions of lines of code for other needed changes, updating our testing infrastructure, and change our internal planning processes too.

This has been a miss on our part for sure. It remains something I want to get done as fast as possible -- but at the moment, features like unpackaged support, Islands, updating to the latest Win11 styles, and more are higher priority. As these higher priority items are completed, I'm hopeful we can resume our efforts to release the code and accept PRs.

ryandemopoulos commented 2 years ago
  • Is multi window support still planned for 1.0 (it is on the roadmap, but disabled in the preview versions) ?
  • When will xcopy deployment be possible ?

And, finally, when will this bug #3665 be fixed? It prevents actually using win2d and has not been fixed for almost a year now.

The roadmap will be updated today -- @gabbybilka is just putting some final touches on it. Multi-window is likely to come in 1.1 (we are still planning 1.1 but I think it likely makes it).

xcopy deploy is targeted for 1.0.

I don't have an ETA for #3665, but I'd be happy to raise it with my dev team. Ballpark: could you give me an idea of how rapidly the memory usage grows? Trying to get a sense of the severity of the issue...

seven-mile commented 2 years ago

No matter why the meeting is cancelled, thanks for your magnificent works! I think the fluent development experience on recent-version WinAppSDK has been pleasing most of us. I want to know which step have Mica & DesktopAcrylic Controllers reached? Are them nearly completed? Concerning the coming Preview3, will it contain the mere bug fix? Or part of preliminary features will be out too?

ryandemopoulos commented 2 years ago

Referring to CommunityToolkit/WindowsCommunityToolkit#4171 (comment) As I understand it, WCT was awaiting 2.7 styles in WinUI 3 in order to update to experimental (or now, I assume, preproduction preview 3.) Are the style changes there and will MVVM be available soon? I'm at CommunityToolkit.Mvvm" Version="7.0.3" with Microsoft.ProjectReunion.WinUI" Version="0.8.2".

Nearly all of the 2.7 controls/styles will be in WinUI 3 in the WinAppSDK 1.0 launch this year -- they'll be in the next preview we release very soon. One exception to this is Mica support -- unfortunately that is more complicated (like Background Acrylic) and likely won't be possible until next year -- I'm hoping the v1.1 release.

Unsure about the MVVM question. @michael-hawker, can you comment?

ghost1372 commented 2 years ago

@ryandemopoulos when we can attach UI framework content to an AppWindow? v1.0 or...

Scottj1s commented 2 years ago

@kmgallahan, answers to several of your questions:

  1. Hot Reload is supported today - see compatibility matrix here: https://github.com/microsoft/microsoft-ui-xaml/issues/5324
  2. Please enter a bug with specific repro details for the toast notification crash
  3. We have an internal issue to improve the regression in exception debuggability with respect to UWP apps
ryandemopoulos commented 2 years ago

Can Ryan provide any further information regarding Pivot? I'm still using it and need to figure out where to take my code.

Eventually (long term) we'll make a Pivot2 or something like that. Until then, we'll keep in the product so you can continue to use it as-is. So, ... uh ... you don't have to take your code anywhere? :)

Scottj1s commented 2 years ago

@lhak, regarding xcopy-deployable apps, Windows App SDK Preview3 will include unpackaged desktop app support, in both SelfContained and FrameworkPackaged-dependent modes. This will still require execution of the VCRedist install on a target device, but the v1.0 release will not carry this requirement.

Scottj1s commented 2 years ago

@jaymarvin98, Some StorageFile APIs are available for desktop (non-UWP) apps, and can be used in both packaged and unpackaged modes. If you have a specific scenario you feel is not supported, but should be, please enter an issue here.

ryandemopoulos commented 2 years ago

So yeah, whats up with UWP support? Please a yes or no on whether it is being dropped.

No, we aren't dropping support for UWP. We are adjusting the level of investment we do in UWP, just as we've done in all other platforms/frameworks like WinForms, WPF, etc. Thomas Fennel posted some useful info on this recently -- you can see that here: https://github.com/microsoft/WindowsAppSDK/discussions/1615

Scottj1s commented 2 years ago

@pjmlp, We're aware of the pain points with respect to writing XAML apps in C++/WinRT, and have several improvements in our backlog. We have a task in our backlog to improve not just module support, but to reduce PCH size - in short, to improve build throughput by minimizing compilation.

lhak commented 2 years ago

@ryandemopoulos When rapidly changing the size of a CanvasControl (e.g. by resizing the window very quickly) I think I could manage about 1 gigabyte of video memory increase per second. In my application I do an animated size change of a CanvasControl and can completely fill up the VRAM with a single animation, leading to multiple UI freezes during the animation.

While I could certainly remove this animation for now, this behavior is still very concerning because the same code works perfectly on .net core 3.1+ xaml islands and win2d today.

ryandemopoulos commented 2 years ago

@ryandemopoulos Sorry, have to ask it. When are we going to see 1.0 released? Why I ask? We can then plan our activities properly.

This year. We remain on track for Q4. (fun fact, we're also in Q4, so "soon"!)

ryandemopoulos commented 2 years ago

When rapidly changing the size of a CanvasControl (e.g. by resizing the window very quickly) I think I could manage about 1 gigabyte of video memory increase per second. In my application I do an animated size change of a CanvasControl and can completely fill up the VRAM with a single animation, leading to multiple UI freezes during the animation.

While I could certainly remove this animation for now, this behavior is still very concerning because the same code works perfectly on .net core 3.1+ xaml islands and win2d today.

Yikes! OK, I took your comment and put it into the original issue so we also have that info. I'll chat with our dev team about it. Sorry I don't have an ETA beyond that.

gabbybilka commented 2 years ago

@llothar Regarding InkCanvas in WinUI 3, we do not yet have a specific date for adding InkCanvas, but it is still in our roadmap for a future release.

@ghost1372 Regarding designer in WinUI 3, we don't have plans yet to add one. Have you used designer in the past for UWP/WPF? What would you need in a designer for WinUI 3? We are still investigating adding this.

@seanocali Regarding gamepad support in 1.0, unfortunately it will not be supported in WinUI 3 GA. @codendone do you have any additional info on the plans to include gamepad input in Windows App SDK for WinUI 3?

Stay tuned~ for an update to our roadmap later today for our most up to date feature timeline.

ryandemopoulos commented 2 years ago

@ryandemopoulos when we can attach UI framework content to an AppWindow? v1.0 or...

post-1.0. In the list of "stuff we need to think about for 1.1+".