**رفلکتور دات‌نت** (به انگلیسی: NET Reflector.) یک کلاس‌یاب (Class Browser)، دی‌کامپایلر و آنالیزگر ایستا (Static Analyzer) برای نرم‌افزارهای ساخته شده با چارچوب دات‌نت است که در ابتدا توسط لوتز رودر (Lutz Roeder) نوشته شده‌است.

مجلهٔ MSDN این ابزار را جزو ده ابزار ضروری برای هر توسعه‌دهنده خوانده‌است و اسکات هانسلمن (Scott Hanselman) نیز آن را در زمرهٔ «ده ابزار برتر در تحول زندگی و کار» قرار داده‌است.

بررسی کلی
---------

رفلکتور دات‌نت اولین زیرساخت زبان مشترک در میان مرورگرهای اسمبلی بوده‌است. این ابزار می‌تواند برای بازرسی، رهیابی، آنالیز و مرور محتویات اجزای یک زیرساخت زبان مشترک مانند اسمبلی استفاده شود و اطلاعات باینری را به شکلی که برای انسان قابل خواندن است، ترجمه کند. به‌طور پیشفرض، رفلکتور اجازهٔ دی‌کامپایل کردن اسمبلی زیرساخت زبان مشترک را به سی‌شارپ، ویژوال بیسیک دات‌نت، سی‌پلاس‌پلاس/سی‌ال‌آی، زبان میانی مشترک و اف‌شارپ (نسخه آلفا) می‌دهد. رفلکتور همچنین از یک «درخت صدا زدن» (Call Tree) برخوردار است که قابل استفاده برای دستیابی به اعماق پایین‌تر متدهای نمایش میانی است که به وسیلهٔ آن می‌توان دید آن‌ها چه متدهای دیگری را صدا می‌زنند. همچنین فراداده، منابع و مستندات اکس‌ام‌ال را نمایش می‌دهد. این رفلکتور می‌تواند توسط توسعه‌دهندگان دات‌نت به منظور درک فعل و انفعالات درونی یک کتابخانه کد، نمایش تفاوت‌های دو نسخه مختلف از یک اسمبلی یکسان و چگونگی تعامل بخش‌های مختلف یک برنامهٔ زیرساخت زبان مشترک مورد استفاده قرار گیرد. همچنین افزونه‌های بسیاری برای رفلکتور موجود است.

رفلکتور دات‌نت می‌تواند برای پیدا کردن مشکلات کارایی و باگها، مرور کلاس‌ها، برقرار داشتن و کمک به آشنایی با پایگاه‌های کد استفاده شود. همچنین با استفاده از آپشن آنالیزور می‌تواند برای وابستگی‌های اسمبلی و حتی وابستگی‌های دی‌ال‌ال ویندوز استفاده شود. یک درخت صدا زدن و مرورگر ارث‌بری موجود است که همان مستندات یا کامنت‌هایی را برمی‌گزیند که درون فایل اکس‌ام‌ال در کنار اسمبلی‌های مربوطشان ذخیره شده‌اند و برای راه‌اندازی اینتلی‌سنس داخل ویژوال استودیو مورد استفاده قرار می‌گیرند. حتی قابلیت رهیابی چندجانبه (Cross-navigate) مستندات مربوطه (`xmldoc`) به منظور جست‌وجوی تایپ‌ها، اعضا و ارجاعات به‌خصوص نیز فراهم است. می‌توان به‌طور مؤثری از آن برای تبدیل کردن کد منبع سی‌شارپ و ویژوال بیسیک به هم استفاده کرد.

رفلکتور دات‌نت به گونه‌ای طراحی شده‌است که میزبان افزونه‌ها برای گسترش کارایی‌اش باشد که بیشتر آن‌ها متن‌باز هستند. برخی از این افزونه‌ها امکان کار با سایر زبان‌ها مانند پاورشل، دلفی و ام‌سی‌پلاس‌پلاس را فراهم می‌کنند. باقی آن‌ها اسمبلی‌ها را به طرق دیگر آنالیز می‌کنند که باعث فراهم شدن اطلاعات کیفیتی، دیاگرام‌های دنباله‌ای، دیاگرام‌های کلاسی، ماتریس‌های ساختار وابستگی یا گراف‌های وابستگی می‌شوند. امکان استفاده از افزونه‌ها به منظور جست‌وجوی نوشته، ذخیره‌سازی کد دی‌کامپایل شده بر روی دیسک، صدور یک اسمبلی به اکس‌ام‌آی/یوام‌ال، مقایسهٔ نسخه‌های مختلف یا جست‌وجوی کد نیز مهیاست. برخی از افزونه‌ها نیز به پروسه‌های دیباگ کردن کمک می‌کنند و برخی دیگر تست کردن را با ساختن ته‌مانده‌ها (Stubs) و جلدها (Wrappers) تسهیل می‌کنند.

تاریخچه
-------

رفلکتور دات‌نت بدواً توسط لوتز رودر (Lutz Roeder) به عنوان یک رایگان‌افزار توسعه داده شد. نسخه‌های اولیه آن به ژانویه سال ۲۰۰۱ میلادی بازمی‌گردد.

وبگاه archive.org شامل مجموعه‌ای از نسخ اولیه رفلکتور است.

در آگوست سال ۲۰۰۸ میلادی، شرکت ردگِیت سافتور اعلام کرد که زین پس توسعهٔ این نرم‌افزار را بر عهده می‌گیرد.

در فبریه سال ۲۰۱۰ میلادی، ردگیت نسخه ۶ رفلکتور دات‌نت را به همراه یک نسخه حرفه‌ای تجاری منتشر کرد که به کاربران این امکان را می‌داد که درون دیباگر ویژوال استودیو کد دی‌کامپایل شده را تحت اختیار خود بگیرند، به گونه‌ای انگار کد منبع خودشان است.

در دهم ژانویه سال ۲۰۱۱ میلادی، ردگیت اعلام کرد که رفلکتور دات‌نت ۷ افزونهٔ پاورکامندز (PowerCommands) آقای جیسون هیلی (Jason Haley) را به کار خواهد گرفت.

در یکم فبریه سال ۲۰۱۱ میلادی، ردگیت اعلام کرد که رفلکتور دات‌نت تبدیل به یک محصول تجاری در زمان نسخه هفتم خواهد شد، که در ۱۴ مارس ۲۰۱۱ میلادی منتشر شد. این منجر به ساخته شدن چندین جایگزین رایگان مانند دات‌پیک (dotPeek)، کدریفلکت (CodeReflect) و برنامهٔ متن‌باز آی‌ال‌سپای (ILSpy) شد. به همین دلیل، در ۲۶ آوریل ۲۰۱۱، با توجه به بازخورد کاربران، ردگیت اعلام کرد که آن‌ها نسخه ۶ رفلکتور را برای کاربران کنونی رایگان خواهند بود. (در حالی که کاربران جدید نیاز به خرید آن خواهند داشت.)

منابع
-----

1. ↑  Avery, James (2004-07-01). "Ten Must-Have Tools Every Developer Should Download Now". MSDN Magazine. Archived from the original on 19 September 2008. Retrieved 2008-08-20.
2. ↑  Hanselman, Scott (2007-08-23). "Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows". Archived from the original on 14 September 2008. Retrieved 2008-08-20.
3. ↑  Wills, Dean. "C++/CLI Add-in for .NET Reflector".
4. ↑  Roeder, Lutz. "Lutz Roeder's Programming.Net". Archived from the original on 2 July 2016. Retrieved 4 July 2016.
5. ↑  Cramblitt, Bob (2008-08-20). "The Future of .NET Reflector". Archived from the original on 22 August 2008. Retrieved 2008-08-20.
6. ↑  Read, Bart. "More Big News: .NET Reflector 7 Beta, Integrating Jason Haley's PowerCommands Add-in is Now Available". *Simple Talk*. Archived from the original on 17 January 2011. Retrieved 20 January 2011.
7. ↑  Davidson, Neil. "An open letter to the .NET community". Archived from the original on 2011-02-05. Retrieved 2011-02-02.
8. ↑  "JetBrains .NET Tools Blog: dotPeek - Free .NET Decompiler is Available for Early Access".
9. ↑  Davidson, Neil. "Why we reversed some of our Reflector decision". Archived from the original on 16 January 2013.