Join us on July 9 with Shaun Walker for the next episode of Rockin' The Code World with dotNetDave - a weekly show to learn & live Q&A focused on .NET and other programming technologies.
AGENDA
• Introduction
• Octane
• Wrap up
GUEST SPEAKER
Shaun Walker is the original creator of Oqtane and DotNetNuke, web application frameworks that have earned the recognition of being amongst the most pioneering and widely adopted Open-Source projects native to the Microsoft platform. He has 30+ years of professional experience in architecting and implementing enterprise software solutions for private and public organizations. Based on his significant community contributions he has been recognized as a Microsoft Most Valuable Professional (MVP) for over 14 years. He was recognized by Business In Vancouver in 2011 as a leading entrepreneur in their Forty Under 40 business awards and is currently the Chair of the Project Committee for the .NET Foundation. Shaun is a Canadian living in Florida and is currently employed as the CTO of Professional Services for Cognizant.
C# Corner - Community of Software and Data Developers
https://www.c-sharpcorner.com
#CSharpCorner #rockinthecodeworld #live #dotnet
Show More Show Less View Video Transcript
0:00
Thank you
0:29
Thank you
0:59
Thank you
1:29
Thank you
1:59
Welcome, geeks, to another exciting episode of Rockin' the Code World with Don Ed Dave
2:05
I'm David McCarter. I'm glad you're back this week. I have an exciting show I've been looking forward to, so I'm excited about that
2:14
And, you know, something that came up in the past week or two is
2:18
you all heard the intro song that I wrote and performed with some of my friends
2:24
and the lead guitarist on that track, my friend Mark, he indicated to me he wants to re-record the song
2:32
So do you guys think that's a good version or do you want a new one
2:37
I'm going to leave it up to you guys to tell me if you want a new song. I'll work on it, but I need some input from you
2:46
Because recording music is not the easiest thing in the world, so I definitely don't want to spend the time doing it
2:51
if I don't have to. So, welcome to the show. This is the 60th episode of Rockin' the Code World
3:00
I can't believe I hit 60 already. It seems like I just started this not too long ago, during the pandemic
3:10
So, I'm glad you're here. And my guest today is Sean Walker. He's the CTO of Professional Services of Cognoset
3:18
and we're going to be talking today about some a framework that I really like and for me to like
3:25
something you all know has to be pretty dang good and that is Octane that Sean has been spearheading
3:32
which is a Blazor web app well I'll let him explain it later let's put it that way but you're
3:39
if you if you are into Blazor or want to get into Blazor don't leave the don't leave watch the show
3:46
this is going to be a really, really good one. I think you're going to be impressed because if I'm
3:50
impressed, I know you guys will be impressed. So let's get going. I want to, you know, again
3:57
unfortunately, make a shout out to my friends in the Ukraine. I feel bad, you know, of course
4:03
I think we all do feel bad about the Ukraine. I'm going to keep bringing it up until the war is over
4:08
because, you know, I don't want this to come out of anybody's mind because we need to send our
4:14
support and any help we can do to the Ukrainian people to fight the terrorists that lives in Russia
4:22
So please, please just think about them. I know, especially in America, there's a lot of stuff to
4:29
think about, but make sure you think about our friends in Ukraine. One thing that I noticed this
4:36
week that I'm actually getting some hits on my site from Ukraine, which hasn't happened in a
4:41
while. So maybe that's a good sign. I hope it is. But, you know, I went to the Ukraine in 2015
4:48
I loved it. I've been trying to go back ever since. But unfortunately, I think that's going
4:53
to be a while now. But I definitely want to go back to Ukraine at least once because I really
4:58
fell in love with the country and the people there. So keep them in your thoughts
5:04
I also want to make sure you all know that the Code Quality and Performance Virtual Conference
5:12
is coming back next month on the 19th. I'm so excited. You all know that last year we did this conference for the first time through C Sharp Corner Live
5:25
And we have, Simon can correct me, but last time I heard we had over 65,000 viewers of
5:33
that conference. And so, you know, one thing that, you know, that 65,000 viewers told me that you guys really want sessions or conferences wrapped around code quality performance, because I don't see a lot of these type of sessions at conferences
5:50
I monitor conferences to see what they're, you know, what they're giving to the attendees
5:57
And I don't see a lot of these, especially the big paid conferences
6:02
I hardly see any, if any at all, sometimes zero. So I hope you will go to the website and register
6:11
We are accepting papers right now. So if you want to speak at the Code Quality Conference, please submit your papers now
6:18
I'm not sure when I'm going to be picking speakers, but probably at the beginning of the month
6:23
So please make sure you put that on the calendar. It's going to be really fun
6:29
It's going to be really informative. And it's a pet theme with me now that this is really what I'm focused on in my writing and speaking and things like that. So I wish we could do this in person. Maybe someday we can. That's up to my head. But I definitely am excited about the virtual one next month
6:51
So let's get more than 65,000 viewers next month. Oh, we're up to 72, Simon says
6:58
Woo-hoo. Wow. That's amazing for one day. Okay. Also, don't forget to check out my open source library called Spargen
7:12
I'm working on a newer version right now. It's got some pretty cool stuff in it
7:16
Spargin is basically all the common .NET code I've been writing ever since .NET 2
7:22
So I had an open source project out there ever since 2 Spargin for 6 is the latest version of that And what it is it just all the things I write at companies not proprietary of course
7:37
that we kind of having to research on Google, how do you serialize this or how do you do that or
7:43
blah, blah, blah. I kind of wrapped all that into Spargin because when I go to companies and work
7:49
there, which I'm looking for a job right now, I try to get them to use Bargin because that's what
7:56
it's made for. So I hope you go check it out. And even better, if you help contribute to the project
8:02
too, that'd be awesome. And if you live in the US, I will definitely send you some swag if you
8:08
contribute. And maybe India too, when it appears I'll be going there in October
8:12
All right, let me introduce Sean. Sean is the original creator of Octane and .NET Nuke
8:19
web application frameworks that have earned the recognition of being amongst the most pioneering
8:25
and widely adopted open source projects native to the Microsoft platform. That's definitely true
8:32
I worked on a project for a cell phone manufacturer here in San Diego where I was using .NET Nuke
8:39
And I actually had to convert the, you know, the CTO, whoever, this is common, the CTO comes in and says, oh, we hate Microsoft
8:48
No, we have to use Oracle. And so I actually did that transition in like a couple of days
8:55
So it's a great framework. Anyway, based on the significant community contributions, he has been recognized as most MVP for Microsoft for over 14 years
9:06
Sean is a Canadian living in Florida, is currently employed as a CTO of Professional Services for Cognizant
9:12
Welcome, Sean. Thanks for having me on the show. How's it going
9:17
First time on Rocking the Code World, so I'm very excited. That's great. How's the weather there today in Florida
9:26
Yeah, the weather here is like you'd expect hot. And my bigger problem is that my air conditioning died a couple of days ago
9:33
So I'm sitting here and it's 85 degrees in here. And it's humid as heck there too
9:39
Yeah. Yeah. Anyways, I know it's going to get repaired on Tuesday, so I'm counting down the days
9:44
Oh, man. Time to check into a hotel room. Yeah, that would have been a smarter idea this weekend for sure
9:51
Well, I'm glad you took some of your Saturday out to talk to everybody about Octane
9:56
And to let all the viewers know that I've been working back and forth with Mahesh, who runs C Sharp Corner, because he's trying to use Octane in a couple of projects he's trying to land
10:08
And so I've kind of been helping with that in the sales calls right now
10:13
And so I have looked into Octane. I've looked at the source code. I've, you know, I've seen how it works
10:20
And so I wanted to have Sean come on and tell everybody just what Octane is and show it off, too, because I think the work that you guys have done to make it easy to configure, to me, is impressive
10:39
And everybody out there, make sure you ask questions. You know, this is, you know, this, Sean's been around a long time and, you know, in ASP.net world
10:49
And he's got a lot of great info, I'm sure, to share
10:53
So make sure you ask questions. This is your show. It's not my show, your show
10:58
And it can only be great if you ask questions. So, all right
11:03
Welcome, you know, some friends from India. I don't know who else is watching
11:07
I thought my friend Mark, the guitarist on the music, was going to be watching today
11:12
Yep, Mahesh submitted his talk for Code Quality Conference. Yeah, well, I don't know if I'm going to pick you, Mahesh
11:19
You know, what's my incentive to pick you, right? I want to be bribed
11:26
I need retirement money. He doesn't get any favoritism at all? Nobody gets favoritism
11:34
Oh, Mark is here. Hey, Mark. Mark is watching a show today
11:39
He's the lead guitarist on the song at the beginning of So. show so hi mark and mark is the one who wants to know uh i mean wants to re-record the song so let
11:49
me know if you guys want me to re-record it so um for you know i was thinking about octane this week
11:58
and uh uh i was looking at it this morning too so before we start talking about octane um
12:05
And before I, let's talk about .NET Nuke. And, you know, the funny thing about .NET Nuke is I was, you know
12:15
because I'm looking for a job, I was going through the job postings, you know, this week, and I actually saw a job posting
12:21
for a .NET Nuke developer. Really? Yeah. I was going, wow, I haven't heard of that in a long time, you know
12:28
So, but specifically .NET Nuke. And I was going, wow, that's interesting
12:33
Your framework you built a long time ago is still being used, of course
12:38
Yeah, it's actually quite interesting. So obviously it went through its hype cycle, right
12:41
It was probably most popular in the years of maybe 2006 through 2010 or 11 maybe, which is like a decade ago
12:52
But there were so many implementations of it because it was open source and very widely adopted that there is still a lot of implementations that are out there
13:01
And in fact, the product lives on. I haven't been associated with D&N Corp since 2014
13:11
And the company itself was acquired by a private equity firm in, I think it was 2018
13:20
They continue to support the commercial customers that were using the commercial version of it
13:26
but there still is a large open source community around it, supporting it and doing projects with it
13:33
And there still is a large ecosystem of vendors building products, like modules and skins that work with it as well
13:42
So it's still around for sure. And at this point, you can imagine something that's 20 years old now
13:50
It's very mature and it's very feature rich. It's got so much functionality in it
13:56
So I guess the only challenge with it now is it's still based on .NET Framework and Microsoft put out pretty strong messaging that for new projects, you probably should be looking at a more .NET Core-based solution
14:11
So, yeah. But I mean, certainly it's like it's withstood the test of time. It exceeded what I thought it would in terms of longevity. It's kind of crazy that way
14:25
Although I think it's funny when you see a job posting, and I'm sure that the job posting was actually pretty decent in the sense that when I think back to, let's say, the year 2000, right
14:40
When all those Y2K projects were coming up for COBOL and Fortran and all of these technologies, right
14:46
They were pretty good paying gigs because the skill set was becoming very scarce
14:52
And I feel like that's sort of the case with .NET NUC as well. That skill set is becoming more scarce now for people who really understand the framework And so yeah so those folks who are really skilled with Nuke are still doing quite well with it
15:06
Great. Well, let's explain to everybody who's not as, hasn't been around as long as you and I have been, what .NET Nuke really is and how it came about
15:16
Yeah, so, I mean, it was originally conceived as a web application framework, which really the idea behind it was that I don't like the idea of having to build everything from scratch for every new software development project
15:32
So it's kind of like what you were talking about with your open source projects, Barjan, right
15:36
You want to have building blocks that are sort of proven, already established, that you can trust
15:44
And why build them over and over and over again, right? Right. And I think more than building blocks, what .nook was, was it was an entire framework that had all of those building blocks assembled in a certain way
15:56
So it gave you some guidance in terms of how to build an application
16:03
And so that would accelerate your software development efforts. It would give you all of the things that you would normally expect, like membership and roles and sort of a page compositing model and all of these things that you don't want to be spending time on because it's really just commoditized functionality
16:20
And then you could focus on building the more higher value business functionality for your clients
16:25
So that was the idea behind it. And it really resonated with a lot of developers at the time
16:32
and then they liked the idea that you could use a platform like that as a foundation and then build
16:38
on top of it um and that whole model was also very popular because sharepoint used it there was a
16:44
number of other frameworks dynamics uses it like there's there's a lot of platforms out there today
16:49
that use that same exact model for those reasons yeah and uh uh it was you know it was really
16:57
talked about a lot, you know, back then. And you said it started in 2006
17:02
No. So the actual open source project, I started building it probably in 2001
17:09
but didn't really think about releasing it as an open source project until late 2002
17:17
And then really it was, it was not like a deliberate decision. It was more
17:21
I was doing it as a hobby project in my spare time. Didn't really see a way of like moving it
17:28
forward in a commercial sense. Not with like the limited resources I had at the time
17:34
And it was more of an experiment, right? If I release it as open source, would other people be interested in helping out? And a whole community grew around it pretty
17:43
quickly. So it was the right decision. But as it became, of course, more popular
17:50
then it required even more focus. And I was lucky enough, you know
17:54
to be able to spend full time on it after a while, right? It was generating enough revenue through various streams
18:00
And then we created a full, like a company around it in 2006
18:04
And we raised actually three rounds of venture capital to accelerate and grow that company
18:10
Actually, we had an office in San Mateo, California. We had an office in near Vancouver as well in Canada
18:18
where I was from. We also had an office in Amsterdam for a period of time
18:22
So that was interesting going through that journey. Yeah, I bet. And you kind of reminded me of the early history of ASP.NET
18:33
where between ASP.NET version 1.1 and 2, or the framework version 1.1 and 2
18:41
Microsoft actually did a lot of work to create these providers and all these things to help us, you know, stand up websites faster
18:51
Because even like, I don't want to say the old days and new days
18:56
but, you know, whenever someone says to me now, I want to build a website, I just go, oh my gosh, really
19:02
You know how much work it's going to take just to get the, you know
19:06
the base stuff working and authentication and all this. I mean, every time I think about it now, I go, oh no, I don't want to do that
19:15
Yeah. That's why all my blogs are on WordPress. Right. Because I don't want to deal with it. And so. Yeah, absolutely. And I agree with that. So and I guess that's another aspect of .NET Nuke was, although it was conceived as a web application framework, it had like an HTML module where you could like add just random sort of text. Right. And you could build out virtual pages and add content to the pages. And then people thought of it as a CMS
19:44
because you could manage some content in it so people would build websites with it
19:49
And so it sort of had this dual personality, right, where it was both a tool for developers to build apps
19:55
and it was like a website builder for content creators. And that dual personality actually created some challenges over time
20:02
because you can't really serve both of those audiences really well. You have to kind of choose
20:08
And so when we got funding in 2008, we actually chose to pursue the CMS aspect more, right
20:16
Go deeper in the content features, which, I mean, we had a good customer base as a result of that
20:26
But that's not sort of, it was weird because that's not where the origin of the product was
20:30
Right, right. It's kind of interesting how it morphed in that direction. Yeah
20:35
And so when we, of course, when we're going to talk about Octane, And I'll have to explain sort of the rationale behind it as well, because it's probably not exactly what some people perceive it to be
20:47
So let's talk about Octane now. What is Octane and how did that come about
20:52
Yeah, so I guess I stopped working at DNN Corp in 2014
20:58
And then I went to work for one of our implementation partners who was doing a lot of enterprise development
21:04
And so that was good for me because as an executive in a product company, I was doing more like PowerPoints and presentations and talking to customers and getting back into consulting
21:16
I got to go hands on again, right back into the code, which was good
21:20
And I sort of understood how the industry was evolving because when you're in a product, you sort of view everything around that product
21:28
And then when you get away from the product, you see that there's a whole lot of other solutions that are available
21:33
So that was good for me. And then it was, I guess, 2018 when it was actually Scott Hunter that reached out to me from Microsoft and said, you know, we've got this thing Blazor
21:45
It's quite interesting. It's got a really strong component model behind it
21:50
I think it would be a pretty cool solution to build something like you did with .NET Nuke
21:54
You should check it out. And so I hadn't really looked at it closely
21:58
It was still in preview stages at that point. But I could see what he was talking about
22:03
I could see the potential. So I built a POC, very rudimentary that like had the page compositing
22:10
model that we had in DNN, right? Where you could, you could define pages, you could define which kind
22:15
of like modules you want to add to the pages. It was all dynamic. It was actually kind of tricky to
22:22
figure all that out in those stages because the dynamic capabilities of Blazor were there even in the early stages but there was no documentation around it no examples on how to do it So we kind of had to forge a path there
22:38
It's become a lot easier now in .NET 6, you know, where they actually have a dynamic component that you can use to make it a little bit easier
22:46
But all those primitives were there right from the start. And so that's what I had to use to build the POC
22:52
And yeah, and it's been a really great solution to build a framework around
22:58
But again, so getting back to what I was just talking about, the goal with Octane is it's a modular application framework
23:05
So the idea is it's for developers to build applications. Yes, it still has a HTML module that's part of it, but I don't envision it natively adding support for a lot of content capabilities
23:20
like content versioning or content workflow or content localization, right? Those deep content capabilities
23:29
that would be part of a CMS. I don't see that on the roadmap for the product
23:35
I'm trying to serve a different audience with Octane. Yeah, but someone could do that, right
23:42
Someone could build something like that. That plugs into Octane. Yeah, there already are people who are building
23:48
like richer content-focused modules that you can plug in and then get that CMS capability
23:55
Right. So we don't have any questions yet, except for Mahesh says he's sorry to hear about your AC situation
24:05
Mahesh would probably hate his air conditioning going out right about this time of year too
24:10
So if you're ready, can we show off Octane a little bit
24:16
And then, you know, the one thing I definitely want to show off is how easy it is to create a module that plugs into Octane and that configuration part of it, too
24:28
Because I think that's really, really easy. I mean, super simple that even a non-techie could at least add modules and stuff to Octane
24:40
Right. Okay. So I can't tell if. So I'm sharing my screen already, but do you have to do something to make it show up to the audience
24:50
Yeah, Simon's got to show it. Okay. Simon. Simon's in a hotel room with his friends right now, everybody
24:59
So he might be a little behind. Wait, he's saying something. Yes
25:07
No, no, Simon. He wants to show his laptop. Nick, I can stop sharing and then reshare or..
25:15
Oh, there you go. All right. Sorry to stop paying attention. It's fine
25:21
I know, I know. It's a Saturday. I get it. Yeah. So this is the official, I guess, Octane website, right, at octane.org
25:31
This site is actually built using the Octane framework. So this site is actually architected in kind of an interesting way in the fact that I just basically utilized a bootstrap five template, which I liked, which had like all the navigation and different page sort of areas that were part of it that I wanted
25:57
and adapted it very simply into an Octane theme, added my content to it
26:06
And it, I mean, it's very simple to do that, right? So you can take advantage of things that already exist out there
26:13
in the web ecosystem to make them work with Octane because obviously it uses Blazor
26:18
and Blazor is still based on, you know, web standards. So this site is actually comprised of like a custom theme
26:26
and that custom theme contains all of the images and the content
26:30
and then it just links to different areas of that one page. The only other page in this site is this blog page
26:37
which is actually built using what we were just talking about, a distinct Octane module
26:44
which is built as a separate application and plugs in seamlessly to the framework
26:49
And then I added an instance of that module to this page and it allows me to create blog posts
26:54
and I can go in and I can read these blog posts. It's obviously a very small one, longer articles as well
27:04
And this is obviously, I can go into the edit aspect of things and it has a rich text editor
27:09
much like you'd see in a lot of different CMSs. So you can modify the text and save it
27:17
I'm logged into the site here. So there is a whole backend to Octane as well
27:21
So if I bring that up by bringing up the control panel, I can bring up the admin dashboard and it has all of these features that are built in already
27:29
So things around site management meet because of the fact that it's a multi-tenant solution
27:34
So you can host multiple sites that are part of the same installation, just like .NET Nuke
27:42
So each site has its own distinct set of users, its own set of roles, its own set of content that you can manage as part of that site, which is all virtual
27:52
I guess the cool thing about Octane is that each site can actually be, the content can be stored in its own isolated database, whereas with .NET Nuke, everything was in one shared database
28:05
So having the ability to have isolated database is kind of nice if you want to keep cleaner separation between your different sites that are part of your installation. Yeah
28:15
The control panel also has the ability to add additional types of content
28:22
So, I mean, I can add as many different pages as I want to my site
28:26
You can organize them however you want. They can be hierarchical in nature
28:30
And then I can add additional, I can add modules to the page as well
28:35
So, in the module area, I have a bunch of different modules that are defined for this particular site
28:43
I think from there, so the Octane framework is an open source project
28:50
It's, of course, on GitHub. So this is the GitHub repo for it. The latest version is version 3.1.3
28:57
Had like 22 releases over time. Lately, we've been trying to release something every month
29:04
There is a lot of activity that's going on in terms of adding features
29:09
or fixing whatever issues come up. So there's a lot of different functionality that's been added over time
29:18
As I mentioned, this project started way back in 2018. So it started on .NET Core 3.1, and then it was migrated to .NET Core 5, and then to .NET 6
29:31
And, of course, then we'll probably try to have a release ready in November for .NET 7 as well
29:37
as the next version we'll be focused on will include support for Maui, which is a pretty
29:44
natural fit because of the Blazor hybrid support that's coming. Yeah, that was, you know, when I first, when Mahes first had me look into Octane, and I
29:56
saw the, you know, I saw the potential with it. going man i maybe i should change my website to it and then i thought no i want to keep on wordpress
30:05
because if you know something happens to me i want my site to live you know because if you know
30:09
an octane you have to pay for the hosting right but so i have been uh working on uh something new
30:17
that i'm actually using a blazer hybrid and and because i need that hybrid piece for uh some of
30:24
of the features. And now, because I was looking at this morning
30:28
and I was going, oh, now I know where I can use Octane personally
30:33
And so I think I've got a great idea now that I'm going to work on. When is that support going to come out
30:40
Well, we'll try to have it ready for November. It'll probably be, we'll have something
30:44
out before that. But obviously, of course, like Maui itself won't be fully
30:52
supported until the .NET 7 release, I believe. Of course, people could use it in a pre-release form as well
31:00
But that's sort of the timing that we're looking at for that. The idea with Octane was really take advantage of Blazor
31:08
So it already supports Blazor server and Blazor web assembly within the same framework
31:15
In fact, within the same site, and I can show you that in a minute, or sorry, within the
31:21
same install. You can use the two different hosting models. Yeah, and so maybe it's easiest if I switch over now to Visual
31:29
Studio. So I have the latest version of octane installed, right? I just pulled it down from GitHub
31:36
In the server project, there's an app settings that Jason file. By default, when you install octane, there isn't a connection
31:44
string. This is going to be provided for you when you install
31:47
it because there's an installation wizard that makes it really simple to install
31:52
Octane natively supports four different databases. So of course you can use SQL Server or local DB
32:00
but you can also use MySQL, Postgres, or SQLite, depending on what you want to do
32:05
That's good. Yeah. So if I run the application, obviously it'll go ahead
32:13
I just wanted to point out that one of the things that I like about Octane is that the base framework of Octane
32:22
is updates from you guys, and all the work that we do
32:27
are in custom modules, right? Correct. And so that way, Octane can continuously
32:32
being upgraded with the latest version, while that doesn't touch any of your code
32:38
So I thought that was a really good way to go about that. Yeah
32:43
Yeah, so that was even a concept that was there in um in dnn is that um you know and just like sharepoint or dynamics or any other
32:54
framework that you would use the idea is you leverage the framework treat it more as a black
32:59
box right even though you have access to the source code so you can see how it actually works
33:03
it's better to not modify that yourself right if you have if you find issues with it then report
33:11
them so that they can be fixed but you should focus on taking advantage of the extensibility
33:16
points right that and building your custom applications using those extensibility points
33:23
and then you can upgrade the framework on a constant basis as new versions come out
33:29
get the latest you know fixes get the latest enhancements that are part of that and we take
33:34
care of like making sure that that framework is upgradable from version to version so that model
33:39
has a lot of benefits as opposed to the model where you build using some kind of like an
33:46
application template, right? Which basically would stand up an initial project. But from that point
33:52
on, you get no benefit of great ability option at all. You're on your own. Right. So yeah
33:59
that's basically the clean separation, right? Between the framework and then the extensions
34:04
Yeah. I think that's a great architecture. Yeah. Yeah, so this is obviously version 3.1.3, which is the latest version
34:10
I'm going to install it on local DB. It gave me some default options here, which I'm just going to accept
34:16
So I go ahead and install. It's going to run. Hold on
34:19
Simon, can you show his screen again? There you go. All right. Thanks
34:24
Yeah, so it's running all of the EF core migrations that are required
34:30
And then it actually creates an initial site for you with some default content
34:35
and that's why it has some default content on this initial screen
34:41
There's a few different pages that are created by default. So you've got a typical homepage with public-facing content
34:47
You've got a private page, and because I'm logged in automatically as this user that was created, I can see this page
34:54
If I was logged out, I wouldn't be able to see this page. It's got this security access for authenticated users
35:00
It's also got a MyPage capability where, like a portal type of application, a user can basically, once they're authenticated, they can have a version of this page of their own
35:13
They can add content to it as they see fit. So that sort of concept of a personalized page where a user can modify themselves
35:23
We added a develop page as well so that it's very clear that you can create extensions
35:30
And so this has a module creator that you can fill out some very basic information
35:34
and it'll scaffold out a complete set of code for you using a code template
35:40
We just have one default code template. But, yeah, to have, like, a fully functional module then that you can use as a starting point to create your own modules
35:49
it's quite helpful. Yeah. I really like how you can, you know, set it up right in the configuration and click a button
35:58
and it creates a new Visual Studio project and then brings that up, right
36:06
Yeah. Yeah, yeah. Yeah, and this demo page was created because I have an assembly that I created previously
36:13
that happens to be in the bin folder, and it has this ability to do content migration capabilities
36:21
So this is really powerful if you want to create. So using a continuous integration like CICD approach, you might want to add additional pages or additional modules or additional content to your site as part of your upgrade process
36:40
So you can create migrations that are content focused. These are not database migrations
36:45
These are Octane specific content migrations. And then as you move from version to version, it'll add those changes for you automatically as you deploy
36:55
So this was also something that was not possible in DNN. So in a lot of ways, Octane has exceeded, I think, the capabilities that were available in DNN
37:07
And certainly, because DNN was originally created using concepts that were popular for the .NET framework
37:19
and perhaps I was also in a different level of my career at the time when I created D there a lot of criticisms about DNN being like very tightly coupled like not architected to modern standards
37:37
I would say that those are all true statements. Because it's 20 years old
37:41
What do you expect? I wanted to like have a blank slate, create it using all the most modern architecture, have very clean separation, right
37:52
It's a single-page application where things are very cleanly separated from one another
37:57
And I think that that's what you were alluding to at the beginning, where you looked at the code and you looked at the architecture, and it looks a lot cleaner than probably you ever looked at DNN, right
38:06
It does look cleaner, yeah. Okay, yeah. So that was kind of the goal behind it, and that's going forward
38:12
Obviously, that's still going to be one of the goals. If we go into the admin aspect of things here, so every site has an admin area
38:21
If I go into the site settings, it has various things that you can configure as an administrator
38:27
Things like, you know, this site may have to send email to users, right
38:34
So it has SMTP settings that you can set up. You can actually configure this site to have progressive web application capabilities
38:42
You have the ability for this site to respond on different URLs. So you can have a number of different URLs that map to the site
38:48
the hosting model is where you define whether you're running Blazor server or Blazor web assembly because it supports both
38:58
So I could have one site that's in my installation that's running on Blazor
39:03
server because maybe that was my preferred running environment for that site
39:08
But on a different site in the same installation, I can specify that I want to run on Blazor web assembly
39:14
And then the tenant information, information. Like I said, you can support multiple databases. So this site is running on local DB
39:23
I could create another site that's part of the same installation that runs on SQLite
39:28
right? And all of the data that would be part of that site would be stored in a SQLite database
39:32
So it has a lot of configurability that wasn't possible in the DNN framework
39:39
I go back to my home page and I go to the control panel
39:45
I have a list of modules that are pre-installed. And let's say I'm going to choose this HTML text module because it's the most common
39:53
And I can say I want to add that module to the page. So I just say click add, says it was added, and that module was added here at the bottom of the page
40:02
If I go into edit mode, it tells me all the different regions of the page where content can exist
40:10
And I can see this HTML text doesn't have any content. I can actually say I want to move this module to the top of the page
40:18
And for some reason, it didn't move it to the very top. Anyways, it did move it up
40:25
And if I say edit, I can go in and I can use content
40:29
I can save it, and the content is saved. So that's some of the basic content capabilities
40:36
But I mean, this is just a module, right? That it's basically taking advantage of the extensibility point of the framework where everything is essentially a module
40:47
So this HTML text module is just one type of module. In fact, everything that's in this control panel or this dashboard are just modules as well, right
40:59
So this is a module. If I go to user management, this is a module as well
41:06
So everything is built around this concept of modules. And modules control sort of the functionality of the site
41:15
And then themes are what control the look and feel of the site
41:20
So let's say if I go into this private page, and I go into the page settings, the appearance
41:28
I can choose a different theme. So right now it's got the Octane theme
41:32
I can choose like the standard sort of Blazor theme that everyone has come to become very familiar with
41:39
So if we say, boom. Now it looks like a Blazor template site
41:44
Right. So I can switch back and forth, right? So this is still using the Octane theme
41:49
And this is using the Blazor theme. So, I mean, obviously, there's a lot of concepts that go on behind the scene because a theme has to take advantage of all the typical web standards, right
42:01
So, a theme is built up or is comprised of a Razor component in Blazor
42:07
It also uses CSS, of course. And so, it dynamically will add CSS references to the page
42:16
And then if I switch to the other page, it'll remove those references and add different CSS references
42:21
These are things that are not natively possible, I guess, just as part of the normal Blazor implementation
42:29
These are things that were built for Octane that you can take advantage of
42:33
And there's a lot of capabilities that have been built over the last three or four years for Octane that add additional functionality to Blazor
42:43
Yeah, so let's look at a couple of questions real quick. So the first one is from Mahesh, and he says, can you share some thoughts on the scalability of Octane
42:55
For example, on C Sharp Corner, they have millions of users every month, and will Octane be able to handle that
43:02
And he's mentioning in-memory caching. Right. Yeah. So Octane right now does use some caching
43:12
It uses the standard iMemory cache, right, that's part of .NET Core
43:16
are the most commonly referenced entities that are part of the installation, right
43:24
Things like which tenants are supported, which aliases for the various sites
43:31
So it does use some caching. What it doesn't have support for yet is distributed caching
43:40
So we wanted to run Octane as part of a web farm
43:46
it doesn't have the ability to synchronize caches between the different nodes there in a web form
43:52
So I guess in a sense that might be a limit, a current limitation
43:59
Obviously that's something that's on the roadmap that will be added in the
44:02
future. But yeah, that's, that's sort of one thing that it doesn't support currently
44:09
It probably will support the, you know, So as much as possible, the philosophy in Octane is to take advantage of native Microsoft functionality and not use third-party dependencies
44:25
And so if you actually look like in the bin folder for Octane, you're going to find very few third-party dependencies, right, to the things that are not part of the standard .NET 6
44:38
And that's sort of done on purpose because we learned the hard way in DNN that the more dependencies you have, the more servicing you have to do to the framework to keep up with version updates of all of those dependencies
44:52
Right, right. And all of those dependencies may have security issues that are part of them Almost like none of the security issues that were part of DNN over time were actually part of the core framework itself They were part of dependencies that we were relying upon
45:06
So yeah, that was one of the philosophies behind Octane. So yeah, like I said, for caching
45:13
we'll try to take advantage of the native Microsoft capabilities. Yeah, because I think what Mahesh might be alluding to
45:19
is maybe, you know, the ability, Mahesh, you can tell me if I'm wrong
45:24
maybe the caching of blog posts or articles on C Sharp Corner
45:30
but I'm not sure if that's exactly what he meant. Yeah, and so, of course, in the individual modules
45:35
you can implement caching, of course, if you want to. You can, like, just like with, like, you have no limitations
45:44
in what you can implement within a module. It's just a Blazor component
45:49
Yeah. You can take advantage of all of the C Sharp classes that exist in .NET
45:54
So you can obviously use caching for those scenarios, which are very sort of high traffic or high volume
46:04
It's funny because we would often get this question even back with DNN, right
46:09
It's like, I want to build a site like Facebook that supports millions and millions of viewers
46:14
Can your open source project support it? Like, really, is that what you're expecting
46:19
typically when you get into like building sites like facebook right you're getting into a whole
46:27
other realm of like performance tuning and sharding and like those sites have a whole
46:35
other level of performance requirements right that that a typical site does not have right so
46:41
Right. Yeah. So obviously there is ways to make things run and behave like in a more scalable manner, like in my work, like in my day to day job
46:57
Right. That those are the types of systems that we're having to build for enterprise clients
47:01
And now you have to look at it from a completely different perspective. Yeah. So my friend Mark asks, are there big name companies looking at Octane right now, like, for example, Microsoft
47:16
So looking at it from, I'm not sure which perspective, but I mean, there's definitely a lot of implementations of Octane going on by a lot of different companies, whether they're, you know, large or mid or small
47:34
Yeah, I guess that's sort of like information. And that is one of the things, I guess, with open source projects that we even run into with DNN, is you don't always know who's using the software and for what purposes
47:50
Only if they become sort of regular members of your community, right
47:55
And they participate and they sort of explain to you how they're using the software
48:00
because there's a lot of usage, especially of Blazor, I've found that's happening for intranets
48:07
right, like inside companies, not for public-facing usage. And so you have no idea
48:12
what people are using the software for. So it's a difficult question to answer
48:22
Yeah, I bet. While you were talking about that, I was going, you know, you should put like a little
48:28
hidden tag at the beginning of the page and then just search websites and look for those tags
48:33
but we don't need to talk about that. My friend also, my friend Mark wants to know
48:40
can you talk about your experience developing in Blazor? Did that make your life easier
48:47
Yeah. So I'm going to admit, I'm not a very good JavaScript developer
48:54
Me neither. Sure. So, yeah, so my, because I mean, my, my, my past development was all based on server side, right? And so the transition to single page applications, I was, I always felt way more comfortable on the back end, I could sort of fudge my way through the front end, but I was, I never felt like I was really great at it
49:17
um so when blazer came along and and i realized that i could build you know native c sharp
49:24
components for the front end using all the skills that i used in the back end yeah i mean i felt it
49:32
was a lot more comfortable for me and i could do a lot more creative things that i wasn't able to do
49:39
that being said there's like scenarios in blazer that are not really natively supported when you're
49:47
doing, you know, like strictly front end development. Like if you need to manipulate the DOM, right
49:54
Explicitly then, and there are scenarios where you need to do that. Then you still need to write the JavaScript and create the interop
50:02
And actually, you know, there is, there is JavaScript that's in use within Octane
50:07
Like even what I just described where as you, as I'm flipping from
50:12
from one page to the other and the CSS references on the page are being
50:16
swapped, that's, of course, manipulating the DOM, right? It's manipulating elements in the head of the page
50:22
and that's using JavaScript, right? Yeah, yeah. But for the most part, I find that I don't need to resort
50:29
to using JavaScript. Mostly, I can focus on building things with native C Sharp
50:38
Yeah, and I feel exactly the way you do because, you know, around 14 years ago, I kind of decided to
50:47
when I saw things in our world getting more complicated on the front end and back end, I decided
50:53
well, I got to pick one side. And so I picked the back end too. And I think I felt a lot like you did
50:59
when I first saw Blazer going, what, I can actually do front end work
51:03
and not do freaking JavaScript anymore? I'm a happy camper. Because I, on purpose, have not really learned JavaScript
51:10
because I never wanted to use it. Right. You know, coming from, you know, a structured programming language like I have
51:19
you know, starting, you know, with VB, you know, JavaScript just rubs me wrong
51:25
And so I've on purpose have kind of stayed out of it and let other people write it
51:29
and let me do the back end stuff. Yeah. Yeah. Yeah. At the same time, I guess you, you, so you, I think you probably were the same as me
51:38
felt really comfortable creating applications in either web forms or MBC or even user pages
51:46
right? All these service technologies. But I was always a bit jealous because the single page application model produced such
51:54
a much better user experience. So the fact that you can now do that and still utilize those back end development techniques
52:07
is really powerful. Yeah, yeah. And the last question I'm going to ask
52:15
because it's the last one to say anyway, but we're kind of running short on time
52:20
And that's from our fearless leader Mahesh. He says how can we bring more awareness to this project and maybe present at the C Sharp Corner annual conference So he kind of inviting you to come to India with us and present in India So
52:36
how can we bring more awareness to Octane? I mean, I would be honored to be able to
52:47
participate in the conference. I actually have travel restrictions. I can't leave the United
52:53
States at the moment because I'm in the final stages of a green card. I put that in air quotes because it's final stage
53:00
It's been like two years already that I've been able to leave the US
53:05
And I'm not complaining. I'm very happy in Florida, but it prevents me from traveling to places like India at the moment
53:13
So I could join virtually. But at the same time, I think it would be good to even have at some point a Octane focused
53:22
conference. I think that there is enough around it, and probably a
53:27
virtual conference to begin with, so that people around the world could all
53:30
participate in it. But that's sort of, I think, a next step
53:35
of creating some more awareness. It's interesting that, so DNN, .NET Nuke, achieved
53:44
very widespread awareness and adoption. And that was partly because I think it was a very good framework for the types of applications that people were building at the time
53:59
And it scratched an itch and it filled a gap, which ASP.NET didn't fill at that point in time
54:07
But at the same time, Microsoft was a great advocate and partner
54:11
They included prominent links to .NET Nuke on some of their sites
54:18
In fact, to the point where people actually thought .NET Nuke was a Microsoft product
54:22
we actually were able to participate in Microsoft conferences. Like there was a conference in Vegas that happened every year, DevConnections
54:32
where .NET was featured alongside SharePoint and other technologies, right? That type of awareness is really hard to come by
54:44
I don't think Microsoft does not advocate for individual, like for third-party solutions anymore
54:52
that I've seen in that same way. So it's much harder to get the awareness
54:58
that we got with .NET Nuke. Well, of course I knew Mahesh was going to say this
55:05
but now he wants to do one in Florida this year in the winter so he can leave the snow
55:12
and come down to sunny Florida. So there you go, Mahesh, let's do it
55:17
Okay, well, let's talk. I think it's a good idea. I'll be the emcee
55:21
And by then I'll have some Octane experience under my belt. Maybe I can do a session too
55:26
And yeah, let's do it. I'm more than willing to go pretty much anywhere if someone's paying for it, not me
55:35
Actually, I manage the palmbeach.net user group. Oh, cool. We haven't actually had events recently
55:43
So that would maybe help me sort of get that group back moving
55:48
back moving. And it's easier to do that now that people can actually get together in person
55:52
Sure, sure. And even doing a virtual one would be a great idea too, Mahesh. So
55:56
you know, that'd be great too. I think doing those conferences would be an awesome way to
56:03
you know, promote Octane. And, you know, I made a mental note, not that I'll remember it
56:09
but I made a mental note that next time I talk to Scott, I'm going to say, Scott
56:14
you need to put the ability to create a blazer site in octane from visual studio that's what you
56:20
need to do because i know they won't do it but i'm saying you know if visual studio gave you that
56:27
capability the same capability that octane that you showed us even today that would be amazing i
56:35
think it'll be a big win for uh visual studio as long as you get paid for your uh trouble and time
56:40
of course. But oh, my friend Mark says, thanks for the introduction, Octane, great show. Yay
56:46
because I know Mark is learning Blazor right now. So and he's been pinging me with questions. So
56:52
maybe after this, he'll stop pinging me. So much like sort of what you were talking about with your
57:00
open source margin, like project. I think that if someone's getting started with Blazor
57:09
and they want to see a lot of examples of how to do different things in Blazor
57:14
Octane's a great example, right? If you pull down the source code and you can see a lot of very creative use cases, right
57:20
that have been developed already and you can use those as an example. So even if you don't plan on launching an application using Octane as the framework
57:31
it can be very educational just to look at the code. Yeah, and now you gave me an idea that I'm going to probably regret
57:40
But Mahesh, for the C Sharp Corner Conference in October, I will be more than willing to do an Octane session to show everybody there
57:50
if Sean can't make it because of his green card. I'm more than willing to do a session on Octane because that's how much I like it
57:57
So there you go, Mahesh. I said it publicly. I'm bound to it now
58:03
so I can't get out of it. I do this every once in a while, but I'd be more than willing to show it
58:11
Have you been to India before? Yeah, I've been three times in a row before pandemic hit
58:19
I actually have never been to India, and it's strange because I'm part of a, like Cognizant is
58:25
a very, like it has its roots in India, right? I think it actually has 200,000 employees in India
58:30
So I was actually supposed to go this summer, but I, again, I couldn't because of my travel restrictions
58:37
So someday I would really like to see India. And another point, you mentioned at the beginning of the show, offering support for Ukraine
58:47
We actually have a studio in Ukraine. I've been to Levin a couple of times
58:52
Luckily, they haven't been. That's where I've been. Yeah. Yeah. So luckily that city hasn't been directly impacted
58:58
Right. However, the people, of course, have been impacted. Their whole way of life had been disrupted
59:02
So I'm glad you called it out. Like, it's very terrible what's happened over there
59:08
I know. A lot of good friends and colleagues that, you know, it's just, I can't imagine going from like a normal way of life to what they're going through now
59:19
Yeah. I don't think most Americans can really wrap their head around that
59:23
And luckily, you know, I've checked in on all my friends there and they're all still here
59:28
So I'm really grateful that all my friends are still here. But, you know, those friends, of course, because I visited Lviv, are more on Lviv's side
59:35
And so Lviv hasn't been hit too much. But, you know, it could be next, you know
59:41
And when I saw them, you know, bombing buildings and stuff, I go, you better not bomb the opera house in Lviv
59:48
That's all I'm saying. I like that place. So I want to go back to it. Now there's some very beautiful architecture in Lviv. Yeah
59:55
Yeah. So I got to let you go because we're almost out of time
1:00:00
so much for being on the show today and spending part of your Saturday. I'm excited about using
1:00:05
Octane. And for me to say that, that has to be good, right? Because I have very high standards
1:00:12
And so I'm excited about starting to use Octane now that I have an idea in my head
1:00:17
And maybe with Mahesh, with his company, I might start using it too. So I'm so glad you've been
1:00:23
here. You're welcome to come back anytime you want, especially around the .NET 7 release time
1:00:28
if you want to show the Maui stuff, that'd be awesome to come back on the show and show that
1:00:36
And just let me know. Just let me know. I can schedule you on the show anytime you want
1:00:41
Okay, cool. I appreciate it. Thank you. Thanks so much for spending some time with us today
1:00:45
I really enjoyed this session. Thank you. Thanks. Well, that was a great session from Sean
1:00:54
You guys can't feel how I'm excited that I am about Octane because if you've been around the web as long as I have
1:01:00
I've been writing websites since 1994, seeing a framework like Octane that will alleviate you
1:01:08
from doing all the boring, mundane stuff that we all have to do when we create a web from scratch
1:01:15
Octane's the ticket. And I'm not aware if there's any other frameworks
1:01:20
like Octane out there. If anybody knows, let me know. So any other thing I didn't get to talk to Sean and maybe we'll talk about next time is I think they're going to offer the ability to do like paid modules
1:01:34
So you can actually create modules and actually sell them and have them come through Octane
1:01:41
We ran out of time. I want to talk to him about that. So we'll talk to him about that next time
1:01:46
So I hope you like Sean and let me know if you did and I'll have him back on as soon as he wants to
1:01:53
So we got a couple more slides. Don't leave yet. What happened Good old PowerPoint Never fails to disappoint sometimes
1:02:12
So there you go. Don't forget to pick up a copy of Rock Your Code
1:02:18
Coding Standards for Microsoft.net. It's the only pure coding standards out there
1:02:24
And I'm writing an article about this right now. You know, most companies I go to either have zero coding standards or very little poorly documented coding standards
1:02:34
So I've done all the long. This book has been around for 17 years now
1:02:42
Wow. 17. Yeah. 17 years. I can't believe it. So I hope you'll pick up a copy to jumpstart your team and your coding standards and let me know if you do it
1:02:57
I appreciate it. I found this, somebody posted this this week, which you all know I love working from home
1:03:05
There's so many great benefits from working from home. And this kind of shows you why
1:03:09
You can see at the left-hand side, all this, you do very little working at work, which is I totally agree with
1:03:16
When I'm in an office, it's really hard for me to get any actual work done
1:03:22
But at home, pretty much all eight hours of the day I'm working
1:03:27
And so that's another benefit from working from home. From those of you, those companies out there that don't embrace this, which unfortunately some companies are sliding back to their old ways
1:03:37
And that saddens me. um also please don't forget to help me help the kids in india uh i have a gofundme page
1:03:47
uh to help the kids in india i've did donated money um so all the money has been donated to
1:03:53
the page i've already donated to the voice of slum in india so you can do that uh you can also
1:03:59
buy my code performance book 100 of the proceeds of my code performance book goes to the voice of slum to keep their vocational training going Or you can just go to voiceofslum and donate and buy school supplies and things like that for
1:04:14
the kids directly, because they all need school supplies ranging from clothing to, you know
1:04:20
actual notepads and pencils and things like that. So I'm really, I really want to go back and see
1:04:27
the Voice of Slum when I'm there in October. Mahesh and Simon, I want to go back for sure when I'm
1:04:33
there and to see how things have improved there, hopefully for the kids there in India
1:04:39
because they really need our support. These kids I visited, you know, they don't have
1:04:44
the opportunities like we do here in America. And so we need to, we have the ability as software
1:04:51
engineers to help these kids out. And so I hope that you'll do that. All right. So thanks for
1:04:57
watching no show next week. We'll be back in a, in a week. Also don't forget about the code quality
1:05:06
conference on August 19th. Go to the website now to submit your papers or to register. Okay. I want
1:05:14
this to be bigger than 72,000 like we had last, last year. Also don't forget to be safe about COVID
1:05:22
Sean and I were talking about this right before the show. You know, COVID numbers in America
1:05:27
ticking up i'm not sure about other countries but definitely things are ticking up a little bit here
1:05:32
in america so please be safe mehesh recently got covid so um it's not done with us yet uh i think
1:05:39
it'll be a very long time uh that it will be so please please be safe uh because i want you to
1:05:46
come watch the show or see us live in india soon uh on top of that please also make sure you donate
1:05:53
blood at your local blood bank. All the blood banks have shortages and they need your help
1:05:59
not only for COVID, but for normal stuff too. I'm donating tomorrow, so my feeling is if I can sit in
1:06:06
a chair for two hours and donate platelets and plasma you can sit in the chair for 30 minutes and donate whole blood it really easy it relatively painless and it makes you feel like a better human because you
1:06:20
helping out at least three more humans just from one donation so i think that's cool in my book
1:06:28
all right thanks for watching today uh i hope you learned a lot about octane and some about blazer
1:06:35
And if you have any suggestions for the show, who you want me to be on the show, things like that
1:06:41
please, please email me at rockintocodeworld.csharpcorner.com. And with that, I'll see you in a couple of weeks
1:07:05
Thank you
1:07:35
Thank you
1:08:05
Thank you
#Development Tools
#Windows & .NET
#Open Source


