← Back
JetBrains TV October 15, 2026 39m

Interoperability of .NET | Sam Basu & Andres Pineda | .NET Day 2026

Read full transcript 33 segments
  1. With us are Andreas, whom With us are Andreas, whom I already know, and Sam. I already know, and Sam. I already know, and Sam. Greetings. Hello to you Greetings. Hello to you Greetings. Hello to you both. How are you doing? both. How are you doing? both. How are you doing? How is it? How is it? How is it? Everything is great with us. Everything is great with us. Everything is great with us. Thank you for inviting Thank you for inviting Thank you for inviting us. us. us. Please. Please. Please. Welcome. You're Welcome. You're Welcome. You're going to going to going to tell us about tell us about .NET interoperability. .NET interoperability. Yes, .NET is everywhere. Let's Yes, .NET is everywhere. Let's Yes, .NET is everywhere. Let's spread it everywhere. spread it everywhere. spread it everywhere. .NET is everywhere. This...We .NET is everywhere. This...We .NET is everywhere. This...We like this. Perfectly. like this. Perfectly. like this. Perfectly. Okay, we see Okay, we see Okay, we see your slides, everything is your slides, everything is your slides, everything is fine. So, if you are fine. So, if you are fine. So, if you are ready, please ready, please ready, please begin. begin. begin. Good. Thank you very much, and Good. Thank you very much, and Good. Thank you very much, and thank you for your thank you for your thank you for your hospitality. So, hospitality. So, hospitality. So, good morning, good morning, good morning, good afternoon, good good afternoon, good good afternoon, good evening to all of you. evening to all of you. evening to all of you. Thank you for Thank you for Thank you for joining us for joining us for joining us for this great this great this great JetBrains.NET Day. We know JetBrains.NET Day. We know JetBrains.NET Day. We know you're from all over the world, you're from all over the world, you're from all over the world, so thanks for so thanks for so thanks for watching. Let's make a watching. Let's make a watching. Let's make a quick quick quick acquaintance. So, this is all acquaintance. So, this is all acquaintance. So, this is all about how to about how to about how to extend the capabilities of extend the capabilities of extend the capabilities of .NET everywhere. I'm Sam Basu. .NET everywhere. I'm Sam Basu. .NET everywhere. I'm Sam Basu. I am a developer-lawyer at I am a developer-lawyer at I am a developer-lawyer at Uno Platform. And I apologize, Uno Platform. And I apologize, Uno Platform. And I apologize, I'm not at home because I'm I'm not at home because I'm I'm not at home because I'm traveling. I traveling. I traveling. I don't have my cool don't have my cool don't have my cool lights and cameras, but I do have a lights and cameras, but I do have a lights and cameras, but I do have a good camera. good camera. good camera. You You You look great, Sam. Don't look great, Sam. Don't look great, Sam. Don't worry. You worry. You worry. You look great, Sam.

  2. look great, Sam. look great, Sam. I'm trying. Okay, I'm trying. Okay, I'm trying. Okay, Andreas, please Andreas, please Andreas, please introduce yourself. introduce yourself. introduce yourself. Yes, I'm Andreas. I am a Yes, I'm Andreas. I am a Yes, I'm Andreas. I am a lead developer lead developer lead developer at Uno Platform. Yes, Sam, at Uno Platform. Yes, Sam, at Uno Platform. Yes, Sam, thank you. It's actually really thank you. It's actually really thank you. It's actually really nice to have this nice to have this nice to have this session together. session together. session together. Yes, definitely. We Yes, definitely. We Yes, definitely. We have 30 minutes, which is not that have 30 minutes, which is not that have 30 minutes, which is not that much time. So much time. So much time. So we will try we will try we will try to show you as many to show you as many to show you as many things as possible. We'll things as possible. We'll things as possible. We'll quickly review quickly review quickly review the slides and try to the slides and try to the slides and try to get to the code. get to the code. get to the code. We'll show you everything about We'll show you everything about We'll show you everything about .NET and AI. So, there are three .NET and AI. So, there are three .NET and AI. So, there are three big topics that big topics that big topics that we're going to talk about. The first we're going to talk about. The first is .NET. This is our is .NET. This is our is .NET. This is our favorite stack, the one favorite stack, the one favorite stack, the one we build everything on. we build everything on. we build everything on. We'll show you a little bit We'll show you a little bit We'll show you a little bit about portability, how about portability, how about portability, how your .NET code can your .NET code can your .NET code can run anywhere. As run anywhere. As run anywhere. As we all know, .NET is very we all know, .NET is very we all know, .NET is very friendly. It is friendly. It is friendly. It is modular, modular, modular, open source, open source, open source, works with works with works with tools, and has a tools, and has a tools, and has a rich ecosystem. rich ecosystem. rich ecosystem. So, what's not to So, what's not to So, what's not to like here? It like here? It like here? It covers all areas. covers all areas. covers all areas. How exactly you implement How exactly you implement How exactly you implement rendering in .NET is a little rendering in .NET is a little rendering in .NET is a little different, and different, and different, and you may have you may have you may have different different different experiences with it. So, you'll experiences with it. So, you'll experiences with it. So, you'll see Anders and I see Anders and I cover a lot of cover a lot of .NET stuff, but .NET stuff, but .NET stuff, but it's the foundation of our it's the foundation of our it's the foundation of our day-to-day work day-to-day work day-to-day work and what we and what we and what we do. So, do. So, do. So, many of our many of our demos will be demos will be demos will be dedicated to our dedicated to our dedicated to our Uno Platform. It's an Uno Platform. It's an Uno Platform. It's an open open open source stack that source stack that source stack that allows you allows you allows you to use .NET to use .NET to use .NET on all platforms, on all platforms, on all platforms, right? You see, it's right? You see, it's right? You see, it's based on .NET, based on .NET, based on .NET, and we can and we can and we can use it use it use it for mobile for mobile for mobile devices, iOS, Android, devices, iOS, Android, devices, iOS, Android, web browsers via web browsers via web browsers via WebAssembly, all WebAssembly, all WebAssembly, all desktop systems, desktop systems, desktop systems, Windows, Mac OS, Linux, Windows, Mac OS, Linux, Windows, Mac OS, Linux, embedded systems, embedded systems, embedded systems, watches, watches, watches, cars, TV OS, and everything cars, TV OS, and everything cars, TV OS, and everything else. We else. We else. We can really can really can really take .NET anywhere take .NET anywhere take .NET anywhere . A rich . A rich . A rich ecosystem lies ahead.

  3. ecosystem lies ahead. ecosystem lies ahead. So, let's start with this. So, let's start with this. So, let's start with this. We'll talk about We'll talk about We'll talk about how to extend .NET everywhere how to extend .NET everywhere . But how do you actually . But how do you actually . But how do you actually port .NET to all port .NET to all port .NET to all platforms, because your platforms, because your platforms, because your interface really interface really interface really matters, right? matters, right? matters, right? You want your You want your You want your interface to be interface to be interface to be cross-platform so you cross-platform so you cross-platform so you don't have to switch between don't have to switch between don't have to switch between Swift, Android, or any Swift, Android, or any Swift, Android, or any other platforms other platforms other platforms you build on. You you build on. You you build on. You want .NET. You want C# want .NET. You want C# . So, this is our choice of . So, this is our choice of . So, this is our choice of interface. This is SkiaSharp. interface. This is SkiaSharp. interface. This is SkiaSharp. Again, Again, Again, completely open completely open completely open source. This is a library source. This is a library source. This is a library that has been developed that has been developed that has been developed for years, both Microsoft and we at for years, both Microsoft and we at for years, both Microsoft and we at Uno Platform, we jointly Uno Platform, we jointly Uno Platform, we jointly maintain it. So, this is maintain it. So, this is maintain it. So, this is cross-platform 2D cross-platform 2D rendering done rendering done rendering done right. It works right. It works right. It works everywhere. Native .NET APIs, and everywhere. Native .NET APIs, and everywhere. Native .NET APIs, and it uses GPU it uses GPU it uses GPU and hardware and hardware and hardware acceleration on acceleration on acceleration on platforms where platforms where platforms where possible. Pixel- possible. Pixel- possible. Pixel- perfect and perfect and perfect and consistent output consistent output consistent output everywhere. So, what's everywhere. So, what's everywhere. So, what's not to like here? It's not to like here? It's not to like here? It's very easy to get very easy to get very easy to get started. There are some started. There are some started. There are some amazing things you amazing things you amazing things you can do can do can do with SkiaSharp. We with SkiaSharp. We with SkiaSharp. We will try to show will try to show will try to show you some of them. you some of them. you some of them. Just download the NuGet Just download the NuGet package and get started package and get started package and get started . The next thing . The next thing . The next thing we'll touch on we'll touch on is AI, because of course is AI, because of course is AI, because of course we have to talk we have to talk we have to talk about AI. Everything is AI now.

  4. about AI. Everything is AI now. about AI. Everything is AI now. This is the future. These are This is the future. These are This is the future. These are agent technologies. agent technologies. We'll discuss some We'll discuss some basic things and how basic things and how basic things and how you can add you can add you can add context to AI, because context to AI, because context to AI, because our agents are very our agents are very our agents are very powerful, but without powerful, but without powerful, but without context and context and context and constraints, they don't constraints, they don't constraints, they don't know your know your know your application. They don't application. They don't application. They don't know your know your know your codebase to understand codebase to understand codebase to understand what to do. We've done what to do. We've done what to do. We've done a lot of surveys, and I a lot of surveys, and I a lot of surveys, and I think within the think within the think within the industry we're all about industry we're all about there there because not everyone is at the same because not everyone is at the same because not everyone is at the same stage. This is the stage. This is the stage. This is the implementation spectrum. implementation spectrum. implementation spectrum. Maybe some of us Maybe some of us Maybe some of us still think that still think that still think that writing code is a writing code is a writing code is a skill, and it is skill, and it is skill, and it is , but it is more of a , but it is more of a , but it is more of a means to an end means to an end means to an end . We solve . We solve . We solve customer problems. customer problems. customer problems. So maybe you're a little So maybe you're a little So maybe you're a little hesitant. Most hesitant. Most hesitant. Most of us try of us try of us try to use to use to use the tools that are the tools that are the tools that are right for us and our right for us and our right for us and our businesses. And businesses. And businesses. And some of us are already on the some of us are already on the some of us are already on the forefront of AI. What are we forefront of AI. What are we forefront of AI. What are we doing? doing? doing? Orchestration of Orchestration of Orchestration of multi-agent multi-agent multi-agent systems. We have all the systems. We have all the systems. We have all the necessary necessary necessary safeguards. We safeguards. We safeguards. We can run can run can run agents all night. Well agents all night. Well agents all night. Well , it's good if you're already , it's good if you're already , it's good if you're already at this stage. But, at this stage. But, at this stage. But, you know, .NET and the you know, .NET and the you know, .NET and the technology stacks technology stacks technology stacks that you choose that you choose that you choose should allow should allow should allow you to be anywhere on you to be anywhere on you to be anywhere on that spectrum and that spectrum and that spectrum and provide the provide the provide the tools you need. So, this is how tools you need. So, this is how tools you need. So, this is how we have traditionally we have traditionally we have traditionally built built built software. We software. We software. We could write code could write code could write code by hand, do something by hand, do something by hand, do something visually, or visually, or visually, or use AI.

  5. use AI. use AI. Hopefully, as you Hopefully, as you Hopefully, as you move from left move from left move from left to right, your to right, your to right, your productivity productivity productivity increases. So, for the Uno increases. So, for the Uno increases. So, for the Uno Platform, we had Platform, we had Platform, we had design tools. design tools. design tools. We had a We had a We had a design- design- design- to-code conversion. We started with to-code conversion. We started with to-code conversion. We started with MCP tools. That MCP tools. That MCP tools. That was about a year and a half was about a year and a half was about a year and a half ago. And we ago. And we ago. And we are developing very quickly. are developing very quickly. are developing very quickly. We're just saying that you We're just saying that you We're just saying that you can do the same can do the same can do the same for your stacks. for your stacks. for your stacks. Think about Think about Think about user user user agents and bindings. agents and bindings. agents and bindings. Consider Consider Consider MCP tools for MCP tools for MCP tools for testing and testing and testing and verifying the verifying the verifying the interface. interface. interface. Think about Think about Think about skills. They are very skills. They are very skills. They are very easy to implement easy to implement easy to implement so that your agent so that your agent so that your agent falls into the " falls into the " falls into the " success trap" and knows exactly success trap" and knows exactly success trap" and knows exactly how to act. This is all what how to act. This is all what how to act. This is all what we made and will show we made and will show we made and will show you, but you can you, but you can you, but you can easily build it easily build it easily build it yourself. Okay, yourself. Okay, yourself. Okay, that's it. Yes, 5 minutes of that's it. Yes, 5 minutes of that's it. Yes, 5 minutes of slides. Andres, did I slides. Andres, did I slides. Andres, did I forget to forget to forget to say anything? say anything? say anything? No, that was a pretty No, that was a pretty No, that was a pretty comprehensive summary. comprehensive summary. comprehensive summary. So, we have AI, we are So, we have AI, we are So, we have AI, we are evolving, and we are evolving, and we are evolving, and we are where you are. If you're on the where you are. If you're on the where you are. If you're on the side of the spectrum where side of the spectrum where side of the spectrum where you want to build everything from a you want to build everything from a you want to build everything from a terminal, you have MCP, you terminal, you have MCP, you terminal, you have MCP, you have Claw, you have LLM. And if you have Claw, you have LLM. And if you have Claw, you have LLM. And if you need a design, need a design, need a design, you have hot design you have hot design you have hot design and all the tools you and all the tools you and all the tools you could could could need; If you are a need; If you are a need; If you are a visual person and need to visual person and need to visual person and need to see to believe, see to believe, see to believe, then that then that then that is also an option.

  6. is also an option. Absolutely. Okay, so Absolutely. Okay, so let's get to let's get to let's get to the demonstrations, okay? the demonstrations, okay? the demonstrations, okay? We're all here at JetBrains .NET We're all here at JetBrains .NET We're all here at JetBrains .NET Day, and this is the Uno Platform. So, Day, and this is the Uno Platform. So, Day, and this is the Uno Platform. So, everything we do everything we do everything we do is here on is here on is here on platform.uno. You can platform.uno. You can platform.uno. You can start working with start working with start working with the prompt directly from the the prompt directly from the the prompt directly from the website. There is a website. There is a website. There is a text field there. So text field there. So text field there. So if you look at what if you look at what if you look at what we do, there's a we do, there's a we do, there's a lot of documentation, it's lot of documentation, it's lot of documentation, it's all open all open all open source and source and source and cross-platform. cross-platform. cross-platform. We have many We have many We have many examples. They are examples. They are examples. They are great for great for experimenting experimenting and creating something. So and creating something. So and creating something. So I'll be switching I'll be switching I'll be switching between different IDEs and between different IDEs and between different IDEs and editors, just like editors, just like editors, just like Andres. I'll start with VS Code. Andres. I'll start with VS Code. Andres. I'll start with VS Code. For serious For serious For serious tasks, I choose Rider, tasks, I choose Rider, tasks, I choose Rider, but let me but let me but let me start with something very start with something very start with something very simple. So if I simple. So if I simple. So if I open one of our open one of our open one of our example applications, example applications, example applications, for example, Chefs. This is a kind of for example, Chefs. This is a kind of full-featured full-featured application. You can application. You can application. You can see that it works see that it works see that it works everywhere, with a single everywhere, with a single everywhere, with a single common codebase common codebase common codebase . So, we . So, we . So, we don't need artificial intelligence right now don't need artificial intelligence right now don't need artificial intelligence right now . We'll . We'll . We'll run it on run it on run it on the desktop so you the desktop so you the desktop so you can see that it can see that it can see that it works everywhere, right works everywhere, right ? So we'll choose ? So we'll choose ? So we'll choose the desktop here and do a the desktop here and do a the desktop here and do a quick build. So, quick build. So, quick build. So, right now it's right now it's right now it's building for .NET 10 desktop building for .NET 10 desktop building for .NET 10 desktop as you can see, as you can see, as you can see, but it can also but it can also but it can also build for browser build for browser build for browser (wasm), Linux, iOS or Android and (wasm), Linux, iOS or Android and (wasm), Linux, iOS or Android and so on. This so on. This so on. This application appears application appears application appears on your desktop on your desktop . I can log in . I can log in . I can log in and you and you and you get a get a get a great interface here. And the great interface here. And the great interface here. And the same application same application same application will work in will work in will work in your web browser.

  7. your web browser. your web browser. The same app The same app The same app will work on iOS or will work on iOS or will work on iOS or Android with a different, Android with a different, Android with a different, adapted form adapted form factor. Andres, I do factor. Andres, I do factor. Andres, I do n't know if you're in the n't know if you're in the n't know if you're in the iOS ecosystem, but iOS ecosystem, but iOS ecosystem, but we have the iPhone Duo coming out. we have the iPhone Duo coming out. We're already thinking about We're already thinking about supporting the supporting the supporting the same Chefs app same Chefs app same Chefs app you see, but you see, but you see, but could it be reimagined a bit could it be reimagined a bit could it be reimagined a bit for for for foldable screens foldable screens foldable screens and other and other and other workflows like workflows like tent mode? tent mode? tent mode? We already have everything working and we We already have everything working and we We already have everything working and we have have have design tools, so you design tools, so you design tools, so you can edit and can edit and can edit and change the interface change the interface change the interface while your app while your app while your app is running, right? is running, right? is running, right? We'll stop there, We'll stop there, We'll stop there, and let me and let me and let me show you a little bit about SkiaSharp show you a little bit about SkiaSharp show you a little bit about SkiaSharp and how this experience and how this experience and how this experience makes makes makes everything work. So, this is SkiaSharp, everything work. So, this is SkiaSharp, everything work. So, this is SkiaSharp, right? Open source, right? Open source, right? Open source, works everywhere, very works everywhere, very works everywhere, very easy to get started. And easy to get started. And easy to get started. And they they they make a compelling case for why you make a compelling case for why you make a compelling case for why you should should should use it. use it. use it. So, So, So, cross-platform, cross-platform, cross-platform, hardware acceleration hardware acceleration , .NET, all together. And , .NET, all together. And , .NET, all together. And right from the right from the right from the Mono repository on GitHub you can Mono repository on GitHub you can Mono repository on GitHub you can access access access SkiaFiddle, which I SkiaFiddle, which I SkiaFiddle, which I like because like because like because it lets you see it lets you see it lets you see the benefits of Skia right in your the benefits of Skia right in your the benefits of Skia right in your browser without browser without browser without installing anything. So, installing anything. So, installing anything. So, you can see you can see you can see some of the mathematical some of the mathematical some of the mathematical calculations here. It's calculations here. It's calculations here. It's very productive, very productive, very productive, even though I'm on even though I'm on even though I'm on slow slow slow hotel Wi-Fi right now, but you hotel Wi-Fi right now, but you hotel Wi-Fi right now, but you can see can see can see the results of what the results of what the results of what can actually be can actually be can actually be done right away. Variant done right away. Variant done right away. Variant fonts are great.

  8. fonts are great. fonts are great. So, literally anything So, literally anything So, literally anything you can think of, you can think of, you can think of, you can do you can do you can do cross-platform cross-platform cross-platform with SkiaSharp. There's with SkiaSharp. There's with SkiaSharp. There's a lot of a lot of a lot of power hidden here. So power hidden here. So power hidden here. So let me show you let me show you let me show you what we can do with the what we can do with the what we can do with the power of power of power of SkiaSharp and .NET to SkiaSharp and .NET to SkiaSharp and .NET to take our code take our code take our code everywhere, and then I'll give everywhere, and then I'll give everywhere, and then I'll give the floor to András to the floor to András to the floor to András to talk about other talk about other talk about other areas like Linux and areas like Linux and areas like Linux and maybe UWP, right, maybe UWP, right, maybe UWP, right, András? András? András? Yes, why not? Yes, why not? Yes, why not? Why not? Why Why not? Why Why not? Why not, right? So I'll show not, right? So I'll show not, right? So I'll show you a little you a little you a little example here. So, it's example here. So, it's example here. So, it's all about .NET again. For all about .NET again. For all about .NET again. For our stack, we our stack, we our stack, we essentially lock you essentially lock you essentially lock you into the SDK, so it into the SDK, so it into the SDK, so it uses uses uses the latest SDKs for the the latest SDKs for the the latest SDKs for the Uno platform. And if I Uno platform. And if I Uno platform. And if I look at the CS proj, this look at the CS proj, this look at the CS proj, this thing works on .NET, iOS, thing works on .NET, iOS, thing works on .NET, iOS, Android, desktops, Android, desktops, Android, desktops, browsers, everywhere. browsers, everywhere. browsers, everywhere. So, if you're So, if you're So, if you're building a new building a new building a new app, here's what else app, here's what else app, here's what else I wanted to show: it's I wanted to show: it's I wanted to show: it's essentially a template that essentially a template that essentially a template that you use you use you use when you create a new when you create a new when you create a new project in Visual Studio or VS project in Visual Studio or VS project in Visual Studio or VS Code. So, let's call it that, shall we Code. So, let's call it that, shall we Code. So, let's call it that, shall we ? And I'm going to ? And I'm going to ? And I'm going to run it. This template run it. This template essentially walks essentially walks essentially walks you through everything you you through everything you you through everything you might want to might want to might want to add to your add to your add to your application. So, application. So, application. So, select the select the select the .NET 10 runtime.

  9. .NET 10 runtime. .NET 10 runtime. Select the platform Select the platform Select the platform for the application. Android for the application. Android for the application. Android and iOS—it's a and iOS—it's a and iOS—it's a given. WebAssembly, given. WebAssembly, given. WebAssembly, desktops. Now desktops. Now desktops. Now look at these three look at these three look at these three new "newbies": Android TV, new "newbies": Android TV, new "newbies": Android TV, Android Auto, Wear OS, right? These Android Auto, Wear OS, right? These Android Auto, Wear OS, right? These can be your can be your can be your Android Android app packages, simply app packages, simply app packages, simply re-released for other re-released for other re-released for other platforms, or you platforms, or you platforms, or you can have separate APK can have separate APK files, which I think files, which I think files, which I think we recommend we recommend we recommend because they are different because they are different because they are different form factors. So, form factors. So, form factors. So, think about your think about your think about your supporting applications. supporting applications. supporting applications. Think about the Think about the Think about the continuity of continuity of continuity of experience. And you can experience. And you can experience. And you can follow this follow this follow this template. You can template. You can template. You can choose the level of choose the level of choose the level of presentation. MVVM presentation. MVVM presentation. MVVM works with C# and, uh, XAML. MVUX works with C# and, uh, XAML. MVUX is also an option is also an option is also an option that may be a better that may be a better that may be a better fit if you fit if you fit if you come from other fields. come from other fields. come from other fields. You can choose You can choose You can choose the markup: XAML or C#. You the markup: XAML or C#. You the markup: XAML or C#. You can choose can choose can choose the design. We the design. We the design. We start with a simple start with a simple start with a simple neutral theme or neutral theme or neutral theme or you can choose Fluent you can choose Fluent you can choose Fluent or Material. So, there are or Material. So, there are or Material. So, there are many things you many things you many things you can do right can do right can do right when you launch the app. when you launch the app. when you launch the app. Um, so I'm going to, uh Um, so I'm going to, uh , open this , open this , open this project here. This runs project here. This runs project here. This runs on, uh, .NET 10 for Android. on, uh, .NET 10 for Android. on, uh, .NET 10 for Android. So, I do So, I do So, I do n't actually have the n't actually have the n't actually have the simulator running, simulator running, simulator running, although I should have, but although I should have, but although I should have, but we'll do the build. we'll do the build. we'll do the build. This runs on .NET 10 for This runs on .NET 10 for This runs on .NET 10 for Android Wear OS. So you Android Wear OS. So you Android Wear OS. So you can, uh, see the can, uh, see the can, uh, see the build running.

  10. build running. build running. And it uses And it uses And it uses SkiaSharp, right? And Android Wear. SkiaSharp, right? And Android Wear. SkiaSharp, right? And Android Wear. So he tries to So he tries to So he tries to build build build using .NET and using .NET and using .NET and SkiaSharp rendering for SkiaSharp rendering for SkiaSharp rendering for Wear OS. So your, uh, Wear OS. So your, uh, Wear OS. So your, uh, watches, your cool watches, your cool watches, your cool TVs, your Android TVs, your Android TVs, your Android Auto, Android Play—they Auto, Android Play—they Auto, Android Play—they can all run can all run can all run .NET apps, which is, uh, .NET apps, which is, uh, .NET apps, which is, uh, really, really cool. So really, really cool. So , uh, let's give the , uh, let's give the , uh, let's give the Android simulator a second to Android simulator a second to Android simulator a second to start up. Um, start up. Um, start up. Um, Andres, did I Andres, did I Andres, did I miss something at this miss something at this miss something at this point? point? point? No, no, no. I'm just No, no, no. I'm just No, no, no. I'm just thinking about all the thinking about all the thinking about all the possibilities you'll possibilities you'll possibilities you'll get now by get now by get now by running .NET running .NET apps in Android Auto, because I apps in Android Auto, because I apps in Android Auto, because I drive a lot. I get drive a lot. I get drive a lot. I get in the car and drive for in the car and drive for in the car and drive for hours, uh, 5, 6, 7 hours, uh, 5, 6, 7 hours, uh, 5, 6, 7 hours straight, and I hours straight, and I hours straight, and I just think about all, just think about all, just think about all, all, all the different all, all the different all, all the different apps that I can apps that I can apps that I can install on my install on my install on my Android device and they Android device and they Android device and they will become part of will become part of will become part of my driving. The same my driving. The same my driving. The same goes for the clock goes for the clock . I often walk every day. . I often walk every day.

  11. Um, that means the Um, that means the things I things I things I need, the apps need, the apps need, the apps I wanted to have on I wanted to have on I wanted to have on my watch, I my watch, I my watch, I can do right can do right can do right now. now. now. Yes, and it's all .NET. Yes, and it's all .NET. Yes, and it's all .NET. Yes. Yes. Yes. So, here's my So, here's my So, here's my Android emulator Android emulator Android emulator waking up and waking up and waking up and running. So, running. So, running. So, again, it's .NET at again, it's .NET at again, it's .NET at work here. By the way, work here. By the way, work here. By the way, about walks, about walks, about walks, I had this I had this I had this little app - a little app - a counter. So, counter. So, counter. So, again, this is .NET. again, this is .NET. again, this is .NET. You might You might You might have to have to have to adjust the templates a little bit, adjust the templates a little bit, adjust the templates a little bit, you know, for smaller you know, for smaller you know, for smaller form factors. form factors. form factors. There is a great simulator for Android Auto There is a great simulator for Android Auto There is a great simulator for Android Auto . So, . So, . So, I've already I've already I've already deployed this application, so it deployed this application, so it deployed this application, so it may not may not may not ask you. But when ask you. But when ask you. But when you start you start you start tracking, like a tracking, like a tracking, like a pedometer, it will first pedometer, it will first pedometer, it will first ask, "Hey, would ask, "Hey, would ask, "Hey, would you like to give us you like to give us you like to give us access?" Because access?" Because access?" Because it actually it actually it actually uses Android uses Android activity to activity to activity to track your track your track your steps while walking. steps while walking. steps while walking. So, a simple So, a simple So, a simple Android emulator that Android emulator that Android emulator that demonstrates demonstrates demonstrates the power of native the power of native the power of native APIs that you APIs that you APIs that you access purely from .NET access purely from .NET , and the interface runs , and the interface runs , and the interface runs on SkiaSharp, right? This is what on SkiaSharp, right? This is what on SkiaSharp, right? This is what portability is all about. This is, portability is all about. This is, portability is all about. This is, you know, the opportunity you know, the opportunity you know, the opportunity to bring .NET everywhere. to bring .NET everywhere. to bring .NET everywhere. Now, before we Now, before we Now, before we move on to AI, I think, move on to AI, I think, move on to AI, I think, Andres, let's Andres, let's Andres, let's hand you the screen hand you the screen hand you the screen so you can talk a little bit more so you can talk a little bit more so you can talk a little bit more .

  12. . . Yes, great. Yes, great. Yes, great. Ideally. Thank you. Ideally. Thank you. Ideally. Thank you. And speaking of And speaking of And speaking of compatibility, it's not compatibility, it's not compatibility, it's not just about where you can just about where you can just about where you can run it, but also run it, but also run it, but also where you can where you can where you can do it from. So it's a do it from. So it's a do it from. So it's a combination of both combination of both combination of both factors. And this factors. And this factors. And this time, if you time, if you time, if you remember remember remember Sam's slides, there was a Linux computer in the corner Sam's slides, there was a Linux computer in the corner . So I'll . So I'll . So I'll take a few take a few take a few minutes to show you minutes to show you minutes to show you how easy and how easy and how easy and enjoyable it is to develop enjoyable it is to develop enjoyable it is to develop for Linux. In case you didn't for Linux. In case you didn't for Linux. In case you didn't know, 2026 is the year of Linux know, 2026 is the year of Linux know, 2026 is the year of Linux on the desktop. on the desktop. on the desktop. Finally, right? He did Finally, right? He did Finally, right? He did come. There are come. There are come. There are many reasons. AI is one of them many reasons. AI is one of them , because with AI you definitely , because with AI you definitely , because with AI you definitely don't need to remember don't need to remember don't need to remember all the commands, you all the commands, you all the commands, you can just can just can just ask your ask your ask your favorite AI favorite AI favorite AI to set everything up for to set everything up for to set everything up for you. So, here I have a you. So, here I have a you. So, here I have a Linux system. This Linux system. This Linux system. This appears to be Ubuntu 24, and to appears to be Ubuntu 24, and to appears to be Ubuntu 24, and to set up this set up this set up this environment before environment before environment before the presentation, a the presentation, a the presentation, a few hours before, I few hours before, I few hours before, I only needed two only needed two only needed two things. Install .NET, things. Install .NET, things. Install .NET, which is done with a few which is done with a few which is done with a few commands and I won't commands and I won't commands and I won't bore you with that, and bore you with that, and bore you with that, and also install the also install the also install the .NET tools that I .NET tools that I .NET tools that I want to test. Uno want to test. Uno want to test. Uno check is a tool check is a tool check is a tool that will allow you that will allow you that will allow you to configure your to configure your to configure your environment. This environment. This environment. This tool works on tool works on tool works on macOS, Linux, and Windows. So macOS, Linux, and Windows. So macOS, Linux, and Windows. So if you if you if you 've used these 've used these 've used these tools on Windows tools on Windows , you'll feel right at , you'll feel right at , you'll feel right at home. And once you're home. And once you're home. And once you're all set up, all you all set up, all you all set up, all you need is a need is a need is a nice terminal to nice terminal to nice terminal to compile and compile and compile and run your application run your application . Now . Now . Now the same application

  13. the same application the same application that Sam was showing will launch, that Sam was showing will launch, that Sam was showing will launch, but while we wait, I but while we wait, I but while we wait, I want to show you that want to show you that want to show you that Linux isn't necessarily Linux isn't necessarily Linux isn't necessarily just about the terminal. Oh, it just about the terminal. Oh, it just about the terminal. Oh, it started really started really started really fast. So, it's fast. So, it's fast. So, it's exactly the same exactly the same exactly the same app. This time app. This time app. This time it works as a it works as a it works as a Linux desktop Linux desktop application that you application that you application that you can test. can test. can test. Remember, this will be an Remember, this will be an Remember, this will be an Android app, it Android app, it Android app, it will run on a will run on a will run on a wearable device. And wearable device. And wearable device. And you may want to you may want to you may want to test it, test it, test it, but you are not tied but you are not tied but you are not tied to the operating to the operating to the operating system. This means system. This means system. This means that if you that if you that if you feel at home feel at home feel at home on Linux, you can on Linux, you can on Linux, you can choose, because one of the choose, because one of the choose, because one of the advantages of Linux is advantages of Linux is advantages of Linux is flexibility. You have flexibility. You have flexibility. You have many options to many options to many options to choose from. You choose what choose from. You choose what choose from. You choose what feels feels feels familiar to you and work with familiar to you and work with familiar to you and work with that. But, as I that. But, as I that. But, as I said, Linux is not just a said, Linux is not just a said, Linux is not just a terminal. Gone are the terminal. Gone are the terminal. Gone are the days when Linux was days when Linux was days when Linux was only only only terminal-based, where you had to terminal-based, where you had to terminal-based, where you had to remember all the remember all the remember all the commands. On Linux, you commands. On Linux, you commands. On Linux, you can also have can also have can also have access to an IDE. Your IDEs, access to an IDE. Your IDEs, access to an IDE. Your IDEs, for example, I'm pretty for example, I'm pretty for example, I'm pretty sure you're a sure you're a sure you're a Rider user. So Rider user. So you'll get the same Rider experience you have on Linux, Windows, or macOS here.

  14. you'll get the same Rider experience you have on Linux, Windows, or macOS here. Shift + Shift to find Shift + Shift to find Shift + Shift to find whatever you need and whatever you need and whatever you need and navigate through code—it's all navigate through code—it's all navigate through code—it's all here. You here. You here. You have access to AI have access to AI have access to AI because AI is because AI is because AI is part of Rider. You part of Rider. You part of Rider. You can do everything you can do everything you can do everything you do in Rider in do in Rider in do in Rider in other places. And it's a other places. And it's a truly truly truly cross-platform, cross-platform, cross-platform, cross-platform IDE. And cross-platform IDE. And cross-platform IDE. And from here you will get from here you will get from here you will get access to different access to different access to different devices. Let's say devices. Let's say devices. Let's say if we click " if we click " run" this run" this run" this application, which is exactly the same as the one application, which is exactly the same as the one application, which is exactly the same as the one we we we ran on the ran on the ran on the desktop, it desktop, it desktop, it will run on this will run on this will run on this device that is currently being device that is currently being device that is currently being emulated. So, this is emulated. So, this is emulated. So, this is my actual my actual my actual device device device connected to connected to connected to the computer, and I'm just the computer, and I'm just the computer, and I'm just casting its screen casting its screen casting its screen using the using the using the tool. But you tool. But you tool. But you might say, " might say, " Well, Ubuntu has been in this ecosystem for a long time Well, Ubuntu has been in this ecosystem for a long time Well, Ubuntu has been in this ecosystem for a long time , so it's , so it's , so it's easy for it to do easy for it to do easy for it to do these kinds of things, especially these kinds of things, especially these kinds of things, especially for .NET." But what if we for .NET." But what if we for .NET." But what if we talk about an talk about an talk about an operating system operating system operating system that has been on the market not so that has been on the market not so that has been on the market not so long ago. You've probably long ago. You've probably long ago. You've probably heard of Ultramarine.

  15. heard of Ultramarine. Ultramarine is an Arch-based Linux distribution, and it has Arch-based Linux distribution, and it has many advantages. It many advantages. It many advantages. It has the ability has the ability has the ability to connect modules, to connect modules, to connect modules, extensibility, extensibility, extensibility, since it since it since it has AI from the start, as well as has AI from the start, as well as has AI from the start, as well as design themes. One design themes. One design themes. One of the things people of the things people of the things people love about Ultramarine is love about Ultramarine is love about Ultramarine is the ability to change the ability to change the ability to change the theme, and the the theme, and the apps built into the operating system apps built into the operating system adapt to adapt to adapt to it, becoming part of a it, becoming part of a it, becoming part of a cohesive ecosystem, cohesive ecosystem, cohesive ecosystem, interface, and interface, and interface, and overall experience. And overall experience. And overall experience. And that's great. What if that's great. What if that's great. What if you wanted to create a .NET you wanted to create a .NET program that program that program that behaved exactly like behaved exactly like behaved exactly like we saw here we saw here ? Actually, it's ? Actually, it's ? Actually, it's honestly simple. But honestly simple. But honestly simple. But first, we first, we first, we set everything up the same way we set everything up the same way we set everything up the same way we did for did for did for our Ubuntu. And if we our Ubuntu. And if we our Ubuntu. And if we want to run want to run want to run the program, we see the program, we see the program, we see that we have...oh. Here are my that we have...oh. Here are my that we have...oh. Here are my SDKs for printing. You should not SDKs for printing. You should not SDKs for printing. You should not type during a type during a type during a live broadcast. These SDKs.

  16. live broadcast. These SDKs. live broadcast. These SDKs. Yes, because it's X. And Yes, because it's X. And Yes, because it's X. And we have .NET installed. we have .NET installed. we have .NET installed. If we want If we want If we want to run it, we to run it, we to run it, we will do the same as will do the same as will do the same as before. .NET run net 10 minus F. before. .NET run net 10 minus F. before. .NET run net 10 minus F. For some reason this is not in the For some reason this is not in the For some reason this is not in the story. Net 10 zero desktop, story. Net 10 zero desktop, story. Net 10 zero desktop, right? And in Ambiance, this right? And in Ambiance, this right? And in Ambiance, this will launch the same will launch the same will launch the same program we program we program we saw earlier. Nothing saw earlier. Nothing saw earlier. Nothing special. But, as I special. But, as I special. But, as I said, what if we said, what if we said, what if we want to do something want to do something want to do something different in Linux? That's what different in Linux? That's what different in Linux? That's what compatibility is all about: compatibility is all about: compatibility is all about: finding an ecosystem finding an ecosystem finding an ecosystem and getting and getting and getting the most out of an the most out of an the most out of an environment that environment that environment that works. So, with the super works. So, with the super works. So, with the super three, yes. With three, yes. With three, yes. With a few lines of code, a few lines of code, a few lines of code, we can make we can make we can make our .NET applications our .NET applications our .NET applications behave just like behave just like behave just like native applications. native applications. So, you saw that So, you saw that when we changed the theme, when we changed the theme, when we changed the theme, all of Chrome changed color with all of Chrome changed color with all of Chrome changed color with it. The same thing it. The same thing it. The same thing happened with happened with happened with the terminal. The same the terminal. The same the terminal. The same will happen with will happen with will happen with applications that are applications that are applications that are part of the part of the part of the Ambiance ecosystem. And we can Ambiance ecosystem. And we can Ambiance ecosystem. And we can do it. In fact, do it. In fact, do it. In fact, we already did it. This we already did it. This we already did it. This app on the left app on the left app on the left now responds to the now responds to the now responds to the Marsha theme, which as you can see Marsha theme, which as you can see Marsha theme, which as you can see is not just a dark is not just a dark is not just a dark or light theme, it's something or light theme, it's something or light theme, it's something that completely changes that completely changes that completely changes your your your desktop experience. So

  17. desktop experience. So desktop experience. So if we change if we change if we change the theme again, we'll see how the theme again, we'll see how the theme again, we'll see how this application on the left, this application on the left, this application on the left, along with all the other along with all the other along with all the other applications, the applications, the applications, the terminal, and terminal, and terminal, and the browser, react to the browser, react to the browser, react to these changes and these changes and these changes and reflect reflect reflect the design. We can the design. We can the design. We can do this a few more do this a few more do this a few more times and everything times and everything times and everything will work in the future. will work in the future. So, what I want to So, what I want to show with this is that now is the show with this is that now is the show with this is that now is the best time for .NET, best time for .NET, whether it's AI or not, and that .NET whether it's AI or not, and that .NET adapts to adapts to adapts to you. If you are on macOS, on you. If you are on macOS, on you. If you are on macOS, on Ubuntu, on Nix, no matter Ubuntu, on Nix, no matter Ubuntu, on Nix, no matter what what what operating system operating system operating system you use, .NET is you use, .NET is definitely your definitely your definitely your choice. We're coming back choice. We're coming back choice. We're coming back to you, Sam. to you, Sam. to you, Sam. Okay, I Okay, I Okay, I like that. like that. like that. See how it See how it See how it reacts to changing the reacts to changing the reacts to changing the OS theme. OK. So, OS theme. OK. So, OS theme. OK. So, I have I have I have 10 minutes left, right? 10 minutes left, right? 10 minutes left, right? There is a lot to There is a lot to There is a lot to show. Let's show. Let's show. Let's move on to AI, but there's move on to AI, but there's move on to AI, but there's something I wanted to point out something I wanted to point out something I wanted to point out about the about the about the interface and interface and interface and accessibility that accessibility that accessibility that we're thinking about. we're thinking about. we're thinking about. Take a look at this, because I Take a look at this, because I Take a look at this, because I forgot to show this forgot to show this forgot to show this when we were talking about when we were talking about when we were talking about SkiaSharp. This is our latest SkiaSharp. This is our latest , again, , again, , again, fully open and fully open and fully open and cross-platform cross-platform cross-platform release. We're very careful release. We're very careful release. We're very careful about how we about how we about how we draw pixels, because, draw pixels, because, draw pixels, because, you know, you know, you know, performance is performance is performance is important to everyone.

  18. important to everyone. important to everyone. So what you see So what you see So what you see in this application in this application is a SkiaSharp rendering. is a SkiaSharp rendering. is a SkiaSharp rendering. Let me Let me Let me pause everything. We pay pause everything. We pay pause everything. We pay very close attention very close attention very close attention to every frame to every frame to every frame we draw. We we draw. We we draw. We only draw what only draw what only draw what we really need. we really need. we really need. You see, it You see, it You see, it lights up red. lights up red. lights up red. Here, for example, is a Here, for example, is a Here, for example, is a timer. It should timer. It should timer. It should redraw redraw redraw every frame, but the rest of the every frame, but the rest of the every frame, but the rest of the application doesn't application doesn't application doesn't redraw. redraw. redraw. You see this moving You see this moving You see this moving ping-pong ball with a ping-pong ball with a red frame around it. red frame around it. So, again, we So, again, we So, again, we only draw what is only draw what is only draw what is needed. What if I needed. What if I needed. What if I say, "Hey, say, "Hey, say, "Hey, redraw everything redraw everything redraw everything completely." You completely." You completely." You will see flickering, will see flickering, will see flickering, it's too much it's too much it's too much flickering, but that's how flickering, but that's how flickering, but that's how we demonstrate we demonstrate we demonstrate our attentiveness. And all this again is our attentiveness. And all this again is our attentiveness. And all this again is SkiaSharp SkiaSharp SkiaSharp together with .NET. We together with .NET. We together with .NET. We are trying are trying are trying to implement all of this. to implement all of this. Let me try Let me try something else—responding something else—responding something else—responding to the systemic themes that to the systemic themes that to the systemic themes that Andres demonstrated. Andres demonstrated. We can also We can also ensure ensure ensure accessibility. We have accessibility. We have accessibility. We have support for support for support for screen readers. screen readers. screen readers. We're going to We're going to We're going to run this run this run this little application little application little application here. It here. It here. It also works great on the desktop.

  19. also works great on the desktop. Again, Again, we are trying to we are trying to we are trying to respond to the respond to the respond to the scaling that scaling that scaling that your OS offers. your OS offers. This may be a This may be a risky risky risky demonstration on the demonstration on the demonstration on the fly, but we'll fly, but we'll fly, but we'll try. Why not try. Why not ? So, here are some ? So, here are some ? So, here are some text examples text examples text examples showing showing showing scaling your scaling your scaling your interface. interface. interface. I also have I also have I also have interface elements here. So, interface elements here. So, interface elements here. So, let's move on to let's move on to let's move on to system system system settings. I'll settings. I'll settings. I'll search for "text" in the search for "text" in the search for "text" in the accessibility section accessibility section accessibility section . Here is my . Here is my . Here is my text size. It may text size. It may text size. It may take a few take a few take a few seconds for the changes seconds for the changes seconds for the changes to take effect, but to take effect, but to take effect, but you see, as soon as I you see, as soon as I you see, as soon as I changed the fonts at the changed the fonts at the changed the fonts at the OS level, the application OS level, the application OS level, the application picked it up. This picked it up. This picked it up. This applies not only to applies not only to applies not only to text, but also to text, but also to text, but also to controls. So, we controls. So, we controls. So, we see again see again see again how deeply how deeply how deeply native the approach we are native the approach we are native the approach we are taking. This taking. This taking. This was a brief overview of was a brief overview of was a brief overview of SkiaSharp. SkiaSharp. SkiaSharp. I'll go back to the I'll go back to the default settings for a moment. Now default settings for a moment. Now let's talk let's talk let's talk about AI, okay? After all, that's where the most about AI, okay? After all, that's where the most interesting things happen, when interesting things happen, when agents create agents create agents create something for us. So, I something for us. So, I something for us. So, I want to point out that you want to point out that you want to point out that you have to provide have to provide have to provide context to your context to your context to your agents. There are agents. There are agents. There are many ways to do this.

  20. many ways to do this. many ways to do this. You can You can You can use use use skills. We are big skills. We are big skills. We are big fans of fans of fans of MCP tools. MCP tools. MCP tools. You may want to You may want to You may want to create an agent or a create an agent or a create an agent or a binding. The only thing binding. The only thing binding. The only thing I want to point out I want to point out is the architecture and is the architecture and is the architecture and SDK: you have an SDK for almost SDK: you have an SDK for almost SDK: you have an SDK for almost everything. For example, everything. For example, everything. For example, Python, C#, Rust, Go. I'm a big Python, C#, Rust, Go. I'm a big Python, C#, Rust, Go. I'm a big fan of the C# version. fan of the C# version. fan of the C# version. So I'll show you what So I'll show you what So I'll show you what we did with MCP for C#. we did with MCP for C#. we did with MCP for C#. If I look If I look If I look at the documentation here again and at the documentation here again and at the documentation here again and show you the MCP, we show you the MCP, we show you the MCP, we have two here. One of have two here. One of have two here. One of them is what you all them is what you all them is what you all need to do for need to do for need to do for your stacks. So, this is your stacks. So, this is your stacks. So, this is our MCP for our MCP for our MCP for documentation. You documentation. You documentation. You never have to never have to never have to leave Rider or your leave Rider or your leave Rider or your IDE because your IDE because your IDE because your agents can search agents can search agents can search and retrieve data from the and retrieve data from the and retrieve data from the documentation at documentation at any time. If you any time. If you any time. If you develop develop develop web applications, you web applications, you web applications, you may be familiar with may be familiar with may be familiar with Playwright. It's essentially " Playwright. It's essentially " Playwright plus plus" for Playwright plus plus" for Playwright plus plus" for .NET applications .NET applications .NET applications running on running on running on desktops and desktops and desktops and mobile devices. mobile devices. mobile devices. I'll open it I'll open it I'll open it here now. It's Rider again: for here now. It's Rider again: for here now. It's Rider again: for serious serious serious debugging and debugging and debugging and testing, it's my go- testing, it's my go- testing, it's my go- to tool. to tool. to tool. I can I can I can use any use any agent here. I can agent here. I can agent here. I can use JUnit, use JUnit, use JUnit, Codex, Plot or anything Codex, Plot or anything Codex, Plot or anything else. Let's say this is a else. Let's say this is a else. Let's say this is a very simple very simple very simple application, but I'm going to give application, but I'm going to give application, but I'm going to give the command to run the command to run the command to run it on the it on the it on the desktop. So, the agent has to desktop. So, the agent has to desktop. So, the agent has to deal with this, and deal with this, and deal with this, and he has the appropriate he has the appropriate he has the appropriate skills. It already has skills. It already has skills. It already has MCPs connected by MCPs connected by MCPs connected by default. So, default. So, default. So, he's trying he's trying he's trying to figure out, it might to figure out, it might to figure out, it might take a second take a second take a second to do it to do it to do it live over the live over the live over the network, because why not, network, because why not, network, because why not, right? He's right? He's right? He's trying trying trying to read the CS project and to read the CS project and to read the CS project and see what see what see what tools I have, tools I have, tools I have, since I haven't since I haven't since I haven't said much about the project

  21. said much about the project . It's something like a . It's something like a . It's something like a simple "Hello World" like a simple "Hello World" like a counter project. Um, so counter project. Um, so he's trying to he's trying to he's trying to figure it all out. figure it all out. figure it all out. While he's doing that, I'll While he's doing that, I'll While he's doing that, I'll show you what show you what show you what happens when we happens when we happens when we combine all of our combine all of our combine all of our skills and our MCPs into skills and our MCPs into skills and our MCPs into one. So, GitHub one. So, GitHub one. So, GitHub Copilot wakes up. Oh, Copilot wakes up. Oh, Copilot wakes up. Oh, now he really now he really now he really found the MCP tool found the MCP tool . He understands that I have the . He understands that I have the . He understands that I have the tools to tools to tools to run this run this run this application right here. application right here. application right here. The application starts The application starts The application starts and tries to and tries to and tries to get get get runtime information. runtime information. runtime information. It's trying to It's trying to It's trying to take a take a take a screenshot, trying screenshot, trying screenshot, trying to understand the visual to understand the visual to understand the visual structure of your structure of your structure of your app as it app as it app as it runs so you can runs so you can runs so you can get get get hands-free and hands-free and hands-free and programmatic access, programmatic access, programmatic access, right? So, this is a right? So, this is a right? So, this is a simple simple counter app, right? counter app, right? So I could say, " Test Test Test the counter button by the counter button by pressing it three times, pressing it three times, okay?" Think about okay?" Think about okay?" Think about automating your automating your interface testing and, you know , unit , unit , unit testing. Give testing. Give testing. Give the agent a set of tests the agent a set of tests the agent a set of tests to run. This is how to run. This is how to run. This is how you get you get you get fuses. This is how fuses. This is how fuses. This is how you have more you have more you have more confidence in what the confidence in what the confidence in what the AI ​​is generating code, AI ​​is generating code, AI ​​is generating code, instead of having to instead of having to instead of having to check every check every check every line of code line of code line of code yourself. So you yourself. So you yourself. So you can see what can see what can see what he did. It takes, he did. It takes, he did. It takes, you know, finds you know, finds you know, finds a button, clicks a button, clicks a button, clicks it three times, takes it three times, takes it three times, takes visual screenshots, visual screenshots, visual screenshots, and performs a clean action.

  22. and performs a clean action. and performs a clean action. Now let's get back to the Now let's get back to the Now let's get back to the application. Now application. Now application. Now the counter shows the counter shows the counter shows three, and the agent can three, and the agent can three, and the agent can check his check his check his own work, right? own work, right? own work, right? That's the point. So, That's the point. So, That's the point. So, just a quick just a quick just a quick look at a very look at a very look at a very simple application. But simple application. But simple application. But now let's now let's now let's try to look try to look try to look at...Oh, and by the way, you at...Oh, and by the way, you at...Oh, and by the way, you can do all of this can do all of this can do all of this completely with the completely with the completely with the agent agent agent stuff here. So if stuff here. So if stuff here. So if I launch Copilot from I launch Copilot from any app here, any app here, any app here, maybe we can make it maybe we can make it maybe we can make it a little bigger. So at a little bigger. So at a little bigger. So at any moment you any moment you any moment you can see that can see that can see that my MCPs are connected. my MCPs are connected. my MCPs are connected. So, it is always So, it is always So, it is always ready, whether ready, whether ready, whether internally or in the IDE. internally or in the IDE. internally or in the IDE. And then I can also And then I can also And then I can also look at my look at my look at my skills. And skills. And skills. And over 70 skills are described here over 70 skills are described here over 70 skills are described here . How do I . How do I . How do I navigate navigate ? How do I work with ? How do I work with ? How do I work with data binding? data binding? data binding? All of this is written down and All of this is written down and All of this is written down and connected so that the agent connected so that the agent connected so that the agent can execute it at can execute it at can execute it at any time. So any time. So any time. So he doesn't have to he doesn't have to he doesn't have to guess. Now guess. Now guess. Now let me show you let me show you let me show you what we can do what we can do what we can do when we put all of this when we put all of this when we put all of this together. You may together. You may together. You may remember that there remember that there remember that there is a text box here on the Uno Platform.Uno is a text box here on the Uno Platform.Uno is a text box here on the Uno Platform.Uno . So what . So what . So what happens when you happens when you happens when you go go go directly to the directly to the directly to the app? I don't have app? I don't have app? I don't have enough time to enough time to enough time to show how AI show how AI show how AI creates a full-fledged creates a full-fledged creates a full-fledged application from scratch, but I will application from scratch, but I will application from scratch, but I will show you what show you what show you what the process looks like. But here, the process looks like. But here, the process looks like. But here, again, I'm working again, I'm working again, I'm working over slow Wi-Fi.

  23. over slow Wi-Fi. over slow Wi-Fi. This is a full-fledged WASM This is a full-fledged WASM application that we're application that we're application that we're downloading, the downloading, the Uno application, a small Uno application, a small Uno application, a small application in a application in a application in a WASM container. So, WASM container. So, WASM container. So, you get you get you get a hint, so take a hint, so take a hint, so take your specifications, your specifications, your specifications, your requests and your requests and your requests and start developing. start developing. start developing. But I'll launch one But I'll launch one But I'll launch one of the apps from of the apps from of the apps from the gallery here. It's like a the gallery here. It's like a the gallery here. It's like a full-fledged full-fledged full-fledged corporate corporate corporate sales dashboard, similar to a CRM sales dashboard, similar to a CRM system. The agent system. The agent system. The agent will launch it, and will launch it, and will launch it, and again, you can again, you can again, you can start with a prompt. We'll start with a prompt. We'll start with a prompt. We'll show you show you show you a hint right away so you a hint right away so you a hint right away so you can create it can create it can create it yourself. What he's yourself. What he's yourself. What he's doing now is doing now is doing now is building .NET on the fly building .NET on the fly . This special . This special . This special agent is working, and he agent is working, and he agent is working, and he has access to all has access to all has access to all our tools. our tools. our tools. He knows the He knows the He knows the MCB tools, so he can MCB tools, so he can MCB tools, so he can test himself, test himself, test himself, search the search the search the documentation, and documentation, and documentation, and retrieve data when retrieve data when retrieve data when needed. So, needed. So, needed. So, the agent does not work the agent does not work the agent does not work in isolation. He has in isolation. He has in isolation. He has a lot of help and a lot of help and a lot of help and knows exactly how knows exactly how knows exactly how to build to build to build cross-platform .NET cross-platform .NET applications. It should applications. It should applications. It should be here in be here in be here in a second or two, but the idea is a second or two, but the idea is a second or two, but the idea is to to to remove any remove any remove any barriers to entry. barriers to entry. Cross-platform .NET development is usually not easy development is usually not easy ; we try to give ; we try to give ; we try to give you all the tools you all the tools you all the tools at once, but you at once, but you at once, but you need to configure need to configure need to configure them in your local IDE or them in your local IDE or them in your local IDE or CLI. This works purely in CLI. This works purely in CLI. This works purely in the browser. So, the browser. So, the browser. So, the app appears and the app appears and the app appears and becomes interactive becomes interactive becomes interactive from the very beginning. I can from the very beginning. I can from the very beginning. I can see what see what see what the app looks like, see data, the app looks like, see data, the app looks like, see data, maps, and can maps, and can maps, and can switch between switch between switch between light and dark light and dark light and dark modes. I can modes. I can modes. I can see how the app see how the app see how the app works on different works on different works on different devices: tablets, devices: tablets, desktops, or desktops, or large screens. And large screens. And large screens. And we're showing it to you as we're showing it to you as we're showing it to you as if you came if you came if you came from, say, SwiftUI previews from, say, SwiftUI previews

  24. from, say, SwiftUI previews or Jetpack Compose previews, or or Jetpack Compose previews, or or Jetpack Compose previews, or from Storybook in the React world— from Storybook in the React world— it might look it might look it might look familiar to you. This means familiar to you. This means familiar to you. This means your entire app interface your entire app interface is displayed is displayed at once, so you can at once, so you can at once, so you can see any see any see any visual visual visual differences or layout changes you differences or layout changes you need to make, and need to make, and then create copies of then create copies of then create copies of each page. each page. each page. For example, I can For example, I can For example, I can go to the go to the go to the contacts page. Maybe this is the contacts page. Maybe this is the contacts page. Maybe this is the last thing I want to last thing I want to last thing I want to show. So, I can show. So, I can show. So, I can create create create instances of each instances of each instances of each page, even though they page, even though they page, even though they start as start as start as implicit implicit implicit previews, and previews, and previews, and for this page, for example, for this page, for example, for this page, for example, I can I can I can go into go into go into design mode. The agent is always design mode. The agent is always design mode. The agent is always there, and I can there, and I can there, and I can say that this is my say that this is my say that this is my contact page, contact page, contact page, but in the "empty but in the "empty " state. So this is not exactly a " state. So this is not exactly a " state. So this is not exactly a standard standard standard work scenario. I have a view model work scenario. I have a view model , so I can , so I can , so I can use XBind and use XBind and use XBind and data binding data binding data binding right here. Let me right here. Let me right here. Let me do that and I'll do that and I'll do that and I'll set it as the view model set it as the view model . If you manage . If you manage . If you manage to get there—static, to get there—static, to get there—static, no results no results no results found. It is immediately found. It is immediately found. It is immediately apparent that the page apparent that the page apparent that the page reflects this reflects this reflects this problematic state. problematic state. problematic state. For example, you did For example, you did For example, you did a search and nothing was a search and nothing was a search and nothing was found. So the found. So the found. So the same page same page same page can be rendered can be rendered can be rendered for different form for different form factors, factors, factors, data states, themes—you name data states, themes—you name it. This is all again it. This is all again done using Agent A workflows. The agent Agent A workflows. The agent has a lot of has a lot of has a lot of tools to tools to tools to help and you can help and you can help and you can really customize really customize really customize the query to your liking. The agent the query to your liking. The agent the query to your liking. The agent works only with works only with works only with the smallest the smallest the smallest details, so he does not details, so he does not details, so he does not try to cover try to cover try to cover the vast. We're really the vast. We're really the vast. We're really trying trying trying to implement all of this with to implement all of this with Agent A workflows so that you Agent A workflows so that you can build can build can build cross-platform .NET

  25. cross-platform .NET cross-platform .NET applications. I'm applications. I'm applications. I'm running out of time. running out of time. running out of time. So I will come back here So I will come back here . I hope you . I hope you . I hope you see that you have see that you have see that you have tremendous power in your hands. tremendous power in your hands. tremendous power in your hands. I hope you've I hope you've I hope you've seen enough seen enough seen enough to believe it. This is the to believe it. This is the to believe it. This is the future, friends. .NET, with future, friends. .NET, with future, friends. .NET, with all the power of all the power of all the power of IDEs like Rider and the IDEs like Rider and the IDEs like Rider and the rich rich rich ecosystems we ecosystems we ecosystems we have, really have, really have, really allows us allows us allows us to implement to implement to implement cross-platform cross-platform cross-platform UI rendering UI rendering UI rendering and run your .NET and run your .NET and run your .NET applications everywhere. applications everywhere. applications everywhere. If you're as If you're as If you're as super geeky as Anders, super geeky as Anders, super geeky as Anders, you'll run this on the you'll run this on the you'll run this on the washing machine. But washing machine. But washing machine. But if you're a little more if you're a little more if you're a little more simplistic, then simplistic, then simplistic, then run this on Wear OS, run this on Wear OS, run this on Wear OS, TVs, TVs, TVs, tablets, tablets, desktops, and desktops, and mobile phones—everywhere mobile phones—everywhere . But the future belongs to . But the future belongs to . But the future belongs to Agents, so Agents, so Agents, so give your agents give your agents give your agents everything they need to everything they need to everything they need to succeed. These are succeed. These are succeed. These are skills, skills, skills, MSDN tools, and any MSDN tools, and any MSDN tools, and any special tools. special tools. special tools. So, we have everything we So, we have everything we So, we have everything we need to need to need to change the world. So change the world. So change the world. So let's do this. let's do this. let's do this. We're just in We're just in We're just in time. If you are interested in what time. If you are interested in what time. If you are interested in what we have shown, we have shown, we have shown, try the try the try the Uno platform. This is an Uno platform. This is an Uno platform. This is an open source project. All of open source project. All of open source project. All of this can be found on this can be found on this can be found on platform.uno. We have a very platform.uno. We have a very platform.uno. We have a very active community on active community on active community on GitHub and Discord. You GitHub and Discord. You GitHub and Discord. You can find can find can find Andres and me on Andres and me on Andres and me on most social media.

  26. most social media. most social media. So, Andres, any So, Andres, any So, Andres, any final thoughts? final thoughts? final thoughts? No, Sam, you No, Sam, you No, Sam, you explained everything perfectly. We explained everything perfectly. We explained everything perfectly. We really see .NET really see .NET really see .NET working everywhere. We working everywhere. We working everywhere. We run it on run it on run it on various platforms, various platforms, various platforms, including the browser. including the browser. including the browser. Now it's your turn Now it's your turn Now it's your turn to create your own to create your own to create your own projects. Yes. projects. Yes. That's right. OK. Our That's right. OK. Our hosts are back. hosts are back. hosts are back. Hi, Matthias, Hi, Matthias, Hi, Matthias, nice to meet you. nice to meet you. nice to meet you. Greetings. Yes, we are here. Greetings. Yes, we are here. Greetings. Yes, we are here. Thank you. I really Thank you. I really Thank you. I really like that if like that if like that if you're not too you're not too you're not too tech-savvy, you can just tech-savvy, you can just tech-savvy, you can just run .NET on your run .NET on your run .NET on your TV. It's just TV. It's just : oh, okay. Of course. This is a : oh, okay. Of course. This is a : oh, okay. Of course. This is a less technical less technical less technical level. This, this level. This, this level. This, this suits me. suits me. suits me. Some Some Some Samsung refrigerators also have a screen. Samsung refrigerators also have a screen. Samsung refrigerators also have a screen. You can run You can run You can run it on your it on your it on your refrigerator. refrigerator. refrigerator. Yes. Okay, I've never Yes. Okay, I've never Yes. Okay, I've never run code on a run code on a run code on a refrigerator. I have to refrigerator. I have to refrigerator. I have to admit, testing admit, testing admit, testing this will be a bit of a this will be a bit of a this will be a bit of a challenge. challenge. challenge. It's like, where do I get a It's like, where do I get a It's like, where do I get a test device test device test device for this? for this? for this? Yes, we Yes, we Yes, we touched on a lot of touched on a lot of touched on a lot of different things again. But different things again. But different things again. But the idea is to the idea is to the idea is to show that .NET show that .NET show that .NET can really be can really be can really be everywhere, and you have all the everywhere, and you have all the everywhere, and you have all the tools, the underlying tools, the underlying tools, the underlying frameworks, and the frameworks, and the frameworks, and the help of agents to help of agents to help of agents to do everything right.

  27. do everything right. And one more thing—it's And one more thing—it's really fast. really fast. You know, there's a lot of discussion right now about You know, there's a lot of discussion right now about which language which language which language to choose, because AI can to choose, because AI can to choose, because AI can do everything. It's a do everything. It's a do everything. It's a great language, and it's great language, and it's great language, and it's very fast. So you very fast. So you very fast. So you get the best of get the best of get the best of both worlds along with an both worlds along with an both worlds along with an entire ecosystem entire ecosystem entire ecosystem that keeps up with that keeps up with that keeps up with advances in advances in agent programming. Yes, I, I...no, Yes, I, I...no, go on. Sorry. go on. Sorry. go on. Sorry. I just wanted to I just wanted to I just wanted to say, it's nice to hear say, it's nice to hear that C# and .NET are really that C# and .NET are really that C# and .NET are really fast. It's fast. I fast. It's fast. I fast. It's fast. I mean, we've mean, we've mean, we've seen it in all the seen it in all the seen it in all the different releases different releases different releases over the over the over the years. They keep years. They keep years. They keep talking about talking about talking about performance, but performance, but performance, but sometimes you forget to sometimes you forget to sometimes you forget to say, "Yes, it's say, "Yes, it's say, "Yes, it's actually a good actually a good actually a good language and a very good language and a very good language and a very good runtime runtime ." ." ." Yes, one of the topics we Yes, one of the topics we Yes, one of the topics we often discuss is often discuss is often discuss is when you have a PR that is a significant when you have a PR that is a significant when you have a PR that is a significant portion of portion of portion of written by an agent. written by an agent. written by an agent. When you have When you have When you have apps in apps in apps in stores, who stores, who stores, who owns them? You can't owns them? You can't owns them? You can't point to an point to an point to an agent who did agent who did agent who did something wrong. So do something wrong. So do something wrong. So do you test all the you test all the you test all the code? It's complicated because there's code? It's complicated because there's a lot of code generated, but it's a lot of code generated, but it's your your your software.

  28. software. software. After all, it is your name After all, it is your name . So compared to . So compared to . So compared to doing things " doing things " doing things " one-off", what if we one-off", what if we one-off", what if we used .NET, used .NET, used .NET, which is which is which is maintainable? maintainable? maintainable? Maybe you understand Maybe you understand Maybe you understand a little more and have a little more and have a little more and have more confidence more confidence more confidence thanks to all these thanks to all these thanks to all these safeguards. That's why safeguards. That's why software development principles are more important software development principles are more important than ever, because this is where than ever, because this is where than ever, because this is where agents do agents do agents do everything right for you everything right for you . . . Certainly. This Certainly. This Certainly. This comment comment comment echoes echoes echoes several things that were several things that were several things that were said throughout the day. said throughout the day. said throughout the day. Rachel mentioned Rachel mentioned Rachel mentioned earlier that earlier that earlier that AI is an AI is an AI is an amplifier, and I think that's a amplifier, and I think that's a amplifier, and I think that's a very good thing. It very good thing. It very good thing. It can indeed can indeed can indeed help, but it help, but it help, but it also strengthens you, also strengthens you, also strengthens you, your knowledge, and the your knowledge, and the your knowledge, and the processes and methods of processes and methods of processes and methods of your work. So that's your work. So that's your work. So that's Yes. Yes, that's a good Yes. Yes, that's a good Yes. Yes, that's a good thing. I have a quick thing. I have a quick thing. I have a quick question about what question about what question about what you were showing you were showing you were showing earlier. We showed earlier. We showed earlier. We showed Skia running in the Skia running in the Skia running in the browser. Is this really browser. Is this really browser. Is this really Skia? Skia? Skia? Yes, definitely. All of Yes, definitely. All of Yes, definitely. All of our cross-platform our cross-platform our cross-platform applications applications applications are rendered are rendered are rendered using Skia on all using Skia on all using Skia on all platforms, but what platforms, but what platforms, but what we've done with Studio is we've done with Studio is we've done with Studio is actually SkiaSharp actually SkiaSharp actually SkiaSharp loading ALC where it loading ALC where it loading ALC where it loads a smaller loads a smaller loads a smaller application to application to application to show you.

  29. show you. Of course, because I Of course, because I understand that Skia works understand that Skia works understand that Skia works on all different on all different on all different platforms because platforms because platforms because it is a cross-platform it is a cross-platform it is a cross-platform tool. It tool. It tool. It interacts with interacts with interacts with the video card and all the video card and all the video card and all that. So how does it work that. So how does it work that. So how does it work in the browser? What in the browser? What in the browser? What graphics stack is there? graphics stack is there? graphics stack is there? Andreas, I'll let Andreas, I'll let Andreas, I'll let you answer. you answer. you answer. Yes, it's similar. We have Yes, it's similar. We have ...there are various limitations, ...there are various limitations, ...there are various limitations, but what you saw but what you saw but what you saw is SkiaSharp. SkiaSharp was is SkiaSharp. SkiaSharp was is SkiaSharp. SkiaSharp was an implementation of SkiaSharp. This is an implementation of SkiaSharp. This is an implementation of SkiaSharp. This is essentially the same Skia essentially the same Skia essentially the same Skia that you saw on the that you saw on the that you saw on the desktop, you desktop, you desktop, you run on other run on other run on other platforms, you platforms, you platforms, you run in the run in the run in the browser. You just browser. You just browser. You just take a GPU, draw HTML take a GPU, draw HTML take a GPU, draw HTML and elements that and elements that and elements that look like HTML. The look like HTML. The good thing is that on top of good thing is that on top of that we add that we add that we add the possibility of the possibility of the possibility of observation, observation, observation, accessibility, let's say accessibility, let's say accessibility, let's say . Because when . Because when . Because when you use Skia, you use Skia, you use Skia, you don't have what you don't have what you don't have what I mentioned on I mentioned on I mentioned on one of the slides: we're one of the slides: we're one of the slides: we're working on working on working on supporting supporting supporting screen readers and screen readers and screen readers and things like that, because things like that, because things like that, because Skia doesn't have that out of the Skia doesn't have that out of the Skia doesn't have that out of the box. Because it's box. Because it's box. Because it's not a text field, not an not a text field, not an not a text field, not an input, not a button. It's input, not a button. It's input, not a button. It's something drawn that something drawn that something drawn that behaves like one of behaves like one of behaves like one of these elements. But we, these elements. But we, these elements. But we, on top of implementing Skia, on top of implementing Skia, on top of implementing Skia, provide provide accessibility integration.

  30. This is really cool. This is really cool. SkiaSharp also has a SkiaSharp also has a SkiaSharp also has a fairly active fairly active fairly active community. So, it's community. So, it's community. So, it's all open source. You all open source. You all open source. You see Microsoft is see Microsoft is see Microsoft is allocating a lot of allocating a lot of allocating a lot of engineers, and we're engineers, and we're engineers, and we're helping helping helping to implement some of the to implement some of the to implement some of the latest optimizations. latest optimizations. What you saw are What you saw are essentially the initial essentially the initial essentially the initial elements of Vulcan. Over elements of Vulcan. Over elements of Vulcan. Over time, we have had time, we have had time, we have had several several several rendering engines in Skia. From rendering engines in Skia. From rendering engines in Skia. From Metal, I forgot which one was the Metal, I forgot which one was the Metal, I forgot which one was the previous one, but it previous one, but it previous one, but it benefits benefits benefits all platforms, all platforms, all platforms, including the web including the web browser. So the latest browser. So the latest browser. So the latest engine with many engine with many engine with many modern APIs improves modern APIs improves modern APIs improves performance and performance and performance and uses uses uses hardware acceleration hardware acceleration hardware acceleration wherever possible. wherever possible. Yes, I know, it's great. Yes, I know, it's great. As I said, I knew As I said, I knew As I said, I knew it worked on it worked on it worked on different operating different operating different operating systems, but working systems, but working systems, but working in a browser in a browser in a browser allows for huge allows for huge allows for huge interoperability, interoperability, interoperability, even on your even on your even on your refrigerator. This is refrigerator. This is refrigerator. This is even better. Matthias even better. Matthias , do you have a question? , do you have a question? I noticed one more thing, well, I noticed one more thing, well, there is room for there is room for there is room for optimization. I optimization. I optimization. I saw that the timer is saw that the timer is saw that the timer is always drawn in always drawn in always drawn in full, not just full, not just full, not just seconds. No, but seconds. No, but seconds. No, but seriously, I'd be seriously, I'd be seriously, I'd be curious to know how you curious to know how you curious to know how you test on real test on real test on real devices?

  31. devices? Yes, the idea is exactly the same Yes, the idea is exactly the same . After all, we are . After all, we are . After all, we are building true building true building true native apps. These are native apps. These are native apps. These are completely native completely native completely native applications, i.e. APKs applications, i.e. APKs applications, i.e. APKs and iOS and iOS app packages. So you app packages. So you app packages. So you can unpack can unpack can unpack the package and deploy the package and deploy the package and deploy it. With Android it's easy. it. With Android it's easy. it. With Android it's easy. iOS makes you go iOS makes you go iOS makes you go through some hassle, through some hassle, through some hassle, you know, with you know, with you know, with setting up setting up setting up certificates and certificates and provisioning profiles correctly. But, provisioning profiles correctly. But, you know, some you know, some you know, some hot hot hot reboot features reboot features reboot features will still work. And will still work. And will still work. And even if you have a even if you have a even if you have a simulator, our simulator, our simulator, our design tools design tools design tools work in a way that you work in a way that you work in a way that you can view the can view the can view the visual tree in the visual tree in the visual tree in the simulator and simulator and simulator and change everything on the change everything on the change everything on the fly. But of course, fly. But of course, fly. But of course, nothing replaces nothing replaces nothing replaces testing on a testing on a testing on a real device, and real device, and real device, and you can you can you can use use use TestFlight or anything TestFlight or anything TestFlight or anything else in your CD else in your CD pipeline to pipeline to pipeline to deploy to a deploy to a deploy to a small group of small group of small group of users before users before users before releasing to releasing to releasing to app stores. app stores. app stores. Yes, when I showed Yes, when I showed Yes, when I showed my example, I was my example, I was my example, I was running it on a running it on a running it on a real Android real Android device device device connected to my connected to my connected to my computer. I was just computer. I was just computer. I was just broadcasting what broadcasting what broadcasting what was on the device. So just like was on the device. So just like was on the device. So just like you you you connect to Android connect to Android , you can , you can , you can connect to iPhone.

  32. connect to iPhone. connect to iPhone. As Sam said, there are As Sam said, there are As Sam said, there are a few steps from Apple a few steps from Apple a few steps from Apple that need to be that need to be that need to be taken. And if you taken. And if you taken. And if you want to test want to test want to test on a wearable, you do the on a wearable, you do the on a wearable, you do the same. You simply same. You simply same. You simply connect your connect your connect your phone or device, phone or device, phone or device, make sure make sure make sure you have developer mode enabled you have developer mode enabled you have developer mode enabled , and you can , and you can , and you can start start start debugging. If you debugging. If you debugging. If you want to test want to test want to test without debugging, you without debugging, you without debugging, you can simply can simply can simply package your package your package your app and make app and make app and make it available for it available for it available for download and download and download and testing later. testing later. Steeply. Okay, before we Steeply. Okay, before we wrap up, wrap up, wrap up, we just had a we just had a we just had a question in the chat. Is question in the chat. Is question in the chat. Is there a declarative there a declarative there a declarative library for Skia Sharp library for Skia Sharp library for Skia Sharp UI that is not based on UI that is not based on UI that is not based on XML or XAML or something XML or XAML or something XML or XAML or something like that? Can like that? Can like that? Can you you you Yes, there is Yes, there is Yes, there is Either we do Either we do Either we do declaratively, or declaratively, or declaratively, or Yes, Uno supports XAML. Yes, Uno supports XAML. Yes, Uno supports XAML. But there is also C# for XAML. But there is also C# for XAML. But there is also C# for XAML. So you write So you write So you write declarative code in declarative code in declarative code in C# and it compiles C# and it compiles C# and it compiles and we build your and we build your and we build your Uno app using Uno app using declarative C # code. You can go to the # code. You can go to the # code. You can go to the Uno Platform documentation, Uno Platform documentation, Uno Platform documentation, read the blogs in the read the blogs in the read the blogs in the documentation, or documentation, or documentation, or ask the Uno MCP. But ask the Uno MCP. But ask the Uno MCP. But you have access to both you have access to both you have access to both options. If you don't options. If you don't options. If you don't want to write XAML, I'm want to write XAML, I'm want to write XAML, I'm personally a fan of personally a fan of personally a fan of XAML. I prefer to XAML. I prefer to XAML. I prefer to separate tasks.

  33. separate tasks. separate tasks. Your interface Your interface Your interface is in one is in one is in one place, and your code is in another place, and your code is in another . But you have the . But you have the . But you have the flexibility flexibility flexibility to use C# to use C# to use C# throughout your application to throughout your application to throughout your application to create create create cross-platform cross-platform cross-platform solutions. With Uno. solutions. With Uno. solutions. With Uno. And, if I may And, if I may And, if I may add, just stay tuned add, just stay tuned add, just stay tuned for the news. So, we've been for the news. So, we've been for the news. So, we've been experimenting and experimenting and experimenting and it hasn't worked out yet, but in the it hasn't worked out yet, but in the it hasn't worked out yet, but in the WinUI world you're WinUI world you're WinUI world you're starting to see starting to see starting to see reactors, which are essentially reactors, which are essentially C#-like declarative elements. We C#-like declarative elements. We look at them and look at them and look at them and see how, if you see how, if you see how, if you don't want to see or don't want to see or don't want to see or use XAML, use XAML, use XAML, can you do all of can you do all of can you do all of this in C# in a reactive this in C# in a reactive this in C# in a reactive way? So we are way? So we are way? So we are actively researching actively researching actively researching these things. these things. these things. Interesting. Thank you. Um, Interesting. Thank you. Um, Interesting. Thank you. Um, okay, we're out of okay, we're out of okay, we're out of time. So time. So time. So we have to thank we have to thank we have to thank you both and, you know, you both and, you know, you both and, you know, we hope to we hope to we hope to see you again soon see you again soon see you again soon . Hmm, very interesting . Hmm, very interesting . Hmm, very interesting session. Thank you. session. Thank you. session. Thank you. who welcomed us. who welcomed us. who welcomed us. Thank you for having Thank you for having Thank you for having us. Yes.

Summary

This discussion focuses on .NET interoperability and extending .NET capabilities across various platforms. Key subjects include .NET's portability, modularity, and rich ecosystem, with specific mention of the Uno Platform. The practical takeaway is that .NET, powered by tools like Uno Platform, can be used ubiquitously for mobile, web, and desktop development.

View original episode ↗