How To Remove Telerik COMPLETELY from DNN 9.8.0+

Nov 12, 2020

SUMMARY

In this session, Daniel Valadas and I will walk you through step-by-step on the complete removal of Telerik from DNN Platform 9.8.0. Many of you have been waiting for this ability and it is now possible in DNN Platform 9.8.0.

DNN Platform
https://github.com/dnnsoftware/Dnn.Platform

DNN Platform 9.8.0 Release
https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.8.0

DNN Telerik Identifier
https://github.com/IowaComputerGurus/DnnTelerikIdentifier

 

0:02 [Music]
0:13 hello hello it's dean and dave and i'm here with my good friend daniel valadas daniel how are you doing
0:20 i am very good hello everybody it's good to see you um we are here streaming live
0:28 to you um and we got some exciting things to to share uh so many in the dnn community have
0:34 been anxiously awaiting this day and it's pretty epic right daniel i mean it's like 9.8.0 is
0:41 out and let's just hear it for the ability to now completely remove telrick
0:49 manually of course in this version but daniel what like i know this is a big
0:55 release and we could sit here and talk hours just about the release itself but i mean as it relates to the topic of
1:01 tonight um what does this mean for you and in your implementations and
1:06 what you've heard from others well it's it's we really wanted to bring
1:13 nine to the best we could before going to ten because then we'll have some breaking changes
1:18 and one of the major concerns was the dependency on telerik which is a i don't know 12 years old
1:26 library i think we're using roughly so it's pretty much outdated there's some
1:31 security concerns with it that we have been working around for many years
1:36 and our last big piece of work to get rid of that dependency
1:43 was the file manager so there's been a lot of efforts building a new file manager it's not
1:50 perfect we have plans to improve it but it should bring feature parity
1:56 um mostly for all features except some little ui things we plan on
2:02 improving but that that was the big chunk and it's now resolved and if you want you can now remove telerik
2:09 it's manual and optional so that you can upgrade to 9 8 without breaking everything
2:17 and you can get ready for dnn 10 by testing these things out on uh on production actually because you
2:24 can really make sure that if it works on nine and you migrate to ten well it's not tailored that's gonna
2:30 bring your things it would be something else a breaking change or something but you can rule that out and
2:36 have a safe uh 9 version you know those are great points i i i
2:43 can't help but to think back a little bit on the history of dnn and kind of leading up to this
2:49 point i mean we've heard many times over the years telerik is being removed telework is
2:54 being removed and there was there was truth to those statements so it wasn't like they were
3:00 lies or anything it's just that it wasn't completely like complete right so that's that's why i
3:06 kind of want to put this in the title to say yes this is finally the day that we can actually trust that statement that
3:12 we can actually completely remove it and correct me from wrong but i think this all kind of started back
3:18 um with version nine coming onto the scene and the introduction of the persona bar that was a given us the ability as a
3:26 platform to remove all of those old web form modules that many of them had
3:31 tolerant control dependencies in them and that that was kind of the big first
3:38 step right and then there were a few other little meyer things here and there where little pieces were removed but i think
3:44 the last piece and you mentioned it a few minutes ago was the the old asset manager
3:50 uh or the file managers a lot of people uh refer to it as that needed to go and it was a big
3:56 undertaking i guess for the community to uh to be able to to contribute that i know you were involved
4:01 heavily in that so thank you for your work on that you are welcome yeah so let's let's jump
4:08 into it our goal here is to really walk everyone through the steps and i
4:15 purposely have not done this by myself yet so i wanted to be the guinea pig you
4:24 know so daniel can sit here and slap my hair oh no you need to do that no you know you need to do that so we're
4:29 going to make this raw and keep it real you know for you guys and you know maybe break down a bit of fears that
4:36 there might be in dealing with something this technical it may be may feel a little bit scary to kind of go in and do some of these
4:42 things but it has been you know thoroughly tested through you know on how how this is done and we're just going to
4:48 kind of prove it here tonight and let me be a guinea pig here so i'm going to switch over here to
4:55 my screen and so if for those of you that do not know 9.8.0 released
5:02 and you can come out to github dot com slash dnn software slash
5:08 dnn.platform and you can come to the releases area and from there you'll be able to see the
5:16 9.8.0 release there's a lot of great things about it but very first thing in the release
5:22 notes you'll see a section here on the optional tail rick removal
5:28 and i guess just to put a little bit of context into the optional piece of this is that this is a
5:34 manual removal of it in 9.8.0 and you may be asking yourself well
5:40 why didn't you just force the removal of it automatically so we don't have to take these manual steps
5:45 well it's a long story but the short of it is that we weren't ready for
5:52 a 10 release yet and following semantic versioning rules um we could not do implement a you know
6:00 massive breaking change like this in a minor release so therefore it was in you know done
6:07 this way so that if people wanted to be able to remove it which a lot of people would and should honestly uh for security
6:14 concerns and things like that if nothing else um to be able to remove these um so that's why it's going to
6:20 do that secondary to that dnn 10 will come with a different set of
6:26 braking changes also so we didn't want to prevent people from
6:31 removing the telerik dependency because of other braking changes so we wanted to bring this into nine but
6:38 it's optional and then it's going to be automated fantastic so we'll come back to this and
6:43 this is the steps that we're going to go through and i'll just go ahead and zoom in on this and pull it over here so that we can see that a little bit better once
6:49 we get back to it so in my next tab over here i've already installed dnn 9.8.0 a fresh install of
6:58 it and the only thing that i have done in addition to that fresh install is i added a page
7:05 called feedback and on that page we installed well we
7:10 installed the extension of the feedback module and we went to
7:16 the i'll just pull this up here um the latest release is 6.7.0 but that has
7:21 telework controls removed in it and we're going to use this as a guinea pig kind of module here um so we went to the previous version
7:28 and then installed 6.6.3 and that version has telrit controls in it just so that
7:35 we can use that to to see it and so forth the next thing that we're going to do so
7:41 yeah it's a clean install of dnn with the exception of adding that installing that extension
7:47 and placing it on a new page called feedback um the the the next thing we should
7:54 probably mention is that we're going to use a tool that if you guys caught the live stream
7:59 with me and mitchell sellers a little while back he was talking about a open source project that our computer
8:06 gurus his company and he released it's called dnn telerik
8:11 identifier and you can get this on github it's free it's open source you can download it and use it
8:16 the idea for this module is to assist in this process of
8:22 identifying any telerik dependencies that you may have in your dna instance you can read up on the notes on
8:30 this and so forth and i won't go into too much of a deep dive here but it does a really good job
8:35 and for the most part will identify all your tail rig dependencies it is not 100 percent full proof on that
8:42 so small disclaimer on that piece of it but it does a really good job of identifying uh the majority of your
8:50 tail rick kind of dependencies so it's a really good sanity check tool to use it's non-invasive it's just exploratory
8:57 to be able to identify information uh to you so what we're going to do is we're going to install
9:03 this module so we'll go to the version latest release of it which is 1.0.1 at
9:08 the time of this recording we're going to download the install package here under the assets
9:14 tab so i will download that and put it into my downloads folder here
9:20 and i want to go back over to the dnn instance and we are going to install this
9:27 extension could have done this beforehand but really just wanted you to see how simple it was to
9:32 install this extension and to use it so we'll do install extension i'm going to browse to my downloads
9:38 directory and there is the install package that we downloaded from github
9:44 so it is now uploaded and ready to install so we'll go through the normal process
9:50 here of next and release notes good and accept license oh man that checkbox stayed
9:57 there it's so funny because that's the second major highlight in 980.
10:03 oh yeah but now people are complaining because they're like wait did something happen
10:08 oh wait because we're used to this little checkbox jumping over to here it's been like that for years um anyway let's go we digress
10:18 all right so it looks like it installed uh correctly so we'll just go ahead and click done and wait for the site to cycle back
10:27 and while we're doing this daniel walk through what the next step is gonna be we're gonna we're going to actually use this tool is that correct to
10:34 identify the temporary dependency i wanted to point out that you mentioned this is a new clean install and
10:39 everything you can also upgrade to now yeah there is no risk in upgrading because of
10:45 tailwick that's why it's manual so this could be an upgraded site with
10:50 10 old modules and this is where this identifier would come really handy in
10:56 spotting those before doing our manual steps that's true so when you upgrade from
11:01 whatever version you're on to 9.8.0 you are not destroying anything that's potentially using telework that's
11:07 another reason it's manual just like daniel just said and it's also another reason why we wanted to
11:13 really make a soft step upgrade step available so that people that do have modules that use
11:19 telerik controls that they wouldn't be impacted unless they wanted them to be impacted so that
11:25 way they could upgrade the dna and get all the wonderful new features and performance and security things that are in there
11:31 and work towards a removal of telrick you know maybe they have custom modules that are
11:37 using it or third-party modules that are using it or whatever so this identifier is really
11:42 going to kind of help you so that way you can go ahead and upgrade then install this and we can pretend
11:48 like this site was just upgraded you know and it'll be the same experience as what we're showing you here on a clean
11:53 install so now we have that in here um and i guess does it matter what play page we put
12:00 this on uh daniel um i would create a it doesn't matter what page it's gonna work on any page
12:06 i would suggest to not put it in a public page but there's still safeties in the module that it's not going to
12:12 display details publicly but if you are on a live site or something i would suggest
12:18 making a telerik page that's televic identifier page like this that's only visible by admins
12:24 just for safety yeah and let's show everybody a trick just in case you may not know this um if you don't want to show up in your
12:29 page hierarchy and you want to show up over here in the persona bar area you can actually make the parent
12:35 page of this the admin page and that will go ahead and apply permissions that only
12:41 administrators can can see it and so forth and it won't be in your site navigation and it will be over here
12:49 in your persona bar so we'll just go ahead and add it there if that's all right with you and if it's not too late and too bad
12:57 yeah okay so it is out right now
13:04 i like to do that for things that are truly admin you know just like put them back there behind the scenes a bit
13:10 okay so the page is now and you can see it's under admin here but it also shows up right here so
13:16 that makes it nice and easy and hidden as well so now we can put that module on the page
13:23 and we could do a little search here tell ted oops tell rick there we are
13:30 we'll click that and we'll try to grab it here before it
13:36 floats away from us and i'll go ahead and just delete this this empty html module to get out of our
13:41 way all right so it's already done its thing that's pretty cool we didn't have to
13:47 tell it to do anything um and you know your mileage may vary
13:52 on this uh you may see a long list of things here that have uh tiller dependencies in them but it's
13:58 already identified that the feedback dll uh for for the feedback module
14:04 is indeed using tailwick so this does it with reflection using the
14:10 dlls and it's going to give you the dll name so most of the time it's easy to
14:15 know which module if you're not sure then it's a bit more complex and you know fire up a message
14:22 on uh on github discussions or if you're on the slack open help channel or something
14:28 a lot of people gonna know what matches what but i'd say 99 of the time the name is gonna be here and you're
14:34 gonna know what it is absolutely um
14:40 i was just interacting with some of our live viewers now we've got a few live viewers on on here so thanks for joining
14:46 everybody um hopefully you find this really helpful so that this is pretty uneventful here but
14:54 this is it i mean we know that we have an issue so you know through the namespace here of the the
15:00 dll we can we can determine okay that's probably the feedback module you know so you can
15:06 browse through this list and it should be pretty obvious you know what what some of these are related to
15:11 and you may find some obscure ones here there but it should be pretty easy to to determine
15:18 one thing that you may have is a warning just because i've done it on different sites
15:23 a warning that it cannot identify this dll due to it not having a manifest this is
15:30 not talking about the dnn manifest for those who do dnn development it is due to the dll
15:37 not having a manifest for itself inside of it and it doesn't declare its
15:43 dependencies that rarely happens with dnn modules but if you have a dnn module that has a
15:49 dependency on let's say entity framework or on twilio or
15:54 name it sometimes those things were built with notwith.net in mind they're
16:00 multipurpose and they don't declare their dependencies so most of the time you can ignore those
16:07 yeah exactly and i was looking to see if we had anything in here that actually had a manifest example in here but we don't
16:15 but just so that everybody understands you know this bullet list that's going to show here this is referring to a dll
16:21 well that dll is going to be living in your whatever your root of your
16:27 website is the bin folder this is a special folder within asp.net so you don't want to just
16:33 go and delete this that'll that'll wreck your your stuff um but uh you know that's
16:38 literally the dll that that's referring to so it's literally the file name of that of that dll
16:45 so like daniel was talking about with the manifest some uh dlls will also have a secondary file
16:52 that will end in i think it's ins and dot manifest doesn't it
16:58 there's different ways but the the most common way it's built into the file built into the
17:04 inside of that oh okay okay but i know there's xml files and this and that that can declare
17:10 stuff but a dll build for net framework will have in the bytes a declaration of
17:16 what it depends on and if it was not build for that net or for some
17:21 specific i don't know when that changed but basically that's optional declaring what you depend on is optional
17:28 and if you depend on on libraries that are not dnn modules like i don't know twilio like uh third-party
17:36 libraries some of them might not declare that they have any dependencies and most of that time that means they don't have
17:41 any excellent okay well that helps clarify so so next steps daniel i mean should we
17:48 now look for a version of the feedback module that has removed tailwork too yeah because when we start
17:56 removing stuff then you might break the feedback module so i would go to each of the modules and
18:02 find if there's an upgrade or a replacement or if it's even used so in this case except for a cleanup if
18:08 you don't yeah so in this case we've made it easy for you know but you know you're obviously if you have a
18:13 longer list you're going to have to do a bit of research and find out if there is a a later version that has already taken
18:19 care of telework removal but in this case we purposefully installed version 6.6.3
18:25 of the feedback module out on the dna community or go on github and it's called dna.feedback um that was
18:32 a mouthful but we have purposely installed that one because it has a tailwick dependency in it well it's been thanks
18:38 to the work of i think this was you right daniel i mean you updated this yeah thank you so this module has been
18:45 updated to remove tower dependencies and i think it was related to the captcha is that uh correct correct that was its
18:51 only dependency on televic okay so let's go ahead and download this version of the module
18:56 and that way we'll be ready to upgrade it and hopefully we can come back to the
19:02 telerik identifier module and we'll see that we don't have anything in the list anymore
19:08 and just before you install it i want to show something also if you go to extensions you can go to extensions though i'm
19:15 going to go here and then go to extensions that way we won't be on that page but yeah perfect okay extensions if we
19:24 scroll here to the feedback module we're going to see the in use column as a little yes
19:30 if you see it's no then maybe you don't have to upgrade that because it's not used anywhere
19:35 so that's a great point also remove the dependency if you don't know where it's used then
19:41 you can click on this yes exactly it's going to show you every place it's used if you have multiple
19:47 sites or this or that so you can take that opportunity to analyze you know do i even need this module
19:53 or this is one of those hidden gems in dna and i've always loved this feature um because you know it's a good idea
20:01 really to come in here every once in a while and look for all the modules that have no in them and if you really don't need
20:08 it you know you have to be careful with a few of them like ddr menu and things like that because it'll say no but it's not because it's
20:14 because it's not a module that gets placed on a page it gets used by the theme so you kind of have to know a little bit
20:20 about what you're doing but if it's a recognizable module that's like an on-page module if you see no
20:25 there then you could probably safely delete it like this is something built into the platform but it's a good
20:31 example if you're never going to use the module creator module you don't need it you can just uninstall it yeah yeah so in this case
20:38 that don't have a trash can it's because they are system modules so
20:44 and by clicking that page that showed up in the list it'll open up a new page and actually bring us to the page
20:49 on which the module is placed okay so let's go ahead and install the
20:55 later version to upgrade this module so as you see we're at 6.6.3 version
21:00 of this and it's even showing that's related later version of that so we'll go ahead and click
21:06 install and i'll go and find the 6.7.0
21:12 install package for that that we just downloaded go upload and we're good to go there and
21:19 it does indicate six seven zero so we're looking good we'll go next
21:24 and accept wait did anything happen yeah
21:35 so there's little things like this that are a bit time consuming and not a big bug so sometimes stuff
21:42 like this stays for a while before someone picks up the issue exactly yeah this every time i come to
21:48 this and i click it i'm like oh my gosh i need to fix that oh my gosh i need to fix that oh my you know and you don't even think about it
21:54 until you get back to here to do it and you're not spending a ton of time in here but it's like every time you have to deal with it's like oh man
22:01 okay so we do have a bit of a problem on the upgrade here um do you know of a reason why we might
22:08 would have that uh problem uh website installed and module feedback senior exception win32
22:16 and the process cannot access the file because it is being used by another process [Music]
22:22 can you just simply retry it maybe of files somewhere yeah and what we
22:27 probably ought to do is um probably got to just recycle the apple just uh to maybe release that or
22:34 something oh i know what it is i've got it highlighted over here
22:40 okay yeah i probably shouldn't have done that note to sell so i'll just i'll just get out of that folder there
22:46 but the windows explorer kind of was using that file because we had it
22:51 selected and it was showing information for it so though ah so sorry for that but that's what was
22:56 causing that issue that only happens in live streams
23:02 or doing demos right or presentations and stuff like that okay
23:08 and in this case this is really a safe upgrade anyways there's no real concerns with that
23:16 i'm here so so we'll cross our fingers oh wait not double
23:21 cross fingers because that cancels it out so i'll just leave one crossed and okay we
23:26 look good this time so that's good so now now that we've done this we should
23:31 theoretically be able to go to our telerik identifier page and module and it should
23:37 not show that particular tailwick dependency anymore so we'll go there tell work identifier
23:46 and of course i should have closed the persona bar when i did that because
23:51 and of course the site load is going to be a little bit slow because we just upgraded the module that has a new dll in it so
23:57 it's going to cause that yay success so you may be thinking wow is that all
24:03 there is to it to remove tail wreck no that's we're just talking about third party
24:10 modules and things like that at this point um so this helps you clean and let you
24:15 know that you are ready to now follow the steps that are in the release notes
24:21 uh for the removal of telry yup all right so we ready to get into it
24:28 sure all right so i've got the i'm back over on the 9.8.0 release
24:36 uh on github here and there's a lot of words that we won't go
24:41 through every single thing here but let's start down on the
24:46 we've kind of gone through the recommendation of using this module and cleaned up every module that's using it so we're
24:53 now ready to actually do this so you know you don't hopefully this is
24:58 obvious but i'll state it anyways you know you don't want to go through this list unless you know that you know you're
25:04 okay breaking anything that was showing up in that list because it it will it will break it so you want to
25:11 make sure you you have a site that is able to be upgraded before you do that
25:16 that means you want to strive to to do that as soon as possible because you do want to remove tillering believe
25:22 me you do want to remove it okay so take a full backup of the site in the database okay that should be
25:28 pretty easy so what i'll just do here is i'll copy all the files and folders in this
25:36 and let me just open up a new window and i'll just come up one level
25:41 here and i'll create a backups folder
25:50 and we'll paste uh let's just call this one pre until
25:58 rick removal
26:04 and i'll paste those in there and while those are pasting i'll go ahead and go to sql server
26:10 and we'll do a backup of this database now this is dnn980 is the name of my
26:15 database here so i'm in sql server management studio for those of you that don't know
26:22 if you are on a shared hosting environment or something you'll have equivalent tools in your control panel
26:28 maybe it's plesk or something like that um you know depending on your if you're in azure it's going to be a different
26:34 process but i'm doing a true native kind of backup scenario here so we'll just choose
26:39 backup oops i clicked on that and the window went away okay in this case i'm okay just saving
26:47 the backup database to the sql server folder structure in real life i may would actually move that into a folder
26:53 that i that i want to kind of keep track of my backups and i'll go over to uh right here and
27:00 i'll do a verify backup when finished and perform a checksum before writing the media
27:07 okay that was real quick um so that's done and our physical backup looks like it's
27:14 done over here i don't see any progress window still still running here so we're good to go we've done the first step
27:21 now second step here is in extension available extensions and modules we'll need to install the
27:27 new resource manager module now this is the replacement for the old file manager or digital
27:34 asset manager as you may refer to it uh as so we're going to install that so
27:39 we can start using that instead of the old one so let's go into that so we'll go here
27:47 and we'll go to extensions and when it's talking about modules it means
27:52 this drop down here so we are showing modules here but we need to go to available extensions on this
27:57 and modules and you'll see that the new resource manager is already here it is distributed with the
28:05 9.8.0 release so you don't have to download it and install it that kind of thing but you can just simply click
28:11 install so it's distributed but not pre-installed exactly
28:20 i'm feeling pretty comfortable with this so far it seems like i've gone through it before but i haven't [Laughter]
28:26 okay that looks pretty good so we now have that installed and we'll let that cycle the
28:31 app pool there while that's doing i'm a flip back over and look at the next step
28:36 okay so step three navigate to site assets remove the digital assets manager module
28:42 from the page and insert an instance of the resource manager okay so we're not uninstalling it yet
28:50 we're really just going to remove it from one of the two pages that it exists on right yes and if i might interject if
28:57 you scroll down here to digital asset manager on the yes for in use in a plain installation
29:06 it's going to be only used here but that module can be used on pages to
29:12 distribute files between a group a social group or other stuff so
29:17 if you see more here you might have more places to go replace it yeah and this is a good point i'm
29:23 glad you brought this up because like it really is only on one page but you
29:29 the reason i mentioned two is because you may be going to site assets or global assets and these are really
29:35 going to the same page but just different um
29:43 well actually they are two pages it's just that one doesn't one's in the host menu and won't show in the list there so
29:49 yeah i guess it is technically two pages yeah two instances of it okay so we clicked on just to show you i
29:57 clicked on site assets just in case i went too fast through that and we'll wait for that
30:02 page to load all right so here it is this is the old file manager or digital assets
30:09 management module so we'll need to flip into edit mode and it wants us to remove this from
30:14 this page right exactly okay so we'll just go to settings
30:19 and delete all right now does it matter that it
30:25 goes to the right cycle bin or is that something we'll run into a little bit think it does not matter
30:30 okay and i think the instructions said to place the new resource manager module
30:36 on here yep insert an instance of the resource manager okay so we'll do that we get to see the new resource manager
30:42 yay okay so resource there it is
30:50 and we will drop that right where the other one was and voila there it is there's the shiny
30:56 new object okay so now what's next we will go to step four repeat step
31:04 three but for global assets page there we are yeah so we'll go to
31:10 manage global assets
31:17 all right and we're going to rinse and repeat here right exactly all right so we'll go here
31:25 delete this feels good feeling good feel good all right add
31:32 module resource manager and we'll put that on the page hey what
31:39 do you know it worked there too awesome ah but it's different right because we're at a host level so we have
31:44 more things in that directory structure all right so and the model is going to display
31:52 different thing depending on its context so if you have it on a group page it's going to be the group folder and so on and so forth
31:59 yeah yep absolutely okay so here you know this is part probably make a
32:05 lot of people scared that they're not used to doing this kind of thing so you know we're gonna what we're gonna do is we're gonna copy
32:11 this sql script here it's just transacts sql and it's going to do some things in the database
32:17 uh to make certain packages not system packages so that we could
32:24 actually remove them so i'm going to copy that comes back to what i was saying the ones that are missing a trash can is
32:31 because they are system packages so now we're making them non-system packages so we have the trash icon
32:38 to actually delete them exactly so just to bring that kind of full circle there to explain it again
32:44 you'll see that some of these like authentication it does not have a delete well icon here right access
32:50 management is one hey exactly that's the one we're doing yeah good point exactly we don't have a button so these
32:56 are what are called system modules they're they're flagged in the system to not be able to be uninstalled so we're just going to
33:03 try to change that here all right so it mentioned going to the sql console
33:08 but there's not specific examples of how to get there or directions on how to get there so just to show you that'll be in
33:14 settings and sql console all right so we've got a new query and
33:21 oh that's that's a shiny new editor that's pretty cool uh we'll paste from
33:27 what i put in the clipboard now daniel i've got an important question here for you because i i got a feeling a lot of people are gonna wonder
33:33 about this or be confused about it do i need to in the context of sql
33:38 console here do i need to change database owner and object qualifier or can i
33:44 leave these brace kind of things in this context yes it stays there dnn is aware to go
33:51 replace that but the actual database owner and sql and object qualifier
33:57 so in this context it stays if for some reason you cannot do it in the dnn context and you have to do it through
34:02 sql management studio or your hosting control panel or some such which i don't think there's
34:08 any reason but if there was then you would have to replace this so let's take just a quick side trip
34:15 and you know this is safe to do here by the way so you you can feel free to do this here
34:20 and you don't even have to deal with these other tools but for those of you that are interested in this it's it's probably good to know i'm
34:27 gonna i'm gonna copy that again and i'm gonna flip over to sql server management studio and i've got the
34:33 database selected that i am wanting to run this in i'm going to click a new query
34:38 window and i'm going to paste this into here now if you have a new query window and
34:44 you're wondering if you're actually connected you know using the right database you can always look right up here in this available database to make
34:50 sure that it's the correct database that's selected because when you execute this it's going to actually do it on that
34:56 database now if we were to run this right here right now it would fail because of these
35:04 these these braces around the database owner and the object qualifier
35:09 most of your instances will not have an object qualifier to this this is when
35:15 you have a prefix on your um we don't have to go into a deep lesson
35:20 here but you would have to replace this um so in this case
35:26 our database owner is the default dbo or db owner so we don't even have to have that here
35:33 but you can literally put dbo dot oops dbo dot and it would actually work notice
35:39 that i get intellisense there to show me the packages so i can either do it without the dbo
35:45 or that if you're just doing a base install of dnn it will not have an object qualifier in it unless you tell it to do so um so
35:53 i just thought i'd show that to everybody to do so anymore oh really i thought you could still do that
36:00 that's probably a good thing it is a very good thing because onto you yeah
36:07 so the so you can run this here and it'll be the same thing but you know honestly in this case i
36:13 just run it through the sql console like it says but some people are power users and i just wanted to kind of point that out
36:19 there okay so we have this ready to go so we're ready to run the script is that correct yes sir all right so
36:25 we'll run the script okay it did not return any results but wait did
36:31 is that what i expected yes okay good so when you see this don't freak
36:37 out it did it this is actually an update statement so it's doing an update and there is nothing being selected to return
36:44 so this is the normal expected results from this and if we were to go and look at these
36:50 um these packages in the database we would see that now that column is set to zero in fact on those
36:58 and to kind of prove that we can go to x well no yeah well yeah we can go yeah okay yes
37:05 i started i started to do that uh that's that we're talking about packages now so all right we got to come back all right
37:10 so now we can go to servers and clear cache right exactly so every single once you
37:16 interact with sql directly dnn doesn't know that it changed you're bypassing all the apis
37:23 and dnn caches tables and rows from the database so it still thinks nothing happened so
37:29 clear cache will force dnn to re-read that table so i'll go ahead and read the next one
37:36 thanks for explaining that because that's that that might confuse people it's like well where's my trash can i don't have my
37:41 trash can now or my delete button so the next step is that to clear cache which i just did
37:46 and now we're going to go to extensions and we're going to literally try to uninstall uh by clicking the the trash can and
37:54 then there's a check box you'll see it in just a minute all right and the order is important here because there's
38:00 dependencies between these four so they have to be removed in that order or it might refuse to remove let's say the
38:07 uh deprecated web control library because another thing relies on it so it needs to be done in this order
38:13 okay thanks for pointing that out because hey you people that don't read instructions and just kind of skip steps
38:19 don't do it because it'll get you in trouble in this case all right
38:24 slap the hand okay ow that hurt my wrist okay um digital asset managers first then all
38:31 right so digital asset management and we're going to just make sure you see no if you see yes just a little
38:37 some place where it's used you know good point you know i still have a question about the recycle bin but i guess it doesn't
38:43 matter because when we uninstall it here it's going to also purge that right yes okay
38:49 so that kind of calms my fears about that so there and this parentheses over here
38:56 says tick delete files what it's talking about is right here when we go to we click the delete
39:02 icon and come here we want to tick this box this check box for delete files that way it'll
39:08 literally delete those files this is really important don't skip that step
39:14 all right delete and we want to confirm man so am i going to be able to like
39:20 interact with my files and folders and upload stuff yes you will be able to with the new resource manager
39:25 all right so that step looks like it's done it disappeared from my list so that's pretty cool man i'm starting
39:32 to feel cleaner already so we'll scroll down just a little bit well we don't really need to scroll down do we
39:38 um so we need to go to the next step this is uninstalling dot net new telrick web components
39:46 now the note here is that this is a library so the default selection when we
39:53 go to extensions is going to be modules so we'll have to switch it to libraries right all right so we'll switch this
40:01 over to libraries oops and i scrolled right past it there it is
40:14 yeah i'm glad that little bar is up there because i'm glad it's not telling me that my interconnect internet
40:20 connection is uh bad like it used to say blame the users
40:27 exactly okay now i chose libraries here but i don't see
40:32 what it was talking about oh there it is like yep okay so is that literally right let's see
40:38 yeah it is okay web components okay there it is so we can now delete this
40:47 and now daniel yep we need to take delete files okay
40:52 yep just want to make sure see how careful i'm being people this is
40:58 what you want to do even if you think that you know what you're doing
41:03 yeah read the instructions make sure all right so we'll go here i'll be here
41:09 all night by the way for your comic relief all right okay so that's done now next step
41:18 all right that's the one we were on i like to kind of highlight stuff as i'm going along so i remember what i just did all right so extensions libraries same
41:26 place uninstall dnn deprecated web controls library and we do need to take that
41:31 check box again so so for those who are a bit into development
41:37 these are basically the telerik wrappers so the deal that happened with telerik was
41:42 that you could use the telerik any dnn developer could use the telerik controls as long as they went
41:49 through the dnn wrappers and this library are the wrappers it's been marked as deprecated since
41:55 8-0-0 if my memory serves good i think that's right yeah i think that's right and i'm
42:01 glad you brought that up i mean we covered this a bit when i was chatting chatting with um mitch sellers about this uh the technology
42:08 lead and he was telling me this is really the quandary that got us into this i mean well
42:13 this is really the thing that got us into the quandary is like well there needed to be this rapper so that
42:19 the licensing deal that dnn court made with telrick you know
42:24 that allowed the use but they had to have this wrapper around it to protect their licensing on it and the idea i
42:31 mean this is a great thing back in the day because i mean it gave developers and the dnm platform itself
42:36 actually the ability to use all these wonderful controls the problem is was the wrapper and there
42:42 was code around there and that you know long story short i kind of got lost so there is no way that we could
42:48 actually fix all this or upgrade tell rick underneath the thing so that
42:54 you know i mentioned this and mitch mentioned this as well this is not that telrick's bad it's that our version we're stuck on an
43:01 old old version i mean i can't remember how old it is but it's pretty old and we can't do a thing
43:08 about it so this is why it has to go it's got to go it's gotta get out of here gotta go and
43:13 uh it's been four years so dnn8 was released in 2016 january 2016. so
43:20 it's going to be almost five years that every developer knows that this is deprecated
43:26 because it's gonna show in the source code you're using a deprecated thing so it's not a surprise
43:32 and um it's the time we are in now yeah and i think mitch said uh
43:37 don't quote me on this but i think it was 2013 version of telerik that we're stuck on
43:43 2013 2014 something like that i don't want to don't quote me but i think it's 2012.
43:49 it may have been yeah i know it's old it's all okay while you it gots to go it's got to go all right
43:56 here we go not to forget where we are i'm going to go back and check okay this is one that was highlighted okay i'm doing dnn
44:03 deprecated web controls library okay dnn deprecated
44:08 web controls library i'm looking good i'll click the delete be sure to tick the box delete
44:16 daniel an unlikely event that someone forgets to check the delete files box
44:24 well the files won't get deleted so what i would say is reach out send an
44:31 email to security at dnnsoftware.com and uh the fine folks there will be glad to
44:39 help you get through that in a more manual fashion so um there's a defined list of files that
44:46 could be go and manually deleted at that point so you're not totally lost but yeah send
44:52 that to security at dnasoftware.com because this is security stuff okay also since step one was taking a backup
45:00 you can always revert the backup and do it again that's a good point excellent point so
45:06 if you don't want to go through that channel it's probably good practice to do it again because chances are you have more
45:12 than one dnn site that you need to do this to so you need practice go into it again okay all right here we
45:19 go
45:24 all right cool extensions libraries uninstall.net nuke deprecated website
45:31 code behind files and we need to check the tick box okay here we go dnn deprecated website code
45:38 behind files that looks right to me we're going to delete we're going to tick the check box because we don't want to have to go
45:45 through that channel or redo everything again read the instructions people follow them
45:50 one by one and for those curious about what this one is uh
45:56 those was were pieces of code left in there to allow upgrades
46:02 from pre-dnn 9 into 9.
46:08 where the migration from the control bar to the persona bar
46:13 needed those files so that's gonna that it's still distributed but as long as the n is installed it's no
46:19 longer needed so so we're getting rid of these things because they used they had some
46:25 dependency on telrick so anything that just used it whether we're really using it now or not it gots to go
46:31 okay you don't want those things on your server all right here we go next step 11. open the web config
46:38 file and search for telerik delete any lines that reference it okay
46:45 this looks good but it didn't tell me how to open the web config file or where the web config file is so there's a couple ways that we can
46:52 do this people we could use dnn to do this and i'm going to come back to that and show it to you in just a minute
46:57 um but the file system where it is this is the root of my website my local
47:03 version of the website there's the web config file so you can just open this in i like to use visual visual studio code
47:10 it's this nice editor and it's going to give you nice xml formatting so if we did that it would open up and
47:18 voila there it is so from here you could
47:25 yep there it goes there's oop and it's got a new release no it's popping up and it said to search
47:30 for what it said to search for telrick okay so we can do control f
47:37 and we can type in taylor rick right this looks like something i saw in dnn recently
47:44 i'm glad you brought that up daniel so see how easy that was to search and find that let's do it in dnn why don't we all
47:51 right let's go over to dnn and you can go to
47:56 settings and config manager and this will give you direct access to
48:01 the web config file now i will say be careful in here because when you're modifying web config
48:08 you could just kill your website you may end up having to go to the web you know to the to the file system
48:14 anyway just yeah yeah just be careful when
48:19 you're in here all right so web config we can select that and now we go wow this looks really similar
48:25 this looks like vs code it does look like vs code well by golly i think it is vs code i
48:31 wonder if i can do ctrl f oh my gosh there's the find dialogue there it is
48:38 look at there we've got three instances of it we can cycle right through them and they're all together there
48:44 so all right i found them now what so we're kidding a little bit because we both worked on that part yeah
48:51 the editor that is in vs code is called monaco is now in the platform in multiple
48:57 places where it's actually code that you're editing and it's awesome you have the whole
49:02 power of vs code minus the extensions you know uh in there but you have all the all the power
49:09 of it okay so delete any lines that reference to it so you may be saying to yourself
49:17 delete lines so daniel is this a line
49:23 well you see the 69 on the left yeah there's no other number until 70. so this
49:29 three things are one line that's great so the reason i bring that up is because this form factor this
49:37 constraining box here is forcing things to wrap here so you know if we were over in visual
49:43 studio code full bar well it is a line
49:49 but you'll see here that 69 does match theirs it's 70. so daniel's tip is spot on so what we want
49:55 to do is we want to select can i those i think you could click on the number 69 to select the
50:02 whole line that's a good point i don't know if you can't enough price 70 yeah it did work so if you click on the line number
50:08 it's going to select the whole line so you're sure you're at the right place well i learned something new okay man vs
50:15 code is so powerful so i click 69 and then i just hit delete right on my keyboard
50:21 delete okay now that one has 69 so i need to select that delete now select
50:29 and i'm double checking that that little highlighted work that i'm really doing that so it's three lines
50:34 now your mileage may vary just a little bit on this but for the most part you're probably only
50:40 gonna have three lines here all right so we delete now what i need to save changes right
50:46 yep okay so and this is where like if we didn't select exactly the right thing
50:53 there and really was literal like i wanted to be literal and did lines yeah you would have been messed up and
50:59 uh dnam wouldn't have even loaded because it would have been a mild formatted uh web config file so iis would have
51:06 said uh you didn't say the magic word okay i don't know send what you mean
51:12 [Laughter] so we're gonna do this right okay save
51:17 and now let's reload let's just make sure that we're okay i'm gonna actually close this out and i'm going to
51:23 just try to visit the homepage again
51:29 are we having fun or what oh yeah this is going smoothly i mean we only
51:34 had one hiccup and it was because of my little snafu of selecting the dll and the uh
51:40 windows explorer so if we can do this like this you can do it too and you
51:46 should do it all right hey dnn loaded that's a good sign all
51:51 right let's go to the next step looks like we completed that one with satisfaction all right number 12 verify in the bin
51:58 folder there are no dlls daniel got to get it going to work on
52:04 your grammar here no deal okay well you should have said
52:10 dll then okay there is no dlls including the word telrick so
52:15 what you're saying here is we need to go to the file system and in the root
52:22 go to bin folder and we want to search this for the word telerik is that
52:27 right so could i just use the search here absolutely okay so i'll do a search
52:35 they found one should we delete that one well i haven't accounted for this one in the
52:42 releases i did this one because did this on purpose because i wanted to get you on
52:48 that however at the state we are now you could uninstall this module it served
52:53 its purpose that is true that's true so you know it's it this is a sanity check just to make sure
52:59 you don't have any dlls in there that might just manually be you know using
53:04 telerik now in this case we know that this dll this matches iowa computergurus.dnntelric identifier
53:12 that's the module we just installed to help us identify toric stuff what bit us in the butt when we're looking for
53:17 tailoring you guys you guys you guys okay so that looks good it's fun because the
53:24 telerik analyzer has telerik in it and the dnn things that have tail rick and everything so
53:29 if you look at the source code of that module there's a bunch of ifs to not show you stuff that it's
53:35 normal at this stage and of course for you uh you know people
53:41 who like manual you know taking a long time to do stuff you could just go through this about five or six
53:47 times and just make sure you don't see you know tell rick anywhere in any of these names
53:52 uh that's another way to do it but yeah that's going to take too long use the search feature yeah just don't
53:58 search your backup folder make sure you're on the right ah that's true that's true you got to be in the bin folder
54:03 all right so now test your third-party modules to make sure they still work without telrick
54:09 well we had a module that you upgraded to not use telex we really don't have anything to test here i mean we can make
54:16 sure that feedback feedback module works but um you know it you could go on the feedback module and enable captcha for
54:22 everybody and we should see a capture that's a good point all right so we'll go to feedback module
54:30 and we'll wait for it to learn and you want to configure this right to
54:36 use captcha is that right yeah it's in the model settings on the other one on the gear
54:43 and settings and i'm not going to have a site key in a
54:48 private key to use is that okay no because this model supports both the regular dnn built-in captcha which is
54:55 super basic or you can configure it to use google so if you just enable captcha for everybody
55:02 on the above where you are for all of us this is going to be the basic dnn one
55:08 if you pick use gold which was a tower of control right which was a calorie control that
55:14 was broken because we had to shuffle things around and work around the telerik
55:20 vulnerability real narrabilities so it has been broken since 9 4 i think and now it's unbroken
55:28 and it doesn't rely on the lyric awesome so is that all i need to do then just enable it for
55:33 all users okay we'll update this and drumroll please
55:41 there it is super amazing don't do that it's there yeah get a
55:47 google api hey if you think this is secure it's not it's not it's not is it better
55:55 than nothing nope maybe better than nothing okay that's maybe too far i'm just pushing it
56:02 uh yeah these things got cracked along these bots just look right through that it's like seeing through a glass window
56:09 don't even exist okay all right so i mean we're done we're tell we're
56:16 fully free we have no tail rig in our dna holy crap
56:24 that is awesome now your mileage may vary when you have that um analyzer module
56:31 identifier sorry i keep giving it the wrong name uh until that list is two pages long it might take you
56:39 a bit more time this is true we kind of set ourselves up for success here and we wanted to keep
56:44 this video you know it's as short as possible here but also give you comfort on every
56:50 single step that it takes to remove so tell rick here so yeah there are some potential complex scenarios that you may
56:57 run into depending on what modules you have installed either customer third party and yeah so
57:04 but this gives you the basic steps to go through and you know if you need any help reach out to the community
57:12 on the forum but at this point the identifier module has no more purpose so you could
57:18 uninstall this if you want to clean up it's true i mean should i keep it around
57:23 just in case i accidentally install something in the future that i just want to kind of you know check every once in a while to make sure
57:29 i didn't reintroduce network or something yeah probably but yeah if the module is written right
57:36 it should not even be able to install well and that's that's the point i guess is you know if you
57:42 do install a module that utilizes telrick in a dnn tailwork way
57:49 now okay so what we mean is it is leveraging the dnn wrappers that
57:54 we spoke of earlier to use telerik for free in the dnn context those won't even work
58:01 anymore because we just removed that all so they'll have no way of actually working that being said
58:06 now they could be using telrick using a license right that they have and they're not using the
58:13 wrappers for dna that's that's okay uh chances are they're on a late you know the latest release of that which is
58:20 way more secure than what we had in the platform so i hope this brings me to think about
58:28 something very important so when you're shopping for a module or you're looking at open source modules
58:34 and everything they won't write in big letters if it uses stellaric or not and they're going to advertise it's
58:40 compatible with dnn9 now just be careful maybe keep a test
58:45 site around with the analyzer before putting this on a site where you already removed telerik
58:53 because the vendor would be right that it's the nn9 compatible you decided manually to remove telerik
58:59 so just be careful on that little thing and yeah that's
59:06 yeah i'm sure most of the the the major vendors in the ecosystem are going to be
59:11 aware of this and and honestly most of them are already telerik free so you're not going to have to worry about it so you know
59:17 it's usually some you know um one-off or something you know that's out
59:22 there that's you know maybe they're not as big of a vendor you know in the space or whatever i for a plethora of reasons they may be
59:29 out there but you know even if you get in a situation where you install something that is 9.8.0 compatible and then you
59:36 realize that it doesn't work i mean you can reach back out to the developer and it's actually a good thing because you reach back out to them and explain to
59:42 them what's going on if they didn't know that people could remove this well this is great incentive for them to update their
59:50 modules to no longer use those uh wrappers so they can really be compatible moving forward because
59:55 when it comes to dnn version 10 and daniel correct me from rome but i think it's going to be a forced removal
1:00:02 of delrick at that point it won't even be there so there is no manual removal at that point it will be removed for you so
1:00:08 you know the path forward is to not be using these old tail rick controls exactly
1:00:15 and both on clean installs and upgrades so when you upgrade to 10 that's going to get removed and if you
1:00:20 haven't tried or tested your stuff it could break yeah well
1:00:26 also uh the core modules there's um i don't know eight or nine of them that
1:00:33 still have a little dependency on telerik and we are working on them just like the feedback module you saw here
1:00:39 so it's on our list and we're going through those to bring you
1:00:44 telerik free versions of those modules excellent great to point that out um i
1:00:52 guess i'll go back to this shot here so there you have it folks how to remove telrick completely
1:01:00 uh from dnn 9.8.0 daniel thanks for joining yeah i hope if
1:01:05 you guys enjoy this content please hit the subscribe button below and hit the
1:01:11 little notifications icon so that you'll get notified when future live streams come out of course if you miss those live streams
1:01:17 you can always come to the channel and just see those uh on a replay on demand basis thanks for
1:01:23 joining us hope you have a great night take care

RELATED VIDEOS

Introducing DNN 9.8.0 What You Need To Know - Melting The Iceberg That Almost Sank The Ship
Oct 04, 2020

Today I'll be chatting with Mitchel Sellers (https://www.mitchelsellers.com), the Technology Lead for DNN Platform, about the latest and GREATEST release - DNN Platform 9.8.0. This truly is an epic release and there is much to chat about.