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 alway

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.