The Modern .NET Show
A blurry image of source code, too blurry to read, take the place of the background. Layered over that are the headshot of Peter Bull and a purple robot holding a microphone; these are on either side of the centre of the image. Above both is the heading 'THE MODERN .NET SHOW' in bold, white text.

S6E04 - From Silverlight to Windows App SDK: Unleashing the Power of Windows Development with Peter Bull

Sponsors

Support for this episode of The Modern .NET Show comes from the following sponsors. Please take a moment to learn more about their products and services:

Please also see the full sponsor message(s) in the episode transcription for more details of their products and services, and offers exclusive to listeners of The Modern .NET Show.

Thank you to the sponsors for supporting the show.

Embedded Player

S6E04 - From Silverlight to Windows App SDK: Unleashing the Power of Windows Development with Peter Bull
The .NET Core Podcast

S6E04 - From Silverlight to Windows App SDK: Unleashing the Power of Windows Development with Peter Bull

Supporting The Show

If this episode was interesting or useful to you, please consider supporting the show with one of the above options.

Episode Summary

In this episode of The Modern .NET Show, Peter Bull, a seasoned developer, and Jamie Taylor, the show’s host, delve into the intricacies of the Windows App SDK. Through insightful discussions and valuable quotes, they shed light on the capabilities and potential of this powerful tool for modern Windows application development.

The Windows App SDK, formerly known as Project Reunion, aims to bring together the best of both worlds: the traditional Win32 framework and the Universal Windows Platform (UWP). Peter Bull explains that Project Reunion evolved into the Windows App SDK, enabling developers to leverage the latest features and capabilities of the Windows platform.

Writing to Learn and Sharing Knowledge: Both Bull and Taylor emphasize the value of writing tutorials and blog posts as a means to solidify one’s understanding of a subject. By transforming knowledge into their own words, developers can teach others and establish their mastery of a topic. Bull’s experience with writing tutorials on the Windows App SDK has not only aided his own learning journey but has also benefited the wider developer community.

Targeting the Windows platform with the Windows App SDK offers numerous benefits, especially for those aiming to create rich Windows applications. However, developers should consider their specific requirements when deciding between the Windows App SDK and other frameworks like .NET MAUI. The Windows App SDK excels in providing seamless integration with Windows 11 and extensive coverage of Windows features, while .NET MAUI offers cross-platform capabilities.

Episode Transcription

Welcome to The Modern .NET Show! Formerly known as The .NET Core Podcast, we are the go-to podcast for all .NET developers worldwide and I am your host Jamie “GaProgMan” Taylor.

In this episode, I spoke with Peter Bull about the Windows App SDK and the hidden bonuses of learning in the open via blogging, podcasting, and creating tutorials. We both also talk about how we feel that Windows as a compilation target has been lost in the cross-platform shuffle recently:

Yeah, exactly. And I think that’s the simple fact that gets missed with… there’s a lot of talk about the cross platform stuff, but just not enough about just write a Windows app if that’s where you’re going.

And as I say, you get a lot of the benefits of hooking into the really cool features of Windows 11 that you have there that you can leverage. You can leverage that in part or in whole. It’s really up to you. And it’s still Modern .NET. You can still use the latest version of .NET with Windows App SDK, like the older platforms that might be more limited, you benefit from all of that extra functionality that you get. So when the next version of .NET comes out, that’s going to be supported and so on.

So you’re not having to compromise with .NET, unlike with UWP, which is still around, that is stuck where it is. It doesn’t benefit from the latest version of .NET. So that’s a good migration. If you’ve got a UWP or Universal Windows platform app, you can migrate that to Windows App SDK and then you’re going to immediately be able to use the latest version of .NET, which is something you can’t do if you stick with it.

- Peter Bull

Whether you’re a developer looking to enhance your Windows application development skills or simply interested in the latest advancements in Windows development, this podcast episode provides valuable insights and perspectives.

So let’s sit back, open up a terminal, type in dotnet new podcast and we’ll dive into the core of Modern .NET.

Jamie : So Peter, thank you so much for being on the show. I really appreciate when anyone takes the time out to be on the show to talk about something that they are really interested in in the .NET space. And I feel like we’re going to talk about something that doesn’t get as much sort of air time as other things in the .NET space, because I feel like we’ll get onto it later, but I feel like there’s a big move for, “hey now that .NET can run things other than Windows. We’ll do all our apps for things other than Windows, regardless of whether it brings any value or not.” So I think it’s a good topic that we’ve got today.

Peter : Yeah, it is.

Jamie : So yeah, hopefully we can convince people that don’t need to move off of Windows to perhaps stay there. I don’t know because my thing right, we’ll get on to the episode proper in a moment but my thing is always bringing business value right?

Peter : Yeah

Jamie : If you are a Windows company and you’ve always used Windows and you got Windows servers and you got Windows everything, you even got Windows stickers on your Windows that look out the office, then building something for a Linux desktop is a waste of time. It’s a waste of engineering effort in my opinion. I’m not trying to say that Linux on the desktop is a waste of time I run a Windows, I run Linux on the desktop all the time myself. My daily driver is a Linux distro on the desktop. But if your company is not Linux at all and you have no business need for a Linux app then kind of pointless wasting the time doing it. I don’t know, maybe I’m just talking nonsense.

Peter : No, it makes sense. Like if you’re developing Windows apps it makes perfect sense to target Windows still. There’s a lot of Windows apps out there I mean, there’s a lot that are quite old but if you’re wanting to write apps for Windows still the yeah, it still makes sense to do so.

Jamie : Yeah, totally. Because, I mean, we’ve drifted well off topic and I haven’t even properly introduced you yet we’ll come back to my thought in a moment. We’ll come back to my thought in a moment.

So Peter, I was wondering could you perhaps give us a bit of an introduction to yourself? Maybe an elevator pitch of the kind of work you do and all the stuff you’re interested in in the .NET and maybe the podcasting space? Because my 30 seconds of research tells me you have a podcast yourself as well.

Peter : Yeah so I’m Peter Bull and I’m a .NET developer living in Gateshead in the Northeast of England. I’ve actually been programming as like a hobby basically for about 30 years or so; but I’ve been doing it for a proper job for about 20 odd years. And yeah, my most recent thing is doing a podcast about tech, which is quite good. I’ve always wanted to do something like that. So, yeah, I’ve just launched the Rogue Planetoid podcast, as it’s called.

Jamie : Nice. So the people listening to this and going to go check out your show. What kind of things can they expect to hear on a random episode of Rogue Planet?

Peter : Yeah, so it’s mostly Microsoft oriented. So there’s episodes about Microsoft build, so the Microsoft Build conference, that was just the other month that I’ve got an episode about that. So I wrote about the sessions there and the things they talked about. So it’s mainly Microsoft related stuff, but it’s only got a few episodes at the moment. But yeah, just anything tech related, Microsoft related, you’ll find it there and I’ll be releasing episodes every month. So if there’s not something there yet, then, yeah, definitely check it out.

Jamie : Cool, okay. And I happen to know as well that your wife has a podcast as well.

Peter : She does, yeah, she runs the Scottish Murders podcast. So it’s basically a true crime podcast. It can be more different from a tech one and that’s basically to highlight cases in Scotland. So people who have been murdered in Scotland or who are Scottish. So she’s got over 50 odd episodes now, so, yeah, that’s been going quite well. I might as well do a podcast on my own since she had one.

Jamie : There’s nothing quite like that bit of marriage rivalry to keep the home fires burning.

Peter : Exactly. She’s better at it than me. She’s the proper professional podcaster. I’m just the amateur. But no, we had the microphone and stuff, so I thought, well, it’s just sitting there, why not?

Jamie : Yeah, right. She’s not using it right now. Let’s give it a shot.

Peter : Exactly.

Jamie : What’s the phrase, you miss every shot you don’t take and it doesn’t cost you anything? Well, okay, there might be some hosting fees, but it doesn’t cost you anything to try it out. You won’t know unless you try, right?

Peter : Exactly. So it’s just like, I’ve got it on that spotify for podcasters, so it’s just pretty much just there. So just basically upload it there and got a few episodes. So in my own amateur way, it’s nice to have a little bit of a go at podcasting myself.

Jamie : Yeah. I always recommend if people are sitting on the fence and thinking, “should I get into podcasting?” I’m like, “okay, right, have you got a laptop? Yes, you’ve got a microphone built into your laptop. You’ve already got all the equipment you need, so if you want to record one, it won’t sound brilliant, but do that and then you can get your head around how to plan an episode and how to edit it and stuff like that.” And then when you’re ready to go ahead and buy yourself a microphone and see what you sound like.

Peter : Yeah, that’s the best way that you get started. That’s exactly when I had the stuff anyway. But even if I didn’t, I would have just given it a go and went, yeah, this is all right. And I probably would have got the stuff anyway. So, yeah, you can easily get even if you just do on your phone, you can just record a bit there and then see how it goes from there.

Jamie : Yeah, totally. Totally.

I think the first couple of actual recorded episodes, they were planned out on my old MacBook Air. It was the 2011 MacBook Air that I was using all the way up until 2021. I think. They were all planned out on there. But if I had an idea whilst I was walking around, I’d literally take my phone out, open up the voice memo app, and just say, “right, okay, and we’re going to do this, we’re going to do that, we’re going to do that.” If it’s a good enough app to record music with. Because I know a couple of pro musicians who use the voice memo app for recording ideas when they’re walking about. Because those of us who are Terry Pratchett fans know that inspiration can literally attack you at any point because it’s a random element in the universe. So if it’s good enough for them, it’s going to be good enough for what I’ve got to say.

Peter : Exactly. Yeah.

Jamie : Awesome. Okay.

So let’s talk a little bit about your dev origin story. I always like to sort of hear everyone’s dev origin stories because it’s really interesting to hear all the different ways that we all got into developing technology and how we got into computers and stuff. I’m not asking for let’s go back to when Peter was six or whatever and got an Amstrad, but if you were to give me sort of the Cliff Notes, because you said yourself you’ve been playing around with different kind of technology for like, 30 plus years, and you’ve been doing it professionally for 20. So there’s a story there.

Peter : I think there is, yeah. I could go pretty far back, but I think I can stick with the .NET generation. I think that’d be fair enough. I could go to town talking about Basic and stuff, and we’d be here all day talking about that.

But yeah, so my professional and also personal journeys kind of followed .NET along. I actually used .NET from the start. I remember getting the Alpha version of Visual Studio .NET and installing that. So I was pretty an early adopter and I thought, “this is pretty cool.” So I just started to learn that. I actually wrote a tutorial to teach myself show to do it. So I wrote my very first tutorial about Visual Studio .NET on that one. I had written tutorials previously, but I also learned that one, and it was just like, “oh, this is cool, and I can also share it with everyone else.” So that’s basically where my journey started.

It was Windows, forms. So if anyone’s heard of or use Windows forms. That’s what I started with. It’s actually still around. You can use it in modern .NET, so it might sound like it’s an old technology, but you can actually still use it. And then my next phase was like WPF. So that was like Windows Presentation Foundation, which, again, you can still use. So it kind of feels like what I used 20 years ago or so is actually back in again. So that’s quite cool. So you can basically use those technologies today. So I took that kind of XAML journey. So XAML is what WPF used.

And Microsoft had this great idea to bring XAML to the web, so, you know, you’ve got things like Blazor and stuff. These days, they thought, let’s put XAML in the web. So that was with something called Silverlight. So if anyone knows Silverlight, they’ll know exactly what I’m talking about. And that kind of morphed into the Windows Phone platform. So if anyone was a Windows Phone fan, I certainly was. There wasn’t many of us, I’m afraid, but I kind of got into that’s where I started to get into it properly, like as a developer, basically writing my own Windows Phone apps. I actually wrote a reasonably popular one, which was quite rare for that platform: If anyone knows of the Zoom Music Player from back in the day, probably seen it in Guardians of the Galaxy. If not, they had a really great social service, but there was a piece of it that they didn’t really bring to the phone. I didn’t actually know this, I just did it as an app. I thought, “this will be fun.” And they never brought it to the phone, so I brought the Social, the Zoom Social, as they called it, to the phone. And it got like over 300,000 downloads over its lifespan, which is pretty good.

There was people downloading it right up to when the service was turned off. That’s like how to delist it, because people were still downloading it. I was like, “it doesn’t work anymore. Sorry, it’s not my fault.” So that was kind of cool. And through that, I was able to get a job doing a Windows Phone app as well. So that was when it was still a big deal at the time. So that was quite nice. I kind of was able to port my skills up the way.

And then there was like, Windows 8 when that came out. You were able to use those same kind of skills to build they called them Metro apps or modern apps. That was that first idea where you could write an app for, like, the phone or for the desktop, and then they evolved out a little bit more and you could do both. And that kind of led on to the universal Windows platform. So that’s what you do, Windows 10 apps. And that was really broad. You could write apps for desktop, for mobile, and for tablet, and you could do Xbox and HoloLens as well. So that was really cool. I was like, wow, you can just write an app and run it on anything, even a Raspberry Pi. I ran one of mine on that and it was just like, this is so cool.

Jamie : Cool.

Peter : But that kind of didn’t work out. The Universal side of it’s kind of gone away a bit, and it’s now the Windows development side. At least that’s where Windows App SDK comes in, basically. So there was basically this idea to bring together the old school Win32 and UWP and sort of mash them together. They called it Project Reunion. And that is what the Windows App SDK is today.

So that’s basically what I sort of do at the moment. So I’ve write tutorials on my website for the Windows app. SDK. So I’ve written about 50 of the and I’ve got another 50 to go at the end of the year. So that not only helps me learn it, but I can also share it with everyone else.

Jamie : Amazing.

So, thinking back to a slightly earlier part of my career, I actually worked as a teacher for a little while, and one of the things that we would tell the students quite often was, “if you can take the knowledge, transform it into your own words and teach someone else, it means you have to have learnt it.”

Peter : Yeah

Jamie : And writing tutorials for stuff, or writing blog posts for stuff is like, one of the many ways you can do that. I wanted to avoid saying one of the easiest ways you can do that, but one of the ways that you can do that is to write tutorials and blog posts and stuff. And you’ll be surprised at how many people want to learn all of the stuff that maybe you’re doing and maybe you’re not surprised. But I was certainly surprised when I used to write blog posts about stuff. And people are like, “oh, wow, this is really cool. I want to be able to do this.” And I’m like, “oh, cool. Okay. It means that my time spent in the evenings figuring out where a comma goes in a sentence were well spent.”

Peter : Yeah, exactly. I mean, even even like some of my older tutorials that I did for Universal Windows platform, that I had people making their own YouTube videos with my tutorial and going through it, and it was kind of weird to see someone else go through my tutorial like, I know this with the same code. And it was just so much fun. I was like, people remixed my material in that way. Or even a university, I think a university in Denmark or something, they use my tutorials as part of their teaching for their course. And I was like, this is amazing. I mean, that’s kind of what I wanted. I want more people. I didn’t mind that so much. I was like, I just found it fascinating that somebody had made videos of my tutorials or somebody was getting a lecture where they were showing my work to the students, like, “this is how you should be doing it.” I’m like, “oh, should have done it that way?"

But yeah, that’s how you learn. It allowed me to play around with things I wouldn’t have probably done otherwise, and then it ended up later that I would need to know that I was like, oh, I’ve done that already. I wrote a tutorial about it. So it really was useful to actually learn it myself. And you learn bits of the framework. You might not necessarily like encryption and stuff, I might not use that and the it would come up later that you have to use that stuff for something. So, yeah, I found that really useful and that’s what made me write even more because then I knew that it would come in handy even just to me, let alone anyone else.

Jamie : Oh, totally.

When I’ve recommended it to other people in the past for like if not publicly blogging, just writing down the stuff that you’re learning, it produces like a learning journal because unless you use it straight away and you use it in a bunch of different places straight away, you’re likely going to forget something between 90… something yeah, somewhere as low as about 60 and somewhere as high as about 90% of what you learn on a daily basis because our brains pull in so much information and most of it is just jettisoned because we don’t need it. And so keeping logs of stuff that you’ve learned publicly or privately is a wonderful way to do it. And learning in public and in the open as well is a wonderful, wonderful way to do it, because you’re giving back to that community. And then it also means if it’s in public, on the web, and you’re happy with that, then when you get stuck, you can Google and go, “oh, wait, I solved this problem six months ago.”

Peter : Yeah, exactly.

And funny, it’s happened where I’ve seen how my skills have evolved. I did something because it’s actually like the 25th anniversary of my original website when I launched it and I posted some of the original tutorials. We’re talking about pre .NET here, and I was looking at them thinking, “I wouldn’t have written it that way now,” even using the same technologies I did back at the time because I’ve learned so much, but I was still willing to share it because I thought it’d be interesting. But there was something that I wrote and thought, “yeah, I definitely wrote that in a weird way back then because I didn’t know any better."

But I was sharing, like you say, I was learning in the open, so it’d be quite nice if somebody spots that and says, yeah, you could have written that better. I was like, yeah, I know, but at the time that’s what I knew and that’s how I was learning. And the resources pre .NET were very rare, there was a lot of code examples, fair enough, but you didn’t have things like stack overflow and all that kind of stuff. So really if you’re doing something wrong, it was very hard to be put in the right direction. That’s why I like to sort of continuously evolve my tutorials and sort of improve upon it. Like I’ve got the same game that I’ve ported multiple times like that, few of them the same. And I’ve made improvements every time I’ve done that. So you can actually follow my learning journey if you go back far enough and see how they were originally.

Jamie : Awesome.

Yeah, I’ve got ultimate respect for anyone who’s done any kind of learning in the open because it’s not easy to do and it’s really kind of a brave thing to do. So it’s brave from a personal perspective because you’re kind of having to say to yourself, “well, if I get it wrong, someone’s going to criticize me.” Well, actually no one criticizes you right, because they’re learning at the same time. But also it’s really brave because it’s like I’m putting my own learning out there and I’m showing where maybe the gaps in my knowledge are and you don’t have to know it all. That’s the crazy thing. You don’t have to know all to write about it.

And so I’ve got an apprentice at the moment, and I’m telling my apprentice, look, I don’t care if we do it publicly and put it on a WordPress site or on the Web or whatever, but what I would like for you to do by the time we finish this apprenticeship is for you to write up a couple of pages of notes on what we’ve done and what you’ve learned. Right? Because in six months time, you’re not going to remember it. And being able to look back on it, it will really help you.

Peter : Yeah, exactly, it’s like even just making notes, the stuff you do, I mean, that’s what I always kind of did that always made notes. Even when I go to events and stuff now I’ll note down loads of stuff because I’ll know there’d be something I can learn that I can look back on. But yeah, you should never be afraid to share just little things you’re doing. Like you’ve got like GitHub and stuff now, so you can just basically write a little project, share it, even if it’s just Hello World and you’ve just modified it a little bit. Just something like that is something that you can just sort of share with everyone and you get a bit of feedback even if it was a small thing. Could I done that better. Could I done that differently? There’s definitely a lot more opportunities for that but yeah, you can definitely start small. I mean, I know I’ve written like dozens and dozens of tutorials, but I started with one, which was Hello World. Just a little one, not much to it. So, yeah, you can just share something small, share a little bit code or a little bit of an example you’re interested in. And that’s the way to get into that sort of thing, I think.

Jamie : Oh, totally.

I think you’ve hit the nail on the head there: find a project that you’re interested in, because I meet so many people online, in person, whatever, where they’re like, “I want to learn how to use this technology and I’m going to build an app, but I’m not interested in the app that I’m building.” And I said to them, “well, the problem there is you’re going to lose interest in learning because you’re not doing something that you want to do.” It would be like saying, “I want to be the best footballer in the world, but I hate football. Well, you’re not going to stick with it, are you?”

Peter : Right, that’s the thing is do something you’re interested in, maybe like writing games, but you’re not very good at writing games. You think, “well, I could have write a simple one.” I wrote some ones that were just really basic. I think I wrote an emoji guessing game which just showed a set of emoji and you have to pick which one it was. So is it this particular one? And it can be anything, really. It doesn’t have to be all singing, all dancing thing. It can be just something that you want to do, something you’re interested in. That’s the key thing. Once you do something to start with, then it grows from there. I’ve basically gone from writing a tutorial about something to actually using it for work. So you never know where the small projects might take you.


The Definition of Done

In the depths of the code where the wild bugs reside,
A programmer steps in a trusted guide.

With his eyes keen as an eagle and heart full of pride,
there’s no nasty bug he’ll let slide.

He slogs through the lines where secrets may hide,
scanning for errors….

Announcer : For all the tech enthusiasts and lovers of verse comes a poetic journey like never before. Dive deep into the world of programming, of ones and zeros, of challenges met and solutions known. With “The Definition of Done and Other Tall Tales” navigate the intricate layers of code and creativity. Whether you’re a seasoned developer or just someone who appreciates the art behind the algorithms, this collection promises to offer a fresh perspective, melding the worlds of poetry and programming in a way that’s never been done before.

The Definition of Done and Other Tall Tales now available on Amazon. Get your hands on this literary masterpiece either as a beautiful physical book or conveniently for your kindle. Don’t miss out on this unique intersection of tech and text.

Terms and conditions apply. Your home may be at risk if you don’t keep those repositories up to date. If any bugs, literal or digital, arise from using this book, it’s not on us. Ensure there is no merging without testing. Some of these poems are absolutely hilarious, others may not be - humour is subjective. If you don’t find them funny, maybe check yourself before you wreck yourself. By purchasing this book, you hand over your soul.

Your future now awaits, either as a Java developer or a business analyst. Reproduction steps found within might not resemble live or dev situations. If you’re confused, so are we. And if by any wild chance this book causes harm or any injuries, we won’t judge. But maybe give the good folks at the Darwin Awards a shout.

And just remember it’s all fun and games until someone forgets to comment their code.


Jamie : Oh, absolutely. I mean, I don’t have an impressive story like yours, about any of your projects you’ve worked on, but when HTML5 sort of started picking up steam, I was like, “you know what, I want to learn the canvas and I want to learn how to draw stuff.” So I made a little game and if folks are interested, I’ll leave it in the show notes, links. But I made a game called Runaway, where you literally just the top down view. You make your character run away from a big bad monster that wants to eat you. And it’s a 2D sort of up, down, left, right, move around. But it taught me, it helped me to learn a whole bunch of stuff related to both JavaScript and the 2D canvas that HTML5 has. And that was because I was like, you know what, I want to make a game. What can I think of? Well, let’s run away from something rather than running to something. Run away from it?

Peter : Yeah, exactly, Jack. Just whatever inspires you. I know I did a project, wasn’t a programming one. I just wanted to sort of up my skills. I knew I wanted to do a lot more stuff on the programming side, but I thought, “I need to do something that will push my skills beyond what they currently are."

So I had this crazy idea to do a digital coffee table book. You know those coffee table books you get, but instead of a real one, it was just going to be a digital one you could download. And it was about the Zune. So I had all these resources that I had gained back in the day and they were just sitting on my computer and I just thought one day I thought, I know what I’ll do. And I wasn’t really too ofay with Photoshop. I thought, well, let’s see what I can do. So I basically spent a few weeks basically getting better at Photoshop and the put this book together, basically. It was really well received, actually. Everyone sort of thought it was a nice bit of a it was in 2019, so it was like just before Guardians of the Galaxy kind of made it a bit more famous. But it was nice to see the community just go, “this is great."

And I only did it to sort of see if I could learn these skills, which I then I could apply to my programming work. You know, just basically add another string to my bow, basically, because I’d never done anything like that. Don’t consider myself a designer. I still don’t, I suppose. But it was just nice to sort of add another skill that would be useful for my other side of my work. So, yeah, it doesn’t even have to be something developer related. It might be putting together a talk or a presentation. It could be anything. So that’s kind of what I did there. Just added another thing that I probably wouldn’t have done otherwise. And from that it gave me some other skills that I could then apply back to my work.

Jamie : Oh, absolutely. 100%. I do that with my reading. So my continual professional development that I put myself through is completely in the public. So if anybody wants to know, “hey, what’s Jamie been learning about this year?” You can go to a web page and I’ll link to it if people are interested. And you can see the books that I’ve read or the courses I’ve taken or…

I’m also putting together like the notes that I’ve made through that year or whatever to make them public. I have to go through it and sanitize it just a little bit. So I don’t DOX myself too much. But yeah, those are all available too, or they will be available too. And you’ll be amazed that the things that you can learn outside of development, outside of technology, outside of programming that apply directly to programming, development and technology.

There’s a book, the Life Changing. Was it the life changing method of tidying up? The life changing act of tidying up. Basically the Marie Kondo, The KonMari Method by Marie Kondo. She just talks about just tidy up after yourself, just put things away and pay your socks like this and have a draw for this and have a draw for that. But she also talks about you’re having respect for those items, of those things that you have those objects. And putting the in their place shows them the respect that they have. Well, guess what? That’s clean code.

Peter : Yeah, right.

Jamie : Cleaning up after yourself, having the respect for the code base to make sure that it is in a respectable position before you put it away. Where do you think the Boy Scout rule came from? It came from the Boy Scouts. It wasn’t from some random programmer who went, “hey, why don’t we just make the code a little bit better and then we’ll call it the boycott rule.” No, it was someone was in the Boy Scouts or someone was helping their kid join the Boy Scouts and went, “you know what? This is a great rule. Let’s apply it to programming.”

Peter : Yeah.

Jamie : And that’s how ideas percolate. And I’ve seen so many. We’ll get back onto the topic in a minute, but when I go to if I walk past a big shopping center early enough in the morning, I can see some of the shops that have floor to ceiling glass Windows. You can see the members of staff standing around having a stand up. Right. That’s them adopting something from software development related to how their day is going to go. Right. When I’ve gone back a couple of hours later and asked “that, I walked past the 08:00 in the morning, you all were standing around in a big thing. What was going on?” “It’s called a stand up.” “Oh cool. We have them in development, too.” Right.

And all these ideas percolate and get better because we’re sharing the and it’s transferable skills is what it is. And that’s what they try to teach in education. They don’t do a great deal of actually calling it transferable skills, but in education, we talk about transferable skills, of being able to apply knowledge from one domain to another.

Peter : Yeah, exactly. There’ll always be something you can give back. I mean, one of the projects I did work on, which was for the Windows App SDK, was Microsoft had the Fluent emoji that they open source. I was thinking, “oh, it would be interesting to do something with that.” So I basically wrote a package that basically has all that emoji in it, so you can use it in your applications. So that’s where a lot of the games that I wrote for the tutorials use that package. But somebody out there could write something like that, that developers could use. So even if you’re not very good at programming, you might be really good at design or drawing, and you can create these kind of assets.

I mean, all those emoji, I never could have done. Anything like that. Right. There’s no way I’m being able to draw those. I can draw a circle, that’s about it. But these emoji which are so good, I was like, right, they’re really, really good and they’re open source, let’s do something with them. So someone out there could have that kind of skill that a developer could take advantage of. I think the games only look as good as they do because of those. The code might be fine, but I can’t make it look good. So that’s where those other skill sets can come into play. That’s where you can sort of contribute something. Even if it’s not code, it could be something that a developer could use as well.

Jamie : Right, I see some interesting stuff. Okay.

We’ve mentioned it a few times and you yourself have mentioned it in our last example as well. We are going to talk about the Windows App SDK, but we’re not going to go into a huge amount of detail. What I’d really like for people listening, we’ll get a link directly to it in the show notes. But you’ve done an episode on Windows App SDK for your show, haven’t you?

Peter : Yes, I did. So I covered it back then, mostly because the reason why we’re talking about it today as well is no one seems to talk much about Windows App SDK. You hear about the other platforms like [.NET] MAUI and Blazor and stuff, but it’s like the bit of the outlier that doesn’t get the sort of light shone on it that it should. So it’s really great to be able to talk about it.

Jamie : Sure, yeah. So we’ll get a link and throw that in the show notes. So definitely after you’ve listened to this episode, go back and listen to that because you’ll get more background detail.

But yeah, like I said at the beginning of the episode, I feel like there’s this big push for, “wow, we can finally do .NET in a supported by Microsoft Way on a non Windows platform. Let’s move everything to the non Windows platform.” And I don’t feel like there’s a huge business reason as to what. Like moving things to the web I get right, some things work really well if you move them to the web. But if you’re communicating with a USB device that’s plugged into your local machine, creating a website that talks over the over HTTP to a device plugged into your laptop, not necessarily the best way to do it, and especially if we mentioned it earlier on, right? Change the details ever so slightly. If everyone in your company is running Windows hardware and you build an app for macOS, how are you going to test it? Right.

Peter : Yeah, exactly. Sometimes it’s appropriate to write a Windows app.

I mean, fair enough, you might want to write a cross platform application that might make sense to you. So something like .NET MAUI or even Blazor, if you want to just keep it in the Web. But there’s a lot to be said about Windows development. Yeah, as you say, you might want to speak to a piece of hardware. You might not be able to pull it off with something like WebAssembly. So yeah, to be able to use like the native Windows stuff, you want to make your application look like a modern Windows application. You want it to have all the cool effects. You want it to have the acrylic effects or the micro effects where it has that kind of glassy look. Or you want to be able to interact with the widgets. You want to have a widget for your application because there’s widgets in Windows 11. You can also have those and have a Windows App SDK application interact with those. So it gives you a lot more of the Windows platform lights up. If you’re using the Windows App SDK.

And if your target is Windows, then it makes sense to choose the Windows App SDK to build your application with.

Jamie : Oh, absolutely. I was talking to someone just yesterday, I believe - so this is a while ago, if you’re listening to it on day of release. But I was chatting with someone in person just yesterday who was like, “why do I need to build an app with Windows Forms? I can do it in .NET MAUI.” And I’m like, “okay, cool. Absolutely. But also, how fast are you with Windows Forms? Right. I can go file new Windows Forms and drag and drop a bunch of controls onto the Windows form, double click and it’s handling all of my events for me. I can actually get to the actual gubbins of doing the actual thing very fast.” Now, .NET MAUI may have that ability? I don’t know. But I do know that Windows Forms has had that ability for about 20 something years.

Peter : Exactly, yeah, yeah, exactly. When I remember doing it, when it first came out, I mean, it’s basically that idea of rapid application development, the idea you could drag and drop a UI and get something working very quickly. That was the promise of things like Windows Forms to basically do that. And it still can do that today with Modern .NET.

It sometimes just makes sense to target Windows. Yeah, there are reasons to target other platforms, but if you want a rich Windows app that only runs on Windows, it makes sense to write in something that targets the broadest set of Windows that you can. Those other ones have to make compromises because you can’t do everything on every platform. You may be able to do platform specific code, but it gets difficult and complicated to do that. You just want to build something, get it working, distribute it in Windows, run on Windows, then that’s where the Windows App SDK comes in, basically.

Jamie : Absolutely. And if you architect your app well enough, it won’t matter what the front end is running in, right? You can swap the front end at any time as long as you adhere to those API contracts in the same way that we would with a web app, right?

Peter : Yeah, exactly.

I mean, basically if you like, you can use Windows App SDK as a stepping stone so you can get your Windows applications there first getting using that modernized stuff. And then you can bring it to .NET MAUI and bring those specific features to that particular target and then have a much broader set of targets on iOS or Android. So you could still do that. It sort of gives you that choice where I want to be still fully Windows, but I want to kind of go in that direction, but I don’t want to go all the way to .NET MAUI. That’s where it can sort of come in and it’s always being updated, there’s always new features being added because unlike the older stuff, they were tied to operating system updates. So if there was something they added to Windows, in order for the SDKs to support that, they’d have to wait for a Windows update. So you want to add something new, you’d have to have a Windows update with Windows app SDK, it’s completely decoupled so you don’t have to wait for an operating system update to gain any new features that the other applications might be using. So that makes it a lot easier. You’re going to benefit from the same functionality that’s available that Microsoft can use in your own applications.

Jamie : Absolutely, 100%. And personally I’m all about using the technology that fits the problem that you’re looking at. And we’ve said it a whole bunch of times, so I’ll stop harping on about it. But if your audience is Windows users, why not start that?

Peter : Yeah, exactly. And I think that’s the simple fact that gets missed with… there’s a lot of talk about the cross platform stuff, but just not enough about just write a Windows app if that’s where you’re going.

And as I say, you get a lot of the benefits of hooking into the really cool features of Windows 11 that you have there that you can leverage. You can leverage that in part or in whole. It’s really up to you. And it’s still Modern .NET. You can still use the latest version of .NET with Windows App SDK, like the older platforms that might be more limited, you benefit from all of that extra functionality that you get. So when the next version of .NET comes out, that’s going to be supported and so on.

So you’re not having to compromise with .NET, unlike with UWP, which is still around, that is stuck where it is. It doesn’t benefit from the latest version of .NET. So that’s a good migration. If you’ve got a UWP or Universal Windows platform app, you can migrate that to Windows App SDK and then you’re going to immediately be able to use the latest version of .NET, which is something you can’t do if you stick with it.

Jamie : Yeah, so we’ve talked a little bit about it, but I haven’t really had a chance to stop and actually allow you to talk about. What is Windows App SDK? Is it something that I include in Visual Studio when I install it? Is it a .NET package I pull in and then on top of that, as a follow on question, what am I building with it? Like, am I building a WinForms app and then I’m just pushing a button and it deploys it for me? What’s the technology used?

Peter : Yeah.

So if you want to get started so if you’ve got Visual Studio already installed or you’re installing it, there’s basically the workload for that is the desktop environment. There’s the .NET desktop environment workload. And then under there, there’s an option for the Windows App SDK C# template. So that might not necessarily tick by default. So if you just tick that either in a new installation or a modified installation, then you’ll get the template. So when you create a new project, you’ll have a blank application that you can add. They’ll all be described as being Win UI three in desktop because Win UI is what basically Windows App SDK uses itself. So people might have heard of Win UI. Basically, Windows App SDK allows you to leverage that. WinUI is also used in .NET MAUI and things like the Uno platform as well. So it’s kind of that when you’re targeting Windows, win UI is what it’s actually using. And then you can basically create an application that way. And then you can also have it set up so it can be distributed on the Microsoft Store. So if you’ve seen that, you can have apps on the Microsoft Store, of course, but you can also have a standalone installer, so it supports MSIX.

So you can basically have a standalone installation experience. You can just stick down a USB stick, basically give it to someone, and they can install it on their machine that way. So you’ve kind of got the old school method, if you like, or the modern Store method. It’s entirely up to you. You can pick whichever way you want to distribute your app that you want, wherever makes sense for your application.

Jamie : Basically, you can choose nice, because I remember the one of my first programming job was building a Windows Forms app - it was the one I kind of talked a little bit about earlier on - Windows Forms app that communicated with a USB device and did some stuff. And I had to handwrite a script, I think, for InstallShield to grab all of the files and install them in the correct places and set up registry keys and stuff like that. Whereas I don’t think we use the MSIX stuff. So I feel like that was a later version of .NET framework than we were working on. But if I could have used that I totally would have because writing and keeping this script up to date was dreadful.

Peter : Yeah, I mean, installation scripts are always the hardest thing. I know I had to for a project, I had to write a custom installer because there were some particular requirements and it’s not an easy thing to do. The one thing developers don’t want to write is an installer because it’s so difficult. But MSIX is pretty much there for you.

So you basically just get it’s almost like the old MSI, but a bit more updated. So you can either have your application be framework dependent, so that way the machine has to have .NET installed, but the installer can help take care of that for you. Or you can have a self contained executable so that’s supported in Windows App SDK, so you might be familiar with that with the newer Windows forms. And that you can have a self contained executable that you can run your application on, that basically bakes in .NET as well as your application together. So the Windows App SDK supports that as well. But you can get an installer that puts in the Store and you don’t have to worry about it. Just let the Windows Store take care of the distribution of your application and the updates as well.

So that tends to be the easiest way. If you’re doing Windows App SDK, you’re probably doing Microsoft Store distribution because it’s the easiest way and you get the benefit of the updates and you don’t have to have a site to download it or anything like that. So that makes it a lot easier and easier for the people to discover your application as well.

Jamie : Right? Because that was going to be my next question, was like distribution, right?

Let’s say you and I work together on the world’s greatest no, it’s not the world’s greatest Windows App SDK app, it’s a tribute. Right? So we create the tribute to the Windows App SDK app, right? And we want to deploy it. And how do I’m assuming perhaps there’ll be like a GitHub Actions, perhaps - and you may not know this - but there might be a GitHub Actions template to generate something and I’m guessing you probably have to sign it with a key. But then I can give that to the Microsoft Store and it will handle distribution for me, right?

Peter : Yes. So it’s all done pretty much within Visual Studio. You might be able to script it too, but from what I’ve used, it’s been from Visual Studio. You basically publish your app. You know, if you’ve seen like other kind of apps in .NET, you’ll publish them. So there’s an option to basically publish your Windows App SDK and that will publish it to the Store for you, basically.

So you can either have a Store app already set up that you want to associate your project with, or you’re just creating a brand new one. And then, yes, you can supply a certificate. So you can do a self signed one for just testing. So if you’re just doing it locally, you can just do a self signed certificate. And that’ll work great for local testing and stuff. But you can also get a certificate that will then sign your app so when it’s for installation. But yeah, when you go through the Windows Store process, a lot of that’s taken care of, basically for you. So the app will be submitted and then they’ll be able to install it, and that makes things a lot easier for you.

You can also, for apps, you can target multiple processor types, so you can target Arm. So a lot of newer devices tend to be Arm now. So you can actually have what’s called an app bundle, where your application will have effectively a Win32 version, an Arm version that you can do that. So even though you’re targeting just Windows, you can target Windows on Arm or target Windows on Win32 as well. So you have some flexibility with the targeting there.


A Request To You All

If you’re enjoying this show, would you mind sharing it with a colleague? Check your podcatcher for a link to show notes, which has an embedded player within it and a transcription and all that stuff, and share that link with them. I’d really appreciate it if you could indeed share the show.

But if you’d like other ways to support it, you could:

I would love it if you would share the show with a friend or colleague or leave a rating or review. The other options are completely up to you, and are not required at all to continue enjoying the show.

Anyway, let’s get back to it.


Jamie : Right? And that helps to deploy your app to say, like, the Windows Surface tablets and those what are they called? The dual screen machines and stuff like that. What are they called? Oh, no, they were Android devices. Sorry, I was thinking the flippable phones, the foldable phones. Sorry, but no.

So what you’re saying is I can boot into Windows, fire up my Visual Studio, write the “this is not the greatest Windows SDK app in the world, this is just a tribute” Windows SDK app. On my Windows 64 bit machine, I can right click Publish and say, I want to publish for Windows 64 bit and for Windows Arm, presumably Arm 64, but whatever?

Peter : Yes.

Jamie : And the push a button and it ends up on the store. And I could tell all my friends, you’ve got Surface tablets to go download my “this is not the greatest Windows App SDK app, it’s just a tribute,” Windows SDK app.

Peter : Yeah, that’s pretty much it. I mean, you’ve got the obviously you got the options to add the metadata and stuff and the images to use in this door, but pretty much that’s the process. It’s basically a wizard. You just follow the steps. You’ll do some tests, some checks before it submits it.

There’s a couple of limitations. Like Windows Store apps, they can’t run it. Elevators, they can’t run as admin. So if your application has a specific reason to run as administrator, you can’t do it through the Microsoft Store. As far as I know. You could probably do it in a different way. There’s about to be a way around that. But there are a couple of limitations. The different distribution models have less and less limitations.

You can actually just do your own installer. I know we were talking about that before. If you want to do that there are any limitations at all, you can do whatever you want. So if you, for whatever reason, have a specific case where you have to install something, say the Store doesn’t allow, then you could do that in your own installation. So you’ve got the freedom to choose. You’re not just, right, you have to do this. You can package your application whichever way you want. The Store is like the sort of default one, if you think about it, but because you can use all of different ways of distributing an app in Windows, you can take advantage of whichever one makes sense for you, or you can use different ones depending on how you want to distribute it.

Jamie : I see. So then does that mean that I’m locked to certain versions of Windows that I can use the Windows App SDK for?

Peter : Yeah, so there is a minimum level it’ll go down to. So you can basically go down as far as Windows 10, version 1809. So as long as somebody’s got that version of Windows all later, then you can target Windows App SDK. Obviously, if you’re on Windows 10, you can’t do things like the Widgets because they don’t exist, but you can target Windows 10 still. If for whatever reason you need to support Windows 10 for your applications, you could do that, but generally you can support that the actual SDK itself supports from that point. So Windows 11, you’re safe with every single version, but you can go as down as far as that if need be.

Jamie : Right, okay. And if my understanding is correct, and it probably won’t be, because I don’t quite follow Windows version numbers, but 1809 was 2018, September, right?

Peter : Yeah. So they actually have reasonably sensible versioning back then. You’ve got basically, what, five years of versioning there. I think that was that the fall… I think it might be the Fall Creators Update, I’m not sure, but it was definitely there was a specific update where they put something into Windows which allowed the Windows App SDK to light up. So that’s the reason why it’s .NET a specific version, but pretty much Windows 11, you’re fine with every version from launch to all the current versions, so it’s not an issue. In fact, I think the main release for Windows 10 even is the top version, which is way beyond that one, and I think that was the version that’s being pushed out. So anyone who’s got Windows 10 more than likely has a version way beyond that one anyway, so you’d be pretty safe.

Jamie : The chances are we’re not saying I’m not going to hold you to it, and I’m asking the audience not to hold you to it, but the chances are that if you’re targeting Windows 10, the majority of people that have a Windows 10 device will be able to run your app.

Peter : Yeah, there’s a good chance because a lot of those versions won’t even be supported by Microsoft. So, yeah, if you’re beyond that version, yeah, you’ve got a good chance, but yeah, with Windows 11 you got nothing to worry about.

Jamie : Cool. All right.

So let’s say I do want to build “this is not the greatest Windows App SDK app in the world, it is just a tribute” Windows App SDK app - I’m going to try and get as much mileage out of that stuff as I can. I want to build that. What can I build with it? Right, is there a limit to Windows forms you will locked to you can have a form and you can drag some controls in. You can have buttons and radio buttons and toggles and text boxes and stuff like that. Is there a reduced set of controls I can use or is there like pretty much everything you can see on Windows you can do? Where does it sit?

Peter : Yeah, so there’s a lot you can do. It’s not quite like Windows Phones, but you’ve got all of the main controls basically. So you’ve got all the basics, you got your radio buttons, your list boxes, you don’t have to worry about those. Plus we’re in the XAML world where you can style those. So say you want to do a radio button and you want to make the radio button a different shape, like a triangle or something crazy like that. You could right, because you can change the styles of controls so you get all the benefits that that kind of technology is. So that’s fully supported, so you can make changes to the way controls look. So that gives you a lot of flexibility.

There’s not every single control that’s in Windows, but there’s a lot that are added. There’s also like community toolkits as well, so there’s a lot of extra functionality that gets added that you can use. And there’s also stuff that Microsoft themselves have developed and shared. The new file explorer. There’s one in Preview and that has like the pizza icon on it, I think to show there’s the Preview one and that one’s got some WinUI stuff in it. So Microsoft have open source some of the controls. There’s like a gallery control which is basically to show the photos view and that you can use that. You’ll be able to use that in your Windows App SDK application.

So there are more things using it in Windows and if they need anything specific that gets added so that’s a good sign. So if there’s something that’s missing it’ll probably get added. I know there’s something called Ink Canvas from UWP that’s a big ask for developers. That’s a particular one I wanted to see added and that should hopefully get added at some point in the future.

So if there is something missing it’ll probably get added. But most of the main stuff is there. So if you’re writing a pretty standard application or even beyond that, you’ll probably not hit any limitations. But if you do there might be a third party control or something you can use. If it’s a WinUI 3 control. It’ll work. So WinUI 3 is basically what it uses. So if someone’s got a control that supports that community toolkit or anything like that, then you can use it. So the only limitations are going to be with specific controls. But even the you can probably go third party and find something that delivers that functionality.

Jamie : Okay, cool.

So I guess there’s an elephant in the room and I’m going to ask a question about it and I have a feeling that the answer will be it depends. Now folks who are listening in, peter knows the question I’m going to ask him. I’m not going to be nasty and dropping the question he doesn’t know about.

So okay, I’ve got a green filled application, right? And I’m being asked maybe I’m the CTO or whatever, or I’m the project manager or I’m the decision maker for this project; and I’m being asked, “should we use Windows App SDK or should we use .NET MAUI? We’re only going to target Windows anyway. Is there any benefit in doing .NET MAUI?” Right? What’s my stock answer to that? I guess it depends. But what would you say if you were in that position?

Peter : It’s a really good question. I mean it’s like as a greenfield application, you’ve got that freedom of choice.

But the Windows App SDK is just going to give you a lot more easier coverage of the Windows operating system itself, the features that it supports. With .NET MAUI you’re going to get those benefits of going cross platform, but there’s going to be some stuff that is going to be a little bit more difficult to do. Say you wanted to do a Windows 11 widget integration that’s going to be a bit more difficult to pull off. Whereas that same Windows App SDK that’s quite straightforward to integrate.

So yeah, if you want to basically hook into those features of Windows, you’re betting on Windows, you’re wanting to run your application on Windows 11. You want to make your application look like a Windows 11 app, as close as you want to make it look really nice when you use all the effects, all those nice glassy effects, that’s where Windows App SDK would make sense. .NET MAUI is going to give you some of that, but it’s going to compromise a little bit and you’re going to have to work a little harder to get something to work.

But as we said before, you can go with Windows App SDK and the you could go to .NET MAUI because then you’ve made the jump. You’re using the latest version of .NET. You’re using XAML. You might need to tweak it because it’s not exactly the same as what .NET MAUI uses but it’ll get you that way. So yeah, it depends one but I think for a Windows app, Windows App SDK just makes sense.

Microsoft just launched an app recently. It was the Dev Home experience that they announced that Microsoft build, that’s a Windows App SDK application. So that gives you an idea of what you can use there. They did some clever stuff. They’ve actually got widgets in the application itself. They actually built a widget dashboard into the application and it uses exactly the same widgets as the operating system does. So that was a pretty cool use case there. That was a bit more unusual, but that was quite a high profile application.

They didn’t mention Windows App SDK by name, but it definitely is. That was the first thing I did when they announced it is go to GitHub, check the repo and see what the csproj said. It’s like, “right, what are they using?” Because that’s usually the guideline. “What are Microsoft using? Is it a .NET MAUI app? I don’t know."

So I went and had a look and that was the first thing I checked and I was pleased to see that it was indeed a Windows App SDK application. So Microsoft are producing applications with it and also were others. Apple, I think, their new Apple Podcast application. That’s a Windows app SDK application. So there are a lot of companies out there who are choosing if they’re producing Windows native applications, then they should use Windows App SDK. It’s like almost like a no brainer because with Winforms you’re not going to get some of the nice effects. You can use certain things, but you’re just going to come into limitations. The Windows App SDK just gives you the broadest set of features from the current version of Windows and if it gets added to, there’s basically an update every few months where they’re adding more and more features and a lot of that can be community driven. So there’s something particularly that you want them to add, like the in canvas. You can ask them. I certainly have done that myself. So it’s like it gets it on the radar.

There’s like a particular thing you need that was in UWP for example, and they don’t do it, ask for it. That’s the point. There’s community standards on a regular basis that they share on YouTube, for example, where the talk about what’s going into it, what’s the roadmap? They talk about a lot, but only in certain areas. That’s why I’m here basically to say you should definitely be for Windows native apps. It’s definitely what you should be using for a modern application experience. It’s definitely going to deliver the best experience you can get for a Windows application at least.

Jamie : Right, okay. And I suppose, other than having to rearchitect the view part of the app, is there anything inherently stopping me from, say, let’s start on Windows App SDK to build out my Windows version of the app, and then maybe we get some funding or there’s some proof that there is a business need for a macOS or an iOS or an Android version of the app. It won’t be as easy as this, I imagine, but I can just swap out the Windows App SDK parts for .NET MAUI if I want, or indeed perhaps for Project Uno or things like that. Because you were saying we’re in XAML world, right? So we should just be able to with minimal hair pulling out, stress inducing sprints. It should just be hopefully a case of, “well, we’ll just swap some references, do the tidying up, we’ll need to rewrite parts of it. But guess what? Hey, we’re now on .NET MAUI,” or “hey, we’ve gone from .NET MAUI to Windows App SDK.”

Peter : Yeah, exactly. It’s only a shame that the XAML flavors are different. If they both use the same XAML, it’d be even more straightforward. So .NET MAUI kind of uses the sort of Xamarin flavour of XAML, so it’s kind of inherited that. Whereas Windows app SDKs kind of took all the best bits of all of the XAMLs that have gone previous, it’s took the best bits of the WPF, they took the best bits of Universal Windows platform and combine the together. So that’s the only real surface you have to worry about the code.

You’re all right, you’re going to be using .NET seven or soon .NET eight. That’s going to be the same in both. And if you’re not using too much platform specific stuff, that makes your job even easier. So you’re right, it’s just going to be a little bit of refactoring of your XAML. And most of the controls are pretty much the same, most of the basic ones. So that’s the only surface you’d have to change whichever direction you’re going. And that then does give you the flexibility to go with .NET MAUI or the Uno platform or even Avalonia as well, which is kind of more closer to WPF. So, yeah, you’ve got that choice. The only rewrites are going to be to the UI side, the actual logic, the main part of the code, as long as that’s .NET is going to be fine.

Jamie : Right.

For a core group of there’ll be a core group of developers out there who are going, “wait, if Apple is using it, I should use it too.”

Peter : Yeah.

Jamie : Whether that’s the way that they should think about it. But I was very interested when you said Apple’s podcast app for Windows. I probably misinterpreted what you’ve said there, but if they’re using it for some of their apps for Windows, then it makes sense that people would be interested in using them.

Peter : Yeah, exactly. I mean, they obviously got like their iTunes app, which is totally different, but they have spun off some apps and they talked about that. I haven’t got them myself because I think the might be us only at the moment, but there’s definitely people doing Windows App SDK. I think it’s almost like it’s a little bit quiet.

The people who use them, Microsoft clearly do. We’ve got things like Dev Home and there’s plenty of other applications, I’m sure, inside Windows itself that are written in Windows App SDK, but we don’t tend to hear that as much. You tend to hear that, “here’s a Blazor example, here’s a .NET MAUI example,” but we don’t tend to say, “hey, here’s this dev home, that we use Windows App SDK.” That would kind of I think that’s probably where the doubt comes in, is, okay, if it’s not talked about, what does that mean? And it has meant that in the past, I’ve got to be honest, it has meant that in the past.

I mean, Universal Windows platform was a classic one where there was a lot of investment in that platform. I certainly invested a lot in myself into that platform and it was dropped. It became what we have today, Windows App SDK. And it’s a little bit more limited than what that one was. But also the idea of where Windows is has also changed. Back then, there was lots of different places where Windows was to live, Xbox or whatever, but now it’s like leveraging the power in one place. The strategy is Windows 11. Future versions of Windows are desktop, laptop, that kind of device. So we should be writing apps accordingly. So that’s where that change happened, basically. But yeah, those are the key reasons, basically.

Jamie : Cool. Okay, so I’ve got a bunch of links from you anyway, but I wondered, you mentioned earlier on if there’s something not in the Windows App SDK, go tell them about it. So you said that there are weekly stand ups, like community stand ups that they do, but also, I guess that because it’s the hip new Microsoft, it’s all open source.

Peter : Yes, the Windows App SDK is on GitHub. I know there’s some internal stuff that’s probably closed source, but the main stuff is definitely there so you can get to see the roadmap and stuff like that. So I think they probably do take issues like with other projects they do. So I know they’ve definitely taken feedback, because there was a couple of things that they added that were specifically asked for by the community. So they’ve got their GitHub. That’s the best place to start, really.

But yeah, definitely check out their stand-ups as well because I’ll give you an idea of where it’s going. If there’s something that’s about to go in that you need, you can sort of keep an eye on it. And they have preview versions as well, so if something’s about to come out, you can try the preview version, try it out and give them feedback as well. So there’s definitely that it’s being developed in the open, just like we were talking about, that things are shared in the open. They’re best shared in the open. The Windows App SDK is as well, it’s as open source as it can be, if that makes sense, because it’s using a lot of low level Windows stuff. But yeah, there’s definitely an opportunity for dialogue with the community, which is really good.

Jamie : Okay, cool. Well, like I said, I’ve got some links from you anyway, so I’ll put those in the show notes if you’re interested in learning more, definitely check out the show notes. You’ve mentioned there’s the GitHub, you’ve mentioned there’s the stand ups. What about if I want to get my head around how it all works? Are there like tutorials? Like, have you written some tutorials?

Peter : Yeah.

Jamie : Where do I go to start my journey?

Peter : Yeah, so if you want to get started, you can actually just I’ve got my own website, so on tutorialr.com. So that’s basically where I have all of my tutorials and workshops. I’ve got about 50 tutorials there at the moment. There’s also Getting Started, which basically tells you how to get what to install. So if you weren’t sure what to install or how to actually just basically start a new project with Windows App SDK, then I go through every step, everything you need to do, including turning the developer modern on all those kind of things. So that will get you to the point where you can actually create a project.

And then I basically go from Hello World all the way through. So I’ve got basically basic examples, just getting stuff working, showing off certain features like how to do the badge notifications. You can show a little badge notification on the taskbar or show a toast notification. I’ve got examples on that and even got some games as well. So there’s like “noughts and crosses” and even a darts game as well, which was kind of a fun one to put together. So it was basic, but it was just to show off the ideas of these are the kind of things you can do. And also many of the examples using those affluent emoji as well because that fits in really nicely with Windows 11 because it uses those emoji as well. So, yeah, you can get started on my website, but there’s plenty of resources on Microsoft site as well to learn Windows App SDK as well.

Jamie : Awesome. Well, I’ll make sure to put all those links in the show notes as well. But what about if someone was to okay, so firstly, where do we go to find your podcast? And then what about keeping in touch with you? Do you have a website for the podcast? Are you on Twitter? How can people reach out if they’re like, “hey, I heard this guy called Peter on the podcast and I want to get in touch because he sounds like an awesome guy. How do I get in touch?”

Peter : Yeah, so I’m pretty much rogue planetoid everywhere. So I’ve got my website rogueplanetoid.com and that’s where I post articles and posts and also my podcast lives there as well. So the Rogue Planetoid Podcast, if you’re not sure where to find it, just go to rogueplanetoid.com and you’ll find it there. But it’s pretty much wherever you listen to your podcast, really. Spotify, YouTube, that kind of thing.

So, yeah, everything’s there if you want to get in touch. I’m on Twitter. So, again, @rogueplanetoid. So twitter.com/rogueplanetoid, just send me a tweet. I’m more than happy to help out. If anyone’s got any specific questions or you’re not sure or just want to have a chat about Windows App SDK or anything else, then I’m more than happy to talk about that. And, yeah, you can find me there. And I’m on GitHub as well, also as Rogue Planetoid, so you can also see some of my code there and the other things I’ve been up to as well.

Jamie : Cool. Okay. So I’ll put the links to that in the show notes as well. What about so you mentioned we said right at the beginning that you and your wife are podcasters. Let’s talk about where, because people will be listening to the beginning of the show going, “that sounds like a great podcast. Where do I go get it?” So where do we go find your wife’s podcast?

Peter : Yeah, so she’s the proper podcaster. I’d say she’s the professional, I’m just the amateur. But, yeah, her podcast is called Scottish Murders. So the website for that is Scottishmurders.com. And that one you can also find wherever you listen to your podcast. So there’s plenty of interesting cases there that people have unfortunately been murdered who are either in Scotland or Scottish. If you like your true crime podcast, then that’s definitely worth checking out.

Jamie : Okay. And if folks aren’t as inclined to listen to the true crime one, there was a second podcast that your wife does, right?

Peter : That’s right, yeah. She just recently launched a bit of a brighter podcast, so it’s called a Scottish Digest. So that one basically talks about places you can go and visit in Scotland. So if you’re fancying a trip up to Scotland, then you can basically listen to those episodes. It’s just started, but there’s a few episodes covering a few places in Scotland and things to do as well. So if there’s an event that takes you fancy, you can find out about those and just basically what’s going on in a few places in Scotland you might not really know about. So that one, again, you can find wherever you listen to your podcasts.

Jamie : Awesome. Well, thanks for being on the show, Peter. I have a hankering to go see if I can build a Windows app, SDK app now and call it The Tribute to see exactly a little bit extra length of life out of that stupid joke I made.

Jamie : No, I’d love to see it. No, that’s I mean, anyone writing any more apps, windows app, SDK is not necessarily a bad thing. So, no, it’d be good to see more people using it. So the more people use it, the better it’s going to get. So everyone benefits, including me. So, yeah, it’ll be good to see that cool.

Jamie : Cool. Well, thank you for being on the show, Peter. I really appreciate it.

Peter : Thank you very much. Thanks for having me on.

Jamie : No worries.

Wrapping Up

Thank you for listening to this episode of The Modern .NET Show with me, Jamie Taylor. I’d like to thank this episode’s guest, Peter Bull, for graciously sharing his time, expertise, and knowledge. Make sure to check out Peter’s podcast, “Rogue Planetoid” for some interesting insights into the development space; and his wife’s podcast, “Scottish Murders Podcast”, if you’re interested in true crime stories - there will be links to both in the show notes.

Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of the interview. The show notes, as always, can be found at the podcast's website, and there will be a link directly to them in your podcatcher.

And don’t forget to spread the word, leave a rating or review on your podcatcher of choice - head over to dotnetcore.show/review for ways to do that - reach out via our contact page, or join out discord server at dotnetcore.show/discord - all of which are linked in the show notes.

But above all, I hope you have a fantastic rest of your day, and I hope that I’ll see you again, next time for more .NET goodness.

I will see you again real soon. See you later folks.

Follow the show

You can find the show on any of these places