Delen via


Migreren van ASP.NET Framework naar ASP.NET Core

Het bijwerken van een app van ASP.NET Framework naar ASP.NET Core is niet triviaal voor de meeste productie-apps. Deze apps bevatten vaak nieuwe technologieën wanneer ze beschikbaar komen en bestaan vaak uit veel verouderde beslissingen. Deze handleiding bevat praktische benaderingen en hulpprogramma's voor het bijwerken van ASP.NET Framework-apps naar ASP.NET Core met zo weinig mogelijk wijzigingen.

Waarom migratie lastig is

Migreren van ASP.NET Framework naar ASP.NET Core omvat verschillende complexe uitdagingen die een volledige herschrijving moeilijk en riskant maken voor de meeste productietoepassingen:

Technische schuldaccumulatie

Productietoepassingen hebben vaak technische schulden geaccumuleerd in de loop van de jaren van ontwikkeling:

  • System.Web-afhankelijkheden : het pervasieve gebruik van HttpContext en gekoppelde typen in een codebasis.
  • Verouderde pakketafhankelijkheden die mogelijk geen moderne compatibele equivalenten hebben
  • Verouderde buildhulpprogramma's en projectconfiguraties die niet compatibel zijn met moderne .NET
  • Afgeschaft API-gebruik dat moet worden vervangen door moderne alternatieven
  • Compilerwaarschuwingen en problemen met codekwaliteit die de migratie bemoeilijken

Dwarsdoorsnijdende aspecten

Veel toepassingen hebben kruislingse zorgen die meerdere lagen omvatten en zorgvuldige coördinatie nodig hebben tijdens de migratie:

  • Sessiestatusbeheer : ASP.NET Framework en ASP.NET Core hebben fundamenteel verschillende sessie-API's en gedrag
  • Verificatie en autorisatie : verschillende verificatiemodellen en API's tussen frameworks
  • Logboekregistratie en bewaking : moet consistente logboekregistratie voor beide toepassingen behouden tijdens de migratie
  • Cachestrategieën : in-memory, gedistribueerd of uitvoercaching moet consistent worden onderhouden
  • Foutafhandeling : consistente patronen voor foutafhandeling in beide toepassingen tot stand brengen
  • Configuratiebeheer : instellingen beheren die moeten worden gedeeld of gesynchroniseerd tussen toepassingen
  • Afhankelijkheidsinjectie - Migreren van verschillende DI-containers naar de ingebouwde container van ASP.NET Core

Het algemene hostpatroon kan helpen bij het oplossen van verschillende van deze problemen door een moderne .NET-infrastructuur toe te voegen aan ASP.NET Framework-toepassingen. Zie .NET Generic Host in ASP.NET Framework voor meer informatie.

Bibliotheekafhankelijkheidsketens

Ondersteunende bibliotheken hebben vaak complexe afhankelijkheidsrelaties waarvoor zorgvuldige upgradevolgorde is vereist:

  • Complexiteit van afhankelijkheidsstructuur - Bibliotheken moeten worden bijgewerkt in postorder diepte-eerste zoekorder.
  • Vereisten voor meerdere doelgroepen : bibliotheken moeten alle frameworkversies ondersteunen waarop de app is gericht.
  • API-compatibiliteit : ervoor zorgen dat bibliotheken werken met beide frameworkversies tijdens de migratieperiode
  • Complexiteit testen : elke bibliotheekupgrade vereist grondige tests om compatibiliteit te garanderen

Verschillen tussen toepassingsarchitectuur

De fundamentele verschillen tussen ASP.NET Framework en ASP.NET Core zorgen voor extra uitdagingen:

  • Hostingmodellen - Verschillende benaderingen voor het hosten van toepassingen en levenscyclusbeheer
  • Middleware-pijplijn : overstappen van HTTP-modules en handlers naar middleware
  • Aanvraagverwerking - Verschillende modellen en contexten voor aanvraagverwerking
  • Prestatiekenmerken : verschillende patronen en prestatieprofielen voor geheugengebruik

Deze uitdagingen maken incrementele migratie de voorkeursbenadering voor de meeste productietoepassingen, omdat teams deze problemen geleidelijk kunnen oplossen terwijl een werkende toepassing in productie wordt onderhouden.

Zie de bijbehorende onderwerpen die beschikbaar zijn in complexe migratiescenario's - Deep dive-gebieden voor documentatie over belangrijke gebieden die zijn gewijzigd

Begin hier: Kies uw migratiepad

Uw ASP.NET Framework-toepassing kan worden verplaatst naar ASP.NET Core. De sleutel is het kiezen van de juiste benadering voor uw specifieke situatie.

Handleiding voor snelle beslissingen

Beantwoord deze vragen om uw aanpak te kiezen:

  1. Wat is uw tijdlijn en risicotolerantie?

  2. Hoe groot is uw toepassing?

  3. Hebt u complexe afhankelijkheden?

Incrementele migratie

Incrementele migratie is een implementatie van het strangler Fig-patroon en is het meest geschikt voor grotere projecten of projecten die tijdens een migratie in productie moeten blijven. Zie Aan de slag met incrementele ASP.NET voor ASP.NET Core-migratie om stapsgewijs aan de slag te gaan met het migreren van een toepassing.

In-place migratie

Plaatselijke migratie kan werken voor voldoende kleine toepassingen. Indien mogelijk stelt dit een snelle vervanging van de toepassing toe. Kleine problemen kunnen echter worden verergerd als u besluit een in-place migratie uit te voeren. Zie Learn to upgrade from ASP.NET MVC, Web API en Web Forms naar ASP.NET Core voor informatie over migratie-toolingopties.