Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Important
Başlamadan önce: Bu makalede , ASP.NET Core geçişe genel bakış makalesini okuduğunuz varsayılır. Henüz okumadıysanız, artımlı geçişin kavramlarını, yaklaşımını ve avantajlarını anlamak için lütfen buradan başlayın.
Büyük bir geçiş için, özgün .NET Framework uygulamasına proxy'ler sağlayan bir ASP.NET Core uygulaması ayarlamanızı öneririz. Yeni proxy özellikli uygulama aşağıdaki görüntüde gösterilmiştir:
Bu makalede, yaklaşımı anladıktan sonra artımlı geçişe devam etmek için pratik adımlar sağlanmaktadır.
Prerequisites
Artımlı geçişinize başlamadan önce şunlara sahip olduğunuzdan emin olun:
- Genel bakışı okuyun: ASP.NET'ten ASP.NET Core'a kademeli geçiş
- Geçirmek istediğiniz çalışan bir ASP.NET Framework uygulaması
- En son güncelleştirmelerle Visual Studio 2022
- .NET 8 veya üzeri SDK yüklü
- Uygulamanızın bağımlılıklarını ve üçüncü taraf kitaplıklarını anlama
Geçiş Adımlarına Genel Bakış
Artımlı geçiş işlemi şu temel adımları izler:
- ASP.NET Çekirdek Proje ayarlama
- Teknik Borcu Düzeltme
- Disiplinler arası konuları belirle ve ele al
- Destekleyici kitaplıkları yükseltme
ASP.NET Çekirdek Proje ayarlama
İlk adım, ara sunucunuz olarak görev yapacak yeni ASP.NET Core uygulamasını oluşturmaktır.
Ne yapacaksınız:
- Mevcut ASP.NET Framework uygulamanızla birlikte yeni bir ASP.NET Core projesi oluşturma
- YARP (Ancak Başka Bir Ters Ara Sunucu) kullanarak özgün uygulamanıza yönelik ara sunucu istekleri için yapılandırın
- Artımlı geçiş için temel altyapıyı ayarlama
Ayrıntılı yönergeler:
- Artımlı geçiş için bir uygulamanın nasıl ayarlandığını anlamak için bkz. Uzak uygulama kurulumu .
- Visual Studio araçlarını kullanarak artımlı geçiş için gereken projeleri ayarlama konusunda yardım için bkz. ASP.NET MVC, Web API ve Web Forms'dan ASP.NET Core'a yükseltmeyi öğrenin .
Teknik Borcu Düzeltme
Bu adımın ne zaman yapılması gerekiyor: Destek kitaplıklarını yükseltmeden önce, geçiş sürecini karmaşıklaştırabilecek teknik borçları giderin.
Destek kitaplıklarınızı yükseltmeye başlamadan önce, geçiş sürecini engelleyebilecek teknik borcu temizlemeniz önemlidir. Daha sorunsuz bir yükseltme deneyimi sağlamak için önce bu adımın tamamlanması gerekir.
Paket Bağımlılıklarını Güncelleştirme
NuGet paketlerinizi gözden geçirin ve en son uyumlu sürümlere güncelleştirin:
-
Mevcut paketleri denetleme: CLI ASP.NET Framework uygulamalarında çalışmadığından Visual Studio'nun NuGet Paket Yöneticisi'ni
dotnetkullanın - Paketleri artımlı olarak güncelleştirme: Uyumluluk sorunlarını önlemek için paketleri birer birer güncelleştirin
- Her güncelleştirmeden sonra test edin: Uygulamanızın her paket güncelleştirmesinin ardından düzgün çalıştığından emin olun
- Hataya neden olan değişiklikleri giderme: Bazı paket güncelleştirmeleri, çözülmesi gereken hataya neden olan değişikliklere neden olabilir
Yapı Araçlarını Modernleştirme
Derleme araçlarınızı ve proje yapılandırmanızı güncelleştirin:
- Güncelleştirme araçları: MSBuild/Visual Studio'nun son sürümünü kullandığınızdan emin olun
-
Bağımlılıklar için PackageReference'a geçin: Web uygulaması projesinde henüz yapmadıysanız,
packages.configbiçimindenPackageReferencebiçimine geçişi göz önünde bulundurun - Kullanılmayan başvuruları temizleme: Kullanılmayan derleme başvurularını veya NuGet paketlerini kaldırın
- SDK stili proje dosyalarına geçiş: Mevcut proje dosyalarınızı modern SDK stili biçime dönüştürün. Bu, modern .NET projeleri ile uyumluluk açısından önemlidir ve daha iyi araç desteği sağlar
- Derleme betiklerini güncelleştirme: Özel derleme betiklerini veya CI/CD yapılandırmalarını gözden geçirin ve güncelleştirin
Kod Kalitesi Sorunlarını Giderme
Geçişi karmaşık hale getiren bilinen kod kalitesi sorunlarını düzeltin:
- Derleyici uyarılarını düzeltme: Özellikle kullanım dışı API'lerle ilgili derleyici uyarılarını ele alın
- Geçersiz kodu kaldırma: Kullanılmayan sınıfları, yöntemleri ve diğer kod öğelerini temizleme
- Kullanım dışı API kullanımını güncelleştirme: Kullanım dışı API'lerin kullanımını mümkün olduğunca modern eşdeğerleriyle değiştirin
Bu hazırlık çalışması kitaplık yükseltme işlemini çok daha sorunsuz hale getirecek ve geçiş sırasında karmaşık sorunlarla karşılaşma olasılığını azaltacaktır.
Hizmetler arası endişeleri belirleme ve ele alma
Bu adım ne zaman yapılmalıdır: Teknik borcu düzeltirken ancak destekleyici kitaplıkları yükseltmekten önce, uygulamanızın tamamını etkileyen genel sorunları belirleyin ve yapılandırın.
Uygulamanızın farklı katmanları veya bileşenleri kapsayan kesimsel endişeler, kimlik doğrulama, oturum yönetimi, günlüğe kaydetme ve önbelleğe alma gibi konulardır. ASP.NET Framework ve ASP.NET Core uygulamalarınızın artımlı geçiş sırasında iletişim kurma ve paylaşma durumunu etkilemesi nedeniyle bunların geçiş sürecinin erken aşamalarında ele alınması gerekir.
Aşağıdaki bölümlerde en yaygın genel kaygılar ele alınıyor. Yalnızca uygulamanıza uygulananları yapılandırın:
Oturum Desteği Yapılandırması
Şu durumda bunu yapılandırın: ASP.NET Framework uygulamanız oturum durumunu kullanıyor.
Burada yönergeler için genel oturum geçişi belgelerine bakın.
ASP.NET'te yaygın olarak kullanılan "Oturum" adlı özellik, ASP.NET Core'da aynı adı taşıyan bir başka özellik ile karıştırılabilir, ancak API'ler tamamen farklıdır. Oturum durumunu kullanan kitaplıkları yükseltirken oturum desteğini yapılandırmanız gerekir. Uygulamalarınız arasında oturum durumu paylaşımını etkinleştirme hakkında ayrıntılı yönergeler için uzak oturum desteği belgelerine bakın.
Kimlik Doğrulama Yapılandırması
Şu durumda bunu yapılandırın: ASP.NET Framework uygulamanız kimlik doğrulaması kullanıyor ve eski ve yeni uygulamalar arasında kimlik doğrulama durumunu paylaşmak istiyorsunuz.
Burada yönergeler için genel kimlik doğrulaması geçiş belgelerine bakın.
System.Web adapters uzak kimlik doğrulama özelliğini kullanarak özgün ASP.NET uygulamasıyla yeni ASP.NET Core uygulaması arasında kimlik doğrulamasını paylaşmak mümkündür. Bu özellik, ASP.NET Core uygulamasının kimlik doğrulamasını özgün ASP.NET uygulamasına ertelemesine olanak tanır. Daha fazla ayrıntı için uzaktan kimlik doğrulaması belgelerine bakın.
Dikkate Alınması Gereken Diğer Genel Geçer Konular
Uygulamanıza bağlı olarak şunları da ele almanız gerekebilir:
- Loglama: Her iki uygulamada da tutarlı loglama olduğundan emin olun. Paylaşılan günlük sağlayıcısı kullanmayı veya günlüklerin düzgün bir şekilde toplandığından emin olun.
- Önbelleğe alma: Uygulamanız önbelleğe alma (bellek içi, dağıtılmış veya çıkış önbelleğe alma) kullanıyorsa, uygulamalar arasında önbellek tutarlılığını nasıl koruyacağınızı planlayın.
- Hata İşleme: hem ASP.NET Framework hem de ASP.NET Core uygulamalarında tutarlı hata işleme ve raporlama oluşturun.
- Yapılandırma Yönetimi: Yapılandırma ayarlarının iki uygulama arasında nasıl paylaşılacağını veya yönetileceğini planlayın.
- Sistem Durumu İzleme: Geçiş işlemi sırasında her iki uygulama için de izleme ve sistem durumu denetimleri ayarlayın.
- Bağımlılık Ekleme: ASP.NET Framework uygulamanızda BIR DI kapsayıcısı kullanıyorsanız, ASP.NET Core'un yerleşik DI kapsayıcısına geçişi planlayın.
Destekleyici kitaplıkları yükseltme
Bu adımın ne zaman yapılması gerekiyor: Yalnızca iş mantığı içeren sınıf kitaplıklarına bağlı belirli yolları geçirmeniz gerektiğinde, eski ve yeni uygulamalar arasında paylaşmanız gerekir.
Note
Artımlı yaklaşım: Artımlı geçiş işlemiyle tüm destekleyici kitaplıklarınızı aynı anda yükseltmeniz gerekmez. Sadece şu anda taşımakta olduğunuz belirli yollar için gerekli olan kitaplıkları yükseltmeniz gerekir. Bu, geçişi daha küçük ve daha yönetilebilir parçalar halinde ele almanızı sağlar.
Kitaplık Yükseltme İşlemi
Important
Destekleyici kitaplıklar , sıra sonrası derinlik öncelikli arama sıralamasında yükseltilmelidir. Bu, şu anlama gelir:
- Yaprak bağımlılıkları ile başlayın: Çözümünüzdeki diğer kitaplıklara bağımlılığı olmayan kitaplıklarla başlayın
- Bağımlılık ağacında yukarı doğru çalışın: Yalnızca tüm bağımlılıkları başarıyla yükseltildikten sonra kitaplığı yükseltin
- Ana uygulamayla son: Ana ASP.NET Framework uygulaması değiştirilecek son öğe olmalıdır
Şu nedenden dolayı bu sıralama çok önemlidir:
- Bir kitaplığı yükselttiğiniz zaman, tüm bağımlılıklarının zaten uyumlu olmasını sağlar
- Yükseltme işlemi sırasında döngüsel bağımlılık sorunlarını önler
- Bağımlılarına geçmeden önce her kitaplığı bağımsız olarak test etmenizi sağlar
NOT: Çözümünüzün bütünü için değil, yalnızca şu anda taşımakta olduğunuz yolların gerektirdiği kütüphanelerin alt kümesi için bu sıralamayı takip etmeniz gerekir.
Her kitaplık için yükseltme işlemi:
Çözümünüzde geçiş yaptığınız yollar için kullanmanız gereken destekleyici kitaplıklarınız varsa, mümkünse .NET Standard 2.0'a yükseltilmelidir. GitHub Copilot uygulama modernleştirmesi bu konuda size yardımcı olabilir. .NET Standard'ı hedefleyemeyen kitaplıklar için, ya özgün projedeki .NET Framework hedefiyle birlikte .NET 8 veya üzerini hedefleyebilir ya da özgün projeye paralel yeni bir projede hedefleyebilirsiniz.
System.Web bağdaştırıcıları, sınıf kitaplıklarında kullanım desteğini etkinleştirmek için HttpContext bu kitaplıklarda kullanılabilir. Bir kitaplıkta HttpContext kullanımını etkinleştirmek için:
-
System.WebProje dosyasındaki referansı kaldırın -
Microsoft.AspNetCore.SystemWebAdapterspaketini ekleyin - Çoklu hedeflemeyi etkinleştirin ve bir .NET 8 hedefi veya üzerini ekleyin ya da projeyi .NET Standard 2.0'a dönüştürün.
Bu adım, çözüm yapınıza ve hangi yolları geçirmekte olduğunuza bağlı olarak bir dizi projenin değiştirilmesini gerektirebilir. GitHub Copilot uygulama modernizasyonu , hangilerinin değişmesi gerektiğini belirlemenize ve işlemdeki birkaç adımı otomatikleştirmenize yardımcı olabilir.
Sonraki Adımlar
Yukarıdaki kurulum ve kitaplık yükseltme adımlarını tamamladıktan sonra:
- Küçük başlangıç: İlk olarak basit, durum bilgisi olmayan uç noktaları geçirerek başlayın
- Kapsamlı test: Geçirilen her bileşenin her iki ortamda da düzgün çalıştığından emin olun
- Performansı izleme: Ara sunucu kurulumundan gelen performans etkilerini izleyin
- Yinele: Geçiş tamamlanana kadar bileşenleri artımlı olarak geçirme işlemine devam edin
ASP.NET Core