You have a job doing WebForms .net development and you get the feeling that the world is moving in a different direction. You want to take steps in that direction.

But what technology should you learn? MVC?, Web API? .net core?

"I've been working as .NET developer for about a year on an established web application (large codebase, web-forms). It's been a fantastic learning experience but I'm looking for some guidance on what I should learn to prepare myself for future shifts to more "modern" projects." Redditor

Sound familiar?

There are so many choices nowadays. You could focus on the .net stack but would your time be better spent learning AngularJS or ReactJS?

What about .net core?

The fundamentals remain

Don’t worry too much about this question, specific technologies come and go but the underlying principles remain.

A developer using Classic ASP in the noughties (before it was Classic!) is probably using something different today. Whilst their tools, language and framework have changed, the fundamentals haven’t. Everything they learned about the web; HTML, HTTP requests and responses, is still useful to them today.

Don’t let the choices paralyse you and stop you from taking action.

Whatever you decide to learn, you are going to need to write HTML, CSS and, to simulate the “stateful” approach of WebForms, probably javascript too.

The good news is, you will learn more about some or all of these whichever technology you choose to learn. What’s more, this decision isn’t final. Say you spend some time learning how to build a simple web application using MVC and Razor. You’ve not burned any bridges, you can still learn ReactJS and now you’re in a better position because you can compare the two and take the best ideas from both.

Two approaches, pick one for now

Here are two popular choices for building modern .net Web Applications.

SPA (e.g. AngularJS, ReactJS) + ASP.NET Web API

ASP.NET MVC (using Razor)

Start by picking one of these approaches. You may already have a gut feeling for which you’d rather learn first. If so, go with that, you can always swing back around and try the other approach later.

If not, take a look at the core skills needed for each approach and choose the one which most closely aligns to your current skills. For example, the SPA (single page application) approach is more javascript centric than the MVC (Razor) option.

What about .net core?

If you’re just starting to move away from WebForms, sticking with the release version of ASP.NET means you’ll have more support (tutorials, Stack Overflow posts etc.) whilst you’re learning the ropes.

Whatever you do, don’t let analysis paralysis prevent your from taking the next step because this is where the fun starts, you get to learn something new.