Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 verzamelen vaak technische schulden 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.
Overkoepelende zorgen
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, gedistribueerde of uitvoercache 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 ASP.NET Core ingebouwde container.
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 de afhankelijkheidsboom - U moet bibliotheken bijwerken in postorder-diepte-eerst-doorzoekingsvolgorde.
- Vereisten voor meerdere doelgroepen : bibliotheken moeten alle frameworkversies ondersteunen waarop de app is gericht.
- API-compatibiliteit : ervoor zorgen dat bibliotheken tijdens de migratieperiode met beide frameworkversies werken.
- Complexiteit van testen : elke bibliotheekupgrade vereist grondige tests om compatibiliteit te garanderen.
Verschillen tussen toepassingsarchitectuur
De fundamentele verschillen tussen ASP.NET Framework en ASP.NET Core extra uitdagingen creëren:
- 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. Met deze aanpak kunnen teams deze problemen geleidelijk oplossen terwijl een werkende toepassing in productie wordt onderhouden.
Voor documentatie over belangrijke gewijzigde onderdelen raadpleegt u de bijbehorende onderwerpen op Complexe migratiescenario's - Deep dive-gebieden.
Begin hier: Kies uw migratiepad
U kunt uw ASP.NET Framework-toepassing verplaatsen naar ASP.NET Core. De sleutel is het kiezen van de juiste benadering voor uw specifieke situatie.
Tip
Ongeacht het pad dat u kiest, kan de GitHub-Copilot-app moderniseringsagent uw oplossing evalueren, een upgradeplan genereren en veel van de migratiestappen automatiseren. Zie Meer informatie over het upgraden van ASP.NET MVC, web-API en webformulieren naar ASP.NET Core.
Handleiding voor snelle beslissingen
Beantwoord deze vragen om uw aanpak te kiezen:
Wat is uw tijdlijn en risicotolerantie?
- Moet tijdens de migratie in productie blijven → incrementele migratie
- Kan zich een volledige herschrijf-→ In-place migratie veroorloven
Hoe groot is uw toepassing?
- Kleine tot middelgrote apps → In Place Migratie
- Grote productie-apps → Incrementele migratie is veiliger
Hebt u complexe afhankelijkheden?
- Onbekende of verouderde afhankelijkheden → incrementele migratie
- Intensief gebruik van System.Web → Incrementele migratie
- Minimale afhankelijkheden → in-place migratie
Incrementele migratie
Incrementele migratie is een implementatie van het Strangler Fig-patroon. Het is het beste voor grotere projecten of projecten die gedurende een migratie in productie moeten blijven. Zie Aan de slag met incrementele ASP.NET om een toepassing stapsgewijs te migreren naar ASP.NET Core migratie.
In-place migratie
Plaatselijke migratie kan werken voor voldoende kleine toepassingen. Indien mogelijk biedt deze aanpak een snelle vervanging van de toepassing. Kleine problemen kunnen zich echter opstapelen als u besluit een in-place-migratie uit te voeren. Zie Learn to upgrade from ASP.NET MVC, Web API, and Web Forms to ASP.NET Core voor informatie over opties voor migratiehulpmiddelen.