Use DOTVVM for ASP.Net web forms to .Net core 8 migration with Custom component Library

Hi,

I am exploring the feasibility of migrating Asp.net 4.8 Web Forms to .Net core 8.0.

I have applications design with custom components and User controls with JS.

I am trying to explore below options:
a.DOTVVM
b.Blazor
c. MVC Rajor views with Custom components

Below are considerations:

  1. Tight performance SLA
  2. Minimal effort and cost
  3. Minimal Learning curve

Questions I have
a. I feel I need to rewrite UI with fresh DOTVVM controls as I am not using standard controls.
b. Getting feeling that creating same look and feel will be good effort but still 1000 % will not achievable
c. MVVM need to be introduced.
d. I am having other application using MVC razor views so different learning curve as well

Sample converted code:
<dot:Content ID=“Content1” ContentPlaceHolderID=“head”>
</dot:Content>
<dot:Content ID=“Content2” ContentPlaceHolderID=“Title”>
<cd:JsInclude ID=“JsIncludeActivateArchive” DependencyId=“ActivateArchive” FilePath=“ActivateArchive.js” Priority=“999” PathNameAlias=“Admin” />
<asp:HiddenField ID=“hdDelay” ClientIDMode=“Static”/>

<COM:Label ID=“lblArchiveTitle” Text=“<%$ WebsiteResources : MULBL001407 %>”></COM:Label>



 
<COM:Label ID=“lblScheduleArchive” CssClass=“text” Text=“<%$ WebsiteResources : MSG000553 %>”></COM:Label>

			</div>
			<div class="line">
			    <COM:CustomLabel ID="lblArchivePlan" RenderLabelMode="Label" DisplaySemiColon="True" Text="<%$ WebsiteResources :  MULBL001408%>"></COM:CustomLabel>
				 <COM:RadioButton ID="rdForhideYes" CssClassLabel="lblradio" GroupName="Archive" 
                     Text="<%$ WebsiteResources :  LBL000865%>"/>
                <COM:RadioButton ID="rdForhideNo" CssClassLabel="lblradio" GroupName="Archive" 
                    Text="<%$ WebsiteResources :  LBL000866%>"/>
				</div>
			<div>
			   <COM:TextBox ID="txtDaysDelay" CssClass="line" ClientIDMode="Static" MaxLength="2" 
                   RequiredFieldErrorMessage="<%$ WebsiteResources :MSG000470%>"  
                 ValidationExpression="^(\d?[1-9]|[1-9]0)$" RegularExpressionErrorMessage="<%$ WebsiteResources :  MSG000555%>"   
                   Label="<%$ WebsiteResources :  MULBL001409%>"/>
                
			</div>
			<div class="line">
			    <COM:TextBox ID="txtArchiveTables" MaxLength="500" Label="<%$ WebsiteResources :  MULBL001410%>" CssClassTextBox="w60" Width="100%" >
			        
			    </COM:TextBox>
			</div>
		
		<div class="send flottant">
		    <COM:ActionButton ID="btnReinitialize" CssClass="bton" OnClick="BtnCOMeClick" 
                     Text="<%$ WebsiteResources :  MULBL001717%>"> 
		    </COM:ActionButton>	
		</div>

</dot:Content>

Please help to provide experience and Challenges/feedback/Best practices for such migration using DOTVVM.