Кіріспе

.NET Reflector – .NET Framework платформасында жасалған бағдарламалық құралдарды қарауға, декомпиляциялауға және статикалық талдауға арналған сыныптар шолушысы, декомпилятор және статикалық талдаушы. Бұл құралды MSDN журналы әзірлеушілерге қажетті он құралдың бірі деп атады, ал Скотт Хансман оны өзінің "Өмір мен жұмысты өзгеретін он маңызды құралдың" қатарына қосты.

Шолу

Ол CLI компонентінің құрамын тексеруге, онымен жүруге, іздеуге, талдауға және шолуға мүмкіндік береді, сондай-ақ екілік ақпаратты адам оқи алатын форматқа аударады. Reflector әдепкі бойынша CLI жинақтарын C#, Visual Basic NET, C++/CLI, Common Intermediate Language және F# (альфа нұсқасы) тілдеріне декомпиляциялауға мүмкіндік береді. Reflector құрамында "Call Tree" (шақыру ағашы) да бар, оны аралық тіл әдістеріне тереңдей келіп, олар қандай басқа әдістерді шақыратынын көру үшін пайдалануға болады. Ол метадеректерді, ресурстарды және XML құжаттамасын көрсетеді. NET әзірлеушілері NET Reflector-ді код кітапханаларының ішкі жұмысын түсіну үшін, бір жинақтың екі нұсқасы арасындағы айырмашылықтарды анықтау үшін және CLI қосымшасының әртүрлі бөліктерінің бір-бірімен қалай өзара әрекеттесетінін білу үшін пайдалана алады. Reflector үшін көптеген қосымшалар бар. NET Reflector-ді өнімділік мәселелерін және қателерді іздеуге, сыныптарды шолуға, код базасын сақтауға немесе онымен танысуға көмектесу үшін қолдануға болады. Analyzer опциясын пайдаланып, жинақтау тәуелділіктерін және тіпті Windows DLL тәуелділіктерін табуға да болады. Шақыру ағашы және мұрагерлік шолғышы бар. Ол Visual Studio-да IntelliSense-ті басқару үшін қолданылатын, олармен байланысты жинақтармен бірге XML файлдарында сақталған бірдей құжаттама мен түсініктемелерді пайдаланады. Сонымен қатар, тиісті құжаттаманы (xmldoc) іздеу арқылы нақты типтерді, мүшелерді және сілтемелерді іздеуге болады. Оны C# және Visual Basic арасындағы бастапқы кодты тиімді түрлендіру үшін де пайдалануға болады. NET Reflector функционалдығын кеңейту үшін қосымшаларды орнатуға арналған, олардың көпшілігі ашық кодты. Кейбір қосымшалар PowerShell, Delphi және MC++ сияқты басқа да декомпиляцияланатын тілдерді ұсынады. Басқалары жинақтарды әртүрлі тәсілдермен талдайды, сапа көрсеткіштерін, реттілік диаграммаларын, сынып диаграммаларын, тәуелділік құрылымдық матрицаларын немесе тәуелділік графиктерін ұсынады. Қосымшаларды мәтін іздеуге, декомпиляцияланған кодты дискіге сақтауға, жинақты XMI/UML форматына экспорттауға, әртүрлі нұсқаларды салыстыруға немесе кодты іздеуге пайдалануға болады. Басқа қосымшалар процестерді түсіндіруге мүмкіндік береді. Кейбір қосымшалар сынақтарды жеңілдету үшін макеттер мен орамаларды жасауға арналған.

Тарих

.NET Reflector бастапқыда Lutz Roeder тегін бағдарлама ретінде әзірлеген. Оның алғашқы нұсқалары 2001 жылдың қаңтарымен датынады. Archive.org сайтында Reflector-дың ерте нұсқаларының жинағы сақталған. 2008 жылдың 20 тамызында Red Gate Software компаниясы бағдарламалық қамтамастың болашақ дамуына жауапкершілікті өз мойнына алғанын жариялады. 2010 жылдың ақпан айында Red Gate, NET Reflector 6-ны коммерциялық Pro нұсқасымен бірге шығарды, бұл пайдаланушыларға Visual Studio дебюгерінде өздерінің бастапқы кодындай декомпилирленген кодқа енуге мүмкіндік берді. 2011 жылдың 10 қаңтарында Red Gate, NET Reflector 7 құрамына Jason Haley-дің PowerCommands қосымшасын енгізетінін хабарлады. 2011 жылдың 1 ақпанында Red Gate компаниясы NET Reflector-дың 7-ші нұсқасынан бастап, 2011 жылдың 14 наурызында жарық көрген, коммерциялық өнімге айналатынын мәлімдеді. Бұл dotPeek, CodeReflect және ашық кодты ILSpy сияқты бірнеше тегін баламалардың пайда болуына себеп болды. Содан кейін, 2011 жылдың 26 сәуірінде, қауымдастықтың пікірлеріне орай, Red Gate компаниясы қолданыстағы пайдаланушыларға NET Reflector 6-ны тегін түрде қолдануға мүмкіндік беретінін (ал жаңа пайдаланушылар Reflector үшін төлем жасауы тиіс) жариялады.