| Topic | Presenter | Summary | Duration | Tags | Certification Quiz | Captions |
|---|---|---|---|---|---|---|
| CEF: Architecture | Chris Black | In this video, Chris Black gives a high-level overview of the CEF architecture. | 1:02:21 | Onboarding: Intro to CEF Architecture | CEF Architecture_AutoGeneratedCaption.txt |
00:00:00.290 --> 00:00:05.176 - Alright, so let me make sure I'm connected to the VPN and I think
00:00:05.176 --> 00:00:09.364 - I should be good. So uh, basically what I'm going to do
00:00:09.364 --> 00:00:14.250 - is just a log into one of our servers where we host like most
00:00:14.250 --> 00:00:20.462 - of our. Staging websites and um, QA sites and all that stuff and
00:00:20.462 --> 00:00:21.788 - just open up.
00:00:23.550 --> 00:00:27.970 - Some of our codebase here, you can kind of tell that I was.
00:00:28.890 --> 00:00:30.898 - Working on sequel already.
00:00:31.490 --> 00:00:36.962 - So what I'll do is I'll go to just a a standard.
00:00:37.820 --> 00:00:44.324 - Website, I think, uh, let's see who's on
00:00:44.324 --> 00:00:51.640 - 2020.1 thanks. It's probably so you'll notice that all of our
00:00:51.640 --> 00:00:53.230 - structures for our.
00:00:53.230 --> 00:00:58.186 - For our site setup is going to be your local PC C drive data
00:00:58.186 --> 00:01:03.142 - projects IFA. We do this for a couple of reasons but one of the
00:01:03.142 --> 00:01:07.390 - big ones is just that you know just to keep everything uniform.
00:01:08.070 --> 00:01:12.191 - And then other reasons are just kind of having it low enough for
00:01:12.191 --> 00:01:15.361 - IIS and SQL Server and everything else like that. But
00:01:15.361 --> 00:01:18.531 - the biggest thing is just conformity, just to make sure
00:01:18.531 --> 00:01:22.335 - that everything so that you know the exact same way. So whether
00:01:22.335 --> 00:01:25.822 - you go to a production environment where we set up our
00:01:25.822 --> 00:01:30.260 - solution or if you go to this server or sequel be or sequel a
00:01:30.260 --> 00:01:34.064 - or whichever you're always going to see this kind of setup, and
00:01:34.064 --> 00:01:37.551 - this is definitely the way that you should have your local
00:01:37.551 --> 00:01:38.819 - computer setup as well.
00:01:38.860 --> 00:01:43.312 - Uh, you know, just in case anybody is helping you or you
00:01:43.312 --> 00:01:48.506 - know anything like that, so this will just fit up fit with like a
00:01:48.506 --> 00:01:52.216 - typical site setup. But yeah, basically based. It'll be C
00:01:52.216 --> 00:01:54.071 - drive data and your projects.
00:01:54.640 --> 00:01:59.905 - Until we have quite a bit of projects on the server and then
00:01:59.905 --> 00:02:04.765 - you'll see a little bit different set up here on DF. Oh
00:02:04.765 --> 00:02:09.220 - because we have stage and then this is like an interesting
00:02:09.220 --> 00:02:14.485 - setup. We won't really go into too much but they have like a
00:02:14.485 --> 00:02:18.535 - main site and then sub dealer sites which are different
00:02:18.535 --> 00:02:22.180 - versions of stuff for the clarity E Commerce framework,
00:02:22.180 --> 00:02:25.420 - platform running. But they're sharing the same database.
00:02:25.450 --> 00:02:29.366 - OK, and that can get. I mean pretty, pretty wild and
00:02:29.366 --> 00:02:33.994 - confusing, so will kind of just skip over that for now. So this
00:02:33.994 --> 00:02:37.910 - is a staging site. We just recently back this stuff, so
00:02:37.910 --> 00:02:42.182 - typically you won't see this here at all this dot old or
00:02:42.182 --> 00:02:46.810 - whichever. We just need to move that. Now this is just to get
00:02:46.810 --> 00:02:51.438 - set up really quickly for a client and we had to revert some
00:02:51.438 --> 00:02:55.880 - files. In the history was rather long because we had to
00:02:55.880 --> 00:03:00.885 - incorporate a whole lot of fixes into it so we could easily find
00:03:00.885 --> 00:03:05.120 - the commit hash to revert it too. But basically what you're
00:03:05.120 --> 00:03:10.125 - going to see here is just two to three folders. You'll see your
00:03:10.125 --> 00:03:14.360 - web folder and your stuff folder, so this is your DNN
00:03:14.360 --> 00:03:18.980 - project and will kind of just jump into here really quick an
00:03:18.980 --> 00:03:23.600 - under here you'll see, you know, just some basic stuff like your.
00:03:23.610 --> 00:03:27.100 - Get folder which are probably familiar with and then just
00:03:27.100 --> 00:03:31.288 - going over some DNS basics that I know you've been watching all
00:03:31.288 --> 00:03:35.476 - the DNA in hero movies or movies, videos and all that bit
00:03:35.476 --> 00:03:39.664 - so you'll have some stuff that you won't really touch a whole
00:03:39.664 --> 00:03:43.503 - lot like you're probably not going to touch licenses a whole
00:03:43.503 --> 00:03:46.644 - lot. This is just licenses for installing anything like.
00:03:47.390 --> 00:03:51.854 - You know, I mean, there's some stuff for like jQuery in here,
00:03:51.854 --> 00:03:55.946 - and we've seen which is like a, uh, an algorithmically search
00:03:55.946 --> 00:04:00.410 - for like the built in DNS search. Or if you're using like
00:04:00.410 --> 00:04:04.874 - you know, DN sharp search boost. It'll use these kind of stuff
00:04:04.874 --> 00:04:09.710 - everything in here but you won't go in there a whole lot. That's
00:04:09.710 --> 00:04:14.546 - just for where DNA in kind of shows all your all your licenses
00:04:14.546 --> 00:04:17.150 - and then the big one that you'll
00:04:17.150 --> 00:04:23.200 - notice on. DNN is desktop modules, so 40 fingers is like a
00:04:23.200 --> 00:04:28.843 - Styler Helper module that we always like to install. DDR menu
00:04:28.843 --> 00:04:33.460 - isanother.net DNN menu template to kind of help us
00:04:33.460 --> 00:04:38.077 - programmatically make DNN skin object menus and stuff like
00:04:38.077 --> 00:04:45.259 - that, and will kind of jump into a little bit of that later on.
00:04:45.259 --> 00:04:48.337 - And then we like to put.
00:04:48.340 --> 00:04:51.730 - Just stuff like razor modules and stuff here. Anything that
00:04:51.730 --> 00:04:55.798 - you install like deenen sharp like action form is a huge one
00:04:55.798 --> 00:05:00.544 - that we use all the time. That will be in here as well where
00:05:00.544 --> 00:05:04.273 - you can make your different templates and stuff like that if
00:05:04.273 --> 00:05:07.663 - need be for like customizations. You'll notice that we have
00:05:07.663 --> 00:05:11.053 - clarity E Commerce in here as well. Because interesting Lee,
00:05:11.053 --> 00:05:15.121 - we're unclear to E Commerce as a desktop module, indianen as like
00:05:15.121 --> 00:05:18.511 - basically like a way to have access to our application.
00:05:18.670 --> 00:05:23.506 - So you'll see that kind of you know in here as well.
00:05:24.010 --> 00:05:29.002 - And then it's kind of rolling through it. The rest of this
00:05:29.002 --> 00:05:34.410 - you're not going to pay a whole lot of attention to, uhm, you
00:05:34.410 --> 00:05:38.986 - know there's some stock like DNN JavaScript, and here you'll have
00:05:38.986 --> 00:05:41.066 - some stock deenen providers here
00:05:41.066 --> 00:05:45.959 - as well. And then like all your you know, your default aspx file
00:05:45.959 --> 00:05:49.149 - as far as likeyouknow.net is concerned is basically like your
00:05:49.149 --> 00:05:53.296 - index HTML. If you think about it that way, it's just an entry
00:05:53.296 --> 00:05:56.805 - point into your website and that's it. And then all the
00:05:56.805 --> 00:06:00.314 - basic stuff like your little fabric on and then your configs
00:06:00.314 --> 00:06:03.823 - we Scroll down a little bit further. You'll see our web
00:06:03.823 --> 00:06:07.651 - config and then you'll see that that's actually a part of source
00:06:07.651 --> 00:06:11.479 - control, so you see the nice little green check mark and all
00:06:11.479 --> 00:06:14.734 - these like little. Green check marks here. You'll know you're
00:06:14.734 --> 00:06:18.276 - noticing these come from tortoise git. I'm not a huge fan
00:06:18.276 --> 00:06:21.818 - of tortoise kit, but it does have some nice features. Some
00:06:21.818 --> 00:06:26.004 - people like GUI's when it comes to get. I just rely on command
00:06:26.004 --> 00:06:30.190 - line. I'm just the way that I learned. It helps me a little
00:06:30.190 --> 00:06:34.054 - bit better, but feel free to use whatever you want, but whenever
00:06:34.054 --> 00:06:37.274 - you come into an environment like this, you'll notice like
00:06:37.274 --> 00:06:40.816 - you know towards it has all these nice little green check
00:06:40.816 --> 00:06:43.714 - boxes and you can access tortoise git just by.
00:06:43.730 --> 00:06:45.038 - Um, right clicking.
00:06:45.740 --> 00:06:50.012 - You can see all the different you know commands that you have
00:06:50.012 --> 00:06:54.640 - and it just provides us nice little GUI too it. It's kind of
00:06:54.640 --> 00:06:58.556 - built into windows, which is nice, so you can, you know.
00:06:59.110 --> 00:07:03.550 - Pull fetch, push, show the diff between you know commits do get
00:07:03.550 --> 00:07:08.360 - blamed to see, kind of who made what changes and all that stuff
00:07:08.360 --> 00:07:12.430 - you know. Make your commits. Which branches all that good fun
00:07:12.430 --> 00:07:16.130 - stuff that you're used to Justin. This nice little GUI.
00:07:16.690 --> 00:07:21.747 - And then yeah, so will take a look at this web config really
00:07:21.747 --> 00:07:26.026 - quick. Just an XML doc. Basically it has a bunch of
00:07:26.026 --> 00:07:29.138 - stuff that you'll probably never touch in it.
00:07:29.160 --> 00:07:34.410 - I, I mean, it's pretty basic. Uh, so if you have like any kind
00:07:34.410 --> 00:07:38.535 - of like you know 301 redirects or anything, you could find
00:07:38.535 --> 00:07:43.785 - those in here. If they're not in IIS, IIS will shove them in here
00:07:43.785 --> 00:07:47.160 - as well though. But you know anytime you like.
00:07:47.750 --> 00:07:52.469 - You know Adam module or adenan like a module from the front end
00:07:52.469 --> 00:07:56.825 - from like the actual like DNN site. It will inject some stuff
00:07:56.825 --> 00:08:01.181 - into here but again like unless you're doing a lot of surgery
00:08:01.181 --> 00:08:05.537 - you will probably never really touch this file too much. As far
00:08:05.537 --> 00:08:09.530 - as like Seth's concerned. The big one that you'll be paying
00:08:09.530 --> 00:08:13.160 - attention to is the just the web connection strings config.
00:08:16.930 --> 00:08:21.634 - And then this just has some really basic stuff. You can see
00:08:21.634 --> 00:08:25.946 - that you know we're just pointing it basically at our SQL
00:08:25.946 --> 00:08:30.650 - be server and then the SMS instances SQL 2016 or less, the
00:08:30.650 --> 00:08:34.570 - SQL Server instance I should say, and then the initial
00:08:34.570 --> 00:08:38.490 - catalogs that database it's pointing at. And then we're just
00:08:38.490 --> 00:08:42.802 - logging in with our SQL login and password. Just some some
00:08:42.802 --> 00:08:44.370 - really basic stuff here.
00:08:45.150 --> 00:08:49.077 - And then kind of, you know, going down pretty quickly into
00:08:49.077 --> 00:08:53.718 - this. Let's see if I can scroll up. It's a little laggy with
00:08:53.718 --> 00:08:59.120 - the. Teams viewer all right. There we go or the teams a video
00:08:59.120 --> 00:09:00.230 - I should say.
00:09:00.950 --> 00:09:06.032 - Cool, so here's where the actual site is going to be, and a lot
00:09:06.032 --> 00:09:11.477 - of the work, so this is going to be with DNN. You can start a
00:09:11.477 --> 00:09:15.470 - bunch of different portals in portals, can be their own site
00:09:15.470 --> 00:09:19.826 - or sub domain basically. So if you see like 36 portals there
00:09:19.826 --> 00:09:22.730 - will be like enterprise level sites that have.
00:09:23.390 --> 00:09:28.880 - 30 to 40 to 50 to you know 100 to 200. I mean. However, many
00:09:28.880 --> 00:09:32.540 - websites are subdomains. You want to run. That's what these
00:09:32.540 --> 00:09:36.932 - will be, but all the shared content will under be be under
00:09:36.932 --> 00:09:40.592 - the underscore default things. So the biggest thing that you're
00:09:40.592 --> 00:09:45.716 - going to work in here is going to be under your skins and then
00:09:45.716 --> 00:09:50.108 - you'll see that we have the client skin here and then. The
00:09:50.108 --> 00:09:53.768 - clarity admin skins as well and will kind of talk.
00:09:53.820 --> 00:09:59.228 - On these, just in a second and why we have these separated out.
00:09:59.228 --> 00:10:04.220 - But basically the client skin is just going to have you know
00:10:04.220 --> 00:10:09.212 - images which are going to be, you know, just sight assets for
00:10:09.212 --> 00:10:13.923 - that site. Fonts, JavaScript that will be for the site and
00:10:13.923 --> 00:10:19.047 - then all of our different skins here, so anything with the SDX
00:10:19.047 --> 00:10:24.171 - will be a.net skin for the site and then you could actually
00:10:24.171 --> 00:10:26.733 - select this skin in the DNN.
00:10:26.770 --> 00:10:31.660 - Admin UI to if you create a new page and you could say Well you
00:10:31.660 --> 00:10:36.224 - know what skin do you want it use? Well we have this. If you
00:10:36.224 --> 00:10:40.462 - think about it like a WordPress sense I guess. Or any other CMS
00:10:40.462 --> 00:10:45.026 - thing it will be more like along the lines of a theme. So this
00:10:45.026 --> 00:10:48.938 - sifu folder here is a theme for the site. So like this
00:10:48.938 --> 00:10:52.524 - sextillion is a theme clarity admin to theme. Will see if
00:10:52.524 --> 00:10:56.762 - there's a theme but we just call him skins in the DNN world.
00:10:56.850 --> 00:11:01.370 - And that's more like a net term, I should say.
00:11:01.370 --> 00:11:05.430 - So that's basically it. You can see we're bringing bootstrap
00:11:05.430 --> 00:11:11.114 - push at mobile NAV and all that good fun stuff. And then this E
00:11:11.114 --> 00:11:15.580 - Commerce thing is what's called an override route and will kind
00:11:15.580 --> 00:11:21.670 - of jump into that here in just a second as well. So I'll go back
00:11:21.670 --> 00:11:27.760 - to the root of our folder and then I'm going to open this as a
00:11:27.760 --> 00:11:30.285 - solution. And this will be the
00:11:30.285 --> 00:11:34.280 - back end. And then I'm also going to open this UI code
00:11:34.280 --> 00:11:37.558 - workspace here, and this will probably take just a second to
00:11:37.558 --> 00:11:39.346 - open. And if you have any
00:11:39.346 --> 00:11:45.758 - questions so far. Not really, I I did have a question about
00:11:45.758 --> 00:11:47.926 - Visual Studio versus Visual
00:11:47.926 --> 00:11:50.412 - Studio Code. Oh sure, right guys
00:11:50.412 --> 00:11:54.871 - shoot. Or really just which one in my role. I'm not completely
00:11:54.871 --> 00:11:57.781 - clear about what the big differences between the two and
00:11:57.781 --> 00:12:01.564 - I was just curious which one I would be working more in, or
00:12:01.564 --> 00:12:05.347 - which one would be more suitable to work more and for the role
00:12:05.347 --> 00:12:11.132 - that I'm doing. Yeah, I think it's just about personal
00:12:11.132 --> 00:12:15.024 - preference. Honestly, I personally use Vscode. Visual
00:12:15.024 --> 00:12:21.696 - Studio is like an entire IDE. Sweet say you have like all
00:12:21.696 --> 00:12:26.700 - these intense like Intellisense things built in for it.
00:12:26.700 --> 00:12:32.880 - But basically, uh VS code is just a code editor, so for
00:12:32.880 --> 00:12:39.060 - instance in Visual Studio 2019 you can compile C files and all
00:12:39.060 --> 00:12:42.665 - that fun stuff. Where in VS code
00:12:42.665 --> 00:12:47.690 - you can't. You know, it's just strictly a. You can look at
00:12:47.690 --> 00:12:52.864 - coding edit code. I think about it like you know, just a basic
00:12:52.864 --> 00:12:57.242 - editor where visual studios like an entire suite where you can
00:12:57.242 --> 00:12:59.630 - include new get packages for C.
00:12:59.660 --> 00:13:02.606 - And basically it has its own,
00:13:02.606 --> 00:13:04.530 - uh. You know?
00:13:05.840 --> 00:13:10.484 - Uh, interface for like the new get package manager.
00:13:11.010 --> 00:13:15.490 - And I mean it's just a whole lot of stuff that you probably won't
00:13:15.490 --> 00:13:19.970 - use out of the gate for front end. It's more of like a back
00:13:19.970 --> 00:13:23.490 - end ID sweet, but it's really helpful for typescript as well.
00:13:23.490 --> 00:13:25.410 - I mean, if you like it.
00:13:25.450 --> 00:13:31.390 - Typically only edit typescript and stuff like that in VS
00:13:31.390 --> 00:13:37.924 - code, but that's basically it. OK, so this is a Visual
00:13:37.924 --> 00:13:42.350 - Studio Suite. You'll notice that we have several different
00:13:42.350 --> 00:13:47.870 - folders here. It kind of breaks it down from our projects, and
00:13:47.870 --> 00:13:52.470 - these are all C projects I should say as well.
00:13:52.480 --> 00:13:58.105 - So it breaks it down all the way from the core layer to the data
00:13:58.105 --> 00:14:02.230 - access layer to building out our interface is an typescript. We
00:14:02.230 --> 00:14:06.730 - use those interfaces as types to kind of have that type safety
00:14:06.730 --> 00:14:11.605 - for us and a lot of this stuff. You're probably not going to
00:14:11.605 --> 00:14:16.105 - jump into for the next several months, or you might not ever
00:14:16.105 --> 00:14:20.980 - jump into it, but you know, I like to jump into our service
00:14:20.980 --> 00:14:22.480 - layer for our API.
00:14:22.490 --> 00:14:26.774 - And you can attach on the back end and jump into a workflow to
00:14:26.774 --> 00:14:30.446 - see how you know data is processed and stuff like that to
00:14:30.446 --> 00:14:34.730 - say, hey like, is this broken on the front end or am I handing
00:14:34.730 --> 00:14:38.096 - the correct you know interface over to the correct DTO? I
00:14:38.096 --> 00:14:42.074 - should say over the back end to make sure that this is being
00:14:42.074 --> 00:14:45.746 - processed correctly. So is it broken on the front end? Now I
00:14:45.746 --> 00:14:49.418 - see that I'm attached to the back end and you know I'm
00:14:49.418 --> 00:14:51.866 - actually handing over all the correct information that
00:14:51.866 --> 00:14:53.090 - workflow might be broken.
00:14:53.150 --> 00:14:55.598 - You know on the back end or something like that. If there's
00:14:55.598 --> 00:14:57.026 - a bug or you know something like
00:14:57.026 --> 00:15:01.385 - that, but. Basically, you will touch this a little bit whenever
00:15:01.385 --> 00:15:05.645 - you're setting up a solution. UM, Ann will kind of jump into
00:15:05.645 --> 00:15:09.905 - that just a little bit, but the only thing you'll really touch
00:15:09.905 --> 00:15:13.810 - here, as you'll see that there's a project for our solution,
00:15:13.810 --> 00:15:15.585 - items, say folder for our
00:15:15.585 --> 00:15:18.630 - solution items. Big files here or app settings config?
00:15:18.630 --> 00:15:21.930 - Uhm, so you know you'll have your plugins path your
00:15:21.930 --> 00:15:25.230 - uploads, files, path and stuff like that and see that.
00:15:25.230 --> 00:15:28.860 - See data projects, IFA and then this is going to be
00:15:28.860 --> 00:15:32.160 - pointed at your self project plugins folder. This will be
00:15:32.160 --> 00:15:36.120 - pointed at your images here and we can talk on that a
00:15:36.120 --> 00:15:39.420 - little bit later on as well and how that works.
00:15:40.770 --> 00:15:46.171 - And then basically your SCO sitemaps. And what this does is
00:15:46.171 --> 00:15:52.554 - it cooks out a XML file for your site Maps for, you know.
00:15:52.570 --> 00:15:56.610 - Google, like SCO friendly stuff. So whenever Google like accesses
00:15:56.610 --> 00:16:01.862 - your site, it will look for a site map and that'll help it.
00:16:01.862 --> 00:16:07.114 - You know, populate in Croel a little bit so you can show more
00:16:07.114 --> 00:16:09.942 - organically. If anybody searching for something right?
00:16:09.970 --> 00:16:13.584 - Has quite a bit of info in it, like anything from products to
00:16:13.584 --> 00:16:17.198 - not just the site map, but it has like product data and all
00:16:17.198 --> 00:16:20.256 - that crazy stuff like we can configure that however we want
00:16:20.256 --> 00:16:22.202 - so Google can crawl our side a
00:16:22.202 --> 00:16:28.490 - little bit better. Uhm, and then this is for course, uh, kind of
00:16:28.490 --> 00:16:33.902 - here, um, you'll see that this origins ********* is just white
00:16:33.902 --> 00:16:39.314 - listing these two sites and then we have our resource *********
00:16:39.314 --> 00:16:42.266 - for cores that says Anything.clarityclient.com or
00:16:42.266 --> 00:16:48.662 - anything after it. So and then this is HTTPS and HTTP. So as
00:16:48.662 --> 00:16:54.074 - far as that goes with Corps you know, especially with Google
00:16:54.074 --> 00:16:58.758 - and. Other browsers kind of cracking down on that as well as
00:16:58.758 --> 00:17:02.916 - they are not going to allow anything to, you know, be
00:17:02.916 --> 00:17:06.696 - requested, inserted or injected into your website and less you
00:17:06.696 --> 00:17:11.610 - ********* it at the server level on the back end, and that's what
00:17:11.610 --> 00:17:15.768 - we're doing here is we set our sights up at clarityclient.com
00:17:15.768 --> 00:17:20.682 - and then make them a sub domain and then we actually assign our
00:17:20.682 --> 00:17:24.840 - SSL HTTPS search to our site in IIS so we could.
00:17:24.850 --> 00:17:28.810 - You know utilized at that secure
00:17:28.810 --> 00:17:34.190 - bit there. And then, uh, So what? We were kind of talking
00:17:34.190 --> 00:17:38.084 - about earlier is our override route. Uhm, so, uh, you'll see
00:17:38.084 --> 00:17:41.270 - that. That's here's their portals. Default skins, FIFA E
00:17:41.270 --> 00:17:45.164 - Commerce framework bit. And then I'll show you one more thing
00:17:45.164 --> 00:17:50.474 - that will apply to you. And then the rest of these, or just a lot
00:17:50.474 --> 00:17:55.430 - of summer like JS configs that we turn in, turn on and turn off
00:17:55.430 --> 00:17:59.324 - some stuff from the JavaScript side of things. But most of
00:17:59.324 --> 00:18:01.802 - these are keys for the back end.
00:18:01.870 --> 00:18:06.754 - Uh, with different values and stuff for like emails or you
00:18:06.754 --> 00:18:12.082 - know anything like that that can be injected into the C Sharp
00:18:12.082 --> 00:18:16.444 - application. So, uh, another thing that you'll pay attention
00:18:16.444 --> 00:18:22.000 - to. Here's this F gulp config JSON. So currently right now in
00:18:22.000 --> 00:18:24.315 - angular JS we're using gold
00:18:24.315 --> 00:18:29.056 - transportation. Like you know, a transpiler, I should say uhm.
00:18:29.056 --> 00:18:34.270 - And these are just are override roots here. And again, we'll
00:18:34.270 --> 00:18:40.906 - talk on this as well. Kind of building it up, but this will be
00:18:40.906 --> 00:18:42.328 - pretty pretty straightforward.
00:18:42.330 --> 00:18:46.698 - And that just helps with the build A and then, of course,
00:18:46.698 --> 00:18:50.338 - there's our connection strings, which for the back end will
00:18:50.338 --> 00:18:51.430 - point at our.
00:18:52.820 --> 00:18:57.212 - Database and then these are the credentials and then this is the
00:18:57.212 --> 00:19:01.604 - server that it's pointed at. This could be local as well. So
00:19:01.604 --> 00:19:05.996 - like on your local machine that will be like dot backslash SQL
00:19:05.996 --> 00:19:07.826 - 2016 instead of this server.
00:19:08.890 --> 00:19:13.202 - And there's a couple of other like settings like the Mail
00:19:13.202 --> 00:19:17.122 - settings config. You won't really mess with these SMTP bits
00:19:17.122 --> 00:19:21.826 - here. Too much yourself. Lot of the time you won't be using
00:19:21.826 --> 00:19:23.786 - emails and stuff like that.
00:19:24.330 --> 00:19:28.818 - And then the other big here is just this rewrite rewrite Maps
00:19:28.818 --> 00:19:32.932 - config so this is again the Cors ********* so we're explicitly
00:19:32.932 --> 00:19:36.672 - whitelisting this site. Here's the value for it. Here's the
00:19:36.672 --> 00:19:41.534 - key. Here is the value. Here's the key. Here is the value. Kind
00:19:41.534 --> 00:19:46.022 - of it, so it's just basic XML were just saying anything from
00:19:46.022 --> 00:19:49.762 - this website is cool. Anything from this website, school. And
00:19:49.762 --> 00:19:53.876 - then I think James has this wired up for. Just like
00:19:53.876 --> 00:19:57.502 - basically anything. With this, this Valley is going to be fine
00:19:57.502 --> 00:20:01.954 - and we put this in a couple of places. This is just the main
00:20:01.954 --> 00:20:06.406 - place that we put it. We also put it in the root of our
00:20:06.406 --> 00:20:09.268 - portals, default skins client folder, so that'll be basically
00:20:09.268 --> 00:20:13.720 - at the root of our theme. If you think about it like that now.
00:20:14.310 --> 00:20:21.042 - To jump over to a overrides in what that actually means so.
00:20:21.650 --> 00:20:27.620 - I have, uh, this uh VS code set up here and this is a workspace
00:20:27.620 --> 00:20:32.396 - and with the workspaces it's pretty easy to kind of you just
00:20:32.396 --> 00:20:37.570 - have this piece of JSON here that you can just say hey and
00:20:37.570 --> 00:20:42.346 - this workspace. These are my folders I want to open so you
00:20:42.346 --> 00:20:47.520 - can see that we have solution items and then this 08 UI and
00:20:47.520 --> 00:20:52.694 - then our 08 UI skins and then you can exclude like all these
00:20:52.694 --> 00:20:54.684 - files if you want to.
00:20:54.760 --> 00:20:59.272 - You can kind of set this up and read the documentation, but
00:20:59.272 --> 00:21:03.408 - basically what we keep in source control is just this standard
00:21:03.408 --> 00:21:08.296 - bit. So what this is going to open is the solution items for
00:21:08.296 --> 00:21:14.134 - self. And then our 08 UIA folder? Uh, in our project and
00:21:14.134 --> 00:21:19.222 - that's going to be our angular applications and then our 08 UI
00:21:19.222 --> 00:21:24.310 - skins which is going to be our actual themes and you'll notice
00:21:24.310 --> 00:21:31.756 - that earlier. Um, we were in our web folder, but if I go to the
00:21:31.756 --> 00:21:36.276 - 08, the stuff 08 clarity e-commerce UI skins, you'll see
00:21:36.276 --> 00:21:41.248 - that my folders actually here in that clarity and clarity admin
00:21:41.248 --> 00:21:42.604 - are actually here.
00:21:43.160 --> 00:21:49.375 - Right, So what we're actually doing is we're making a symbolic
00:21:49.375 --> 00:21:53.330 - link from our web folder to our,
00:21:53.330 --> 00:22:00.150 - uh. 708 UI skins and basically it's a really simple command.
00:22:00.150 --> 00:22:03.570 - Uhm so if I open CMD?
00:22:04.700 --> 00:22:05.880 - I run as admin.
00:22:07.090 --> 00:22:12.771 - All you have to do is to make a symbolic link is you
00:22:12.771 --> 00:22:18.015 - can say, and I'll make one really quick just so we can
00:22:18.015 --> 00:22:23.696 - see what we would be at. So if I go to my projects.
00:22:25.180 --> 00:22:33.780 - Portals.
00:22:37.340 --> 00:22:43.374 - Alright cool, so say I want a I want this as a theme available
00:22:43.374 --> 00:22:49.839 - in in that file or on the front end in the web folder right? So
00:22:49.839 --> 00:22:52.856 - I would just say Let's go ahead
00:22:52.856 --> 00:22:56.190 - and. Check this out as well.
00:22:57.380 --> 00:23:02.168 - So portals default skins are at cool, so we have clarity, admin
00:23:02.168 --> 00:23:05.759 - and seafood, and that's generally what you'll have is
00:23:05.759 --> 00:23:10.148 - clearly admin for one and then your clients clarity. The normal
00:23:10.148 --> 00:23:15.335 - clarity one is just the default if you think about it like that,
00:23:15.335 --> 00:23:19.724 - like out of the box stuff and then we'll build one
00:23:19.724 --> 00:23:24.113 - specifically for that client and then clearly admin is just on
00:23:24.113 --> 00:23:26.906 - the back end side of a clarity
00:23:26.906 --> 00:23:30.126 - administrator or. Serious F administrator, you know like
00:23:30.126 --> 00:23:34.878 - looking over quotes or orders or anything like that on the back
00:23:34.878 --> 00:23:40.422 - end of stuff. So say I want this symbolic link to point and I
00:23:40.422 --> 00:23:45.570 - want it to basically be a skin, but I don't necessarily want to
00:23:45.570 --> 00:23:50.718 - put that there because we keep all of our skins an are set
00:23:50.718 --> 00:23:53.490 - aside. So I will just make link.
00:23:54.060 --> 00:23:59.912 - Backslash D and whatever I want to call it, so I'll call it test
00:23:59.912 --> 00:24:04.928 - and then I'll post my actual link an this accepts 2 string
00:24:04.928 --> 00:24:09.526 - arguments, so first ones whatever you want to name it and
00:24:09.526 --> 00:24:14.542 - then the second one is the actual file path to the folder
00:24:14.542 --> 00:24:15.796 - so soon as.
00:24:16.830 --> 00:24:22.890 - I have incorrect syntax. What is it? Here might be D slash.
00:24:22.980 --> 00:24:25.870 - Life coding never goes well.
00:24:26.010 --> 00:24:29.838 - Pretty sure this is correct here. What are we doing? There
00:24:29.838 --> 00:24:34.014 - we go? I don't know what was different from the first one.
00:24:34.014 --> 00:24:38.190 - Oh, it's a forward slash into backslash. There you go. OK so
00:24:38.190 --> 00:24:42.714 - you can see that test is now in here in this folder, but
00:24:42.714 --> 00:24:46.890 - whenever I Click to it, it looks like it's here, but it's
00:24:46.890 --> 00:24:50.370 - actually just a symbolic link that's pointed at my other
00:24:50.370 --> 00:24:52.110 - folder, if that makes sense.
00:24:52.880 --> 00:24:56.795 - OK. And I'll just delete this
00:24:56.795 --> 00:24:58.290 - guy here. Cool.
00:24:59.540 --> 00:25:00.820 - All right?
00:25:01.870 --> 00:25:06.262 - So as far as our angular applications go, um, and you can
00:25:06.262 --> 00:25:10.288 - see that our project also opened up all those skins here.
00:25:11.250 --> 00:25:16.002 - But what kind of talk about the, uh, angular applications? So
00:25:16.002 --> 00:25:21.186 - we're going to open up our 08 you. I'm gonna close solution
00:25:21.186 --> 00:25:26.370 - items 08 UI framework and then we have admin core store and
00:25:26.370 --> 00:25:29.826 - store admin, right? So let's just open store.
00:25:30.720 --> 00:25:32.848 - So you can see our app TS.
00:25:34.980 --> 00:25:40.052 - At the root of this application is importing,
00:25:40.052 --> 00:25:45.758 - uh, this module set dot store and then basically.
00:25:47.240 --> 00:25:51.920 - Here's all of our configs. All of our factories, all of our
00:25:51.920 --> 00:25:55.430 - services. Oliver providers, uh, just instantiate. And this is
00:25:55.430 --> 00:25:59.720 - all boilerplate stuff, so you won't really work in this too
00:25:59.720 --> 00:26:04.400 - much. You can see some filters or here where you can create
00:26:04.400 --> 00:26:06.740 - your own filters and angular JS.
00:26:07.720 --> 00:26:11.297 - And this is a rather large file
00:26:11.297 --> 00:26:17.700 - up. And this is for a course filters and then this
00:26:17.700 --> 00:26:21.876 - were actually bootstrapping our application here in this
00:26:21.876 --> 00:26:23.442 - basically application run.
00:26:23.460 --> 00:26:29.256 - And then there's some, uh, some directives that we're
00:26:29.256 --> 00:26:33.598 - instantiating here. And then some of our configs? Uh, let's
00:26:33.598 --> 00:26:38.170 - see if we get down to some of the nitty gritty stuff.
00:26:38.920 --> 00:26:42.561 - Like I said, a lot of the time you won't be.
00:26:43.660 --> 00:26:48.508 - I working in this area, I would say pretty rarely, and then
00:26:48.508 --> 00:26:52.952 - these are all of our different states. They're just nested, so
00:26:52.952 --> 00:26:56.992 - it's like, you know, whenever it's this state or this,
00:26:56.992 --> 00:27:01.840 - declaring a state. And here's the URL title. It's just a bunch
00:27:01.840 --> 00:27:03.456 - of like just basic.
00:27:03.460 --> 00:27:07.852 - You know boilerplate stuff, so it'll give you. You know you can
00:27:07.852 --> 00:27:12.244 - throw your template in here, um, or like your template route and
00:27:12.244 --> 00:27:17.002 - then or their template URL. I'm sorry and you can point that at
00:27:17.002 --> 00:27:21.760 - different HTML views and we can kind of get poke around to those
00:27:21.760 --> 00:27:26.152 - directives a little bit later on, but this is basically it. So
00:27:26.152 --> 00:27:30.544 - whenever you see any kind of root or anything like that or
00:27:30.544 --> 00:27:36.882 - URL. It sometimes will be ADNN URL or it might be within our
00:27:36.882 --> 00:27:41.733 - angular application, so it will be 1, one or the other.
00:27:42.390 --> 00:27:48.198 - And then kind of looking around here. Uh, let's just go into,
00:27:48.198 --> 00:27:49.650 - let's see products.
00:27:51.500 --> 00:27:54.360 - So and my product detail.
00:27:55.080 --> 00:27:57.699 - You can see that I have my controller here.
00:27:59.010 --> 00:28:04.206 - And my view and angular JS is MVC, so it's model view
00:28:04.206 --> 00:28:05.938 - controller kind of setup.
00:28:06.560 --> 00:28:13.220 - Um, so in this bit you see that we have our HTML and then some
00:28:13.220 --> 00:28:18.104 - normal attributes that were used to and then some angular JS
00:28:18.104 --> 00:28:22.988 - attributes and then a directive. Even its own kind of directive
00:28:22.988 --> 00:28:24.320 - with our scope.
00:28:25.370 --> 00:28:29.935 - Scope variables here that we're passing into it. So just looking
00:28:29.935 --> 00:28:34.915 - at this is pretty standard HTML that we're all used to using
00:28:34.915 --> 00:28:39.065 - some bootstrap classes here just to kind of format everything.
00:28:39.080 --> 00:28:43.214 - And then an R controller. We can see that their stuff that we
00:28:43.214 --> 00:28:45.440 - might not be used to. So, uh.
00:28:45.950 --> 00:28:50.658 - And typescript module is kind of confusing. This is not a
00:28:50.658 --> 00:28:55.366 - JavaScript module, which is. I don't know why they named it
00:28:55.366 --> 00:29:00.502 - this. They did abandoned it later on, so just to bear with
00:29:00.502 --> 00:29:04.354 - me for a second. This is actually a namespace.
00:29:04.380 --> 00:29:08.475 - If you think about it more like that, 'cause This is actually a
00:29:08.475 --> 00:29:11.310 - namespace and, uh, we are currently upgrading from angular
00:29:11.310 --> 00:29:16.035 - JS, two angular two, so you'll see a lot less of this and a lot
00:29:16.035 --> 00:29:20.130 - more of like imports at the top and then exports as well. So
00:29:20.130 --> 00:29:24.855 - just keep that in mind. But for now with in your JS, this is how
00:29:24.855 --> 00:29:28.950 - it all works. So this is a namespace and kind of just tells
00:29:28.950 --> 00:29:30.210 - you where you're at.
00:29:31.600 --> 00:29:36.700 - So just kind of rolling through here. There's a lot of variables
00:29:36.700 --> 00:29:41.800 - so we can see that this product variant selections is an eye
00:29:41.800 --> 00:29:46.050 - variant selection array, and we're going to Dan Sheating this
00:29:46.050 --> 00:29:51.575 - as an empty array whenever this is served, an just kind of quite
00:29:51.575 --> 00:29:57.100 - a bit of just variables here will kind of get down to the
00:29:57.100 --> 00:29:59.225 - more nitty gritty stuff, just
00:29:59.225 --> 00:30:04.334 - like functions. So like here's, here's a good one, so this is a
00:30:04.334 --> 00:30:08.558 - private method. Initial load of product by SCO URL. So this
00:30:08.558 --> 00:30:13.934 - takes in a quantity which is a number SEO URL which is going to
00:30:13.934 --> 00:30:18.926 - be a string action, which is a function that is, let's see a
00:30:18.926 --> 00:30:23.534 - promised value which is of type API dot product model and all
00:30:23.534 --> 00:30:28.526 - that fun stuff. So you can see that this is a pretty detailed
00:30:28.526 --> 00:30:35.180 - method here. And a lot of these basically all this does is just,
00:30:35.180 --> 00:30:39.206 - uh. Get all the you know the another thing is like whenever
00:30:39.206 --> 00:30:42.242 - you're making any kind of method or anything like that, you
00:30:42.242 --> 00:30:45.278 - always want to name it. Obviously what it does so just
00:30:45.278 --> 00:30:49.694 - by looking at the name of this I can tell what it does so I know
00:30:49.694 --> 00:30:53.282 - it loads products by the SCO URL and it's on the initial load.
00:30:53.830 --> 00:30:56.194 - That's all it does, and then you can see we're calling our
00:30:56.194 --> 00:31:00.726 - service here. This dot Seth Product Service Target and then
00:31:00.726 --> 00:31:05.924 - we're, uh. Passing an object, which is what this is expecting.
00:31:05.924 --> 00:31:10.556 - So if I hover over this, my intelligence will say, hey, this
00:31:10.556 --> 00:31:15.574 - is a get method where this is what it actually accepts. An IT
00:31:15.574 --> 00:31:19.820 - returns an angular promise and of type API dot product model,
00:31:19.820 --> 00:31:24.066 - right? That's the generic that it accepts, so we're passing in
00:31:24.066 --> 00:31:29.084 - this object where it's SEO URL is the SCO URL. The quantity is
00:31:29.084 --> 00:31:32.944 - the quantity stored ID or the store ID is this?
00:31:33.010 --> 00:31:37.600 - And this got a pretty easy stuff and then we're
00:31:37.600 --> 00:31:41.731 - resolving our promise here and saying if cash, then
00:31:41.731 --> 00:31:46.321 - running this method cashed resolve or return, or if it's
00:31:46.321 --> 00:31:49.534 - not cached, then we're getting something else.
00:31:52.010 --> 00:31:56.342 - How is this boilerplate stuff too? Or is this this, uh, this
00:31:56.342 --> 00:32:00.313 - kind of stuff written per client? Oh yeah, this is all
00:32:00.313 --> 00:32:03.562 - written, but this is like built in self, right?
00:32:03.630 --> 00:32:06.000 - So this is all handwritten, uhm?
00:32:06.510 --> 00:32:09.558 - Uh, and I'll get down to the bottom, so this makes sense.
00:32:09.558 --> 00:32:11.082 - This is one of our largest
00:32:11.082 --> 00:32:14.522 - controllers. That, uh will be refactored a little bit
00:32:14.522 --> 00:32:18.031 - later, but for now it's quite large. It's about 800 lines
00:32:18.031 --> 00:32:22.178 - here, so you'll see at the end of the day we have this
00:32:22.178 --> 00:32:23.135 - stuff app directive.
00:32:24.390 --> 00:32:28.074 - So what we're doing is all a directive is is. Basically, it
00:32:28.074 --> 00:32:32.679 - says most of the time I should say is. This is what I want my
00:32:32.679 --> 00:32:35.442 - directive be called. I'm restricting it to an attribute
00:32:35.442 --> 00:32:37.591 - and here's the view that I want
00:32:37.591 --> 00:32:42.434 - to serve it. And here's what the controller is, which is the
00:32:42.434 --> 00:32:47.474 - object at the top of this bit. So you can see that it's F store
00:32:47.474 --> 00:32:50.498 - product, product details controller, and then what I want
00:32:50.498 --> 00:32:55.202 - to refer to it as a nice product details TTL. And that's a pretty
00:32:55.202 --> 00:32:58.898 - common angular JS or angular that is just naming stuff, CTR
00:32:58.898 --> 00:33:02.594 - ellas, controller so you know that it's called and you can
00:33:02.594 --> 00:33:05.954 - refer to it in your view as product detail CTRL.
00:33:06.610 --> 00:33:11.454 - Uhm, but yeah, I mean and the only thing that I think might be
00:33:11.454 --> 00:33:15.606 - a little weird of what you're not used to instead of just
00:33:15.606 --> 00:33:17.682 - having like a standard link to
00:33:17.682 --> 00:33:21.388 - your. Template, uh, we're actually using a filter that we
00:33:21.388 --> 00:33:25.444 - built, so this filter is. You can kind of just hover over it
00:33:25.444 --> 00:33:29.188 - here and see what it is, but this is a custom built.
00:33:29.990 --> 00:33:33.310 - Filter that we built built that takes in these different
00:33:33.310 --> 00:33:37.626 - arguments so we know that it's in the UI. And then here's our
00:33:37.626 --> 00:33:41.278 - template, and then we're building a corrs link so we can
00:33:41.278 --> 00:33:45.262 - go to the site and not have cores like a course policy.
00:33:45.262 --> 00:33:49.578 - Basically threw an error at us when we're trying to hit it, but
00:33:49.578 --> 00:33:52.898 - that's basically it. So all we're doing is we're linking
00:33:52.898 --> 00:33:56.305 - this controller. This whole class here that we're building
00:33:56.305 --> 00:34:01.348 - out. To this view. So whenever this is served or we can throw
00:34:01.348 --> 00:34:06.583 - this on a page, so will kind of show that here in a second, so
00:34:06.583 --> 00:34:09.375 - will call the stuff product details and then.
00:34:09.960 --> 00:34:14.627 - It'll be an attribute and you can make this an element as well
00:34:14.627 --> 00:34:18.576 - and then serve this. Here's the controller. Here's what I want
00:34:18.576 --> 00:34:23.961 - to refer to it as. So all that is is you'll see in here that
00:34:23.961 --> 00:34:26.833 - were saying product details controller dot product to
00:34:26.833 --> 00:34:30.423 - display dot type key. So that's literally our controller. This
00:34:30.423 --> 00:34:35.090 - is going to be a variable of that controller and then a type
00:34:35.090 --> 00:34:40.116 - key, and that's going to be. You know, of course on this on this
00:34:40.116 --> 00:34:41.193 - variable or property.
00:34:41.230 --> 00:34:45.866 - Um? And you'll see like you know, this is also going to be
00:34:45.866 --> 00:34:49.089 - its own directive, so you'll see the stuff product actions group,
00:34:49.089 --> 00:34:52.605 - and then we're passing in a scope variable to it. And let's
00:34:52.605 --> 00:34:56.121 - just take a look at this one really quick, so will just.
00:34:56.880 --> 00:35:01.261 - Kinda figure out what's going on here is we know that we have
00:35:01.261 --> 00:35:04.631 - this attribute. This attribute, which is a directive and then
00:35:04.631 --> 00:35:07.664 - product and we're passing in this product details controller
00:35:07.664 --> 00:35:11.708 - dot product to display into it, which is a product itself and
00:35:11.708 --> 00:35:15.078 - then what's the store product? Well, it's the store product,
00:35:15.078 --> 00:35:17.100 - right? So let's go ahead and
00:35:17.100 --> 00:35:20.626 - search. An angular
00:35:20.626 --> 00:35:26.552 - JS. Does this bit and this is very much an angular thing. Uhm,
00:35:26.552 --> 00:35:30.464 - so you'll name it. Uh, and then it'll make it kebab case.
00:35:31.930 --> 00:35:35.518 - So it'll stick diesel kabobs in there. So will just search for
00:35:35.518 --> 00:35:39.106 - the stuff product actions group you can see in our action groups
00:35:39.106 --> 00:35:40.900 - dot TS. We actually have our
00:35:40.900 --> 00:35:46.810 - directive here. And this has the scope variables of product an
00:35:46.810 --> 00:35:51.270 - store product. And so it is the product to pass through the
00:35:51.270 --> 00:35:54.438 - store product pasture. So this thing does its own thing here,
00:35:54.438 --> 00:35:57.894 - and these are scope properties where a product is an API dot
00:35:57.894 --> 00:36:01.062 - product model sort product is the store product model and we
00:36:01.062 --> 00:36:04.230 - can kind of hover over that to see what that is.
00:36:04.940 --> 00:36:08.810 - And then it has its own little load method here.
00:36:09.310 --> 00:36:14.133 - And. Basically, whenever we put in our constructor that it'll
00:36:14.133 --> 00:36:17.403 - just run whenever this is like instantiated in the lifecycle
00:36:17.403 --> 00:36:20.346 - process, it'll load this function and run this function
00:36:20.346 --> 00:36:24.270 - here and then do whatever it wants with our product in store
00:36:24.270 --> 00:36:27.867 - product or whatever we're feeding it right. So if we take
00:36:27.867 --> 00:36:32.772 - a look at this and open it in the side, but here we can see
00:36:32.772 --> 00:36:36.696 - that it's feeding it. This view is just a directive. Here's what
00:36:36.696 --> 00:36:40.293 - the directive is called is feeding it this view. Here's our
00:36:40.293 --> 00:36:43.236 - controller right at the top. It's just this class.
00:36:43.320 --> 00:36:46.708 - And then here's what we're going to call it. Uhm, and?
00:36:47.470 --> 00:36:53.866 - Our HTML for it is and then obviously and then of course we
00:36:53.866 --> 00:36:57.762 - have different. Directives inside of this as well. So so
00:36:57.762 --> 00:37:02.130 - now back to that overrides thing that we've been talking so much
00:37:02.130 --> 00:37:06.862 - about. So how this works is just like any any CMS or anything
00:37:06.862 --> 00:37:07.954 - like that well.
00:37:08.860 --> 00:37:11.716 - Say like I I want to make a
00:37:11.716 --> 00:37:15.534 - change. But I don't want
00:37:15.534 --> 00:37:20.950 - to break. Any kind of you know, uh, stuff that's already in
00:37:20.950 --> 00:37:25.222 - place? I don't want to break any any feature that's currently in
00:37:25.222 --> 00:37:29.850 - place, right? So if I ever have to upgrade a client and bring,
00:37:29.850 --> 00:37:34.834 - you know our core code, say we fixed a couple of bugs in our
00:37:34.834 --> 00:37:38.750 - core code and the client requests for us to upgrade them.
00:37:38.750 --> 00:37:40.886 - So when I make that pull
00:37:40.886 --> 00:37:46.249 - request. Into the clients you know repo well I don't want a
00:37:46.249 --> 00:37:51.436 - bunch of changes in these files because it might break and be a
00:37:51.436 --> 00:37:55.825 - very complicated merge process, right? So what I'm going to do
00:37:55.825 --> 00:37:59.815 - is say I want to change actions group dot HTML.
00:38:00.560 --> 00:38:06.155 - Well, what I can do is I'm just going to make sure that I had
00:38:06.155 --> 00:38:07.647 - that stuck here, uhm?
00:38:08.450 --> 00:38:10.338 - And then I want to go to my
00:38:10.338 --> 00:38:13.876 - client. And I'm gonna open up my clients, IFA.
00:38:15.550 --> 00:38:20.134 - I'm gonna go into UE Commerce so sifu e-commerce framework so it
00:38:20.134 --> 00:38:25.864 - looks so you know so so far so good. I have the framework of it
00:38:25.864 --> 00:38:31.212 - so wait UI framework. I'm going to go to my store store and then
00:38:31.212 --> 00:38:36.178 - I would make new and this is alive staging site so I'm not
00:38:36.178 --> 00:38:41.526 - going to make changes to it but I would make a route for product
00:38:41.526 --> 00:38:45.346 - controls actions and then make this actions group dot HTML
00:38:45.346 --> 00:38:49.230 - file. I just basically copy everything and paste it in my
00:38:49.230 --> 00:38:53.689 - new file and then I can make whichever changes I want. So on
00:38:53.689 --> 00:38:57.805 - this conditional here, if I want this to be, you know stuff,
00:38:57.805 --> 00:39:01.578 - config feature set, sales quote dot disabled instead I just you
00:39:01.578 --> 00:39:06.380 - know in my over I just say hey, if that's enabled you know this
00:39:06.380 --> 00:39:10.839 - is actually disabled. I want to show it instead of the other way
00:39:10.839 --> 00:39:13.240 - around. So in any case we make
00:39:13.240 --> 00:39:17.530 - like a. You know update or whatever. It's not going to
00:39:17.530 --> 00:39:20.320 - break core functionality. Does that. All that makes sense.
00:39:21.110 --> 00:39:22.558 - Yeah yeah yeah yeah.
00:39:23.150 --> 00:39:25.026 - And how that works on the back
00:39:25.026 --> 00:39:30.710 - end of things. Is uh, in our gulp build. All we're doing is
00:39:30.710 --> 00:39:34.643 - we're checking this this, uh, folder structure and saying,
00:39:34.643 --> 00:39:40.056 - hey? There is a matching folder file for what's already in core.
00:39:40.600 --> 00:39:44.389 - Actually build this one instead of building that one.
00:39:44.389 --> 00:39:46.073 - So this templates here.
00:39:47.440 --> 00:39:51.378 - You know on this side of things, please include this in
00:39:51.378 --> 00:39:56.032 - the build instead of the stock one. So just taking a look at
00:39:56.032 --> 00:39:58.896 - that really quick will open our framework store.
00:40:01.160 --> 00:40:02.429 - Gulp file here.
00:40:03.520 --> 00:40:06.128 - Oh, did not open it in this code
00:40:06.128 --> 00:40:10.403 - space, I wonder? I bet it didn't open the codespace,
00:40:10.403 --> 00:40:13.115 - that's exactly what happened. Cool, so let's go
00:40:13.115 --> 00:40:14.810 - ahead and open that guy.
00:40:16.470 --> 00:40:17.710 - Oh no, it's here.
00:40:18.240 --> 00:40:22.013 - Cool, so this is like a boilerplate. Uh, there's a lot
00:40:22.013 --> 00:40:26.129 - of Boilerplate. There's a lot of custom stuff in here, so you
00:40:26.129 --> 00:40:29.559 - know, we're using require and we're just required a gulp
00:40:29.559 --> 00:40:32.989 - obviously. And all of our stuff from our node modules.
00:40:34.960 --> 00:40:39.228 - And then we have our different goal builds, so here's our
00:40:39.228 --> 00:40:43.884 - different options and all that fun stuff. A lot of the stuff
00:40:43.884 --> 00:40:48.152 - you don't really never really mess with too much. You'll just
00:40:48.152 --> 00:40:50.092 - need to know the commands.
00:40:50.710 --> 00:40:56.540 - Inferred go is this some this is version 3, right?
00:40:57.170 --> 00:41:03.694 - Uh, this is 3 point 9.9 one I think yeah, just a whenever you
00:41:03.694 --> 00:41:09.752 - run in PMI, it'll always since we have our package lock file in
00:41:09.752 --> 00:41:16.276 - here it will always do the right one for you, but in case not.
00:41:16.810 --> 00:41:20.710 - You know you can just make you can revert it back, so you'll
00:41:20.710 --> 00:41:22.810 - see that. Here's all of our, you
00:41:22.810 --> 00:41:28.150 - know. Our tasks, uhm, and all of this little bit. And then here's
00:41:28.150 --> 00:41:31.890 - what we actually naming other tasks, and this is the most
00:41:31.890 --> 00:41:37.950 - important thing. So we're seeing that all these are sub tasks and
00:41:37.950 --> 00:41:43.626 - we have the. Whenever you say gulp build, you can do build
00:41:43.626 --> 00:41:48.356 - clean. Just build your fonts, build your admin less, build
00:41:48.356 --> 00:41:53.559 - your store sass, jQuery, angular the whole thing. So these are
00:41:53.559 --> 00:41:58.289 - all like the standard ones that you wouldn't typically run.
00:41:58.840 --> 00:42:02.500 - You know, just singularly we just want all these to run an
00:42:02.500 --> 00:42:05.855 - are larger tasks. It will build out these smaller tasks here.
00:42:06.740 --> 00:42:10.676 - And then we'll have, like you know, the larger ones. So this
00:42:10.676 --> 00:42:14.612 - gold task is just build admin will. It will also run, build
00:42:14.612 --> 00:42:18.220 - static, build admin base, build admin in it, and build admin
00:42:18.220 --> 00:42:21.828 - short and then like the biggest ones that you'll probably just
00:42:21.828 --> 00:42:26.092 - end up running is just go build and you can see that that's
00:42:26.092 --> 00:42:30.356 - going to accept an array in a function call back and all that
00:42:30.356 --> 00:42:33.636 - good fun stuff and it will basically just run everything
00:42:33.636 --> 00:42:35.604 - and all you do is you.
00:42:37.220 --> 00:42:39.448 - Let me open CMD.
00:42:40.330 --> 00:42:43.294 - I can probably just show that on my local here, so it'll
00:42:43.294 --> 00:42:45.517 - probably so I don't mess with the staging site.
00:42:50.320 --> 00:42:56.308 - Cool, so all I
00:42:56.308 --> 00:43:02.296 - need to do is
00:43:02.296 --> 00:43:08.394 - hear Amina. You know my sub solution oy Commerce
00:43:08.394 --> 00:43:10.998 - UI and then I would just run.
00:43:12.590 --> 00:43:16.880 - Build so that should catch everything and you'll see all
00:43:16.880 --> 00:43:21.170 - these different. You know build jQuery, Kendo, Angular, all that
00:43:21.170 --> 00:43:25.460 - good stuff initiated before I actually start building like my
00:43:25.460 --> 00:43:29.750 - templates and stuff like that and what's really interesting to
00:43:29.750 --> 00:43:35.327 - kind of dive into is that the admin and the store or two
00:43:35.327 --> 00:43:39.617 - different angular applications. So this gold file is not only
00:43:39.617 --> 00:43:42.620 - building my storefront application, it's building my.
00:43:42.620 --> 00:43:46.348 - Admin application as well.
00:43:46.350 --> 00:43:48.038 - So just wait for this guy to finish.
00:43:51.780 --> 00:43:54.795 - And will see everything that it kind of ran.
00:43:59.010 --> 00:44:03.618 - Cool, so just scrolling up looks like it. You know there's quite
00:44:03.618 --> 00:44:08.610 - a bit of there's quite a few things going on. Here is where
00:44:08.610 --> 00:44:14.358 - you know. Compiling our jQuery compiling or angular compiling
00:44:14.358 --> 00:44:17.328 - Kindo which we use pretty
00:44:17.328 --> 00:44:22.688 - heavily. And then it like all of our base stuff. Uh? Which is,
00:44:22.688 --> 00:44:27.356 - you know, all of our types and interfaces and stuff like that.
00:44:27.356 --> 00:44:29.690 - And then our templates you are.
00:44:30.460 --> 00:44:36.316 - Views and then Sasses RASS files and that's just compiling it to
00:44:36.316 --> 00:44:41.196 - one file there and all of that stuff will compile.
00:44:41.710 --> 00:44:43.900 - To a file.
00:44:45.730 --> 00:44:46.918 - So we go to see for.
00:44:47.430 --> 00:44:52.386 - I gotta see SS so that'll all be in this compiled clarity dot CSS
00:44:52.386 --> 00:44:57.342 - folder file and you can see it's really small. But if we open it.
00:44:59.290 --> 00:45:01.080 - Let's do Visual Studio code.
00:45:04.020 --> 00:45:08.420 - It's just this compiled, you know, bit here. Yeah, so that's
00:45:08.420 --> 00:45:10.020 - basically all it's doing.
00:45:12.800 --> 00:45:16.540 - Does that make sense so far? Yeah, what exactly is kendo?
00:45:17.250 --> 00:45:22.446 - So kinda is a really cool library for jQuery or angular JS
00:45:22.446 --> 00:45:28.075 - or angular that is just like a helps out with grids. It helps
00:45:28.075 --> 00:45:32.838 - out with like different bar graphs and Maps and stuff like
00:45:32.838 --> 00:45:38.034 - that like Donut charts and whichever all it is is if you
00:45:38.034 --> 00:45:42.797 - think about it like a component library. So it's like bootstrap
00:45:42.797 --> 00:45:48.426 - is to CSS is like what you know Kindle is to angular for
00:45:48.426 --> 00:45:52.314 - components. Just so it's like I want to build a really cool
00:45:52.314 --> 00:45:55.768 - donut chart, but I don't want to build it from scratch.
00:45:55.780 --> 00:45:59.084 - You can just include it and then just kind of, you know, read the
00:45:59.084 --> 00:46:03.236 - documentation. Jump around it cool. So that's basically it
00:46:03.236 --> 00:46:07.034 - from an architecture standpoint of where everything kind of
00:46:07.034 --> 00:46:12.942 - Falls. The only other bits that will kind of jump into here in a
00:46:12.942 --> 00:46:14.630 - second. Let's just open.
00:46:14.650 --> 00:46:18.771 - You know, this actually might be too small to open on this one.
00:46:18.771 --> 00:46:23.526 - Open my own SMS here so it might be a little bit bigger since my
00:46:23.526 --> 00:46:26.696 - screen resolution is going to be better on this setup.
00:46:30.220 --> 00:46:31.540 - All right?
00:46:33.960 --> 00:46:38.536 - So under a databases, you notice that you know will just kind of
00:46:38.536 --> 00:46:43.112 - look at one of these clients here at this jit client. This is
00:46:43.112 --> 00:46:47.336 - our stuff database and I'll open the tables and we'll see how
00:46:47.336 --> 00:46:48.392 - large it is.
00:46:48.420 --> 00:46:54.792 - The building. Alright, so we have anything from accounts that
00:46:54.792 --> 00:46:59.982 - account to badges to brands, categories. I mean basically you
00:46:59.982 --> 00:47:07.248 - name it, we have it and there's a lot that you probably won't be
00:47:07.248 --> 00:47:11.919 - dealing with quite a bit like hang fire is.
00:47:11.940 --> 00:47:15.624 - A back end thing that we use for scheduled tasks and everything,
00:47:15.624 --> 00:47:19.308 - so you probably won't be looking at that, but you know everything
00:47:19.308 --> 00:47:22.685 - else. I mean just to make sure everything is going through,
00:47:22.685 --> 00:47:25.448 - you'll need to be pretty familiar with this database.
00:47:25.450 --> 00:47:29.854 - Just to ensure that you know where to look for things, you
00:47:29.854 --> 00:47:34.258 - know what date is expected and all that good fun stuff because
00:47:34.258 --> 00:47:38.295 - our stuff platform is what's called code first, so off code
00:47:38.295 --> 00:47:41.965 - first, it actually means that our code actually makes makes
00:47:41.965 --> 00:47:45.635 - the schema and decides the schema for our database instead
00:47:45.635 --> 00:47:50.039 - of the other way around. So our code doesn't conform to a
00:47:50.039 --> 00:47:53.709 - database schema. It actually makes the schema for a database,
00:47:53.709 --> 00:47:54.810 - so whenever you.
00:47:55.660 --> 00:47:59.404 - You know you can actually make a database just by you know and
00:47:59.404 --> 00:48:03.148 - see it with false data from. If you set something up just for
00:48:03.148 --> 00:48:06.316 - like testing from our database, but something you know is like
00:48:06.316 --> 00:48:09.484 - let's go to like product since we're kind of looking at
00:48:09.484 --> 00:48:12.364 - products earlier an on our model, that's going to our
00:48:12.364 --> 00:48:15.820 - interface. You saw that we had like the API dot product model
00:48:15.820 --> 00:48:17.260 - or that's going to actually
00:48:17.260 --> 00:48:22.530 - include like. You know all the different stuff that we need to
00:48:22.530 --> 00:48:27.821 - input into our our data here, so we have anything from the basic
00:48:27.821 --> 00:48:33.519 - ID to kind of track it to a custom key, which could be a
00:48:33.519 --> 00:48:37.589 - foreign key to another table created date, updated, ate all
00:48:37.589 --> 00:48:42.473 - that fun, normal stuff that used to be active or inactive name
00:48:42.473 --> 00:48:47.340 - description. Sound attributes a ICO keywords SEO URL and we kind
00:48:47.340 --> 00:48:52.632 - of saw that load from SEO URL for our product details. Well
00:48:52.632 --> 00:48:57.483 - that's where it's grabbing that data. So it's saying hey will
00:48:57.483 --> 00:49:00.570 - you grab my product off of this
00:49:00.570 --> 00:49:06.331 - SEO URL? And that still are pages actually look like you
00:49:06.331 --> 00:49:11.050 - know slash product instead of slash ID some weird quit or
00:49:11.050 --> 00:49:16.198 - something like that so you can see that you know there's quite
00:49:16.198 --> 00:49:18.343 - a bit of stuff here.
00:49:19.450 --> 00:49:23.388 - And you know, it'll be definitely a great tool to go
00:49:23.388 --> 00:49:28.758 - in, or a great idea for you to go and kind of get used to
00:49:28.758 --> 00:49:32.696 - everything here just because you know you'll get a lot more
00:49:32.696 --> 00:49:36.276 - familiar with this overtime to just kind of understanding like
00:49:36.276 --> 00:49:40.214 - what needs what, what goes where, 'cause there is, I mean
00:49:40.214 --> 00:49:44.868 - just look at this one table. I mean there's a lot going on
00:49:44.868 --> 00:49:47.120 - here. Does this do? Oh yeah, we.
00:49:47.620 --> 00:49:50.788 - And anything that we don't have here, I'll kind of show
00:49:50.788 --> 00:49:54.244 - you where we keep the rest of our stuff so that there's
00:49:54.244 --> 00:49:55.396 - something that a client.
00:49:57.470 --> 00:50:01.964 - Wants to add in that we don't have to shove it into a JSON
00:50:01.964 --> 00:50:04.532 - attribute and we call these serializable attributes. You'll
00:50:04.532 --> 00:50:07.742 - hear that term a lot, and the database that's actually
00:50:07.742 --> 00:50:11.594 - referred to as JSON attributes, but on the front end in whenever
00:50:11.594 --> 00:50:14.804 - you actually deal with them, they'll be passed you as
00:50:14.804 --> 00:50:18.014 - serializable attributes. So let me just copy this really quick
00:50:18.014 --> 00:50:19.619 - and then let's see JSON.
00:50:20.730 --> 00:50:24.260 - Yeah. I'm just going to turn this into some pretty stuff
00:50:24.260 --> 00:50:27.010 - really quick, so you can actually see what's going on.
00:50:28.550 --> 00:50:34.835 - So, uh, on this one you can see that we don't. We didn't have a
00:50:34.835 --> 00:50:39.863 - way to put like this normal like we didn't have these typical
00:50:39.863 --> 00:50:44.053 - fields that they wanted an our product database. Well, instead
00:50:44.053 --> 00:50:48.243 - of you know, changing our complete schema just for one
00:50:48.243 --> 00:50:52.433 - client since our software is enterprise, we shove them in
00:50:52.433 --> 00:50:56.623 - JSON attributes or what we call is serializable attributes just
00:50:56.623 --> 00:50:59.137 - so. It's basically like a foe.
00:50:59.160 --> 00:51:03.588 - You know column in the table so they can still customize and
00:51:03.588 --> 00:51:07.647 - have any column they want their product table, but we just
00:51:07.647 --> 00:51:12.075 - handle them differently on the back end but to the customer it
00:51:12.075 --> 00:51:14.289 - looks like it's the same thing.
00:51:14.370 --> 00:51:19.035 - So they have, you know for lease is up for lease you have a value
00:51:19.035 --> 00:51:23.078 - to or false. You know it's like modified by name. The color of
00:51:23.078 --> 00:51:26.810 - it 'cause we don't have color obviously in here, but you can
00:51:26.810 --> 00:51:31.164 - add color and we can kind of shows on the front end or search
00:51:31.164 --> 00:51:35.207 - by them or filter by them or anything like that on the front
00:51:35.207 --> 00:51:39.561 - end with quite a bit of help in back end as well. That makes
00:51:39.561 --> 00:51:44.802 - sense. Yeah yeah. Cool, yeah this little. I mean this is its
00:51:44.802 --> 00:51:50.106 - own thing. So I mean we have like a clients that are huge
00:51:50.106 --> 00:51:54.186 - that have 700,000 products. And then of those 700,000 products
00:51:54.186 --> 00:51:57.450 - might have 50 serializable attributes that they need
00:51:57.450 --> 00:52:03.162 - because it's like well I need I need to be able to have this
00:52:03.162 --> 00:52:07.650 - field on my product you know that all these thousand product
00:52:07.650 --> 00:52:11.730 - shavahn blah blah blah blah blah. That's just you know.
00:52:11.740 --> 00:52:14.590 - You'll either break your database and not have it. You
00:52:14.590 --> 00:52:18.010 - know abstract, or you can keep it abstract and kind of keep
00:52:18.010 --> 00:52:19.150 - it rolling from there.
00:52:20.590 --> 00:52:23.483 - And then we'll discover the DNN database. Really quick, while we
00:52:23.483 --> 00:52:26.902 - have a few more minutes. And then on the DM side you'll see
00:52:26.902 --> 00:52:29.532 - that we have a separate database for our front end.
00:52:30.160 --> 00:52:34.396 - So database for the back end for the E Commerce framework and
00:52:34.396 --> 00:52:36.867 - then the just the front end DNN.
00:52:36.870 --> 00:52:38.658 - Table are there.
00:52:39.970 --> 00:52:45.053 - A database quite a few less tables for sure. Uhm lot of the
00:52:45.053 --> 00:52:49.745 - stuff you'll never really you know mess with like the DN sharp
00:52:49.745 --> 00:52:53.264 - actions or credentials or anything like that whenever you
00:52:53.264 --> 00:52:57.956 - install. Uhm, you know Dean and sharp. It'll it'll.
00:52:58.570 --> 00:53:03.274 - Make these tables for you, um, so um, but you can see like the
00:53:03.274 --> 00:53:06.634 - biggest one that you'll mess with whenever you're setting up
00:53:06.634 --> 00:53:11.002 - a site is portal alias, so let's take a look at that really
00:53:11.002 --> 00:53:13.920 - quick. And these are just, uh.
00:53:14.680 --> 00:53:19.451 - HP aliases to let it know that you know to be aware of
00:53:19.451 --> 00:53:23.855 - your site, so you know you can see that I built mine
00:53:23.855 --> 00:53:25.323 - called JJ T local.clarityclient.com.
00:53:25.323 --> 00:53:30.461 - Well, as long as I have that entry in here and it's set to
00:53:30.461 --> 00:53:34.131 - true over on this side is primary, then it'll work.
00:53:35.500 --> 00:53:40.315 - So then I can visit this site since I have it set up in IIS
00:53:40.315 --> 00:53:44.167 - and I'm serving it and it's set up correctly to my folder
00:53:44.167 --> 00:53:47.377 - structure. Well, if my DN database doesn't know about it,
00:53:47.377 --> 00:53:51.550 - I'm not going to be able to hit the website because it's not
00:53:51.550 --> 00:53:56.365 - going to allow me to go into it. But as far as that goes, man.
00:53:56.380 --> 00:54:00.688 - Some you know DNN rolls are in here. There's a scheduled tasks
00:54:00.688 --> 00:54:04.996 - and ENN for like import export after the site, which is a
00:54:04.996 --> 00:54:08.227 - feature you can see like there's different nomenclature for
00:54:08.227 --> 00:54:12.894 - pages. So on the front end, whenever you make a new page, it
00:54:12.894 --> 00:54:17.920 - will actually be a tab. So we kind of take a look at that
00:54:17.920 --> 00:54:22.946 - really quick so we can see what the tab you can think of. Like
00:54:22.946 --> 00:54:27.613 - all this is page, so page ID page order, the portal ID that
00:54:27.613 --> 00:54:28.690 - is assigned to.
00:54:28.730 --> 00:54:34.450 - The name of the page, so there will be like a friends page.
00:54:34.450 --> 00:54:39.290 - There's a industries page. There is a test page that somebody
00:54:39.290 --> 00:54:45.010 - made equipment page so on and so forth. What the parent of that
00:54:45.010 --> 00:54:50.290 - page is. If it has an icon, the title of the page.
00:54:50.330 --> 00:54:53.314 - You can write a short description. There's keywords
00:54:53.314 --> 00:54:58.163 - for SEO, you know there's a soft delete, so if you deleted it's
00:54:58.163 --> 00:55:01.893 - not actually deleted, it will just be you know one.
00:55:01.920 --> 00:55:05.703 - Can is we kind of saw that earlier. So this is where it
00:55:05.703 --> 00:55:09.195 - assigns the actual skin so you can see that that's skin the
00:55:09.195 --> 00:55:10.650 - client and then the checkout
00:55:10.650 --> 00:55:16.362 - ascx file. And that's pretty much it. I mean, it's it's
00:55:16.362 --> 00:55:21.730 - pretty basic stuff here. Uhm, and then of course, these unique
00:55:21.730 --> 00:55:23.194 - Quids version grid.
00:55:23.200 --> 00:55:26.848 - And You, You'll never really need to mess with any of this
00:55:26.848 --> 00:55:28.976 - stuff, and this is like the the
00:55:28.976 --> 00:55:32.615 - actual like. You know site structure like where it's
00:55:32.615 --> 00:55:36.755 - supposed to be and then this is for content workflow. If it's
00:55:36.755 --> 00:55:40.895 - been published or not, and then the same thing for like modules.
00:55:40.895 --> 00:55:44.690 - So modules are like desktop modules that you can install on
00:55:44.690 --> 00:55:48.485 - a page itself like the HTML WYSIWYG editor or something like
00:55:48.485 --> 00:55:52.625 - that. You know something pretty basic. Well we can see that it
00:55:52.625 --> 00:55:57.800 - has a tab ID attached to it and then where it sets like on the
00:55:57.800 --> 00:56:00.215 - page. So this is like a Tab
00:56:00.215 --> 00:56:05.082 - Module ID. And then the module ID is the ID of the actual
00:56:05.082 --> 00:56:10.290 - module and then where it sits at in the content pane on the site.
00:56:10.290 --> 00:56:15.498 - And this is like an ID on the ascx file itself, so ordered is
00:56:15.498 --> 00:56:20.706 - cash time and all that good fun stuff. So there's quite a bit of
00:56:20.706 --> 00:56:25.170 - stuff that you might like cash time you'll never played with or
00:56:25.170 --> 00:56:28.518 - like display sindicat you'll probably never touch web slice
00:56:28.518 --> 00:56:30.378 - TTL, never really touched that,
00:56:30.378 --> 00:56:33.955 - but like. If you're ever trying to figure out, like you know, do
00:56:33.955 --> 00:56:36.760 - surgery and be like, hey, why isn't this module here? I
00:56:36.760 --> 00:56:39.820 - installed it. Well, you know it's you can see what the module
00:56:39.820 --> 00:56:43.390 - ID is, what the module name is. I think there should be a module
00:56:43.390 --> 00:56:44.920 - name over here at some point.
00:56:44.920 --> 00:56:47.210 - Yeah, module title. So.
00:56:47.800 --> 00:56:52.142 - Kinda get all that fun stuff from this table, but a lot of
00:56:52.142 --> 00:56:56.818 - the DNA and stuff will be on the front end and in the actual
00:56:56.818 --> 00:57:01.160 - files itself, but as a CMS, all of the like module content will
00:57:01.160 --> 00:57:05.953 - be saved. So you know, we can see if there's like a HTML
00:57:05.953 --> 00:57:09.310 - WYSIWYG editor. Something like that, uh, there will be.
00:57:09.310 --> 00:57:13.040 - Let's see if we can find one, it'll save the.
00:57:14.430 --> 00:57:16.580 - Data should be in here
00:57:16.580 --> 00:57:20.820 - somewhere. They might not be using any wysiwyg's, so you can
00:57:20.820 --> 00:57:24.612 - see this like an action form that one's a text HTML field.
00:57:24.612 --> 00:57:26.192 - You can see there's like.
00:57:28.330 --> 00:57:30.574 - You know some HTML inserted in
00:57:30.574 --> 00:57:33.135 - here. All that, all that cool
00:57:33.135 --> 00:57:35.916 - stuff. But yeah, that's
00:57:35.916 --> 00:57:40.450 - basically it. Is this stuff from DN? Is this database from DNN?
00:57:40.450 --> 00:57:42.508 - Was it made by DNN roses made
00:57:42.508 --> 00:57:46.858 - for clarity? No, this is actually made by DNN. So
00:57:46.858 --> 00:57:52.071 - whenever you spin up ADNN site, this is what it seeds it with.
00:57:52.071 --> 00:57:56.883 - Now we we do custom solutions for clients and make our own
00:57:56.883 --> 00:57:58.888 - tables on the DNA database.
00:57:59.570 --> 00:58:04.406 - Which it which is pretty common. Uh, the only thing with that is
00:58:04.406 --> 00:58:09.242 - if you ever export the use the export feature inside of DNN, it
00:58:09.242 --> 00:58:11.474 - won't know about any tables that
00:58:11.474 --> 00:58:16.745 - you made. So if you export a site and import it to like
00:58:16.745 --> 00:58:20.030 - production or something like that, you actually have to
00:58:20.030 --> 00:58:24.045 - manually create the tables and move the data over as well.
00:58:24.630 --> 00:58:29.258 - So we I mean, which happened? It doesn't happen all the time, but
00:58:29.258 --> 00:58:33.174 - it's definitely something to be aware of is like, you know.
00:58:34.040 --> 00:58:37.164 - I've made a lot of custom like modules or custom functionality
00:58:37.164 --> 00:58:40.856 - for clients where I had to make my own tables because they had
00:58:40.856 --> 00:58:43.980 - some data that they wanted to save that didn't necessarily fit
00:58:43.980 --> 00:58:47.956 - any of the tables that DNA has, but you'll just have to move it
00:58:47.956 --> 00:58:54.326 - over manually. OK cool, did you have any? I know we covered. I
00:58:54.326 --> 00:58:59.562 - mean that's really high level. So alright um, so one thing
00:58:59.562 --> 00:59:04.322 - you'll notice in the documentation is I think it says
00:59:04.322 --> 00:59:06.226 - to download node 11:15.
00:59:06.410 --> 00:59:12.636 - But you'll notice in my local machine I'm running 1013. Now
00:59:12.636 --> 00:59:19.428 - the reason for that, um, is angular 8 and angular nine. More
00:59:19.428 --> 00:59:25.654 - specifically, uh, will stops us support for node at 10:13. An
00:59:25.654 --> 00:59:30.748 - doesn't continue until node 12, so anything from 1013.1
00:59:30.748 --> 00:59:36.974 - basically all the way up to 12, it doesn't care about.
00:59:37.020 --> 00:59:41.052 - So you'll have all these build errors that you know when you're
00:59:41.052 --> 00:59:44.748 - trying to build like a newer angular project that won't let
00:59:44.748 --> 00:59:48.780 - you run it, even though you know our. I think our official
00:59:48.780 --> 00:59:52.812 - documentation says to run 11:15 and we just need to revise that
00:59:52.812 --> 00:59:56.844 - to 'cause it can either be 1013 or anything after 12. But
00:59:56.844 --> 00:59:58.860 - there's some stuff in our code.
00:59:59.390 --> 01:00:06.012 - That if you run node 12 uh, it will also have build errors, but
01:00:06.012 --> 01:00:12.161 - if you run version 1013 it'll works fine and then. So if I
01:00:12.161 --> 01:00:13.580 - check my gulp.
01:00:13.590 --> 01:00:19.506 - I have the CLI version 2.3 and my local versions three point,
01:00:19.506 --> 01:00:22.957 - 9.1 uhm and then I think it's.
01:00:22.960 --> 01:00:28.180 - It's just the local version, but the big thing is whenever you
01:00:28.180 --> 01:00:32.965 - start your install of everything else that, uh, it'll tell you
01:00:32.965 --> 01:00:40.397 - too. Run this uh in PM bat file and it's a batch
01:00:40.397 --> 01:00:45.093 - file. It's called MPM Huber install so all that does is it
01:00:45.093 --> 01:00:48.823 - installs like the Visual Studio build tools that you'll need
01:00:48.823 --> 01:00:52.926 - Python if you need it. It's already installed, it will skip
01:00:52.926 --> 01:00:57.775 - that step and stuff like that and then it will build out your
01:00:57.775 --> 01:00:58.894 - node modules folder.
01:01:00.710 --> 01:01:07.724 - OK, so it'll do the NPM install, but it will. Also, you know get
01:01:07.724 --> 01:01:10.730 - all other stuff, so will be.
01:01:12.300 --> 01:01:17.004 - In your, uh, source code will be this package JSON file, so if we
01:01:17.004 --> 01:01:20.028 - open this really quick, you'll see everything that we're
01:01:20.028 --> 01:01:23.052 - holding at. Oh no, it's opening in Visual Studio.
01:01:24.270 --> 01:01:30.054 - Man, what a waste of ram. Open a Jason File. Visual Studio
01:01:30.054 --> 01:01:33.596 - Alright? So you can see, here's alert are dependencies
01:01:33.596 --> 01:01:38.562 - and let's go down to gulp. OK so we're saying where you at.
01:01:38.562 --> 01:01:43.910 - I was just at OK so we're holding it 3 point 9.1 so this
01:01:43.910 --> 01:01:47.730 - package JSON file will create your node modules and then
01:01:47.730 --> 01:01:51.550 - your package dot lock file. But hold all of your
01:01:51.550 --> 01:01:53.078 - dependencies at the specified.
01:01:54.560 --> 01:01:58.850 - You know specified a version, so we don't break anything.
01:01:59.520 --> 01:02:04.319 - OK. 'cause like gold you know they changed everything and
01:02:04.319 --> 01:02:09.933 - four. Yeah, so if we if you try to run for it just won't
01:02:09.933 --> 01:02:13.943 - even compile because you're the way that you write. Tasks
01:02:13.943 --> 01:02:17.552 - are completely different so it'll basically be like that's
01:02:17.552 --> 01:02:21.562 - not how you write a task. You know? Yeah, yeah.