Anmelden

.NET Rocks!

XAML.io with Giovanni Albani

Donnerstag, 22. Oktober 2026 · 57 min

MP3

Shownotes

OpenSilver evolves! Carl and Richard talk to Giovanni Albani about how OpenSilver continues to help folks migrate Silverlight apps into a sustainable model not dependent on the plug-in - but now the focus is on WPF! Giovanni talks about XAML.io and its ability to turn WPF applications into WebAssembly apps that run in the browser with no plug-ins and no HTML or JavaScript coding required. The conversation also explores the role of AI in software development and the tooling XAML.io is developing to help senior developers add guardrails and tooling around domain experts using these tools to build secure, reliable software.

Transkriptvom Podcast bereitgestellt · Zeitmarken springen hin

How'd you like to listen to. NET Rocks with no ads? Easy. Become a patron. For just $ 5 a month, you get access to a private RSS feed where all the shows have no ads. $ 20 a month will get you that and a special. NET Rocks patron mug. Sign up now at patreon.dotnetrocks.com. Hey, and welcome back to. NET Rocks. I'm Carl Franklin.

And I'm Richard Campbell.

And we are here for episode 2025. Count them up, brother.

Yeah. So it's been... We're almost at the end.

25 weeks since we were at the MVP Summit doing the 2000th show.

Yeah.

Well, minus time shifting, because that's complicated. But yeah, okay. 25 weeks.

Yeah, yeah, yeah.

Okay.

Right.

As of this recording, anyway.

Yeah.

Right.

So as we normally do, we will start with the top news stories of 2025 from Of course, that was dominated by Donald Trump's return to the White House and major changes in American foreign and domestic policy and continuing wars in Ukraine and Gaza, economic uncertainty, you know, fun.

All the good stuff.

Yeah.

I would point out that's also when Mark Carney got elected. And one would have to say it's because Trump got elected.

Yeah.

You know, we in Canada, everyone was tired of Justin Trudeau. I know he's very popular abroad. He was not as popular at home. He was on his third term. term and he was pulling behind his party yeah so you know imagine being so unpopular that people like the party more than you and so crazy i mean he did the right thing and he stepped down and they there was a nomination process i had i had some candidates i was interested in so forth carney was not on my radar but uh and polyev who is the leader of the conservative party seemed to be the shoe-in for the next election, like it was inevitable. Because normally when a leader steps down like that, it forces an immediate election, right?

And so Carney wins the nomination in Canada in March. And get this, for an American especially, that kicks off a federal election which begins and ends– in 45 days.

Why don't you.

Just chew on that for just a minute? Imagine having an entire federal election over in like five weeks. Yeah, that's great. I mean, I can't stand it. Not only is it repulsive that our candidates spend all this taxpayer money on their campaigns, but their campaigns are just illusions you know they're just like how can we yeah they have so much time yeah to craft so much garbage and it's never about it's it's all been lately it.

Hasn't been about policies and about uh well some of that but broad broadly speaking.

No and believe me we battle with our you actually talk about policy you're just being a populist in canada too but the other thing is like campaign finance that works. There's very strict limits on money you can spend and so forth. And it's quick. It's over. So anyway, that's how Mark Carney gets elected.

Thanks, Trump.

Wouldn't have happened without Trump.

Okay, so Israel and the United States struck Iran June 13th through the 24th. Pope Francis died and the first American Pope was elected. Pope Leo. Pope Leo.

Leo the 14th. Chicago fan. And he is from Chicago. And he sounds like it too.

He does.

I'm not Catholic, but I have done some work for the Vatican. I was an admirer of Francis. I thought he was an extraordinary man. He did some cool things. But how do you resist a Pope Leo, man? That's awesome.

I know. Yeah.

U.S.

Immigration crackdown and mass deportations at the hands of the Trump administration. Yeah. Los Angeles wildfires. Oh, my God.

Oh, man.

The Palisade fires.

Palisade.

16,000 structures. Unbelievable.

Just terrible. And this has become an annual thing over here. Yeah.

No. Up here, too, man. We lost structures this year. And normally, we're pretty good. You know, there's a lot of open space up here in BC.

Yeah.

If we can't cut a fire line ahead of a fire, something's really wrong. But, you know, we lost.

Yeah, that's right. We've been enjoying your smoke every year.

Oh, my God. You know, Quebec's on their, what, third hundred year fire in five or six years. Wow. Can I tell you?

You might want to talk about this, but in Myanmar, there was a deadly earthquake. 7.7 struck central Myanmar.

Massive.

That was terrible. It went all the way to Thailand.

Yeah. It's a huge belt with everything else that's going on there. Very challenging.

Uh, there was a deadly midair collision in Washington, DC in January.

Oh, a helicopter and a. Yeah. Airliner on. Yeah. Yep.

And.

Very unfortunate. Yeah.

That's very unfortunate. Uh, let's see. I mean, there's a couple more things, but that's, that's what I got.

Okay.

What do you got in space and tech?

2025 is a record year for launches by a lot. 330 launches, 317 successful. That's just the bigger than anything. Uh, About 165 of those are Falcon 9 flights, of which that 122 of those are just Starlink. So like 75% of all SpaceX flights were supplying Starlink. And of the 181 launches that happened out of the U.S., 170 of them were SpaceX. There's also five Starship tests. China had a record year as well at 93 flights. I mean, it's a lot. It's a little over half of what the U.S. did, but it's a lot. I'll just hit a few highlights on those. In January, this is the maiden flight of New Glenn. This is Blue Origin, Jeff Bezos' space company, finally flies their big, big rocket, the seven-meter rocket. I would argue the rocket Elon could have

built ages ago instead of going straight to Starship. It's an impressive machine, real huge amount of lift. The initial payload was just a small satellite test payload, but later that same year, they will do a much more important payload. In March, the first fully commercial lunar landing, Blue Ghost Mission 1, lands towards South Pole of the Moon. So that's, you know, no government involvement whatsoever. Also in March, our friends Butch Wilmore and Sunita Williams, they were the pilots and commander on the Starliner flight in 2024, who were not allowed to come back in Starliner. Starliner came back empty.

Finally get their ride after nine months on a SpaceX Crew Dragon. They do a shuffle of the– Seats on the Crew Dragon are supposed to be four people come up. Only two came up so that Sunita and Butch could go down. And as you mentioned in the previous show, they had a free nine months in space.

They were eager to stay, but I got to think they were glad to be home.

Well, and nine months is a long time to be up there. That's a year plus worth of rehab. It's normally six months. Yeah, but I'd also point out that in that nine months, it's not like they were sitting around with nothing to do. Sunita Williams, during that time, broke the record for the most time spacewalking for a woman worldwide. Wow. It's 62 hours, so that's like 12 spacewalks, something like that. Good on her. In April, Fram 2, I mean, this wasn't as much a commercialized or announced mission in many ways. This was a private flight. It was Crypto Bro who paid for this flight, but he did a polar orbit with a crew dragon.

Okay.

So instead of flying out to the East and going somewhat equatorial, this was going complete, actually took off South out of, out of, uh, uh, and, and, and orbited that way. Here's the weird one, Carl. We'd never had a crew fly over the poles before ever. That's so weird.

Yeah.

It's just something we've never done before. So he did something completely unique. No human has seen the North and South pole from orbit.

Wow.

Not like that. Uh, in May, uh, China's Tianwen-2 is an asteroid sample return mission takes off. So China wanted to get in on the sample return business and, again, expand their skill set. In June, the Hakuta-R mission number two, this is JAXA's lander on the moon, carrying both a lander and a rover, did make it to the moon, just with a little too much vigor. So impacted violently, nothing survives.

Mm-hmm.

In July, we detect our third interstellar asteroid. We name it mysteriously 3I, as in three interstellar slash Atlas, Atlas being the name of the telescope that detected it.

And I remember the conspiracy theories and speculation of an alien craft that just dominated the social media.

People lost their minds. Well, every time, this is, like I said, only the third one. You have to say, why do we keep seeing these now? New instruments.

Yeah.

They've always been there. We just didn't see them before. We now have the tech. to actually notice that there's stuff blasting in and out, flying in and out of our solar system. And it takes years. They're moving really very fast. And that's how we know that they're interstellar, because they're at a velocity where it's like there's no way the sun can capture that. It's just going to keep going. In November, the second launch of New Glenn is the one that carried the cool payload, the Escapade mission to Mars. This is a pair of spacecraft creatively named Blue and Gold. And yes, that's after the Star Wars X-Wing squadrons. uh their jobs who measure solar activity on mars they are not taking the direct route to

mars which you get them in six months i'm taking an indirect more of an indirect route uh using earth as a slingshot so they're not expected to arrive in mars until 2020 okay in november also in november we have a normal crew rotation for the tian shen uh space station the chinese space station Something interesting happens. So Shenzhou 21, bringing a new crew up, arrives. The old crew on Shenzhen 20 starts prepping their capsule return and notice there's a big crack in one of the capsule windows.

So the presumption is micrometeoroid damage. They decided the damage is severe enough that it is not safe. And so what do you do? You're kind of stranded, but you're not stranded. How do we do this? So the Chinese government decides to return Shenzhou 20 empty. And the Shenzhou 20 crew actually take the Shenzhou 21 capsule and return with that, effectively stranding the new crew on the station, but only for about 11 days. Like there was no escape for them at that particular moment. But now the Shenzhou 22 capsule is prepared early and sent up empty so that they.

Have something going around that year. It was an interesting choice.

It was tough. It was a tough year.

Yeah. Yeah.

And speaking of other tough things in space, also in November, I don't normally talk about Baikonur. This is the Russian launch platform that does all the progress in Soyuz missions. There's only one. This is what they call Site 31 for MS-28, which was a Soyuz launch. There's a service table. And saying table grossly underestimates the size of the thing.

Imagine a machine large enough that it can slide underneath the rocket to do all the work on the rocket. The actual lighting systems are so useless. They're very archaic. This rocket's been around an awful long time. That table somehow breaks loose during the MS-28 launch. sending it into the flame trench and wrecking it, which is weird that it even happened. But also it's like, that's their only launch platform. They don't have a backup. Wow. So now at that moment, the Russians were no longer able to support the space station with Soyuz or Progress cargo supply capsules.

What happened to sites 1 through 30? Boom.

Now you're going to ask me what happened to preparation A through G.

Well, the thought had crossed my mind.

Or wd1 through.

39 or anyway 56 or 1 through 56 right 56 no i think all those sauces actually existed uh they will get it fixed by next march by march 20 2026 which is way faster than i thought was possible but at that particular moment we're like holy cow like this is serious you're gonna have to speed up crew resupply uh on the crew dragon side you're gonna have to add more resupply missions for Cygnus and for Cargo Dragon.

But they'll actually have it fixed up in about six months. That's what I got for space.

Tech?

Compute side's fairly short because, of course, it's 2025. It's all AI all the time, for better or worse. So I would argue the most deep-seek R1 in January is kind of the big one because this is, admittedly, China built this off the back of the other Frontier models. But it runs much more efficiently. The weights are open source.

It's very low cost. And so it's like, Hey, frontier level performance without frontier pricing. And at the time I thought nobody reacted all that strongly to it. It's like, ah, whatever, you know, Microsoft includes in the foundry. You want to use deep seek, knock it out. But in hindsight, from that point on, there's all kinds of pricing pressures going, right?

That's right.

You know, the, the, for the most part, it's like they start charging more and they start optimizing their models to decrease compute loads and so forth.

And people were kind of quasi predicting that open AI would go down, you know, in all these other frontier models.

Well, you know, the debate we always have here is which of these companies is Netscape and is going to disappear as the bubble ends and which of these companies is Google and going to be Ascendant. And I got to tell you at this particular moment, I think they're all Netscape. I think the only ones that survive this are the hyperscalers. And speaking of the hyperscalers, you were talking about what happened in 2025. It's the data centers, man.

Amazon's in for $ 130 billion. Google starts off being in for $ 75 billion and ups it twice up to $ 93 billion. Meta's at $ 70 billion. Microsoft kind of hides exactly how much they're spending because every time they announce more spend, the stock price goes down. So they kind of create these financial structures. The current guess is that in 2025, they spend $ 190 billion.

Microsoft?

Yeah.

Wow.

Building data centers, you know, and all projecting more for 2026. And the market starts to be repulsed at how much is being spent, right? Like, It's not just the rest of the world hating data centers, which is clearly happening as well. And we could talk about the relative merits of that. But the fact that the market itself goes, ah, that's too much money. And the response from the companies is not, okay, we'll spend less, but rather, okay, we'll cover up how much we spend. other ai news march gemini 2.5 pro out of google this is the model they called the reasoning model this is 2025 was the age of the reasoning model which is more of a how do i make it appear that the tool is thinking through how it actually comes to a decision it's

a little bit smoke and mirrors i remember a great post from a modi where he talks about oh no we already know what the answer is but now we're Asking questions of the answer to derive the reasoning. Right. That kind of thing. In May, Anthropic puts out Claude 4 and that whole 4 family, which by the fall, we all agree, it's like that's the one where how do you do software development without this stuff anymore?

Right.

It's just so impressive. XAI with Grok 4 in July, which if you haven't done enough porn in your life, that tool can help you. Did I say that a lot?

I feel bad. Or misinformation.

Yeah, there you go. And in August, we get GPT-5. I mean, this is so funny. It's less than a year ago, but at the same time, what was the big deal about GBG5? Well, it was supposed to be a more efficient model. It kind of landed softly. But you also remember that Altman initially led with, we're turning all the other models off. You're only going to use five.

And his argument was its efficiency. It's about that. But the bigger thing is he's dialed down the ubiquitousness of these models. That's the best idea ever and so forth. And so people who had been using the tool as a companion– which I do not recommend, were very upset.

Oh, you said ubiquitiness, but I think you meant, you know, sycophancy.

Yeah.

Obsequiousness. Yeah.

Obsequiousness.

Yeah.

I meant obsequiousness.

Yeah.

It's such a sycophancy. And still.

Yeah.

Well, that's the whole thing is there was such an outcry against it. He finally gave it in turn 4-0 back on. And I grabbed, for one of my talks, I grabbed this Reddit post about this person saying, you know, we've won. My baby is back. I'm crying right now. And I don't care if you think I'm crazy because I have my baby again. I'm like, ah, you need help. Yeah.

It's just scary for some folks, the impacts of all this. Right. And in the fall, Sonnet 4.5, I think that's the one we talked about in 2024 was also like this. It became very clear, the power development. But if you can play with Sonnet 4.5, you know how profound it is. And just to make sure that we don't leave everything else out in compute, I mean, we do get. NET 10, which is a long-term support version in November. That's C-sharp 14, F-sharp 10. How did F-sharp be that old? But yeah, F-sharp up to 10. Yeah,. NET 10 is a really great version. It's going to be around for a whole three years. Oh, and I always mention something in Quantum.

February of 2025 is when Microsoft actually shipped the Majorana 1 chip This is their topological qubit model. They're going to continue with that. It's one of those tricky– I'm impressed that they actually shipped it because, in theory, it's literally new science in that sense. It's a different state of matter to do topological qubits, but it's supposed to be more stable. It's very small, early days, so lots of testing still going on. And that's what I got.

All right, Giovanni, hang on there. We'll get to you in a second. But first, we have to do this thing called better know a framework.

Roll the music.

Awesome.

All right, man.

What do you got? So I got getdayframe.app. So this is Jeff Fritz's answer to a question a lot of us have. Why is my day scattered across a dozen browser tabs? So this is a Windows desktop app that Jeff calls your cognitive workspace app. One place where everything you think about all day lives together. Email, calendar, and contacts from your accounts. GitHub issues and pull requests. Your blue sky timeline. RSS feeds, weather, stock, watch lists, and notes.

In each module, you pick from a Windows Phone style rail of live tiles. That's right. That's right, Giovanni. Live tiles are back.

Live tiles are back, baby.

And then there's boards where things get interesting. You compose your own page out of widgets from any module. So your inbox, today's agenda, and your busiest repos share one screen. Or you build a board around one person and see their email, their posts, in your meetings in one place then pin it to the rail as a live tile of its own cool so under the hood dayframe is a dot net 10 and maui blazer hybrid blazer for the modules a win ui shell with telerik for the native chrome and every module its own razor class library plugging into a shared core So if you've wondered whether Blazer Hybrid can carry a real hours a day desktop app, Dayframe is the proof. And you can watch it being built live on Jeff's streams on twitch.tv slash csharpfritz or youtube.com

slash csharpfritz. And I would say at the time of this recording, there isn't bits that you can download and play with. But he thinks that by the time this comes out on the 22nd, that it will be there. But anyway, it's getdayframe.app.

Awesome. And he's with Telerik these days, too.

Yes, that's right.

Yeah. Yeah.

Yep. Not surprised to use some Telerik controls. It'll also be a tour de force of what Telerik can do for you. Yeah, exactly.

It sounds good. So, congrats, Jeff.

Yeah.

Richard, who's talking to us?

Yeah.

Oh, I jumped in the Wayback Machine this time. My goodness. Episode 1095. So, February of 2015.

Wow.

The show called Migrating from WinForms to WPF with Phil Japixi.

Oh, yeah.

And to be honest, Giovanni, I looked at some of your past shows and there were a few comments there, but they're mostly things like, wow, Giovanni's awesome. And you already know that. So I need to go a little further. Because this comment comes from Joel Hewlin, who says, I think I fell in love with WPF the very first time I used it. I really liked the design approach of XAML markup. It reminded me of HTML, a territory far more familiar to me than WinForms. was already proficient with WIM form. So to stepped away from it long enough to not feel like I was starting over with WPF, even though layouts are more the difficult part of WPF.

That's what drew me in the fluidity layout again, reminded me of web development, but I felt like I had even more control when I discovered that 3d could be used so easily and with such great effect, the deal was sealed. After my first application, I stumbled on prism introducing me to the particular flavor of the MVVM pattern.

But I think this is where WPF fell out of favor for a period of This is where I discovered the head-banging frustration that can be data binding. Yes. Yeah, I know. Straightforward data binding is pretty easy, but it can get complex really quickly. So, I also love Phil's analogy about Prism being the Sam's Club or Costco where you just want to buy a gallon of milk. There was a lot of formality to Prism going on in there.

Yeah, I think the only people that understood that binding were Billy Hollis and– Billy Hollis. Maybe Giovanni.

Yeah.

There's so much going on, it's a little disoriented at first. But however, I believed in the MVVM way of working on my applications, so I stuck with it. Surprisingly, a few years later, this prepared me for working with Xamarin Forms. Now, Xamarin XAML installation isn't exactly WPF. Oh, we know. There are some key differences. Even Visual Studio gets it too confused, sometimes causing oddball compilation bugs from time to time. However, the same flavor that makes this a tasty way to develop, you can implement the MVVM plan in a myriad of ways.

Take advantage of data binding and have that sweet, sweet markup. And they're rapidly adding new features to bring more parity to WF SAML information. This just goes to show the technology you learn today could be an unexpected gift of knowledge in tomorrow's innovation. And it was, because that was 10 years ago. Joel Hewlin, of course, old friend of the show, been on a number of times.

And AppDNexter.

But hey, Joel, thanks for your comment. And a copy of Music to Code By is on its way to you. And if you'd like a copy of Music to Code By, write a comment on the website at. netrocks. com or on the Facebooks. We publish every show there. And if you comment there and I read it in the show, we'll send you a copy of Music to Code By.

And if you don't want to wait for a Music to Code By for a comment, you can just get it. Musictocodeby.net. 25 tracks to keep you in a state of flow while you're writing code or trying to focus on anything. Very popular.

Yeah.

Okay, Giovanni, it's your turn. Giovanni Albani is the founder and CEO of UserWare, the company behind OpenSilver, which is an open source version of Silverlight, but so much more, and XAML.io, which we're going to talk about today. His work focuses on C-sharp, XAML, developer tooling, and the modernization of existing. NET applications. After years of helping teams bring Silverlight apps to the modern web, Giovanni and his team have expanded that work to WPF and are now building XAML.io, a browser-based. NET development environment with migration tooling, a visual XAML designer, and an AI coding agent. I can't wait to hear about this. Welcome back, Giovanni.

Thank you. Thanks so much for having me again in the show. Really appreciate it.

You're welcome.

Oh, yeah.

I mean, can we mention OpenSilver at least? What's the sort of state of affairs these days?

Yeah.

Like we talked together like five years ago or.

So, 2021. When the support was going to end for Silverlight finally, and you guys were catching the ball.

Yeah, yeah. And back then, we just finished supporting most of Silverlight in this OpenSilver framework. which basically replicates the API of Civilite, but runs on the modern web via WebAssembly. So it's the same. NET WebAssembly that is in Blazor WebAssembly.

Yeah, no add-in required.

Yeah.

And this new thing, XAML.io, uses OpenSilver, right?

Absolutely. Absolutely. And so, yeah, back then, we imported a lot of Civilite apps from enterprises to... And we moved to expanding the API coverage to WPF. So Sibolite has always been a subset of WPF. When they initially started the project at Microsoft, it was called WPF slash E for WPF Everywhere. And I remember back then, the. NET framework installer was like 200 megabytes and the Sibolite installer was 9 megabytes. So it was really a short, small subset that had the most used stuff. And so it's a natural continuation for us to expand from the Civilite API to covering the whole WPF. So, of course, there are some differences. Some features have been added to Civilite before being added to WPF. So then Microsoft ported some

stuff to WPF, like the Visual State Manager and other things. But generally speaking, Civilite has always been a subset. And so it's a natural continuation for us to expand to support the whole API.

And say what you will about Silverlight and how, you know, when it got canceled, for lack of a better word, so many people were upset. But we have always said that we thought that was the right move because it was a security issue. But the experience of running Silverlight apps in the browser was wonderful. I mean, it was just great. And it was very well received at the time.

Then it turns out that, you know, it was using... It was sitting on top of a system in the browser that was inherently insecure.

Yeah.

And a whole bunch of plugins went away, including Java and Flash. It wasn't just a Silverlight casualty, but the whole experience was great. I don't think anybody's going to argue that.

Yeah. The issue here was what Microsoft did, which was not building a bridge.

Yeah.

That's what Giovanni did. Give us a path forward.

Mm-hmm.

Yeah. So definitely it was not only civilized because Flash in particular with that thoughts on Flash letter by Steve Jobs. I think it was in 2010 where he said, never in my life there will be Flash on an iPhone. So then browsers stopped supporting it. And then progressively all desktop browsers as well, except IE, which continued to work.

with Silverlight. And in some way, even today, it.

Kind of works. I just talked to a SysAdmin friend of mine who's still maintaining a Silverlight app.

Yeah, to me, that's reckless. Dangerous.

Well, he's doing it through Edge IE 11 emulation mode. It's an internal application.

Yeah.

But, Yeah, he's getting really hard, and he's desperate to have that thing retired.

Actually, you would be surprised by, after so many years, how many companies still use Civilized. Every week, we get contacted by, and I cannot give names, but there are states, there are governments.

You would know these names. Legacy software is a big deal, man. I deal with it all the time. I get it. Yeah.

And like just a few days ago, we talked to the company who are still actively adding features to it. Like it's not like it's frozen code.

Coding in Silverlight.

Because most of those were used for internal apps.

Right.

I'm not talking about the Silverlight for the public, for small streaming and so on. But so those internal apps just kept working. And from time to time now, maybe a Windows update happens. might break our station. So recently there are a few KBs that break civil light inside IE mode. So we have kind of a spike right now of people contacting us because of this.

Yeah, they're struggling with, I need to keep that browser up to date because the vulnerabilities are serious. And the new LLM tools are turning up a lot of vulnerabilities. And yeah, I can see them breaking things. Do you know what they're still developing in, like tool-wise?

Yeah. They're still using Visual Studio 2015 because they're still in the last support. Not all of them. Some of them, they're using the latest versions with some unofficial extension, Visual Studio extension.

Okay.

But most of them, they use 2015. Yeah. Wow.

That's incredible.

Yeah.

But I see it. A 10-year-old version is what you need to do to keep it. on going.

Yeah, I mean, if it just works, they wonder why change something that works. And that's where we want to give continuity to their apps by allowing them to port them to the modern web without rewriting them, keeping the same code base, and also keeping the same UI because the end users, they don't want to learn something else.

Maybe they miss a feature. And so if they can keep the same UI, maybe modernize look and feel, that's very important.

So XAML.io.

Yeah, XAML.io, that's our latest thing. So basically, our main business model remains to help companies to migrate from Civilite and now to WPF, from WPF and LightSwitch. But we also try and build the next business model, and we've been working on it for a few years now. So Xamarin.io started basically as an online version of our UI designer.

So a few years ago, we have been adding features to OpenSilver. One of the main ones was adding a UI designer. And the UI designer is a big topic because it really speaks to a lot of people. Some of them have nostalgia about VB6, for example, with Drag & Drop. Holy man. Even WinForms. And basically with WPF, there's still a designer, even though some people find it a bit harder compared to the older ones I mentioned.

But more and more with technologies like React and others, there is no designer. So when we added the UI designer to OpenSilver, it kind of had a lot of traction. So we kept investing on it. And originally it was an extension for Visual Studio that would add this example designer. And when we created it, we built it with OpenSever itself because we needed to give a preview of the UIs that are built using OpenSever. So it needed to be in OpenSever. And so we wondered, since OpenSever allows to create apps for the web, why not just also put it as a website? And that's where XAML.io was born.

So you went there and you had this split screen with half of the screen being a XAML editor, code editor. to which later we added IntelliSense and code errors and so on. And the other half is a drag-and-drop designer where you have the gallery of controls on the left, you have the visual tree on the right.

I'm looking at it here, and we've talked many times about what we liked about VB and how it was just so simple and productive, the editor. I'm sorry, the visual editor, visual designer. And the main difference is that VB... the old VB anyway, was pixel-based, right? And once you got to WPF, you have flow-based things, you have stuff that we have margins and stuff, and it's not like you can say, oh, we're going to drop this button at 100, 100, and make it 40 by 80 or whatever.

But it looks like, I'm looking at your screenshot here from XAML.io, And it looks like there's a grid.

Yeah, there's a grid. So our idea is really to address as many use cases as possible and especially speak to as many people as possible. From the guy who just wants to drag and drop and quickly build a form. And I think you cannot beat that. You cannot beat the grid experience where you just drag and drop a text block and a text box and you align them with the grid. And then you put a button. It's so fast. If you just want to build a form quickly, it's super fast. Now you may wonder.

And that's what we like about it.

Yeah. And so then you may say, this is not responsive. So then that's where we add additional tools to kind of make them responsive. For example... We have this anchoring system, which reminds the ones of WinForms. So basically, once you have dragged the text box, then you anchor it to the right. So if the window is resized, the text box will resize as well and stuff like that. We also have a responsive MacCart extension. So for example, it's a bit like in WordPress. When you create a website that works for different sizes, For each property, you can say, I want this property value for mobile, then I want this property value if I'm on the desktop. So we've added this system on top, so in the property grid.

And so you can kind of make the UI more responsive with that. But we really want to speak to all kinds of people. And so the developer who wants to write manually, they can still do it with IntelliSense in the XAML code editor. heats and so on.

Sometimes if we're developing in-house applications with WPF, you know, it's going to stay in-house and we probably have more control over the screen size and the, you know, monitor sizes and all of that stuff. So going back to this snap to grid kind of experience could be a game changer.

Right yeah yeah but i recognize it's kind of extreme so we have an option to disable the.

Dream right sure yeah yeah.

You either got to buy into this or not right.

Yeah but really trying to bridge the the past and the future so of course there is a lot of talk about ai creating uis so in some cases you might wonder why would i want to spend time uh fine-tuning the UI when I can just ask. But actually, what I think is that AI doesn't really decrease the need for a UI preview and designer. It actually increases it.

I agree.

So the idea is that if you have AI build all your UIs in your app, potentially a lot of UIs, you need a quick way to quickly review them and to quickly refine them. And with XAML, even though XAML, of course, a lot of people hate it because it's very verbose. There is a high learning curve, as you mentioned.

But it also allows to render the screens at design time. Yeah. And that's very important. And so in a moment, you can see all those screens that AI has created, for example, and then you can fine tune, you can change colors, reword some buttons, and you don't need to use tokens to do that. You can just do that with the UI designer.

Nice. So it's an efficient use of tokens. Like, you know, that's the real thing.

Yeah, it's not only the tokens. It's also you need to wait, like the agent starts. And if you just want to move five peaks of something, you probably wouldn't want to wait like that. And also you might want to experiment with different colors. So you don't want to always talk to an agent to do that.

Right, sure. And so you would start by what? Uploading your source code, your WPF projects, solutions?

Yeah, so Xamal.io started as just a designer, but it actually evolved into a full kind of ID in the browser. So, of course, it doesn't want to replace Visual Studio and powerful IDs with powerful debugging, profiling, and so on. What it wants to do is kind of complement it for different use cases. So the idea is that you can have this app building experience on the web Which, by the way, has a lot of traction in general in the market, you know, with Bolt, Replit, Lava Bolt, and so on.

Yeah. Now, there's definitely a generation of developers that don't want to install a client for development now. They just don't think that way. True, true.

But the idea for us is you can start in Visual Studio and then upload in XAML.io, continue there, maybe continue on your phone if you're traveling. Maybe if you want to use AI, which is totally optional, You can do it, for example, for your own phone, which is very convenient, like as you're doing something else, you then ask AI to do something. And then when it's done.

I have a group of friends now who, you know, we're at lunch and they're still talking to their agents about the project they're working on through their phone. It's just weird, but it's what they do.

Yeah, yeah. And I guess I'm assuming that you can just point it to your GitHub repo and and it'll clone the repo and all that stuff.

Yeah, we don't have that already, but we're going to add it. So for now, you can import code. And we have particularly worked on a feature to import WPF code. So we have added a workflow to port WPF code to the web via XAML.io because it runs in the web, so it's perfect to just test directly in the web. And...

And also, we have built a compatibility analyzer. So the idea here is people who have large apps, before they get started working on it, they want to have an idea of what is supported, what is not. So they can select their assemblies, and the assemblies remain in the browser, and there is an analyzer that tells which feature is supported, which is not. You get a compatibility score. And then if they want, they can upload the code and there is some deterministic code fixes that happen because we're using our experience migrating code to build some analyzers, Roslyn-based analyzers and code fixes. So we try and do as much things deterministically as possible. And then people can either continue manually,

they can export and continue in Visual Studio, or they can use our AI agent that is on XAML.io as well, which actually comes with a lot of skills that are made for importing WPF apps.

Nice. Yeah, very cool. So you are importing a WPF app into XAML.io, but are you then headed for the web every time, or can you just run it as still deploy it as a XAML app?

Yeah, you can then deploy it So the idea is you move it to Open Silver Framework, which is basically now becoming kind of web-native WPF. Originally, it was web-native Civilite. Now it's moving to WPF.

It's web-native WPF.

Yeah, right. Yeah.

And so the funny thing is, you know, deep down, XAML was originally supposed to be an alternative for HTML. what bill did when he put that team together back in 2001 is he was trying to build an alternative it became this other thing for various reasons but true fundamentally this was a different way to approach the same problem.

Yeah like at some point you could have just uh xamal opening the browser you could have civil light one i think was xamal plus javascript yeah so yeah indeed the original xamal was also.

Meant like that yeah c-sharp came later right but it and Yeah, in some ways you're bringing back the original idea here, which is I want to build for the web and have no dependencies on a client thing. But I don't want to write in HTML or JavaScript. So I can work in my WPF world the way I'm comfortable and just deploy to a zero footprint client in the browser.

Hey, guys, I think we should take a little break here and a late break anyway. And we'll be right back after these very important messages.

And we're back. It's. NET Rocks. I'm Richard Cavill. It's Carl Franklin.

Yes, sir.

Talking to our friend Giovanni Albani about XAML.io. I want to do a little bit of a callback here because we did– you mentioned VB6 and I'll blame you for this, Carl. But, you know, one of the– One of the things that made the VB6 designer work so well was it was the MDI interface. There was only one kind of thing you could build with WinForms, and it was a WinForm.

File on the left, help on the right, toolbar. It was a very set user interface. Now, Giovanni, you're taking on a designer that can do anything. I've seen the craziest WPF apps. the really good ones are all, you know, Billy Hollis, but what are you going to do? But carousels and like there's so many interface options. How do you make a designer work for all of that?

Yeah. So our idea is really, uh, to, uh, leverage what XAML is good at because XAML is very controversial, but, um, So one thing it's very good at is being able to show a preview of the screen's design time. And another thing it's very good at is having this deterministic UI where it doesn't depend on the code, so you can do everything with drag and drop and so on.

And actually, now that I think of it, Another area where I think XAML will be great is, sorry if I digress a little bit, but I think it's important because we said a lot of bad things about XAML in the past, I myself, about the verbose and so on, especially with recent frameworks that didn't have a UI design.

But now, since we're talking a lot about AI in general, I think there might be a generation of citizen developers coming up And non-developers also, especially inside companies, be interested in creating extensions for the enterprise software or just utilities and so on. And I think. NET is actually pretty well suited for that and probably currently doesn't have enough recognition that it deserves. Like right now, online app builders like Bolt and so on, they use React and other applications.

But.

NET is actually perfect because what you need to do is be able to constrain what the citizen developer can create.

Sure.

And with. NET and XAML, it's actually very convenient because with XAML, for example, if you limit the kind of types that can be used, so no special user controls and no custom markup extension and so on, Then XAML is very secure, actually. You can have an AI generate XAML page on the fly and then run it, use binding to load data, and maybe add some custom controls from the business logic of your app. And then you can have something pretty solid. So, for example, software vendors would like to offer extensibility to their software. And that's where we're actually creating a XAML.io SDK make this kind of stuff easier.

Nice.

So, yeah.

So it's not just the designer part of it, but there are many other aspects of XAML that are pretty useful for the future.

You're taking on an interesting challenge here because over on Power Platform, there's some pretty good governance tools now so that experienced developers can keep those. I prefer domain expert over citizen developer. Yeah. they've got a real expertise. It's just not in application design. They, you know, but you want to give them guard, guide, you know, guardrails, keep them safe, work in a safe space. So to do that in the broader context of application development for the organization, typically using LLM tools, I think that's really powerful. Thank you.

And I imagine that if you're one of these XAML artists using blend, you could still use blend to create your, you know, fantastic looking stuff and then just import it in, right? I mean, anything that, any kind of XAML, shall I say deficiency? I don't know if there are, but could be easily overcome.

Yeah, we see a lot of people actually doing that. They copy paste code inside XAML.io. They copy paste snippets of code made with other tools or manually and then copy back. We see also people using XAML.io to learn to learn XAML with the designer and see what code it generates, but also to learn. NET in general. So the idea is really as a companion to. NET, to Visual Studio, sorry, to discover. NET for new generations. Like we have schools and universities, we use it. And the important thing is that whatever you create on XAML.io, being manually with the designer or with the AI agent, It's always a standard. NET solution that comes out of it.

So you can export and continue with your studio. And that actually is relevant also to the domain expert discussion we just had. So, of course, the Power Platform is fantastic. And the low-code tools in general, they are adding themselves AI because for new domain experts that never used the low-code tools, In some cases, they may wonder, why would I want to learn to use a local tool where there is its own logic and its own learning curve, when I can just do some prompts, right? And so, yeah, the Power Platform itself is adding AI, and it's really awesome.

Yeah, as long as you're working in Azure, internal application, and you're prepared for the licensing model.

Yeah, yeah. So what we are trying to do differently here is once the person has created with AI this development, the development can then go to the IT, and it's a standard. NET solution that the IT can review. They get C-sharp and XAML, and so they can then continue and maybe promote to a real production app. So the idea is really have a large spectrum, start from... non-developer, drag and drop UI, use agent, iterate like that, and then go all the way through the. NET developer who then gets... But the. NET developer actually doesn't only do the review of what the domain expert does, right? The.

NET developer can also do a lot of other things. For example, they create a sandbox with... So that's our vision. We currently don't have it, but we're working on XAML, IOS, DK, which we currently have in private, actually, where the IT can define a sandbox where they say, okay, the. NET code is allowed to do this and that. For example, no network connection, no access to local files or anything like that. And that's where. NET and C Sharp is really great for AI coding because it's much more difficult to do with JavaScript, for example. So then the developer can say, okay, I want the domain experts to have access to this NuGet package, which has the types of the company, and I want him to access this REST API. So,

for example, read-only Get. I want to change the data and so on. So then there is a broker. So every time that the domain expert... So basically what we want to do is... I kind of allow the vibe coding for the enterprise, but I don't like the name, of course, vibe coding.

No, me neither.

Yeah, nobody does.

So what we're trying to do with Xamarin.io and also what I'm talking about right now is solving what is not already solved. Because generating code is kind of solved right now. All those agents that doing great work. So it's everything that is around it. That needs to be a governance.

Yeah.

The governance, uh, the pop. So for example, for a general publish public, does that matter? You, the public website, uh, the idea that you can do everything from old devices and then publishing one click and all those other things use community stuff. And for the enterprise, um, it's also important what's around.

All of this.

So for example, The idea is there is a broker. So every time that the AI generated code wants to do something sensitive, the end user receives a notification and then manually reviews. So for example, we consider the AI generated code as untrust code, like something you want to run in a sandbox. And by the way,. NET WebAssembly is great for that because we don't want to run.

NET code on the server side. We want to run in a sandbox that is proven, like the same sandbox that will navigate to any website. You don't worry about what the website is going to do to your computer.

Through WA.

So once you have the sandbox, you just need to pay attention of what is the input, the output. And so if we govern, for example, this sensitive action needs then authorization from the end user. I think this problem is really going to be solved. I think it's solvable.

Well, I like this. What you're doing here is putting guide rails in before you build the code rather than trying to figure out what we built secure and if it's not, what do we do?

Exactly.

Put them into a situation where they can't get in trouble in the first place.

Exactly.

They're going to complain, Giovanni, because they're going to be constrained. They're always going to complain.

Yeah.

But that's where innovation comes from.

Yeah, that's right.

No, I like it. It's good thinking, right, to sort of say, how are we going to empower these folks to be productive without risking the company in the process?

So what's next? What's on your to-do list?

So, yeah, one of the main areas is the one I just mentioned for the enterprises and for general users. We're going to add the backend support to Xamal.io. So right now, Xamal.io is really a front-end-focused platform. So, of course, you can connect to existing backends. You can connect to services. But we are working and will soon release support for connecting, for example, existing SQL Server databases where we're going to be using the Microsoft DAB, like Data API Builder, to allow the developer to very easily configure which tables they want to give access, whether it's going to be redundant, which roles, and so on. So basically, you will not necessarily need a real backend. You don't necessarily need a

conventional traditional ISP-Net backend, for example. You can go directly to the database. This is very trendy, actually, with AI app builders, with Supabase and others that are serverless.

Dude, it's client-server. It's super old school. What's old is new.

Yeah, and especially with AI agents, it's very handy. Because if you ask AI to build, I don't know, like a time tracking application or invoice handling, then the AI can create the front end stuff. Yeah. And it can configure serverless database with row level security.

Yeah.

It's kind of surprising all the scenarios that you can tackle with just that.

Well, you realize that back-end development was about splitting the workload for people, not necessarily optimizing for the app.

Yeah, and it's surprising how much you can do. If there are things you cannot do with this architecture, then you're going to add server functions as a first step. And only as a last result, you're going to add a full back-end.

Put server load on. Cautiously, only when necessary. It makes a lot of sense. Hey, before we go, talk to me a little bit about the mobile story here. All of this works in mobile?

Yeah, so I love that one. But many people say, yeah, not necessarily that interesting. But since you're talking about this one, I really love it. So basically, XAML.io works on all platforms, including mobile. And it's optimized for mobile. The UI is optimized for mobile. So the scenario, for example, that I love is you start on your desktop, you work with your real code or the designer, and then you ask something to AI, like, for example, please investigate different ways that can improve performance, for example. You launch the request, and then you have to go. You take your phone, and you open the same project, the same page on your phone. You find the full ID, but, of course, it's optimized for the phone, so you can still find

the Solution Explorer, but it's a bit hidden, right? Nice. And so you can see the agent, where it's at, and you see when it's done, and then you can follow up on your phone. And then when you're back, you go back to your computer, you continue from there.

Yeah, I love that workflow.

That's great.

But I'm able to build through this mobile apps too, right? Like the thing that I'm making.

Yeah, you can build mobile apps, and you can test directly on the mobile. That one also I love. Actually, we have a game on Xamarin.io, which we added just a few days ago, which actually I... I coded with AI. So it's a game. I wouldn't code an enterprise critical app like that. But for a game that is client-only and with limited security implications, I coded it entirely with AI from the phone, entirely from the phone, from A to Z. It's a revival 3D version of a TI-99-4E game, which was Parsec back then. And the interesting thing is that the workflow was I would ask the AI to do improvements on my phone. I would test immediately on the phone itself because it's a mobile game with touch, multi-touch and so on. And then ask again AI to

improve and so on and without ever leaving the phone. And then when I wanted to test how is it to play like with the keyboard, I went to the desktop and I tested there.

Very cool.

Well, we wish you all the luck in the world and You know, there's a lot of people that listen to this show that are very interested in this, I'm sure. So, thank you, Giovanni, for building this great tool and for sharing.

It with us.

Thanks so much. Thanks to you.

All right.

And we'll talk to you, dear listener, next time on.

NET Rocks!.. NET Rocks is brought to you by Franklin's Net and produced by Plop 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.com.

Visit our website at dotnetrocks.com for RSS feeds, downloads, mobile apps, comments, and access to the full archives going back to show number one, recorded in September 2002.

And make sure you check out our sponsors. They keep us in business. Now go write some code. See you next time.

Anmelden oder registrieren

Jetzt

0:00 / 0:00