Updating from ASP.NET Framework (VB) and ADO.NET to ASP.NET Core (C#) and EF Core

Viewed 46

tl;dr

I am updating a website from ASP.NET Framework (VB) and ADO.NET to ASP.NET Core (C#) and EF Core

  1. EF Core

How can I join tables from existing separate databases using EF Core?

  • The tables already exist, the fields being joined on are not primary keys, and they don't follow a naming convention.
  • Same DbSets in multiple contexts?
  • Try to include multiple databases in one context by qualifying table names (.dbo)?
  • Using views to select cross-database?
  • Other ideas I'm not aware of?
  1. Application

Which approach would scale well for this large of application?

  • Blazor Server - this is what I’ve spent the most time on, but ran into plenty of "second operation on this context" errors. Is this a limitation of Blazor Server or do I just need to understand it and handle it better?
  • Blazor WASM, MVC, Razor pages? Almost all users are on Chromebooks
  • Based on the below info, are there any obvious advantages or is it just developer preference?

Background

I am starting the task of upgrading a very large internal staff website to a more modern design. Current website info:

  • ASP.NET Framework 4.8
    • Over 300 .aspx pages (VB)
  • SQL Server
    • Around 20 different databases
    • Around 200 tables amongst those databases
    • Each database has its own Stored Procedures, Functions, and Views

The website user count is in the 1000 range, with on average 100-200 active users at a time.

Almost all users connect to the website via Chromebooks.

The primary goal is responsiveness. This website has been around for a long time, and was designed long before Bootstrap, etc.

I figured if I'm going to rewrite the .master pages and all the .aspx pages, I should also make the move to ASP.NET Core and EF Core (and C# of course, it's still using VB)

Problem

Where I keep getting stuck is designing the database models. Entity Framework is a new concept for me. With the size of the existing SQL database, this will obviously be a database first approach.

I have already spent a few weeks trying Blazor Server, MVC and Razor pages. Once I got hung up on something I’d move onto the next one and try that.

Whichever I go with, it is going to be a lot of work upfront to get the foundation in place. I realize that, but I would prefer to select the best scalable approach before spending all the time to upgrade.

0 Answers
Related