Everything you need to know about WinUI | INT116A
Hello. Everyone welcome, to this live session on win UI I'm, Ryan Demopoulos a member of the win UI team and I'm joined today by Miguel, Ramos another, member of our team who's here to show you a demo later on in the session Miguel. And I have about 20 minutes of content, that we're gonna share with you today and then we'll take. Some Q&A at the end of this session. 20. Minutes is a short amount of time but we have lots of content to share so before we dive in let me say that my hope and goal today is to leave, you with this key takeaway, when, UI 3 will provide a state-of-the-art, UX, framework for every Windows developer, if. You maintain or, create new Windows, desktop applications, this talk is for you and will, spend the balance of time highlighting, why. To. Get started, let's talk, about what, when UI is and, also what it can do for you. To. Really understand what when UI is it's, useful to review a bit of history let's. Go back to 1992. When the Microsoft, foundation class, library, brought C++. Developers, an object-oriented, UI, framework, to. Create apps, for Windows back. Then the latest version of Windows was 3.1. And computers looked something like what you see on the screen, MFC, was built around our windows common controls and at the time it, was the state of the art UI framework, for building great apps for windows on devices like these. Next. Let's fast-forward to 2002. When WinForms, was released along with the exciting, new net, framework, WinForms. Was a lot like MFC in the sense that it also wrapped our windows common controls and it introduced, some great productivity, improvements, but it. Wasn't quite state of the art to replace MFC because. It. Could only be used in dotnet apps and that left MFC as remaining. The state of the art for native, C++ development. Four, years later when WPF. Came out it was also aimed at the dotnet developer, it brought, new and exciting capabilities, and powerful. Abilities. To the dotnet scene that could. Allow you to take advantage of hardware and device, improvements, happening to laptops, and desktops that were advancing, at the time so very. Clearly it was state of the art for dotnet developers, when it. But not every, dotnet developer, needed all that power and in, terms of productivity, and, also just familiarity. WinForms, was still state-of-the-art for many people in the dotnet community, and so when you add all this back up back, in 2006. There were now three, great frameworks, for building, client apps that. Could easily be considered state-of-the-art, two, different, sets of window but windows developers, with different, preferences, and different goals and of. Course the. Story doesn't end there in. 2012. Windows, 8 was released and, it included, a new built-in. Zamel based UI framework, meant to help developers, produce a new style of app sometimes, referred to as Metro, apps or store apps this. Platform eventually. Evolved, into what you now know today as the universal, Windows platform so, today we call that UI framework, UWP zamel. UWP. Zamel framework, is Microsoft's, most advanced, state-of-the-art, framework. For building windows, development, today it. Brings even more new capabilities, to the scene it's built, on our latest graphical, engine, it embodies our fluent. Design system, and it's, designed to meet the expanding, ecosystem, of devices that, is unfolding in our industry, that spans, desktops. And laptops and. Tablets and, tuned ones and consoles, and even super fancy stuff like the hololens and, importantly. UWP. Zamel can also be used in c++ but. Also net, and, so you might be thinking well surely. UW Pease mo must, have been the framework to replace all these other frameworks, to the left as the sort, of new state of the art and the. Answer of course is not exactly. UWP, zamel only works in uwp apps which. Are a different type of app than what's produced by the frameworks, when you use them on the Left we. Call these left side apps desktop.
Or Win32. Apps and these. Two types of apps have different, sets of api's that you can call and different ecosystems, of library that have been built for them and so. If your windows. Developer say a MFC, or a WinForms or a WPF, developer, and you. Decide you want to use UWP, zamel you, also have to buy into your app being a uwp app and for, some people that's fine but for others it can be a blocker and usual, some, sort of security container a trip restriction. Is often the main issue there and. So here. We are we've got four, state-of-the-art. UI frameworks, from Microsoft, to, build Windows client apps and one of them is just about getting. To 30 years old, with. This history in mind now we can really dig into what when UI is and, also what it can do for you when. You I stands, for the windows UI library, and many, of you might already know and use when UI today since it's a product in market we, call this product when you my two series, or less, formally just when you might to when. You I to is, a library, of UI controls, and styles for UW's am elapse its, mature and it's been shipping since October 2018 and the latest version 2.4. Just came out about two weeks ago if you're, a you WP zamel developer today and you're not using when you I you should look into it it's, how we ship all the latest and greatest fluent, controls and styles to you, well. When you my to is, a library, of controls, and styles. For you WP zamel when. UI 3 is literally, the entire code, base of you WP, zamel plus all of when you ITU's controls. And styles, plus. Other powerful layers of, Windows technology, including, the windows 10 visual layer all wrapped, up into a single, UI, framework, and this, framework will ship independently. Of the operating system on its own cadence just like when you I to does, today and, most. Importantly, of all when. You I three will work in any type of app it will work in YouTube, EP apps but also in desktop, apps as well, and. I'll call you back to the one big takeaway that I wanted everyone to get out of this session when, UI 3 will provide a state-of-the-art, UX, framework for every Windows developer. You've. Told us to tear down the walls between win32. And uwp and as you've already heard from Kevin gallo earlier, during the keynote.
When UI 3 will be the first of many Windows platforms, technology, to do this this, whole broad initiative, is called project reunion, and at the end of the session and I'll provide details, on where you can learn more about that. All. Of this adds up to three, big advantages that when you I will provide, for everyone who wants to use it first. Of all it'll offer cutting edge fluent controls and styles for apps that really care about having the very best user experience they, can get on Windows. Second. When you win 3 itself, is implemented, in C++, and so, no matter whether you're using it from C++ or if you're using it from net your UI we'll have native performance and, it. Won't pull in the.net CLR, on its own without. You deciding. To take your app to done that as well and. Finally. Because, we knew my free will ship separately, from the operating system that means you get to decide when you upgrade so, if you're happy with when you my 3.1, you, don't ever have to move to version 3.2. The choice is entirely, up to you, there's. Two other things I want to point out here first. You. Can see that I wrote a UX framework rather than the UX framework when. When Y 3 becomes ready for use in production apps there's still good, reasons, to use the previous technologies, listed here, the. Obvious one is that there are hundreds of millions of apps written with these existing, frameworks and they can't and really shouldn't be rewritten and that's fine and. Even for new apps these older frameworks might be the right choice in some situations, for, example people have familiarity, with them and they might just meet your needs just fine when. UI 3 isn't about replacing, Microsoft's, UI frameworks. It's. About offering everyone a modernized, choice something, new for, those that want a contemporary, option, that offers native, performance puts. You in control and, works, best with today's advanced, devices with, high DPI screens, and all the various latest types of inputs that have emerged, and. Second, for, uwp developers, you shouldn't think of when you i3 as a new, framework that makes when you UWP zamel obsolete, think. Of it instead as the continuation of uwp is amol but it's just kind of rebranded, basically. It's just the next version of UWP zamel but now everybody, will be able to use it some. Of you will be able to upgrade, from you to be zamel to win UI 3 just as easily as doing a find and replace operation. To change namespaces. To. Give you all a sense of what's coming for when you why 3 let's take a walk through our latest road map in. Febrile, we refreshed. Our. When you my three alpha and we added the webview, to control, which is based on the chromium web engine.
Today. We, released when you my three preview one a big release and. It's the first release of when, you my three that allows desktop, style or win three two apps to participate, with we knew why in addition to. Continued. Support for u WP apps and. We're going to talk a little bit more about preview ones capabilities, in just a bit a month. After build we're going to release when you might three preview to preview one. Has some stability issues that we weren't able to address before the conference but we didn't want to hold preview, one back from everyone so preview. To is essentially going to be a more stabilized, version of preview one but, it'll have basically, the same capabilities, and then. In late summer or maybe. Early fall we, hope to switch the project to being open source this, includes not only the full zamel, layer of source code but, also how we plan and track our work as well some. Of you already engage with us on our when, you my two github, repository, and i know our team many. Of the people that I work with are eagerly looking forward to that same level engagement, but for when you I three. At. Ignite in September will ship preview, 3 which. Will bring more capabilities, and features and, then in November, will ship when UI 3 preview, for, in. The past we, have called, this and communicated, this as our rtm or general, availability release. But, as we all know kovat 19 has delayed the world and we know it's causing, delays in your plans and it's caused some delays for us too we. Expect, in November that there's going to be some noteworthy capabilities. Missing, and that release compared, to what you WP exam will can do so we're, gonna keep using the, preview nomenclature, for November, we. Do still anticipate. That this will be the first release of when UI 3 that is forward compatible, and that, means we, expect it to be stable and you. Can build production, apps on it as long, as it contains the specific features that you need for your specific app, and if, it doesn't have all of those features that you need for your specific app, then we'll keep shipping previews. Heading. Into 2021. Until we hit a broad level of capability that. And actually, more importantly you as our community agree, should be called, version, 3.0, and. Our. Open source milestone, is basically the centerpiece, of this thinking we, want to get open quickly so, that you can see the work unfold, and you can weigh in on readiness and also which capabilities, we should go and add next.
And. Now that you have a sense of what we knew is and, also, what's coming this year let's. Switch over to Miguel, and take a look at when you my three preview one which was released today but, working in, a desktop app my, god. Hello. Everybody I'm super, excited to show you wing, away three preview, awning, action, for the first time, the. Pretty one is available, today for everybody. Just go to visual studio marketplace. And look for when you buy three project, templates. After. Installing it you will encounter, new. Project, templates, there are pro template for c-sharp, and, c++. For. Black. Ops and classroom, library for, you WP and desktop. Let's. See how looks like a new wing y3 up till. Char in. The f5. This. Donut, app is using the f5 and. Using. The Wii, U i3 nuga package, wing. Y3, is also, using, the, Neos each our wing RT projections, this, projection, handle, all the interrupts between dotnet and wind Y so, you can create and, use winuae, classes. As we do today internet, apps using, the latest version of c-sharp the seizure, 8 let's. Run the app. This. Is a simple. App nothing, fancy but you can see some, subtle, differences that give you a hint that it is being wired for. Instance you, can see some shadows, to, improve the usability of, your app modern. Controls, like, the teaching tips, support. For the dark thing. I'll. Hide in the scroll bars. But. You. Already have. You, already have creatively, perhaps you. Have single these things is this, is not new for you what, is new for you, is this, is a winter tulip model without, any up container. No security, sandbox so you can call all the donate, 5 API practically. Without any restrictions. For instance I can list, the, files on my C folder or I can. Query all the, processes, and get the list of the loaded libraries. Cool. Right. But. It is more. Wing. Why allows you to create window. Objects, in market the, summary window class is an abstraction of the low-level, wind implementation. Used for the new bleepy, or win32. At model for. Example given. This app is running, in win32, you, can get the window handle. And. Use it with a set, possibly, set window pause we in 32 api to send, a window to the bottom maximize. It or minimize it so yes. You, can use these win32.
Api Eyes but. You are using for more than 20 years, this. Is great. Last. But, not least we, say before that you can create the story why apps in C++, as well. This. Project. Have, exactly, the same UI, I show, you before, beside, the same saml market, but II used C++. 17, for, example is, using. The standard file. System, C++, library, for lists in the folder and using. The. Process, status win32. Library, for querying the current process is, c++. Highly performant, and of course is win32. And this, is all i wanted to share with you today happens. Emil Cody. Thanks. Miguel for showing, us one of the first ever desktop. App using when UI preview one. As. I mentioned preview one just came out today which means that it's available to tryout right now you, can obtain it from our win UI website, at akms, slash win UI and, if, you've already tried out the earlier alphas, that we've released the steps will feel familiar to you there's a v6, that you install to get the new project templates for Visual, Studio, there's. Some interesting, new capabilities. To highlight in preview one the, biggest one we've. Already talked about the support, for win32, or desktop style apps. Uwg, apps are also still supported, as i mentioned earlier just as they were also, in the alphas that we released there's. Also new controls, the ability to do custom. High-performance. Rendering with swatch chain panel, and a, bunch of other improvements. As well bunch, of goodies in there we've. Also updated our zamel. Controls gallery app to use preview 1 if you're, new to win UI you, owe it to yourself. To check out this app it's, when you eyes main showcase, app that lets you not. Only explore, the wide range of controls, and features that are available in when UI but the app itself is open. Source so you can see example, code of how to use those features in your own apps. It's. Also important. For me to reiterate that preview, 1 is our very first ever attempt, to get, when you are working in win32, style apps and it definitely has some limitations, and some stability issues, the, most important one that I want to call out is that when you watch 3 preview 1 which we released today should. Not be used in production apps, it hasn't been certified, for a forward compatibility, and what, that means is it will very, likely actually almost certainly, stop working, in the future at some point as updates are done to the underlying win 1000s, so.
I Definitely don't want preview 1 to cause you any headaches please. Do heed that advice try, and resist the urge to ship. Production apps on it it's really meant for exploration, and, trying out and getting ready for when when UI 3 is ready and forward compatible. You. Can read the rest of all this over on your own and I'd encourage you to visit the link below to the release notes because it has even more details than many more details on what are on this slide. Before. We end I want to leave you with a couple of exciting stories of customers and partners that are, already exploring, preview 1, the first is Ezra. And their ArcGIS, platform, Ezra. Is a global, market leader in geographic. Information system. Software and the. ArcGIS. Platform is, well known across the world many cities use it for urban, planning and modeling and tracking of changes over time one. Of the developers who works on this platform is also a well-known, developer. Amongst. Our MVP developer, community, and that, is Morten Nielsen Morten. Has been working on with preview one already to, prepare ArcGIS, is runtime, a mapping. SDK to use winuae 3 when the framework, eventually reaches maturity he. And the folks at ESRI, have been awesome to work with and he's prepared a quick video just to show his progress let's run that video. Hi. Here I have a win you want and win32, ever built using issues like this runs from SDK and I'm using the swap chain pound to get really, great smooth rendering performance even. If want to go and load something like, a half gigabyte, data set and not having to worry about sin but restrictions, I can just meet straight up and get this great rendering, performance even. If I want to go add for instance 200, million data points from a laser scanning and, this gives me really great rendering performance and. This is something that's going to enable our customers to start looking at this data in real time in these kind of data sets and we're really excited about the capability, something like this will give us. It's. Been great working with Martin and ESRI to explore when UI threes capabilities. And he's already provided, great feedback that has helped shape the direction of our work so thank you very much Martin. And. Alongside. Customers, were also, beginning to explore when UI 3 with several ecosystem, partners - I want. To quickly show how our collaboration, with the uno platform, is already helping customers even ahead of when UI 3 is over arrival, for. Those that don't know uno. Is an open source platform for building apps that span across mobile endpoints. And Windows and Mac OS and also the web over, a year ago we started partnering. With uno to, help improve their platform, so that their customers could take the same when UI to development. Experience, that they enjoyed on Windows 10 but, be able to bring those apps to other endpoints, that they care about. One. Of these customers, is Corus they're, a Microsoft, Partner that, writes software, for encore support services and encore. Is a behavioral. Health services provider, that allows their, clinicians. And, practitioners, to, solve. Operational, challenges and, reduce stress and burnout in their jobs, let. Me play a short, video now showing, how when UI - and, uno are working, together to provide better, services for. Students, with autism and. Behavioral, needs via chorus & encore. Encore. Is a behavioral, health provider helping. Children with autism their. Desktop, and mobile app facilitates. Therapists, student interaction, mobile. Apps are optimized, for therapy sessions, where most attention, is dedicated, to students with, buttons and sliders used, to capture session, progress, the. Cross-platform, mobile, apps are built with Runa platform. Therapists. Take short notes on student progress during, a session so that they can continue to engage their students on, the desktop version of the application built with win UI the, session notes can be expanded providing, all the productivity, benefits, a rich Windows, desktop, application, has to offer best. Of all 100%. Of the winuae codebase, is reused, for Android and iOS apps, by using uno platform.
You. I, loved. Seeing Whitney my to Anu no come together to solve real problems and. I look forward to our continued partnership with the uno team as we head forward to improve and deliver when you i3. We've. Covered a lot of ground in the last 20 minutes and there's plenty of more information, out there so I, just like to encourage you to take a screenshot of this you can check out all these links immediately, after the talk just to, highlight a few of them when. You i3 preview one is out and you can obtain it from the main when you I website, which is here, the. When you my team holds, a monthly, community call that's open to everyone to attend and our. Make Hall is happening, tomorrow morning actually at, 9:00 a.m. Pacific Daylight, Time it would be awesome if all of you could tune in and come join us our. Fantastic. Uwp, community, has set up a discord server and there's. A win you are channel that I and others on the team sometimes like to frequent so be, sure to swing by and chat with us at any time if, you're. Interested in learning more about Uno you can check out their platform website and also, they just released, an open-source, ch9, app that demonstrates, how you can make a great looking at using you know uno and when, you I it's, already available now in app stores for Windows and iOS and Android so you can go and check that out and. Finally. Maybe. One of the most important, links here I want to highlight Paul in Jesse's session on unifying. And evolving the Windows app platform, this, is the main session, for the conference that goes into, more detail about Project reunion, so, that's definitely one that you don't want to miss it actually always happens, just before this live session here so they've just run it once but. If you can catch the next one that's great and if you can't catch it here at the conference be, sure to watch the recording after, things are done, and. That's. It that puts us at the end of content. And I'm sure that there's a lot of questions out there so, let's switch over to QA and take some of them with the time that we have left. Awesome. Thanks, Ron hi. Everyone my name is Savoy Schuler I'm another program, manager on the winuae team and I'll, be the moderator for today's QA, first. Up Ryan, we have a great question coming. From. And. When are who asks will, when you I be, touch oriented, click, oriented or both. Great. Question the answer is really simple both it's. Meant to support all of the latest input. Types for today's devices and touch and. Keyboard. A mouse are both extremely important. And. Ryan. Patrick, would also like to know what's the oldest build of Windows that will be supported, under when UI 3. That's. Going to be something that unfolds. And changes over time. Initially. It's, going to be supported, down to 1803. But. We do have longer-term plans, to bring when UI down all the way to Windows, 8.1 and, the. Motivator for 8.1. Is because, react. Native for Windows will be built on top of and shifted on to when UI 3, and there are needs in the react native space to go down that far.
Very. Good Miguel. Jonathan, would like to know can win UI 3 be adopted, in dotnet framework apps, or, do they need to move on to dotnet core or dotnet 5. Wing, Y is going to use all exclusively. Done F 5 so, we don't, have done the framework is not going to be support there and also the net core 3 needed. As well so only only done at 5. All. Right thanks, for that answer Miguel I have another one for you ion. Writes i want, to gradually integrate, when you why in a win32, app so i'll end up with multiple, islands, of win32 and windy y in the same window will. This impact the UI performance, and, will they play well with each other in regard to interactions. Such as focused, focus, gestures, and drag-and-drop. Good. Question so, let's. Start, with the first one it's about I do yeah you will need several islands, the preview, one doesn't support Island yet it's going to be a future, preview, maybe preview 3 before we don't know yet, they, want that you are going to be able to use the, islands, with wing-like content, about. Their performing. Is we. Are mentioning, the performance, of. The. Island. And it's, the performing exactly the same one that you get in easily, you do DP up so. There. Is nothing change at all in the rendering, content in there. However. We still need more more. Text about performing, and to get more real bits and more scenario more you know depending, on the complexity of the scenario there, about. The Dragon, 2 interpolation, how they communication, between the islands, yeah they host all we have to do some additional work you, need to coordinate between when, you go out from an island which is you going into the island, the, helpers. Don't help her like the window some all hosts that. We are going to head it's going to it's. Going to help a little with all these tasks to try to simplify, the developer experience. Great. Now, another question also. In this one rides way is there may be one compatible, with current versions, of popular, mvvm, frameworks. Preview. One doesn't we haven't really done. Much investment, for preview one in terms of making it compatible, with those frameworks that is something that definitely, is, a focus, area for us there's, a program manager on our team named Steven Moyes who is looking a little bit more into that and so we, may have more to say in future previews but preview one that hasn't been a main focus, thanks. Ryan anyone, asks will win UI 3 go down to Windows, 10 X Xbox, and core as well or just the desktop. The. Plan is eventually to go to all of those endpoints. That. Probably, will happen in phases it won't all happen at. Once as I had mentioned earlier we're, gonna be bringing value online successively. But that's, on the roadmap all of those are on the roadmap. Migaila. Brian C asks, what will it take to convert a WPA, or wpa2. When. UI 3. What. A good date this. Is a very good question so, you. Want to change, internally. The UI the, thing that you can do is just to try. To separate, the WPF, application, using, for example the, the. Model. VB model pattern so, you this. Is the first step and then once that you have this view, model separate from the UI you can yes. Starting. To migrate your UI, slowly, reusing, all the view models this is the more. Reasonable approach another. Approach is starting. To using some, Islands instill the change in the entire you I just. Started, to add a small pieces of islands, actually the mother via mobile particles who helped there a lot. Good. Miguel, John M asks, is there more necessary to add when you like controls, or can they be added using C++. Code. Sorry. Say again cans, Amla controls are sorry is it necessary, for when, you like controls to be added by zamel, or can they also be added by a C++. You. Can you, can write how you, can you can add in control yes using C++, code however. Using sam'l, is very, more. Convenient. Because, the, syntax is very simple, and also you can save a lot of lines. Of code and also, is doing a lot of stuff for you underneath means, that for do something as simple as animation, you need to gray a lot of code, in C++ versus. In some old markup is only yes a few lines of scope of code we completely, recommend yes using some old market. Very. Good thank. You I'll Ryan any plans to release Winnie why on mobile, devices such as Android, and iOS with, something, like Zaman forms. Um. There's. Sort of two parts of that certainly. Xamarin forms allows you to write apps to go to those, types, of devices in, terms of whether or not it would be when you why running on those devices we don't have any plans at this time our, team has talked about it we've you know sort of batted it back and forth I would, say it's not really a when you like three focus area right now we're much more focused, on trying, to get to, be you know the best native platform we can be for Windows apps and then in the future we may reevaluate, that, sounds.
Good That's all the time we have right now for QA so, Ryan I'll turn it back to you to wrap up thanks. Everyone yeah. Just as one quick parting, thought I know there's probably still lots of questions out there and. As, the Boyd mentioned we're out of time so I want to highlight a place where we can continue the discussion and, we can continue it even right now as. I mentioned earlier there's a uwp community, discord, server that was set, up by our great. Community, and, I and others on the winuae team sometimes have conversations. There I'm going to head over there right now so. If anyone wants to come and chat and ask more questions I, and some members from the team will be there in the wind UI channel, and you, can get there using either of the links that are posted and other, than that thanks for tuning in and I hope everyone has fun playing with preview one.