1
00:00:01,120 --> 00:00:04,839
Speaker 1: How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05,360 --> 00:00:08,599
Become a patron For just five dollars a month, you

3
00:00:08,640 --> 00:00:11,320
get access to a private RSS feed where all the

4
00:00:11,400 --> 00:00:14,599
shows have no ads. Twenty dollars a month will get

5
00:00:14,640 --> 00:00:18,440
you that and a special dot NetRocks patron mug. Sign

6
00:00:18,519 --> 00:00:22,160
up now at Patreon dot dot NetRocks dot com.

7
00:00:22,199 --> 00:00:24,719
Speaker 2: Hey Carl and Richard here with your twenty twenty four

8
00:00:24,879 --> 00:00:26,000
NDC schedule.

9
00:00:26,320 --> 00:00:29,679
Speaker 1: We'll be at as many NDC conferences as possible this year,

10
00:00:30,000 --> 00:00:33,200
and you should consider attending no matter what. The Copenhagen

11
00:00:33,240 --> 00:00:37,640
Developers Festival happens August twenty sixth through the thirtieth. Tickets

12
00:00:37,719 --> 00:00:40,719
at Cphdevfest dot com.

13
00:00:40,880 --> 00:00:44,759
Speaker 2: Ndcporto is happening October fourteenth through the eighteenth. Tickets at

14
00:00:44,840 --> 00:00:46,600
Ndcporto dot com.

15
00:00:46,640 --> 00:00:47,520
Speaker 1: We'll see you there.

16
00:00:48,039 --> 00:01:06,480
Speaker 3: We hope it's dot net rocks. You scared you didn't I?

17
00:01:06,799 --> 00:01:06,959
Speaker 1: You know?

18
00:01:07,280 --> 00:01:10,680
Speaker 2: Said John Cleary the other day. He's so good, absolute monster, gentleman.

19
00:01:11,439 --> 00:01:14,560
Speaker 1: He is so good. God, I love that guy. Anyway,

20
00:01:14,599 --> 00:01:16,799
you're listening to net rocks. I'm Carl Franklin and I'm

21
00:01:16,879 --> 00:01:20,680
Richard Campbell and we're here for the nineteen hundredth and

22
00:01:20,760 --> 00:01:24,719
eleventh time. There you go, nineteen hundred and eleventh time. Yeah,

23
00:01:24,799 --> 00:01:27,319
so it's gonna be a good show.

24
00:01:27,439 --> 00:01:29,280
Speaker 2: World War One has begun, there you go.

25
00:01:29,359 --> 00:01:36,400
Speaker 1: Yeah, Archduke Ferdinand has been assassinated.

26
00:01:36,480 --> 00:01:40,079
Speaker 2: Yes, after several tries, and then he kept going out

27
00:01:40,079 --> 00:01:42,760
again Like what were you thinking? Doesn't matter? Now here's

28
00:01:42,799 --> 00:01:43,239
a grenade.

29
00:01:45,799 --> 00:01:49,640
Speaker 1: Oh, such fun with history we have. Let's start this

30
00:01:49,680 --> 00:02:00,719
show off right. We better know a framework. Awesome, bar man,

31
00:02:00,760 --> 00:02:03,920
what do you got? This is my official first announcement

32
00:02:04,799 --> 00:02:08,560
of an album with only five tracks that I have

33
00:02:08,759 --> 00:02:12,800
kept under wraps since twenty thirteen. Wow, I've just been

34
00:02:12,840 --> 00:02:15,120
waiting for the right time to release it. They have

35
00:02:15,280 --> 00:02:17,680
told me no, but I think you might have heard it.

36
00:02:17,800 --> 00:02:22,000
So this is an album of instrumental groove, chill jazz

37
00:02:22,039 --> 00:02:24,360
pop that I did with my friend Doug Wolverton.

38
00:02:24,560 --> 00:02:26,199
Speaker 2: Oh wow, okay, I know Doug.

39
00:02:26,319 --> 00:02:29,360
Speaker 1: Have you You've heard these songs right? Long time ago?

40
00:02:29,560 --> 00:02:29,639
Speaker 4: Ye?

41
00:02:30,360 --> 00:02:33,719
Speaker 1: So. Doug is a trumpet player. He's currently playing with

42
00:02:33,840 --> 00:02:39,280
Kenny Wayne Shepherd on tour, and he's a protege of

43
00:02:39,360 --> 00:02:42,960
Kurt Ramo, who plays with Bruce Springsteen in the EA

44
00:02:42,960 --> 00:02:48,319
Street Band and Kurt actually gave him connected us and

45
00:02:48,360 --> 00:02:50,560
we've been great friends ever since. Doug's played on my

46
00:02:51,000 --> 00:02:55,039
albums and my videos and you can see him at

47
00:02:55,080 --> 00:02:57,479
Franklin Brothers band dot com on a couple of videos.

48
00:02:57,479 --> 00:03:00,719
But anyway, we got together for about year year and

49
00:03:00,759 --> 00:03:04,039
a half there and we just started making music. And

50
00:03:04,360 --> 00:03:09,080
this is the I'm not I'm not just saying this.

51
00:03:09,080 --> 00:03:12,840
This is my favorite project that I've ever ever been

52
00:03:12,879 --> 00:03:17,319
involved with, produced, written. All the music is just like

53
00:03:17,960 --> 00:03:20,680
it's all original. You think you've heard it before when

54
00:03:20,719 --> 00:03:23,639
you listen to it. And the name of the album

55
00:03:23,879 --> 00:03:29,120
is It's the Tone. It's the Tone, and the artist

56
00:03:29,240 --> 00:03:34,240
is Franklin and Wolverton. It is available everywhere you get

57
00:03:34,280 --> 00:03:36,280
your music, or it will be by the time this

58
00:03:36,360 --> 00:03:37,120
comes out.

59
00:03:37,319 --> 00:03:41,039
Speaker 2: Okay, so spot, you've finished your work now?

60
00:03:42,680 --> 00:03:47,520
Speaker 1: No, No, the production work was done. Really, I've just

61
00:03:47,560 --> 00:03:49,520
been sitting on it and waiting for the right time.

62
00:03:49,639 --> 00:03:53,159
And I released it on my fifty seventh birthday. Wow,

63
00:03:53,199 --> 00:03:56,840
because that is my father's fifty seven when he died,

64
00:03:57,000 --> 00:04:00,240
so this is a special year for me to survive.

65
00:04:01,560 --> 00:04:04,400
And so when we were making this music and I'm

66
00:04:04,400 --> 00:04:06,960
sorry to just keep going on about it, but The

67
00:04:07,000 --> 00:04:12,919
mantra for us was not listen to these notes, right,

68
00:04:12,960 --> 00:04:16,199
which a lot of music and musicians and performers they

69
00:04:16,199 --> 00:04:18,319
have that in their mind. Hey, check out these notes

70
00:04:18,360 --> 00:04:22,839
that I played. But it's listen to this tone. It's

71
00:04:23,000 --> 00:04:25,560
all about the tone. So it's the tone. Go get

72
00:04:25,600 --> 00:04:27,360
it and let me know what you think of it.

73
00:04:27,399 --> 00:04:31,800
Everybody send me some email. That's it. That's what I got.

74
00:04:31,839 --> 00:04:34,160
Speaker 2: Cool, all right, we'll put the link in the show notes.

75
00:04:34,160 --> 00:04:35,720
When there's a link available.

76
00:04:35,519 --> 00:04:38,360
Speaker 1: Yeah, there will be. It's thetone. Dot com will be available,

77
00:04:38,399 --> 00:04:41,639
but you could just you know, search your favorite music

78
00:04:42,560 --> 00:04:45,199
solution for that. Who's talking to us today, Richard?

79
00:04:45,319 --> 00:04:47,600
Speaker 2: I grabbed a comment off a show's nineteen oh six.

80
00:04:47,720 --> 00:04:50,240
Just back in July, we were talking to Joe Finnie

81
00:04:50,360 --> 00:04:55,120
about WPF. This particular comments from John Dyer is only

82
00:04:55,120 --> 00:04:57,000
little while ago, where he said desktop is dead.

83
00:04:57,040 --> 00:04:57,480
Speaker 1: Is it true?

84
00:04:57,519 --> 00:05:00,720
Speaker 2: It really seems so? And Richard almost said so on

85
00:05:00,800 --> 00:05:04,079
the Lowie Blazer show back in nineteen oh three and

86
00:05:04,079 --> 00:05:06,800
again this show it's danced around. I worked on a

87
00:05:06,839 --> 00:05:09,600
dot net app started in the very beginning, shipped on

88
00:05:09,600 --> 00:05:12,079
one point zero. It was a fun mix of wind

89
00:05:12,079 --> 00:05:14,800
forms in WPF with the new UI and WPF. I

90
00:05:14,800 --> 00:05:16,879
don't think it was WPF at one point. Oh, that

91
00:05:17,000 --> 00:05:20,079
wasn't around till three point five. But you know, details,

92
00:05:20,959 --> 00:05:22,959
did we make a big mistake migrating to dot net

93
00:05:23,000 --> 00:05:25,759
core because now we're forced into the upgrades as versions

94
00:05:25,759 --> 00:05:29,600
go end of life. Additionally, stuff that was automatically patches

95
00:05:29,639 --> 00:05:31,879
now in packages, forcing us to release new versions for

96
00:05:31,920 --> 00:05:34,959
co changes and on ours, mainly if it's security related. Okay,

97
00:05:34,959 --> 00:05:37,079
I'm done whining. It's been a fantastic ride.

98
00:05:37,279 --> 00:05:37,959
Speaker 1: Time to move on.

99
00:05:38,959 --> 00:05:41,720
Speaker 2: I mean, I've been dancing around the issues with desktop

100
00:05:41,839 --> 00:05:45,319
apps because I don't believe they're dead. They might be

101
00:05:45,360 --> 00:05:47,120
pining for the Fjords.

102
00:05:47,639 --> 00:05:50,079
Speaker 1: You know that. There's just something I got to say here.

103
00:05:50,560 --> 00:05:53,839
We have gone out of our way to avoid saying

104
00:05:54,480 --> 00:05:58,839
never use this, it's dead, don't use that, use this instead.

105
00:05:59,399 --> 00:06:01,800
We don't do that here. No, that's not what we do.

106
00:06:01,879 --> 00:06:04,560
We don't. Even if you think that we're hinting at that,

107
00:06:04,600 --> 00:06:05,040
you're wrong.

108
00:06:05,560 --> 00:06:07,399
Speaker 2: Yeah, it's not what we mean. I mean, we're not

109
00:06:07,399 --> 00:06:08,879
communicating with it's not what we mean.

110
00:06:09,120 --> 00:06:09,839
Speaker 1: Yeah, exactly.

111
00:06:09,959 --> 00:06:12,879
Speaker 2: But I mean what I'm abundantly aware of, and I've

112
00:06:12,879 --> 00:06:14,519
done it on the show and you've seen me do

113
00:06:14,639 --> 00:06:17,040
it is that there is a whole bunch of different

114
00:06:17,199 --> 00:06:21,480
desktop tool sets out there, which to me says it's

115
00:06:21,519 --> 00:06:26,839
an unsolved problem. Nobody would bother making an Avalonia or

116
00:06:26,879 --> 00:06:31,120
the silver Light as a web assembly solution open silver

117
00:06:31,680 --> 00:06:34,079
You know, why would all of this exist except that

118
00:06:34,120 --> 00:06:36,519
people are trying to find a good way to build

119
00:06:36,519 --> 00:06:40,319
desktop apps. Microsoft wants it to be Maui, but Maui's

120
00:06:40,319 --> 00:06:42,959
still growing up. You know, it's still a little kid, really,

121
00:06:43,399 --> 00:06:45,800
And certainly they've seemed to consolidate a bunch of stuff

122
00:06:45,800 --> 00:06:50,240
around that, which is interesting, but it's bloody challenging. And

123
00:06:50,480 --> 00:06:54,160
when I wear my IT hat, you know, I'm the

124
00:06:54,199 --> 00:06:55,839
guy who looks at you when you want to deploy

125
00:06:55,879 --> 00:06:59,839
software and says you want to do what? Because browsers

126
00:06:59,879 --> 00:07:02,399
are are a good security context, So you know, I

127
00:07:02,439 --> 00:07:04,800
know the barriers for deploying software is hard. You've got

128
00:07:04,839 --> 00:07:09,079
to really demonstrated reason for software to be built that way.

129
00:07:09,319 --> 00:07:11,360
Speaker 1: And we said this on that show. We said it

130
00:07:11,399 --> 00:07:14,240
a couple of times that the browsers have already figured

131
00:07:14,279 --> 00:07:15,680
all this stuff out right.

132
00:07:15,560 --> 00:07:17,800
Speaker 2: Well, a lot of stuff. They're also bad at some

133
00:07:17,879 --> 00:07:20,000
important things too, Yeah.

134
00:07:19,600 --> 00:07:23,480
Speaker 1: But they're at least consistent across the main three browsers.

135
00:07:23,279 --> 00:07:27,480
Speaker 2: Especially when you're talking about running on multiple platforms, which

136
00:07:27,519 --> 00:07:29,959
is the real life that we're living in today, right

137
00:07:30,279 --> 00:07:34,399
Like it's a heterogeneous client world, and then building multiple

138
00:07:34,399 --> 00:07:37,040
clients it's hard, which I think is going to lead

139
00:07:37,079 --> 00:07:39,000
us to our conversation today. When I think about no

140
00:07:39,079 --> 00:07:42,759
code low code solutions, it's about solving client problems. We'll

141
00:07:42,759 --> 00:07:45,079
get into that. So, John, I hope I cleared some

142
00:07:45,120 --> 00:07:47,480
things up for you. Thanks so much for your comment,

143
00:07:47,519 --> 00:07:49,160
and a copy of music Cobey is on its way

144
00:07:49,160 --> 00:07:50,560
to you. And if you'd like a copy of music

145
00:07:50,560 --> 00:07:52,199
cod by, I write a comment on the website at

146
00:07:52,240 --> 00:07:54,160
donn at Rocks dot com or on the facebooks. We

147
00:07:54,199 --> 00:07:56,199
publish every show there, and if you comment there and

148
00:07:56,199 --> 00:07:57,560
are reading the show, we'll send you a copy of

149
00:07:57,600 --> 00:07:58,120
music co buy.

150
00:07:58,319 --> 00:08:01,680
Speaker 1: And people are still buying music to coy and it's great.

151
00:08:01,839 --> 00:08:05,560
I see you know. Orders come in every day or

152
00:08:05,639 --> 00:08:06,600
so a couple of days.

153
00:08:06,720 --> 00:08:10,639
Speaker 2: I've sent out a winner pack the other day and

154
00:08:10,680 --> 00:08:12,360
I got a message back a little while later. It's

155
00:08:12,439 --> 00:08:14,439
like I already had like the first eight, but I

156
00:08:14,560 --> 00:08:17,560
like the new ones, so they were excited to use

157
00:08:17,600 --> 00:08:19,759
it very good, good.

158
00:08:19,560 --> 00:08:21,680
Speaker 1: All right, Well, you know you can follow us on

159
00:08:21,720 --> 00:08:24,040
Twitter ex Twitter, I think is what I call it

160
00:08:24,079 --> 00:08:26,920
now ex Twitter, because it was Twitter and now it's not.

161
00:08:27,240 --> 00:08:30,759
It's something else. And we've been there for years, of course.

162
00:08:30,800 --> 00:08:33,399
But the cool kids are hanging out on mastadon. I'm

163
00:08:33,399 --> 00:08:36,039
at Carl Franklin at tech hub dot social.

164
00:08:35,919 --> 00:08:38,080
Speaker 2: And I'm Rich Campbell at masadon dot social.

165
00:08:38,360 --> 00:08:40,559
Speaker 1: Send us a twote. That's another way that you can

166
00:08:40,799 --> 00:08:45,080
get yourself copy of music to God by absolutely all right.

167
00:08:45,200 --> 00:08:49,519
Let's bring on our guest season. Software developer, architect and

168
00:08:49,679 --> 00:08:53,759
entrepreneur with a quarter century of experience building large scale

169
00:08:53,840 --> 00:08:59,440
enterprise applications for major telecommunications and transportation companies with dot

170
00:08:59,519 --> 00:09:04,919
net and type script. Serge Sarah Fudenov is the creative

171
00:09:04,960 --> 00:09:08,840
mind between Zomega dot net. That's x O M E

172
00:09:08,919 --> 00:09:12,799
g A dot net, Zomega dot net, a low code

173
00:09:12,799 --> 00:09:17,320
platform for dot net developers, and the open source Zomega framework.

174
00:09:18,279 --> 00:09:20,840
Off the clock, you can find him across the net

175
00:09:20,879 --> 00:09:26,000
developing his backhand and forehand and serving up aces on

176
00:09:26,039 --> 00:09:29,840
the tennis court. That's a very nice bio. Very good.

177
00:09:30,080 --> 00:09:32,799
Speaker 5: Welcome, serge, thank you, thank you so much. And thanks

178
00:09:32,840 --> 00:09:36,960
for inviting me here. I've been a longtime listener of

179
00:09:37,240 --> 00:09:39,480
the show, and now it's an honor to be a

180
00:09:39,519 --> 00:09:40,039
guest here.

181
00:09:40,279 --> 00:09:43,399
Speaker 1: You're welcome. When I think about what's on the minds

182
00:09:43,399 --> 00:09:45,679
of our listeners when we talk about low code or

183
00:09:45,679 --> 00:09:49,320
no code stuff, you know, a lot of them are

184
00:09:49,440 --> 00:09:52,799
our age, and by our I mean Richard's and my

185
00:09:53,039 --> 00:09:55,399
You look a little younger than us, but that's neither

186
00:09:55,440 --> 00:09:58,240
here nor there. And they've been through a lot of

187
00:09:58,279 --> 00:10:01,600
these things, and I think people are rightly skeptical of

188
00:10:01,639 --> 00:10:06,639
these especially when you think of our experience has been.

189
00:10:07,679 --> 00:10:10,200
We jump in, we're very productive, We get going, and

190
00:10:10,240 --> 00:10:13,039
then oh, we want to modify something. Oh does it

191
00:10:13,080 --> 00:10:17,440
allow me to No, Now what do we do? So

192
00:10:17,600 --> 00:10:19,960
get it? Hitting that brick wall is what I think

193
00:10:20,039 --> 00:10:23,639
everyone is afraid of. So with that in mind, the

194
00:10:23,679 --> 00:10:25,559
floor is yours. Give us the pitch.

195
00:10:25,879 --> 00:10:33,919
Speaker 5: Well, yeah, when you ask silicon vallee entrepreneur like why

196
00:10:33,919 --> 00:10:38,039
they're building their product, oftentimes you might get an answer

197
00:10:39,000 --> 00:10:44,120
to make the world a better place. With Zamiga, I

198
00:10:44,120 --> 00:10:48,639
would say that we want to make the world a

199
00:10:48,679 --> 00:10:52,559
better place for dot net developers and their clients.

200
00:10:53,759 --> 00:10:58,440
Speaker 1: Very good. So, and let's face it, really, Silicon Valley

201
00:10:58,440 --> 00:11:00,440
doesn't want to make the world a better place. They

202
00:11:00,519 --> 00:11:04,200
want their bank accounts to be a better place, better place.

203
00:11:04,320 --> 00:11:06,279
That's really what they want, right.

204
00:11:07,000 --> 00:11:11,919
Speaker 5: Yeah, And with the other tools, there are a lot

205
00:11:11,960 --> 00:11:16,000
of other tools and local platforms that try to help

206
00:11:16,039 --> 00:11:23,120
you build your applications faster. What Zmega tries to do

207
00:11:23,279 --> 00:11:27,919
is to help you build faster, high quality applications with

208
00:11:28,120 --> 00:11:33,159
the best practice architecture, with the consistent user in phrase

209
00:11:33,240 --> 00:11:38,240
and user experience, and that are easy to maintain and

210
00:11:38,759 --> 00:11:42,320
get that you know, future proof, so that you can

211
00:11:42,360 --> 00:11:46,960
easily change it, you know, and migrate to a new

212
00:11:47,000 --> 00:11:52,120
framework or technology once that comes along. And given the

213
00:11:52,159 --> 00:11:55,919
current pace of technology, you know, like if you start

214
00:11:56,000 --> 00:12:01,120
a new project, a big, large project multi year with

215
00:12:01,240 --> 00:12:04,600
a brand new framework, you know, brand new technology, cutting edge.

216
00:12:05,320 --> 00:12:09,240
By the time you finish it, sometimes this framework is

217
00:12:09,279 --> 00:12:13,440
already obsolete. You know, it's already you know, it's history.

218
00:12:14,600 --> 00:12:19,919
Speaker 1: So does Zomega use sort of black box things or

219
00:12:20,039 --> 00:12:22,720
does it Is it a code generator or a little

220
00:12:22,759 --> 00:12:28,000
of both? Like uh, I'm I'm more on the side

221
00:12:28,000 --> 00:12:30,519
of code generation because then I can at least look

222
00:12:30,519 --> 00:12:33,559
at that code, see it, modify it, put in my

223
00:12:33,919 --> 00:12:36,799
points wherever I want. What what what's the experience?

224
00:12:36,919 --> 00:12:41,559
Speaker 5: Like, Yeah, this is a code generator. It generates code,

225
00:12:42,240 --> 00:12:45,360
but you know, like the typical code generator, like there

226
00:12:45,360 --> 00:12:49,600
are source generators, they generate code that you does not

227
00:12:49,720 --> 00:12:52,039
user friendly. You don't want to read that, you know,

228
00:12:52,080 --> 00:12:54,639
you don't want to You can go and debug it,

229
00:12:54,759 --> 00:12:55,519
you know, if you.

230
00:12:55,480 --> 00:12:56,679
Speaker 1: Want to write only code.

231
00:12:57,600 --> 00:13:02,919
Speaker 5: Yeah, but it's basically isle of you know, gibber is

232
00:13:03,000 --> 00:13:07,600
that you don't want to look at, right, And what

233
00:13:07,759 --> 00:13:12,320
we do here is the code it generates is basically

234
00:13:12,840 --> 00:13:15,720
the code you would have written yourself down to, even

235
00:13:15,840 --> 00:13:19,320
like the comments, you know, it has the comments structured.

236
00:13:19,399 --> 00:13:25,279
You know, it's a formatted like this is basically saving

237
00:13:25,320 --> 00:13:28,279
you from writing that code like the boilerplate code as

238
00:13:28,279 --> 00:13:28,720
they call.

239
00:13:28,919 --> 00:13:31,279
Speaker 2: So and then that means I can edit it because

240
00:13:31,320 --> 00:13:33,320
I can probably read it. But does that mean and

241
00:13:33,399 --> 00:13:36,840
it's no longer manageable? Like what happens now?

242
00:13:37,279 --> 00:13:42,600
Speaker 5: Yeah? And yeah that's a major question. You know, once

243
00:13:42,639 --> 00:13:47,039
you generated, you know, can you touch it? And the

244
00:13:47,159 --> 00:13:51,840
question the answer is no, generally you don't want to

245
00:13:52,360 --> 00:13:52,879
edit it.

246
00:13:53,080 --> 00:13:55,080
Speaker 2: Right because you do want to be able to regenerate.

247
00:13:55,200 --> 00:14:00,519
Speaker 5: So yes, exactly The idea behind it is that it's

248
00:14:00,600 --> 00:14:04,559
designed in such a way that it provides customization points

249
00:14:04,600 --> 00:14:08,720
for you. You can subclass, you know, in a variety

250
00:14:08,720 --> 00:14:15,360
any methods. You can even insert your code in certain

251
00:14:15,399 --> 00:14:17,159
places like to customize it.

252
00:14:17,320 --> 00:14:20,120
Speaker 1: Right, that's what I wanted to hear. Yeah, but you

253
00:14:20,360 --> 00:14:23,080
because you know, a perfect example is if it's creating

254
00:14:23,240 --> 00:14:26,480
an API controller, right and it's injecting all the stuff,

255
00:14:26,840 --> 00:14:29,159
but you want to inject something else. Yeah, you know

256
00:14:29,159 --> 00:14:31,600
what I mean, now you've changed it. How do you

257
00:14:31,679 --> 00:14:32,000
do that?

258
00:14:32,320 --> 00:14:32,600
Speaker 2: Yeah?

259
00:14:32,600 --> 00:14:35,320
Speaker 5: That's the kicker, you know, Like you want to be

260
00:14:35,360 --> 00:14:40,039
able to regenerate, like make changes, and that's going to

261
00:14:40,080 --> 00:14:44,120
be so easy on the maintenance theant because okay, you

262
00:14:44,159 --> 00:14:47,480
can just you know, go and change the underlying model

263
00:14:47,759 --> 00:14:49,480
that's generated from I.

264
00:14:49,440 --> 00:14:52,639
Speaker 1: See, and then regenerate. So it's not like you're messing

265
00:14:52,679 --> 00:14:54,679
around with the code at all. You're still working with

266
00:14:54,759 --> 00:14:56,720
the model and the code generator. But you can do

267
00:14:58,840 --> 00:15:02,039
can I say anything that you can do in code

268
00:15:02,320 --> 00:15:03,600
with the model generator?

269
00:15:03,759 --> 00:15:04,360
Speaker 5: Pretty much?

270
00:15:04,480 --> 00:15:04,679
Speaker 1: Yes?

271
00:15:05,360 --> 00:15:09,039
Speaker 5: I mean sometimes, like with the UI views that you generate,

272
00:15:12,120 --> 00:15:16,159
you want to change the layout completely and you can

273
00:15:16,360 --> 00:15:19,279
just you know, say, okay, I'm going to take over

274
00:15:19,399 --> 00:15:19,919
that file.

275
00:15:20,840 --> 00:15:25,360
Speaker 1: And yeah, there's architecture issues too, right, I mean, if

276
00:15:25,399 --> 00:15:28,720
you start out with a client project and a server project,

277
00:15:28,720 --> 00:15:32,360
a web project, let's just say, and then you want

278
00:15:32,360 --> 00:15:35,759
to sort of tout to put a shared project in

279
00:15:35,799 --> 00:15:39,000
between those that has some models or some things that

280
00:15:39,200 --> 00:15:43,360
do stuff. Is that something that you can easily modify

281
00:15:43,519 --> 00:15:44,919
in your model designer?

282
00:15:45,200 --> 00:15:51,440
Speaker 5: Yes, yes, the model allows you to change like actually,

283
00:15:51,480 --> 00:15:54,519
it makes you kind of like model your application, like

284
00:15:54,840 --> 00:16:00,240
you build your domain models, you build your service models. Yeah,

285
00:16:00,600 --> 00:16:06,960
even the presentation models. And that's all like an XML.

286
00:16:07,000 --> 00:16:10,279
I know Carl's feelings about XML, but.

287
00:16:10,679 --> 00:16:12,200
Speaker 1: Hey, as long as I don't have to edit it,

288
00:16:12,480 --> 00:16:14,480
I'm fine. Yeah.

289
00:16:14,559 --> 00:16:17,159
Speaker 2: Yeah, you can generate all the XML you want. I

290
00:16:17,159 --> 00:16:18,440
don't have to read it. I'm happy.

291
00:16:18,759 --> 00:16:21,080
Speaker 1: Yeah, I can use you you I to do that, right.

292
00:16:21,360 --> 00:16:25,639
Speaker 5: Yeah, but I mean it's it's still nice. It's an

293
00:16:25,679 --> 00:16:31,960
experience for developers to update the models. But then you

294
00:16:32,240 --> 00:16:37,440
generate pretty much like the entire applications, like all delayers

295
00:16:37,960 --> 00:16:44,679
from the business services to like interfaces, view models, views,

296
00:16:45,879 --> 00:16:48,480
and you can do like tons of other things you

297
00:16:48,519 --> 00:16:51,679
know that you can generate. It's extensible, so you can

298
00:16:52,360 --> 00:16:54,480
bring more generators to generate.

299
00:16:54,879 --> 00:16:57,440
Speaker 1: So you really focus on the architecture and let the

300
00:16:57,480 --> 00:16:59,639
model do the dirty work, the model designer.

301
00:16:59,759 --> 00:17:07,160
Speaker 5: Yeah, and the the idea behind the platform is that

302
00:17:08,039 --> 00:17:14,000
it will allow you to generate to use the architecture

303
00:17:15,079 --> 00:17:19,960
with the best practice development practices baked into the development process.

304
00:17:20,319 --> 00:17:21,319
Speaker 1: So it's opinionated.

305
00:17:22,079 --> 00:17:26,720
Speaker 5: Yeah, so yeah, I mean, you know, like separating business

306
00:17:26,960 --> 00:17:31,640
logic the UI logic. It's been around for a long

307
00:17:31,720 --> 00:17:32,240
long time.

308
00:17:32,519 --> 00:17:34,240
Speaker 1: Yeah. I didn't say it was bad opinion.

309
00:17:34,920 --> 00:17:39,319
Speaker 5: Yeah, people have been moving to like multi tier applications

310
00:17:39,359 --> 00:17:43,640
back in last century and there was service oriented architecture,

311
00:17:44,400 --> 00:17:45,799
the main driven design.

312
00:17:46,279 --> 00:17:48,279
Speaker 1: Welcome to the history of dot net right here.

313
00:17:48,359 --> 00:17:52,960
Speaker 5: Ye, lean architecture, et cetera, et cetera. And these are

314
00:17:53,000 --> 00:17:56,519
all good best practices as long as you follow them.

315
00:17:56,640 --> 00:18:01,000
Speaker 2: Right right, don't get technical. Now, we waived at it

316
00:18:01,039 --> 00:18:01,880
at least.

317
00:18:02,200 --> 00:18:08,079
Speaker 5: Yes, But oftentimes what happens is like, as a developer,

318
00:18:08,160 --> 00:18:12,640
you get a request to like build a new application.

319
00:18:12,960 --> 00:18:16,839
You know, you start with a prototype, build like a

320
00:18:16,880 --> 00:18:21,079
proof of concept. You go quick and dirty, and then

321
00:18:21,160 --> 00:18:25,640
you work on this demo, make try to make it realistic,

322
00:18:26,279 --> 00:18:28,599
and then the demo goes well, you know, in fact,

323
00:18:28,640 --> 00:18:33,079
so well that people, the stakeholders don't even realize that

324
00:18:33,119 --> 00:18:34,240
it's not a real.

325
00:18:34,079 --> 00:18:35,920
Speaker 2: Thing, it's a demo. Yeah, they want to employ it.

326
00:18:36,319 --> 00:18:38,920
Speaker 5: And then when you come back to them like asking

327
00:18:39,000 --> 00:18:41,319
like all right, we need you know, the big budget,

328
00:18:41,359 --> 00:18:46,240
you know, for actually doing it properly, they would say.

329
00:18:46,079 --> 00:18:48,200
Speaker 2: Like, what do you mean, I already saw the demo.

330
00:18:48,279 --> 00:18:53,039
Speaker 5: It's done like a share We've seen it working, you know,

331
00:18:53,200 --> 00:18:55,240
like it just fixed the rough edges and you know,

332
00:18:57,200 --> 00:19:00,640
And that's how a lot of projects end up being

333
00:19:02,079 --> 00:19:04,960
because I mean, maybe you'd be okay if you just

334
00:19:05,000 --> 00:19:07,559
hand it over to someone else, you know, and making

335
00:19:07,559 --> 00:19:12,559
someone else's problem. This is just going to be turning

336
00:19:12,599 --> 00:19:16,480
over technical debt, and the technical debt will come do

337
00:19:16,680 --> 00:19:23,400
fast because the maintenance will become a nightmare, you know.

338
00:19:23,559 --> 00:19:31,000
The changing the architecture will be next to impossible. Migrating

339
00:19:31,079 --> 00:19:34,960
to a new U I framework will be problematic if

340
00:19:35,000 --> 00:19:37,960
the business logic is mixed in with the UI logic,

341
00:19:39,240 --> 00:19:42,119
so you may end up having to do the full

342
00:19:42,200 --> 00:19:45,440
rewrite if you need to modernize your system down the road.

343
00:19:47,400 --> 00:19:52,519
And I guess the issues with you know, using the

344
00:19:52,519 --> 00:19:56,960
best practices is that people need to have some learning curve.

345
00:19:58,359 --> 00:20:01,759
You need to have knowledge developers that are familiar with

346
00:20:01,799 --> 00:20:07,680
the best practices. There is sometimes too much ceremony, you know,

347
00:20:07,759 --> 00:20:10,839
with all these interfaces that you have to build on,

348
00:20:11,400 --> 00:20:16,839
implementations and everything, and that eventually is the upfront investment

349
00:20:17,319 --> 00:20:21,920
that you know, business needs to make, and sometimes they

350
00:20:22,079 --> 00:20:27,279
are not willing to and so Omega is trying to

351
00:20:28,480 --> 00:20:33,160
alleviate that and bake in, you know, the best practices

352
00:20:33,759 --> 00:20:38,720
at the fraction of the cost by enforcing these architectural

353
00:20:38,759 --> 00:20:43,400
principles and generating you know, all the code for you

354
00:20:43,559 --> 00:20:47,279
so you don't have to manually maintain all the interfaces

355
00:20:47,279 --> 00:20:47,799
and stuff.

356
00:20:48,039 --> 00:20:51,400
Speaker 1: So can I ask about the different types of dot

357
00:20:51,440 --> 00:20:54,000
net projects that you can create? Is it all core

358
00:20:54,200 --> 00:20:57,680
only or do you also support dot Net framework apps?

359
00:20:58,240 --> 00:21:07,039
Speaker 5: No, it's actual it can do anything. We started it

360
00:21:10,039 --> 00:21:16,880
a long time ago and it actually held the well,

361
00:21:17,119 --> 00:21:19,519
you know, over the years. We can talk about the

362
00:21:19,640 --> 00:21:22,680
history you know it came to be, but.

363
00:21:23,599 --> 00:21:26,559
Speaker 1: I think anything pretty much covers it. Yeah, so it'll

364
00:21:26,599 --> 00:21:27,680
generate a Python app.

365
00:21:27,720 --> 00:21:28,279
Speaker 2: Is that what you're saying?

366
00:21:28,319 --> 00:21:31,640
Speaker 5: Anything, Well, it can if you need to, but we

367
00:21:31,759 --> 00:21:36,079
have the we have a generated typeescript.

368
00:21:35,839 --> 00:21:38,599
Speaker 2: Okay, so fully web if you want to go that way.

369
00:21:38,720 --> 00:21:43,039
Speaker 5: Yeah, you can do anything. We just happened to use

370
00:21:43,079 --> 00:21:46,960
dot net and have dot net framework that is the

371
00:21:46,960 --> 00:21:47,920
most advanced there.

372
00:21:48,400 --> 00:21:50,079
Speaker 2: So what clients can you produce for me?

373
00:21:51,680 --> 00:21:59,400
Speaker 5: Right now? It supports from WPF web forms, a sp dot.

374
00:21:59,240 --> 00:22:01,240
Speaker 1: Net, Blazer. I saw.

375
00:22:03,519 --> 00:22:13,079
Speaker 5: The SPA applications script, Blazer server and Blazer web assembly

376
00:22:14,720 --> 00:22:16,240
and the unified Blazer.

377
00:22:16,960 --> 00:22:20,920
Speaker 1: Uh all right, So here's the question that might stump you.

378
00:22:21,680 --> 00:22:27,680
Maybe I'm hoping it doesn't. Authentication authorization. In the various

379
00:22:27,920 --> 00:22:31,200
models and scenarios that with which you can do that,

380
00:22:32,119 --> 00:22:33,279
are they all supported?

381
00:22:33,599 --> 00:22:33,880
Speaker 5: Yes?

382
00:22:34,400 --> 00:22:34,519
Speaker 1: Uh?

383
00:22:34,640 --> 00:22:38,559
Speaker 5: Not? Well when you say all that's a big statement.

384
00:22:39,319 --> 00:22:42,599
Speaker 1: Okay, Well, you know you have the individual accounts using

385
00:22:42,720 --> 00:22:47,519
Microsoft Core Identity, you have Identity server that can put

386
00:22:47,599 --> 00:22:50,640
itself in there. Sometimes, you've got M S A L,

387
00:22:51,799 --> 00:22:55,759
You've got what do they call azure B two B

388
00:22:56,000 --> 00:22:59,000
now as your ad A D B two B intro

389
00:22:59,720 --> 00:23:04,160
and yes, yes, so all of those things, and then

390
00:23:04,200 --> 00:23:06,720
you've got O I D C, and you've got open connect,

391
00:23:06,759 --> 00:23:10,640
and you've got all these protocols and things. Uh, is

392
00:23:10,799 --> 00:23:13,440
are you wizarding that for me? So I don't have

393
00:23:13,519 --> 00:23:15,799
to know all the details of these things? Are you

394
00:23:15,920 --> 00:23:18,880
helping me get the stuff that I need to have

395
00:23:19,000 --> 00:23:19,519
in place.

396
00:23:20,240 --> 00:23:27,799
Speaker 5: Yes, So Zomega dot net is a visual studio extension, okay,

397
00:23:27,880 --> 00:23:32,720
and it's it has a project template for creating new

398
00:23:32,799 --> 00:23:38,079
solution uh where you have a wizard that allows you

399
00:23:38,119 --> 00:23:42,000
to pick which architecture you want to use. Uh and

400
00:23:42,200 --> 00:23:47,319
UH the initial solution template that it generates now for

401
00:23:47,440 --> 00:23:51,880
Blazer UH and I think other solutions as well include

402
00:23:52,640 --> 00:24:00,799
the authentication and authorization support. Like out of the box, UH,

403
00:24:01,480 --> 00:24:07,319
it's the default is the user and password just you know,

404
00:24:07,400 --> 00:24:10,640
to get something started. But there is obviously you know,

405
00:24:11,440 --> 00:24:14,920
if you have services hosted, like is the rest API

406
00:24:15,680 --> 00:24:20,640
or a jw T token. Uh. There is if you

407
00:24:20,799 --> 00:24:25,839
use a different communication technology like w c F, they

408
00:24:25,839 --> 00:24:30,599
have their own like identity model that UH needs you know,

409
00:24:30,799 --> 00:24:36,799
the authentication UH, and there is the Blazer server is

410
00:24:36,839 --> 00:24:39,680
a little different because it's like called server side, but

411
00:24:39,759 --> 00:24:44,599
there is a you know, signal or circus running and

412
00:24:45,279 --> 00:24:50,759
it's not easy to set the kookies like the authentication

413
00:24:50,839 --> 00:24:54,799
cookies and send it back to the client. But we

414
00:24:55,039 --> 00:24:59,160
actually solve that so that you can build the same

415
00:24:59,240 --> 00:25:03,519
log in experience and it's going to work the same way.

416
00:25:05,319 --> 00:25:07,720
Both in Blazer server and Blazer web assembly.

417
00:25:08,559 --> 00:25:08,799
Speaker 1: Wow.

418
00:25:09,680 --> 00:25:11,640
Speaker 5: You know, under the hood it's going to go like

419
00:25:13,039 --> 00:25:16,799
call an API and point for a web assembly or

420
00:25:17,559 --> 00:25:20,720
for a Blazer is going to run on the server side,

421
00:25:21,640 --> 00:25:26,440
but it's all like hidden behind you know, the interfaces

422
00:25:26,440 --> 00:25:27,799
and different implementations.

423
00:25:28,000 --> 00:25:29,960
Speaker 1: Well that sounds good. I mean anything that will give

424
00:25:30,000 --> 00:25:35,400
me some sort of guidance and assistance and either making

425
00:25:35,400 --> 00:25:38,279
those decisions, which it sounds like not like it's not

426
00:25:38,359 --> 00:25:41,880
a guidance wizard, but you know, help me with the

427
00:25:42,319 --> 00:25:47,000
plumbing of implementing those things which are always changing and

428
00:25:47,039 --> 00:25:49,200
always moving and have different requirements.

429
00:25:50,680 --> 00:25:51,400
Speaker 2: That's good.

430
00:25:51,799 --> 00:25:54,359
Speaker 5: Yeah, because there are so many different ways of you know,

431
00:25:54,480 --> 00:25:59,680
the doing security and authentication specifically, we kind of just

432
00:25:59,720 --> 00:26:01,480
you know put it all in you know, right.

433
00:26:01,440 --> 00:26:02,160
Speaker 1: Yeah, yeah, sure.

434
00:26:03,160 --> 00:26:08,920
Speaker 5: You Basically a sp dot net core is specifically just

435
00:26:08,960 --> 00:26:12,519
allows you to like add one line like a you

436
00:26:12,559 --> 00:26:18,079
know Facebook authentication, Google authentication, you know Microsoft. So that's

437
00:26:18,519 --> 00:26:22,480
just you know, one line that you add and you

438
00:26:22,519 --> 00:26:23,279
should be good to go.

439
00:26:23,440 --> 00:26:26,039
Speaker 2: Like, but I got to think you're talking about a

440
00:26:26,039 --> 00:26:30,599
typical app for Zomega. It's an internal app, right, and

441
00:26:31,079 --> 00:26:33,680
replacing an old ASP dot webforms AP. Things like that like,

442
00:26:34,000 --> 00:26:36,160
they're going to have an internal authentication strategy you're going

443
00:26:36,200 --> 00:26:38,599
to need to support, right, Yeah, it's probably not going

444
00:26:38,680 --> 00:26:40,359
to be Google or Facebook, I'm betting.

445
00:26:40,799 --> 00:26:43,519
Speaker 5: Yeah, it's going to be some sso if it's a

446
00:26:43,559 --> 00:26:44,559
big company, but.

447
00:26:44,640 --> 00:26:47,200
Speaker 2: Yeah, it's going to be active directory or it could

448
00:26:47,240 --> 00:26:48,400
be Google or Facebook.

449
00:26:48,720 --> 00:26:50,440
Speaker 1: You never know, pretty sure, pretty.

450
00:26:50,200 --> 00:26:55,279
Speaker 5: Sure, Microsoft authentication might be there.

451
00:26:55,720 --> 00:27:00,920
Speaker 1: You haven't met my customers, Richard, That's true.

452
00:27:01,799 --> 00:27:04,480
Speaker 5: Sometimes you just need something, you know, to athentic case

453
00:27:04,519 --> 00:27:08,319
of password and user name. Yeah, like a speed up

454
00:27:08,319 --> 00:27:12,880
net identity will be fine, you know, just to get started. Sure.

455
00:27:13,119 --> 00:27:15,680
Speaker 2: Yeah, then it's always question of how much challenge it

456
00:27:15,720 --> 00:27:19,960
is retrofre to new security profile and yeah after the fact.

457
00:27:19,960 --> 00:27:22,480
But if I'm living in generators, it shouldn't be that hard, right,

458
00:27:22,559 --> 00:27:25,200
I should just be able to indicate the few changes

459
00:27:25,279 --> 00:27:27,640
and then regenerate and hopefully all the good things happen.

460
00:27:27,799 --> 00:27:30,079
Speaker 1: Right. It's a big leap of faith for your average

461
00:27:30,119 --> 00:27:34,519
programmer that loves to write code. Yeah right, I'm writing

462
00:27:34,680 --> 00:27:37,920
code though, Yeah, I'm no longer writing code. I'm learning

463
00:27:38,000 --> 00:27:41,720
the ins and outs of this model generator designer thing. Yeah.

464
00:27:41,759 --> 00:27:42,000
Speaker 2: But the.

465
00:27:43,640 --> 00:27:47,880
Speaker 5: Best thing, I guess is you are able to go

466
00:27:47,920 --> 00:27:51,480
and change the model and you just keep iterating, you know,

467
00:27:51,720 --> 00:27:55,519
and you regenerate the whole thing. It just makes so

468
00:27:55,599 --> 00:27:59,880
much easier to program and you know, build his applications

469
00:28:00,119 --> 00:28:00,440
and a.

470
00:28:00,400 --> 00:28:03,400
Speaker 1: Lot less prone to bugs. I would think, right, you know,

471
00:28:03,640 --> 00:28:06,920
you would hope, you would hope. I mean bugs get

472
00:28:06,960 --> 00:28:11,200
introduced when you do something over here but not over here,

473
00:28:11,400 --> 00:28:13,519
or you do things a little bit differently in a

474
00:28:13,519 --> 00:28:19,720
couple of places and you know, or you duplicate work. Yes,

475
00:28:19,839 --> 00:28:23,599
and those are some of the fallacies that you know,

476
00:28:23,640 --> 00:28:27,359
pitfalls that dot net developers, developers in general fall into.

477
00:28:27,559 --> 00:28:34,119
Speaker 5: Yes, And this is basically the consistency that we provide

478
00:28:34,960 --> 00:28:37,799
because and this is like the core thing. You know,

479
00:28:37,839 --> 00:28:42,599
on the framework level, on the model level, you can

480
00:28:42,640 --> 00:28:46,400
define like logical types, you know, like for example user

481
00:28:46,480 --> 00:28:52,559
type and you know, just describe, you know, the validation

482
00:28:52,680 --> 00:28:56,799
rules for the conversion, you know, the list of possible

483
00:28:56,880 --> 00:29:02,039
values and use it like everywhere. So it's going to

484
00:29:02,119 --> 00:29:07,119
have the consistent user experience across all the screens wherever

485
00:29:07,160 --> 00:29:12,200
you use the same the same type or the same

486
00:29:12,279 --> 00:29:13,039
data property.

487
00:29:13,359 --> 00:29:15,279
Speaker 1: And you know what, this is a good time for

488
00:29:15,319 --> 00:29:17,960
a break, I think, So let's take a break and

489
00:29:18,039 --> 00:29:24,599
we'll be right back after these very important messages, and

490
00:29:24,680 --> 00:29:27,160
we're back. This is dot net Rocks. I'm Carl Franklin.

491
00:29:27,240 --> 00:29:30,960
That's my buddy Richard Campbell. Hey, and we're talking to Sergei,

492
00:29:31,039 --> 00:29:36,279
Sarah Fudenoff about Zomega, dot Net and Richard and I

493
00:29:36,359 --> 00:29:37,759
believe the floor is yours.

494
00:29:37,960 --> 00:29:41,279
Speaker 2: Yeah, you know, I was thinking about Greenfield. Doesn't happen

495
00:29:41,359 --> 00:29:44,640
very often that and I really like the particular scenario

496
00:29:44,720 --> 00:29:47,680
and something you mentioned in your documentation too, about I

497
00:29:47,720 --> 00:29:50,720
have an existing ASP dot net web forms app. People

498
00:29:50,799 --> 00:29:53,480
have asked for changes to it. I didn't write that code.

499
00:29:53,759 --> 00:29:56,920
I'm scared to death of this thing. I think now,

500
00:29:57,160 --> 00:30:00,279
can I make changes to it through some and like

501
00:30:00,440 --> 00:30:02,799
Zomega and have fewer problems?

502
00:30:04,400 --> 00:30:04,640
Speaker 1: Yes.

503
00:30:05,000 --> 00:30:10,559
Speaker 5: Normally, if you have an old legacy web forms application,

504
00:30:11,480 --> 00:30:17,359
you're probably thinking of upgrading it to the ASP dot

505
00:30:17,440 --> 00:30:22,279
netcore and Plazer and lay this tech. So we help

506
00:30:22,359 --> 00:30:32,200
you do that. You can rewrite some of the modules

507
00:30:32,279 --> 00:30:37,960
or some of these screens using Zomega like generated and

508
00:30:38,119 --> 00:30:45,599
because we make you write code that is basically platform independent,

509
00:30:46,960 --> 00:30:52,079
it's just it doesn't matter like what communication framework you're using.

510
00:30:52,160 --> 00:30:55,519
Then you can expose your services as whatever, either like

511
00:30:55,680 --> 00:31:01,519
use them in process internally or exposed as rest API,

512
00:31:02,400 --> 00:31:07,960
g RPC, whatever you want, or even like the presentation

513
00:31:08,160 --> 00:31:13,440
logic that you're right is basically it doesn't have any

514
00:31:13,480 --> 00:31:19,400
dependencies on the UI framework. It's basically like m v

515
00:31:19,519 --> 00:31:25,440
v M like model few view models. But it's like

516
00:31:25,559 --> 00:31:32,839
on steroids, you know, because it allows you to describe

517
00:31:32,880 --> 00:31:35,440
all your logic in there, all the presentation, like the

518
00:31:35,559 --> 00:31:39,960
data elements, you know, the way they're calculated, the way

519
00:31:40,000 --> 00:31:48,160
they format their values for display, for internal storage, the

520
00:31:48,200 --> 00:31:52,519
way they the validation rules. You know everything about your UI.

521
00:31:52,720 --> 00:31:56,720
You know what views and forms in the view model

522
00:31:56,759 --> 00:31:59,960
you have, and then you just have a thin land

523
00:32:00,319 --> 00:32:06,000
of the actual UI view that you just bind to

524
00:32:06,119 --> 00:32:11,160
your view model and you get you know, working screen.

525
00:32:11,559 --> 00:32:17,039
Speaker 2: Nice. So we're talking about rebuilding the existing app through

526
00:32:17,319 --> 00:32:20,240
Zomega or are we able to actually add to the

527
00:32:20,279 --> 00:32:21,000
existing app.

528
00:32:22,240 --> 00:32:26,640
Speaker 5: You can add you know, like because we support webforms applications, right,

529
00:32:27,599 --> 00:32:32,599
you can generate stuff for webforms, Like if you want

530
00:32:32,599 --> 00:32:37,039
to add like new screens with web forms Zoemega, then

531
00:32:37,440 --> 00:32:42,960
those will be automatically structured and architecture in such a

532
00:32:42,960 --> 00:32:44,920
way that you can migrate them easily to.

533
00:32:46,279 --> 00:32:48,640
Speaker 2: And I can point Zomega at the existing data store

534
00:32:48,680 --> 00:32:51,480
that the existing asp web Forms app are you using,

535
00:32:51,559 --> 00:32:54,240
and it'll build a model for me from that, right,

536
00:32:54,319 --> 00:32:58,359
and then I can go and build it. I thinking like,

537
00:32:58,519 --> 00:33:00,920
that's just giving me me. It would be fun to

538
00:33:00,960 --> 00:33:03,039
take this out for a spin on an existing asp

539
00:33:03,119 --> 00:33:05,039
dot Webforms app where they've asked me to add a

540
00:33:05,079 --> 00:33:08,200
new section to it, and just have pick the model

541
00:33:08,279 --> 00:33:10,279
up and go from there and see if I can

542
00:33:10,319 --> 00:33:13,640
get to a place that makes sense before without having

543
00:33:13,640 --> 00:33:16,359
to touch the existing code, because that's what scares people, right,

544
00:33:16,400 --> 00:33:19,079
It's just a way to avoid that. And then the

545
00:33:19,119 --> 00:33:21,559
other side of this is then I could start refactoring

546
00:33:21,559 --> 00:33:25,359
and rebuilding some of the older existing stuff into Zomega,

547
00:33:25,759 --> 00:33:27,759
and at some point when I got the whole thing across,

548
00:33:27,799 --> 00:33:29,559
I could say, would you like to see a Blazer

549
00:33:29,640 --> 00:33:30,160
version of this?

550
00:33:30,720 --> 00:33:31,000
Speaker 5: Right?

551
00:33:31,519 --> 00:33:34,599
Speaker 2: That's interesting to me because you now no dead drops, right,

552
00:33:34,920 --> 00:33:37,279
I can add any features in demanding right now, and

553
00:33:37,319 --> 00:33:39,079
I can make improvements here and there and bit by

554
00:33:39,200 --> 00:33:41,920
bit remediate an old application.

555
00:33:42,160 --> 00:33:46,480
Speaker 5: Yes, And it's similar to what Microsoft, I guess is

556
00:33:46,880 --> 00:33:50,680
pushing right now, like with the migration path from a

557
00:33:50,759 --> 00:33:55,079
web forms to Blazer where you run some screens, you know,

558
00:33:55,200 --> 00:34:00,240
like they get rendered with the old technology and some

559
00:34:00,279 --> 00:34:06,720
new screens are rendered with the Blazer technology. But it's still.

560
00:34:07,079 --> 00:34:09,360
Speaker 2: Yeah, it's just always a question of are you always

561
00:34:09,360 --> 00:34:10,639
in an operable state?

562
00:34:10,880 --> 00:34:11,039
Speaker 1: Right?

563
00:34:11,239 --> 00:34:13,480
Speaker 2: You can make some changes and you can introduce them

564
00:34:13,519 --> 00:34:15,239
to folks and have them take it out for a spin,

565
00:34:15,320 --> 00:34:17,559
and they're not like, what is this much as opposed

566
00:34:17,559 --> 00:34:19,480
to you? I go away for six months build a

567
00:34:19,519 --> 00:34:23,039
huge thing that everybody hates, right, And that's what scares me.

568
00:34:23,079 --> 00:34:25,800
It is all too often, you know, they get caught

569
00:34:25,840 --> 00:34:29,079
on a rewrite and nobody sees it until it's done,

570
00:34:29,280 --> 00:34:33,480
till the budget's burned. Right, And now now you're in trouble. Right,

571
00:34:33,599 --> 00:34:35,360
I'm just trying. I'm just trying to stay out of trouble.

572
00:34:35,920 --> 00:34:38,320
I'm not saying I'm good at it, just trying. I'm

573
00:34:38,360 --> 00:34:43,760
only trying. Yeah, all right, what about like testing infrastructure,

574
00:34:43,960 --> 00:34:46,159
like all of those kinds of things. Do you bother

575
00:34:46,239 --> 00:34:47,760
any of that? Is the code you generate so good

576
00:34:47,760 --> 00:34:48,719
it doesn't need to be tested.

577
00:34:49,079 --> 00:34:54,880
Speaker 5: Well, you can use any testing framework with it. You

578
00:34:54,920 --> 00:35:00,840
can even add generators that would generate unit to right,

579
00:35:01,519 --> 00:35:04,800
I mean it's basically as long as the model has

580
00:35:04,840 --> 00:35:11,440
that information and the data enough data to derive you

581
00:35:11,480 --> 00:35:16,280
know what tests need to be there. And because we

582
00:35:16,360 --> 00:35:19,480
already have like the model has tons of information, has

583
00:35:19,519 --> 00:35:23,519
the service model, it has the domain model, and it

584
00:35:23,599 --> 00:35:28,760
has the some presentation model. So it's able to generate

585
00:35:28,760 --> 00:35:31,840
all the codes, so there is no reason it cannot

586
00:35:31,880 --> 00:35:35,159
generate unit tests for those as well.

587
00:35:35,639 --> 00:35:39,679
Speaker 2: What's the preferred back end storage model? Like, I see

588
00:35:39,679 --> 00:35:42,960
you support postcress. Is it all our dybms? Could I

589
00:35:43,000 --> 00:35:46,119
switch this to a mode where it's just writing into blobs?

590
00:35:46,440 --> 00:35:53,639
Speaker 5: So yeah, we use anty framework Core and I guess

591
00:35:53,719 --> 00:35:59,000
whatever back end providers it has would be supported.

592
00:35:59,719 --> 00:36:01,280
Speaker 2: Now I gotta go quickly look up to see if

593
00:36:01,280 --> 00:36:04,679
they still support XML as a store. I don't know

594
00:36:04,679 --> 00:36:06,119
that it's a good idea, but I'm just saying that

595
00:36:06,320 --> 00:36:07,199
that would amuse me.

596
00:36:08,480 --> 00:36:10,559
Speaker 5: Probably not actively supporting yet, but.

597
00:36:11,199 --> 00:36:15,360
Speaker 2: No, no as your SQL, SQL Light, my SQL postgrass

598
00:36:15,360 --> 00:36:17,280
and Cosmos dB, right.

599
00:36:18,719 --> 00:36:22,719
Speaker 5: I mean some vendors might have their own providers this

600
00:36:22,840 --> 00:36:30,599
third party so whatever. In terms of the domain model,

601
00:36:30,760 --> 00:36:34,960
we use Endity framework or also have support for the

602
00:36:35,719 --> 00:36:39,880
legacy antidy framework. Six You have six but that's kind

603
00:36:39,880 --> 00:36:47,679
of going away. But you know, you can use as

604
00:36:47,760 --> 00:36:49,360
much of it as you want. You know, you can

605
00:36:49,519 --> 00:36:53,880
generate the services and then override provide your own implementations

606
00:36:53,920 --> 00:36:57,599
to do whatever data story you want.

607
00:36:56,800 --> 00:36:59,440
Speaker 2: You well, and there's all the third party like you

608
00:36:59,440 --> 00:37:03,199
can go into ole if you hate yourself and dB

609
00:37:03,360 --> 00:37:08,719
two inter base. Look, here's a provider for storing tables

610
00:37:08,719 --> 00:37:14,239
and files. Because I'm looking for bad performance. I don't

611
00:37:14,280 --> 00:37:17,199
know the answer. That's probably unfair. Be interesting to try it, honestly,

612
00:37:17,280 --> 00:37:20,039
just to see where they Oh boy, there's an access provider.

613
00:37:20,199 --> 00:37:20,960
There you go.

614
00:37:23,800 --> 00:37:26,880
Speaker 5: But you can even go with no SQL databases.

615
00:37:26,320 --> 00:37:27,840
Speaker 2: Like Mango supported.

616
00:37:27,960 --> 00:37:31,760
Speaker 1: Absolutely, it's a wonderful no SQL database solution that I've

617
00:37:31,760 --> 00:37:34,000
been using lately. It's called Jason.

618
00:37:35,400 --> 00:37:38,320
Speaker 2: You and me both. So that's what run as lives

619
00:37:38,360 --> 00:37:42,840
on Jason yeah too, yeah, yeah, no question. Uh But

620
00:37:43,440 --> 00:37:45,119
I mean when you think about one of the powers

621
00:37:45,119 --> 00:37:49,039
of these generators is to attack questions like that, is

622
00:37:49,079 --> 00:37:51,400
to say, hey, what if we switched to we're paying

623
00:37:51,440 --> 00:37:54,639
a license fee for this database, what would what would

624
00:37:54,639 --> 00:37:55,880
it take to try some of the other ones. So

625
00:37:55,920 --> 00:37:58,320
you go down the you know e f core list

626
00:37:58,360 --> 00:37:59,960
and say, well, which one should we grab and let's

627
00:38:00,079 --> 00:38:02,199
try something. And it doesn't have a license on it,

628
00:38:02,239 --> 00:38:03,719
does it? You know what difference does it make?

629
00:38:03,760 --> 00:38:06,000
Speaker 1: Well? You know what all that could be solved if

630
00:38:06,000 --> 00:38:09,360
you use the repository pattern. Do you use the repository pattern?

631
00:38:10,920 --> 00:38:16,199
Speaker 5: Well, the repository is basically with the Antity framework Core.

632
00:38:16,880 --> 00:38:20,239
So if whatever you do with the Antidy framework Core,

633
00:38:20,920 --> 00:38:29,679
if you switch the provider from one database to another, yeah.

634
00:38:29,400 --> 00:38:32,039
Speaker 1: But there are things that EF doesn't support, right, So

635
00:38:32,559 --> 00:38:35,280
the trick is to have your interface that has all

636
00:38:35,280 --> 00:38:39,079
the CRUD operations on it, and then repository.

637
00:38:40,679 --> 00:38:44,599
Speaker 5: It's kind of part of the clean architecture. I mean,

638
00:38:44,679 --> 00:38:51,480
I'm still yet to see people switching the databases.

639
00:38:51,599 --> 00:38:54,119
Speaker 2: But I'm describing something probably nobody does.

640
00:38:54,320 --> 00:38:57,880
Speaker 1: That's not true. I do, but I start I start

641
00:38:57,920 --> 00:39:03,199
with in memory and then I switched to uh, you know,

642
00:39:03,280 --> 00:39:06,079
any framework or back and forth between that and dapper

643
00:39:06,320 --> 00:39:09,559
or you know, if I wanted to create to do

644
00:39:09,599 --> 00:39:13,079
it all with JSON files, that could swap that out. Yeah.

645
00:39:13,320 --> 00:39:18,239
Speaker 2: It's definitely creating a low barrier of entry to experimenting

646
00:39:18,320 --> 00:39:20,719
with different data stores. If that became a concern of you,

647
00:39:20,960 --> 00:39:22,880
what about true containers?

648
00:39:23,079 --> 00:39:24,280
Speaker 1: That's crazy talk, Richard.

649
00:39:24,400 --> 00:39:29,239
Speaker 5: Containers. Uh, they're supported just as part of the general

650
00:39:31,760 --> 00:39:37,320
you know architecture because you just build your solution and

651
00:39:37,559 --> 00:39:42,000
you know, build containers and you can employ them.

652
00:39:42,519 --> 00:39:45,719
Speaker 2: That's just part of the c ICD pipeline. The Zomega

653
00:39:45,760 --> 00:39:49,599
gets to the build stage essentially pushes the code, kicks

654
00:39:49,599 --> 00:39:51,760
off a bill process, and if in that build process

655
00:39:51,800 --> 00:39:55,119
you're deploying out to containers, fine, you're not going to interfere.

656
00:39:54,719 --> 00:39:57,719
Speaker 5: With that, right, yeah, It just you know, I bet

657
00:39:57,840 --> 00:39:58,360
your own.

658
00:39:59,239 --> 00:40:01,880
Speaker 2: And you're so your architecture is already very much about

659
00:40:01,920 --> 00:40:05,039
state outside of the object, So you're not going to

660
00:40:05,079 --> 00:40:08,079
get any nasty traps that inexperienced container people run into.

661
00:40:08,760 --> 00:40:09,159
Speaker 1: Mm hmm.

662
00:40:10,400 --> 00:40:13,320
Speaker 2: Right, yeah, well, because we'll find out fast if you

663
00:40:13,320 --> 00:40:18,519
didn't know where stuffs get stored matters for sure. You know,

664
00:40:18,639 --> 00:40:20,719
that's that's always part, part and parcel of the problem.

665
00:40:21,840 --> 00:40:23,800
But I do think one of the things we like

666
00:40:23,880 --> 00:40:26,760
with a generator is providing people with the ability to

667
00:40:26,960 --> 00:40:29,960
rapid choice. That we could look at a blazer of

668
00:40:30,000 --> 00:40:33,360
melitation of something both web assembly or server and say,

669
00:40:33,400 --> 00:40:36,840
what do we think? You know, what's the feel like?

670
00:40:37,039 --> 00:40:39,400
You know that that to me is very interesting that

671
00:40:39,400 --> 00:40:42,679
that you don't know, you're not doing a big multi

672
00:40:42,679 --> 00:40:44,559
week spike to try and test something like this. The

673
00:40:44,599 --> 00:40:46,159
generator would do a lot of that work for you.

674
00:40:46,519 --> 00:40:50,400
Speaker 5: Yes, the generator and the architecture we use in some

675
00:40:50,440 --> 00:40:54,199
of the videos will show how you can build the

676
00:40:54,199 --> 00:40:58,440
same application with Blazer server web assembly and you can't

677
00:40:58,480 --> 00:41:01,239
even tell, you know, from the look of it, you

678
00:41:01,239 --> 00:41:04,800
know which architecture it uses, owner of the hood, but

679
00:41:05,199 --> 00:41:06,679
it looks exactly the same.

680
00:41:07,159 --> 00:41:09,800
Speaker 2: Now i'd wanted to experiment with Okay, now the client's remote,

681
00:41:09,840 --> 00:41:12,320
it's through a narrow pipe or something highly latent, right,

682
00:41:12,400 --> 00:41:14,320
and just she can you know, can you feel the

683
00:41:14,360 --> 00:41:16,239
difference on that? But the fact that it'd be easy

684
00:41:16,239 --> 00:41:21,119
to do that testing you call the type script implementation

685
00:41:21,199 --> 00:41:24,960
is SPA. What SPA libraries are you using?

686
00:41:25,320 --> 00:41:31,400
Speaker 5: Well, that was kind of an old framework back in

687
00:41:31,760 --> 00:41:37,199
h like maybe ten years ago or so, when we

688
00:41:37,360 --> 00:41:43,719
had only like the web forms support, and then I

689
00:41:43,840 --> 00:41:48,840
realized that, you know, it's going away, and Microsoft was

690
00:41:48,880 --> 00:41:52,840
pushing for MVC, you know actively, and we're saying like, oh,

691
00:41:52,920 --> 00:41:56,599
don't you worry, it's just an alternate way of doing it,

692
00:41:56,719 --> 00:41:59,239
you know, like web forms is going to be your

693
00:41:59,239 --> 00:42:01,119
life and well, you.

694
00:42:01,079 --> 00:42:04,360
Speaker 2: Know, and there's still plenty of worms web forms people

695
00:42:04,400 --> 00:42:06,760
out there today, right, like it's not like that things

696
00:42:06,840 --> 00:42:09,639
going away, but they're definitely on standard framework.

697
00:42:09,440 --> 00:42:13,559
Speaker 5: Right, So and I didn't like see much difference like

698
00:42:13,639 --> 00:42:20,840
with NVC, so I didn't jump on the bandwagon because

699
00:42:20,840 --> 00:42:23,079
we in the web forest we used like ohing like

700
00:42:23,440 --> 00:42:26,000
with the middlewere and dependency in Jackson, so all the

701
00:42:26,079 --> 00:42:31,280
latest stuff, right, So it didn't feel like, uh, uh

702
00:42:32,559 --> 00:42:35,519
m VC was much different at the time. So we

703
00:42:35,559 --> 00:42:41,280
started looking around and everybody was like building spas, so

704
00:42:41,639 --> 00:42:47,159
we thought, like, what can we do to massage Zamiga

705
00:42:47,639 --> 00:42:52,599
to make it build a spa? And uh, there are

706
00:42:52,679 --> 00:42:58,400
tons of different JavaScript frameworks around uh back then and

707
00:42:58,599 --> 00:43:06,599
the most popular ones in the dot net community were Knockout. Yeah, yes,

708
00:43:07,079 --> 00:43:14,199
so uh and uh D Randal by Rob Rob Eisenberg.

709
00:43:14,280 --> 00:43:18,119
Speaker 2: Yeah, okay, those were they. You know, history is history,

710
00:43:18,239 --> 00:43:23,440
right like today you may talk about react and angular

711
00:43:25,559 --> 00:43:27,559
and the other one she's the name just jumped out

712
00:43:27,559 --> 00:43:31,239
of my head View and you and View. Yeah that's

713
00:43:31,239 --> 00:43:34,199
sort of the big ones right now, but back then,

714
00:43:34,519 --> 00:43:35,480
knockout was the way.

715
00:43:35,840 --> 00:43:40,679
Speaker 5: So yeah, we did pick the knockout because it was

716
00:43:40,880 --> 00:43:46,239
pretty closed in terms of uh how Zamega framework was

717
00:43:46,280 --> 00:43:52,840
working and uh the m v D m uh paradigm,

718
00:43:53,280 --> 00:43:57,199
so it had like observables and everything. And we build

719
00:43:57,239 --> 00:44:02,039
the Zomega JSU frame, work with the Typescript based framework

720
00:44:03,199 --> 00:44:08,760
for that. But then you know, it kind of got stale. Yeah,

721
00:44:08,840 --> 00:44:14,480
they knockout, you know, got stale. Rob left for Google

722
00:44:14,519 --> 00:44:19,519
and then started his own.

723
00:44:17,679 --> 00:44:21,119
Speaker 2: To aralia you know as the nature of JavaScript frameworks.

724
00:44:21,239 --> 00:44:25,679
Speaker 5: But so we were left stranded again. You know, so

725
00:44:25,840 --> 00:44:31,360
I was thinking about building an angler version like Zomega Energy.

726
00:44:32,079 --> 00:44:34,239
Speaker 2: I can't imagine that's that's not what the customers want.

727
00:44:34,280 --> 00:44:35,280
The customers want Blazer.

728
00:44:35,519 --> 00:44:39,000
Speaker 5: Yeah, then came out there's you know, amazing technology from Blazer,

729
00:44:39,840 --> 00:44:43,239
and I looked at the who stands behind it, and

730
00:44:43,280 --> 00:44:46,320
then look what it is like Steve Sanderson.

731
00:44:45,960 --> 00:44:49,800
Speaker 2: Yeah, the same right, no kidding? Yeah, Yeah, it's hard. Yeah,

732
00:44:50,199 --> 00:44:52,000
I think you put your time in the right place. Like,

733
00:44:52,519 --> 00:44:54,360
it doesn't make sense to do this now if you're

734
00:44:54,360 --> 00:44:57,360
gonna if you're gonna go down that path, you only

735
00:44:57,400 --> 00:44:59,400
have so many hours to work on code. Better to

736
00:44:59,400 --> 00:45:01,639
add features on the Blazer side then to worry about

737
00:45:01,840 --> 00:45:04,679
I'm not going to say legacy, but other you know,

738
00:45:05,239 --> 00:45:07,239
I don't know the SPA is that hip anymore. Lots

739
00:45:07,280 --> 00:45:09,199
of people got work in it, no two ways about it,

740
00:45:09,719 --> 00:45:12,519
and goodness, those angulars certainly had deep penetration a lot

741
00:45:12,559 --> 00:45:15,639
of places as has react, but I don't know that

742
00:45:15,639 --> 00:45:18,760
would be your focus. Does make sense really.

743
00:45:18,639 --> 00:45:22,400
Speaker 5: And that was actually a perfect fit for our platform

744
00:45:22,480 --> 00:45:27,519
because the Mega framework was building SISHARP and all the

745
00:45:27,519 --> 00:45:31,559
OI stuff. You know, you can reuse all this power

746
00:45:31,679 --> 00:45:36,960
of view models we had, so it just plugged right

747
00:45:37,000 --> 00:45:40,480
in and the architecture where we have the business services

748
00:45:40,519 --> 00:45:46,039
separated from the presentation logic. That also played well with

749
00:45:47,079 --> 00:45:51,599
going from Blazer server to the Blazer Web assembly because

750
00:45:52,159 --> 00:45:56,639
people don't realize that, oh now you need an API later.

751
00:45:56,840 --> 00:46:01,440
You know, now you cannot like split out, you know,

752
00:46:01,480 --> 00:46:02,679
your business services.

753
00:46:02,840 --> 00:46:05,280
Speaker 2: How much can I split up those services to let

754
00:46:05,280 --> 00:46:12,760
them scale independently? If I app gets big and busy.

755
00:46:10,559 --> 00:46:15,360
Speaker 5: You can the generators allow you to how would put

756
00:46:15,400 --> 00:46:24,800
two different projects so you can build different kind of services.

757
00:46:25,400 --> 00:46:30,519
If you want some services to be more scalable, then

758
00:46:30,559 --> 00:46:33,280
you may split it up into a separate project and

759
00:46:33,320 --> 00:46:38,079
then right basically have it like run a lot of

760
00:46:38,119 --> 00:46:41,960
copies of it, whereas like admin screens, you know that

761
00:46:42,079 --> 00:46:42,519
I don't.

762
00:46:42,320 --> 00:46:45,639
Speaker 2: Only use Yeah, you don't need to do that. Then

763
00:46:45,679 --> 00:46:49,159
and then and I'm dancing against the mall the monoliths

764
00:46:49,239 --> 00:46:52,920
versus the micro service sort of mindset. But uh, and

765
00:46:52,960 --> 00:46:55,760
we're we're hip to modular monolists. That's been a good conversation.

766
00:46:55,760 --> 00:46:56,360
Speaker 1: I've done it right.

767
00:46:56,840 --> 00:46:59,280
Speaker 2: So and that's why I asked the question exactly that way.

768
00:46:59,320 --> 00:47:02,360
It's not that I want want service rining architecture, it's

769
00:47:02,360 --> 00:47:04,320
nothing I want micro services. Is that I got a

770
00:47:04,360 --> 00:47:07,159
problem child and I want to put it in a

771
00:47:07,199 --> 00:47:10,360
can so that I can scale it separately from everything else.

772
00:47:10,559 --> 00:47:15,960
Speaker 1: Yes, exactly, I don't want a problem child factory.

773
00:47:16,320 --> 00:47:18,920
Speaker 2: Yeah, so that's the answer to the question is like, yes,

774
00:47:19,000 --> 00:47:20,920
making its own project. Now it runs something that you

775
00:47:20,960 --> 00:47:22,800
could be called by the other projects, and you can

776
00:47:22,840 --> 00:47:26,760
scale it however you want. What about mobile clients making

777
00:47:26,760 --> 00:47:28,039
stuff for iOS and Android?

778
00:47:29,519 --> 00:47:36,920
Speaker 5: Yeah, we actually have a generator for zamal and WPF

779
00:47:38,880 --> 00:47:46,199
so it's it's quite possible to use to go to MAUI. Yeah,

780
00:47:47,079 --> 00:47:51,360
we kind of skipped on the zamorin and zamorine forums there,

781
00:47:53,360 --> 00:47:57,760
but you can pretty easily just use Blazer, as you

782
00:47:57,840 --> 00:48:03,119
guys have discussed numerous time, just you know, do the

783
00:48:03,199 --> 00:48:07,719
hybrid Blazer for a mobile for now, and we may

784
00:48:07,840 --> 00:48:11,559
even provide like a template for a mile we app

785
00:48:11,719 --> 00:48:14,960
using hybrid Blaser, just to get started.

786
00:48:14,639 --> 00:48:18,320
Speaker 1: On the Yeah, that'd be good. I would think it

787
00:48:18,320 --> 00:48:21,000
would be very difficult to keep up with or it

788
00:48:21,039 --> 00:48:23,159
has been certainly in the past, to keep up with

789
00:48:23,239 --> 00:48:27,719
Microsoft on Maui's AMMO features and things.

790
00:48:28,000 --> 00:48:31,239
Speaker 2: What's the Zomega framework. I see it here on GitHub.

791
00:48:31,400 --> 00:48:35,119
Speaker 5: Yeah, so this is the framework that powers the applications

792
00:48:35,320 --> 00:48:41,559
that we generate. Basically, it allows you to uh write

793
00:48:41,639 --> 00:48:46,760
this presentation logic that is platform agnostic. It's independent of

794
00:48:46,840 --> 00:48:56,519
the view framework. So it's kind of m VVM on steroids.

795
00:48:58,039 --> 00:49:01,760
Like with the classic MVVM, you have these eye notified

796
00:49:01,800 --> 00:49:07,880
property changes, and each property is just a value right older.

797
00:49:09,320 --> 00:49:15,320
In Zoomega framework, a data property represents both the value

798
00:49:15,480 --> 00:49:22,280
and the metadata like whether it's editable, whether it's visible required,

799
00:49:22,800 --> 00:49:28,440
the validation rules associated with it, the conversion rules to

800
00:49:28,559 --> 00:49:34,519
different formats, like the at least of possible values that

801
00:49:34,760 --> 00:49:38,840
are allowed. So you build this property you know as

802
00:49:38,880 --> 00:49:46,360
a kind of big collective you know, reusable item and

803
00:49:46,400 --> 00:49:52,400
then you just bind your control in whatever framework it is,

804
00:49:52,440 --> 00:49:58,360
whether it's a EXAMO control or user controlling webforms or

805
00:49:58,639 --> 00:50:03,599
Blazer control or whatever. You just buying it, you're telling

806
00:50:03,400 --> 00:50:07,000
it there's the property, and it reflects you know, all

807
00:50:07,079 --> 00:50:10,960
the takes everything from the property. So basically all your

808
00:50:11,119 --> 00:50:17,840
coding is encapsulated in the platform independent presentation logic.

809
00:50:18,000 --> 00:50:21,000
Speaker 2: Nice and yeah, and this is great. You know why

810
00:50:21,039 --> 00:50:24,239
be open source on that because you've also got a

811
00:50:24,280 --> 00:50:26,559
retail component of this project as well, right.

812
00:50:26,719 --> 00:50:30,480
Speaker 5: Yes, and yeah. The best thing you can bind any

813
00:50:30,599 --> 00:50:34,239
controls to your properties, like you build your view models

814
00:50:34,880 --> 00:50:38,079
and then you can build your views with the you know,

815
00:50:38,159 --> 00:50:41,440
regular controls that we provide. But then you want to

816
00:50:41,519 --> 00:50:44,079
switch to sinc fusion for example, we partner with see

817
00:50:44,320 --> 00:50:48,280
sink fusion. Right, it just bind sync fusion controls to

818
00:50:48,400 --> 00:50:53,320
this very same property and it just works out of

819
00:50:53,320 --> 00:50:55,519
the box. You don't need to do anything, so you

820
00:50:55,559 --> 00:50:58,280
don't have the vendor lock in. You can you know,

821
00:50:58,480 --> 00:51:03,199
just switch and swap any component library.

822
00:51:03,800 --> 00:51:07,039
Speaker 2: That's cool. So there's a free product that's totally usable.

823
00:51:07,079 --> 00:51:10,119
Speaker 5: A basic Yeah, we have a basic license that is

824
00:51:10,360 --> 00:51:13,000
kind of a community license on visual studio.

825
00:51:13,639 --> 00:51:14,840
Speaker 1: What are the requirements for that?

826
00:51:15,480 --> 00:51:18,119
Speaker 5: Just a visual studio twenty twenty two.

827
00:51:19,719 --> 00:51:23,719
Speaker 1: I mean, is there any single person use that kind

828
00:51:23,760 --> 00:51:24,039
of thing?

829
00:51:24,199 --> 00:51:27,480
Speaker 5: Yeah, yeah, a single person Like you can order your

830
00:51:27,480 --> 00:51:32,280
own license and you can renew like when the new

831
00:51:32,360 --> 00:51:34,360
version comes in, you can get a new version.

832
00:51:34,639 --> 00:51:34,840
Speaker 2: Right.

833
00:51:35,920 --> 00:51:42,280
Speaker 5: So we're looking for feedback and looking for directions because

834
00:51:42,320 --> 00:51:44,199
you can do a lot of stuff with it. You

835
00:51:44,199 --> 00:51:50,840
can developing in a lot of different directions, add you know,

836
00:51:51,559 --> 00:51:55,960
various features. So we're looking for the directions from the market,

837
00:51:56,000 --> 00:51:56,360
you know where.

838
00:51:56,480 --> 00:52:00,320
Speaker 1: Sure, it's the big the big difference between that in

839
00:52:00,360 --> 00:52:03,679
the full license which is about eight hundred bucks the

840
00:52:03,760 --> 00:52:09,159
generator source that you get right and in unlimited perpetual

841
00:52:09,239 --> 00:52:10,400
license kind of thing. Yeah.

842
00:52:10,440 --> 00:52:12,000
Speaker 2: Yeah, so I only have to buy this one, so

843
00:52:12,000 --> 00:52:13,639
I don't get it, I don't buy it annually.

844
00:52:14,480 --> 00:52:18,519
Speaker 5: Yeah, you buy it for this specific version. Oh I see, okay,

845
00:52:19,320 --> 00:52:21,639
or you know the minor upgrades.

846
00:52:21,760 --> 00:52:26,400
Speaker 2: Obviously. We also talk about model enrichment in the custom generators.

847
00:52:26,400 --> 00:52:26,760
What is that?

848
00:52:27,519 --> 00:52:31,239
Speaker 5: So, yeah, we have the structure of the model defined,

849
00:52:31,280 --> 00:52:35,519
but then you may want to add your own elements

850
00:52:35,559 --> 00:52:40,440
to it. Define you know, things that you want to

851
00:52:40,440 --> 00:52:43,480
capture in the model and then be able to use

852
00:52:43,519 --> 00:52:47,800
that in your own generators, or in customize the existing

853
00:52:47,840 --> 00:52:51,920
generators to use the additional data in the model to

854
00:52:52,079 --> 00:52:53,960
produce the code the way you want it.

855
00:52:54,679 --> 00:52:57,039
Speaker 2: I see anythink in terms of like, if I'm a

856
00:52:57,079 --> 00:52:59,440
bigger organization where we have sort of standards of way

857
00:52:59,480 --> 00:53:01,559
we want things to look, I can build up custom

858
00:53:01,599 --> 00:53:04,000
generators so that everybody using it sort of goes down

859
00:53:04,039 --> 00:53:08,360
that path, right right, Yeah, I appreciate that. That's very good,

860
00:53:08,519 --> 00:53:11,559
it's smart. I also feel like that modeling piece is

861
00:53:11,599 --> 00:53:15,199
something I'd probably sit with the domain expert, you know,

862
00:53:15,440 --> 00:53:19,079
with the principal knowledge person, and work the model with them.

863
00:53:19,360 --> 00:53:21,639
It'd be probably a lot more approachable than doing it

864
00:53:21,679 --> 00:53:24,440
on whiteboards and ex sell spreadsheets and things. Actually, let's

865
00:53:24,440 --> 00:53:26,840
just go through the model together. Let's see if we

866
00:53:26,880 --> 00:53:28,119
get get to a good place.

867
00:53:28,480 --> 00:53:31,239
Speaker 5: Yeah, if you watch some of the videos that I had,

868
00:53:32,360 --> 00:53:37,559
it's such a quick process from model to a working prototype.

869
00:53:37,559 --> 00:53:38,480
Speaker 2: At least prototype.

870
00:53:39,800 --> 00:53:42,199
Speaker 5: You can see like right away what the screen is

871
00:53:42,199 --> 00:53:44,679
going to look like. Then you weak something, you know,

872
00:53:44,719 --> 00:53:47,960
you'll go regenerate, you know, all the art defects, and

873
00:53:48,000 --> 00:53:49,400
then you get an updated screen.

874
00:53:49,519 --> 00:53:51,880
Speaker 1: You know, I watched some of the video and I

875
00:53:51,920 --> 00:53:55,800
saw a tree view. Is that the main designer a

876
00:53:55,800 --> 00:54:00,159
tree view structure? Or do you have other UI design

877
00:54:00,800 --> 00:54:02,199
that use for different parts of it.

878
00:54:04,000 --> 00:54:06,639
Speaker 5: The treview I mean the XML.

879
00:54:07,039 --> 00:54:08,360
Speaker 1: Yeah, yeah, the XML view.

880
00:54:08,480 --> 00:54:09,000
Speaker 2: Yeah yeah.

881
00:54:09,079 --> 00:54:15,599
Speaker 5: The XML is basically the main designer right now. We'd

882
00:54:15,599 --> 00:54:20,840
love to have like the more graphical designer where you

883
00:54:20,880 --> 00:54:28,159
can just be able to easily like you know, like

884
00:54:28,280 --> 00:54:33,480
an antity data model. I remember these there was a designer. Yeah,

885
00:54:33,679 --> 00:54:39,000
microsoftware you can like add.

886
00:54:37,559 --> 00:54:39,519
Speaker 1: Things and link things together and whatnot.

887
00:54:40,639 --> 00:54:45,559
Speaker 5: Yeah, so we'd like would love to build something like that.

888
00:54:45,599 --> 00:54:50,719
We just haven't gotten around to it. But the the XML,

889
00:54:50,880 --> 00:54:56,599
the editor actually is, has been enhanced. Yeah. You can

890
00:54:56,719 --> 00:54:59,760
like collapse the definitions so you don't need to like

891
00:55:00,400 --> 00:55:04,800
view this convoluted XML like you can just expand the

892
00:55:04,800 --> 00:55:10,840
sections that you're interested in. You can go to definitions,

893
00:55:10,920 --> 00:55:16,440
find references, refactoring, you know all this stuff. So that's

894
00:55:16,840 --> 00:55:22,280
basically I mean people are used to editing XML, like

895
00:55:22,360 --> 00:55:26,079
you go to our HTML, you go to Blazer, you

896
00:55:26,159 --> 00:55:26,960
go to zamo.

897
00:55:27,639 --> 00:55:32,159
Speaker 1: You know, are you taking pull requests? Do you have

898
00:55:32,519 --> 00:55:34,880
issues that need do you need help? I guess is

899
00:55:34,880 --> 00:55:36,039
what I'm asking.

900
00:55:36,320 --> 00:55:41,320
Speaker 5: Yeah, if someone is interested in contributing and helping with

901
00:55:41,440 --> 00:55:48,159
that would be all happy to to get these contributions.

902
00:55:48,519 --> 00:55:51,320
Speaker 1: Well, as Louis Armstrong once said, what a wonderful world.

903
00:55:52,280 --> 00:55:55,599
It really is, the wonderful world of open source. Well,

904
00:55:55,639 --> 00:55:58,360
is there anything that we missed? Serge anything that you

905
00:55:58,400 --> 00:56:01,199
want to or a shout out or call the action

906
00:56:01,280 --> 00:56:02,079
before we hang up?

907
00:56:02,440 --> 00:56:08,719
Speaker 5: Well? Yeah, as I said, you know, if, uh, if

908
00:56:08,719 --> 00:56:10,760
you find it interesting and if you want to learn

909
00:56:10,800 --> 00:56:13,559
more about it, you can go to zamaga dot net

910
00:56:14,320 --> 00:56:20,719
website and check out the documentation, the videos. We keep

911
00:56:20,760 --> 00:56:25,800
adding new videos to it, keep adding features, you know,

912
00:56:25,880 --> 00:56:32,159
as uh it says it. We just added the postgrasskvil uh.

913
00:56:32,199 --> 00:56:40,039
Support Yeah, by popular requests uh and uh yeah, I

914
00:56:40,079 --> 00:56:43,840
give it a spin. Uh and we always want to

915
00:56:43,880 --> 00:56:47,320
hear your feedback. Uh and what do you think? What

916
00:56:48,400 --> 00:56:49,960
do you think would benefit you know?

917
00:56:50,280 --> 00:56:50,400
Speaker 2: Uh?

918
00:56:51,559 --> 00:56:56,360
Speaker 5: Any ideas, features and contributions are always wealthy.

919
00:56:56,519 --> 00:57:00,880
Speaker 1: That's great. Thank you, This is good stuff and sorry

920
00:57:00,880 --> 00:57:04,360
that we hadn't noticed it earlier. This is good and

921
00:57:04,440 --> 00:57:07,159
I hope our listeners think the same. I'm sure they will.

922
00:57:07,920 --> 00:57:08,519
Thanks again.

923
00:57:08,679 --> 00:57:09,719
Speaker 5: All right, thank you?

924
00:57:09,719 --> 00:57:11,679
Speaker 1: Here he is okay, and we'll talk to you next

925
00:57:11,719 --> 00:57:36,679
time on dot net rocks. Dot net Rocks is brought

926
00:57:36,679 --> 00:57:40,119
to you by Franklin's Net and produced by Pop Studios,

927
00:57:40,519 --> 00:57:44,519
a full service audio, video and post production facility located

928
00:57:44,559 --> 00:57:47,480
physically in New London, Connecticut, and of course in the

929
00:57:47,519 --> 00:57:51,440
cloud online at pwop dot com.

930
00:57:51,639 --> 00:57:53,760
Speaker 4: Visit our website at d O T N E t

931
00:57:54,000 --> 00:57:58,000
R O c k S dot com for RSS feeds, downloads,

932
00:57:58,159 --> 00:58:01,840
mobile apps, comments, and access to the full archives going

933
00:58:01,880 --> 00:58:05,280
back to show number one, recorded in September two thousand

934
00:58:05,280 --> 00:58:05,559
and two.

935
00:58:06,159 --> 00:58:08,519
Speaker 1: And make sure you check out our sponsors. They keep

936
00:58:08,599 --> 00:58:11,760
us in business. Now go write some code, See you

937
00:58:11,800 --> 00:58:12,239
next time.

938
00:58:13,119 --> 00:58:14,920
Speaker 5: You got Jack Middle Vans

