Microsoft-ui-xaml: πŸ‘©β€πŸ’»πŸ“ž June WinUI Community Call (June 17, 2020)

Created on 13 Jun 2020  Β·  29Comments  Β·  Source: microsoft/microsoft-ui-xaml

This call has ended - huge thanks to our presenters, question-answerers, and everyone who tuned in!

You can watch the recording of the community call here: https://youtu.be/iJoSMC3sHqM


Details

Date: June 17, 2020
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

In this community call we'll be welcoming a community guest and going over some future plans for WinUI.

At the end of every community call we have a Q&A session where our team answers your questions about all things WinUI. Ask your questions in the comments of this issue!

Agenda

Intro, Status Update on WinUI
Community Spotlight: Arlo to speak about the UWP Community Discord Launch 2020 effort
Ecosystem Spotlight: Telerik - Developer Advocate Sam to speak all about Telerik and demo some of their exciting features
Q&A

hot

Most helpful comment

Looking forward to the call as usual! πŸ˜„

I have a couple questions:

  1. Are there any updates on Win2D support for WinUI 3? For instance:

    • Is there an ETA for an official preview package of Win2D targeting WinUI 3 preview?

    • Will all the current Win2D features be supported with WinUI 3, including all the various Win2D/Composition effects (see here)?

    • Same questions as above regarding the CanvasControl being usable with WinUI 3.

    • Lots of Win2D effects are currently marked as [NoComposition], do you plan to enable support for more of them within Composition pipelines with WinUI 3?

  2. When do you expect the RichEditBox control will be made available in a WinUI 3 preview?

Keep up the great work everyone! πŸš€

All 29 comments

Great Job with WinUI 3 preview 1!!
It is probably not fair to ask this, but is there a drop date for Preview 2 that you guys can share?

Also, there was an issue #1954 reported on leaky ItemsRepeater a while back. Given that other controls are being built on top of ItemsRepeater I would have thoughts it would have been investigated further. Just like to understand if there are any plans in that direction? I am developing an app with ItemRepeaters within ItemsRepeater and the leak causes the app to slowly starts consuming lot of memory.

@harvinders AFAIK Preview 2 is currently planned to be released by the end of this month.

I have a couple of questions,

1/ What are the plans for MVVM support in WinUI?

2/ Many existing MVVM frameworks (both active and no longer active) implement messaging but they are mostly one-way and require additional messaging callbacks to return responses. Are there any plans to implement request/response pattern so messaging can return objects at the same point of request? For example MediatR does this really well.

Hey @cirrusone - awesome question! πŸ˜„

I can't comment on the WinUI-specific plans (though considering the framework will just support standard BCL types, I don't really see how MVVM libraries should necessarily have anything "WinUI-specific" in them at all), but there's a work in progress brand new MVVM package in the works for the Windows Community Toolkit that should hopefully be of interest of you (full disclosure, you'll see I'm the author, so I might be a little biased here, though I believe the proposal has merit and is solid).

Related links:

The package just targets .NET Standard 2.0, so assuming WinUI 3 preview has no issues dealing with the various projections for BCL types/interfaces, it should work right out of the box there too. We're thinking about creating a preview package on MyGet for people to try this out too in the near future.

As for your second question, I've added support for "request messages" in the messenger type too.
The way it works is that there's a RequestMessageBase<T> you can inherit from, which enables this:

// Define a request message
public class LoggedInUserRequestMessage : RequestMessage<User> { }

// Register the receiver in a module
Messenger.Default.Register<LoggedInUserRequestMessage>(this, m =>
{
    m.Reply(CurrentUser); // Assume "CurrentUser" is some local var/field/property
});

// Request the value from another module
User user = Messenger.Default.Send<LoggedInUserRequestMessage>();

Hope this is similar to what you had in mind! 😊

What can we expect from WinUI 3 Preview 2? Will there just be reliability and stability improvements and bug fixes or will there also be new features?

@chingucoding Presumably little to no new features:

As we announced previously, Preview 2 will be a stability and quality focused release, with an emphasis on fixing bugs from Preview 1.
(https://github.com/microsoft/microsoft-ui-xaml/issues/2643)

@Sergio0694 - This looks excellent and good to see significant performance improvements as well. Support for _request messages_ is very exciting as many frameworks omit this very useful functionality. Thank you.

Looking forward to the call as usual! πŸ˜„

I have a couple questions:

  1. Are there any updates on Win2D support for WinUI 3? For instance:

    • Is there an ETA for an official preview package of Win2D targeting WinUI 3 preview?

    • Will all the current Win2D features be supported with WinUI 3, including all the various Win2D/Composition effects (see here)?

    • Same questions as above regarding the CanvasControl being usable with WinUI 3.

    • Lots of Win2D effects are currently marked as [NoComposition], do you plan to enable support for more of them within Composition pipelines with WinUI 3?

  2. When do you expect the RichEditBox control will be made available in a WinUI 3 preview?

Keep up the great work everyone! πŸš€

I guess what would be interesting, besides Win2D eventually being updated for WinUI, to have its documentation updated, and migrated to C++/WinRT instead of C++/CX. Given that those of us in .NET that occasionally need to reach for C++, are now eager for C++/WinRT tooling and examples besides the Photo Gallery sample.

Then it would be interesting to know when WinUI will ever provide the WPF features that won't be present in WinUI 3.0, like:

  • Model3D (nice for displaying 3D related data in LOB without bringing in a game engine)
  • Shader Effects (also nice for several UI effects without having to deal with C++/DirectX low level programming, Visual Layer could be of help here but requires rewriting everything from scratch)

And for the use cases where we have to go down into C++, a VS RAD tooling experience for C++/WinRT similar to what is available to C#, VB.NET and C++/CX currently, without having to manually copy generated files around or write the same information in multiple files in a Notepad like experience.

Realized I have another question specifically regarding plans for WinUI 3 + .NET 5.

Are there plans to properly support AOT tools (be it Ready To Run, crossgen2, etc.) with WinUI 3 on .NET 5 out of the box? By that I mean, just as some built-in option that can easily toggled on by developers, like with .NET Native. .NET 5 is definitely fast on its own, but you really just can't compete with a full AOT binary in cold startup time. Besides, WinUI admittedly has a (small) performance hit over pure UWP XAML due to the architecture changes, so I was wondering whether this plus the lack of an AOT toolchain might cause a noticeable step back in startup time for new apps πŸ€”

For some context: I'm currently working on UWP XAML (so with .NET Native), and despite the various shortcomings this compiler/runtime has had in the past (and sometimes still has), I just can't get over how incredibly fast the startup time is for UWP apps compiled in Release with .NET Native.
As in, it's ridiculous, and in a good way πŸ˜„
You can easily go from 2-3+ seconds splash screens without, to literally instantaneous startup with it.
When trying to run the Windows Community Toolkit sample app the difference is even greater, that one takes quite a few seconds to get past the splash screen without .NET Native, but it's still instantaneous with it, I can barely see the splash screen for a fraction of a second, if at all.

Thanks! 😊

Timeline for UWP app model for WinUI and .NET 5/6?

I remember reading that unsealing framework classes/controls ("unseal all the things") was planned for WinUI 3.0. How is the status on that? Will this still happen for the WinUI 3.0 release or is it now slated for subsequent WinUI releases (such as WinUI 3.x)?

Hi WinUI team,

I had a couple questions regarding Preview 2 Improvements and Fixes:

  1. In the last Community Call, someone mentioned putting a list of items that will be included in the next preview. Has that list been created?

  2. Or, is there a list of known issues being worked?

Thanks!

I have 4 areas with technical questions / requests for updates - involving specifics of our transition from UWP to WinUI3 Desktop. We will be posting issues soon!

First set of questions are related to the FilePicker:

  1. Are there any updates to FilePicker/FolderPicker?

  2. Is it intended that FileOpenPicker, FileSavePicker, and FolderPicker will work the same in WinUI3 Desktop as they do in UWP? Currently, the FilePicker has been causing our application to crash.

  3. If not, what is the recommended way to have the equivalent in WinUI3?

  4. If we need to call the Win32 code, could someone provide an example?

Another issue we have come across is that the DataGrid does not display.

  1. We have prepared an issue write-up and simplified sample solution. Should we post this issue in the Community Toolkit repository or the WinUI repository?

  2. Would love to know if there are any updates to DataGrid as well!

Are there any updates to TextBox since Preview 1?

We have inconsistent behavior with TextBoxes inside of ContentDialog. Most importantly, we are unable to type in text aside for a couple specific characters. Issue with more details to be written soon!

Are there any known issues with Drag and Drop?

Thanks again!

The MVVM framework compatibility issue associated with ObservableCollection doesn't seem to be addressed by the new Toolkit MVVM API. Are you going to provide backward compatibility with existing code?

@terrycox There's nothing to address on the library side, that package is just using types/interfaces from the BCL. It's just WinUI that will eventually be updated to properly support them (with projects and whatnot where needed), just like is the case with UWP XAML today and other frameworks too (eg. WPF, Uno, Xamarin, etc.). IIRC @ryandemopoulos had already clarified in the UWP Community Discord server that they do plan to have WinUI 3 fully support all the existing APIs from the BCL, so I guess it's just a matter of time. Of course, this is just my personal comment as an external dev πŸ‘

Will there be any news around the ability to get the window handle from a WinUI 3 Desktop window and also around the IInitializeWithWindow interface with CsWinrt ?
It would be nice that features like these don't require creating complex Wrappers like the ones in the C# version of WinUI-3-Demos.

I can't test WinUI with existing UWP code that uses MvvmLightStd10 because of this issue, which was (once) documented for the Alpha at https://docs.microsoft.com/en-us/uwp/toolkits/winui3/#alpha-limitations-and-known-issues. If you try to pull that link up today you'll see only references to Preview1 dating back to May, although the original page was up as far back as Ignite 2019.
The issue related to a new WinUI 3.0 version of INotifyCollectionChanged instead of ObservableCollection for collections used as a DataSource. The write-up concludes with this paragraph:
For an example of how to work around this issue, see the Xaml Controls Gallery, which uses a custom implementation of a collection that implements INotifyCollectionChanged instead of ObservableCollection.
I haven't looked but believe that the Toolkit must use code like that.
If this is a problem for MVVM Light, it's also going to be an issue for other MVVM frameworks like Prism. We'll be asked to amend these frameworks or switch to new ones. This is not backward compatibility.

News for Windows Ink support?

@eleanorleffler, It's expected that you can use the File and Folder picker WinRT APIs. You can find some C++ and C# samples at https://github.com/microsoft/WinUI-3-Demos.

We are still working on several things like simplifying how you can get the Window Handle in C#.

About the ContentDialog. There is an awful bug that we will fix soon about avoid to input in TextBoxes inside of ContentDialog.

Hi @marb2000, Thank you for your response!

In regards to the FilePicker, we are having issues with DemoBuildCs in particular. I have created an issue with more details!

Issue 3 - https://github.com/microsoft/WinUI-3-Demos/issues/3

Just throwing this in from the YouTube chat

Will there ever be a time when we see WinUI being a choice for 2D UI in 3D mixed reality experiences on HoloLens or WMR devices?

@terrycox the problem isn't with the MVVM frameworks specifically it's with the fact that WinUI 3 UWP is still on the .NET Native chain which doesn't have the proper mapping support. That's why it'll work fine in WinUI 3 Desktop with .NET 5 because of the new C#/WinRT project as @stevenbrix called out on the call.

So, hopefully the .NET 5 + WinUI 3 UWP story can be sorted out, and then that all gets automatically resolved. Otherwise, they'll have to go and update the .NET Native toolchain to support this new scenario somehow.

So, I believe the effort is being spent looking forward to get .NET 5 + UWP currently and ignoring the current incompatibility with the existing toolchain.

Also to add to what @hawkerm said, the Toolkit MVVM package _does_ work fine on UWP with .NET Native when using WUX/MUX 2.4, the issue is only when using WinUI 3 preview on UWP πŸ‘

Hi, can somebody point me to the source of a UWP app that's properly configured to this Toolkit MVVM package? It looks awesome but I have problems with getting started without any documentation.

Hey @XamlBrewer - thank you for your interest! πŸ˜„
I haven't created a docs PR yet as the package is still work in progress, and we don't have official samples either at the moment. If you want some help though you can just ping me on Discord (aka.ms/winui/discord), and I'll be happy to DM you a draft of the MVVM docs, and to help out if you have any questions 😊

Was this page helpful?
0 / 5 - 0 ratings