چند هفته پیش، یکی از شاگردای قدیمیم با اضطراب زیاد سراغم اومد.
لپتاپش تو یکی از اون قطعی برقهای همیشگی دچار آسیب جدی شده بود و هاردش کاملاً از بین رفته بود. نتیجه؟ بیشتر پروژههاش، از جمله یه پروژه مهم چندساله، از دست رفته بودن — بدون هیچ نسخه پشتیبان یا مخزنی روی Git.
🎯 مشکل اصلی:
بعد از صرف کلی وقت و هزینه برای بازیابی اطلاعات، بخشی از فایلهاش رو برگردونده بود.
اما درست زمانی که یکی از مشتریهای قدیمیش برای ارتقای سایتش تماس گرفت و خواست پروژه مجدداً توسعه داده بشه، فهمید که پوشهی Controllerها، که یکی از حیاتیترین بخشهاست، اصلاً برنگشته.
تو صحبتهام باهاش فهمیدم که نسخهای از اپلیکیشن همچنان روی هاست بهدرستی در حال اجراست، اما بهصورت پابلیششده و بدون سورسکد. تنها چیزی که از اون پروژه باقی مونده بود، یک فایل DLL بود.
با نگرانی ازم پرسید: "یعنی هیچ راهی نیست که دوباره به کدم برسم؟"
🛠 راهحلی که پیشنهاد دادم:
اینجا بود که بهش یه تکنیک کلیدی و نجاتبخش یاد دادم. بهش گفتم:
> وقتی سورسکد در دسترس نیست، اما فایل DLL پابلیششده موجوده، میتونی با ابزارهای decompiler مثل ILSpy اون فایل رو به کد C# قابلخواندن تبدیل کنی.
🧰 معرفی ابزار:
🔧 ILSpy (https://github.com/icsharpcode/ILSpy)
یه ابزار رایگان و متنباز برای decompile کردن فایلهای .NET هست.
با نصبش، میتونی خیلی راحت فایل DLL رو باز کنی و به ساختار کدها، کلاسها، متدها و حتی namespaceها دسترسی پیدا کنی.
✅ نتیجه:
با استفاده از ILSpy، تونستیم بیشتر بخشهای گمشده پروژه رو بازسازی کنیم.
البته، کدها دقیقاً مشابه نسخه اصلی نبودن و سبک نوشتار کمی تغییر کرده بود، ولی بهقدری قابل فهم بودن که بتونه دوباره توسعه پروژه رو ادامه بده.
📌 درسهایی که گرفتیم:
✅ همیشه از پروژههات بکآپ بگیر، مخصوصاً روی Git(حتی نسخههای ناتمام!)
✅ وقتی یه بحران پیش میاد، اگر ابزارهای درست رو بلد باشی، استرست تبدیل به مهارت و کنترل میشه
✅ آشنایی با ابزارهای کمکی مثل ILSpy برای هر برنامهنویسی حیاتیه
این تجربه برای شاگردم یه درس مهم بود، اما برای من هم یه یادآوری بود از اینکه آموزش فقط انتقال دانش نیست، گاهی یعنی نجات دادن تلاش سالها از نابودی.
امیدوارم برای شما هم مفید باشه. اگه تجربه مشابهی داشتید، خوشحال میشم برام در لینکدین بنویسید 🌱
نوشته شده توسط : مژگان عموئی