رفلکتور دات‌نت کیست؟ توضیح بده.
رفلکتور دات‌نت (به انگلیسی: NET Reflector.) یک کلاس‌یاب (Class Browser)، دی‌کامپایلر و آنالیزگر ایستا (Static Analyzer) برای نرم‌افزارهای ساخته شده با چارچوب دات‌نت است که در ابتدا توسط لوتز رودر (Lutz Roeder) نوشته شده‌است.مجلهٔ MSDN این ابزار را جزو ده ابزار ضروری برای هر توسعه‌دهنده خوانده‌است و اسکات هانسلمن (Scott Hanselman) نیز آن را در زمرهٔ «ده ابزار برتر در تحول زندگی و کار» قرار داده‌است.بررسی کلی.رفلکتور دات‌نت اولین زیرساخت زبان مشترک در میان مرورگرهای اسمبلی بوده‌است. این ابزار می‌تواند برای بازرسی، رهیابی، آنالیز و مرور محتویات اجزای یک زیرساخت زبان مشترک مانند اسمبلی استفاده شود و اطلاعات باینری را به شکلی که برای انسان قابل خواندن است، ترجمه کند. به‌طور پیشفرض، رفلکتور اجازهٔ دی‌کامپایل کردن اسمبلی زیرساخت زبان مشترک را به سی‌شارپ، ویژوال بیسیک دات‌نت، سی‌پلاس‌پلاس/سی‌ال‌آی، زبان میانی مشترک و اف‌شارپ (نسخه آلفا) می‌دهد. رفلکتور همچنین از یک «درخت صدا زدن» (Call Tree) برخوردار است که قابل استفاده برای دستیابی به اعماق پایین‌تر متدهای نمایش میانی است که به وسیلهٔ آن می‌توان دید آن‌ها چه متدهای دیگری را صدا می‌زنند. همچنین فراداده، منابع و مستندات اکس‌ام‌ال را نمایش می‌دهد. این رفلکتور می‌تواند توسط توسعه‌دهندگان دات‌نت به منظور درک فعل و انفعالات درونی یک کتابخانه کد، نمایش تفاوت‌های دو نسخه مختلف از یک اسمبلی یکسان و چگونگی تعامل بخش‌های مختلف یک برنامهٔ زیرساخت زبان مشترک مورد استفاده قرار گیرد. همچنین افزونه‌های بسیاری برای رفلکتور موجود است.رفلکتور دات‌نت می‌تواند برای پیدا کردن مشکلات کارایی و باگها، مرور کلاس‌ها، برقرار داشتن و کمک به آشنایی با پایگاه‌های کد استفاده شود. همچنین با استفاده از آپشن آنالیزور می‌تواند برای وابستگی‌های اسمبلی و حتی وابستگی‌های دی‌ال‌ال ویندوز استفاده شود. یک درخت صدا زدن و مرورگر ارث‌بری موجود است که همان مستندات یا کامنت‌هایی را برمی‌گزیند که درون فایل اکس‌ام‌ال در کنار اسمبلی‌های مربوطشان ذخیره شده‌اند و برای راه‌اندازی اینتلی‌سنس داخل ویژوال استودیو مورد استفاده قرار می‌گیرند. حتی قابلیت رهیابی چندجانبه (Cross-navigate) مستندات مربوطه (codice_1) به منظور جست‌وجوی تایپ‌ها، اعضا و ارجاعات به‌خصوص نیز فراهم است. می‌توان به‌طور مؤثری از آن برای تبدیل کردن کد منبع سی‌شارپ و ویژوال بیسیک به هم استفاده کرد.رفلکتور دات‌نت به گونه‌ای طراحی شده‌است که میزبان افزونه‌ها برای گسترش کارایی‌اش باشد که بیشتر آن‌ها متن‌باز هستند. برخی از این افزونه‌ها امکان کار با سایر زبان‌ها مانند پاورشل، دلفی و ام‌سی‌پلاس‌پلاس را فراهم می‌کنند. باقی آن‌ها اسمبلی‌ها را به طرق دیگر آنالیز می‌کنند که باعث فراهم شدن اطلاعات کیفیتی، دیاگرام‌های دنباله‌ای، دیاگرام‌های کلاسی، ماتریس‌های ساختار وابستگی یا گراف‌های وابستگی می‌شوند. امکان استفاده از افزونه‌ها به منظور جست‌وجوی نوشته، ذخیره‌سازی کد دی‌کامپایل شده بر روی دیسک، صدور یک اسمبلی به اکس‌ام‌آی/یوام‌ال، مقایسهٔ نسخه‌های مختلف یا جست‌وجوی کد نیز مهیاست. برخی از افزونه‌ها نیز به پروسه‌های دیباگ کردن کمک می‌کنند و برخی دیگر تست کردن را با ساختن ته‌مانده‌ها (Stubs) و جلدها (Wrappers) تسهیل می‌کنند.تاریخچه.رفلکتور دات‌نت بدواً توسط لوتز رودر (Lutz Roeder) به عنوان یک رایگان‌افزار توسعه داده شد. نسخه‌های اولیه آن به ژانویه سال ۲۰۰۱ میلادی بازمی‌گردد.وبگاه archive.org شامل مجموعه‌ای از نسخ اولیه رفلکتور است.در آگوست سال ۲۰۰۸ میلادی، شرکت ردگِیت سافتور اعلام کرد که زین پس توسعهٔ این نرم‌افزار را بر عهده می‌گیرد.در فبریه سال ۲۰۱۰ میلادی، ردگیت نسخه ۶ رفلکتور دات‌نت را به همراه یک نسخه حرفه‌ای تجاری منتشر کرد که به کاربران این امکان را می‌داد که درون دیباگر ویژوال استودیو کد دی‌کامپایل شده را تحت اختیار خود بگیرند، به گونه‌ای انگار کد منبع خودشان است.در دهم ژانویه سال ۲۰۱۱ میلادی، ردگیت اعلام کرد که رفلکتور دات‌نت ۷ افزونهٔ پاورکامندز (PowerCommands) آقای جیسون هیلی (Jason Haley) را به کار خواهد گرفت.در یکم فبریه سال ۲۰۱۱ میلادی، ردگیت اعلام کرد که رفلکتور دات‌نت تبدیل به یک محصول تجاری در زمان نسخه هفتم خواهد شد، که در ۱۴ مارس ۲۰۱۱ میلادی منتشر شد. این منجر به ساخته شدن چندین جایگزین رایگان مانند دات‌پیک (dotPeek)، کدریفلکت (CodeReflect) و برنامهٔ متن‌باز آی‌ال‌سپای (ILSpy) شد. به همین دلیل، در ۲۶ آوریل ۲۰۱۱، با توجه به بازخورد کاربران، ردگیت اعلام کرد که آن‌ها نسخه ۶ رفلکتور را برای کاربران کنونی رایگان خواهند بود. (در حالی که کاربران جدید نیاز به خرید آن خواهند داشت.)