WEBVTT

1
00:00:01.080 --> 00:00:04.799
<v Speaker 1>How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05.320 --> 00:00:08.519
<v Speaker 1>Become a patron for just five dollars a month you

3
00:00:08.599 --> 00:00:11.320
<v Speaker 1>get access to a private RSS feed where all the

4
00:00:11.359 --> 00:00:14.599
<v Speaker 1>shows have no ads. Twenty dollars a month will get

5
00:00:14.599 --> 00:00:17.679
<v Speaker 1>you that and a special dot net Rocks patron mug.

6
00:00:18.160 --> 00:00:22.879
<v Speaker 1>Sign up now at Patreon dot dot NetRocks dot com. Hi,

7
00:00:23.000 --> 00:00:24.600
<v Speaker 1>this is Carl Franklin.

8
00:00:24.239 --> 00:00:25.480
<v Speaker 2>And this is Richard Campbell.

9
00:00:25.800 --> 00:00:30.000
<v Speaker 1>We've got two special shows coming up soon, episode nineteen

10
00:00:30.120 --> 00:00:32.079
<v Speaker 1>ninety nine and two thousand.

11
00:00:32.359 --> 00:00:35.039
<v Speaker 2>For episode nineteen ninety nine, we're collecting people's y two

12
00:00:35.159 --> 00:00:37.520
<v Speaker 2>k stories what did you do to help the Y

13
00:00:37.600 --> 00:00:39.719
<v Speaker 2>two k event not actually happen?

14
00:00:40.200 --> 00:00:42.960
<v Speaker 1>And for episode two thousand, we're going to be sharing

15
00:00:43.000 --> 00:00:45.479
<v Speaker 1>stories about how dot net shaped your career.

16
00:00:46.000 --> 00:00:48.679
<v Speaker 2>We have a special page at dot netroocks dot com

17
00:00:48.719 --> 00:00:52.159
<v Speaker 2>slash voxpop where you can record messages for us that

18
00:00:52.200 --> 00:00:55.000
<v Speaker 2>we can play on these special episodes. So tell us

19
00:00:55.039 --> 00:00:57.479
<v Speaker 2>what you did for Y two k and what dot

20
00:00:57.479 --> 00:00:59.560
<v Speaker 2>net means to you, and of course how long you've

21
00:00:59.560 --> 00:01:02.359
<v Speaker 2>been listening to dot net rocks. So go do dot

22
00:01:02.359 --> 00:01:05.319
<v Speaker 2>NetRocks dot com slash vox pop now and leave us

23
00:01:05.319 --> 00:01:07.799
<v Speaker 2>a message before the thought of operates like whiskey left

24
00:01:07.799 --> 00:01:09.120
<v Speaker 2>in a glass overnight.

25
00:01:09.159 --> 00:01:25.040
<v Speaker 1>Do it? Hey, welcome back to dot net Rocks. I'm

26
00:01:25.120 --> 00:01:26.480
<v Speaker 1>Carl Franklin.

27
00:01:26.079 --> 00:01:27.040
<v Speaker 2>An Amateurd Campbell.

28
00:01:27.599 --> 00:01:32.519
<v Speaker 1>Daniel Roth is here. Holy crap, hooray who the asbnet guy,

29
00:01:33.200 --> 00:01:38.920
<v Speaker 1>the Blazer guy. I We're gonna introduce Dan later but formally.

30
00:01:39.000 --> 00:01:41.799
<v Speaker 1>But Daniel, we do this introduction and feel free to

31
00:01:41.879 --> 00:01:45.439
<v Speaker 1>just jump in. It's okay. Our listeners have told us

32
00:01:45.480 --> 00:01:46.200
<v Speaker 1>that they like that.

33
00:01:46.519 --> 00:01:48.120
<v Speaker 3>Give me a signal you want me to actually say

34
00:01:48.120 --> 00:01:48.560
<v Speaker 3>something or.

35
00:01:48.799 --> 00:01:50.879
<v Speaker 1>No, no, no, no, you just jump in when you

36
00:01:50.920 --> 00:01:57.239
<v Speaker 1>need to. This is episode nineteen ninety six, and as promised, here,

37
00:01:57.519 --> 00:02:00.359
<v Speaker 1>let's talk about the things that happened in that year,

38
00:02:00.560 --> 00:02:01.560
<v Speaker 1>nineteen ninety six.

39
00:02:01.719 --> 00:02:03.640
<v Speaker 2>All right, so any favorites.

40
00:02:03.760 --> 00:02:07.519
<v Speaker 1>Yeah, Well Bill Clinton defeated Bob Dole, the guy who

41
00:02:07.560 --> 00:02:09.360
<v Speaker 1>liked to talk about himself in the third person.

42
00:02:09.560 --> 00:02:12.280
<v Speaker 2>Nice his re election, Yeah of course.

43
00:02:12.360 --> 00:02:17.840
<v Speaker 1>Yeah. So some really bad stuff happened in nineteen ninety six,

44
00:02:19.039 --> 00:02:22.680
<v Speaker 1>the major tragedies and aviations and shooting and terrorism, but

45
00:02:22.719 --> 00:02:27.400
<v Speaker 1>there were some scientific breakthroughs like Dollia's Sheep and Taliban

46
00:02:27.520 --> 00:02:35.280
<v Speaker 1>rose up to power. Let's see in Afghanistan. Yeah, Afghanistan,

47
00:02:35.319 --> 00:02:41.360
<v Speaker 1>the helicopter collision in Israel, Port Arthur massacre Tasmania thirty

48
00:02:41.360 --> 00:02:45.639
<v Speaker 1>five people, and that triggered sweeping gun law reforms in

49
00:02:45.639 --> 00:02:48.599
<v Speaker 1>Australia which have pretty much held held fast.

50
00:02:48.800 --> 00:02:51.240
<v Speaker 2>Yeah, they didn't until just recently. Then there was an

51
00:02:51.280 --> 00:02:52.919
<v Speaker 2>incident at the Bondi Beach.

52
00:02:52.919 --> 00:02:54.759
<v Speaker 1>Right, But they went for a long long time without

53
00:02:54.759 --> 00:02:58.919
<v Speaker 1>having ay having any incidents. John ben a Ramsay little girl,

54
00:02:59.199 --> 00:03:04.680
<v Speaker 1>six year old pageant queen found murdered in Colorado. Dolly

55
00:03:04.719 --> 00:03:08.759
<v Speaker 1>the sheep first mammal clone from an adult cell by

56
00:03:08.800 --> 00:03:15.439
<v Speaker 1>scientists in Scotland, twa flight eight hundred crash Boeing seven

57
00:03:15.520 --> 00:03:18.000
<v Speaker 1>forty seven exploded off Long Island. I remember that it

58
00:03:18.159 --> 00:03:18.960
<v Speaker 1>was taken off.

59
00:03:19.039 --> 00:03:21.479
<v Speaker 2>Yeah, a lot of conspiracy around that one, but we

60
00:03:21.560 --> 00:03:24.400
<v Speaker 2>eventually proved that it was a problem with the wiring

61
00:03:24.400 --> 00:03:26.360
<v Speaker 2>in the center fuel tank what was empty and it

62
00:03:27.879 --> 00:03:29.840
<v Speaker 2>exploded and blew the nose off the plane.

63
00:03:29.919 --> 00:03:30.319
<v Speaker 3>Yeah.

64
00:03:30.439 --> 00:03:34.960
<v Speaker 1>And the Centennial Olympic Park bombing pipe bomb exploded.

65
00:03:35.000 --> 00:03:37.400
<v Speaker 2>Because it was also the Summer Olympics in Atlanta.

66
00:03:37.479 --> 00:03:41.000
<v Speaker 1>Summer Olympics in Atlanta. And that guy they thought they

67
00:03:41.120 --> 00:03:42.680
<v Speaker 1>had the right guy, I can't remember if he ever

68
00:03:42.680 --> 00:03:47.159
<v Speaker 1>got arrested or whatever. But yeah, and speaking of Scotland,

69
00:03:47.159 --> 00:03:51.919
<v Speaker 1>the Dunblane school massacre. Gunman killed sixteen children in a teacher.

70
00:03:51.919 --> 00:03:56.159
<v Speaker 1>It just wasn't a pretty nasty year for that grim year.

71
00:03:56.280 --> 00:03:59.120
<v Speaker 2>I mean, I can point in a few more positive

72
00:03:59.120 --> 00:04:02.400
<v Speaker 2>things going on. The Motorola Startack phone came out, the

73
00:04:02.439 --> 00:04:04.680
<v Speaker 2>first really popular cell phone.

74
00:04:04.719 --> 00:04:08.479
<v Speaker 1>Wow, the cool phone, the star Attack Yeah, okay, that's cool.

75
00:04:08.560 --> 00:04:11.639
<v Speaker 2>Yeah. Also the pom pilot. This was the first, the

76
00:04:11.719 --> 00:04:14.719
<v Speaker 2>first you know, productivity device, the pomp pilot. Right on

77
00:04:14.759 --> 00:04:18.519
<v Speaker 2>the space side of things. Seven Shuttle flights this year,

78
00:04:19.439 --> 00:04:22.000
<v Speaker 2>three two of which go to to mir because they're

79
00:04:22.000 --> 00:04:25.439
<v Speaker 2>now bringing astronauts up to mer and they're doing your

80
00:04:25.439 --> 00:04:27.560
<v Speaker 2>six month shifts and rotating out. The rest are mostly

81
00:04:27.600 --> 00:04:33.000
<v Speaker 2>have experiments. Most notable in November Columbia not going to

82
00:04:33.040 --> 00:04:36.079
<v Speaker 2>miror because Columbia couldn't get to Mirror being slightly heavier.

83
00:04:36.959 --> 00:04:40.079
<v Speaker 2>It broke the record for the longest mission ever seventeen days,

84
00:04:40.120 --> 00:04:43.759
<v Speaker 2>fifteen hours. It also had the astronaut's story Musgrave on it.

85
00:04:43.839 --> 00:04:45.920
<v Speaker 2>He was one of the principal guys behind fixing the

86
00:04:45.959 --> 00:04:50.160
<v Speaker 2>hubble and with the flight on Columbia, he was the

87
00:04:50.199 --> 00:04:53.160
<v Speaker 2>only astronaut to fly all five shuttles. Wow. I had

88
00:04:53.160 --> 00:04:55.680
<v Speaker 2>a chance to meet him once. He was just an amazing,

89
00:04:56.040 --> 00:04:59.399
<v Speaker 2>amazing guy, really brilliant. He was doing a presentation for

90
00:04:59.439 --> 00:05:01.600
<v Speaker 2>a conference that I was involved with. You know, he's

91
00:05:01.600 --> 00:05:03.319
<v Speaker 2>the guy who fixed thehubble, right, So he goes into

92
00:05:03.360 --> 00:05:06.079
<v Speaker 2>the presentation and before he start, everybody's waiting for me's

93
00:05:06.079 --> 00:05:08.199
<v Speaker 2>about to start. He gets off the stage, walks up

94
00:05:08.240 --> 00:05:11.360
<v Speaker 2>to the projector and starts twiddling. We was just sorry,

95
00:05:11.040 --> 00:05:13.399
<v Speaker 2>I really care a lot about focus.

96
00:05:14.120 --> 00:05:14.680
<v Speaker 1>That's great.

97
00:05:14.839 --> 00:05:17.839
<v Speaker 2>Well, I laughed. I thought that was hilarious. I don't

98
00:05:17.879 --> 00:05:20.399
<v Speaker 2>know that anybody else knewed it was about Yeah, that's

99
00:05:20.399 --> 00:05:21.160
<v Speaker 2>staring mys gram.

100
00:05:21.240 --> 00:05:21.680
<v Speaker 1>That's great.

101
00:05:21.920 --> 00:05:26.800
<v Speaker 2>One other space thing. The last module mirror the Purorda module,

102
00:05:26.800 --> 00:05:29.920
<v Speaker 2>which was an earth sensing module partially funded by the

103
00:05:30.000 --> 00:05:31.920
<v Speaker 2>US that had been sitting you know, at this point

104
00:05:32.040 --> 00:05:35.959
<v Speaker 2>the Soviet Union's collapse, the Russian Federation is very financially restricted.

105
00:05:35.959 --> 00:05:38.879
<v Speaker 2>So they had built this module and wasn't quite done yet,

106
00:05:38.920 --> 00:05:41.279
<v Speaker 2>and so this was very much an international thing. The

107
00:05:41.360 --> 00:05:43.360
<v Speaker 2>US kicked in some money. There were experiments for a

108
00:05:43.360 --> 00:05:46.519
<v Speaker 2>bunch of different nations, and so it was his research module. Yeah,

109
00:05:47.319 --> 00:05:54.000
<v Speaker 2>and then commet hayakud Hayakatake, detected by a Japanese astronomical

110
00:05:54.079 --> 00:05:58.839
<v Speaker 2>student in January, made a very close pass on Earth

111
00:05:58.839 --> 00:06:00.959
<v Speaker 2>in March, and just a it was just a reminder

112
00:06:01.000 --> 00:06:03.680
<v Speaker 2>back then that we don't have good eyes on what's

113
00:06:03.720 --> 00:06:06.000
<v Speaker 2>out there far out, you know. And the big difference,

114
00:06:06.480 --> 00:06:09.079
<v Speaker 2>big difference from between us and the dinosaurs is the

115
00:06:09.120 --> 00:06:12.879
<v Speaker 2>dinosaurs didn't have a space program and so you know,

116
00:06:14.319 --> 00:06:17.240
<v Speaker 2>if the comet had was headed for Earth, we only

117
00:06:17.240 --> 00:06:19.000
<v Speaker 2>had two months notice, like, there was probably nothing we

118
00:06:19.000 --> 00:06:20.360
<v Speaker 2>could have done about it. But as it was, it

119
00:06:20.439 --> 00:06:23.600
<v Speaker 2>made a close flyby, was spectacular. It's a very near

120
00:06:23.639 --> 00:06:28.360
<v Speaker 2>thing on the web. The population of the web, but

121
00:06:28.399 --> 00:06:31.199
<v Speaker 2>that points about thirty six million users. This is nineteen

122
00:06:31.240 --> 00:06:33.079
<v Speaker 2>ninety six, we're just in the beginning of it. It's

123
00:06:33.079 --> 00:06:35.519
<v Speaker 2>also the year that was figured out that there was

124
00:06:35.600 --> 00:06:38.600
<v Speaker 2>more email sent than physical mail, which doesn't seem like

125
00:06:38.680 --> 00:06:41.639
<v Speaker 2>much of accomplishment today, but it's kind of a big

126
00:06:41.639 --> 00:06:43.879
<v Speaker 2>deal at the time. This is the year that ICQ

127
00:06:44.199 --> 00:06:47.439
<v Speaker 2>was released, right, sort of beginning of a whole messaging

128
00:06:47.480 --> 00:06:49.079
<v Speaker 2>wave of things.

129
00:06:49.480 --> 00:06:55.000
<v Speaker 4>Yeah, USB, univers verssal Syria Bus, the first prototypes are

130
00:06:55.079 --> 00:07:00.399
<v Speaker 4>out then, along with Microsoft makes direct X for the

131
00:07:00.480 --> 00:07:01.399
<v Speaker 4>Win nine X stact.

132
00:07:01.680 --> 00:07:05.560
<v Speaker 2>They also released NT four and I E three.

133
00:07:05.920 --> 00:07:08.480
<v Speaker 1>Somebody told me once and I couldn't believe it that

134
00:07:08.600 --> 00:07:11.079
<v Speaker 1>Windows XP didn't support USB.

135
00:07:11.279 --> 00:07:12.000
<v Speaker 2>It well, it was me.

136
00:07:12.160 --> 00:07:13.839
<v Speaker 1>It wasn't until Windows two thousand.

137
00:07:14.040 --> 00:07:15.879
<v Speaker 2>No, No, it was not until Service Back two.

138
00:07:16.120 --> 00:07:16.959
<v Speaker 1>Oh that's what it was.

139
00:07:17.160 --> 00:07:19.160
<v Speaker 2>Yeah, So the original release of XP did not have

140
00:07:19.199 --> 00:07:21.839
<v Speaker 2>support for USP, but they had service Back two they

141
00:07:21.879 --> 00:07:23.199
<v Speaker 2>added it.

142
00:07:23.279 --> 00:07:25.639
<v Speaker 1>Just hard to believe, I thought, Op, it was like

143
00:07:25.680 --> 00:07:28.519
<v Speaker 1>the whole new generation.

144
00:07:28.319 --> 00:07:32.439
<v Speaker 2>Are memories of XP are posts SPA two. Yeah, we

145
00:07:32.480 --> 00:07:34.360
<v Speaker 2>made fun of XP when it first shipped. It was

146
00:07:34.800 --> 00:07:37.040
<v Speaker 2>nt two thousand with the Fisher Price interface. Right, it

147
00:07:37.079 --> 00:07:39.519
<v Speaker 2>was all per three and colorful and cute, you know,

148
00:07:39.560 --> 00:07:41.079
<v Speaker 2>it wasn't that shiny.

149
00:07:40.759 --> 00:07:42.800
<v Speaker 1>And it had profiles. I think that was the big

150
00:07:42.839 --> 00:07:46.160
<v Speaker 1>deal too, Like you had a different profile to swap them.

151
00:07:46.240 --> 00:07:49.800
<v Speaker 2>Yeah. Amazon releases Alexa, the first one of the first

152
00:07:49.920 --> 00:07:51.160
<v Speaker 2>voice modules.

153
00:07:50.839 --> 00:07:53.879
<v Speaker 1>In nineteen ninety six United States. Are you kidding?

154
00:07:54.120 --> 00:07:56.839
<v Speaker 2>Yeah, it isn't good, but they come up with it, huh.

155
00:07:57.480 --> 00:08:00.319
<v Speaker 2>Over at Sun they released the Javit Devil look at

156
00:08:00.399 --> 00:08:05.759
<v Speaker 2>one point. Oh and then in gaming, three fairly famous

157
00:08:05.800 --> 00:08:09.879
<v Speaker 2>popular games Duke Nukem three D it's time to kick

158
00:08:09.920 --> 00:08:11.879
<v Speaker 2>ass and chew bubble gum. But I'm all a lot

159
00:08:11.879 --> 00:08:19.839
<v Speaker 2>of gum and from Blizzard Diablo, which was a overhead

160
00:08:19.920 --> 00:08:24.600
<v Speaker 2>view proportional sort of dingon Dragon's Game, and Loercroft tomb Raider.

161
00:08:25.360 --> 00:08:28.279
<v Speaker 1>Big deal that one, Yep, that one, And that's all

162
00:08:28.279 --> 00:08:29.720
<v Speaker 1>I got for you, friend. All Right, I'm going to

163
00:08:29.800 --> 00:08:31.279
<v Speaker 1>go back to culture.

164
00:08:31.399 --> 00:08:31.600
<v Speaker 2>Here.

165
00:08:31.800 --> 00:08:34.559
<v Speaker 1>The top ten albums, Top ten selling albums. Number ten

166
00:08:34.639 --> 00:08:38.440
<v Speaker 1>Older by George Michael, the singles I don't recognize any

167
00:08:38.519 --> 00:08:41.200
<v Speaker 1>of these, but Jesus to a Child, Fast Love, Spinning

168
00:08:41.240 --> 00:08:43.799
<v Speaker 1>the Wheel and Older. I guess I wasn't listening to

169
00:08:43.840 --> 00:08:46.080
<v Speaker 1>George Michael back then. I don't know a Number nine

170
00:08:46.120 --> 00:08:50.919
<v Speaker 1>Backstreet Boys International debut, Quit Playing Games, Get Down and

171
00:08:51.000 --> 00:08:55.879
<v Speaker 1>Anywhere for You Load by Metallica, a number eight, twelve

172
00:08:55.960 --> 00:08:59.000
<v Speaker 1>million copies. Singles Until It Sleeps, Hero of the Day,

173
00:08:59.159 --> 00:09:05.399
<v Speaker 1>Mama said in king Nothing Tragic, Kingdom by no doubt, awesome,

174
00:09:05.639 --> 00:09:09.120
<v Speaker 1>awesome stuff. Don't Speak, just a Girl, Spiderwebs Sunday Morning,

175
00:09:10.279 --> 00:09:13.480
<v Speaker 1>Lance Morrisett Jagged Little Pill. This was released in ninety five,

176
00:09:13.600 --> 00:09:17.080
<v Speaker 1>but it had massive nineteen ninety six sales. Yeah, thirty

177
00:09:17.279 --> 00:09:22.600
<v Speaker 1>million plus lifetime You ought to Know, Ironic, Hand in

178
00:09:22.600 --> 00:09:24.759
<v Speaker 1>My Pocket, You Learn huge album.

179
00:09:24.840 --> 00:09:26.919
<v Speaker 2>Yeah, it's just one of those ones where every song

180
00:09:27.039 --> 00:09:28.440
<v Speaker 2>is good. It's a crazy album.

181
00:09:28.519 --> 00:09:28.759
<v Speaker 3>Yeah.

182
00:09:28.840 --> 00:09:33.039
<v Speaker 1>Yeah. The Fuji's album is the score. That's where killing

183
00:09:33.039 --> 00:09:37.600
<v Speaker 1>Me Softly Lauren Hill right ready or not? Fuji la

184
00:09:37.720 --> 00:09:43.279
<v Speaker 1>I liked that stuff. Tony Braxton's secrets You're Making Me

185
00:09:43.399 --> 00:09:47.720
<v Speaker 1>High and break my Heart. I Don't want to Matchbox

186
00:09:47.720 --> 00:09:50.639
<v Speaker 1>twenty came out with Yourself or Someone Like You and

187
00:09:50.799 --> 00:09:55.159
<v Speaker 1>their singles were Push, three Am, Real World and back

188
00:09:55.240 --> 00:09:59.039
<v Speaker 1>to Good. Spice Girls came out with their album Spice

189
00:09:59.159 --> 00:10:01.879
<v Speaker 1>singles want to Be, say You'll be there, to become

190
00:10:01.919 --> 00:10:04.960
<v Speaker 1>one and who do you Think You Are? And then

191
00:10:05.000 --> 00:10:08.200
<v Speaker 1>the number one album Of course this was released earlier,

192
00:10:08.240 --> 00:10:11.399
<v Speaker 1>but Celine Dion falling Into You with over thirty two

193
00:10:11.559 --> 00:10:14.600
<v Speaker 1>million copies. As singles are because You Loved Me, It's

194
00:10:14.639 --> 00:10:17.240
<v Speaker 1>all coming back to me now all by myself and

195
00:10:17.360 --> 00:10:20.840
<v Speaker 1>call the me in all right and really quick. The

196
00:10:20.919 --> 00:10:24.600
<v Speaker 1>top ten movies of nineteen ninety six number ten, Jerry Maguire,

197
00:10:26.200 --> 00:10:30.519
<v Speaker 1>number nine, Breaking the Waves, number eight, The People Versus

198
00:10:30.600 --> 00:10:36.200
<v Speaker 1>Larry Flint number seven, Shine, number six, Big Night. I

199
00:10:36.279 --> 00:10:39.200
<v Speaker 1>don't remember that one, but it looks like a period piece.

200
00:10:39.240 --> 00:10:43.399
<v Speaker 1>That looks pretty good. Number five Train Spotting, Great Movie,

201
00:10:44.240 --> 00:10:48.840
<v Speaker 1>Number four, Secrets and Lies number three, The English Patient

202
00:10:49.120 --> 00:10:56.480
<v Speaker 1>number two, lone Star, number one Fargo, Fargo Awesome. Oh yeah,

203
00:10:56.720 --> 00:10:59.480
<v Speaker 1>don't you know. I think that's where people were really

204
00:10:59.480 --> 00:11:03.519
<v Speaker 1>introduced to that, you know, Minnesota, that accent, Yeah, south

205
00:11:03.600 --> 00:11:06.279
<v Speaker 1>North Dakota. Almost Canadian, isn't it?

206
00:11:06.399 --> 00:11:10.679
<v Speaker 2>Well? Yeah, in that part of Canada. Yes, yeah, it's

207
00:11:10.720 --> 00:11:11.360
<v Speaker 2>all all right.

208
00:11:11.399 --> 00:11:14.159
<v Speaker 1>Well that's what I got, So I guess we should

209
00:11:14.200 --> 00:11:15.679
<v Speaker 1>get onto better no framework.

210
00:11:15.360 --> 00:11:24.559
<v Speaker 2>Right, awesome? Apart man, what do you got?

211
00:11:24.879 --> 00:11:28.080
<v Speaker 1>Our old friend Simon Crop, Simon, what have you been

212
00:11:28.159 --> 00:11:31.399
<v Speaker 1>up to? He's got this tool called Delta, which is

213
00:11:31.440 --> 00:11:35.200
<v Speaker 1>an approach to implementing a three oh four not modified

214
00:11:35.840 --> 00:11:39.879
<v Speaker 1>return leveraging dB change tracking. So the approach uses a

215
00:11:39.919 --> 00:11:42.879
<v Speaker 1>last updated timestamp from the database to generate an E

216
00:11:43.039 --> 00:11:46.879
<v Speaker 1>tag header right, and all dynamic requests then have that

217
00:11:47.000 --> 00:11:50.559
<v Speaker 1>E tag checked and or applied. The approach works well

218
00:11:50.600 --> 00:11:54.679
<v Speaker 1>when the frequency of updates is relatively low. In this scenario,

219
00:11:54.840 --> 00:11:57.399
<v Speaker 1>the majority of requests will leverage, the result in a

220
00:11:57.480 --> 00:11:59.919
<v Speaker 1>three oh four not modified being returned in the Brew

221
00:12:00.000 --> 00:12:04.399
<v Speaker 1>as are loading the content in it's cash nice and effectively,

222
00:12:04.440 --> 00:12:07.360
<v Speaker 1>consumers will always receive the most current data while the

223
00:12:07.440 --> 00:12:09.600
<v Speaker 1>load on the servers reduced.

224
00:12:09.080 --> 00:12:10.879
<v Speaker 2>He just it's clever.

225
00:12:11.039 --> 00:12:13.159
<v Speaker 1>You know, this stuff just pours out of his brain.

226
00:12:13.519 --> 00:12:16.360
<v Speaker 2>Simon, Well, it's okay, clearly he's dealing with the problem.

227
00:12:16.360 --> 00:12:18.559
<v Speaker 2>It's like, how do I get brown performance there? Yeah,

228
00:12:18.600 --> 00:12:21.480
<v Speaker 2>it's like we'll stop hitting the database that unnecessarily when

229
00:12:21.480 --> 00:12:22.200
<v Speaker 2>nothing's changed.

230
00:12:22.360 --> 00:12:25.559
<v Speaker 1>Yeah, So that's what I got for him and for

231
00:12:26.159 --> 00:12:28.320
<v Speaker 1>better no framework. Who's talking to us today?

232
00:12:28.360 --> 00:12:30.480
<v Speaker 2>Richard grabbed a comment off of Show nineteen oh three,

233
00:12:30.559 --> 00:12:32.360
<v Speaker 2>which back in June twenty twenty four with our friend

234
00:12:32.440 --> 00:12:38.000
<v Speaker 2>Beth Massey talking about Maui and Blazer fun conversation. You know, certainly,

235
00:12:38.200 --> 00:12:41.039
<v Speaker 2>you know the many UX choices. In fact, do we

236
00:12:41.039 --> 00:12:43.360
<v Speaker 2>often get comments along those lines of just how many

237
00:12:44.960 --> 00:12:48.679
<v Speaker 2>user interface frameworks Microsoft makes much less the rest of

238
00:12:48.679 --> 00:12:49.360
<v Speaker 2>the ecosystem.

239
00:12:49.480 --> 00:12:52.120
<v Speaker 1>And Moyd had had hot We did that at Build

240
00:12:52.320 --> 00:12:55.360
<v Speaker 1>that show, right, I don't remember. Yeah, I think we

241
00:12:55.399 --> 00:12:57.120
<v Speaker 1>were alive. I mean we were in a little huggy

242
00:12:57.120 --> 00:12:57.720
<v Speaker 1>a couby it.

243
00:12:57.759 --> 00:13:00.600
<v Speaker 2>Builder in the booth. Yeah, yeah, it's possible about the

244
00:13:00.639 --> 00:13:04.320
<v Speaker 2>right time. So this comment comes from mooid Hatat, who

245
00:13:04.399 --> 00:13:08.000
<v Speaker 2>said I've been using neo vim with dot net via

246
00:13:08.120 --> 00:13:10.200
<v Speaker 2>PowerShell on Windows for over a year now. Although it

247
00:13:10.200 --> 00:13:12.320
<v Speaker 2>as a step learning curve, once you've developed the messle memory,

248
00:13:12.320 --> 00:13:16.960
<v Speaker 2>you can seriously enhance your productivity, so another approach to it.

249
00:13:17.120 --> 00:13:21.080
<v Speaker 2>Neo Vim's been around a long time. Additionally, I've started

250
00:13:21.159 --> 00:13:24.279
<v Speaker 2>using terminal more frequently. This is what jumped out to me.

251
00:13:24.440 --> 00:13:27.799
<v Speaker 2>You know, before we were really you know, dealing with

252
00:13:27.840 --> 00:13:31.840
<v Speaker 2>agents and stuff, already folks were starting to go down

253
00:13:31.840 --> 00:13:35.399
<v Speaker 2>this path, which has introduced me to many terminal based

254
00:13:35.399 --> 00:13:39.360
<v Speaker 2>tools I wasn't familiar with before, such as zoxide, PS

255
00:13:39.480 --> 00:13:44.639
<v Speaker 2>read line, I know that one well for working PowerShell, JQ, lazy, get, Yazzy,

256
00:13:44.840 --> 00:13:47.720
<v Speaker 2>and bat. These tools have greatly improved my workflow, not

257
00:13:47.759 --> 00:13:49.840
<v Speaker 2>even more productive. But most of these tools are open

258
00:13:49.840 --> 00:13:52.120
<v Speaker 2>source and cross platform, providing me with opportunities to contribute

259
00:13:52.120 --> 00:13:54.480
<v Speaker 2>to open source projects. Since their cross platform, I'm not

260
00:13:54.519 --> 00:13:56.000
<v Speaker 2>tied to any operating systems anyway.

261
00:13:56.000 --> 00:13:58.120
<v Speaker 1>I think we can blame the Linux people for getting

262
00:13:58.200 --> 00:14:00.320
<v Speaker 1>us all into command line interface.

263
00:14:00.480 --> 00:14:03.080
<v Speaker 2>Right well, and I say blame there's certain you know,

264
00:14:03.200 --> 00:14:05.679
<v Speaker 2>you know, with love, Yeah, well we say that with

265
00:14:05.720 --> 00:14:09.399
<v Speaker 2>love exactly. But also we came to appreciate the fact

266
00:14:09.399 --> 00:14:13.039
<v Speaker 2>that infrastructure's code automating deployment, like all these things are

267
00:14:13.039 --> 00:14:15.919
<v Speaker 2>better done in command lines. And now you know the

268
00:14:15.919 --> 00:14:18.559
<v Speaker 2>conversation we just had with Kathleen about going CLI first.

269
00:14:18.919 --> 00:14:21.440
<v Speaker 2>Now that you're working with these variosations and things again

270
00:14:21.919 --> 00:14:24.399
<v Speaker 2>command lines and so I'm seeing a lot of software

271
00:14:24.440 --> 00:14:27.200
<v Speaker 2>built now where you just working from the command line

272
00:14:27.200 --> 00:14:29.159
<v Speaker 2>with it calling it out and it's rendering on that

273
00:14:29.360 --> 00:14:31.799
<v Speaker 2>you know, eighty twenty five kind of formats and so forth.

274
00:14:31.840 --> 00:14:34.639
<v Speaker 2>So when I saw my AIDS comment, I'm just like,

275
00:14:34.720 --> 00:14:37.279
<v Speaker 2>you know, you may have been prescient, my friends, like

276
00:14:37.440 --> 00:14:39.559
<v Speaker 2>you were doing stuff before the rest of we're going, Yeah,

277
00:14:39.559 --> 00:14:40.480
<v Speaker 2>that's kind of cool.

278
00:14:40.399 --> 00:14:42.960
<v Speaker 1>When you get it down, like it's way faster than

279
00:14:42.960 --> 00:14:44.279
<v Speaker 1>going through guy's and things.

280
00:14:44.440 --> 00:14:48.559
<v Speaker 2>I mean, I totally agree, yeah yeah, And now you know,

281
00:14:48.600 --> 00:14:51.480
<v Speaker 2>the old days of arcane slash commands and so forth,

282
00:14:51.480 --> 00:14:53.600
<v Speaker 2>it's just not that big a deal, right, Like we've

283
00:14:53.639 --> 00:14:55.000
<v Speaker 2>sort of gotten better with all of that. We have

284
00:14:55.039 --> 00:14:56.600
<v Speaker 2>better interfaces, better way to manage it.

285
00:14:56.639 --> 00:14:58.840
<v Speaker 1>So now you get your lms to write your command

286
00:14:58.840 --> 00:15:00.080
<v Speaker 1>line tools, right.

287
00:15:01.080 --> 00:15:02.559
<v Speaker 2>And that's the other part of it, as long as

288
00:15:02.600 --> 00:15:07.240
<v Speaker 2>it's discovering plus PowerShell yeah, So Waite, thank you for

289
00:15:07.240 --> 00:15:08.600
<v Speaker 2>your comment and a copy of music. Co buy is

290
00:15:08.639 --> 00:15:09.679
<v Speaker 2>on its way to you. And if you'd like a

291
00:15:09.679 --> 00:15:11.080
<v Speaker 2>copy of music, go buy right. A comment on the

292
00:15:11.120 --> 00:15:13.000
<v Speaker 2>website of dot net rock so commoner on the facebooks

293
00:15:13.000 --> 00:15:14.360
<v Speaker 2>and a coupleish every show there and if you comment

294
00:15:14.399 --> 00:15:16.000
<v Speaker 2>there and ay real on the show, we'll send you

295
00:15:16.039 --> 00:15:16.519
<v Speaker 2>copy of music.

296
00:15:16.600 --> 00:15:19.759
<v Speaker 1>Go by Music to Code by twenty two tracks of

297
00:15:20.919 --> 00:15:24.960
<v Speaker 1>focusy Goodness, twenty five minute long musical tracks. See you

298
00:15:25.080 --> 00:15:28.360
<v Speaker 1>stay work focus Yeah it is now that will help

299
00:15:28.399 --> 00:15:30.639
<v Speaker 1>you stay stay in a state of flow.

300
00:15:32.799 --> 00:15:34.080
<v Speaker 2>Go to music to Code today.

301
00:15:34.399 --> 00:15:39.559
<v Speaker 1>Yeah, I'm not very focusy obviously. Go to music toocoby

302
00:15:39.600 --> 00:15:43.200
<v Speaker 1>dot net and you can get the collection in MP

303
00:15:43.279 --> 00:15:47.559
<v Speaker 1>three wave or flack formats. Oh my god, we're finally

304
00:15:47.600 --> 00:15:51.480
<v Speaker 1>around it. Dan Dan dan Roth. He is a principal

305
00:15:51.519 --> 00:15:54.840
<v Speaker 1>product manager on the ASPNAT team at Microsoft, specifically working

306
00:15:54.879 --> 00:15:58.200
<v Speaker 1>on dot net web development with Blazer. It's a pleasure

307
00:15:58.200 --> 00:15:59.799
<v Speaker 1>to have you back as always.

308
00:16:00.159 --> 00:16:03.120
<v Speaker 3>Hello, it's great to be back at Carl herryt welcome friend.

309
00:16:03.399 --> 00:16:07.159
<v Speaker 1>Yeah, no, good stuff. We want to know, I mean

310
00:16:07.200 --> 00:16:10.519
<v Speaker 1>we if you were paying attention around dot net comf

311
00:16:10.519 --> 00:16:13.360
<v Speaker 1>you understand what happened in dot net ten. But maybe

312
00:16:13.360 --> 00:16:15.000
<v Speaker 1>we should just before because I want to get to

313
00:16:15.080 --> 00:16:17.799
<v Speaker 1>the good stuff coming in dot net eleven. But maybe

314
00:16:17.799 --> 00:16:20.759
<v Speaker 1>you should sort of recap what dot net ten gave

315
00:16:20.840 --> 00:16:23.879
<v Speaker 1>us for web development in general and Blazer in particular,

316
00:16:24.240 --> 00:16:25.240
<v Speaker 1>just maybe, you know, I.

317
00:16:25.240 --> 00:16:27.639
<v Speaker 3>Mean, we were just shift dot net ten. It's only

318
00:16:27.759 --> 00:16:30.279
<v Speaker 3>like well like four months old, like it's still new.

319
00:16:30.320 --> 00:16:32.960
<v Speaker 3>It's still still pretty hot. I think it's really hot.

320
00:16:33.000 --> 00:16:34.879
<v Speaker 3>It's like that warm loaf of bread, and you know,

321
00:16:34.960 --> 00:16:38.279
<v Speaker 3>it's still filling the room with all those delicious aromas.

322
00:16:38.879 --> 00:16:42.879
<v Speaker 2>And but no, I point out that, uh dot net eleven,

323
00:16:43.320 --> 00:16:46.840
<v Speaker 2>Uh uh release two is out too, Like it's not

324
00:16:46.879 --> 00:16:47.759
<v Speaker 2>like you guys are stopping.

325
00:16:48.279 --> 00:16:51.720
<v Speaker 3>Nope, never stopping. Every year, every year there's a new release. Yeah,

326
00:16:51.720 --> 00:16:54.120
<v Speaker 3>we just shipped in eleven preview two earlier this month,

327
00:16:54.159 --> 00:16:56.960
<v Speaker 3>and there will be another preview coming up here pretty quick,

328
00:16:57.000 --> 00:16:59.080
<v Speaker 3>and uh the next month for preview three.

329
00:16:59.159 --> 00:17:01.519
<v Speaker 1>So in part that already, Daniel and I did a

330
00:17:01.559 --> 00:17:05.920
<v Speaker 1>Blazer Train episode recently about why you should upgrade your

331
00:17:05.960 --> 00:17:09.960
<v Speaker 1>Blazer projects to dot net ten. So if you're interested

332
00:17:10.000 --> 00:17:11.839
<v Speaker 1>in that, I think we should put a link in

333
00:17:11.920 --> 00:17:12.960
<v Speaker 1>the show notes to that.

334
00:17:13.039 --> 00:17:13.720
<v Speaker 2>We will do that.

335
00:17:13.880 --> 00:17:16.559
<v Speaker 3>Lots of good stuff and done it. I mean obviously

336
00:17:16.559 --> 00:17:18.480
<v Speaker 3>the latest long term support release.

337
00:17:18.519 --> 00:17:19.119
<v Speaker 2>So you've got.

338
00:17:19.000 --> 00:17:23.160
<v Speaker 3>The new another three years of support with dot net ten,

339
00:17:23.200 --> 00:17:25.960
<v Speaker 3>and it's just loaded with good features. I mean in

340
00:17:26.039 --> 00:17:30.359
<v Speaker 3>the new sea Sharp features like the new extension members

341
00:17:30.400 --> 00:17:34.640
<v Speaker 3>and extension properties. File based apps, those are super fun.

342
00:17:34.279 --> 00:17:37.480
<v Speaker 3>You've tried those with like your AI agent, like getting

343
00:17:37.519 --> 00:17:39.319
<v Speaker 3>them to generate just little c sharp kind of like

344
00:17:39.359 --> 00:17:41.519
<v Speaker 3>the little c sharp scripts. Almost right, it's a single

345
00:17:41.559 --> 00:17:43.680
<v Speaker 3>file that you can just dot it run and I

346
00:17:43.759 --> 00:17:46.240
<v Speaker 3>think the way you go, no, no project file needed.

347
00:17:47.440 --> 00:17:52.559
<v Speaker 3>Lots of great run time improvements perf perf oh Man.

348
00:17:52.000 --> 00:17:58.279
<v Speaker 3>I love watching Tobes dot net com recording where he's

349
00:17:58.319 --> 00:18:00.920
<v Speaker 3>just like showing all these amazing marks of how much

350
00:18:01.200 --> 00:18:05.519
<v Speaker 3>we've reduced allocations and increased performance, right, and that goes

351
00:18:05.519 --> 00:18:06.920
<v Speaker 3>all all way up and down the stack, like he's

352
00:18:06.920 --> 00:18:10.000
<v Speaker 3>showing like low level run time things. And for library improvements.

353
00:18:10.039 --> 00:18:12.160
<v Speaker 3>And then at the ACE core layer, we did a

354
00:18:12.200 --> 00:18:15.240
<v Speaker 3>lot of work on the memory pooling so that the

355
00:18:15.279 --> 00:18:18.160
<v Speaker 3>memory pool can be can can shrink in size, can

356
00:18:18.200 --> 00:18:21.079
<v Speaker 3>be released for like real high scale UH, the deployment

357
00:18:21.200 --> 00:18:25.119
<v Speaker 3>scenarios better adjacent de serialization for your for your APIs.

358
00:18:26.319 --> 00:18:28.119
<v Speaker 3>You have lots of perof across the stack. That's kind

359
00:18:28.119 --> 00:18:30.640
<v Speaker 3>of just part of our culture. Like every release has

360
00:18:30.680 --> 00:18:33.640
<v Speaker 3>to be faster upgrade you get speed.

361
00:18:33.440 --> 00:18:37.079
<v Speaker 1>And you watch Stephen tub his his presentation if you

362
00:18:37.119 --> 00:18:39.119
<v Speaker 1>want to know the nity gritty, but you could sum

363
00:18:39.160 --> 00:18:41.440
<v Speaker 1>it up just by saying it's faster and he uses

364
00:18:41.480 --> 00:18:43.359
<v Speaker 1>less memory, much less memory.

365
00:18:43.559 --> 00:18:46.519
<v Speaker 3>Just that's same code and it's faster. That's that's what

366
00:18:46.640 --> 00:18:47.079
<v Speaker 3>you get.

367
00:18:47.519 --> 00:18:50.200
<v Speaker 2>So that just by migrating you get a performance proof.

368
00:18:50.160 --> 00:18:55.599
<v Speaker 3>Yeah, absolutely definitely, and man reduced memory UH footprint as

369
00:18:55.599 --> 00:18:57.640
<v Speaker 3>well as was a big win I think in the

370
00:18:57.759 --> 00:19:00.440
<v Speaker 3>UH in the dot net with the on a ten

371
00:19:00.480 --> 00:19:07.039
<v Speaker 3>release with the improved garbage collection system and then an

372
00:19:07.079 --> 00:19:11.440
<v Speaker 3>acemic core like we did like a whole bunch of things,

373
00:19:11.480 --> 00:19:15.000
<v Speaker 3>Like we did lots of observability improvements, so lots of

374
00:19:15.039 --> 00:19:18.160
<v Speaker 3>new metrics and tracing Like Blazer, we added a whole

375
00:19:18.160 --> 00:19:22.359
<v Speaker 3>bunch of Blazer specific metrics and Blazer server traces. Like

376
00:19:22.400 --> 00:19:24.839
<v Speaker 3>Blazer servers has a sort of unique request pattern, right,

377
00:19:24.880 --> 00:19:27.640
<v Speaker 3>We've got these long run, long running web socket request

378
00:19:28.119 --> 00:19:29.640
<v Speaker 3>which means that when you're trying to like look at

379
00:19:29.640 --> 00:19:32.440
<v Speaker 3>your page navigations and things like that that would normally

380
00:19:32.480 --> 00:19:35.880
<v Speaker 3>appear a separate requests in a traditional web app, you know,

381
00:19:36.000 --> 00:19:38.920
<v Speaker 3>it's hard, they're harder to see. In Blazer Server and

382
00:19:38.960 --> 00:19:41.319
<v Speaker 3>dot on a ten, we added specific activities so to

383
00:19:41.400 --> 00:19:44.200
<v Speaker 3>model all that, so you get a really nice activity

384
00:19:44.559 --> 00:19:46.960
<v Speaker 3>trace through through what's happening in your Blazer server apps.

385
00:19:47.680 --> 00:19:49.880
<v Speaker 3>We also added like a bunch of Blazer web assembly

386
00:19:49.920 --> 00:19:54.119
<v Speaker 3>diagnostic tools so that you can like get CPU profile

387
00:19:54.160 --> 00:19:57.480
<v Speaker 3>performance profiles from your Blazer websmity apps take memory dumps

388
00:19:57.799 --> 00:20:01.519
<v Speaker 3>to track down those hard to diagno those issues, so

389
00:20:01.599 --> 00:20:02.240
<v Speaker 3>that all got in.

390
00:20:03.279 --> 00:20:05.519
<v Speaker 2>Yeah, yeah, excuses.

391
00:20:05.799 --> 00:20:10.039
<v Speaker 3>Just upgrade and if you haven't tried already, the get

392
00:20:10.119 --> 00:20:13.920
<v Speaker 3>up Copilot app monetization tooling for doing those those upgrades,

393
00:20:13.920 --> 00:20:16.720
<v Speaker 3>like going from version to version, like AI will just

394
00:20:17.079 --> 00:20:19.279
<v Speaker 3>handle it for you. I mean, it's it's generally not

395
00:20:19.319 --> 00:20:22.480
<v Speaker 3>a very cumbersome process. In general, you should mostly just

396
00:20:22.519 --> 00:20:24.720
<v Speaker 3>update the DFM and update your packages and you're done.

397
00:20:24.880 --> 00:20:26.440
<v Speaker 3>But if you have a really big solution you just

398
00:20:26.440 --> 00:20:29.160
<v Speaker 3>want AI to to deal with it, then get up

399
00:20:29.160 --> 00:20:33.799
<v Speaker 3>Copilot app Monetization is built specifically for dealing with that.

400
00:20:34.079 --> 00:20:38.400
<v Speaker 2>Yeah, very good, very good there, and there's no upgrade issues, right,

401
00:20:38.480 --> 00:20:40.960
<v Speaker 2>Like if you're living on eight and you switch to

402
00:20:41.079 --> 00:20:43.920
<v Speaker 2>nine or come up to ten. I don't expect any

403
00:20:44.000 --> 00:20:44.880
<v Speaker 2>code to break well the.

404
00:20:44.920 --> 00:20:48.279
<v Speaker 1>Usual the problems are third party tools that don't support

405
00:20:48.359 --> 00:20:53.000
<v Speaker 1>dot Net ten yet, or you know, have different syntax

406
00:20:53.079 --> 00:20:56.759
<v Speaker 1>going from one to another, or you know dependencies. That's

407
00:20:56.839 --> 00:20:59.559
<v Speaker 1>usually the problem, and the c sharp in the code

408
00:20:59.640 --> 00:21:01.079
<v Speaker 1>is never the issue for me.

409
00:21:01.240 --> 00:21:04.599
<v Speaker 3>We keep a very high compat bar, like we take

410
00:21:04.640 --> 00:21:07.640
<v Speaker 3>compat very seriously. I often think of combat as like

411
00:21:08.079 --> 00:21:10.200
<v Speaker 3>it's our most important feature because you're taking a bed

412
00:21:10.240 --> 00:21:12.119
<v Speaker 3>on a platform, and why do you do that? You

413
00:21:12.200 --> 00:21:14.759
<v Speaker 3>do that so that you can just accrue value with

414
00:21:14.880 --> 00:21:17.039
<v Speaker 3>every new dot net release, Like I just upgrade and

415
00:21:17.079 --> 00:21:18.480
<v Speaker 3>I don't even have to change code, and I get

416
00:21:18.480 --> 00:21:20.640
<v Speaker 3>that performance, I get the improved security, I get the

417
00:21:20.720 --> 00:21:23.519
<v Speaker 3>new features, I get new c sharp without changing a

418
00:21:23.599 --> 00:21:25.680
<v Speaker 3>line of code. And I can't just upgrade.

419
00:21:25.680 --> 00:21:28.319
<v Speaker 2>I don't get that, yeah, without anything breaking.

420
00:21:28.200 --> 00:21:30.319
<v Speaker 3>So breaking changementally well, because the.

421
00:21:30.359 --> 00:21:32.799
<v Speaker 2>Chances I have cycles to go back and fix existing

422
00:21:32.839 --> 00:21:35.680
<v Speaker 2>code or low right, Like that's that's hard, I'll just

423
00:21:35.720 --> 00:21:38.240
<v Speaker 2>stay on the older version absolutely.

424
00:21:38.400 --> 00:21:40.880
<v Speaker 3>I mean, I'm sure there are some breaking changes that

425
00:21:40.880 --> 00:21:43.839
<v Speaker 3>happen with every release. We try very hard to non

426
00:21:43.839 --> 00:21:45.839
<v Speaker 3>introduce some of occasionally there are some cases where we

427
00:21:45.880 --> 00:21:47.519
<v Speaker 3>feel like for the good of the platform, we really

428
00:21:47.519 --> 00:21:49.440
<v Speaker 3>do need to make a change here, And you can

429
00:21:49.480 --> 00:21:52.160
<v Speaker 3>of course find all those documented in the dot net

430
00:21:52.160 --> 00:21:55.440
<v Speaker 3>breaking change stocks. The app monetization tooling is aware of

431
00:21:55.480 --> 00:22:00.240
<v Speaker 3>those breaking change documentation, so we can actually help you

432
00:22:00.480 --> 00:22:03.480
<v Speaker 3>adjust code, and if you are actually touching those those

433
00:22:03.519 --> 00:22:06.000
<v Speaker 3>places that got changed, it can help you with the

434
00:22:06.240 --> 00:22:08.480
<v Speaker 3>with the addressing those breaking changes as well.

435
00:22:08.599 --> 00:22:11.079
<v Speaker 2>Right, I mean, these days, aren't you just pointing your

436
00:22:11.119 --> 00:22:13.440
<v Speaker 2>agent at it and saying, should it what's the consequences

437
00:22:13.480 --> 00:22:14.319
<v Speaker 2>of upgrading to ten?

438
00:22:14.680 --> 00:22:18.160
<v Speaker 3>I should have says none, just gone, it's fine.

439
00:22:17.920 --> 00:22:19.039
<v Speaker 1>What is this consequence?

440
00:22:19.079 --> 00:22:22.039
<v Speaker 2>Thing? You speak? Yeah, then it explodes and you're like,

441
00:22:22.119 --> 00:22:23.079
<v Speaker 2>why did this explode?

442
00:22:23.119 --> 00:22:23.279
<v Speaker 1>Oh?

443
00:22:23.319 --> 00:22:27.319
<v Speaker 2>You're right, You're right, You're absolutely right.

444
00:22:27.759 --> 00:22:30.519
<v Speaker 3>No, no, no, no, not at all. Maybe on some other

445
00:22:31.160 --> 00:22:34.720
<v Speaker 3>unnamed developer ecosystems that happens when you're upgrading, but not that.

446
00:22:35.640 --> 00:22:37.480
<v Speaker 1>I think. I think I asked you that question on

447
00:22:37.519 --> 00:22:40.240
<v Speaker 1>Blazer Train. I said, so, when would you ever not

448
00:22:40.400 --> 00:22:42.880
<v Speaker 1>want to upgrade? And you said, what are you talking about?

449
00:22:42.960 --> 00:22:44.319
<v Speaker 1>You always want to upgrade?

450
00:22:46.079 --> 00:22:50.200
<v Speaker 2>Yeah, he might be a little biased our for our

451
00:22:50.240 --> 00:22:50.920
<v Speaker 2>friend Dan.

452
00:22:50.920 --> 00:22:52.640
<v Speaker 3>You know, he's maybe a little bit.

453
00:22:52.759 --> 00:22:53.200
<v Speaker 2>A little bit.

454
00:22:53.319 --> 00:22:55.519
<v Speaker 1>Yeah, well, like I said, you know, if you're using

455
00:22:55.559 --> 00:22:59.240
<v Speaker 1>a third party tool that doesn't work or for some

456
00:22:59.279 --> 00:23:03.559
<v Speaker 1>reason or the syntax changes, that happens a lot, you know.

457
00:23:04.160 --> 00:23:07.519
<v Speaker 1>But you know, you get all the latest updates for

458
00:23:07.680 --> 00:23:11.440
<v Speaker 1>all your packages and hopefully they work. But usually it's

459
00:23:11.480 --> 00:23:14.480
<v Speaker 1>the ones that don't load or have different syntax that's

460
00:23:14.519 --> 00:23:15.000
<v Speaker 1>the problem.

461
00:23:15.599 --> 00:23:18.039
<v Speaker 3>Yes, or maybe you have an environment constraint. We're getting

462
00:23:18.079 --> 00:23:21.440
<v Speaker 3>the new runtime into your environments is requires going to

463
00:23:21.480 --> 00:23:23.920
<v Speaker 3>some I person and getting things signed in triplicate and

464
00:23:23.920 --> 00:23:27.119
<v Speaker 3>stuff like that. We understand that people have their processes

465
00:23:27.160 --> 00:23:29.880
<v Speaker 3>that they need to follow, and that's perfectly understandable. But

466
00:23:29.880 --> 00:23:32.680
<v Speaker 3>if you can upgrade, I think you will be very happy.

467
00:23:32.799 --> 00:23:35.319
<v Speaker 2>Yeah, like you said, at the minimum performance benefits but

468
00:23:35.359 --> 00:23:38.680
<v Speaker 2>also great new features. Yeah, it's just annual cadence tough

469
00:23:38.720 --> 00:23:41.240
<v Speaker 2>on the team, Like, how do you know, I know

470
00:23:41.279 --> 00:23:44.799
<v Speaker 2>folks are struggling with trying to use upgrade at net

471
00:23:44.839 --> 00:23:46.680
<v Speaker 2>every year. Yeah, I don't know how it is for

472
00:23:46.720 --> 00:23:47.200
<v Speaker 2>you guys.

473
00:23:47.359 --> 00:23:49.400
<v Speaker 3>I think it's kind of a mix. Actually it's a struggle.

474
00:23:50.240 --> 00:23:51.680
<v Speaker 3>I don't think it's a struggle for us to get

475
00:23:51.680 --> 00:23:53.599
<v Speaker 3>a release out every year and we do know that

476
00:23:53.720 --> 00:23:56.519
<v Speaker 3>we have users that also that even that, like you

477
00:23:56.519 --> 00:23:59.000
<v Speaker 3>said that that pace is maybe even faster them. That's

478
00:23:59.000 --> 00:24:00.759
<v Speaker 3>why we have the long term SUP releases and the

479
00:24:00.799 --> 00:24:01.759
<v Speaker 3>standard support releases.

480
00:24:01.960 --> 00:24:03.960
<v Speaker 2>From want of way, lots of folks that are every

481
00:24:03.960 --> 00:24:05.240
<v Speaker 2>other that just take the LTS.

482
00:24:05.319 --> 00:24:07.119
<v Speaker 3>It's not that it matters, but that's what those are

483
00:24:07.160 --> 00:24:09.200
<v Speaker 3>there for. I think the struggle is actually more the

484
00:24:09.240 --> 00:24:12.279
<v Speaker 3>opposite is like, you know, things just are accelerating right now,

485
00:24:12.359 --> 00:24:16.680
<v Speaker 3>like like AI is making development faster and more productive,

486
00:24:16.880 --> 00:24:19.960
<v Speaker 3>and you know, getting value to our to our users

487
00:24:20.039 --> 00:24:22.480
<v Speaker 3>is something that we would like to to to speed up.

488
00:24:22.839 --> 00:24:25.960
<v Speaker 3>But at the same time being you know, sensitive to

489
00:24:26.079 --> 00:24:28.400
<v Speaker 3>and cognizant of the fact that you know, the platform

490
00:24:28.839 --> 00:24:32.759
<v Speaker 3>needs to be a stable, you know, trustworthy thing, Like

491
00:24:32.799 --> 00:24:34.640
<v Speaker 3>it's not something you actually want to be moving around

492
00:24:34.680 --> 00:24:36.559
<v Speaker 3>a lot or changing a lot. You want it to

493
00:24:36.559 --> 00:24:39.279
<v Speaker 3>be a sure foundation that you build your stuff on

494
00:24:39.359 --> 00:24:42.559
<v Speaker 3>top of. So there's this tension right now of like, oh, like, well,

495
00:24:42.559 --> 00:24:46.079
<v Speaker 3>we can do more right now by leveraging AI to

496
00:24:46.119 --> 00:24:48.680
<v Speaker 3>help us develop features and and you know, burn through

497
00:24:48.680 --> 00:24:53.160
<v Speaker 3>our backlog and quality and all these things, but still

498
00:24:53.200 --> 00:24:55.519
<v Speaker 3>only shipping on that yearly cadence kind of creates a

499
00:24:56.079 --> 00:24:57.359
<v Speaker 3>you know, we have to we have to wait a

500
00:24:57.400 --> 00:24:59.519
<v Speaker 3>little bit then to get some of those improvements.

501
00:24:59.759 --> 00:25:02.319
<v Speaker 2>That's so, that's funny. I was thinking there's got to

502
00:25:02.359 --> 00:25:05.119
<v Speaker 2>be features that take longer than a year to build too,

503
00:25:05.200 --> 00:25:06.559
<v Speaker 2>but I don't know if that's true.

504
00:25:06.599 --> 00:25:09.839
<v Speaker 3>There are those as well. Runtime asink I think is

505
00:25:09.920 --> 00:25:10.799
<v Speaker 3>like an example of that.

506
00:25:11.119 --> 00:25:14.839
<v Speaker 2>Oh my goodness, yeah, sharp Union's that's not the that's

507
00:25:14.880 --> 00:25:17.720
<v Speaker 2>not the Blazer team. That's the team trying to move

508
00:25:17.759 --> 00:25:20.400
<v Speaker 2>stuff what is it out of runtime and into or

509
00:25:20.440 --> 00:25:22.400
<v Speaker 2>out of language and into runtime.

510
00:25:22.079 --> 00:25:23.400
<v Speaker 3>Yeap, out of the compiler.

511
00:25:23.440 --> 00:25:25.960
<v Speaker 2>Basically, I don't envy that battle. That's a big deal

512
00:25:26.000 --> 00:25:27.559
<v Speaker 2>at that battle, have you guys.

513
00:25:27.559 --> 00:25:29.359
<v Speaker 3>So that's a big effort for eleven right now is

514
00:25:30.119 --> 00:25:33.480
<v Speaker 3>working through runtime asink, and a lot of it will

515
00:25:33.559 --> 00:25:35.920
<v Speaker 3>land in eleven so you can start using And I

516
00:25:35.920 --> 00:25:39.519
<v Speaker 3>think though the full story is probably a post eleven feature,

517
00:25:39.839 --> 00:25:41.400
<v Speaker 3>a lot of the runtime features are kind of like that.

518
00:25:41.440 --> 00:25:44.720
<v Speaker 3>Like another effort is the like the web assembly runtime

519
00:25:44.759 --> 00:25:48.559
<v Speaker 3>consolidation effort. Like right now, our current websmity runtime for

520
00:25:48.599 --> 00:25:51.440
<v Speaker 3>Donna is based on the old Mono code base. We're

521
00:25:51.480 --> 00:25:54.079
<v Speaker 3>trying to consolidate all of our runtime implementations to be

522
00:25:54.119 --> 00:25:57.599
<v Speaker 3>based on course, you'll are the mobile workloads have already

523
00:25:57.599 --> 00:26:00.240
<v Speaker 3>been working on that for a while. Webs somebodies of

524
00:26:00.279 --> 00:26:02.839
<v Speaker 3>sort of the last one in the line to top

525
00:26:03.079 --> 00:26:06.640
<v Speaker 3>that upgrade. That's also a multi release effort. Like a

526
00:26:06.640 --> 00:26:08.759
<v Speaker 3>good chunk of the Blazer team right now is actually

527
00:26:09.279 --> 00:26:13.680
<v Speaker 3>working on getting the new COURSELR based runtime stood up.

528
00:26:13.720 --> 00:26:15.680
<v Speaker 2>Well, because you guys care about wows and more than

529
00:26:15.720 --> 00:26:16.559
<v Speaker 2>just about anybody.

530
00:26:16.599 --> 00:26:18.799
<v Speaker 1>Well, I was gonna say, do you does the ASPNT

531
00:26:18.799 --> 00:26:23.279
<v Speaker 1>team core team push changes in the language? Does that

532
00:26:23.359 --> 00:26:24.480
<v Speaker 1>happen the other way too?

533
00:26:24.599 --> 00:26:24.720
<v Speaker 2>Oh?

534
00:26:24.799 --> 00:26:26.839
<v Speaker 1>Yeah, have you come to the language team and say hey,

535
00:26:26.839 --> 00:26:29.119
<v Speaker 1>we need this feature all the time and then they

536
00:26:29.119 --> 00:26:30.599
<v Speaker 1>come back and yeah, that's.

537
00:26:30.559 --> 00:26:32.400
<v Speaker 3>Definitely Like I'm well, a lot of the minimum API

538
00:26:32.920 --> 00:26:36.400
<v Speaker 3>development experience and how that works, oh involved like working

539
00:26:36.480 --> 00:26:39.680
<v Speaker 3>with the compiler folks and getting specific language features in

540
00:26:39.720 --> 00:26:42.480
<v Speaker 3>to make that experience really good, and the infrastructure around it.

541
00:26:43.319 --> 00:26:44.799
<v Speaker 3>You know, a lot of the stuff that was done

542
00:26:44.880 --> 00:26:48.039
<v Speaker 3>around source generators was done heavily in collaboration with the

543
00:26:48.039 --> 00:26:50.079
<v Speaker 3>ace minut core team for a lot of our scenarios

544
00:26:50.119 --> 00:26:52.759
<v Speaker 3>like Razor and Razor compilation was one of those, but

545
00:26:52.960 --> 00:26:54.920
<v Speaker 3>not the only one. There were others as well. Yeah,

546
00:26:54.920 --> 00:26:56.640
<v Speaker 3>I know that. That's one of the benefits actually of

547
00:26:57.400 --> 00:26:59.720
<v Speaker 3>that stack is we can all we have this very

548
00:26:59.720 --> 00:27:05.880
<v Speaker 3>fluid communication with across the stack, with run time frameworks, libraries, languages,

549
00:27:06.559 --> 00:27:10.440
<v Speaker 3>app models, tooling. We kind of own that all together

550
00:27:10.480 --> 00:27:12.720
<v Speaker 3>and try to deliver a cohesive in and experience.

551
00:27:12.759 --> 00:27:14.920
<v Speaker 1>How far is the walk between the Aspnut building and

552
00:27:14.960 --> 00:27:15.960
<v Speaker 1>the c sharp Well.

553
00:27:15.880 --> 00:27:18.079
<v Speaker 3>So a little I took his button on Microsoft Teams

554
00:27:18.119 --> 00:27:28.000
<v Speaker 3>and I just thought, well, okay, share the speaker, Hey toad, Yeah.

555
00:27:27.839 --> 00:27:30.160
<v Speaker 2>Are you guys all in twenty five when you are

556
00:27:30.200 --> 00:27:31.039
<v Speaker 2>on campus.

557
00:27:31.640 --> 00:27:33.720
<v Speaker 3>I'm actual pretty serius. A lot of us are remote

558
00:27:33.759 --> 00:27:37.319
<v Speaker 3>and spread across the world. The folks that are here

559
00:27:37.359 --> 00:27:40.039
<v Speaker 3>in the what I am in Washington. I'm in the

560
00:27:40.079 --> 00:27:43.200
<v Speaker 3>Seattle area, and building Building eighteen is where a lot

561
00:27:43.240 --> 00:27:46.839
<v Speaker 3>of us sit these days. We're going through our turncuse.

562
00:27:46.119 --> 00:27:48.000
<v Speaker 2>It's near like a two days a week in the

563
00:27:48.039 --> 00:27:50.400
<v Speaker 2>office or anything like. I don't know how that works.

564
00:27:50.559 --> 00:27:52.640
<v Speaker 3>Three days a week is what we're just transitioning to

565
00:27:53.279 --> 00:27:55.200
<v Speaker 3>now for books that are close enough to the office

566
00:27:55.200 --> 00:27:55.799
<v Speaker 3>to do.

567
00:27:55.920 --> 00:27:56.079
<v Speaker 2>Yeah.

568
00:27:56.279 --> 00:27:58.000
<v Speaker 3>Yeah, we get to see each other in person.

569
00:27:58.079 --> 00:28:00.559
<v Speaker 2>Yeah, yeah, that's cool. There's merited that, but at the

570
00:28:00.559 --> 00:28:03.279
<v Speaker 2>same time, it's like you've got pretty good workspaces at home, now,

571
00:28:03.440 --> 00:28:04.799
<v Speaker 2>like where are you most productive?

572
00:28:05.200 --> 00:28:08.200
<v Speaker 3>I know it's a it's tough, so I can tell

573
00:28:08.200 --> 00:28:09.559
<v Speaker 3>you there are a lot of people with mixed feelings

574
00:28:09.559 --> 00:28:12.160
<v Speaker 3>about it. I'm sure, yeah, but it'll be fun. It'll

575
00:28:12.200 --> 00:28:14.359
<v Speaker 3>be fun to be able to you know, be in

576
00:28:14.400 --> 00:28:17.160
<v Speaker 3>the in the office, to have those hallway chats and

577
00:28:17.160 --> 00:28:19.720
<v Speaker 3>and all that, but still having to do teams calls

578
00:28:19.720 --> 00:28:21.720
<v Speaker 3>because a lot of our people are are still remote,

579
00:28:21.799 --> 00:28:23.200
<v Speaker 3>like a lot of the yeah I work with on

580
00:28:23.279 --> 00:28:26.319
<v Speaker 3>Blazer and in Europe or in Prague, and we've got

581
00:28:26.359 --> 00:28:28.519
<v Speaker 3>people on the East Coast like they're they're all over

582
00:28:28.559 --> 00:28:30.640
<v Speaker 3>the place. So we're definitely a distributed team.

583
00:28:30.920 --> 00:28:33.160
<v Speaker 2>That's cool. Yeah, it's just the nature of the beast.

584
00:28:33.200 --> 00:28:35.920
<v Speaker 2>You're never not going to have the teams call on Yep,

585
00:28:37.039 --> 00:28:38.599
<v Speaker 2>the chance of everybody being there.

586
00:28:38.920 --> 00:28:41.880
<v Speaker 3>Everyone's pretty much hybrid, and you're gonna want it anyway,

587
00:28:41.960 --> 00:28:45.119
<v Speaker 3>right because who wants to like take notes there?

588
00:28:45.519 --> 00:28:47.359
<v Speaker 2>Yeah, we got we've got tools for that. You just

589
00:28:47.400 --> 00:28:50.279
<v Speaker 2>have to turn them off, yes, exactly. Yeah, it's fair.

590
00:28:50.160 --> 00:28:51.960
<v Speaker 1>Sounds like me trying to get all the horns to

591
00:28:52.000 --> 00:28:54.079
<v Speaker 1>come to rehearsal at the same time before a gig,

592
00:28:54.759 --> 00:28:55.759
<v Speaker 1>it's like pulling teeth.

593
00:28:55.920 --> 00:28:59.119
<v Speaker 2>They can't do that remote now they can't know I

594
00:28:59.119 --> 00:29:04.440
<v Speaker 2>mean on over there. But yeah, I'm pretty sure. Did

595
00:29:04.480 --> 00:29:06.440
<v Speaker 2>I say that out loud? I'm sorry, I take it.

596
00:29:07.759 --> 00:29:08.640
<v Speaker 2>We should take a break.

597
00:29:09.079 --> 00:29:10.920
<v Speaker 1>Yeah, let's take a break. It's a good time and

598
00:29:10.960 --> 00:29:13.839
<v Speaker 1>we'll be right back after these very important messages don't

599
00:29:13.839 --> 00:29:19.799
<v Speaker 1>go away, and we're back. It's dot net Rock. So

600
00:29:19.799 --> 00:29:23.599
<v Speaker 1>I'm Carl Franklin's Richard Campbell, Hey, and that's Daniel Roth

601
00:29:23.680 --> 00:29:29.880
<v Speaker 1>and we're talking ASPNT core ten C sharp and let's

602
00:29:29.880 --> 00:29:34.519
<v Speaker 1>talk about dot net eleven, the future, the future.

603
00:29:35.119 --> 00:29:37.480
<v Speaker 3>What's coming down. Yeah, we're hard to work at Donna

604
00:29:37.480 --> 00:29:41.039
<v Speaker 3>at eleven. Already the team is is already delivering new features.

605
00:29:41.039 --> 00:29:44.400
<v Speaker 3>So PREV two is already out, and we have published

606
00:29:44.400 --> 00:29:48.680
<v Speaker 3>our roadmap for acep core, which includes Blazer for for

607
00:29:48.720 --> 00:29:51.559
<v Speaker 3>donin at eleven. You can find that on in our

608
00:29:51.599 --> 00:29:53.960
<v Speaker 3>GitHub repo. It's just a get up issue if you

609
00:29:54.000 --> 00:29:57.680
<v Speaker 3>want a short link aka dot ms slash acep net

610
00:29:57.839 --> 00:30:01.720
<v Speaker 3>slash roadmap, and that's where you'll find it. And there's

611
00:30:01.839 --> 00:30:05.920
<v Speaker 3>kind of like four high level themes I would say

612
00:30:06.000 --> 00:30:09.880
<v Speaker 3>to what we're focusing on this year. The first one

613
00:30:09.960 --> 00:30:12.000
<v Speaker 3>is pretty broad. It's just like you know, addressed top

614
00:30:12.039 --> 00:30:15.000
<v Speaker 3>pain points and uh and and feedback that we have

615
00:30:15.039 --> 00:30:17.640
<v Speaker 3>in our repo. So everyone who has your your favorite

616
00:30:17.680 --> 00:30:19.640
<v Speaker 3>issue that's sitting in the a spit core repo that

617
00:30:19.680 --> 00:30:22.119
<v Speaker 3>you really want addressed, that's been there for a while.

618
00:30:22.279 --> 00:30:24.839
<v Speaker 3>We look at, you know, all those thumbs up reactions

619
00:30:24.880 --> 00:30:27.039
<v Speaker 3>on the original posts. We look at people commenting and

620
00:30:27.079 --> 00:30:29.319
<v Speaker 3>telling us that this is important, and we're trying to

621
00:30:29.319 --> 00:30:32.480
<v Speaker 3>really push to get those into the stack, even some

622
00:30:32.519 --> 00:30:34.680
<v Speaker 3>things that have been around for for a while. So

623
00:30:34.799 --> 00:30:36.599
<v Speaker 3>things in that bucket, Like one of the big ones

624
00:30:36.680 --> 00:30:40.440
<v Speaker 3>is we're finally going to do a sync validation in

625
00:30:40.559 --> 00:30:42.960
<v Speaker 3>asp net core. I think we've had that one in

626
00:30:43.319 --> 00:30:46.000
<v Speaker 3>the backlog since I've been working on the stack.

627
00:30:46.119 --> 00:30:51.759
<v Speaker 1>Wow, are you saying validation is synchronous?

628
00:30:51.880 --> 00:30:52.880
<v Speaker 3>Got framework?

629
00:30:52.920 --> 00:30:55.000
<v Speaker 1>It is? I know a lot of people you got

630
00:30:55.000 --> 00:30:58.880
<v Speaker 1>to wait to push the button before you can get

631
00:30:58.960 --> 00:31:01.640
<v Speaker 1>the validation. I think that's what you're talking about.

632
00:31:01.720 --> 00:31:03.720
<v Speaker 3>Yeah, well, I mean you want to check your username

633
00:31:03.759 --> 00:31:05.799
<v Speaker 3>to see if it's already taken in the database and

634
00:31:05.839 --> 00:31:08.640
<v Speaker 3>things like that. So people have been using things like

635
00:31:08.680 --> 00:31:12.359
<v Speaker 3>fluent validation and other third party libraries to achieve that

636
00:31:12.440 --> 00:31:15.160
<v Speaker 3>for quite a while, we've we've decided that there's been

637
00:31:15.240 --> 00:31:17.680
<v Speaker 3>enough people complaining about this that it's finally time to

638
00:31:17.880 --> 00:31:19.599
<v Speaker 3>go do it. So we're going to do it for minimapis,

639
00:31:19.640 --> 00:31:22.400
<v Speaker 3>we'll do it for for a Blazer, and we're actually

640
00:31:22.400 --> 00:31:24.480
<v Speaker 3>working with the Core libraries team to push this down

641
00:31:24.519 --> 00:31:28.359
<v Speaker 3>into like system component model data annotations and the core

642
00:31:28.720 --> 00:31:32.119
<v Speaker 3>abstraction layers, so that ACINC validation now becomes a first

643
00:31:32.160 --> 00:31:35.039
<v Speaker 3>class feature across the stack. Yeah, involves a lot of

644
00:31:35.039 --> 00:31:37.759
<v Speaker 3>work again on compatibility. Like we were talking before, we

645
00:31:37.839 --> 00:31:39.960
<v Speaker 3>care a lot about compatibility and a lot of people

646
00:31:40.079 --> 00:31:43.759
<v Speaker 3>use those abstractions. So making sure that when you know

647
00:31:44.599 --> 00:31:46.960
<v Speaker 3>code with ACYNC validation logic now shows up in the

648
00:31:47.000 --> 00:31:50.680
<v Speaker 3>graph that we have good reasonable behaviors, good good compatibility

649
00:31:50.720 --> 00:31:54.000
<v Speaker 3>story for how that will be will be handled, and

650
00:31:54.039 --> 00:31:56.440
<v Speaker 3>then up in the app model layers like in Blazer,

651
00:31:56.599 --> 00:32:00.599
<v Speaker 3>you know, providing you with the ability to provide the

652
00:32:00.640 --> 00:32:02.920
<v Speaker 3>right user experiences when you know validation kicks off and

653
00:32:02.920 --> 00:32:04.400
<v Speaker 3>now well it might take a little while while I

654
00:32:04.440 --> 00:32:06.680
<v Speaker 3>go talk to the database to validate what you're doing,

655
00:32:06.960 --> 00:32:08.640
<v Speaker 3>that you can provide a user experience to say, hey,

656
00:32:08.680 --> 00:32:11.319
<v Speaker 3>hold on a second, I'm checking that that input here's

657
00:32:11.319 --> 00:32:14.359
<v Speaker 3>a little spinner or something until the actual validation input

658
00:32:14.400 --> 00:32:17.440
<v Speaker 3>comes comes back. So yeah, ACINC validation was the top

659
00:32:17.480 --> 00:32:19.799
<v Speaker 3>requested feature. So we're gonna we're gonna take a look

660
00:32:19.799 --> 00:32:21.599
<v Speaker 3>at that. And there's a bucket of those, Like, there's

661
00:32:21.599 --> 00:32:23.200
<v Speaker 3>a lot of them that are in the stack.

662
00:32:23.039 --> 00:32:25.880
<v Speaker 2>That and do you do that validation through the existing

663
00:32:25.960 --> 00:32:28.839
<v Speaker 2>c sharp ACINC or are you hanging in for runtime ACNC,

664
00:32:28.920 --> 00:32:30.160
<v Speaker 2>Like where does that play?

665
00:32:30.319 --> 00:32:32.559
<v Speaker 3>It's I mean runtime ACINC I think, just takes the

666
00:32:32.599 --> 00:32:35.519
<v Speaker 3>existing acc model and makes it effectively more efficient, Like

667
00:32:35.559 --> 00:32:39.279
<v Speaker 3>it takes of the what the state machine being generated

668
00:32:39.279 --> 00:32:42.519
<v Speaker 3>by the compiler runtime ACENC moves that into the run

669
00:32:42.559 --> 00:32:46.359
<v Speaker 3>time itself, which should dramatically improve performance for people that

670
00:32:46.400 --> 00:32:48.960
<v Speaker 3>have acinc code today. So this just means you use

671
00:32:49.000 --> 00:32:52.079
<v Speaker 3>the c sharp ACNC coding model to write your ACINC

672
00:32:52.160 --> 00:32:55.119
<v Speaker 3>validation logic and then it gets even faster thanks.

673
00:32:54.960 --> 00:32:57.359
<v Speaker 2>To and your expectation is once it gets when the

674
00:32:57.400 --> 00:33:00.480
<v Speaker 2>runtime acinc becomes real, it'll just run just better.

675
00:33:00.559 --> 00:33:03.240
<v Speaker 3>Yeah that's exactly right. Cool yep, so big bucket up.

676
00:33:03.319 --> 00:33:05.640
<v Speaker 2>Just as I remember, I remember I was having a

677
00:33:05.640 --> 00:33:08.119
<v Speaker 2>conversation with Andrews about a sink back in the day,

678
00:33:08.160 --> 00:33:10.440
<v Speaker 2>and this has got to be a decade plus ago.

679
00:33:10.680 --> 00:33:12.839
<v Speaker 2>It's like, well, I have control of the language. I

680
00:33:12.839 --> 00:33:14.799
<v Speaker 2>could get that to happen here. We could get it

681
00:33:14.799 --> 00:33:17.640
<v Speaker 2>to happen in the runtime. Ye like that that used

682
00:33:17.680 --> 00:33:19.519
<v Speaker 2>to be the way. It's it's nice to have everyone

683
00:33:19.559 --> 00:33:22.039
<v Speaker 2>working closer together on these kinds of problems. That and

684
00:33:22.039 --> 00:33:24.079
<v Speaker 2>and ACYNC became a hit. I don't know that he

685
00:33:24.160 --> 00:33:27.240
<v Speaker 2>knew at that time, Like there's a C plus plus

686
00:33:27.240 --> 00:33:29.000
<v Speaker 2>inmvalentation of a sync now.

687
00:33:29.440 --> 00:33:33.119
<v Speaker 3>Started a wave movements when it hit.

688
00:33:33.559 --> 00:33:35.200
<v Speaker 1>When it hit JavaScript, I was like.

689
00:33:35.119 --> 00:33:38.079
<v Speaker 2>It was the right syntax. You know that people could

690
00:33:38.119 --> 00:33:38.400
<v Speaker 2>dig it.

691
00:33:38.440 --> 00:33:41.640
<v Speaker 1>When it hit JavaScript, I knew, Wow, this is way

692
00:33:41.680 --> 00:33:44.160
<v Speaker 1>bigger than way bigger than we thought.

693
00:33:44.200 --> 00:33:46.240
<v Speaker 3>So we also have a bucket of fundamentals work so

694
00:33:46.440 --> 00:33:49.559
<v Speaker 3>again purpose part of our culture, some more performance improvements,

695
00:33:49.839 --> 00:33:54.319
<v Speaker 3>security focus. We do added Pasky support and ten for

696
00:33:54.799 --> 00:33:57.960
<v Speaker 3>acemic Core applications for folks that are using acemit core identity.

697
00:33:58.319 --> 00:34:00.160
<v Speaker 3>We have a number of follow up items there that

698
00:34:00.200 --> 00:34:03.119
<v Speaker 3>we want to do to flesh out the user experiences

699
00:34:03.119 --> 00:34:07.319
<v Speaker 3>that are enabled more observability, some more tracing diagnostics, and

700
00:34:07.359 --> 00:34:09.320
<v Speaker 3>we do a lot of that work in collaboration with

701
00:34:09.320 --> 00:34:11.599
<v Speaker 3>our friends on the Aspire team, so you get that

702
00:34:11.639 --> 00:34:15.599
<v Speaker 3>awesome experience in the Aspired dashboard and open telemetry based

703
00:34:15.920 --> 00:34:18.840
<v Speaker 3>monitoring of your application. So we'll continue to push on

704
00:34:18.960 --> 00:34:24.639
<v Speaker 3>cross cutting fundamentals. Our primary investments will be in our

705
00:34:24.760 --> 00:34:27.679
<v Speaker 3>what we think of as our modern stack in ACE

706
00:34:27.800 --> 00:34:32.199
<v Speaker 3>net core, so think like minimal APIs blazers are recommended.

707
00:34:32.400 --> 00:34:37.559
<v Speaker 3>Webi offering minimal APIs for API development signal R. We

708
00:34:37.599 --> 00:34:40.239
<v Speaker 3>still of course love and support our NBC developers and

709
00:34:40.239 --> 00:34:43.480
<v Speaker 3>our Razor Pages developers and people building API controllers, but

710
00:34:43.519 --> 00:34:45.639
<v Speaker 3>that's not really where we're like investing.

711
00:34:45.760 --> 00:34:46.679
<v Speaker 1>You're not innovating.

712
00:34:47.119 --> 00:34:50.159
<v Speaker 3>Yeah, that's not where we're trying to optimize. But you

713
00:34:50.159 --> 00:34:52.119
<v Speaker 3>can feel good your apps will continue to work and

714
00:34:52.119 --> 00:34:54.559
<v Speaker 3>they'll get all the other benefits from the platform improvements.

715
00:34:54.599 --> 00:34:56.920
<v Speaker 3>You'll get c Shark, Clipteen, and you'll get all those

716
00:34:57.039 --> 00:34:58.159
<v Speaker 3>performance improvements.

717
00:34:58.480 --> 00:35:01.840
<v Speaker 1>But for the app more, it seems from your attitude

718
00:35:01.840 --> 00:35:05.199
<v Speaker 1>that people get really persnickety about that, Like do they

719
00:35:05.199 --> 00:35:07.760
<v Speaker 1>complain to you, It's like, so what are you killing MVC?

720
00:35:08.480 --> 00:35:10.360
<v Speaker 3>Oh, they get nervous, I mean they want to know

721
00:35:10.400 --> 00:35:12.599
<v Speaker 3>that they app we're gonna you know, stop working in

722
00:35:12.639 --> 00:35:15.079
<v Speaker 3>the future, that they'll still continue to get dirty update.

723
00:35:14.960 --> 00:35:17.360
<v Speaker 2>Like they're just gonna fall down, right, you know, Yeah,

724
00:35:17.480 --> 00:35:19.039
<v Speaker 2>well burst into flames.

725
00:35:19.079 --> 00:35:22.119
<v Speaker 3>And the support, like the support matters, Like you want

726
00:35:22.119 --> 00:35:23.840
<v Speaker 3>to know that security fixes are going to keep coming

727
00:35:23.920 --> 00:35:26.239
<v Speaker 3>coming your way. Yeah, of course, Yeah, And I think

728
00:35:26.239 --> 00:35:28.320
<v Speaker 3>we have I mean, we have a There's been certainly

729
00:35:28.360 --> 00:35:31.280
<v Speaker 3>some cases in the past where Microsoft has you know,

730
00:35:31.760 --> 00:35:35.400
<v Speaker 3>caused people pain, you know, the the he who should

731
00:35:35.440 --> 00:35:38.400
<v Speaker 3>not be named silver Light situation for example, you know,

732
00:35:38.480 --> 00:35:39.039
<v Speaker 3>things like that.

733
00:35:39.199 --> 00:35:42.400
<v Speaker 2>Yeah, to be clear, there's one scenario and people are

734
00:35:42.440 --> 00:35:43.320
<v Speaker 2>still upset about it.

735
00:35:43.400 --> 00:35:46.039
<v Speaker 1>Yeah, that's the only scenario really, and it was and

736
00:35:46.159 --> 00:35:47.960
<v Speaker 1>it was the right call by Microsoft.

737
00:35:48.119 --> 00:35:51.599
<v Speaker 2>I might say it was the right corption. I would

738
00:35:51.679 --> 00:35:54.159
<v Speaker 2>say there were better ways to go about doing the

739
00:35:54.239 --> 00:35:54.679
<v Speaker 2>right thing.

740
00:35:54.920 --> 00:35:57.840
<v Speaker 1>Yeah, well their hand, their hand was forced, and.

741
00:35:57.880 --> 00:35:58.760
<v Speaker 2>I don't disagree.

742
00:35:58.800 --> 00:36:00.199
<v Speaker 3>Water under the bridge at this point.

743
00:36:00.239 --> 00:36:01.119
<v Speaker 2>But Blazer.

744
00:36:02.800 --> 00:36:06.840
<v Speaker 1>Doesn't matter. The browsers moved on, it wouldn't matter anyway.

745
00:36:07.039 --> 00:36:07.280
<v Speaker 2>Yeah.

746
00:36:07.360 --> 00:36:08.880
<v Speaker 3>I think it's really funny that people, a lot of

747
00:36:08.880 --> 00:36:10.519
<v Speaker 3>people were asking me about like, how do I know

748
00:36:10.519 --> 00:36:12.400
<v Speaker 3>Blazer's not going to be the next silver Light? Even

749
00:36:12.760 --> 00:36:13.719
<v Speaker 3>today they still asked me that.

750
00:36:13.840 --> 00:36:14.800
<v Speaker 1>Yeah, you still do me too.

751
00:36:14.840 --> 00:36:17.920
<v Speaker 3>And I think it's ironic that the same websamby runtime

752
00:36:17.960 --> 00:36:20.639
<v Speaker 3>that we use is actually used by this community project

753
00:36:20.679 --> 00:36:23.519
<v Speaker 3>called open silver, which is a reimplementation of silver Light

754
00:36:23.960 --> 00:36:26.840
<v Speaker 3>but based on our webssembly runtime. So you can still

755
00:36:26.920 --> 00:36:29.800
<v Speaker 3>run silver Light apps in a browser using the runtime

756
00:36:29.800 --> 00:36:31.960
<v Speaker 3>that we built for Blazer. So no, Blazer is not

757
00:36:32.000 --> 00:36:36.199
<v Speaker 3>silver Light, but it helped, I guess, resuscitate it in

758
00:36:36.280 --> 00:36:37.960
<v Speaker 3>an open source way.

759
00:36:38.199 --> 00:36:40.119
<v Speaker 1>If you really want to run that code, if you

760
00:36:40.159 --> 00:36:41.639
<v Speaker 1>really want it, you can do it.

761
00:36:42.079 --> 00:36:45.000
<v Speaker 2>Yeah. Yeah, And we did shows with the open Silver

762
00:36:45.079 --> 00:36:48.440
<v Speaker 2>guys back in the you know, as silver Light was

763
00:36:48.519 --> 00:36:50.400
<v Speaker 2>finally coming out of support. I think it was twenty

764
00:36:50.440 --> 00:36:54.159
<v Speaker 2>twenty one, you know, we were they they got done

765
00:36:54.159 --> 00:36:56.800
<v Speaker 2>in time. I just don't know how many people actually

766
00:36:56.840 --> 00:36:59.880
<v Speaker 2>were still using it at that point. Like from a

767
00:37:00.760 --> 00:37:06.400
<v Speaker 2>CISDMIN perspective, to be able to run the silver Light

768
00:37:06.519 --> 00:37:10.679
<v Speaker 2>plug in right now is incredibly hard. It only runs,

769
00:37:11.159 --> 00:37:13.239
<v Speaker 2>it only runs an I E eleven, It only runs

770
00:37:13.280 --> 00:37:16.119
<v Speaker 2>in a particular compatibility mode, like you have to jump

771
00:37:16.159 --> 00:37:19.960
<v Speaker 2>through some hoops to make it actually allow that plug

772
00:37:19.960 --> 00:37:20.280
<v Speaker 2>in to run.

773
00:37:20.360 --> 00:37:22.960
<v Speaker 1>And why would you run it in an in an

774
00:37:22.960 --> 00:37:26.519
<v Speaker 1>old browser that doesn't have the latest security patches or

775
00:37:26.559 --> 00:37:28.960
<v Speaker 1>anything like that. It's completely insecure.

776
00:37:29.239 --> 00:37:32.480
<v Speaker 2>Well it does. It's a main it's a it is

777
00:37:32.559 --> 00:37:38.320
<v Speaker 2>a maintained mode strictly the internal you know, for certain companies,

778
00:37:38.320 --> 00:37:41.119
<v Speaker 2>and they still exist that need that plug in to run.

779
00:37:41.239 --> 00:37:44.159
<v Speaker 2>But it is I've done, show, I done run as

780
00:37:44.239 --> 00:37:46.960
<v Speaker 2>is on this like, it is not easy to tease

781
00:37:47.039 --> 00:37:50.000
<v Speaker 2>that thing back to life. It is not for public consumption.

782
00:37:50.079 --> 00:37:53.000
<v Speaker 2>It is purely for old school compat.

783
00:37:52.719 --> 00:37:54.840
<v Speaker 1>Well, when I was excited about silver Light, it wasn't

784
00:37:54.840 --> 00:37:57.760
<v Speaker 1>because I was excited about plugins. It was only later

785
00:37:57.800 --> 00:38:00.639
<v Speaker 1>when I realized that when like the rest of us,

786
00:38:00.679 --> 00:38:05.239
<v Speaker 1>that plugins were dangerously insecure. That and that's why I

787
00:38:05.239 --> 00:38:06.880
<v Speaker 1>think it was the right call. But the whole browser

788
00:38:06.880 --> 00:38:10.480
<v Speaker 1>community moved on to extensions, which are a completely secure

789
00:38:10.679 --> 00:38:13.239
<v Speaker 1>version of plug ins, which weren't well.

790
00:38:13.079 --> 00:38:15.119
<v Speaker 3>With asp do on net. I think we have a

791
00:38:15.159 --> 00:38:17.760
<v Speaker 3>pretty good track record, Like there are lots of people

792
00:38:17.960 --> 00:38:21.079
<v Speaker 3>happily running their web forms, apps, their ACE, NBC apps,

793
00:38:21.119 --> 00:38:24.639
<v Speaker 3>apint Webpi, and it's still fully supported, and it's been

794
00:38:24.679 --> 00:38:27.039
<v Speaker 3>supported for a long long time, and we expected to

795
00:38:27.039 --> 00:38:29.239
<v Speaker 3>be supported for a long long time in the future.

796
00:38:29.639 --> 00:38:33.320
<v Speaker 3>Same thing with anit core, NBC ACEPNIT core APIs like those,

797
00:38:33.679 --> 00:38:35.880
<v Speaker 3>you can feel good you'll continue to get platform improvements

798
00:38:35.880 --> 00:38:37.480
<v Speaker 3>on those for for a while. But we were going

799
00:38:37.559 --> 00:38:41.519
<v Speaker 3>to be focusing our investments in eleven on our modern

800
00:38:41.559 --> 00:38:44.360
<v Speaker 3>stacks of minimal ada Blazer. That's where we're really trying

801
00:38:44.400 --> 00:38:46.719
<v Speaker 3>to direct people, and you can see that in a

802
00:38:46.719 --> 00:38:48.679
<v Speaker 3>lot of the features that we have planned.

803
00:38:48.800 --> 00:38:52.239
<v Speaker 1>So I got a question and dot ten you when

804
00:38:52.239 --> 00:38:56.480
<v Speaker 1>we talked on Blazer Train, you said that there is

805
00:38:56.519 --> 00:38:59.519
<v Speaker 1>a new feature in dot ten about being able to

806
00:38:59.559 --> 00:39:04.800
<v Speaker 1>decorate properties of a class with an attribute that would

807
00:39:04.800 --> 00:39:10.719
<v Speaker 1>allow them to persist you know, through browser storage local storage,

808
00:39:11.159 --> 00:39:14.760
<v Speaker 1>which is really cool, you know, for using for keeping

809
00:39:14.800 --> 00:39:18.840
<v Speaker 1>state around, right, especially for a component state. Yeah, you

810
00:39:18.880 --> 00:39:22.639
<v Speaker 1>disconnect and reconnect and it's right there, something that I've

811
00:39:22.679 --> 00:39:25.119
<v Speaker 1>been doing through my components and talking about on Blazer

812
00:39:25.159 --> 00:39:28.199
<v Speaker 1>Train a lot. And people got confused and they're like, well,

813
00:39:28.239 --> 00:39:29.960
<v Speaker 1>does that mean that I don't need to have an

814
00:39:30.000 --> 00:39:32.960
<v Speaker 1>app state component? No, you still do. You still have

815
00:39:33.039 --> 00:39:36.719
<v Speaker 1>to have a container for your state. You know, that's

816
00:39:36.760 --> 00:39:38.639
<v Speaker 1>not going to write it for you, but now you

817
00:39:39.000 --> 00:39:41.639
<v Speaker 1>can persist it. That's what it's all about. But in

818
00:39:41.719 --> 00:39:44.840
<v Speaker 1>dot net eleven, I see that there's some new persistence

819
00:39:45.079 --> 00:39:46.400
<v Speaker 1>stuff for state.

820
00:39:46.480 --> 00:39:49.280
<v Speaker 3>Yeah, so we did the pause and resume support and

821
00:39:49.360 --> 00:39:52.440
<v Speaker 3>the declarative persistent component state support and DOT at ten.

822
00:39:52.559 --> 00:39:55.320
<v Speaker 3>So those features are already available. So if like, for example,

823
00:39:56.079 --> 00:39:59.760
<v Speaker 3>if you're pre rendering your components before they become interactive, yeah,

824
00:40:00.119 --> 00:40:03.079
<v Speaker 3>and you have to acquire a bunch of state during

825
00:40:03.360 --> 00:40:05.480
<v Speaker 3>that pre rendering stage where you're just basically going to

826
00:40:05.519 --> 00:40:09.239
<v Speaker 3>statically render your components as HTML, and then when the

827
00:40:09.280 --> 00:40:12.800
<v Speaker 3>components then wire up interactively like either either doing the

828
00:40:12.880 --> 00:40:15.960
<v Speaker 3>Blazer server thing or Blazer web assembly, often you end

829
00:40:16.079 --> 00:40:19.599
<v Speaker 3>up acquiring that state again. So to avoid doing that twice,

830
00:40:19.679 --> 00:40:21.320
<v Speaker 3>you can just take the state that you got during

831
00:40:21.360 --> 00:40:25.079
<v Speaker 3>the pre rendering and persist it into the page so

832
00:40:25.119 --> 00:40:28.119
<v Speaker 3>that it can be reused when the components render interactively.

833
00:40:28.119 --> 00:40:30.960
<v Speaker 3>That makes things more efficient and it improves the user experience.

834
00:40:31.400 --> 00:40:33.519
<v Speaker 3>Prior to DOT in ten, it was a little clunky

835
00:40:33.559 --> 00:40:35.760
<v Speaker 3>to do that, like there was some APIs and services

836
00:40:35.800 --> 00:40:37.199
<v Speaker 3>that you had to wire up in the right way.

837
00:40:37.599 --> 00:40:39.880
<v Speaker 3>In ten, there's just an attribute like you slap it

838
00:40:39.920 --> 00:40:41.519
<v Speaker 3>on a property and say this is the state that

839
00:40:41.559 --> 00:40:45.000
<v Speaker 3>I need persisted so that when I render interactively, I'm

840
00:40:45.039 --> 00:40:47.639
<v Speaker 3>good to go. So it's much easier. We then took

841
00:40:47.679 --> 00:40:50.719
<v Speaker 3>that model and made it so that when your circuits

842
00:40:51.239 --> 00:40:56.119
<v Speaker 3>are potentially going to get evicted or might or being

843
00:40:56.199 --> 00:40:59.800
<v Speaker 3>explicitly paused, you can take the state of your server

844
00:41:01.239 --> 00:41:03.840
<v Speaker 3>hosted circuits and persist them so that they can be

845
00:41:03.920 --> 00:41:07.679
<v Speaker 3>again rehydrated. Like this might happen if your like your client,

846
00:41:07.760 --> 00:41:10.840
<v Speaker 3>becomes disconnected for an extended period of time, Blazer will

847
00:41:10.840 --> 00:41:13.079
<v Speaker 3>try to hold on to your the circuit state the

848
00:41:13.079 --> 00:41:15.239
<v Speaker 3>server state for at least a little while. I think

849
00:41:15.280 --> 00:41:18.119
<v Speaker 3>the faults like three minutes. But if the client doesn't reconnect,

850
00:41:18.440 --> 00:41:20.360
<v Speaker 3>then the server's going to say, well, I guess they're gone,

851
00:41:20.400 --> 00:41:22.440
<v Speaker 3>and it will evict the circuit and the user's state

852
00:41:22.519 --> 00:41:24.159
<v Speaker 3>is gone. If they try to then come back and say,

853
00:41:24.159 --> 00:41:27.159
<v Speaker 3>like five minutes later, then they're basically back to the

854
00:41:27.159 --> 00:41:31.480
<v Speaker 3>beginning again. With state persistence the component state persistence, you

855
00:41:31.480 --> 00:41:34.920
<v Speaker 3>can before the component gets the circuit gets evicted, it

856
00:41:35.000 --> 00:41:37.960
<v Speaker 3>can save its state, and then when the user comes back,

857
00:41:38.000 --> 00:41:39.679
<v Speaker 3>it can just oh, be like, I know who you are.

858
00:41:39.719 --> 00:41:42.360
<v Speaker 3>I'll just recreate your circuit for you from the persistent state,

859
00:41:42.400 --> 00:41:45.760
<v Speaker 3>and you're good to go. That will actually happen automatically

860
00:41:45.920 --> 00:41:48.920
<v Speaker 3>for you in ten the thing you can do manually

861
00:41:48.960 --> 00:41:51.840
<v Speaker 3>also is you can request that the circuit be paused.

862
00:41:52.199 --> 00:41:55.800
<v Speaker 3>So like let's say the the user minimizes the browser

863
00:41:56.000 --> 00:41:58.280
<v Speaker 3>and goes to lunch, Well, you've got the circuit sitting

864
00:41:58.280 --> 00:42:01.400
<v Speaker 3>there on the server and the connection like, well, it's

865
00:42:01.440 --> 00:42:04.360
<v Speaker 3>not doing anything, it's just wasting your server resources. You

866
00:42:05.320 --> 00:42:07.239
<v Speaker 3>could detect that that happened and say like, well that's

867
00:42:07.239 --> 00:42:09.320
<v Speaker 3>not even visible. Let me just pause the circuit and

868
00:42:09.360 --> 00:42:12.000
<v Speaker 3>that will evict it and persist it, and then when

869
00:42:12.039 --> 00:42:14.880
<v Speaker 3>the browser becomes visible again, you can have logic that says, oh,

870
00:42:14.920 --> 00:42:16.719
<v Speaker 3>now we should recreate that circuit for them so they

871
00:42:16.719 --> 00:42:21.360
<v Speaker 3>can continue using the app. That API for explicitly pausing

872
00:42:22.039 --> 00:42:25.280
<v Speaker 3>and resuming is in ten is a client side API.

873
00:42:25.280 --> 00:42:29.000
<v Speaker 3>It's like a JavaScript API. We didn't get the server

874
00:42:29.360 --> 00:42:33.440
<v Speaker 3>based ability to persist the circuit and rehydrate it in ten.

875
00:42:33.480 --> 00:42:37.280
<v Speaker 3>We'll we'll have that done in the eleven, and we'll

876
00:42:37.280 --> 00:42:39.239
<v Speaker 3>give you also of some of the policies that we

877
00:42:39.320 --> 00:42:43.079
<v Speaker 3>had talked about enabling intent, Like you know you're about

878
00:42:43.079 --> 00:42:45.360
<v Speaker 3>to restart the server, and so you want to actually

879
00:42:45.599 --> 00:42:47.559
<v Speaker 3>take all the circuits that you currently have active and

880
00:42:47.559 --> 00:42:49.199
<v Speaker 3>save them so that when the server comes back up,

881
00:42:49.199 --> 00:42:51.719
<v Speaker 3>you can resume them. Ideally, you want to run some

882
00:42:51.760 --> 00:42:54.199
<v Speaker 3>server side code for dealing with that type of stuff

883
00:42:54.800 --> 00:42:57.000
<v Speaker 3>in eleven will make that much more and more easier

884
00:42:57.039 --> 00:42:58.239
<v Speaker 3>to deal with and handle.

885
00:42:58.320 --> 00:43:01.920
<v Speaker 1>And here's here's a tip. Guys. You know we were

886
00:43:01.960 --> 00:43:07.599
<v Speaker 1>talking about using pre rendering, right and so on initialized

887
00:43:07.679 --> 00:43:09.559
<v Speaker 1>is going to fire twice, once in the pre rendered

888
00:43:09.559 --> 00:43:15.000
<v Speaker 1>state and once when it's complete. I've had projects where

889
00:43:15.159 --> 00:43:19.320
<v Speaker 1>that on initialized code takes a while, you know, to

890
00:43:19.840 --> 00:43:21.599
<v Speaker 1>load everything. It's got to go out to the database,

891
00:43:21.599 --> 00:43:23.800
<v Speaker 1>it's got to fetch a bunch of stuff, boom, put

892
00:43:23.840 --> 00:43:26.519
<v Speaker 1>it all together. And you don't really want that pause

893
00:43:26.559 --> 00:43:28.599
<v Speaker 1>in the pre rendered state. So what I do is

894
00:43:28.639 --> 00:43:31.840
<v Speaker 1>I just get dummy stuff, you know, and use that

895
00:43:31.920 --> 00:43:34.239
<v Speaker 1>in the pre rendered state and then wait until I'm

896
00:43:34.320 --> 00:43:39.400
<v Speaker 1>not you know, until i'm full fully complete on the

897
00:43:39.440 --> 00:43:42.440
<v Speaker 1>second pass to do the actual loading of data.

898
00:43:42.719 --> 00:43:42.920
<v Speaker 2>Yep.

899
00:43:43.400 --> 00:43:44.519
<v Speaker 1>But you could do that too.

900
00:43:44.599 --> 00:43:48.280
<v Speaker 3>You can even stream that pre rendered content. We support

901
00:43:48.360 --> 00:43:52.119
<v Speaker 3>streaming rendering for static rendering. So streaming rendering will basically

902
00:43:52.159 --> 00:43:54.440
<v Speaker 3>say like, I want to statically render this page, but

903
00:43:54.840 --> 00:43:57.920
<v Speaker 3>while doing that, if there's like some long running asynchronous

904
00:43:57.960 --> 00:44:00.920
<v Speaker 3>task that happens in the middle of that logic instead

905
00:44:00.920 --> 00:44:04.039
<v Speaker 3>of just having the client weight for any HTML to

906
00:44:04.039 --> 00:44:06.679
<v Speaker 3>show up, Go ahead and send the first batch down

907
00:44:06.719 --> 00:44:08.679
<v Speaker 3>like whatever you got, send it down, and then when

908
00:44:08.719 --> 00:44:12.079
<v Speaker 3>that task complete, send the following follow up batch and

909
00:44:12.119 --> 00:44:14.519
<v Speaker 3>just patch that into the the dom for me. That

910
00:44:14.599 --> 00:44:17.199
<v Speaker 3>works with pre rendering us as as well. So you could,

911
00:44:17.880 --> 00:44:20.239
<v Speaker 3>you know, implement some like you know, i'mloading dot dot

912
00:44:20.280 --> 00:44:22.880
<v Speaker 3>dot even in that static rendered state that then gets

913
00:44:22.880 --> 00:44:25.920
<v Speaker 3>filled in once the database query or whatever it is

914
00:44:25.920 --> 00:44:27.320
<v Speaker 3>that you're doing completes.

915
00:44:27.519 --> 00:44:30.119
<v Speaker 1>Yeah, good stuff, But I love being able to choose

916
00:44:30.719 --> 00:44:33.280
<v Speaker 1>how that works based on the complexity or the size

917
00:44:33.360 --> 00:44:34.400
<v Speaker 1>or the scale of your app.

918
00:44:34.480 --> 00:44:38.239
<v Speaker 3>The thing I hope that that all this work on

919
00:44:38.320 --> 00:44:40.719
<v Speaker 3>pause and resume and state persistence really enables is I

920
00:44:40.719 --> 00:44:44.920
<v Speaker 3>know that some people get some anxiety about the scaling

921
00:44:45.119 --> 00:44:47.760
<v Speaker 3>characteristics of laser server based apps. You know, I have

922
00:44:47.800 --> 00:44:50.000
<v Speaker 3>all these circuits that you're maintaining for the users that

923
00:44:50.039 --> 00:44:52.239
<v Speaker 3>are connected to your application. You have all these connections.

924
00:44:53.239 --> 00:44:54.719
<v Speaker 3>How is that going to scale? I mean, it turns

925
00:44:54.719 --> 00:44:57.239
<v Speaker 3>out that even without any of these optimizations, it actually

926
00:44:57.239 --> 00:45:00.440
<v Speaker 3>scales pretty darn good. Like you can pretty easily handle

927
00:45:00.559 --> 00:45:04.719
<v Speaker 3>like tens of thousands of concurrent users on the site

928
00:45:04.719 --> 00:45:08.840
<v Speaker 3>with pretty reasonable hardware for most Plazer server apps. If

929
00:45:08.840 --> 00:45:10.199
<v Speaker 3>you're really trying to get big to like, you know, one,

930
00:45:10.239 --> 00:45:12.840
<v Speaker 3>hundreds of thousands or millions of concurrent it's really concurrent

931
00:45:12.920 --> 00:45:15.800
<v Speaker 3>users that map number of views, but people on the

932
00:45:15.840 --> 00:45:19.039
<v Speaker 3>site at the same time, then yeah, maybe it could

933
00:45:19.079 --> 00:45:21.280
<v Speaker 3>be heavier load, and maybe you might want to think

934
00:45:21.320 --> 00:45:24.119
<v Speaker 3>about moving more of that to the client. But with

935
00:45:24.159 --> 00:45:26.320
<v Speaker 3>these patterns of like you know, being able to pause

936
00:45:26.360 --> 00:45:29.360
<v Speaker 3>the circuit and the victims to free up those resources.

937
00:45:29.400 --> 00:45:31.800
<v Speaker 3>So even even if you have a you know, quote

938
00:45:31.880 --> 00:45:33.880
<v Speaker 3>unquote a current user but they went to lunch and

939
00:45:33.880 --> 00:45:36.199
<v Speaker 3>they're not using the server resources and that type of stuff,

940
00:45:36.440 --> 00:45:41.360
<v Speaker 3>you can really optimize the server utilization quite a bit.

941
00:45:41.679 --> 00:45:42.400
<v Speaker 3>And scale.

942
00:45:42.800 --> 00:45:45.000
<v Speaker 2>Are there many folks doing much of a client side

943
00:45:45.039 --> 00:45:47.000
<v Speaker 2>it seems like the server side one.

944
00:45:47.280 --> 00:45:51.039
<v Speaker 3>There are passionate folks on both sides. It's it's it's

945
00:45:51.119 --> 00:45:54.239
<v Speaker 3>uh okay, I love that. Yeah, and they love to

946
00:45:55.280 --> 00:45:56.000
<v Speaker 3>each other and you don't.

947
00:45:56.119 --> 00:45:58.519
<v Speaker 2>And as I understand, you don't have to choose either, Right,

948
00:45:58.599 --> 00:46:00.840
<v Speaker 2>you can run some stuff clients some size server like.

949
00:46:00.840 --> 00:46:02.960
<v Speaker 3>Yeah, in the same app, you can have a mixture

950
00:46:02.960 --> 00:46:04.960
<v Speaker 3>of both. But there's definitely like sort of the blazer

951
00:46:05.199 --> 00:46:06.320
<v Speaker 3>webs of the crowd who.

952
00:46:06.280 --> 00:46:09.519
<v Speaker 2>Like, wa love bugs.

953
00:46:09.679 --> 00:46:12.320
<v Speaker 3>I love it so and I do everything blazers server

954
00:46:12.320 --> 00:46:13.880
<v Speaker 3>and I love it and they'd love to like, you know,

955
00:46:13.960 --> 00:46:14.760
<v Speaker 3>throw The.

956
00:46:14.719 --> 00:46:19.840
<v Speaker 1>First question I ask potential clients is how many users

957
00:46:19.920 --> 00:46:23.679
<v Speaker 1>do you think concurrently would be using your the maximum

958
00:46:23.800 --> 00:46:26.639
<v Speaker 1>that would be using it concurrently? And you know, for

959
00:46:26.719 --> 00:46:29.280
<v Speaker 1>the for the clients I've had, there's no more than

960
00:46:29.519 --> 00:46:32.239
<v Speaker 1>you know, fifty thousand or something like that, twenty thousand,

961
00:46:32.440 --> 00:46:33.199
<v Speaker 1>And I'm like, well.

962
00:46:33.159 --> 00:46:34.800
<v Speaker 3>Yeah, and those are big, those are usually the big ones.

963
00:46:34.840 --> 00:46:35.960
<v Speaker 3>I talked to a lot of people are like, you know,

964
00:46:36.000 --> 00:46:38.039
<v Speaker 3>a few hundred, yeah, And I'm like, well, don't even

965
00:46:38.039 --> 00:46:38.519
<v Speaker 3>think about it.

966
00:46:38.559 --> 00:46:41.480
<v Speaker 1>I don't even think about it. Yeah, but yeah, for

967
00:46:41.599 --> 00:46:44.679
<v Speaker 1>fifty thousand, you know, you could just get a big,

968
00:46:44.840 --> 00:46:50.079
<v Speaker 1>you know, fourteen sixteen gig server if you want. And jeez, don't.

969
00:46:49.880 --> 00:46:55.199
<v Speaker 2>Support thousand concurrents. Yeah, what are you doing? Like that's

970
00:46:55.239 --> 00:46:57.519
<v Speaker 2>a lot, Like it's just a lot.

971
00:46:58.239 --> 00:47:02.840
<v Speaker 1>Well that they might be doing some sort of commercial

972
00:47:03.119 --> 00:47:04.920
<v Speaker 1>customers facing.

973
00:47:05.000 --> 00:47:07.719
<v Speaker 2>It said the whole stadium worth of people to a

974
00:47:07.840 --> 00:47:10.119
<v Speaker 2>site at the same time you got.

975
00:47:10.000 --> 00:47:13.119
<v Speaker 3>Some global app or like I talked to a lot of

976
00:47:13.119 --> 00:47:15.400
<v Speaker 3>people doing like you know SaaS offerings, so you know

977
00:47:15.400 --> 00:47:18.000
<v Speaker 3>they have multiple they're they're hosting the same app for

978
00:47:18.079 --> 00:47:19.960
<v Speaker 3>multiple customers, and so they have to think about the

979
00:47:19.960 --> 00:47:23.920
<v Speaker 3>scale and end times for each customer. Apps at that

980
00:47:23.960 --> 00:47:26.159
<v Speaker 3>scale definitely exist, and it's something you do want to

981
00:47:26.239 --> 00:47:29.199
<v Speaker 3>consider when you're thinking about your architecture for your Blazer apps.

982
00:47:29.320 --> 00:47:32.000
<v Speaker 3>Hopefully with these features like pause and rezoom and all

983
00:47:32.039 --> 00:47:34.159
<v Speaker 3>the also the like just the static service ide rendering

984
00:47:34.159 --> 00:47:39.840
<v Speaker 3>features that we're adding it there's less anxiety about using

985
00:47:39.840 --> 00:47:41.960
<v Speaker 3>some of these features that are particularly convenient.

986
00:47:42.039 --> 00:47:43.960
<v Speaker 2>Well, I mean it's not like you can't change your

987
00:47:43.960 --> 00:47:45.239
<v Speaker 2>mind either, right, Like it's just.

988
00:47:45.199 --> 00:47:47.519
<v Speaker 3>And you can always switch the render mode exactly.

989
00:47:47.719 --> 00:47:51.079
<v Speaker 1>And we gotten at ten especially because perfe and memory

990
00:47:51.119 --> 00:47:54.079
<v Speaker 1>usage got so much lower. You know, you can have

991
00:47:54.159 --> 00:47:57.199
<v Speaker 1>even more jeez, you wouldn't even need all that ran.

992
00:47:57.400 --> 00:48:00.880
<v Speaker 3>Guess it gets more efficient for static service side rendering.

993
00:48:00.960 --> 00:48:02.920
<v Speaker 3>We are leaning into that also quite a bit, Like

994
00:48:02.920 --> 00:48:06.440
<v Speaker 3>there's a we think there's this really nice sweet spot

995
00:48:06.480 --> 00:48:08.639
<v Speaker 3>where I don't even need an interactive render mode to

996
00:48:08.679 --> 00:48:10.400
<v Speaker 3>do a lot of what I'm what I'm doing. And

997
00:48:10.400 --> 00:48:12.400
<v Speaker 3>for that like think of all like we have actually

998
00:48:12.480 --> 00:48:14.920
<v Speaker 3>quite a few people that are still using classic NBC

999
00:48:15.559 --> 00:48:18.960
<v Speaker 3>or Razor pages or back to web forms for their applications,

1000
00:48:19.360 --> 00:48:21.960
<v Speaker 3>and they're just mostly doing static service side rendering and

1001
00:48:22.000 --> 00:48:25.199
<v Speaker 3>maybe some JavaScript to light up some interactivity wherever they

1002
00:48:25.480 --> 00:48:27.440
<v Speaker 3>need it. And there's a lot of people building apps

1003
00:48:27.480 --> 00:48:30.719
<v Speaker 3>that way. Blazer we're trying to position as the you know,

1004
00:48:30.760 --> 00:48:33.639
<v Speaker 3>our single recommended WebUI offering, and we want to make

1005
00:48:33.679 --> 00:48:36.480
<v Speaker 3>sure that the people that come from that style of

1006
00:48:36.519 --> 00:48:40.199
<v Speaker 3>app don't come to Blazer disappointed in any way, shape

1007
00:48:40.239 --> 00:48:42.519
<v Speaker 3>or form. There's a few feature gaps that we're filling

1008
00:48:42.519 --> 00:48:45.320
<v Speaker 3>in there and dotten at eleven, like support for temp data,

1009
00:48:45.480 --> 00:48:48.480
<v Speaker 3>like dealing with session state, like having things that a

1010
00:48:48.519 --> 00:48:49.719
<v Speaker 3>lot of the tag helvers.

1011
00:48:49.800 --> 00:48:51.320
<v Speaker 1>Yeah, there's no state that.

1012
00:48:51.239 --> 00:48:53.360
<v Speaker 3>We don't have in Blazer as components like adding those

1013
00:48:53.360 --> 00:48:53.760
<v Speaker 3>as well.

1014
00:48:53.800 --> 00:48:56.360
<v Speaker 1>There's no state for static rendered mode right.

1015
00:48:56.480 --> 00:48:59.360
<v Speaker 3>Right, yep, so you have to like provide these mechanisms

1016
00:48:59.400 --> 00:49:03.239
<v Speaker 3>to the past state state along. We're also looking at

1017
00:49:03.280 --> 00:49:05.599
<v Speaker 3>like for forms, when you have a form and you

1018
00:49:05.639 --> 00:49:08.480
<v Speaker 3>want to do validation today in Blazer you end up

1019
00:49:08.480 --> 00:49:11.199
<v Speaker 3>flipping to do either you write your own JavaScript or

1020
00:49:11.239 --> 00:49:13.079
<v Speaker 3>you flip to an interactive render mode to have client

1021
00:49:13.119 --> 00:49:15.719
<v Speaker 3>side validation logic for that form. Right, you know eleven,

1022
00:49:15.760 --> 00:49:19.039
<v Speaker 3>we are going to add a a a some client

1023
00:49:19.079 --> 00:49:22.599
<v Speaker 3>side validation support for static service side rendering in Blazer

1024
00:49:22.639 --> 00:49:24.480
<v Speaker 3>that doesn't require an interactive render mode.

1025
00:49:24.599 --> 00:49:24.920
<v Speaker 1>That's cool.

1026
00:49:24.920 --> 00:49:27.239
<v Speaker 3>Can think of it as like a modern replacement for

1027
00:49:27.360 --> 00:49:29.559
<v Speaker 3>the like remember the old like jquera and uptrist to

1028
00:49:29.599 --> 00:49:32.239
<v Speaker 3>validation libraries that we have for NBC. I think of

1029
00:49:32.239 --> 00:49:33.800
<v Speaker 3>it as like a modern replacement for that that you

1030
00:49:33.840 --> 00:49:37.199
<v Speaker 3>can use with with Blazer. And since it might as well,

1031
00:49:37.239 --> 00:49:39.400
<v Speaker 3>we'll probably also make it work for existing NBC and

1032
00:49:39.480 --> 00:49:41.400
<v Speaker 3>Razor Pages apps too, so you maybe can get rid

1033
00:49:41.400 --> 00:49:42.480
<v Speaker 3>of that jQuery dependency.

1034
00:49:42.519 --> 00:49:45.679
<v Speaker 1>Finally that well, well you kind of did that already

1035
00:49:45.760 --> 00:49:50.400
<v Speaker 1>with with the forms validation, not forms validation, but forms processing. Right,

1036
00:49:50.880 --> 00:49:53.719
<v Speaker 1>you can do that without interactivity because you do a fetch,

1037
00:49:53.719 --> 00:49:56.960
<v Speaker 1>a JavaScript fetch or something like that, and so it works,

1038
00:49:57.000 --> 00:50:00.400
<v Speaker 1>but but you still don't have state, so you kind

1039
00:50:00.400 --> 00:50:02.440
<v Speaker 1>of can be fooled into thinking, oh, I can just

1040
00:50:02.440 --> 00:50:04.760
<v Speaker 1>put a class level variable here. Yeah, you get pretty close,

1041
00:50:04.800 --> 00:50:05.519
<v Speaker 1>You get pretty close.

1042
00:50:05.599 --> 00:50:10.079
<v Speaker 3>Yeah. I think that's the enhanced navigation, enhanced form form

1043
00:50:10.119 --> 00:50:12.519
<v Speaker 3>handling that we have in Blazer, where it will feel

1044
00:50:12.599 --> 00:50:15.559
<v Speaker 3>like a SPA app even though it's actually doing service

1045
00:50:15.559 --> 00:50:18.360
<v Speaker 3>side rendering for the form and even that case though

1046
00:50:18.360 --> 00:50:20.800
<v Speaker 3>the validation is still going to happen server side. If

1047
00:50:20.800 --> 00:50:22.880
<v Speaker 3>you want to try and even prevent the request, you

1048
00:50:22.960 --> 00:50:25.519
<v Speaker 3>still want that client side validation to kick in to

1049
00:50:25.519 --> 00:50:27.679
<v Speaker 3>say like hold on, you still got your email or

1050
00:50:27.760 --> 00:50:31.280
<v Speaker 3>phone number miss miss uh misformatted. And so that's what

1051
00:50:31.400 --> 00:50:34.320
<v Speaker 3>this uh, this feature will enables. You can have a

1052
00:50:34.360 --> 00:50:36.679
<v Speaker 3>client side validation model without you having to really go

1053
00:50:36.760 --> 00:50:38.239
<v Speaker 3>full and full on interactive.

1054
00:50:39.000 --> 00:50:41.199
<v Speaker 2>Awesome. Yeah, so a bunch of stuff there.

1055
00:50:41.360 --> 00:50:43.039
<v Speaker 1>What else in dot net eleven?

1056
00:50:43.519 --> 00:50:46.599
<v Speaker 3>So on the web assembly side, one cool thing we

1057
00:50:46.800 --> 00:50:50.280
<v Speaker 3>we're adding is a new a new template for building

1058
00:50:50.760 --> 00:50:55.280
<v Speaker 3>uh dot net based webworkers uh in the web platform.

1059
00:50:55.320 --> 00:50:57.159
<v Speaker 3>So the webworkers are right? Are these kind of like

1060
00:50:57.599 --> 00:50:59.519
<v Speaker 3>it's like a separate process that you can spin up

1061
00:50:59.559 --> 00:51:02.039
<v Speaker 3>in a in a browser and offload some work from

1062
00:51:02.119 --> 00:51:05.760
<v Speaker 3>the UI thread and do something in the background. One

1063
00:51:05.800 --> 00:51:08.519
<v Speaker 3>of the top uploaded features we have in our backlog

1064
00:51:08.599 --> 00:51:11.840
<v Speaker 3>is support for multi threading in Blaser web assembly. Yeah,

1065
00:51:11.880 --> 00:51:13.880
<v Speaker 3>we wanted it forever and I promised it actually for

1066
00:51:14.239 --> 00:51:17.000
<v Speaker 3>your multiple years. Is that we're going to do it,

1067
00:51:17.239 --> 00:51:19.920
<v Speaker 3>and we had been working hard on it. But on

1068
00:51:20.559 --> 00:51:24.239
<v Speaker 3>the mono based run time, and now, as we talked earlier,

1069
00:51:24.280 --> 00:51:27.119
<v Speaker 3>we're consolidating our run times to be based on core CLR,

1070
00:51:27.280 --> 00:51:29.159
<v Speaker 3>so we need to get that done first before we

1071
00:51:29.159 --> 00:51:31.599
<v Speaker 3>can deliver multi threading and then do the multi threading

1072
00:51:31.760 --> 00:51:34.039
<v Speaker 3>on top of course CLR. So the multi threading work

1073
00:51:34.079 --> 00:51:36.000
<v Speaker 3>is kind of blocked right now. It's kind of pause,

1074
00:51:36.360 --> 00:51:40.320
<v Speaker 3>so sort of as a peace offering to our users

1075
00:51:40.360 --> 00:51:43.480
<v Speaker 3>that really need some way to move work off of

1076
00:51:43.559 --> 00:51:45.960
<v Speaker 3>the UI thread to free up.

1077
00:51:46.360 --> 00:51:48.239
<v Speaker 1>The main So the web worker is kind of like

1078
00:51:48.280 --> 00:51:51.039
<v Speaker 1>a service worker in a pwa A, right, is it

1079
00:51:51.159 --> 00:51:52.079
<v Speaker 1>kind of the same idea?

1080
00:51:52.840 --> 00:51:55.000
<v Speaker 3>Yeah, yeah, very very very similar. Think it's the same

1081
00:51:55.079 --> 00:51:56.719
<v Speaker 3>underlying infrastructure.

1082
00:51:56.159 --> 00:51:57.639
<v Speaker 1>But it's C sharp so yeah.

1083
00:51:57.679 --> 00:51:59.360
<v Speaker 3>So what you can do is you can have a

1084
00:51:59.679 --> 00:52:02.320
<v Speaker 3>a donn It webworker that your Blazer web assembly app

1085
00:52:02.360 --> 00:52:04.639
<v Speaker 3>references and you can use that to fire up some

1086
00:52:04.639 --> 00:52:06.559
<v Speaker 3>work that happens in the background, like if you have

1087
00:52:06.599 --> 00:52:09.159
<v Speaker 3>some really CPU intensive stuff that you don't want to

1088
00:52:09.159 --> 00:52:12.360
<v Speaker 3>have happen on the UI thread. Donnet webworker template will

1089
00:52:12.400 --> 00:52:16.280
<v Speaker 3>allow you to do that. Nice, so that'll be available,

1090
00:52:16.280 --> 00:52:19.320
<v Speaker 3>and it's general purpose. It's not actually even Blazer specific,

1091
00:52:19.400 --> 00:52:21.639
<v Speaker 3>like there's nothing, there's no Blazer component model in this thing.

1092
00:52:21.679 --> 00:52:23.199
<v Speaker 3>It's just a way to run dot neit code on

1093
00:52:23.239 --> 00:52:27.039
<v Speaker 3>a webworker. It came up in part because one of

1094
00:52:27.079 --> 00:52:30.440
<v Speaker 3>our internal teams at Microsoft that the team that builds

1095
00:52:31.199 --> 00:52:33.599
<v Speaker 3>Copilot Studio, like that the tool that you use to

1096
00:52:33.599 --> 00:52:36.760
<v Speaker 3>build like custom agents that run in Microsoft Copilot Microsoft

1097
00:52:36.760 --> 00:52:40.320
<v Speaker 3>through sixty five Copilot. Copilot Studio actually uses our Donet

1098
00:52:40.360 --> 00:52:43.840
<v Speaker 3>web assembly run time for their agentic infrastructure, and they

1099
00:52:43.920 --> 00:52:46.039
<v Speaker 3>run a lot of it client side on web Assembly,

1100
00:52:46.599 --> 00:52:50.119
<v Speaker 3>but they do it on a background webworker. They don't

1101
00:52:50.159 --> 00:52:52.079
<v Speaker 3>do it on the UI thread which when we found

1102
00:52:52.079 --> 00:52:54.480
<v Speaker 3>out about this, we were like, wow, that's like amazing

1103
00:52:54.480 --> 00:52:55.800
<v Speaker 3>that you were able to figure out how to do that,

1104
00:52:55.880 --> 00:53:00.760
<v Speaker 3>because if it wasn't an officially supported feature, like they've

1105
00:53:00.800 --> 00:53:02.599
<v Speaker 3>gone in and seeing the found all the run time

1106
00:53:02.639 --> 00:53:05.480
<v Speaker 3>APIs and just worked it out themselves. And we're like,

1107
00:53:05.519 --> 00:53:08.639
<v Speaker 3>we should probably, you know, make this more first class,

1108
00:53:08.639 --> 00:53:10.559
<v Speaker 3>like make it a thing that that everyone can do

1109
00:53:10.639 --> 00:53:14.199
<v Speaker 3>and everyone can use. So we're standardizing that pattern in

1110
00:53:14.280 --> 00:53:15.920
<v Speaker 3>eleven and giving you a template so that you can

1111
00:53:15.960 --> 00:53:18.599
<v Speaker 3>do it. And also it helps mitigate a lot of

1112
00:53:18.679 --> 00:53:21.239
<v Speaker 3>these scenarios that people want multi threading for at least

1113
00:53:21.239 --> 00:53:25.159
<v Speaker 3>as a temporary measure. I do want to some caveats

1114
00:53:25.199 --> 00:53:29.039
<v Speaker 3>that you are spinning up. You know, basically two run times, right,

1115
00:53:29.039 --> 00:53:30.880
<v Speaker 3>you have the runtime on the main thread and another

1116
00:53:30.960 --> 00:53:33.360
<v Speaker 3>runtime in the background thread. So memory usage can be

1117
00:53:33.559 --> 00:53:37.519
<v Speaker 3>heavy with this pattern, so use it judiciously. If you

1118
00:53:37.559 --> 00:53:39.920
<v Speaker 3>don't need it, don't don't. Don't don't go spinning up

1119
00:53:39.920 --> 00:53:42.000
<v Speaker 3>web workers left and right in your in your application.

1120
00:53:42.039 --> 00:53:44.840
<v Speaker 3>But for those people who have those CPU intensive workloads,

1121
00:53:44.880 --> 00:53:46.920
<v Speaker 3>things they need to off move off the UI thread.

1122
00:53:46.960 --> 00:53:48.320
<v Speaker 3>This is a pattern that you can now.

1123
00:53:48.400 --> 00:53:50.360
<v Speaker 1>So don't run it on one of those old Android

1124
00:53:50.400 --> 00:53:53.039
<v Speaker 1>phones you've found in your drawer of broken dreams.

1125
00:53:53.639 --> 00:53:54.239
<v Speaker 3>Maybe not?

1126
00:53:56.119 --> 00:53:58.880
<v Speaker 2>Who's running proto anymore?

1127
00:53:59.159 --> 00:54:01.519
<v Speaker 1>Sandwich screep saw.

1128
00:54:01.280 --> 00:54:07.840
<v Speaker 2>Which uh the drawer broken dreams?

1129
00:54:08.159 --> 00:54:09.360
<v Speaker 1>I still have mine?

1130
00:54:09.920 --> 00:54:13.760
<v Speaker 2>Yeah, pack all those phone phones, those old old phones.

1131
00:54:14.320 --> 00:54:16.400
<v Speaker 3>Other cool things. I see. Sharp unions I think are

1132
00:54:16.440 --> 00:54:19.400
<v Speaker 3>finally coming right, like C sharp unions.

1133
00:54:19.440 --> 00:54:21.840
<v Speaker 2>Yeah, yeah, they've they've been hammered on that for a

1134
00:54:21.880 --> 00:54:23.360
<v Speaker 2>long time, trying to get that right.

1135
00:54:24.800 --> 00:54:26.480
<v Speaker 1>That is you're right, you know, I think you and

1136
00:54:26.559 --> 00:54:28.960
<v Speaker 1>Kathleen are the only ones who understand what that is.

1137
00:54:31.679 --> 00:54:34.079
<v Speaker 3>We have this are right? Like you want to return

1138
00:54:34.159 --> 00:54:36.960
<v Speaker 3>multiple types from a controller action or a minimal API

1139
00:54:37.199 --> 00:54:40.440
<v Speaker 3>like either the actual result or a you know, some

1140
00:54:40.800 --> 00:54:45.039
<v Speaker 3>HP status code thing. All those like types that have

1141
00:54:45.400 --> 00:54:48.519
<v Speaker 3>multiple genetic parameters where you're basically sort of handcrafting unions

1142
00:54:49.639 --> 00:54:52.599
<v Speaker 3>in in a core using a proper sea sharp union feature.

1143
00:54:52.599 --> 00:54:54.159
<v Speaker 3>I think we'll make a lot of those patterns more

1144
00:54:54.280 --> 00:54:57.760
<v Speaker 3>for more natural. We'll need to do framework work to

1145
00:54:57.960 --> 00:54:59.719
<v Speaker 3>enable that in the ACE.

1146
00:55:00.360 --> 00:55:03.079
<v Speaker 1>I mean, don't mere mortals just create a class to return.

1147
00:55:03.639 --> 00:55:06.639
<v Speaker 3>Yeah you can. I mean, nothing stop you from sort

1148
00:55:06.679 --> 00:55:09.920
<v Speaker 3>of creating your own union today manually. It just gives

1149
00:55:09.920 --> 00:55:11.559
<v Speaker 3>you a language feature for for doing.

1150
00:55:11.480 --> 00:55:14.039
<v Speaker 1>Those things, right, I suppose. So if you really want

1151
00:55:14.079 --> 00:55:16.960
<v Speaker 1>to impress somebody on a job interview, you say, well,

1152
00:55:17.159 --> 00:55:21.599
<v Speaker 1>just spent a union and you got the job.

1153
00:55:21.719 --> 00:55:24.239
<v Speaker 3>My friend, I didn't know this was like a like

1154
00:55:24.320 --> 00:55:27.639
<v Speaker 3>a NEWT features. I'm using unions of my.

1155
00:55:29.239 --> 00:55:31.440
<v Speaker 2>Only the cool kids, that's right.

1156
00:55:33.519 --> 00:55:37.280
<v Speaker 3>Yeah, And of course there's all the AI stuff which

1157
00:55:37.280 --> 00:55:39.320
<v Speaker 3>would have to work out half to day something.

1158
00:55:40.519 --> 00:55:42.760
<v Speaker 2>You know what. I'm not unhappy we didn't talk much

1159
00:55:42.760 --> 00:55:46.239
<v Speaker 2>about AI. It happens often enough, but we are.

1160
00:55:46.440 --> 00:55:49.320
<v Speaker 3>We will pay pay homage to the the AI gods

1161
00:55:49.400 --> 00:55:51.400
<v Speaker 3>to make sure we do all the I think so

1162
00:55:51.559 --> 00:55:52.559
<v Speaker 3>Microsoftic Centers. A.

1163
00:55:53.000 --> 00:55:56.239
<v Speaker 2>Hey, I'm excited about the past key implementation. That makes

1164
00:55:56.280 --> 00:55:59.679
<v Speaker 2>me happy because you know, by bit getting away from

1165
00:55:59.679 --> 00:56:02.079
<v Speaker 2>past ors is a good thing. So there's a lot

1166
00:56:02.079 --> 00:56:05.119
<v Speaker 2>of cool stuff coming. And I really like the way

1167
00:56:05.159 --> 00:56:07.760
<v Speaker 2>you talk about asp core as a whole. It doesn't

1168
00:56:07.800 --> 00:56:11.480
<v Speaker 2>matter whether your web forms or MVC or raizor or Blazer.

1169
00:56:11.800 --> 00:56:12.400
<v Speaker 2>It's all the same.

1170
00:56:12.440 --> 00:56:16.239
<v Speaker 3>It's one framework and one dot web development story. That's

1171
00:56:16.280 --> 00:56:18.559
<v Speaker 3>that's that's pretty important for what we're trying to.

1172
00:56:18.239 --> 00:56:20.719
<v Speaker 2>Deliver well in airon lies, you know the issue and

1173
00:56:21.119 --> 00:56:23.119
<v Speaker 2>even going back to the comment, which is too many

1174
00:56:23.239 --> 00:56:26.239
<v Speaker 2>UXes and so the C a unified group out there

1175
00:56:26.760 --> 00:56:29.440
<v Speaker 2>presenting one, you know, a set of ways to do

1176
00:56:29.519 --> 00:56:31.719
<v Speaker 2>things that work together. I love everything about that.

1177
00:56:32.519 --> 00:56:35.360
<v Speaker 1>Yeah, anything else you want to spring on us Dan

1178
00:56:35.480 --> 00:56:36.840
<v Speaker 1>here at the last minute.

1179
00:56:36.559 --> 00:56:39.679
<v Speaker 3>Well, I'll show just one one little AI think just

1180
00:56:39.719 --> 00:56:40.519
<v Speaker 3>one little.

1181
00:56:40.239 --> 00:56:42.239
<v Speaker 2>Cool Okay, one little AI think brother, hit.

1182
00:56:42.119 --> 00:56:44.320
<v Speaker 3>Me one thing we are working on in Blaze, and

1183
00:56:44.480 --> 00:56:45.960
<v Speaker 3>we showed a little bit of this at dot net

1184
00:56:45.960 --> 00:56:48.840
<v Speaker 3>comp But I think it's cool is we're working like

1185
00:56:48.880 --> 00:56:51.880
<v Speaker 3>when you're trying to build an agentic app, right, an

1186
00:56:51.880 --> 00:56:55.599
<v Speaker 3>app that surfaces AI functionality to your users. You know

1187
00:56:55.599 --> 00:56:57.559
<v Speaker 3>not you're going to build it with a I two,

1188
00:56:57.599 --> 00:56:59.880
<v Speaker 3>but like the actually having an AI feature in the app.

1189
00:57:00.079 --> 00:57:02.559
<v Speaker 3>One of the problems you offer encounter is, well, I

1190
00:57:02.639 --> 00:57:04.800
<v Speaker 3>have some client and it needs to talk to the

1191
00:57:04.800 --> 00:57:06.960
<v Speaker 3>server and the servers where I'm really accessing the AI

1192
00:57:07.119 --> 00:57:10.039
<v Speaker 3>resources like Microsoft Foundry or whatever wherever your model is

1193
00:57:10.039 --> 00:57:13.880
<v Speaker 3>is hosted. How should I set up that channel of communication?

1194
00:57:14.440 --> 00:57:18.480
<v Speaker 3>How do I deal with the streamed results from from

1195
00:57:18.679 --> 00:57:21.519
<v Speaker 3>the AI the agent, Like, you know it's going to

1196
00:57:21.519 --> 00:57:23.440
<v Speaker 3>stream you back a bunch of tokens. How do I

1197
00:57:23.480 --> 00:57:25.880
<v Speaker 3>deal with that? What if I want to handle multimodal inputs,

1198
00:57:25.920 --> 00:57:27.440
<v Speaker 3>like I want to be able to talk to my agent, Now,

1199
00:57:27.440 --> 00:57:29.400
<v Speaker 3>I've got to figure out an API surface area for

1200
00:57:29.440 --> 00:57:31.760
<v Speaker 3>dealing with that. Maybe I want to send it images

1201
00:57:31.960 --> 00:57:36.800
<v Speaker 3>or camera input. There's a protocol that's been defined called

1202
00:57:37.199 --> 00:57:41.239
<v Speaker 3>AGUI Agent to QI I guess what's short for. That

1203
00:57:41.360 --> 00:57:46.360
<v Speaker 3>defines that interaction between front ends and their AGENTIC Backe

1204
00:57:46.480 --> 00:57:48.719
<v Speaker 3>and so we've been working with our friends on the

1205
00:57:48.719 --> 00:57:53.000
<v Speaker 3>Foundry chain that built the Microsoft Agent Framework library to

1206
00:57:53.159 --> 00:57:57.760
<v Speaker 3>add AGUI support to that framework so that you can

1207
00:57:57.800 --> 00:58:01.199
<v Speaker 3>easily stand up an AGUI endpoint and then on the client,

1208
00:58:01.239 --> 00:58:03.400
<v Speaker 3>like in your Blazer app or your Blazer Hybrid app

1209
00:58:03.480 --> 00:58:06.239
<v Speaker 3>or your Maui app. We're going to give you Blazer

1210
00:58:06.320 --> 00:58:08.880
<v Speaker 3>Ai components that make it just really trivial then for

1211
00:58:08.920 --> 00:58:11.679
<v Speaker 3>you to build out that agentic user interface that then

1212
00:58:11.760 --> 00:58:14.199
<v Speaker 3>talks to that back end. So that's something that we're

1213
00:58:14.199 --> 00:58:17.719
<v Speaker 3>working pretty hard on with our friends and partners over

1214
00:58:17.719 --> 00:58:20.400
<v Speaker 3>at co pilot Kit who wrote the AGUI spec. They've

1215
00:58:20.440 --> 00:58:23.000
<v Speaker 3>been great partners to work with. We have some early

1216
00:58:23.039 --> 00:58:26.320
<v Speaker 3>preview bits for the AGUI support that's already out There's

1217
00:58:26.440 --> 00:58:29.239
<v Speaker 3>if you really hunt around in the agent Framework Repel,

1218
00:58:29.280 --> 00:58:31.320
<v Speaker 3>you can even find some branches with prototypes of the

1219
00:58:31.320 --> 00:58:34.599
<v Speaker 3>Blazer Ai components that we've been working on, and we

1220
00:58:34.639 --> 00:58:37.159
<v Speaker 3>expect to get those out here relatively short order for

1221
00:58:37.159 --> 00:58:40.800
<v Speaker 3>people to be able to try so awesome. Agentic UI

1222
00:58:40.960 --> 00:58:43.519
<v Speaker 3>is the big thing that we're working on in the

1223
00:58:43.519 --> 00:58:44.519
<v Speaker 3>eleven time frame as.

1224
00:58:44.400 --> 00:58:49.119
<v Speaker 2>Well, the new term of concept. Okay, I love it.

1225
00:58:49.440 --> 00:58:52.320
<v Speaker 1>Yeah, thanks Dan, I'm sure we'll talk about that more

1226
00:58:52.360 --> 00:58:56.280
<v Speaker 1>next time we talk to you. Sounds great, Yeah, and uh,

1227
00:58:56.639 --> 00:58:59.840
<v Speaker 1>speaking of talking next time, We'll talk to you next time,

1228
00:59:00.079 --> 00:59:23.760
<v Speaker 1>dear listener on dot net rocks. Dot net rocks is

1229
00:59:23.800 --> 00:59:27.480
<v Speaker 1>brought to you by Franklin's Net and produced by Pop Studios,

1230
00:59:27.840 --> 00:59:31.880
<v Speaker 1>a full service audio, video and post production facility located

1231
00:59:31.920 --> 00:59:34.840
<v Speaker 1>physically in New London, Connecticut, and of course in the

1232
00:59:34.880 --> 00:59:38.800
<v Speaker 1>cloud online at pwop dot com.

1233
00:59:38.960 --> 00:59:41.119
<v Speaker 5>Visit our website at d O T N E t

1234
00:59:41.360 --> 00:59:45.360
<v Speaker 5>R O c k S dot com for RSS feeds, downloads,

1235
00:59:45.519 --> 00:59:49.199
<v Speaker 5>mobile apps, comments, and access to the full archives going

1236
00:59:49.239 --> 00:59:52.639
<v Speaker 5>back to show number one, recorded in September two thousand

1237
00:59:52.639 --> 00:59:52.920
<v Speaker 5>and two.

1238
00:59:53.519 --> 00:59:55.880
<v Speaker 1>And make sure you check out our sponsors. They keep

1239
00:59:55.960 --> 00:59:59.119
<v Speaker 1>us in business. Now go write some code. See you

1240
00:59:59.159 --> 00:59:59.559
<v Speaker 1>next time.

1241
01:00:00.639 --> 01:00:09.079
<v Speaker 3>Chapters Middle vand day A Summer times is hard and

1242
01:00:09.320 --> 01:00:10.800
<v Speaker 3>my taxes in line
