WEBVTT

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

2
00:00:05.360 --> 00:00:08.599
<v Speaker 1>Become a patron For just five dollars a month, you

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

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

5
00:00:14.640 --> 00:00:18.440
<v Speaker 1>you that and a special dot NetRocks patron mug. Sign

6
00:00:18.519 --> 00:00:22.160
<v Speaker 1>up now at Patreon dot dot NetRocks dot com.

7
00:00:22.199 --> 00:00:24.719
<v Speaker 2>Hey Carl and Richard here with your twenty twenty four

8
00:00:24.879 --> 00:00:26.000
<v Speaker 2>NDC schedule.

9
00:00:26.320 --> 00:00:29.679
<v Speaker 1>We'll be at as many NDC conferences as possible this year,

10
00:00:30.000 --> 00:00:33.200
<v Speaker 1>and you should consider attending no matter what. The Copenhagen

11
00:00:33.240 --> 00:00:37.640
<v Speaker 1>Developers Festival happens August twenty sixth through the thirtieth. Tickets

12
00:00:37.719 --> 00:00:40.719
<v Speaker 1>at Cphdevfest dot com.

13
00:00:40.880 --> 00:00:44.759
<v Speaker 2>Ndcporto is happening October fourteenth through the eighteenth. Tickets at

14
00:00:44.840 --> 00:00:46.600
<v Speaker 2>Ndcporto dot com.

15
00:00:46.640 --> 00:00:47.520
<v Speaker 1>We'll see you there.

16
00:00:48.039 --> 00:01:06.480
<v Speaker 3>We hope it's dot net rocks. You scared you didn't I?

17
00:01:06.799 --> 00:01:06.959
<v Speaker 1>You know?

18
00:01:07.280 --> 00:01:10.680
<v Speaker 2>Said John Cleary the other day. He's so good, absolute monster, gentleman.

19
00:01:11.439 --> 00:01:14.560
<v Speaker 1>He is so good. God, I love that guy. Anyway,

20
00:01:14.599 --> 00:01:16.799
<v Speaker 1>you're listening to net rocks. I'm Carl Franklin and I'm

21
00:01:16.879 --> 00:01:20.680
<v Speaker 1>Richard Campbell and we're here for the nineteen hundredth and

22
00:01:20.760 --> 00:01:24.719
<v Speaker 1>eleventh time. There you go, nineteen hundred and eleventh time. Yeah,

23
00:01:24.799 --> 00:01:27.319
<v Speaker 1>so it's gonna be a good show.

24
00:01:27.439 --> 00:01:29.280
<v Speaker 2>World War One has begun, there you go.

25
00:01:29.359 --> 00:01:36.400
<v Speaker 1>Yeah, Archduke Ferdinand has been assassinated.

26
00:01:36.480 --> 00:01:40.079
<v Speaker 2>Yes, after several tries, and then he kept going out

27
00:01:40.079 --> 00:01:42.760
<v Speaker 2>again Like what were you thinking? Doesn't matter? Now here's

28
00:01:42.799 --> 00:01:43.239
<v Speaker 2>a grenade.

29
00:01:45.799 --> 00:01:49.640
<v Speaker 1>Oh, such fun with history we have. Let's start this

30
00:01:49.680 --> 00:02:00.719
<v Speaker 1>show off right. We better know a framework. Awesome, bar man,

31
00:02:00.760 --> 00:02:03.920
<v Speaker 1>what do you got? This is my official first announcement

32
00:02:04.799 --> 00:02:08.560
<v Speaker 1>of an album with only five tracks that I have

33
00:02:08.759 --> 00:02:12.800
<v Speaker 1>kept under wraps since twenty thirteen. Wow, I've just been

34
00:02:12.840 --> 00:02:15.120
<v Speaker 1>waiting for the right time to release it. They have

35
00:02:15.280 --> 00:02:17.680
<v Speaker 1>told me no, but I think you might have heard it.

36
00:02:17.800 --> 00:02:22.000
<v Speaker 1>So this is an album of instrumental groove, chill jazz

37
00:02:22.039 --> 00:02:24.360
<v Speaker 1>pop that I did with my friend Doug Wolverton.

38
00:02:24.560 --> 00:02:26.199
<v Speaker 2>Oh wow, okay, I know Doug.

39
00:02:26.319 --> 00:02:29.360
<v Speaker 1>Have you You've heard these songs right? Long time ago?

40
00:02:29.560 --> 00:02:29.639
<v Speaker 4>Ye?

41
00:02:30.360 --> 00:02:33.719
<v Speaker 1>So. Doug is a trumpet player. He's currently playing with

42
00:02:33.840 --> 00:02:39.280
<v Speaker 1>Kenny Wayne Shepherd on tour, and he's a protege of

43
00:02:39.360 --> 00:02:42.960
<v Speaker 1>Kurt Ramo, who plays with Bruce Springsteen in the EA

44
00:02:42.960 --> 00:02:48.319
<v Speaker 1>Street Band and Kurt actually gave him connected us and

45
00:02:48.360 --> 00:02:50.560
<v Speaker 1>we've been great friends ever since. Doug's played on my

46
00:02:51.000 --> 00:02:55.039
<v Speaker 1>albums and my videos and you can see him at

47
00:02:55.080 --> 00:02:57.479
<v Speaker 1>Franklin Brothers band dot com on a couple of videos.

48
00:02:57.479 --> 00:03:00.719
<v Speaker 1>But anyway, we got together for about year year and

49
00:03:00.759 --> 00:03:04.039
<v Speaker 1>a half there and we just started making music. And

50
00:03:04.360 --> 00:03:09.080
<v Speaker 1>this is the I'm not I'm not just saying this.

51
00:03:09.080 --> 00:03:12.840
<v Speaker 1>This is my favorite project that I've ever ever been

52
00:03:12.879 --> 00:03:17.319
<v Speaker 1>involved with, produced, written. All the music is just like

53
00:03:17.960 --> 00:03:20.680
<v Speaker 1>it's all original. You think you've heard it before when

54
00:03:20.719 --> 00:03:23.639
<v Speaker 1>you listen to it. And the name of the album

55
00:03:23.879 --> 00:03:29.120
<v Speaker 1>is It's the Tone. It's the Tone, and the artist

56
00:03:29.240 --> 00:03:34.240
<v Speaker 1>is Franklin and Wolverton. It is available everywhere you get

57
00:03:34.280 --> 00:03:36.280
<v Speaker 1>your music, or it will be by the time this

58
00:03:36.360 --> 00:03:37.120
<v Speaker 1>comes out.

59
00:03:37.319 --> 00:03:41.039
<v Speaker 2>Okay, so spot, you've finished your work now?

60
00:03:42.680 --> 00:03:47.520
<v Speaker 1>No, No, the production work was done. Really, I've just

61
00:03:47.560 --> 00:03:49.520
<v Speaker 1>been sitting on it and waiting for the right time.

62
00:03:49.639 --> 00:03:53.159
<v Speaker 1>And I released it on my fifty seventh birthday. Wow,

63
00:03:53.199 --> 00:03:56.840
<v Speaker 1>because that is my father's fifty seven when he died,

64
00:03:57.000 --> 00:04:00.240
<v Speaker 1>so this is a special year for me to survive.

65
00:04:01.560 --> 00:04:04.400
<v Speaker 1>And so when we were making this music and I'm

66
00:04:04.400 --> 00:04:06.960
<v Speaker 1>sorry to just keep going on about it, but The

67
00:04:07.000 --> 00:04:12.919
<v Speaker 1>mantra for us was not listen to these notes, right,

68
00:04:12.960 --> 00:04:16.199
<v Speaker 1>which a lot of music and musicians and performers they

69
00:04:16.199 --> 00:04:18.319
<v Speaker 1>have that in their mind. Hey, check out these notes

70
00:04:18.360 --> 00:04:22.839
<v Speaker 1>that I played. But it's listen to this tone. It's

71
00:04:23.000 --> 00:04:25.560
<v Speaker 1>all about the tone. So it's the tone. Go get

72
00:04:25.600 --> 00:04:27.360
<v Speaker 1>it and let me know what you think of it.

73
00:04:27.399 --> 00:04:31.800
<v Speaker 1>Everybody send me some email. That's it. That's what I got.

74
00:04:31.839 --> 00:04:34.160
<v Speaker 2>Cool, all right, we'll put the link in the show notes.

75
00:04:34.160 --> 00:04:35.720
<v Speaker 2>When there's a link available.

76
00:04:35.519 --> 00:04:38.360
<v Speaker 1>Yeah, there will be. It's thetone. Dot com will be available,

77
00:04:38.399 --> 00:04:41.639
<v Speaker 1>but you could just you know, search your favorite music

78
00:04:42.560 --> 00:04:45.199
<v Speaker 1>solution for that. Who's talking to us today, Richard?

79
00:04:45.319 --> 00:04:47.600
<v Speaker 2>I grabbed a comment off a show's nineteen oh six.

80
00:04:47.720 --> 00:04:50.240
<v Speaker 2>Just back in July, we were talking to Joe Finnie

81
00:04:50.360 --> 00:04:55.120
<v Speaker 2>about WPF. This particular comments from John Dyer is only

82
00:04:55.120 --> 00:04:57.000
<v Speaker 2>little while ago, where he said desktop is dead.

83
00:04:57.040 --> 00:04:57.480
<v Speaker 1>Is it true?

84
00:04:57.519 --> 00:05:00.720
<v Speaker 2>It really seems so? And Richard almost said so on

85
00:05:00.800 --> 00:05:04.079
<v Speaker 2>the Lowie Blazer show back in nineteen oh three and

86
00:05:04.079 --> 00:05:06.800
<v Speaker 2>again this show it's danced around. I worked on a

87
00:05:06.839 --> 00:05:09.600
<v Speaker 2>dot net app started in the very beginning, shipped on

88
00:05:09.600 --> 00:05:12.079
<v Speaker 2>one point zero. It was a fun mix of wind

89
00:05:12.079 --> 00:05:14.800
<v Speaker 2>forms in WPF with the new UI and WPF. I

90
00:05:14.800 --> 00:05:16.879
<v Speaker 2>don't think it was WPF at one point. Oh, that

91
00:05:17.000 --> 00:05:20.079
<v Speaker 2>wasn't around till three point five. But you know, details,

92
00:05:20.959 --> 00:05:22.959
<v Speaker 2>did we make a big mistake migrating to dot net

93
00:05:23.000 --> 00:05:25.759
<v Speaker 2>core because now we're forced into the upgrades as versions

94
00:05:25.759 --> 00:05:29.600
<v Speaker 2>go end of life. Additionally, stuff that was automatically patches

95
00:05:29.639 --> 00:05:31.879
<v Speaker 2>now in packages, forcing us to release new versions for

96
00:05:31.920 --> 00:05:34.959
<v Speaker 2>co changes and on ours, mainly if it's security related. Okay,

97
00:05:34.959 --> 00:05:37.079
<v Speaker 2>I'm done whining. It's been a fantastic ride.

98
00:05:37.279 --> 00:05:37.959
<v Speaker 1>Time to move on.

99
00:05:38.959 --> 00:05:41.720
<v Speaker 2>I mean, I've been dancing around the issues with desktop

100
00:05:41.839 --> 00:05:45.319
<v Speaker 2>apps because I don't believe they're dead. They might be

101
00:05:45.360 --> 00:05:47.120
<v Speaker 2>pining for the Fjords.

102
00:05:47.639 --> 00:05:50.079
<v Speaker 1>You know that. There's just something I got to say here.

103
00:05:50.560 --> 00:05:53.839
<v Speaker 1>We have gone out of our way to avoid saying

104
00:05:54.480 --> 00:05:58.839
<v Speaker 1>never use this, it's dead, don't use that, use this instead.

105
00:05:59.399 --> 00:06:01.800
<v Speaker 1>We don't do that here. No, that's not what we do.

106
00:06:01.879 --> 00:06:04.560
<v Speaker 1>We don't. Even if you think that we're hinting at that,

107
00:06:04.600 --> 00:06:05.040
<v Speaker 1>you're wrong.

108
00:06:05.560 --> 00:06:07.399
<v Speaker 2>Yeah, it's not what we mean. I mean, we're not

109
00:06:07.399 --> 00:06:08.879
<v Speaker 2>communicating with it's not what we mean.

110
00:06:09.120 --> 00:06:09.839
<v Speaker 1>Yeah, exactly.

111
00:06:09.959 --> 00:06:12.879
<v Speaker 2>But I mean what I'm abundantly aware of, and I've

112
00:06:12.879 --> 00:06:14.519
<v Speaker 2>done it on the show and you've seen me do

113
00:06:14.639 --> 00:06:17.040
<v Speaker 2>it is that there is a whole bunch of different

114
00:06:17.199 --> 00:06:21.480
<v Speaker 2>desktop tool sets out there, which to me says it's

115
00:06:21.519 --> 00:06:26.839
<v Speaker 2>an unsolved problem. Nobody would bother making an Avalonia or

116
00:06:26.879 --> 00:06:31.120
<v Speaker 2>the silver Light as a web assembly solution open silver

117
00:06:31.680 --> 00:06:34.079
<v Speaker 2>You know, why would all of this exist except that

118
00:06:34.120 --> 00:06:36.519
<v Speaker 2>people are trying to find a good way to build

119
00:06:36.519 --> 00:06:40.319
<v Speaker 2>desktop apps. Microsoft wants it to be Maui, but Maui's

120
00:06:40.319 --> 00:06:42.959
<v Speaker 2>still growing up. You know, it's still a little kid, really,

121
00:06:43.399 --> 00:06:45.800
<v Speaker 2>And certainly they've seemed to consolidate a bunch of stuff

122
00:06:45.800 --> 00:06:50.240
<v Speaker 2>around that, which is interesting, but it's bloody challenging. And

123
00:06:50.480 --> 00:06:54.160
<v Speaker 2>when I wear my IT hat, you know, I'm the

124
00:06:54.199 --> 00:06:55.839
<v Speaker 2>guy who looks at you when you want to deploy

125
00:06:55.879 --> 00:06:59.839
<v Speaker 2>software and says you want to do what? Because browsers

126
00:06:59.879 --> 00:07:02.399
<v Speaker 2>are are a good security context, So you know, I

127
00:07:02.439 --> 00:07:04.800
<v Speaker 2>know the barriers for deploying software is hard. You've got

128
00:07:04.839 --> 00:07:09.079
<v Speaker 2>to really demonstrated reason for software to be built that way.

129
00:07:09.319 --> 00:07:11.360
<v Speaker 1>And we said this on that show. We said it

130
00:07:11.399 --> 00:07:14.240
<v Speaker 1>a couple of times that the browsers have already figured

131
00:07:14.279 --> 00:07:15.680
<v Speaker 1>all this stuff out right.

132
00:07:15.560 --> 00:07:17.800
<v Speaker 2>Well, a lot of stuff. They're also bad at some

133
00:07:17.879 --> 00:07:20.000
<v Speaker 2>important things too, Yeah.

134
00:07:19.600 --> 00:07:23.480
<v Speaker 1>But they're at least consistent across the main three browsers.

135
00:07:23.279 --> 00:07:27.480
<v Speaker 2>Especially when you're talking about running on multiple platforms, which

136
00:07:27.519 --> 00:07:29.959
<v Speaker 2>is the real life that we're living in today, right

137
00:07:30.279 --> 00:07:34.399
<v Speaker 2>Like it's a heterogeneous client world, and then building multiple

138
00:07:34.399 --> 00:07:37.040
<v Speaker 2>clients it's hard, which I think is going to lead

139
00:07:37.079 --> 00:07:39.000
<v Speaker 2>us to our conversation today. When I think about no

140
00:07:39.079 --> 00:07:42.759
<v Speaker 2>code low code solutions, it's about solving client problems. We'll

141
00:07:42.759 --> 00:07:45.079
<v Speaker 2>get into that. So, John, I hope I cleared some

142
00:07:45.120 --> 00:07:47.480
<v Speaker 2>things up for you. Thanks so much for your comment,

143
00:07:47.519 --> 00:07:49.160
<v Speaker 2>and a copy of music Cobey is on its way

144
00:07:49.160 --> 00:07:50.560
<v Speaker 2>to you. And if you'd like a copy of music

145
00:07:50.560 --> 00:07:52.199
<v Speaker 2>cod by, I write a comment on the website at

146
00:07:52.240 --> 00:07:54.160
<v Speaker 2>donn at Rocks dot com or on the facebooks. We

147
00:07:54.199 --> 00:07:56.199
<v Speaker 2>publish every show there, and if you comment there and

148
00:07:56.199 --> 00:07:57.560
<v Speaker 2>are reading the show, we'll send you a copy of

149
00:07:57.600 --> 00:07:58.120
<v Speaker 2>music co buy.

150
00:07:58.319 --> 00:08:01.680
<v Speaker 1>And people are still buying music to coy and it's great.

151
00:08:01.839 --> 00:08:05.560
<v Speaker 1>I see you know. Orders come in every day or

152
00:08:05.639 --> 00:08:06.600
<v Speaker 1>so a couple of days.

153
00:08:06.720 --> 00:08:10.639
<v Speaker 2>I've sent out a winner pack the other day and

154
00:08:10.680 --> 00:08:12.360
<v Speaker 2>I got a message back a little while later. It's

155
00:08:12.439 --> 00:08:14.439
<v Speaker 2>like I already had like the first eight, but I

156
00:08:14.560 --> 00:08:17.560
<v Speaker 2>like the new ones, so they were excited to use

157
00:08:17.600 --> 00:08:19.759
<v Speaker 2>it very good, good.

158
00:08:19.560 --> 00:08:21.680
<v Speaker 1>All right, Well, you know you can follow us on

159
00:08:21.720 --> 00:08:24.040
<v Speaker 1>Twitter ex Twitter, I think is what I call it

160
00:08:24.079 --> 00:08:26.920
<v Speaker 1>now ex Twitter, because it was Twitter and now it's not.

161
00:08:27.240 --> 00:08:30.759
<v Speaker 1>It's something else. And we've been there for years, of course.

162
00:08:30.800 --> 00:08:33.399
<v Speaker 1>But the cool kids are hanging out on mastadon. I'm

163
00:08:33.399 --> 00:08:36.039
<v Speaker 1>at Carl Franklin at tech hub dot social.

164
00:08:35.919 --> 00:08:38.080
<v Speaker 2>And I'm Rich Campbell at masadon dot social.

165
00:08:38.360 --> 00:08:40.559
<v Speaker 1>Send us a twote. That's another way that you can

166
00:08:40.799 --> 00:08:45.080
<v Speaker 1>get yourself copy of music to God by absolutely all right.

167
00:08:45.200 --> 00:08:49.519
<v Speaker 1>Let's bring on our guest season. Software developer, architect and

168
00:08:49.679 --> 00:08:53.759
<v Speaker 1>entrepreneur with a quarter century of experience building large scale

169
00:08:53.840 --> 00:08:59.440
<v Speaker 1>enterprise applications for major telecommunications and transportation companies with dot

170
00:08:59.519 --> 00:09:04.919
<v Speaker 1>net and type script. Serge Sarah Fudenov is the creative

171
00:09:04.960 --> 00:09:08.840
<v Speaker 1>mind between Zomega dot net. That's x O M E

172
00:09:08.919 --> 00:09:12.799
<v Speaker 1>g A dot net, Zomega dot net, a low code

173
00:09:12.799 --> 00:09:17.320
<v Speaker 1>platform for dot net developers, and the open source Zomega framework.

174
00:09:18.279 --> 00:09:20.840
<v Speaker 1>Off the clock, you can find him across the net

175
00:09:20.879 --> 00:09:26.000
<v Speaker 1>developing his backhand and forehand and serving up aces on

176
00:09:26.039 --> 00:09:29.840
<v Speaker 1>the tennis court. That's a very nice bio. Very good.

177
00:09:30.080 --> 00:09:32.799
<v Speaker 5>Welcome, serge, thank you, thank you so much. And thanks

178
00:09:32.840 --> 00:09:36.960
<v Speaker 5>for inviting me here. I've been a longtime listener of

179
00:09:37.240 --> 00:09:39.480
<v Speaker 5>the show, and now it's an honor to be a

180
00:09:39.519 --> 00:09:40.039
<v Speaker 5>guest here.

181
00:09:40.279 --> 00:09:43.399
<v Speaker 1>You're welcome. When I think about what's on the minds

182
00:09:43.399 --> 00:09:45.679
<v Speaker 1>of our listeners when we talk about low code or

183
00:09:45.679 --> 00:09:49.320
<v Speaker 1>no code stuff, you know, a lot of them are

184
00:09:49.440 --> 00:09:52.799
<v Speaker 1>our age, and by our I mean Richard's and my

185
00:09:53.039 --> 00:09:55.399
<v Speaker 1>You look a little younger than us, but that's neither

186
00:09:55.440 --> 00:09:58.240
<v Speaker 1>here nor there. And they've been through a lot of

187
00:09:58.279 --> 00:10:01.600
<v Speaker 1>these things, and I think people are rightly skeptical of

188
00:10:01.639 --> 00:10:06.639
<v Speaker 1>these especially when you think of our experience has been.

189
00:10:07.679 --> 00:10:10.200
<v Speaker 1>We jump in, we're very productive, We get going, and

190
00:10:10.240 --> 00:10:13.039
<v Speaker 1>then oh, we want to modify something. Oh does it

191
00:10:13.080 --> 00:10:17.440
<v Speaker 1>allow me to No, Now what do we do? So

192
00:10:17.600 --> 00:10:19.960
<v Speaker 1>get it? Hitting that brick wall is what I think

193
00:10:20.039 --> 00:10:23.639
<v Speaker 1>everyone is afraid of. So with that in mind, the

194
00:10:23.679 --> 00:10:25.559
<v Speaker 1>floor is yours. Give us the pitch.

195
00:10:25.879 --> 00:10:33.919
<v Speaker 5>Well, yeah, when you ask silicon vallee entrepreneur like why

196
00:10:33.919 --> 00:10:38.039
<v Speaker 5>they're building their product, oftentimes you might get an answer

197
00:10:39.000 --> 00:10:44.120
<v Speaker 5>to make the world a better place. With Zamiga, I

198
00:10:44.120 --> 00:10:48.639
<v Speaker 5>would say that we want to make the world a

199
00:10:48.679 --> 00:10:52.559
<v Speaker 5>better place for dot net developers and their clients.

200
00:10:53.759 --> 00:10:58.440
<v Speaker 1>Very good. So, and let's face it, really, Silicon Valley

201
00:10:58.440 --> 00:11:00.440
<v Speaker 1>doesn't want to make the world a better place. They

202
00:11:00.519 --> 00:11:04.200
<v Speaker 1>want their bank accounts to be a better place, better place.

203
00:11:04.320 --> 00:11:06.279
<v Speaker 1>That's really what they want, right.

204
00:11:07.000 --> 00:11:11.919
<v Speaker 5>Yeah, And with the other tools, there are a lot

205
00:11:11.960 --> 00:11:16.000
<v Speaker 5>of other tools and local platforms that try to help

206
00:11:16.039 --> 00:11:23.120
<v Speaker 5>you build your applications faster. What Zmega tries to do

207
00:11:23.279 --> 00:11:27.919
<v Speaker 5>is to help you build faster, high quality applications with

208
00:11:28.120 --> 00:11:33.159
<v Speaker 5>the best practice architecture, with the consistent user in phrase

209
00:11:33.240 --> 00:11:38.240
<v Speaker 5>and user experience, and that are easy to maintain and

210
00:11:38.759 --> 00:11:42.320
<v Speaker 5>get that you know, future proof, so that you can

211
00:11:42.360 --> 00:11:46.960
<v Speaker 5>easily change it, you know, and migrate to a new

212
00:11:47.000 --> 00:11:52.120
<v Speaker 5>framework or technology once that comes along. And given the

213
00:11:52.159 --> 00:11:55.919
<v Speaker 5>current pace of technology, you know, like if you start

214
00:11:56.000 --> 00:12:01.120
<v Speaker 5>a new project, a big, large project multi year with

215
00:12:01.240 --> 00:12:04.600
<v Speaker 5>a brand new framework, you know, brand new technology, cutting edge.

216
00:12:05.320 --> 00:12:09.240
<v Speaker 5>By the time you finish it, sometimes this framework is

217
00:12:09.279 --> 00:12:13.440
<v Speaker 5>already obsolete. You know, it's already you know, it's history.

218
00:12:14.600 --> 00:12:19.919
<v Speaker 1>So does Zomega use sort of black box things or

219
00:12:20.039 --> 00:12:22.720
<v Speaker 1>does it Is it a code generator or a little

220
00:12:22.759 --> 00:12:28.000
<v Speaker 1>of both? Like uh, I'm I'm more on the side

221
00:12:28.000 --> 00:12:30.519
<v Speaker 1>of code generation because then I can at least look

222
00:12:30.519 --> 00:12:33.559
<v Speaker 1>at that code, see it, modify it, put in my

223
00:12:33.919 --> 00:12:36.799
<v Speaker 1>points wherever I want. What what what's the experience?

224
00:12:36.919 --> 00:12:41.559
<v Speaker 5>Like, Yeah, this is a code generator. It generates code,

225
00:12:42.240 --> 00:12:45.360
<v Speaker 5>but you know, like the typical code generator, like there

226
00:12:45.360 --> 00:12:49.600
<v Speaker 5>are source generators, they generate code that you does not

227
00:12:49.720 --> 00:12:52.039
<v Speaker 5>user friendly. You don't want to read that, you know,

228
00:12:52.080 --> 00:12:54.639
<v Speaker 5>you don't want to You can go and debug it,

229
00:12:54.759 --> 00:12:55.519
<v Speaker 5>you know, if you.

230
00:12:55.480 --> 00:12:56.679
<v Speaker 1>Want to write only code.

231
00:12:57.600 --> 00:13:02.919
<v Speaker 5>Yeah, but it's basically isle of you know, gibber is

232
00:13:03.000 --> 00:13:07.600
<v Speaker 5>that you don't want to look at, right, And what

233
00:13:07.759 --> 00:13:12.320
<v Speaker 5>we do here is the code it generates is basically

234
00:13:12.840 --> 00:13:15.720
<v Speaker 5>the code you would have written yourself down to, even

235
00:13:15.840 --> 00:13:19.320
<v Speaker 5>like the comments, you know, it has the comments structured.

236
00:13:19.399 --> 00:13:25.279
<v Speaker 5>You know, it's a formatted like this is basically saving

237
00:13:25.320 --> 00:13:28.279
<v Speaker 5>you from writing that code like the boilerplate code as

238
00:13:28.279 --> 00:13:28.720
<v Speaker 5>they call.

239
00:13:28.919 --> 00:13:31.279
<v Speaker 2>So and then that means I can edit it because

240
00:13:31.320 --> 00:13:33.320
<v Speaker 2>I can probably read it. But does that mean and

241
00:13:33.399 --> 00:13:36.840
<v Speaker 2>it's no longer manageable? Like what happens now?

242
00:13:37.279 --> 00:13:42.600
<v Speaker 5>Yeah? And yeah that's a major question. You know, once

243
00:13:42.639 --> 00:13:47.039
<v Speaker 5>you generated, you know, can you touch it? And the

244
00:13:47.159 --> 00:13:51.840
<v Speaker 5>question the answer is no, generally you don't want to

245
00:13:52.360 --> 00:13:52.879
<v Speaker 5>edit it.

246
00:13:53.080 --> 00:13:55.080
<v Speaker 2>Right because you do want to be able to regenerate.

247
00:13:55.200 --> 00:14:00.519
<v Speaker 5>So yes, exactly The idea behind it is that it's

248
00:14:00.600 --> 00:14:04.559
<v Speaker 5>designed in such a way that it provides customization points

249
00:14:04.600 --> 00:14:08.720
<v Speaker 5>for you. You can subclass, you know, in a variety

250
00:14:08.720 --> 00:14:15.360
<v Speaker 5>any methods. You can even insert your code in certain

251
00:14:15.399 --> 00:14:17.159
<v Speaker 5>places like to customize it.

252
00:14:17.320 --> 00:14:20.120
<v Speaker 1>Right, that's what I wanted to hear. Yeah, but you

253
00:14:20.360 --> 00:14:23.080
<v Speaker 1>because you know, a perfect example is if it's creating

254
00:14:23.240 --> 00:14:26.480
<v Speaker 1>an API controller, right and it's injecting all the stuff,

255
00:14:26.840 --> 00:14:29.159
<v Speaker 1>but you want to inject something else. Yeah, you know

256
00:14:29.159 --> 00:14:31.600
<v Speaker 1>what I mean, now you've changed it. How do you

257
00:14:31.679 --> 00:14:32.000
<v Speaker 1>do that?

258
00:14:32.320 --> 00:14:32.600
<v Speaker 2>Yeah?

259
00:14:32.600 --> 00:14:35.320
<v Speaker 5>That's the kicker, you know, Like you want to be

260
00:14:35.360 --> 00:14:40.039
<v Speaker 5>able to regenerate, like make changes, and that's going to

261
00:14:40.080 --> 00:14:44.120
<v Speaker 5>be so easy on the maintenance theant because okay, you

262
00:14:44.159 --> 00:14:47.480
<v Speaker 5>can just you know, go and change the underlying model

263
00:14:47.759 --> 00:14:49.480
<v Speaker 5>that's generated from I.

264
00:14:49.440 --> 00:14:52.639
<v Speaker 1>See, and then regenerate. So it's not like you're messing

265
00:14:52.679 --> 00:14:54.679
<v Speaker 1>around with the code at all. You're still working with

266
00:14:54.759 --> 00:14:56.720
<v Speaker 1>the model and the code generator. But you can do

267
00:14:58.840 --> 00:15:02.039
<v Speaker 1>can I say anything that you can do in code

268
00:15:02.320 --> 00:15:03.600
<v Speaker 1>with the model generator?

269
00:15:03.759 --> 00:15:04.360
<v Speaker 5>Pretty much?

270
00:15:04.480 --> 00:15:04.679
<v Speaker 1>Yes?

271
00:15:05.360 --> 00:15:09.039
<v Speaker 5>I mean sometimes, like with the UI views that you generate,

272
00:15:12.120 --> 00:15:16.159
<v Speaker 5>you want to change the layout completely and you can

273
00:15:16.360 --> 00:15:19.279
<v Speaker 5>just you know, say, okay, I'm going to take over

274
00:15:19.399 --> 00:15:19.919
<v Speaker 5>that file.

275
00:15:20.840 --> 00:15:25.360
<v Speaker 1>And yeah, there's architecture issues too, right, I mean, if

276
00:15:25.399 --> 00:15:28.720
<v Speaker 1>you start out with a client project and a server project,

277
00:15:28.720 --> 00:15:32.360
<v Speaker 1>a web project, let's just say, and then you want

278
00:15:32.360 --> 00:15:35.759
<v Speaker 1>to sort of tout to put a shared project in

279
00:15:35.799 --> 00:15:39.000
<v Speaker 1>between those that has some models or some things that

280
00:15:39.200 --> 00:15:43.360
<v Speaker 1>do stuff. Is that something that you can easily modify

281
00:15:43.519 --> 00:15:44.919
<v Speaker 1>in your model designer?

282
00:15:45.200 --> 00:15:51.440
<v Speaker 5>Yes, yes, the model allows you to change like actually,

283
00:15:51.480 --> 00:15:54.519
<v Speaker 5>it makes you kind of like model your application, like

284
00:15:54.840 --> 00:16:00.240
<v Speaker 5>you build your domain models, you build your service models. Yeah,

285
00:16:00.600 --> 00:16:06.960
<v Speaker 5>even the presentation models. And that's all like an XML.

286
00:16:07.000 --> 00:16:10.279
<v Speaker 5>I know Carl's feelings about XML, but.

287
00:16:10.679 --> 00:16:12.200
<v Speaker 1>Hey, as long as I don't have to edit it,

288
00:16:12.480 --> 00:16:14.480
<v Speaker 1>I'm fine. Yeah.

289
00:16:14.559 --> 00:16:17.159
<v Speaker 2>Yeah, you can generate all the XML you want. I

290
00:16:17.159 --> 00:16:18.440
<v Speaker 2>don't have to read it. I'm happy.

291
00:16:18.759 --> 00:16:21.080
<v Speaker 1>Yeah, I can use you you I to do that, right.

292
00:16:21.360 --> 00:16:25.639
<v Speaker 5>Yeah, but I mean it's it's still nice. It's an

293
00:16:25.679 --> 00:16:31.960
<v Speaker 5>experience for developers to update the models. But then you

294
00:16:32.240 --> 00:16:37.440
<v Speaker 5>generate pretty much like the entire applications, like all delayers

295
00:16:37.960 --> 00:16:44.679
<v Speaker 5>from the business services to like interfaces, view models, views,

296
00:16:45.879 --> 00:16:48.480
<v Speaker 5>and you can do like tons of other things you

297
00:16:48.519 --> 00:16:51.679
<v Speaker 5>know that you can generate. It's extensible, so you can

298
00:16:52.360 --> 00:16:54.480
<v Speaker 5>bring more generators to generate.

299
00:16:54.879 --> 00:16:57.440
<v Speaker 1>So you really focus on the architecture and let the

300
00:16:57.480 --> 00:16:59.639
<v Speaker 1>model do the dirty work, the model designer.

301
00:16:59.759 --> 00:17:07.160
<v Speaker 5>Yeah, and the the idea behind the platform is that

302
00:17:08.039 --> 00:17:14.000
<v Speaker 5>it will allow you to generate to use the architecture

303
00:17:15.079 --> 00:17:19.960
<v Speaker 5>with the best practice development practices baked into the development process.

304
00:17:20.319 --> 00:17:21.319
<v Speaker 1>So it's opinionated.

305
00:17:22.079 --> 00:17:26.720
<v Speaker 5>Yeah, so yeah, I mean, you know, like separating business

306
00:17:26.960 --> 00:17:31.640
<v Speaker 5>logic the UI logic. It's been around for a long

307
00:17:31.720 --> 00:17:32.240
<v Speaker 5>long time.

308
00:17:32.519 --> 00:17:34.240
<v Speaker 1>Yeah. I didn't say it was bad opinion.

309
00:17:34.920 --> 00:17:39.319
<v Speaker 5>Yeah, people have been moving to like multi tier applications

310
00:17:39.359 --> 00:17:43.640
<v Speaker 5>back in last century and there was service oriented architecture,

311
00:17:44.400 --> 00:17:45.799
<v Speaker 5>the main driven design.

312
00:17:46.279 --> 00:17:48.279
<v Speaker 1>Welcome to the history of dot net right here.

313
00:17:48.359 --> 00:17:52.960
<v Speaker 5>Ye, lean architecture, et cetera, et cetera. And these are

314
00:17:53.000 --> 00:17:56.519
<v Speaker 5>all good best practices as long as you follow them.

315
00:17:56.640 --> 00:18:01.000
<v Speaker 2>Right right, don't get technical. Now, we waived at it

316
00:18:01.039 --> 00:18:01.880
<v Speaker 2>at least.

317
00:18:02.200 --> 00:18:08.079
<v Speaker 5>Yes, But oftentimes what happens is like, as a developer,

318
00:18:08.160 --> 00:18:12.640
<v Speaker 5>you get a request to like build a new application.

319
00:18:12.960 --> 00:18:16.839
<v Speaker 5>You know, you start with a prototype, build like a

320
00:18:16.880 --> 00:18:21.079
<v Speaker 5>proof of concept. You go quick and dirty, and then

321
00:18:21.160 --> 00:18:25.640
<v Speaker 5>you work on this demo, make try to make it realistic,

322
00:18:26.279 --> 00:18:28.599
<v Speaker 5>and then the demo goes well, you know, in fact,

323
00:18:28.640 --> 00:18:33.079
<v Speaker 5>so well that people, the stakeholders don't even realize that

324
00:18:33.119 --> 00:18:34.240
<v Speaker 5>it's not a real.

325
00:18:34.079 --> 00:18:35.920
<v Speaker 2>Thing, it's a demo. Yeah, they want to employ it.

326
00:18:36.319 --> 00:18:38.920
<v Speaker 5>And then when you come back to them like asking

327
00:18:39.000 --> 00:18:41.319
<v Speaker 5>like all right, we need you know, the big budget,

328
00:18:41.359 --> 00:18:46.240
<v Speaker 5>you know, for actually doing it properly, they would say.

329
00:18:46.079 --> 00:18:48.200
<v Speaker 2>Like, what do you mean, I already saw the demo.

330
00:18:48.279 --> 00:18:53.039
<v Speaker 5>It's done like a share We've seen it working, you know,

331
00:18:53.200 --> 00:18:55.240
<v Speaker 5>like it just fixed the rough edges and you know,

332
00:18:57.200 --> 00:19:00.640
<v Speaker 5>And that's how a lot of projects end up being

333
00:19:02.079 --> 00:19:04.960
<v Speaker 5>because I mean, maybe you'd be okay if you just

334
00:19:05.000 --> 00:19:07.559
<v Speaker 5>hand it over to someone else, you know, and making

335
00:19:07.559 --> 00:19:12.559
<v Speaker 5>someone else's problem. This is just going to be turning

336
00:19:12.599 --> 00:19:16.480
<v Speaker 5>over technical debt, and the technical debt will come do

337
00:19:16.680 --> 00:19:23.400
<v Speaker 5>fast because the maintenance will become a nightmare, you know.

338
00:19:23.559 --> 00:19:31.000
<v Speaker 5>The changing the architecture will be next to impossible. Migrating

339
00:19:31.079 --> 00:19:34.960
<v Speaker 5>to a new U I framework will be problematic if

340
00:19:35.000 --> 00:19:37.960
<v Speaker 5>the business logic is mixed in with the UI logic,

341
00:19:39.240 --> 00:19:42.119
<v Speaker 5>so you may end up having to do the full

342
00:19:42.200 --> 00:19:45.440
<v Speaker 5>rewrite if you need to modernize your system down the road.

343
00:19:47.400 --> 00:19:52.519
<v Speaker 5>And I guess the issues with you know, using the

344
00:19:52.519 --> 00:19:56.960
<v Speaker 5>best practices is that people need to have some learning curve.

345
00:19:58.359 --> 00:20:01.759
<v Speaker 5>You need to have knowledge developers that are familiar with

346
00:20:01.799 --> 00:20:07.680
<v Speaker 5>the best practices. There is sometimes too much ceremony, you know,

347
00:20:07.759 --> 00:20:10.839
<v Speaker 5>with all these interfaces that you have to build on,

348
00:20:11.400 --> 00:20:16.839
<v Speaker 5>implementations and everything, and that eventually is the upfront investment

349
00:20:17.319 --> 00:20:21.920
<v Speaker 5>that you know, business needs to make, and sometimes they

350
00:20:22.079 --> 00:20:27.279
<v Speaker 5>are not willing to and so Omega is trying to

351
00:20:28.480 --> 00:20:33.160
<v Speaker 5>alleviate that and bake in, you know, the best practices

352
00:20:33.759 --> 00:20:38.720
<v Speaker 5>at the fraction of the cost by enforcing these architectural

353
00:20:38.759 --> 00:20:43.400
<v Speaker 5>principles and generating you know, all the code for you

354
00:20:43.559 --> 00:20:47.279
<v Speaker 5>so you don't have to manually maintain all the interfaces

355
00:20:47.279 --> 00:20:47.799
<v Speaker 5>and stuff.

356
00:20:48.039 --> 00:20:51.400
<v Speaker 1>So can I ask about the different types of dot

357
00:20:51.440 --> 00:20:54.000
<v Speaker 1>net projects that you can create? Is it all core

358
00:20:54.200 --> 00:20:57.680
<v Speaker 1>only or do you also support dot Net framework apps?

359
00:20:58.240 --> 00:21:07.039
<v Speaker 5>No, it's actual it can do anything. We started it

360
00:21:10.039 --> 00:21:16.880
<v Speaker 5>a long time ago and it actually held the well,

361
00:21:17.119 --> 00:21:19.519
<v Speaker 5>you know, over the years. We can talk about the

362
00:21:19.640 --> 00:21:22.680
<v Speaker 5>history you know it came to be, but.

363
00:21:23.599 --> 00:21:26.559
<v Speaker 1>I think anything pretty much covers it. Yeah, so it'll

364
00:21:26.599 --> 00:21:27.680
<v Speaker 1>generate a Python app.

365
00:21:27.720 --> 00:21:28.279
<v Speaker 2>Is that what you're saying?

366
00:21:28.319 --> 00:21:31.640
<v Speaker 5>Anything, Well, it can if you need to, but we

367
00:21:31.759 --> 00:21:36.079
<v Speaker 5>have the we have a generated typeescript.

368
00:21:35.839 --> 00:21:38.599
<v Speaker 2>Okay, so fully web if you want to go that way.

369
00:21:38.720 --> 00:21:43.039
<v Speaker 5>Yeah, you can do anything. We just happened to use

370
00:21:43.079 --> 00:21:46.960
<v Speaker 5>dot net and have dot net framework that is the

371
00:21:46.960 --> 00:21:47.920
<v Speaker 5>most advanced there.

372
00:21:48.400 --> 00:21:50.079
<v Speaker 2>So what clients can you produce for me?

373
00:21:51.680 --> 00:21:59.400
<v Speaker 5>Right now? It supports from WPF web forms, a sp dot.

374
00:21:59.240 --> 00:22:01.240
<v Speaker 1>Net, Blazer. I saw.

375
00:22:03.519 --> 00:22:13.079
<v Speaker 5>The SPA applications script, Blazer server and Blazer web assembly

376
00:22:14.720 --> 00:22:16.240
<v Speaker 5>and the unified Blazer.

377
00:22:16.960 --> 00:22:20.920
<v Speaker 1>Uh all right, So here's the question that might stump you.

378
00:22:21.680 --> 00:22:27.680
<v Speaker 1>Maybe I'm hoping it doesn't. Authentication authorization. In the various

379
00:22:27.920 --> 00:22:31.200
<v Speaker 1>models and scenarios that with which you can do that,

380
00:22:32.119 --> 00:22:33.279
<v Speaker 1>are they all supported?

381
00:22:33.599 --> 00:22:33.880
<v Speaker 5>Yes?

382
00:22:34.400 --> 00:22:34.519
<v Speaker 1>Uh?

383
00:22:34.640 --> 00:22:38.559
<v Speaker 5>Not? Well when you say all that's a big statement.

384
00:22:39.319 --> 00:22:42.599
<v Speaker 1>Okay, Well, you know you have the individual accounts using

385
00:22:42.720 --> 00:22:47.519
<v Speaker 1>Microsoft Core Identity, you have Identity server that can put

386
00:22:47.599 --> 00:22:50.640
<v Speaker 1>itself in there. Sometimes, you've got M S A L,

387
00:22:51.799 --> 00:22:55.759
<v Speaker 1>You've got what do they call azure B two B

388
00:22:56.000 --> 00:22:59.000
<v Speaker 1>now as your ad A D B two B intro

389
00:22:59.720 --> 00:23:04.160
<v Speaker 1>and yes, yes, so all of those things, and then

390
00:23:04.200 --> 00:23:06.720
<v Speaker 1>you've got O I D C, and you've got open connect,

391
00:23:06.759 --> 00:23:10.640
<v Speaker 1>and you've got all these protocols and things. Uh, is

392
00:23:10.799 --> 00:23:13.440
<v Speaker 1>are you wizarding that for me? So I don't have

393
00:23:13.519 --> 00:23:15.799
<v Speaker 1>to know all the details of these things? Are you

394
00:23:15.920 --> 00:23:18.880
<v Speaker 1>helping me get the stuff that I need to have

395
00:23:19.000 --> 00:23:19.519
<v Speaker 1>in place.

396
00:23:20.240 --> 00:23:27.799
<v Speaker 5>Yes, So Zomega dot net is a visual studio extension, okay,

397
00:23:27.880 --> 00:23:32.720
<v Speaker 5>and it's it has a project template for creating new

398
00:23:32.799 --> 00:23:38.079
<v Speaker 5>solution uh where you have a wizard that allows you

399
00:23:38.119 --> 00:23:42.000
<v Speaker 5>to pick which architecture you want to use. Uh and

400
00:23:42.200 --> 00:23:47.319
<v Speaker 5>UH the initial solution template that it generates now for

401
00:23:47.440 --> 00:23:51.880
<v Speaker 5>Blazer UH and I think other solutions as well include

402
00:23:52.640 --> 00:24:00.799
<v Speaker 5>the authentication and authorization support. Like out of the box, UH,

403
00:24:01.480 --> 00:24:07.319
<v Speaker 5>it's the default is the user and password just you know,

404
00:24:07.400 --> 00:24:10.640
<v Speaker 5>to get something started. But there is obviously you know,

405
00:24:11.440 --> 00:24:14.920
<v Speaker 5>if you have services hosted, like is the rest API

406
00:24:15.680 --> 00:24:20.640
<v Speaker 5>or a jw T token. Uh. There is if you

407
00:24:20.799 --> 00:24:25.839
<v Speaker 5>use a different communication technology like w c F, they

408
00:24:25.839 --> 00:24:30.599
<v Speaker 5>have their own like identity model that UH needs you know,

409
00:24:30.799 --> 00:24:36.799
<v Speaker 5>the authentication UH, and there is the Blazer server is

410
00:24:36.839 --> 00:24:39.680
<v Speaker 5>a little different because it's like called server side, but

411
00:24:39.759 --> 00:24:44.599
<v Speaker 5>there is a you know, signal or circus running and

412
00:24:45.279 --> 00:24:50.759
<v Speaker 5>it's not easy to set the kookies like the authentication

413
00:24:50.839 --> 00:24:54.799
<v Speaker 5>cookies and send it back to the client. But we

414
00:24:55.039 --> 00:24:59.160
<v Speaker 5>actually solve that so that you can build the same

415
00:24:59.240 --> 00:25:03.519
<v Speaker 5>log in experience and it's going to work the same way.

416
00:25:05.319 --> 00:25:07.720
<v Speaker 5>Both in Blazer server and Blazer web assembly.

417
00:25:08.559 --> 00:25:08.799
<v Speaker 1>Wow.

418
00:25:09.680 --> 00:25:11.640
<v Speaker 5>You know, under the hood it's going to go like

419
00:25:13.039 --> 00:25:16.799
<v Speaker 5>call an API and point for a web assembly or

420
00:25:17.559 --> 00:25:20.720
<v Speaker 5>for a Blazer is going to run on the server side,

421
00:25:21.640 --> 00:25:26.440
<v Speaker 5>but it's all like hidden behind you know, the interfaces

422
00:25:26.440 --> 00:25:27.799
<v Speaker 5>and different implementations.

423
00:25:28.000 --> 00:25:29.960
<v Speaker 1>Well that sounds good. I mean anything that will give

424
00:25:30.000 --> 00:25:35.400
<v Speaker 1>me some sort of guidance and assistance and either making

425
00:25:35.400 --> 00:25:38.279
<v Speaker 1>those decisions, which it sounds like not like it's not

426
00:25:38.359 --> 00:25:41.880
<v Speaker 1>a guidance wizard, but you know, help me with the

427
00:25:42.319 --> 00:25:47.000
<v Speaker 1>plumbing of implementing those things which are always changing and

428
00:25:47.039 --> 00:25:49.200
<v Speaker 1>always moving and have different requirements.

429
00:25:50.680 --> 00:25:51.400
<v Speaker 2>That's good.

430
00:25:51.799 --> 00:25:54.359
<v Speaker 5>Yeah, because there are so many different ways of you know,

431
00:25:54.480 --> 00:25:59.680
<v Speaker 5>the doing security and authentication specifically, we kind of just

432
00:25:59.720 --> 00:26:01.480
<v Speaker 5>you know put it all in you know, right.

433
00:26:01.440 --> 00:26:02.160
<v Speaker 1>Yeah, yeah, sure.

434
00:26:03.160 --> 00:26:08.920
<v Speaker 5>You Basically a sp dot net core is specifically just

435
00:26:08.960 --> 00:26:12.519
<v Speaker 5>allows you to like add one line like a you

436
00:26:12.559 --> 00:26:18.079
<v Speaker 5>know Facebook authentication, Google authentication, you know Microsoft. So that's

437
00:26:18.519 --> 00:26:22.480
<v Speaker 5>just you know, one line that you add and you

438
00:26:22.519 --> 00:26:23.279
<v Speaker 5>should be good to go.

439
00:26:23.440 --> 00:26:26.039
<v Speaker 2>Like, but I got to think you're talking about a

440
00:26:26.039 --> 00:26:30.599
<v Speaker 2>typical app for Zomega. It's an internal app, right, and

441
00:26:31.079 --> 00:26:33.680
<v Speaker 2>replacing an old ASP dot webforms AP. Things like that like,

442
00:26:34.000 --> 00:26:36.160
<v Speaker 2>they're going to have an internal authentication strategy you're going

443
00:26:36.200 --> 00:26:38.599
<v Speaker 2>to need to support, right, Yeah, it's probably not going

444
00:26:38.680 --> 00:26:40.359
<v Speaker 2>to be Google or Facebook, I'm betting.

445
00:26:40.799 --> 00:26:43.519
<v Speaker 5>Yeah, it's going to be some sso if it's a

446
00:26:43.559 --> 00:26:44.559
<v Speaker 5>big company, but.

447
00:26:44.640 --> 00:26:47.200
<v Speaker 2>Yeah, it's going to be active directory or it could

448
00:26:47.240 --> 00:26:48.400
<v Speaker 2>be Google or Facebook.

449
00:26:48.720 --> 00:26:50.440
<v Speaker 1>You never know, pretty sure, pretty.

450
00:26:50.200 --> 00:26:55.279
<v Speaker 5>Sure, Microsoft authentication might be there.

451
00:26:55.720 --> 00:27:00.920
<v Speaker 1>You haven't met my customers, Richard, That's true.

452
00:27:01.799 --> 00:27:04.480
<v Speaker 5>Sometimes you just need something, you know, to athentic case

453
00:27:04.519 --> 00:27:08.319
<v Speaker 5>of password and user name. Yeah, like a speed up

454
00:27:08.319 --> 00:27:12.880
<v Speaker 5>net identity will be fine, you know, just to get started. Sure.

455
00:27:13.119 --> 00:27:15.680
<v Speaker 2>Yeah, then it's always question of how much challenge it

456
00:27:15.720 --> 00:27:19.960
<v Speaker 2>is retrofre to new security profile and yeah after the fact.

457
00:27:19.960 --> 00:27:22.480
<v Speaker 2>But if I'm living in generators, it shouldn't be that hard, right,

458
00:27:22.559 --> 00:27:25.200
<v Speaker 2>I should just be able to indicate the few changes

459
00:27:25.279 --> 00:27:27.640
<v Speaker 2>and then regenerate and hopefully all the good things happen.

460
00:27:27.799 --> 00:27:30.079
<v Speaker 1>Right. It's a big leap of faith for your average

461
00:27:30.119 --> 00:27:34.519
<v Speaker 1>programmer that loves to write code. Yeah right, I'm writing

462
00:27:34.680 --> 00:27:37.920
<v Speaker 1>code though, Yeah, I'm no longer writing code. I'm learning

463
00:27:38.000 --> 00:27:41.720
<v Speaker 1>the ins and outs of this model generator designer thing. Yeah.

464
00:27:41.759 --> 00:27:42.000
<v Speaker 2>But the.

465
00:27:43.640 --> 00:27:47.880
<v Speaker 5>Best thing, I guess is you are able to go

466
00:27:47.920 --> 00:27:51.480
<v Speaker 5>and change the model and you just keep iterating, you know,

467
00:27:51.720 --> 00:27:55.519
<v Speaker 5>and you regenerate the whole thing. It just makes so

468
00:27:55.599 --> 00:27:59.880
<v Speaker 5>much easier to program and you know, build his applications

469
00:28:00.119 --> 00:28:00.440
<v Speaker 5>and a.

470
00:28:00.400 --> 00:28:03.400
<v Speaker 1>Lot less prone to bugs. I would think, right, you know,

471
00:28:03.640 --> 00:28:06.920
<v Speaker 1>you would hope, you would hope. I mean bugs get

472
00:28:06.960 --> 00:28:11.200
<v Speaker 1>introduced when you do something over here but not over here,

473
00:28:11.400 --> 00:28:13.519
<v Speaker 1>or you do things a little bit differently in a

474
00:28:13.519 --> 00:28:19.720
<v Speaker 1>couple of places and you know, or you duplicate work. Yes,

475
00:28:19.839 --> 00:28:23.599
<v Speaker 1>and those are some of the fallacies that you know,

476
00:28:23.640 --> 00:28:27.359
<v Speaker 1>pitfalls that dot net developers, developers in general fall into.

477
00:28:27.559 --> 00:28:34.119
<v Speaker 5>Yes, And this is basically the consistency that we provide

478
00:28:34.960 --> 00:28:37.799
<v Speaker 5>because and this is like the core thing. You know,

479
00:28:37.839 --> 00:28:42.599
<v Speaker 5>on the framework level, on the model level, you can

480
00:28:42.640 --> 00:28:46.400
<v Speaker 5>define like logical types, you know, like for example user

481
00:28:46.480 --> 00:28:52.559
<v Speaker 5>type and you know, just describe, you know, the validation

482
00:28:52.680 --> 00:28:56.799
<v Speaker 5>rules for the conversion, you know, the list of possible

483
00:28:56.880 --> 00:29:02.039
<v Speaker 5>values and use it like everywhere. So it's going to

484
00:29:02.119 --> 00:29:07.119
<v Speaker 5>have the consistent user experience across all the screens wherever

485
00:29:07.160 --> 00:29:12.200
<v Speaker 5>you use the same the same type or the same

486
00:29:12.279 --> 00:29:13.039
<v Speaker 5>data property.

487
00:29:13.359 --> 00:29:15.279
<v Speaker 1>And you know what, this is a good time for

488
00:29:15.319 --> 00:29:17.960
<v Speaker 1>a break, I think, So let's take a break and

489
00:29:18.039 --> 00:29:24.599
<v Speaker 1>we'll be right back after these very important messages, and

490
00:29:24.680 --> 00:29:27.160
<v Speaker 1>we're back. This is dot net Rocks. I'm Carl Franklin.

491
00:29:27.240 --> 00:29:30.960
<v Speaker 1>That's my buddy Richard Campbell. Hey, and we're talking to Sergei,

492
00:29:31.039 --> 00:29:36.279
<v Speaker 1>Sarah Fudenoff about Zomega, dot Net and Richard and I

493
00:29:36.359 --> 00:29:37.759
<v Speaker 1>believe the floor is yours.

494
00:29:37.960 --> 00:29:41.279
<v Speaker 2>Yeah, you know, I was thinking about Greenfield. Doesn't happen

495
00:29:41.359 --> 00:29:44.640
<v Speaker 2>very often that and I really like the particular scenario

496
00:29:44.720 --> 00:29:47.680
<v Speaker 2>and something you mentioned in your documentation too, about I

497
00:29:47.720 --> 00:29:50.720
<v Speaker 2>have an existing ASP dot net web forms app. People

498
00:29:50.799 --> 00:29:53.480
<v Speaker 2>have asked for changes to it. I didn't write that code.

499
00:29:53.759 --> 00:29:56.920
<v Speaker 2>I'm scared to death of this thing. I think now,

500
00:29:57.160 --> 00:30:00.279
<v Speaker 2>can I make changes to it through some and like

501
00:30:00.440 --> 00:30:02.799
<v Speaker 2>Zomega and have fewer problems?

502
00:30:04.400 --> 00:30:04.640
<v Speaker 1>Yes.

503
00:30:05.000 --> 00:30:10.559
<v Speaker 5>Normally, if you have an old legacy web forms application,

504
00:30:11.480 --> 00:30:17.359
<v Speaker 5>you're probably thinking of upgrading it to the ASP dot

505
00:30:17.440 --> 00:30:22.279
<v Speaker 5>netcore and Plazer and lay this tech. So we help

506
00:30:22.359 --> 00:30:32.200
<v Speaker 5>you do that. You can rewrite some of the modules

507
00:30:32.279 --> 00:30:37.960
<v Speaker 5>or some of these screens using Zomega like generated and

508
00:30:38.119 --> 00:30:45.599
<v Speaker 5>because we make you write code that is basically platform independent,

509
00:30:46.960 --> 00:30:52.079
<v Speaker 5>it's just it doesn't matter like what communication framework you're using.

510
00:30:52.160 --> 00:30:55.519
<v Speaker 5>Then you can expose your services as whatever, either like

511
00:30:55.680 --> 00:31:01.519
<v Speaker 5>use them in process internally or exposed as rest API,

512
00:31:02.400 --> 00:31:07.960
<v Speaker 5>g RPC, whatever you want, or even like the presentation

513
00:31:08.160 --> 00:31:13.440
<v Speaker 5>logic that you're right is basically it doesn't have any

514
00:31:13.480 --> 00:31:19.400
<v Speaker 5>dependencies on the UI framework. It's basically like m v

515
00:31:19.519 --> 00:31:25.440
<v Speaker 5>v M like model few view models. But it's like

516
00:31:25.559 --> 00:31:32.839
<v Speaker 5>on steroids, you know, because it allows you to describe

517
00:31:32.880 --> 00:31:35.440
<v Speaker 5>all your logic in there, all the presentation, like the

518
00:31:35.559 --> 00:31:39.960
<v Speaker 5>data elements, you know, the way they're calculated, the way

519
00:31:40.000 --> 00:31:48.160
<v Speaker 5>they format their values for display, for internal storage, the

520
00:31:48.200 --> 00:31:52.519
<v Speaker 5>way they the validation rules. You know everything about your UI.

521
00:31:52.720 --> 00:31:56.720
<v Speaker 5>You know what views and forms in the view model

522
00:31:56.759 --> 00:31:59.960
<v Speaker 5>you have, and then you just have a thin land

523
00:32:00.319 --> 00:32:06.000
<v Speaker 5>of the actual UI view that you just bind to

524
00:32:06.119 --> 00:32:11.160
<v Speaker 5>your view model and you get you know, working screen.

525
00:32:11.559 --> 00:32:17.039
<v Speaker 2>Nice. So we're talking about rebuilding the existing app through

526
00:32:17.319 --> 00:32:20.240
<v Speaker 2>Zomega or are we able to actually add to the

527
00:32:20.279 --> 00:32:21.000
<v Speaker 2>existing app.

528
00:32:22.240 --> 00:32:26.640
<v Speaker 5>You can add you know, like because we support webforms applications, right,

529
00:32:27.599 --> 00:32:32.599
<v Speaker 5>you can generate stuff for webforms, Like if you want

530
00:32:32.599 --> 00:32:37.039
<v Speaker 5>to add like new screens with web forms Zoemega, then

531
00:32:37.440 --> 00:32:42.960
<v Speaker 5>those will be automatically structured and architecture in such a

532
00:32:42.960 --> 00:32:44.920
<v Speaker 5>way that you can migrate them easily to.

533
00:32:46.279 --> 00:32:48.640
<v Speaker 2>And I can point Zomega at the existing data store

534
00:32:48.680 --> 00:32:51.480
<v Speaker 2>that the existing asp web Forms app are you using,

535
00:32:51.559 --> 00:32:54.240
<v Speaker 2>and it'll build a model for me from that, right,

536
00:32:54.319 --> 00:32:58.359
<v Speaker 2>and then I can go and build it. I thinking like,

537
00:32:58.519 --> 00:33:00.920
<v Speaker 2>that's just giving me me. It would be fun to

538
00:33:00.960 --> 00:33:03.039
<v Speaker 2>take this out for a spin on an existing asp

539
00:33:03.119 --> 00:33:05.039
<v Speaker 2>dot Webforms app where they've asked me to add a

540
00:33:05.079 --> 00:33:08.200
<v Speaker 2>new section to it, and just have pick the model

541
00:33:08.279 --> 00:33:10.279
<v Speaker 2>up and go from there and see if I can

542
00:33:10.319 --> 00:33:13.640
<v Speaker 2>get to a place that makes sense before without having

543
00:33:13.640 --> 00:33:16.359
<v Speaker 2>to touch the existing code, because that's what scares people, right,

544
00:33:16.400 --> 00:33:19.079
<v Speaker 2>It's just a way to avoid that. And then the

545
00:33:19.119 --> 00:33:21.559
<v Speaker 2>other side of this is then I could start refactoring

546
00:33:21.559 --> 00:33:25.359
<v Speaker 2>and rebuilding some of the older existing stuff into Zomega,

547
00:33:25.759 --> 00:33:27.759
<v Speaker 2>and at some point when I got the whole thing across,

548
00:33:27.799 --> 00:33:29.559
<v Speaker 2>I could say, would you like to see a Blazer

549
00:33:29.640 --> 00:33:30.160
<v Speaker 2>version of this?

550
00:33:30.720 --> 00:33:31.000
<v Speaker 5>Right?

551
00:33:31.519 --> 00:33:34.599
<v Speaker 2>That's interesting to me because you now no dead drops, right,

552
00:33:34.920 --> 00:33:37.279
<v Speaker 2>I can add any features in demanding right now, and

553
00:33:37.319 --> 00:33:39.079
<v Speaker 2>I can make improvements here and there and bit by

554
00:33:39.200 --> 00:33:41.920
<v Speaker 2>bit remediate an old application.

555
00:33:42.160 --> 00:33:46.480
<v Speaker 5>Yes, And it's similar to what Microsoft, I guess is

556
00:33:46.880 --> 00:33:50.680
<v Speaker 5>pushing right now, like with the migration path from a

557
00:33:50.759 --> 00:33:55.079
<v Speaker 5>web forms to Blazer where you run some screens, you know,

558
00:33:55.200 --> 00:34:00.240
<v Speaker 5>like they get rendered with the old technology and some

559
00:34:00.279 --> 00:34:06.720
<v Speaker 5>new screens are rendered with the Blazer technology. But it's still.

560
00:34:07.079 --> 00:34:09.360
<v Speaker 2>Yeah, it's just always a question of are you always

561
00:34:09.360 --> 00:34:10.639
<v Speaker 2>in an operable state?

562
00:34:10.880 --> 00:34:11.039
<v Speaker 1>Right?

563
00:34:11.239 --> 00:34:13.480
<v Speaker 2>You can make some changes and you can introduce them

564
00:34:13.519 --> 00:34:15.239
<v Speaker 2>to folks and have them take it out for a spin,

565
00:34:15.320 --> 00:34:17.559
<v Speaker 2>and they're not like, what is this much as opposed

566
00:34:17.559 --> 00:34:19.480
<v Speaker 2>to you? I go away for six months build a

567
00:34:19.519 --> 00:34:23.039
<v Speaker 2>huge thing that everybody hates, right, And that's what scares me.

568
00:34:23.079 --> 00:34:25.800
<v Speaker 2>It is all too often, you know, they get caught

569
00:34:25.840 --> 00:34:29.079
<v Speaker 2>on a rewrite and nobody sees it until it's done,

570
00:34:29.280 --> 00:34:33.480
<v Speaker 2>till the budget's burned. Right, And now now you're in trouble. Right,

571
00:34:33.599 --> 00:34:35.360
<v Speaker 2>I'm just trying. I'm just trying to stay out of trouble.

572
00:34:35.920 --> 00:34:38.320
<v Speaker 2>I'm not saying I'm good at it, just trying. I'm

573
00:34:38.360 --> 00:34:43.760
<v Speaker 2>only trying. Yeah, all right, what about like testing infrastructure,

574
00:34:43.960 --> 00:34:46.159
<v Speaker 2>like all of those kinds of things. Do you bother

575
00:34:46.239 --> 00:34:47.760
<v Speaker 2>any of that? Is the code you generate so good

576
00:34:47.760 --> 00:34:48.719
<v Speaker 2>it doesn't need to be tested.

577
00:34:49.079 --> 00:34:54.880
<v Speaker 5>Well, you can use any testing framework with it. You

578
00:34:54.920 --> 00:35:00.840
<v Speaker 5>can even add generators that would generate unit to right,

579
00:35:01.519 --> 00:35:04.800
<v Speaker 5>I mean it's basically as long as the model has

580
00:35:04.840 --> 00:35:11.440
<v Speaker 5>that information and the data enough data to derive you

581
00:35:11.480 --> 00:35:16.280
<v Speaker 5>know what tests need to be there. And because we

582
00:35:16.360 --> 00:35:19.480
<v Speaker 5>already have like the model has tons of information, has

583
00:35:19.519 --> 00:35:23.519
<v Speaker 5>the service model, it has the domain model, and it

584
00:35:23.599 --> 00:35:28.760
<v Speaker 5>has the some presentation model. So it's able to generate

585
00:35:28.760 --> 00:35:31.840
<v Speaker 5>all the codes, so there is no reason it cannot

586
00:35:31.880 --> 00:35:35.159
<v Speaker 5>generate unit tests for those as well.

587
00:35:35.639 --> 00:35:39.679
<v Speaker 2>What's the preferred back end storage model? Like, I see

588
00:35:39.679 --> 00:35:42.960
<v Speaker 2>you support postcress. Is it all our dybms? Could I

589
00:35:43.000 --> 00:35:46.119
<v Speaker 2>switch this to a mode where it's just writing into blobs?

590
00:35:46.440 --> 00:35:53.639
<v Speaker 5>So yeah, we use anty framework Core and I guess

591
00:35:53.719 --> 00:35:59.000
<v Speaker 5>whatever back end providers it has would be supported.

592
00:35:59.719 --> 00:36:01.280
<v Speaker 2>Now I gotta go quickly look up to see if

593
00:36:01.280 --> 00:36:04.679
<v Speaker 2>they still support XML as a store. I don't know

594
00:36:04.679 --> 00:36:06.119
<v Speaker 2>that it's a good idea, but I'm just saying that

595
00:36:06.320 --> 00:36:07.199
<v Speaker 2>that would amuse me.

596
00:36:08.480 --> 00:36:10.559
<v Speaker 5>Probably not actively supporting yet, but.

597
00:36:11.199 --> 00:36:15.360
<v Speaker 2>No, no as your SQL, SQL Light, my SQL postgrass

598
00:36:15.360 --> 00:36:17.280
<v Speaker 2>and Cosmos dB, right.

599
00:36:18.719 --> 00:36:22.719
<v Speaker 5>I mean some vendors might have their own providers this

600
00:36:22.840 --> 00:36:30.599
<v Speaker 5>third party so whatever. In terms of the domain model,

601
00:36:30.760 --> 00:36:34.960
<v Speaker 5>we use Endity framework or also have support for the

602
00:36:35.719 --> 00:36:39.880
<v Speaker 5>legacy antidy framework. Six You have six but that's kind

603
00:36:39.880 --> 00:36:47.679
<v Speaker 5>of going away. But you know, you can use as

604
00:36:47.760 --> 00:36:49.360
<v Speaker 5>much of it as you want. You know, you can

605
00:36:49.519 --> 00:36:53.880
<v Speaker 5>generate the services and then override provide your own implementations

606
00:36:53.920 --> 00:36:57.599
<v Speaker 5>to do whatever data story you want.

607
00:36:56.800 --> 00:36:59.440
<v Speaker 2>You well, and there's all the third party like you

608
00:36:59.440 --> 00:37:03.199
<v Speaker 2>can go into ole if you hate yourself and dB

609
00:37:03.360 --> 00:37:08.719
<v Speaker 2>two inter base. Look, here's a provider for storing tables

610
00:37:08.719 --> 00:37:14.239
<v Speaker 2>and files. Because I'm looking for bad performance. I don't

611
00:37:14.280 --> 00:37:17.199
<v Speaker 2>know the answer. That's probably unfair. Be interesting to try it, honestly,

612
00:37:17.280 --> 00:37:20.039
<v Speaker 2>just to see where they Oh boy, there's an access provider.

613
00:37:20.199 --> 00:37:20.960
<v Speaker 2>There you go.

614
00:37:23.800 --> 00:37:26.880
<v Speaker 5>But you can even go with no SQL databases.

615
00:37:26.320 --> 00:37:27.840
<v Speaker 2>Like Mango supported.

616
00:37:27.960 --> 00:37:31.760
<v Speaker 1>Absolutely, it's a wonderful no SQL database solution that I've

617
00:37:31.760 --> 00:37:34.000
<v Speaker 1>been using lately. It's called Jason.

618
00:37:35.400 --> 00:37:38.320
<v Speaker 2>You and me both. So that's what run as lives

619
00:37:38.360 --> 00:37:42.840
<v Speaker 2>on Jason yeah too, yeah, yeah, no question. Uh But

620
00:37:43.440 --> 00:37:45.119
<v Speaker 2>I mean when you think about one of the powers

621
00:37:45.119 --> 00:37:49.039
<v Speaker 2>of these generators is to attack questions like that, is

622
00:37:49.079 --> 00:37:51.400
<v Speaker 2>to say, hey, what if we switched to we're paying

623
00:37:51.440 --> 00:37:54.639
<v Speaker 2>a license fee for this database, what would what would

624
00:37:54.639 --> 00:37:55.880
<v Speaker 2>it take to try some of the other ones. So

625
00:37:55.920 --> 00:37:58.320
<v Speaker 2>you go down the you know e f core list

626
00:37:58.360 --> 00:37:59.960
<v Speaker 2>and say, well, which one should we grab and let's

627
00:38:00.079 --> 00:38:02.199
<v Speaker 2>try something. And it doesn't have a license on it,

628
00:38:02.239 --> 00:38:03.719
<v Speaker 2>does it? You know what difference does it make?

629
00:38:03.760 --> 00:38:06.000
<v Speaker 1>Well? You know what all that could be solved if

630
00:38:06.000 --> 00:38:09.360
<v Speaker 1>you use the repository pattern. Do you use the repository pattern?

631
00:38:10.920 --> 00:38:16.199
<v Speaker 5>Well, the repository is basically with the Antity framework Core.

632
00:38:16.880 --> 00:38:20.239
<v Speaker 5>So if whatever you do with the Antidy framework Core,

633
00:38:20.920 --> 00:38:29.679
<v Speaker 5>if you switch the provider from one database to another, yeah.

634
00:38:29.400 --> 00:38:32.039
<v Speaker 1>But there are things that EF doesn't support, right, So

635
00:38:32.559 --> 00:38:35.280
<v Speaker 1>the trick is to have your interface that has all

636
00:38:35.280 --> 00:38:39.079
<v Speaker 1>the CRUD operations on it, and then repository.

637
00:38:40.679 --> 00:38:44.599
<v Speaker 5>It's kind of part of the clean architecture. I mean,

638
00:38:44.679 --> 00:38:51.480
<v Speaker 5>I'm still yet to see people switching the databases.

639
00:38:51.599 --> 00:38:54.119
<v Speaker 2>But I'm describing something probably nobody does.

640
00:38:54.320 --> 00:38:57.880
<v Speaker 1>That's not true. I do, but I start I start

641
00:38:57.920 --> 00:39:03.199
<v Speaker 1>with in memory and then I switched to uh, you know,

642
00:39:03.280 --> 00:39:06.079
<v Speaker 1>any framework or back and forth between that and dapper

643
00:39:06.320 --> 00:39:09.559
<v Speaker 1>or you know, if I wanted to create to do

644
00:39:09.599 --> 00:39:13.079
<v Speaker 1>it all with JSON files, that could swap that out. Yeah.

645
00:39:13.320 --> 00:39:18.239
<v Speaker 2>It's definitely creating a low barrier of entry to experimenting

646
00:39:18.320 --> 00:39:20.719
<v Speaker 2>with different data stores. If that became a concern of you,

647
00:39:20.960 --> 00:39:22.880
<v Speaker 2>what about true containers?

648
00:39:23.079 --> 00:39:24.280
<v Speaker 1>That's crazy talk, Richard.

649
00:39:24.400 --> 00:39:29.239
<v Speaker 5>Containers. Uh, they're supported just as part of the general

650
00:39:31.760 --> 00:39:37.320
<v Speaker 5>you know architecture because you just build your solution and

651
00:39:37.559 --> 00:39:42.000
<v Speaker 5>you know, build containers and you can employ them.

652
00:39:42.519 --> 00:39:45.719
<v Speaker 2>That's just part of the c ICD pipeline. The Zomega

653
00:39:45.760 --> 00:39:49.599
<v Speaker 2>gets to the build stage essentially pushes the code, kicks

654
00:39:49.599 --> 00:39:51.760
<v Speaker 2>off a bill process, and if in that build process

655
00:39:51.800 --> 00:39:55.119
<v Speaker 2>you're deploying out to containers, fine, you're not going to interfere.

656
00:39:54.719 --> 00:39:57.719
<v Speaker 5>With that, right, yeah, It just you know, I bet

657
00:39:57.840 --> 00:39:58.360
<v Speaker 5>your own.

658
00:39:59.239 --> 00:40:01.880
<v Speaker 2>And you're so your architecture is already very much about

659
00:40:01.920 --> 00:40:05.039
<v Speaker 2>state outside of the object, So you're not going to

660
00:40:05.079 --> 00:40:08.079
<v Speaker 2>get any nasty traps that inexperienced container people run into.

661
00:40:08.760 --> 00:40:09.159
<v Speaker 1>Mm hmm.

662
00:40:10.400 --> 00:40:13.320
<v Speaker 2>Right, yeah, well, because we'll find out fast if you

663
00:40:13.320 --> 00:40:18.519
<v Speaker 2>didn't know where stuffs get stored matters for sure. You know,

664
00:40:18.639 --> 00:40:20.719
<v Speaker 2>that's that's always part, part and parcel of the problem.

665
00:40:21.840 --> 00:40:23.800
<v Speaker 2>But I do think one of the things we like

666
00:40:23.880 --> 00:40:26.760
<v Speaker 2>with a generator is providing people with the ability to

667
00:40:26.960 --> 00:40:29.960
<v Speaker 2>rapid choice. That we could look at a blazer of

668
00:40:30.000 --> 00:40:33.360
<v Speaker 2>melitation of something both web assembly or server and say,

669
00:40:33.400 --> 00:40:36.840
<v Speaker 2>what do we think? You know, what's the feel like?

670
00:40:37.039 --> 00:40:39.400
<v Speaker 2>You know that that to me is very interesting that

671
00:40:39.400 --> 00:40:42.679
<v Speaker 2>that you don't know, you're not doing a big multi

672
00:40:42.679 --> 00:40:44.559
<v Speaker 2>week spike to try and test something like this. The

673
00:40:44.599 --> 00:40:46.159
<v Speaker 2>generator would do a lot of that work for you.

674
00:40:46.519 --> 00:40:50.400
<v Speaker 5>Yes, the generator and the architecture we use in some

675
00:40:50.440 --> 00:40:54.199
<v Speaker 5>of the videos will show how you can build the

676
00:40:54.199 --> 00:40:58.440
<v Speaker 5>same application with Blazer server web assembly and you can't

677
00:40:58.480 --> 00:41:01.239
<v Speaker 5>even tell, you know, from the look of it, you

678
00:41:01.239 --> 00:41:04.800
<v Speaker 5>know which architecture it uses, owner of the hood, but

679
00:41:05.199 --> 00:41:06.679
<v Speaker 5>it looks exactly the same.

680
00:41:07.159 --> 00:41:09.800
<v Speaker 2>Now i'd wanted to experiment with Okay, now the client's remote,

681
00:41:09.840 --> 00:41:12.320
<v Speaker 2>it's through a narrow pipe or something highly latent, right,

682
00:41:12.400 --> 00:41:14.320
<v Speaker 2>and just she can you know, can you feel the

683
00:41:14.360 --> 00:41:16.239
<v Speaker 2>difference on that? But the fact that it'd be easy

684
00:41:16.239 --> 00:41:21.119
<v Speaker 2>to do that testing you call the type script implementation

685
00:41:21.199 --> 00:41:24.960
<v Speaker 2>is SPA. What SPA libraries are you using?

686
00:41:25.320 --> 00:41:31.400
<v Speaker 5>Well, that was kind of an old framework back in

687
00:41:31.760 --> 00:41:37.199
<v Speaker 5>h like maybe ten years ago or so, when we

688
00:41:37.360 --> 00:41:43.719
<v Speaker 5>had only like the web forms support, and then I

689
00:41:43.840 --> 00:41:48.840
<v Speaker 5>realized that, you know, it's going away, and Microsoft was

690
00:41:48.880 --> 00:41:52.840
<v Speaker 5>pushing for MVC, you know actively, and we're saying like, oh,

691
00:41:52.920 --> 00:41:56.599
<v Speaker 5>don't you worry, it's just an alternate way of doing it,

692
00:41:56.719 --> 00:41:59.239
<v Speaker 5>you know, like web forms is going to be your

693
00:41:59.239 --> 00:42:01.119
<v Speaker 5>life and well, you.

694
00:42:01.079 --> 00:42:04.360
<v Speaker 2>Know, and there's still plenty of worms web forms people

695
00:42:04.400 --> 00:42:06.760
<v Speaker 2>out there today, right, like it's not like that things

696
00:42:06.840 --> 00:42:09.639
<v Speaker 2>going away, but they're definitely on standard framework.

697
00:42:09.440 --> 00:42:13.559
<v Speaker 5>Right, So and I didn't like see much difference like

698
00:42:13.639 --> 00:42:20.840
<v Speaker 5>with NVC, so I didn't jump on the bandwagon because

699
00:42:20.840 --> 00:42:23.079
<v Speaker 5>we in the web forest we used like ohing like

700
00:42:23.440 --> 00:42:26.000
<v Speaker 5>with the middlewere and dependency in Jackson, so all the

701
00:42:26.079 --> 00:42:31.280
<v Speaker 5>latest stuff, right, So it didn't feel like, uh, uh

702
00:42:32.559 --> 00:42:35.519
<v Speaker 5>m VC was much different at the time. So we

703
00:42:35.559 --> 00:42:41.280
<v Speaker 5>started looking around and everybody was like building spas, so

704
00:42:41.639 --> 00:42:47.159
<v Speaker 5>we thought, like, what can we do to massage Zamiga

705
00:42:47.639 --> 00:42:52.599
<v Speaker 5>to make it build a spa? And uh, there are

706
00:42:52.679 --> 00:42:58.400
<v Speaker 5>tons of different JavaScript frameworks around uh back then and

707
00:42:58.599 --> 00:43:06.599
<v Speaker 5>the most popular ones in the dot net community were Knockout. Yeah, yes,

708
00:43:07.079 --> 00:43:14.199
<v Speaker 5>so uh and uh D Randal by Rob Rob Eisenberg.

709
00:43:14.280 --> 00:43:18.119
<v Speaker 2>Yeah, okay, those were they. You know, history is history,

710
00:43:18.239 --> 00:43:23.440
<v Speaker 2>right like today you may talk about react and angular

711
00:43:25.559 --> 00:43:27.559
<v Speaker 2>and the other one she's the name just jumped out

712
00:43:27.559 --> 00:43:31.239
<v Speaker 2>of my head View and you and View. Yeah that's

713
00:43:31.239 --> 00:43:34.199
<v Speaker 2>sort of the big ones right now, but back then,

714
00:43:34.519 --> 00:43:35.480
<v Speaker 2>knockout was the way.

715
00:43:35.840 --> 00:43:40.679
<v Speaker 5>So yeah, we did pick the knockout because it was

716
00:43:40.880 --> 00:43:46.239
<v Speaker 5>pretty closed in terms of uh how Zamega framework was

717
00:43:46.280 --> 00:43:52.840
<v Speaker 5>working and uh the m v D m uh paradigm,

718
00:43:53.280 --> 00:43:57.199
<v Speaker 5>so it had like observables and everything. And we build

719
00:43:57.239 --> 00:44:02.039
<v Speaker 5>the Zomega JSU frame, work with the Typescript based framework

720
00:44:03.199 --> 00:44:08.760
<v Speaker 5>for that. But then you know, it kind of got stale. Yeah,

721
00:44:08.840 --> 00:44:14.480
<v Speaker 5>they knockout, you know, got stale. Rob left for Google

722
00:44:14.519 --> 00:44:19.519
<v Speaker 5>and then started his own.

723
00:44:17.679 --> 00:44:21.119
<v Speaker 2>To aralia you know as the nature of JavaScript frameworks.

724
00:44:21.239 --> 00:44:25.679
<v Speaker 5>But so we were left stranded again. You know, so

725
00:44:25.840 --> 00:44:31.360
<v Speaker 5>I was thinking about building an angler version like Zomega Energy.

726
00:44:32.079 --> 00:44:34.239
<v Speaker 2>I can't imagine that's that's not what the customers want.

727
00:44:34.280 --> 00:44:35.280
<v Speaker 2>The customers want Blazer.

728
00:44:35.519 --> 00:44:39.000
<v Speaker 5>Yeah, then came out there's you know, amazing technology from Blazer,

729
00:44:39.840 --> 00:44:43.239
<v Speaker 5>and I looked at the who stands behind it, and

730
00:44:43.280 --> 00:44:46.320
<v Speaker 5>then look what it is like Steve Sanderson.

731
00:44:45.960 --> 00:44:49.800
<v Speaker 2>Yeah, the same right, no kidding? Yeah, Yeah, it's hard. Yeah,

732
00:44:50.199 --> 00:44:52.000
<v Speaker 2>I think you put your time in the right place. Like,

733
00:44:52.519 --> 00:44:54.360
<v Speaker 2>it doesn't make sense to do this now if you're

734
00:44:54.360 --> 00:44:57.360
<v Speaker 2>gonna if you're gonna go down that path, you only

735
00:44:57.400 --> 00:44:59.400
<v Speaker 2>have so many hours to work on code. Better to

736
00:44:59.400 --> 00:45:01.639
<v Speaker 2>add features on the Blazer side then to worry about

737
00:45:01.840 --> 00:45:04.679
<v Speaker 2>I'm not going to say legacy, but other you know,

738
00:45:05.239 --> 00:45:07.239
<v Speaker 2>I don't know the SPA is that hip anymore. Lots

739
00:45:07.280 --> 00:45:09.199
<v Speaker 2>of people got work in it, no two ways about it,

740
00:45:09.719 --> 00:45:12.519
<v Speaker 2>and goodness, those angulars certainly had deep penetration a lot

741
00:45:12.559 --> 00:45:15.639
<v Speaker 2>of places as has react, but I don't know that

742
00:45:15.639 --> 00:45:18.760
<v Speaker 2>would be your focus. Does make sense really.

743
00:45:18.639 --> 00:45:22.400
<v Speaker 5>And that was actually a perfect fit for our platform

744
00:45:22.480 --> 00:45:27.519
<v Speaker 5>because the Mega framework was building SISHARP and all the

745
00:45:27.519 --> 00:45:31.559
<v Speaker 5>OI stuff. You know, you can reuse all this power

746
00:45:31.679 --> 00:45:36.960
<v Speaker 5>of view models we had, so it just plugged right

747
00:45:37.000 --> 00:45:40.480
<v Speaker 5>in and the architecture where we have the business services

748
00:45:40.519 --> 00:45:46.039
<v Speaker 5>separated from the presentation logic. That also played well with

749
00:45:47.079 --> 00:45:51.599
<v Speaker 5>going from Blazer server to the Blazer Web assembly because

750
00:45:52.159 --> 00:45:56.639
<v Speaker 5>people don't realize that, oh now you need an API later.

751
00:45:56.840 --> 00:46:01.440
<v Speaker 5>You know, now you cannot like split out, you know,

752
00:46:01.480 --> 00:46:02.679
<v Speaker 5>your business services.

753
00:46:02.840 --> 00:46:05.280
<v Speaker 2>How much can I split up those services to let

754
00:46:05.280 --> 00:46:12.760
<v Speaker 2>them scale independently? If I app gets big and busy.

755
00:46:10.559 --> 00:46:15.360
<v Speaker 5>You can the generators allow you to how would put

756
00:46:15.400 --> 00:46:24.800
<v Speaker 5>two different projects so you can build different kind of services.

757
00:46:25.400 --> 00:46:30.519
<v Speaker 5>If you want some services to be more scalable, then

758
00:46:30.559 --> 00:46:33.280
<v Speaker 5>you may split it up into a separate project and

759
00:46:33.320 --> 00:46:38.079
<v Speaker 5>then right basically have it like run a lot of

760
00:46:38.119 --> 00:46:41.960
<v Speaker 5>copies of it, whereas like admin screens, you know that

761
00:46:42.079 --> 00:46:42.519
<v Speaker 5>I don't.

762
00:46:42.320 --> 00:46:45.639
<v Speaker 2>Only use Yeah, you don't need to do that. Then

763
00:46:45.679 --> 00:46:49.159
<v Speaker 2>and then and I'm dancing against the mall the monoliths

764
00:46:49.239 --> 00:46:52.920
<v Speaker 2>versus the micro service sort of mindset. But uh, and

765
00:46:52.960 --> 00:46:55.760
<v Speaker 2>we're we're hip to modular monolists. That's been a good conversation.

766
00:46:55.760 --> 00:46:56.360
<v Speaker 1>I've done it right.

767
00:46:56.840 --> 00:46:59.280
<v Speaker 2>So and that's why I asked the question exactly that way.

768
00:46:59.320 --> 00:47:02.360
<v Speaker 2>It's not that I want want service rining architecture, it's

769
00:47:02.360 --> 00:47:04.320
<v Speaker 2>nothing I want micro services. Is that I got a

770
00:47:04.360 --> 00:47:07.159
<v Speaker 2>problem child and I want to put it in a

771
00:47:07.199 --> 00:47:10.360
<v Speaker 2>can so that I can scale it separately from everything else.

772
00:47:10.559 --> 00:47:15.960
<v Speaker 1>Yes, exactly, I don't want a problem child factory.

773
00:47:16.320 --> 00:47:18.920
<v Speaker 2>Yeah, so that's the answer to the question is like, yes,

774
00:47:19.000 --> 00:47:20.920
<v Speaker 2>making its own project. Now it runs something that you

775
00:47:20.960 --> 00:47:22.800
<v Speaker 2>could be called by the other projects, and you can

776
00:47:22.840 --> 00:47:26.760
<v Speaker 2>scale it however you want. What about mobile clients making

777
00:47:26.760 --> 00:47:28.039
<v Speaker 2>stuff for iOS and Android?

778
00:47:29.519 --> 00:47:36.920
<v Speaker 5>Yeah, we actually have a generator for zamal and WPF

779
00:47:38.880 --> 00:47:46.199
<v Speaker 5>so it's it's quite possible to use to go to MAUI. Yeah,

780
00:47:47.079 --> 00:47:51.360
<v Speaker 5>we kind of skipped on the zamorin and zamorine forums there,

781
00:47:53.360 --> 00:47:57.760
<v Speaker 5>but you can pretty easily just use Blazer, as you

782
00:47:57.840 --> 00:48:03.119
<v Speaker 5>guys have discussed numerous time, just you know, do the

783
00:48:03.199 --> 00:48:07.719
<v Speaker 5>hybrid Blazer for a mobile for now, and we may

784
00:48:07.840 --> 00:48:11.559
<v Speaker 5>even provide like a template for a mile we app

785
00:48:11.719 --> 00:48:14.960
<v Speaker 5>using hybrid Blaser, just to get started.

786
00:48:14.639 --> 00:48:18.320
<v Speaker 1>On the Yeah, that'd be good. I would think it

787
00:48:18.320 --> 00:48:21.000
<v Speaker 1>would be very difficult to keep up with or it

788
00:48:21.039 --> 00:48:23.159
<v Speaker 1>has been certainly in the past, to keep up with

789
00:48:23.239 --> 00:48:27.719
<v Speaker 1>Microsoft on Maui's AMMO features and things.

790
00:48:28.000 --> 00:48:31.239
<v Speaker 2>What's the Zomega framework. I see it here on GitHub.

791
00:48:31.400 --> 00:48:35.119
<v Speaker 5>Yeah, so this is the framework that powers the applications

792
00:48:35.320 --> 00:48:41.559
<v Speaker 5>that we generate. Basically, it allows you to uh write

793
00:48:41.639 --> 00:48:46.760
<v Speaker 5>this presentation logic that is platform agnostic. It's independent of

794
00:48:46.840 --> 00:48:56.519
<v Speaker 5>the view framework. So it's kind of m VVM on steroids.

795
00:48:58.039 --> 00:49:01.760
<v Speaker 5>Like with the classic MVVM, you have these eye notified

796
00:49:01.800 --> 00:49:07.880
<v Speaker 5>property changes, and each property is just a value right older.

797
00:49:09.320 --> 00:49:15.320
<v Speaker 5>In Zoomega framework, a data property represents both the value

798
00:49:15.480 --> 00:49:22.280
<v Speaker 5>and the metadata like whether it's editable, whether it's visible required,

799
00:49:22.800 --> 00:49:28.440
<v Speaker 5>the validation rules associated with it, the conversion rules to

800
00:49:28.559 --> 00:49:34.519
<v Speaker 5>different formats, like the at least of possible values that

801
00:49:34.760 --> 00:49:38.840
<v Speaker 5>are allowed. So you build this property you know as

802
00:49:38.880 --> 00:49:46.360
<v Speaker 5>a kind of big collective you know, reusable item and

803
00:49:46.400 --> 00:49:52.400
<v Speaker 5>then you just bind your control in whatever framework it is,

804
00:49:52.440 --> 00:49:58.360
<v Speaker 5>whether it's a EXAMO control or user controlling webforms or

805
00:49:58.639 --> 00:50:03.599
<v Speaker 5>Blazer control or whatever. You just buying it, you're telling

806
00:50:03.400 --> 00:50:07.000
<v Speaker 5>it there's the property, and it reflects you know, all

807
00:50:07.079 --> 00:50:10.960
<v Speaker 5>the takes everything from the property. So basically all your

808
00:50:11.119 --> 00:50:17.840
<v Speaker 5>coding is encapsulated in the platform independent presentation logic.

809
00:50:18.000 --> 00:50:21.000
<v Speaker 2>Nice and yeah, and this is great. You know why

810
00:50:21.039 --> 00:50:24.239
<v Speaker 2>be open source on that because you've also got a

811
00:50:24.280 --> 00:50:26.559
<v Speaker 2>retail component of this project as well, right.

812
00:50:26.719 --> 00:50:30.480
<v Speaker 5>Yes, and yeah. The best thing you can bind any

813
00:50:30.599 --> 00:50:34.239
<v Speaker 5>controls to your properties, like you build your view models

814
00:50:34.880 --> 00:50:38.079
<v Speaker 5>and then you can build your views with the you know,

815
00:50:38.159 --> 00:50:41.440
<v Speaker 5>regular controls that we provide. But then you want to

816
00:50:41.519 --> 00:50:44.079
<v Speaker 5>switch to sinc fusion for example, we partner with see

817
00:50:44.320 --> 00:50:48.280
<v Speaker 5>sink fusion. Right, it just bind sync fusion controls to

818
00:50:48.400 --> 00:50:53.320
<v Speaker 5>this very same property and it just works out of

819
00:50:53.320 --> 00:50:55.519
<v Speaker 5>the box. You don't need to do anything, so you

820
00:50:55.559 --> 00:50:58.280
<v Speaker 5>don't have the vendor lock in. You can you know,

821
00:50:58.480 --> 00:51:03.199
<v Speaker 5>just switch and swap any component library.

822
00:51:03.800 --> 00:51:07.039
<v Speaker 2>That's cool. So there's a free product that's totally usable.

823
00:51:07.079 --> 00:51:10.119
<v Speaker 5>A basic Yeah, we have a basic license that is

824
00:51:10.360 --> 00:51:13.000
<v Speaker 5>kind of a community license on visual studio.

825
00:51:13.639 --> 00:51:14.840
<v Speaker 1>What are the requirements for that?

826
00:51:15.480 --> 00:51:18.119
<v Speaker 5>Just a visual studio twenty twenty two.

827
00:51:19.719 --> 00:51:23.719
<v Speaker 1>I mean, is there any single person use that kind

828
00:51:23.760 --> 00:51:24.039
<v Speaker 1>of thing?

829
00:51:24.199 --> 00:51:27.480
<v Speaker 5>Yeah, yeah, a single person Like you can order your

830
00:51:27.480 --> 00:51:32.280
<v Speaker 5>own license and you can renew like when the new

831
00:51:32.360 --> 00:51:34.360
<v Speaker 5>version comes in, you can get a new version.

832
00:51:34.639 --> 00:51:34.840
<v Speaker 2>Right.

833
00:51:35.920 --> 00:51:42.280
<v Speaker 5>So we're looking for feedback and looking for directions because

834
00:51:42.320 --> 00:51:44.199
<v Speaker 5>you can do a lot of stuff with it. You

835
00:51:44.199 --> 00:51:50.840
<v Speaker 5>can developing in a lot of different directions, add you know,

836
00:51:51.559 --> 00:51:55.960
<v Speaker 5>various features. So we're looking for the directions from the market,

837
00:51:56.000 --> 00:51:56.360
<v Speaker 5>you know where.

838
00:51:56.480 --> 00:52:00.320
<v Speaker 1>Sure, it's the big the big difference between that in

839
00:52:00.360 --> 00:52:03.679
<v Speaker 1>the full license which is about eight hundred bucks the

840
00:52:03.760 --> 00:52:09.159
<v Speaker 1>generator source that you get right and in unlimited perpetual

841
00:52:09.239 --> 00:52:10.400
<v Speaker 1>license kind of thing. Yeah.

842
00:52:10.440 --> 00:52:12.000
<v Speaker 2>Yeah, so I only have to buy this one, so

843
00:52:12.000 --> 00:52:13.639
<v Speaker 2>I don't get it, I don't buy it annually.

844
00:52:14.480 --> 00:52:18.519
<v Speaker 5>Yeah, you buy it for this specific version. Oh I see, okay,

845
00:52:19.320 --> 00:52:21.639
<v Speaker 5>or you know the minor upgrades.

846
00:52:21.760 --> 00:52:26.400
<v Speaker 2>Obviously. We also talk about model enrichment in the custom generators.

847
00:52:26.400 --> 00:52:26.760
<v Speaker 2>What is that?

848
00:52:27.519 --> 00:52:31.239
<v Speaker 5>So, yeah, we have the structure of the model defined,

849
00:52:31.280 --> 00:52:35.519
<v Speaker 5>but then you may want to add your own elements

850
00:52:35.559 --> 00:52:40.440
<v Speaker 5>to it. Define you know, things that you want to

851
00:52:40.440 --> 00:52:43.480
<v Speaker 5>capture in the model and then be able to use

852
00:52:43.519 --> 00:52:47.800
<v Speaker 5>that in your own generators, or in customize the existing

853
00:52:47.840 --> 00:52:51.920
<v Speaker 5>generators to use the additional data in the model to

854
00:52:52.079 --> 00:52:53.960
<v Speaker 5>produce the code the way you want it.

855
00:52:54.679 --> 00:52:57.039
<v Speaker 2>I see anythink in terms of like, if I'm a

856
00:52:57.079 --> 00:52:59.440
<v Speaker 2>bigger organization where we have sort of standards of way

857
00:52:59.480 --> 00:53:01.559
<v Speaker 2>we want things to look, I can build up custom

858
00:53:01.599 --> 00:53:04.000
<v Speaker 2>generators so that everybody using it sort of goes down

859
00:53:04.039 --> 00:53:08.360
<v Speaker 2>that path, right right, Yeah, I appreciate that. That's very good,

860
00:53:08.519 --> 00:53:11.559
<v Speaker 2>it's smart. I also feel like that modeling piece is

861
00:53:11.599 --> 00:53:15.199
<v Speaker 2>something I'd probably sit with the domain expert, you know,

862
00:53:15.440 --> 00:53:19.079
<v Speaker 2>with the principal knowledge person, and work the model with them.

863
00:53:19.360 --> 00:53:21.639
<v Speaker 2>It'd be probably a lot more approachable than doing it

864
00:53:21.679 --> 00:53:24.440
<v Speaker 2>on whiteboards and ex sell spreadsheets and things. Actually, let's

865
00:53:24.440 --> 00:53:26.840
<v Speaker 2>just go through the model together. Let's see if we

866
00:53:26.880 --> 00:53:28.119
<v Speaker 2>get get to a good place.

867
00:53:28.480 --> 00:53:31.239
<v Speaker 5>Yeah, if you watch some of the videos that I had,

868
00:53:32.360 --> 00:53:37.559
<v Speaker 5>it's such a quick process from model to a working prototype.

869
00:53:37.559 --> 00:53:38.480
<v Speaker 2>At least prototype.

870
00:53:39.800 --> 00:53:42.199
<v Speaker 5>You can see like right away what the screen is

871
00:53:42.199 --> 00:53:44.679
<v Speaker 5>going to look like. Then you weak something, you know,

872
00:53:44.719 --> 00:53:47.960
<v Speaker 5>you'll go regenerate, you know, all the art defects, and

873
00:53:48.000 --> 00:53:49.400
<v Speaker 5>then you get an updated screen.

874
00:53:49.519 --> 00:53:51.880
<v Speaker 1>You know, I watched some of the video and I

875
00:53:51.920 --> 00:53:55.800
<v Speaker 1>saw a tree view. Is that the main designer a

876
00:53:55.800 --> 00:54:00.159
<v Speaker 1>tree view structure? Or do you have other UI design

877
00:54:00.800 --> 00:54:02.199
<v Speaker 1>that use for different parts of it.

878
00:54:04.000 --> 00:54:06.639
<v Speaker 5>The treview I mean the XML.

879
00:54:07.039 --> 00:54:08.360
<v Speaker 1>Yeah, yeah, the XML view.

880
00:54:08.480 --> 00:54:09.000
<v Speaker 2>Yeah yeah.

881
00:54:09.079 --> 00:54:15.599
<v Speaker 5>The XML is basically the main designer right now. We'd

882
00:54:15.599 --> 00:54:20.840
<v Speaker 5>love to have like the more graphical designer where you

883
00:54:20.880 --> 00:54:28.159
<v Speaker 5>can just be able to easily like you know, like

884
00:54:28.280 --> 00:54:33.480
<v Speaker 5>an antity data model. I remember these there was a designer. Yeah,

885
00:54:33.679 --> 00:54:39.000
<v Speaker 5>microsoftware you can like add.

886
00:54:37.559 --> 00:54:39.519
<v Speaker 1>Things and link things together and whatnot.

887
00:54:40.639 --> 00:54:45.559
<v Speaker 5>Yeah, so we'd like would love to build something like that.

888
00:54:45.599 --> 00:54:50.719
<v Speaker 5>We just haven't gotten around to it. But the the XML,

889
00:54:50.880 --> 00:54:56.599
<v Speaker 5>the editor actually is, has been enhanced. Yeah. You can

890
00:54:56.719 --> 00:54:59.760
<v Speaker 5>like collapse the definitions so you don't need to like

891
00:55:00.400 --> 00:55:04.800
<v Speaker 5>view this convoluted XML like you can just expand the

892
00:55:04.800 --> 00:55:10.840
<v Speaker 5>sections that you're interested in. You can go to definitions,

893
00:55:10.920 --> 00:55:16.440
<v Speaker 5>find references, refactoring, you know all this stuff. So that's

894
00:55:16.840 --> 00:55:22.280
<v Speaker 5>basically I mean people are used to editing XML, like

895
00:55:22.360 --> 00:55:26.079
<v Speaker 5>you go to our HTML, you go to Blazer, you

896
00:55:26.159 --> 00:55:26.960
<v Speaker 5>go to zamo.

897
00:55:27.639 --> 00:55:32.159
<v Speaker 1>You know, are you taking pull requests? Do you have

898
00:55:32.519 --> 00:55:34.880
<v Speaker 1>issues that need do you need help? I guess is

899
00:55:34.880 --> 00:55:36.039
<v Speaker 1>what I'm asking.

900
00:55:36.320 --> 00:55:41.320
<v Speaker 5>Yeah, if someone is interested in contributing and helping with

901
00:55:41.440 --> 00:55:48.159
<v Speaker 5>that would be all happy to to get these contributions.

902
00:55:48.519 --> 00:55:51.320
<v Speaker 1>Well, as Louis Armstrong once said, what a wonderful world.

903
00:55:52.280 --> 00:55:55.599
<v Speaker 1>It really is, the wonderful world of open source. Well,

904
00:55:55.639 --> 00:55:58.360
<v Speaker 1>is there anything that we missed? Serge anything that you

905
00:55:58.400 --> 00:56:01.199
<v Speaker 1>want to or a shout out or call the action

906
00:56:01.280 --> 00:56:02.079
<v Speaker 1>before we hang up?

907
00:56:02.440 --> 00:56:08.719
<v Speaker 5>Well? Yeah, as I said, you know, if, uh, if

908
00:56:08.719 --> 00:56:10.760
<v Speaker 5>you find it interesting and if you want to learn

909
00:56:10.800 --> 00:56:13.559
<v Speaker 5>more about it, you can go to zamaga dot net

910
00:56:14.320 --> 00:56:20.719
<v Speaker 5>website and check out the documentation, the videos. We keep

911
00:56:20.760 --> 00:56:25.800
<v Speaker 5>adding new videos to it, keep adding features, you know,

912
00:56:25.880 --> 00:56:32.159
<v Speaker 5>as uh it says it. We just added the postgrasskvil uh.

913
00:56:32.199 --> 00:56:40.039
<v Speaker 5>Support Yeah, by popular requests uh and uh yeah, I

914
00:56:40.079 --> 00:56:43.840
<v Speaker 5>give it a spin. Uh and we always want to

915
00:56:43.880 --> 00:56:47.320
<v Speaker 5>hear your feedback. Uh and what do you think? What

916
00:56:48.400 --> 00:56:49.960
<v Speaker 5>do you think would benefit you know?

917
00:56:50.280 --> 00:56:50.400
<v Speaker 2>Uh?

918
00:56:51.559 --> 00:56:56.360
<v Speaker 5>Any ideas, features and contributions are always wealthy.

919
00:56:56.519 --> 00:57:00.880
<v Speaker 1>That's great. Thank you, This is good stuff and sorry

920
00:57:00.880 --> 00:57:04.360
<v Speaker 1>that we hadn't noticed it earlier. This is good and

921
00:57:04.440 --> 00:57:07.159
<v Speaker 1>I hope our listeners think the same. I'm sure they will.

922
00:57:07.920 --> 00:57:08.519
<v Speaker 1>Thanks again.

923
00:57:08.679 --> 00:57:09.719
<v Speaker 5>All right, thank you?

924
00:57:09.719 --> 00:57:11.679
<v Speaker 1>Here he is okay, and we'll talk to you next

925
00:57:11.719 --> 00:57:36.679
<v Speaker 1>time on dot net rocks. Dot net Rocks is brought

926
00:57:36.679 --> 00:57:40.119
<v Speaker 1>to you by Franklin's Net and produced by Pop Studios,

927
00:57:40.519 --> 00:57:44.519
<v Speaker 1>a full service audio, video and post production facility located

928
00:57:44.559 --> 00:57:47.480
<v Speaker 1>physically in New London, Connecticut, and of course in the

929
00:57:47.519 --> 00:57:51.440
<v Speaker 1>cloud online at pwop dot com.

930
00:57:51.639 --> 00:57:53.760
<v Speaker 4>Visit our website at d O T N E t

931
00:57:54.000 --> 00:57:58.000
<v Speaker 4>R O c k S dot com for RSS feeds, downloads,

932
00:57:58.159 --> 00:58:01.840
<v Speaker 4>mobile apps, comments, and access to the full archives going

933
00:58:01.880 --> 00:58:05.280
<v Speaker 4>back to show number one, recorded in September two thousand

934
00:58:05.280 --> 00:58:05.559
<v Speaker 4>and two.

935
00:58:06.159 --> 00:58:08.519
<v Speaker 1>And make sure you check out our sponsors. They keep

936
00:58:08.599 --> 00:58:11.760
<v Speaker 1>us in business. Now go write some code, See you

937
00:58:11.800 --> 00:58:12.239
<v Speaker 1>next time.

938
00:58:13.119 --> 00:58:14.920
<v Speaker 5>You got Jack Middle Vans
