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