Latest / DevQuestions with Tim Corey / 179 Why Should I Upgrade My .NET Application?
Transcript
- 0:00SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_00: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_00: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_00: Now, here's your host, expert developer and online educator Tim Corey.
- 0:25SPEAKER_02: Why should I update my.NET application?
- 0:30SPEAKER_02: Upgrading an application can be expensive, so how do I justify that upgrade cost?
- 0:36SPEAKER_02: This is a question that was asked on the DevQuestion site, and it's especially relevant now with.NET 8 coming out soon.
- 0:41SPEAKER_02: So I thought we'd tackle it in today's episode of DevQuesti.
- 0:45SPEAKER_02: Now, when we talk about upgrading, it may be that you're on.NET 7 and your boss asks, well, why should we upgrade a.NET 8?
- 0:53SPEAKER_02: Okay, that's one small step as opposed to if you're on.NET framework and you're trying to justify moving to.NET 8.
- 1:04SPEAKER_02: Okay, so let's talk through both.
- 1:07SPEAKER_02: Okay, we're gonna cover the whole spectrum of upgrading your application.
- 1:11SPEAKER_02: Now, I want to point this out because often developers, we want the latest and greatest stuff.
- 1:18SPEAKER_02: And as a business owner, on the other hand, they don't typically care about versions.
- 1:25SPEAKER_02: They don't even really care about using C sharp versus Java.
- 1:29SPEAKER_02: What they care about is the end result, right?
- 1:32SPEAKER_02: The application does what it's supposed to do.
- 1:35SPEAKER_02: So if it does what it's supposed to do today, why should I spend a whole lot of money to get it to be in the same spot it is today?
- 1:43SPEAKER_02: That's what they feel like.
- 1:45SPEAKER_02: So let's talk about what are the reasons for upgrading versions.
- 1:50SPEAKER_02: Number one, and we're talking focused in on.NET for because this channel covers.NET stuff, but this really applies to almost any software development.
- 1:59SPEAKER_02: But let's focus in on.NET.
- 2:00SPEAKER_02: Number one, and the most important reason, probably one of the most important reasons, is speed increases.
- 2:08SPEAKER_02: Okay.
- 2:09SPEAKER_02: So if you're on.NET Framework and you want to upgrade to.NET 8, the same exact code, once you get to work in.NET, okay, so the same exact code will run faster, much faster.
- 2:24SPEAKER_02: That means cheaper hosting because you're doing less work on the processor.
- 2:29SPEAKER_02: That means more customer supported.
- 2:32SPEAKER_02: That means better scalability.
- 2:34SPEAKER_02: So right out of the box, with no other code changes besides getting it upgraded to.NET 8, let's say, um, you'll get speed increases.
- 2:44SPEAKER_02: Okay, now how much?
- 2:46SPEAKER_02: It really depends on what code you use.
- 2:48SPEAKER_02: Some things will be orders of magnitude faster, others will be 80% faster, 60% faster, 20% faster.
- 2:56SPEAKER_02: It just depends on the area.
- 2:58SPEAKER_02: But overall, every version of.NET.
- 3:02SPEAKER_02: So when.NET Core came out, that was a massive speed increase.
- 3:06SPEAKER_02: And then you know,.NET Core 3 and uh.NET 5,.NET 6,.NET 7, now.NET 8, they all have speed increases as part of their core.
- 3:17SPEAKER_02: Pardon the pun, uh, the core of what they do.
- 3:21SPEAKER_02: The core of the new version of.NET is improvements in performance.
- 3:27SPEAKER_02: So just upgrading your application will make it faster.
- 3:32SPEAKER_02: Now, if you're on.NET Core or.NET 5, number two is you stay in a support window.
- 3:40SPEAKER_02: So if you're on.NET Core, let's say 3.1 or.NET 5,.NET 6, then you're gonna stay in a support window by continuing to upgrade to the latest version or the latest long-term support version, whichever you choose.
- 3:54SPEAKER_02: So right now we're just in the end of the first year of.NET 7.
- 4:01SPEAKER_02: So.NET 8, when it comes out, well, that signals the end since.NET 7 was a standard term support, STS.
- 4:10SPEAKER_02: So that's going to only be supported through, I believe, May of 2024, whereas.NET 8 will be supported for three years.
- 4:19SPEAKER_02: So, you know, whichever you, if you're on.NET 6, well, you've got about a year left on.NET 6 before you have to move off of that to.NET 8 or beyond.
- 4:29SPEAKER_02: So, stay in a support window, what does that get you?
- 4:33SPEAKER_02: Well, if you call Microsoft up and say I have this problem, they can help you out.
- 4:37SPEAKER_02: Now they're not going to write code for you necessarily, but maybe there's a bug in how their code works.
- 4:43SPEAKER_02: Maybe there's a feature you need, you might be able to get help from that.
- 4:48SPEAKER_02: And they will do bug fixes and security fixes for the versions of.NET all the way up whenever they're supported.
- 4:57SPEAKER_02: So once they're no longer supported, you no longer get security fixes or bug fixes.
- 5:02SPEAKER_02: Now, if you're not on.NET Core or.NET 5, your number two reason to upgrade if you're on.NET framework is cross-platform support.
- 5:12SPEAKER_02: Because.NET framework is still supported.
- 5:14SPEAKER_02: Okay?
- 5:15SPEAKER_02: So you're still in a support window.
- 5:16SPEAKER_02: And if you want to stay there, according to Microsoft,.NET framework will be supported as long as Windows is.
- 5:24SPEAKER_02: Now, is that the reality?
- 5:26SPEAKER_02: I don't know.
- 5:27SPEAKER_02: It might be or it might not be.
- 5:30SPEAKER_02: Who knows?
- 5:31SPEAKER_02: You're not getting new features.
- 5:33SPEAKER_02: You're not getting you know anything more than critical bug fixes and um security patches.
- 5:40SPEAKER_02: And really bug fixes, it's gonna be pretty critical in order to fix it.
- 5:43SPEAKER_02: It's mostly just security fixes.
- 5:45SPEAKER_02: So with.NET framework you're still supported but if you move to.NET, let's say eight, you'll get cross-platform support, which means cheaper Linux hosting.
- 5:57SPEAKER_02: So if you get a web application, it's a whole lot cheaper to run on Linux than it is on Windows.
- 6:04SPEAKER_02: So therefore you get cheaper hosting.
- 6:07SPEAKER_02: You also get cheaper faster VMs or cheaper faster Docker containers.
- 6:13SPEAKER_02: So there's a lot of savings when it comes to moving to the latest version of.NET.
- 6:20SPEAKER_02: Now number three, regardless if you're on.NET Core already or if you're on.NET Framework, upgrading will give you a larger pool of developers.
- 6:30SPEAKER_02: Okay, so when developers come out, like when they're when they're first starting out when they're when they're learning software development, they like to learn the latest thing.
- 6:43SPEAKER_02: The problem is that with companies you're often working on legacy code because companies don't upgrade all the time.
- 6:52SPEAKER_02: There's a lot of companies still on.NET Framework there's a lot of companies on.NET Core 3.1 or.NET 5 or.NET 6.
- 7:01SPEAKER_02: So as you fall down the list, as your version you're currently on gets older and older and older, the number of people who have been trained on your version and who want to work on your version will get smaller and smaller and smaller.
- 7:22SPEAKER_02: So when you upgrade you increase the pool of developers you can choose.
- 7:28SPEAKER_02: And as the the number of developer requirements the number of people that would need developers grows the the um the fight to get a good developer a good developer not just any developer is going to get harder.
- 7:44SPEAKER_02: So you want to be able to have the most opportunity to bring people in.
- 7:50SPEAKER_02: And then number four there's the risk of the path going away the upgrade path so right now you can still upgrade from.NET framework to.NET 8.
- 8:04SPEAKER_02: At some point that path is going to kind of go away and in fact even now it's not as clean as it used to be my recommendation is to move your code to.NET standard which means going to.NET 6.
- 8:23SPEAKER_02: And I don't believe that.NET 8 is going to support.NET standard which means you have to stay on.NET 6 with your code and upgrade your.NET framework slowly over a.NET 6 and then upgrade from.NET 6 to.NET 8.
- 8:36SPEAKER_02: It's now a two-step process.
- 8:38SPEAKER_02: Now there's some tools in place that maybe make it still a one-step process but it's a little uh longer of a process.
- 8:46SPEAKER_02: So the the far you get away, if we're on.NET 10 or 12, is there an easy process from.NET framework to.NET 12?
- 8:56SPEAKER_02: Which again is four years away.
- 8:57SPEAKER_02: Don't worry about it.
- 8:58SPEAKER_02: But is there an easy process there?
- 9:01SPEAKER_02: Probably not which means that your code may get to a point where it's obsolete.
- 9:08SPEAKER_02: It's not something can be upgraded.
- 9:11SPEAKER_02: Instead it has to be rewritten.
- 9:13SPEAKER_02: Which is cheaper to upgrade existing code or to rewrite code?
- 9:21SPEAKER_02: I can tell you it's not the rewrite okay so upgrading code will always be cheaper than trying to redo the entire application especially in anything enterprise anything with anything any scale is going to be expensive to rewrite all at once.
- 9:41SPEAKER_02: And I've seen companies over and over and over miss this fact.
- 9:44SPEAKER_02: And they say well it's going to cost us half a million dollars to upgrade we just don't want to do we don't we don't want to spend a half million dollars.
- 9:51SPEAKER_02: And it keeps going on like that until their software is obsolete and they have to hire 10, 12, 15 developers to work in tandem with our current team and try and rebuild the entire application from the ground up.
- 10:06SPEAKER_02: That costs more than half million dollars that costs millions of dollars and takes tons of time because they missed the fact that that half million dollars was going to save them all this future money.
- 10:21SPEAKER_02: So the risk of obsolescence is a danger you have to consider.
- 10:27SPEAKER_02: Now what are some other ways to encourage upgrading because you can say hey you know it's gonna make us faster it's going to you know reduce that ability to or it's going to help us not become obsolete.
- 10:40SPEAKER_02: It's going to help us stay in a support window it's going to you know cross platform.
- 10:44SPEAKER_02: That's all great but it really does feel sometimes with with management like they're looking at it as if the application is going to stand still as if sure it's gonna be a little bit faster sure you're gonna have a little you know more options but really it feels like it's staying still and spending a lot of money to stand still doesn't sound good.
- 11:05SPEAKER_02: So what are some other ways to encourage upgrading?
- 11:08SPEAKER_02: Well number one, it's an opportunity to break the app up maybe right now you have this massive interconnected monolith that is tightly coupled and say hey you know what we can pull apart pieces and make this easier to upgrade over time making you know if we right now if we make a change we have to take the whole app down we have to you know relaunch the whole thing it takes some time and it ties the entire company up.
- 11:33SPEAKER_02: If we break some parts off we can upgrade a part without taking down the entire application and maybe make this thing a little bit more flexible, a little more modular.
- 11:43SPEAKER_02: So that's one opportunity.
- 11:45SPEAKER_02: Number two, you can lay the groundwork for new platforms.
- 11:50SPEAKER_02: Say hey you know what this upgrade not only is going to allow us to upgrade our application but I know you really want mobile and you want a mobile app for our software this is the best way to prepare for that is to get all of our foundation set so you can start using.NET Maui to use our our our mobile app.
- 12:10SPEAKER_02: Or maybe you want to use Uno or um you know Avalonia.
- 12:15SPEAKER_02: So but you can say hey we're getting ready for that.
- 12:18SPEAKER_02: And the way to do that is to set up our foundation properly.
- 12:22SPEAKER_02: Number three, you can do this as part of a UI refresh.
- 12:26SPEAKER_02: A UI refresh is always you know something that kind of gets people excited the idea that it looks different.
- 12:33SPEAKER_02: It's got some new features it've got some new you know layouts.
- 12:35SPEAKER_02: Just be careful you don't put too much in there all at once but say hey we want to have a new UI that's that's easier to use that allows our users to work on more platforms, whatever it may be.
- 12:48SPEAKER_02: So this is part of that foundational work.
- 12:51SPEAKER_02: Number four, sometimes you have some really tough bugs that are just baked into the system where in order to fix that bug, you have to rip everything apart.
- 13:01SPEAKER_02: Well you're gonna rip everything apart so maybe it's an opportunity to fix some of those tough bugs that have been sitting on the books for years that you your manager keeps telling the the vice presidents, we just can't fix it.
- 13:15SPEAKER_02: We just can't fix it.
- 13:16SPEAKER_02: Well now you can say hey we're gonna try and fix that bug while we're in there.
- 13:20SPEAKER_02: While we have you know the the patient on the table and while we're working on it, we're gonna try and rip out that section redo it so that we can fix those tough bugs.
- 13:31SPEAKER_02: And then number five, it's a way to speed up future development.
- 13:36SPEAKER_02: Sometimes a system gets so bogged down that making a small change means lots of work where you have to do a lot of different things in order to get this thing to work.
- 13:52SPEAKER_02: And if you can modify your app as you upgrade it, maybe make it more modular, maybe you can redo or restructure how it's built, you can make future development easier and faster, which means that bugs could get fixed faster, new features can get implemented faster and so on.
- 14:11SPEAKER_02: So these are the ways to kind of communicate what could be done as part of this upgrade process.
- 14:19SPEAKER_02: Be careful not to put too much into the upgrade process because when you overpromise and underdeliver, that makes people upset.
- 14:28SPEAKER_02: But if you can say hey we're setting a good foundation we want to make sure that our the foundation we build our entire company on which is this application we want that to be as rock solid as possible as fast as possible as secure as possible as upgrade friendly as possible want to have the best team working on it that's why we're upgrading that's one that's the that's the ideal way to communicate this but if it's a hard sell if they're still pushing back there are ways to add like these five things you can add things in to say hey let's sweeten the deal a little bit we're gonna do this.
- 15:04SPEAKER_02: We want to set this foundation right but part of that foundation will allow us to do this other thing you've been looking for.
- 15:11SPEAKER_02: This will allow us to make our application better and give you something that you've been looking for but that's been too tough to do up until now.
- 15:21SPEAKER_02: So upgrading is really important.
- 15:24SPEAKER_02: Keeping your application as modern as possible is important for a number of reasons but it can be really hard and it can be difficult to communicate to management the idea that this is important.
- 15:38SPEAKER_02: Now the the more you do it the more you just build it in as part of the cost of development the easier it will be because if you're upgrading right now from.NET 7 to.NET 8, that upgrade process will be fairly small.
- 15:55SPEAKER_02: Now if you're upgrading from.NET Core 3.1 to.NET 8, that process will be a little bit bigger.
- 16:03SPEAKER_02: If you're upgrading from.NET framework to.NET 8, that process will be a lot bigger.
- 16:09SPEAKER_02: So the the more time you can upgrade sl small things, the better.
- 16:15SPEAKER_02: If you upgrade from seven to eight now and then from eight to nine and nine to ten, well those upgrade processes will be rather small comparatively.
- 16:25SPEAKER_02: And so maybe it's two weeks of time every year as opposed to two months of time every two years or half a year of time every six years or eight years.
- 16:41SPEAKER_02: And you know that's just part of the benefit is having that smaller time over time as opposed to one big long section, but also keeps in the latest, keeps you running the fastest code, it keeps you bringing in new developers who want to work on your code and so on.
- 16:58SPEAKER_02: So that's my recommendation for how to talk about upgrading your version of.NET or your version of any software to the latest to make sure you're on not not the bleeding edge, but near to the cutting edge, near to the the the newest stuff don't don't move to the the brand new stuff right away necessarily make sure you test but getting as close as possible is a good thing.
- 17:25SPEAKER_02: Okay?
- 17:25SPEAKER_02: So that's my advice thanks for listening.
- 17:27SPEAKER_02: And as always I am Tim Corey.
- 17:30SPEAKER_01: Thank you for joining us for this episode of Dev Questions.
- 17:33SPEAKER_01: Tim is committed to making it easier for you to become a developer.
- 17:36SPEAKER_01: If you would like to help make more content like this possible please like subscribe rate and share Dev Questions.
- 17:44SPEAKER_01: You can also send your questions to questions at IamTimcore.com.
- 17:49SPEAKER_01: Until next time, remember you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 17:56SPEAKER_01: When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course