if you pick a spa framework like angular (or react which I prefer) then you will just be using the asp.net core webapi, and this will be a big rewrite.
ado.net is still fully supported, EF core and dapper are just wrappers. dapper is a lite wrapper that maps result sets to class objects. EF core is more of a true ORM. You can mix them. Your current database code should just work. You will need to decide if you want to migrate. I use dapper a lot (even in mvc 3) as its simpler code.
asp.net core has two razor technologies, razor views which are very compatible with MVC 3 razor views, and razor pages which combine razor views and controller actions into a single page.
converting mvc3 to pretty straight forward.
- the binding is stricter and you may have a few issues. mvc3 converted query strings, form posts and json to name valued pairs, and had a name resolution order. asp.net core is more formal. if you mix query string and form posts, you will need to specify them binding source.
- a common issue is there is no static access to HttpContext.
- session access is asynchronous, and requests are not serialized as they were in mvc3
- if you are a big WCF user, you are in for a disappointment. while the story is better than it was, it's still a second class citizen.
tfs support is via your IDE, and has no impact on framework version. azure / aws deployments have better GitHub support. both azure and aws have good asp.net core support. Both charge less for linux / docker hosting.
there are advantage to .net core.
- you get the latest c# compiler, which has a lot of handy new features.
- you can build websites hosted on linux.
- the architecture is much better than webform/mvc.
- it has strong support with a new release every year. this is also a disadvantage. as a LTS version is only supported for three years (a new LTS happens every two years), and you will be required to upgrade every couple years if you want support.
- in general the performance is better
for a quick start, you need to have a little understanding of injection as its used a lot. you can use the migration wizard on your code, but often it is easier to create a new core project and add the old code. I recommend converting all your libraries to .net standard 2.0 first. this allows them to work with old and new code. doing this will clean up any 4.8 dependencies and you can work out issues before migration.
if you create sample, you want mvc and controllers.
dotnet new mvc
if you want to play with angular or react, there is a template for both. visual studio has more complex templates than dotnet, so you might want to use visual studio to create but to just pay try:
dotnet new angular
or
dotnet new react