WPF Update with Joseph Finney - podcast episode cover

WPF Update with Joseph Finney

Jul 11, 20241 hr
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

What's happening with WPF? Carl and Richard talk to Joseph Finney about the news from Build about WPF - it's back, baby! But did it ever go away? Joe talks about how WPF was made open source in 2018 and how minimal development was done there - enough so that the community started building frameworks to support it, including WPFUI and ModernWPF. But at Build, Microsoft announced a new focus on WPF, including creating support for a Windows 11 theme - with a line of code, you can make your WPF app look like a Windows 11 app. Where does this leave WinApp SDK? What about migrations? There's lots to talk about!

Transcript

Hey there, this is Jeff Fritz, the Purple Blazer guy from Microsoft, letting you in on a little secret about my friend Carl Franklin. You know, the guy who started dot net Rocks, the first podcast about dot net way back in two thousand and two. The guy who's been teaching Blazer on YouTube since twenty twenty. Yeah, that Carl Franklin. Well, Carl has joined up with Codina Castle to teach a week long hands on Blazer class this September. And get this, it's at a castle slash villa in Tuscany.

It's sort of a luxury vacation with Blazer learning built in. He's calling it the Blazer master Class. You'll learn Blazer from the ground up, finishing the week with the ability to build and deploy Blazer applications. Now, Carl did this class last year and it was a huge success. You can watch the awesome video from twenty twenty three on the website, which I'll share in just

a few seconds. Since the training happens for only four hours in the morning over six days, you can bring your significant other with you, and you should. This part of Italy is absolutely beautiful. There's so much to see and do and Larry and Marco from Code and a Castle are organizing daily activities

both at the castle and in the area. The castle is in the Maremma, a less tourist dy region of Tuscany, offering both classic Tuscan hill country as well as easy access to the Etruscan Riviera, with sublime local food, wine and olive oil around every corner. Breakfast is included every day. There will be two communal dinners at the castle, bookending the experience, and most other meals in all activities are included and did I mention you'll learn Blazer in

person from Carl Franklin. Space is limited and for good reason. This is a quality training experience in beautiful setting. Go to Codeinnecastle dot com slash Blazer twenty twenty four that's b l a zo R two zero two four to take advantage of this amazing opportunity to join Carl in Tuscany for an unforgettable week of ladocha vita while advancing your programming skills in this important new technology. Hey Carl and Richard here with your twenty twenty four and DC schedule. We'll be at

as many NDC conferences as possible. This year, and you should consider attending no matter what. The Copenhagen Developers Festival happens August twenty sixth through the thirtieth. Tickets at Cphdevfest dot com. NDC Porto is happening October fourteenth through the eighteenth. The early discount ends June fourteenth. Tickets at Ndcporto dot com. We'll see you there, we hope. Hello, and welcome back to dot NetRocks. I'm Carl Franklin and I'm Richard Campbell. We're here again for the

nineteen hundred and sixth time. There you go. Well, let's be clear, I'm the new guy. I didn't become co host. I'll show one hundred okay, eighteen hundred and six shows. You'd had two co hosts before that. I remember thinking to myself, it's fifty shows. What's the big deal. It's gonna be easy. Had fifty shows. What's the matter with us anyway, don't it? I just got back from twenty six days on the road, man like wow, which not actually a good idea. That

was too long? Wow, so long time six stops total three comm Yeah, you know you can't complain. Get a chance to the folks who listen to the show and talk to all our friends and there's you know, the other speakers and things. And I got to visit with our friend Remy. I was that's right, he's got a little baby, got a little seven month old. That's so cool. Yeah. So and I did some fishing with our friend Huckabee. Oh yeah, that's right. Yeah. Was that

in Montana? It was in Montana. That was on the Dolan Flats west of Missoula. It was Brad Pitt with you guys. No, no, Robert Redford, absolutely, but no Brad Pitt. Uh. The guys who run that place are fantastic. And it is you know, I find fly fishing vaguely daft, because you know, we're throwing everything back, like we're catching a lot of fish, but we're putting them all back. It's an excuse to stand in the water and drink beer. Yeah, let's be clear.

Actually it is drinking and partying with your friends, interrupted occasionally by floating in a boat. We had We had a great time. And yeah, my cast is getting better according to the outfitter. So oh that sounds great. There you go. Well, I don't really have much to say after that, so let's just roll the music for better not a framework. All right, what do you got so at build? I did this video with Don Weeba from dev Express, and it's called May the Forms Be with You?

I love it. You're such a geek. I didn't name it. I can't take credit for that. I think that was Don. But basically, it's a wind forms hybrid app that uses both wind Forms and Blazer at the same time. You're seeing wind forms, not web forms. Wind forms. You're crazy. I know. This is really cool. It's a Windows form app. It has like a Windows Forms Dev Express grid, and then it has a some other stuff that's built with Blazer and they interact with each

other and it's very cool. Okay, So I thought I would post that in This is nineteen oh six. You can go to nineteen oh six dot pwop dot me and that'll take you there, or you could just google bing May the Forums Be with You Microsoft Build. Yeah, awesome, dude. So that's what I got. Richard, who's talking to us? Grab a comment off of show seventeen fifty five when we did with one Joseph Finnie talking about building text Grab. I don't know, have you ever heard of it.

It's in the power toys and it turns out you can make a power toy. They'll make an MVP. Yeah, and Talon Kincaid had his comments a few months ago now we said text grab revolutionized online classes for me, professor's notes and the ability to make notes through OCR. I appreciate this developer's problem solved over at Christmas break. Thanks for Finn. That's talent, kN Kate, very cool. I got nothing more to say than that. It's like you know, and I hope Joe feels the same way. It's like

you make something, people use it and they are grateful. This is the best part of our job. True, absolutely, yeah, it really is, especially with small, little purpose built utilities like that. Yeah. Yeah, so talent, thank you so much for your comment, and a copy music codey is on its way to you. And if you'd like a copy of music Coobe. I read a comment on the website at dot net rocks

dot com on the facebooks. You publish every show there, and if you comment there and not reading on the show, we'll send you copy music COBA and you can follow us on x Twitter, which is what I'm calling it now Twitter x Nope, ex Twitter. It was Twitter? Now is Twitter? Now? Is on Twitter? An ex Twitter? You can follow us there at Carl Franklin and at Rich Campbell. However, the cool kids are

hanging out on Macedon. I'm at Carl Franklin at techcub dot Social, and I'm Rich Campbell at macedon Social. Send us a tuote you never know? How about that for a tagline? Send us a tute you never know? It's like that. All you need is a dollar and a dream. All right, Well, let's introduce formally Joe Finney. By day, he's a mobile product owner and MVP and builds productivity apps for Win Windows at night and when he's not programming, he's birding, running and enjoying tasty coffee and beer

in Milwaukee. Hey Joe, Hey, how's it going going to have you back? Man? Ye, it's good to be back and talk about really surprising but exciting stuff. You pinged me on this show and I just said, yes, where do you want to go? Friend? What are you talking about? So? The big build news, I think for a lot of Windows developers was that WPF is back. Did it ever really go away?

WPF is officially back? How's that Yeah, it's I think this is one of those announcements to your point, Richard, that everyone was happy to see more of an acknowledgment because it never went away. No, but this it felt like the spend was was just like housekeeping. They were keeping a patch for secure but you word seeing features and the another hot topic of this show is frequently open source and you know, how do you manage that?

How do you support it? And WPF was open sourced years ago, and so that was I mean, I don't know when that actually happened, but you know it's been open source for several years. But if you look at the contributions and like how it's actually being managed, it's not like a traditional

open source you know, repository. You know, before we go any further with WPF, I got to acknowledge the couple of people who left comments on the website about our talk with Beth Massey and you know, Carl, here's Carl dissing zamble again, right, because you know, I'm kind of cranky sometimes but not really, I'm The thing is is that I did a lot of zamal and then I you know, then the web sort of took over my life, and I learned Blazer, and I just love the binding model

and all that stuff, and and uh, when I could do WPF applications, I chose to do them in Blazer with Blazer Hybrid. And like I was talking in the in the beginning, the web forms in Blazer is also a nice combination. So yeah, and and you know, it's my opinion. I'm kind of entitled to my opinion. Everybody's got an opinion. I don't. But you know, this isn't a training session on Zamal. You know, it's this isn't the dot Ne Rocks is just we just talk,

you know. So there's plenty of people who love Zamal. And Billy Hollis comes to mind. He and I are really good friends, and he even likes Blazer too. So you know, it's not that I'm down on Zamal. It's just that I personally am doing more Blazer than Zamal these days. Makes you happy, Blazer makes me happy. But but I just wanted to

get that out of the way. But I'm really curious to find out because I didn't read about this, and I didn't see anything about it to build because I wasn't really watching but so tell us what's new in WPF that's so exciting. Well, I really do think, as Richard said, the attention

is hopefully changing. I think that's kind of the major element that spent a big problem for a lot of people for a long time, which was you have these major projects, you have these huge apps that people are building, and Microsoft was telling everyone to you know, first they were saying, oh, stop building that and build wuwp And obviously that was a bit too far for most people to do, and it didn't work, and it cut out a bunch of stuff, and it was a whole new flavor of Examle and

the whole model was totally different, you know, focus on mobile devices, and so people did not jump. People stayed in WPF. And then they said, okay, when you I you know, Reunion, when UI and now the win FSDK, that's the new thing. And for a couple of years they were like, this is our platform, this is the only thing we're supporting. Again, they open source WPF and wind forms. Years ago was when they open source WPF. Okay, so it's been open source for

a while, but I would say mainly it's there to track issues. There have been some major community contributions, but major in the uh, you know, it's amazing that they did it, and they were kind of big, but they were not fixing some of the major kind of pain points that you would have if you were going to make a new WPF app today, which as the what is it a spaceship our battleship gray When you make a new WPF app today, it looks like a WPF app, And so I would

say that was the number one, you know challenge, one of the major challenges that a lot of people had with the platform, which is it does a lot of stuff that it's really the only or the best way to do it. It's the main tool that most people are using to make the really complicated Windows apps. Microsoft's not investing in it, they're not focusing on it, and it's a lot of work to try to get it to look like

it fits in Windows and Windows eleven. And so that was actually recently they announced that the theming is all changing, so you can add a new line to your application zamo file to use a new fluent design resource and boom you

have all the rounded corners, all the fluenty things. And so your old school WPF app now looks like it belongs in a part of Windows, which was always a big challenge of how do you make this old framework look and behave new and so there were a lot of independent, kind of open source frameworks to do that work, but they were very open source. They were maintained by community members and it's a lot of work. There are a lot

of controls. And so now Microsoft has acknowledged, okay, that we have two major play platforms if you're going to build Windows apps, WPF and win FSDK. So they've kind of acknowledged the reality that those are the two platforms, but they didn't say when UI. Well, when UI is the UI layer of win fsdk, right, so I would say it's under that that tent. So win FSDK is definitely it's the APIs the platform, and then when UI is the UI for it? Are we talking about it? More?

Essential? Gives them here, Joe, because when U I and the win FSDK comes from the Windows team and WPF comes from dev dip. Yeah, that's a great point. I mean, this is a Conway's law situation. Actually, you have two different teams that are writing UIs, that are creating a user interface to a platform. You're going to get two. Yeah.

No, I mean it's definitely a challenge, and I think it's it's when you look at the priorities of the Windows team, which is like moving forward and doing more new modern things with devices and everything they're doing with ARM and performance there. If you want to do those kinds of cool things, that's all one FSDK. So there were a lot of announcements at around one FSDK at build about what you can do and now you can do ahead of

time compile. Now you can do a bunch of like really cool stuff, and there's a lot of new controls, and it's way more modern as far as like if you want to touch the device and pinch and zoom those things, one STDK. That's out of the box. That's really easy. You don't have to worry about it. Like when UI controls are amazing, they feel modern, they look modern. WPF is classic. It's the classic flavor.

So if you're doing a lot of keyboard and mouse, it's right there with you and that's kind of what it's tailored to and that's what it's been tailored to, and that's what a lot of these huge apps that you know, big companies all over the place. That really, I mean sure there are elements of well, isn't Visual Studio WPF unusual exception? Right? That was a very specific attent by Jason Xander in twenty ten to put WPF to

work inside of Microsoft application for the first time ever. And it costs studio if anybody remembers Studio twenty ten, like it was delayed by a month for performance reasons. On the other hand, the WPF got wildly better because they needed to. They pounded on it for performance. They pounded on the calm interrop like there was all those problems. And again I'm going back fourteen years because I get to do that, but I really feared for WPF back in

those days. It had been four years as they launched it in two thousand and six as a fallout of Vista, and it really it should have been implemented an office immediately. But because that's your best val validation. You know, if you're a microsmart Microsoft watcher, you look at what Microsoft is using because that's the products that are going to persist. For crying out, the

VB six run time is still shipped in Windows eleven. I'll tell you there's a WPF app a commercial app that I use a lot for streaming that's written in WPF. Yeah, and it's it's called v mix. Nice. V mix is written and get this vb net in WPF and it's all I l on the hood. Baby, it's a app, like it really is awesome.

It's great. Yeah, I think that's kind of I mean, if we go all the way back to the beginning of this discussion about a utility that does a job, I think that's kind of at the end of the day, that's what we're doing, like software, not for software's sake. We're here to build tools. And WPF has been around for a long time, which means when you run into a problem a WPF and you google it, there's an answer, there's an answer, and it is very useful.

Let's get to twenty twenty four here we're going to ask chat GPT. Really that's man, that's funny that you say that you want to go very modern. So one, it's really funny whenever GitHub co pilot suggests APIs that you want to call and you see it in a little preview and the great text and you're like, oh, that's exactly what I want. You hit tab and then the rech squigglies come and they say, that's not a real ABI, that's what you want, what you want in your dream. Yeah,

so then you search it in GitHub news say is this actually real? Why did this get recommended? And you're like, oh no, it's something that somebody eln't made to make you happy. I went around with I'm going around with chat GPT recently trying to solve a problem, and it became clear after about I don't know, twenty or thirty minutes that it really didn't have the necessary means to solve the problem, and just a quick search on stack overflow

I found the answer immediately. Yeah, you know, I am surprised, to go with, I'm surprised that the data is not better because there's a lot of WPF questions and answers on stock overflow and they're really high quality and they're really good, and they ask basic questions that you know you're going to run into if you're developing an app, and if you ask the same thing in you know, when FSDK, you're lucky if you get an answer.

I mean, for example, I make an app that basically generates icon files because I needed to make icon files for my other apps, and I couldn't find an easy way to do it. And so what I wanted I want to be able to zoom in and see the pixel perfect preview of that with no anti leasing, no blurring, no smoothing. Yeah it alone, right, I know it's sixteen by sixteen pixels. Show me the sharp lines. You can see those in visual studio? I think, yep, yeah,

you can in visual studio that is. But if you it's a little weird. Visual studio previewer for images can be a little funk. But when f SDK, when you zoom in, I was like, I just want to turn off this thing and all the solutions I found. We're a WPF because there are a lot of solutions out there, but there are a lot of re WVF because it's been around, it's you know, it's battle tested, well you want it's been abstracted from the platform the whole time. There's no

direct platform dependencies. I mean, let's be clear here. Win app SDK is what the Windows teams use to build parts of Windows. It's C plus plus first and foremost. It supports dot Net C sharp act all. But does it like I could see where there be you know what their first language

is. Their first language is C plus plus and so every saw you know, sometimes you look at a call inside of when when you I go, you know, if I was a C plus plus person, that would be awesome, but I'm a C sharp person and ah am I going to do this well exactly And the new the brand new again build announcement. I think it was co pilot run time. Is that the name of it? Which is the new all the models that they're going to bring, the different mL

models to win PSDK. Right. I was looking at these saying, you know what, I have an Apple context grab that would love to have some really updated OCR capabilities. And they're like, here's how you implement it in C plus plus and I'm right, can I That's this happened with in the early days of dot net, with C sharp and VB dot net. The first samples were always written in C sharp right, and the VB dot Net people were understandably annoyed. It's like, come on, made me switch?

Yeah, well, I had the big My problem was that I was so used to writing VB that I kept forgetting it was VB dot net when I was writing C sharp. You knew you were writing, You really did know, so your brain made the context switch, but you know you hit on it. It's a C plus plus first API. As much as they and I appreciate them doing this, try to make it friendly for dot net folks that's not his native language. I think of these two platforms though, as

serving different you know, customers. I think of Adobe, you know, using the win app API for their applications, you know, because they're all C plus plus you know, maximum performance kind of things. Whereas business software, you know, and software that we're writing for ourselves. You don't want to have to do all that, you know, the you need to be productive, and that's where WPF really shines absolutely. And WPF is great for forms over data. It has a visual designer, It has a huge toolbox

of controls. It has a huge supported ecosystem of companies who build controls, who offer contracts, and people who know how to how the system works and can jump in and fix it and they know the common pitfalls. I'm sorry, did you just casually say visual designer? Does it? Is that design? I mean, if you're as person like I came to appreciate that the wind Forms designer was the exception. There's that every other attempted designer couldn't hold

a candle to what wind Forms did. That's true, but WPF has a visual designer and the number one request of ONEPSTK and when UI is a visual designer and what's going on, the team has not built it yet, it's not as because it's not easy. Look at how long it took the WPF team to make what is usable like, it's hard. It's hard, you

know. It seems like we have this conversation Richard every once a year or two years or so, and you bring up the same point and I come back with the same comeback, which is Windows Forms is pixel based, yep, and designers are easy when it's pixel based, but not of the UI isn't flexible like it is in sample and so that just by nature you don't have like, have you ever seen a web designer that was close to Windows

Forms, No, because it's not pixel based either. Well, and I point out that wind Forms isn't pixel based anymore either since three dot one SDK now they're doing interpolation for high resolution, which is why it wasn't pixel perfect to switch over to it but you know, point well taken. And let's face it, I rarely want to manipulate the designer. I want that continuous view as i'm editing code. What I mean by pixel based Richard is if

you put a button, you have a location which is pixel based. Whether it gets scaled it is a different thing. But you start with a grid, you know, and you have the X and y. Are you know one hundred and one hundred that that's where it is? Yeah, on the page a bit more thing might scale and move around depending on the you know, flow layout or whatever. But it is it's interesting how the tools are adapting, even design tools. I mean stuff like Pigma. I don't know

how familiar. Oh yeah where yeah I got bit by Figma. Yeah, Pigma is a really interesting isn't it? And where's a lot of the energy and wears a lot of the cool stuff built? Is it like auto layout which is not pixel perfect? You know, those controls float and they resize and they you know, they fill the space in weird dynamic ways and it's hard to do, but it's It's also interesting because WPF with the visual designer.

I think initially you might think, oh, I'm going to be looking at the whole app with all of your child components and all of this stuff, and you're like, wow, that's a lot. You know, that's

a lot of stuff to visually display. But really what I find the visual designer handy for is I want to look at a small little component because you know, I'm building a little button and I'm building a little screen page, and I just want to see my little component as I'm updating it and maybe I forget to put some property on there and it's all the way to the

side and not you know, whatever it is. I want to be able to design these little components and then you bring all the components together, you run the app and you see how it flows, and you see how it you know, works as a running app. But I think that's kind of where it is really convenient. Yeah, And to that point, it's like, we're also no longer in the land. If everybody has a desktop PC, you're expected to make this stuff look good on a tablet and on a

phone and everywhere else. And these new design tools are way more capable of that. There's nothing certain, of course, but you know capable. And

when UI has I think UWP introduced it UWP's zambo. But there's like these view states where you can have breakpoints, which it's so nice when you have a window that you can shrink down, and the UI kind of adapts and compacts so that you can have a little column and your you know, navigation view changes or your UI moves around so that you can still hit the buttons. And some of these old school to WPF apps, you resize that window.

Yeah, you can't use the app anymore. You are sav Yeah, buttons are gone, right like, well, I guess I'm not allowed to have it like that. And so I think that's kind of the thinking here is if you want to build more of a modern dynamic app, there are tools for you. But if you are supporting an old WFPP or a very purpose built utility, WPF is here and Microsoft is doing some big investments to make it better. I'm looking at the contributors for the past few months in

on GitHub repository, and the maestro bot has been pushing code constantly. M hm. So you know, just again, you know that proofs in the pudding. It's like, there's no better example than there is new code going into WPF right now. Yep, yeah. I think the two big announcements that came out of build was the Windows eleven styling yeah, and hyphen based ligature support. So get excited. Iphen based what ligatures? I'm sorry, so excited? Yeah, I'm tell me about that. Honestly, it's not

a future I use Richard. I don't even know what it means. Sorry, I'm going to have to that's something Mike in Google, Dang after the show. It's just a yeah, it's the way that lay out on the page based on Okay, so yeah, but it's been it's been an open issue for since twenty eighteen. Has opened right away, yep, so that's getting fixed. Yeah, No, it's it's this is a yeah. So this is about the features of This is a C plus plus approach to coding, right, m m. So it's how do you how do you pass

these things? All? Right? I mean it's you know that now now that we talk about this way, I realize, hey, you know this is all the same problem from working on it for different teams. You need to think about the origins of UWP was Microsoft was supposed to have a phone and a tablet and a PC, and they wanted to make it easy for us to code for all of them, and the Windows team tried to drive that that's the original concept of UWP, and it's spun up to become the

win FSDK. And the same issue existed with from Zamorin and from Zammal and from silver Light. Like ZAMA was very fragmented for a long time there until the last few years where they've kind of brought all the zamble back together because they were in a state. But we were all struggling with the same essential problem, which is that the age of the thing, the client machine is the same as the dev machine has been dead for a long time. Did

they really bring all the amals back together for them? Was I sleeping through that? It's essentially if you think about what is MAUI, that's Maui. It's no, it's just another flavor of Sammel. I agree, but it's the it's supposed to be the dominant flavor. It's supposed to be but not. I don't think I'm with you. It's definitely that was the mission. There's a few others in the process. I kind of think that's the way with everything, though. You know, when UI UWP was supposed to be

the one xamal to rule them all. Yeah. I mean, but they but they they have this thing called backward compatibility that they can't break. So these ammals are going to last forever. Yeah, yeah, they really are. And I think ultimately when you see Microsoft do these big jumps and turn around and look at their developers and say all right, follow me, follow

me to UWP, and I think they have a Microsoft. Their biggest problem is that all of their developers and the people working with them are really, really smart. Yeah, so they don't always follow directions and they think, let me do the math, let me see where that works for me and my business and my apps. They're not just going to jump. They's too smart for that. And also they've been bit in the past. So you have all these developers who's who look at the UBP and they say, okay,

what's my trade off? I spend a bunch of time investing in this, what do I get? And the answer wasn't super clear. It was like, oh, you get a different app that's touch friendly for devices that are not you know, super broad. Yeah, it's not touch. But when you look at Maui, you say, oh, you can use your language, your platform that you know, and you can push it on iphonees. I think people go, okay, yep, I see the trade off. I will learn a new you know, a new flavor of examle because

getting your dot net app on an iPhone is a big deal. That's a big deal and it's really hard to do. And I'm not going to learn HTML. Sorry, Carl, I'm not doing CSS. No, No, that's fine, and I'll reciprocate. I think that once you learn zamal of any type, you know, doing the other flavors of xamal isn't that big a deal. They're just keywords, you know, right, once you know the I mean, I don't know really if the I know, the binding

syntax in WPF is really sophisticated. I'm not so sure it's as sophisticated in the other flavors of xamal, but I wouldn't know. Yeah, it's it is actually really sophisticated. And some of the things that make that binding and win APSDK that I've in some of my apps that I've made that's really really nice is a little tool that Microsoft builds in the community toolkit called MVVM Toolkit.

I think it is. Yeah, yeah, and that makes it really easy to do, like property change and you just add that little attribute to the top of your properties and it rights source generates all of the code for you. And so that makes binding and updating and keeping everything in sync and binding it to the view model super easy. Like it's not even a problem anymore. Everything is up to date, everything is fast and quick. Yeah, that's an amazing tool. It is no important, like you're seeing a

way forward years just nothing as simple. It's been a while since, say you see MBAVM toolkit. But if there was one of these things that required you to your models to inherit from a base class, maybe it was the view model that inherits from a base class. But I really don't like model having to inherit base classes in models. I can't remember which one that was though, Yeah, i'ld have to pull it my repounded. Yeah. I don't know if you have to make it astruct or what, but it is.

It's really nice to be able to drop that attribute on things and just say, okay, I agree, can you handle this complexity for me? I'm focused on solving a business need right now. Yeah, right, It sures out to be always the truth. Mm hmm. Yeah, Hey guys, hold that thought for just this moment, for these very important messages. We'll be right back. Hey, Carl here, tired of the debugging grind, Let's talk about a breakthrough that's here to help. Raygun's AI error resolution

isn't just another tool. It's like having a seasoned developer right by your side, suggesting fixes and explaining errors in real time. If you're curious as to how it can smooth out your debugging day, visit raygun dot com, slash dot net rocks that's raygun, r A y g u n dot com slash d O t n E t r o c ks for your free fourteen day

trial to explore the way ray gun is revolutionizing debugging. You know, it's common for business application to contain fifteen percent repetitive code just because of metaprogramming limitations in the c Sharp language. Why write boilerplate manually when a machine could generate it for you? Enter Metalama, the code generation and Verification toolkit for C Sharp. Their c Sharp to c Sharp template language is simply amazing. Logging

caching memento observable if it's repetitive Metaalama can automate it. Visit metalama dot net today and learn to automate your code patterns with their free edition. Remember it's Metalama with one L me E T A L A m A dot net And we're back. I'm Carl Franklin, That's Richard Campbell, hey, and that's Joe Finny, and we're talking WPF. It's getting a facelift or an update,

or an upgrade or something. It give Karen eating caring attention. Definitely a facelift if you want it. So if you're if you're a WPF developer and you want your WPF app to look like Windows eleven, then you can add in a little resource dictionary to your app and the boom, you got all that UI for you. I'm going to sound like an old man here, but is there a Is there a tool to make Windows eleven look like Windows ten? That would be cool? It's called Yeah. I'm sure there's

somebody who sells something out there that does that. Great. Can I just complain a minute here? When you write click on a file and you expect, like a ZIP file for example, you expect properties and you know on whatever, undo this? You know what am I trying to say on zip. Yeah, not on zip, but you want properties, you have to go to more properties to get the to get the things that you want, Like they're trying to hide things from you. Hey, yeah, it's the

taskbar settings. Why do I have to do three extra clicks now to hide my taskbar and unhide it? No, that's it's definitely a challenge. And to Richard's point earlier about how fast WPF grew up whenever Visual Studio started taking it and using net, I think the same thing is happening with win fsdk because the file Explorer in Windows eleven is built in win fsdk. I believe

that was the word I was looking for. Sorry on block Okay, yeah, it's and it is a definitely there's a lot of attention on the file Explorer in Windows eleven and the reight click menu and how performant things are and

what it can do and how it's different from Windows ten. And I think the team is getting a lot of feedback and a lot of the challenges that they had with performance, where win fsdk challenges because it's so low level, it needs to be super performant, and so hopefully in dot Net nine with AOT and all of those fancy things. Hopefully they are listening and building and

responding. But it's yeah, it's hard whenever you have such an ingrained user base who really knows how to get things done, and then you move their cheese under a show more button. Does this imply that the win FSDK to that is the low level library to Windows ends, and that win WPF will sit over top of that and just give you access to all those capabilities. I don't. I don't necessarily think so. I think WPF is not. I don't think the role that it's serving is going to change. I think

it's still going to sit in its own little like this. You know, you build apps in these vertical stacks. You can already today. I think they're like giving your WPF a package identity. You can kind of wrap it in a package, and then you can access those win rt APIs So you can do that today. You've actually been able to do that for a while

now, and they are that's kind of where they're investing. That's where the team is investing a lot of those interesting models and doing some of that weird stuff, and so you can do all that well, I mean they're talking about servicing the Win eleven controls and look not to me sounds like you're just putting access to the API into WPF. I think it's styling. I don't think that they are sling. Yeah, I think that they're bringing just the

look and feel. I don't think that there's any sort of OS level injection into WPF. I mean, you just described how the file menu in File Explorer in Windows eleven is different because it's built against the wind app a SDK. So you know the fact that if I could do that in WPF, now that would mean okay, there's I have access to win FSDK without using it directly. No, I do think that WPF new UI is mainly just

UI. So they're when it. Actually the announcement came in like two steps, so before build, I think in like February maybe, Yeah, Microsoft announced that the open source library WPFUI. Yeah, it was collaborating with Win eleven, was collaborating with the team, and Microsoft is going to make this the UI of WPF officially. Yeah, that was December of twenty three. Okay, it was December well ahead of build, but you know, so that's where they announced, Hey, look we are we're going to use this

as the because they were a couple out there. I think it was there was modern modern WPF, like you're speaking to the same problem though that WPF apps are looking dated, right, And so this developer made a really popular repository. It was being used by the Power Toys team for a couple of their utilities and actually contributing back and I think really gauging the health and the vitality of that project. And then Microsoft announced, hey, we're going to

partner with them. And then in build they showed off the WPF gallery preview app and how easy it is to basically add one line to your app sammele and boom everything. Your app looks like it's Windows eleven. But I do believe that that's a big distinction. It looks like it, right, it is not when UI three. Okay, it looks like when UI three. It is not when UI three from what I understand I would know. I think that's an important distinction too, because that is again a theming thing versus

a functionality thing. Yes, yeah, and stuff like aot you know, like compiling your app at a time, all of that great stuff. One ap SDK, so right, now there's no trimming, there's no all of that stuff does not exist in WPF. It's just the way that it's built. Trimming support, I think is yeah, is not trim compatible. Very popular, well requested future in WPF, and the team has not announced that they are going to make it trim compatible. And so when you make a

self contained WPF app, it it holds the whole framework with that. It's big, it's you know, it's all there, which is good, but also that's just what you expect when you want to take a dependency on WPF.

That's how it is, right, Okay, I mean, yeah, this is it's very interesting, and I'm stunned to see that that Power Toys was kind of at the center all of this, right that in a lot of ways, I'm looking at the various messages and stuff that they always reference Power Toys like you're the folks you work with and you contributed to were exemplars of ways to modernize WPF apps into Win eleven, right, Yeah, to

the point where they've actually adopting it. Yeah, this is the how do you actually do agile at a company like Microsoft with a product like Windows, Right, how do you do that? Without like how do you make these smaller bets and experiment with these different platforms? And I think the way you do it is you experiment where you can. And Power Toys was very much a heavy feedback tool, like if you do something to the Windows team,

very deeply connected to the Windows team, but also to the community. So the open source community is vibrants. There are over five thousand issues open and I don't even know, I don't even want to know how many have been closed, and so it's a very popular repository. So it is kind of the like tip of the spear for what are we doing? What? How can we unblocked developers? How can we make people more productive? And set with a utility like text extractor and power Toys the only way to do like

a big full screen overlay with transparent windows. That was WPF because you would have thought it would have been win appasedly k you maybe would think that, but Nope, Nope, it was WPF. Is there anything Joe in the new WPF that you think they got wrong? No, I don't think so. Right now. I think they're they're taking a very cautious approach. I

mean, I think it's anything you don't like not yet. I mean again, it's still in preview, so I think I want to see some of the like interactivity stuff come forward, like being able to pinch and zoom and interact with it in a much like if you have a scroll viewer and you could just flick it with your finger on your surface laptop or whatever. Right. Yeah, that's really nice, and it doesn't seem like that is really on the road map today, so it really is a look and feel.

So that is kind of the trickiness there where you can have two apps that maybe look very similar, but under their hood used two very different technologies and end up behaving differently from a user standpoint. So part of me thinks, well, it's great they look the same. But also in the same way that USBC can be challenging because it communicates universal a universal form factor, but

it is not universal. No. Yeah, it's just shape on each end and the cable all three have us say, right, which would at least to too many. Yeah, So that's kind of my only has tation is Okay, you've done this, yeah, and now the people doesn't work right, Yeah, And these little things apps look the same and one flicks and one doesn't hm, and you say, well why is that? And they go, well, how much time do you have? Sit down? Right here we go, Yeah, it's a nuanced dancer. I'm going to bring

in Windows Vista so back in. Yeah. Yeah, but it also speaks to a roadmap then too. It's like, you know what it could do implement flick right, Yeah, And I think that's kind of the again, how do you implement something like this at such a big old product. You don't just say you have to use it. So if you make a new VPF deep today, it's going to look you know, it's got that battleship gray. That's it's not going to look at any different. You have to

opt in. So I think you're still going to see a lot of people who do not use the new UI and a lot of apps that even though this is there, people are not going to use it, they're not going to opt into it. So mainly I would say I would be interested to see how big of an EFFECTUS has going forward, because how many new WPF apps are being created, right, I'm not sure, but yeah, yeah,

they demonstrated a conversion of an existing app. I think they went back to the picture viewer sample that was built way back in the day, and they added one line and said, hey, look theming support, lightmode, dark mode support, stuff like that. So hopefully developers are updating their apps. Yeah, I'd be more interested in. I've been using modern WPF and it's starting to get a little stale. Now how do I roll out modern WPF and roll in this new capability and add your magic line? Hey,

you know, speaking of upgrades. I got to take him minute here and thank my buddy Richard, because I have this old ATX case that had a power supply, like you know, from the Clinton administration, and it was so noisy. I was using it as an unraid server and I was like, Richard, this thing is so loud and I have to put it in the studio. Do you know, find me a quiet ATX power supply.

He's like, this is what you want. I think. I was in an airport too, literally walking and just went, wait a sec, little, you're so quiet. I can't even hear it. Yeah, it's so nice. It's a thermal take. Okay, I's going to say say who it is? Yeah, proper pre and I think we deliberately oversize it. So the fan never even spun up. Yeah, you're burning about five hundred wats put in the eight hund w the final leave ever even turn on.

Yeah. So now I have a fifty terabyte fifty terabyte RAID server. You can't even hear ye expect the hard drives to be the loudest thing in it. Yeah, I know that's right. I was actually sitting having dinner and I'm like, what is that thumping? Do you hear that? At least? Like that's your computer, you idiot. That's although all those arms start

stroking at the same time, you're going to generate some noise. Yeah, copying files well anyway, Yeah, it's about making things old new, and that's that's what we're doing, whether it's hardware software, everybody's got to do that at some point with their software hopefully. Yeah. I think I feel like we're boxes problem. They The problem here is that you always want to use the code that people are using and so not on the surface level you say, oh, well, win app SDK is the way to go.

Is lots of people using it, but they're all Microsoft people in C plus plus. I don't know how many c sharp people are using it in production apps. Well, Joe raised this hand. Yeah, Joe being a strange alien. Yeah, I've got a few out that it's not so not just

chex scrap Nope. Yeah. So win app SDK is what I use for a simple icon file maker, for some QR code maker, for a few little Windows utility apps that I build because I was like, hmmm, I don't like randomly googling a website and trying to find a QR code that seems a little sketchy. It's a little sketchy. And I was like, I will use this as an opportunity to learn and v toolkit and went FSDK and

here we go. Here's a little free utility for the community. But to your point about you want to use the tool that other people are using, You want to use the frameworks and the languages that are healthy and supported. This is we I know, Microsoft is late to the big open source game,

and it is kind of a unique position. The community isn't typically very open, but you'll see this with like modern WPF and WPFUI, where you have these communities supported UI frameworks to support WPF and so part of the interesting thing is Microsoft had abandoned it and it was so popular that the open source community stepped up and made these awesome tools with all these awesome controls to really, you know, help developers stay being productive. And now Microsoft's come back

to it. Because of that, they have come back. They have identified hey, there's an audience here, and then they picked a winner. So this is where open source gets weird, because now, if you were building a moderately popular WPF UI framework, what do you do? How do you manage that transition? And I think that's to your point Richard, about I have an app that's using one of those frameworks. How do I drop the dependency and use the new Microsoft mone I think that's yeah, you know,

you hated it. On one hand, you've got Kenara, the guy who created modern WPF, but you can make nice with him, and in some way, I mean, I think about when Ron Eisenberg hung up durandall, as he said, angler's a better way to go. He changed his mind later. That's a separate issue, you know, and so Canara could say

much the same thing. It's like, hey, you know, because you can also see that he was struggling to keep up, and I'm presuming it's a he I hate that I did just did that, but you know, there were a lot of demands on that to try and keep all the features in there. So and Microsoft picking a winner just by putting fts on it. Yeah, you know, the rest of us are all volunteers contributing over source once in a while, and Microsoft goes, here's for forty hour a

week, people to contribute to this library. Watch the PR's flow. Yeah, and watch the preview new get packages pop in every single week and new preview and you're like, wow, the rate of this really sped up.

But I think it is It's an interesting example there where I don't know what the model is, what the what is the transitionary period there, because unlike people get into dot net to make money, to make tools for companies and businesses to do things, it's not usually just random fun goofy stuff, right, And this is the point where if you're building these frameworks and you're doing it for a couple of years, you probably have a lot of users and

there's a lot of dependencies there. So whose responsibility is that, you know? And that's it. It's tricky now that Microsoft has picked a winner of Okay, we're going to do our new stuff, don't use those. Third part of UYS is kind of what they're signaling, use ours. And then if you're over there, you're like, well, am I on an island? What's you know? Who builds the bridge? Away? Is the a bridge? Yeah? Man, who pays to build a bridge? You know?

Do you just say, okay, we're gonna well, you're just gonna build migrations from the top three most popular and help those I think I hope they would do that, because more likely, I mean, it's also very reasonable as a lead dev who committed to WPFUI or to modern WPF to have to stand up in a scrum one day and go, guys, we have to add this to the sprint. We have to switch all this code has

to change or we're going to be in real trouble longer. We can't keep adding more code depending on this library that probably won't get a lot of love anymore when all the action's over here. And that's a tough meeting, because that is bumping out a set of features. Largely, if you do it right, nobody will be able to tell, Like, you won't even be able to see a change right, You'll burn it. Coup several sprints to do it. It's the sound guy problem. If you don't. Ever,

nobody can tell ye, I've lived as a system administrator. You can never get an A. You can get an F easy, you drop perfectly, you get a C. Wow, that audio doesn't suck. Nobody says that. Nobody says that, yeah, yeah, true, But yeah it is. Yeah, it's it's interesting and I think we'll we'll see how it continues to play out, but hopefully Microsoft has a pretty good metered, steady approach. And there's a pushback on here is is this a better? Is this

better? Is this better? The community has grown up around solving a problem in a very reasonable way, although you can see the cracks of trying to keep up with the cadence of the new features and especially Win eleven, and now it's like, are they solving a problem or they hijacking problem? Like I think depending on what seat you're sitting, and you can see it either way. Absolutely, yeah, I mean, I it is. It's a

major challenge for open source in general. And I don't I don't think that that problem has been solved yet, and I don't think it's going to be solved here. No, Well, there's a reason we keep talking about it on the show. Like I am. I have been drinking with a great community maintainer who watched two FT show up on his project and just start pushing prs like lightning. And it was not just that he was getting contributions, but these people were not in love with the product. This was their job.

They were told by a PM work on this. Here's the feature set we want. And it feels invasive. Yeah, definitely, No, it's and you know, did a product get better? Yeah, if you agree with the direction they were going in. If you didn't, then what fork it? Yeah, And that's something I haven't seen yet, but I wonder

about the day. I don't think stof would ever do this politically, it's insane to say, you know, the contributor is the maintainer hasn't agreed with us, We think these are important features show, We're going to do a fork and here we go. Yeah, Like, I just don't think that. I think they fall out of that would be disastrous. What the fork anyway? Yeah? Yeah, it's We're just going to keep seeing people try

different ways. But I think I do think one of the main things is communicating it ahead of time, and I remember I'm listening to a previous episode of dot net Rocks with a guest, maybe the maintainer of b unit. What's talking about kind of what do you want? What is the purpose of this open source? And I almost I've kind of thought about this with some of my own projects, which is maybe we should have like a goals file or maybe it should be part of our read me, which is, what's

the purpose here? Are you trying to you know, test a market and then turn this into a money making endeavor? Are you trying to turn this into a job. Are you trying to turn this into a portfolio piece? Are you trying to hand this off as soon as possible? You know? Is this a hot potato project or is this a long lasting, long lived like I want to build this, I want to maintain it. I it can go on forever. And it's like it would be kind of nice for

people to identify the kind of project that they're doing. And maybe that's what licenses used to be. And I mean, you bring up b unit and I literally was with Eagle last week and maybe I'm probably not speaking out of turn. He wanted this to exist. He was building Blazer stuff and he needed a testing library, and so he shared it out the idea that maybe a couple of fd show up and add a whole bunch of features, like in the end, he wanted a testing framework for Blazer. Like, either

way, that's a good outcome. But you're right, you end up looking into the souls of maintainers and you're going to see a variety of things in there. What motivated you? Where are you trying to get to? You know, what's important to you? Yep? And what is the deal with this project? Now? If to your point, if someone who goes to show up, what do you want them to have with them? Yeah, like resources in the form of time, development resources, money, a check,

yeah, you know, consistent revenue. Like you're trying to build a brand here, you're trying to build a business here. Did you want to get hired by Microsoft to work on this full time? Right? Sometimes that's the goal? Yeah, I think about Anthony and oh yeah, Now the names just jumped out in the head. They who are building the instrumentation on the client's side, Glimpse, glimpse. You're right, good call BacT dude. Yeah, and get glimpse was what it was called. And I don't

think they intended that, but it's certainly what happened. And then they got pulled away from it too, right, like, hey, now you work for the machine. You don't get to work on what you want. Right. Well, that's the interesting thing is if you're looking to take a dependency and you see that this is basically a portfolio piece, well you're not going to take that dependency because you're like, as soon as you get a job, you're you're out, you're gone, and this project is over. Yeah,

totally true. Yeah, it's it's an interesting thing. And I mean WPF hasn't really had to fight this or like be in the middle of a of a project like this for a long time because it was kind of dormant. But now that it's waking up, I think the space kind of the it's going to get interesting. Yeah, the code space that we're in now that WF is waking up into it's a little different than it when it went to sleep. Yeah, welcome to Welcome to the world. So I think

this conversation is gonna keep getting more interesting. I don't think it's gonna I don't think the interesting things are gonna stop. No, I agree and I and again if it was clear, we would say good or bad. I don't know. Yeah, yeah, All I know is open source is different now and and we're seeing more manifestations of it. Right. So Joe, what's in your inbox? What's next for you? Building a Maui app, building a new do it? Yeah, I know, learning how to build

Mali app. That's that's mail a Yeah, use that m VVM framework. Oh I will I have and the Maui app accelerator. Yeah. Also good, very good. In fact, I have James Montamagne on speed dial, so that's I highly recommend that although you can't expect him to answer no, no, no, he's a busy guy. Should leave a lot of voicemail. Yeah, we missed you. Job well, Joe, thanks very much for spending this time with us, and it's great to hear that w p F is back and keep us posted, will you? I will, all

right, and we'll talk to you next time on dot net rocks. Dot Rocks is brought to you by Franklin's Net and produced by Pop Studios, a full service audio, video and post production facility located physically in New London, Connecticut, and of course in the cloud. Online at PWOP dot com. Visit our website at d O T N E t R O c k S dot com for RSS feeds, downloads, mobile apps, comments, and access to the full archives going back to show number one, recorded in September two

thousand and two. And make sure you check out our sponsors. They keep us in business. Now, go write some code. See you next time. You got javans and

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android