چند وقت پیش مسئولیت مهاجرت یکی از پروژههای قدیمی از NET Core 3. به NET 8. را بر عهده داشتم.
راستش اول فکر میکردم فقط کافی است نسخه Framework را تغییر بدهم و چند پکیج را آپدیت کنم، اما خیلی زود فهمیدم داستان به این سادگی نیست.
بعد از ارتقا، با مشکلات مختلفی روبهرو شدم:
- ناسازگاری بعضی از پکیجها
- تغییر رفتار AutoMapper و نیاز به بازبینی Mappingها
- خطاهای مربوط به Dependency Injection
- تغییرات EF Core و برخی Queryها
- خطاهایی که فقط در زمان اجرا خودشان را نشان میدادند، نه هنگام Build
این تجربه یک نکته مهم را به من یاد داد:
مهاجرت نسخه فقط ارتقای Framework نیست؛ در واقع فرصتی برای بازنگری در معماری، حذف وابستگیهای قدیمی و بهبود کیفیت کد است.
در پایان پروژه، علاوه بر اینکه از قابلیتها و Performance بهتر NET 8. استفاده کردیم، کدها هم خواناتر و نگهداری آنها سادهتر شد.
اگر قرار باشد دوباره چنین مهاجرتی انجام بدهم، قبل از هر تغییری یک لیست کامل از Packageها، وابستگیها و تغییرات Breaking Change تهیه میکنم. این کار میتواند ساعتها زمان عیبیابی را کاهش دهد.
@DevTwitter | <Ashkan Motahari/>
Post #12582
6.17K
- 🔥 28
- 🍌 27
- ❤ 9