.NET Reflector
رفلکتر دات نت(NET Reflector.) یک کلاس بروزر، دیکامپیلر و استاتیک آنالایزر برای نرمافزارهای ساخته شده با .NET Framework است و توسط لوتز ردر (lutz Roeder) بنیانگذاری شدهاست. مجله MSDN از آن به عنوان یکی از ۱۰ ابزار مورد نیاز دولپرها یاد کرد،[۱] و اسکت هانسلمن(scott Hanselman) از آن به عنوانه بخشی از «ده ابزار تغییر دهنده کار و زندگی» خود یاد برد.[۲]
دیدگاه کلی[ویرایش]
رفلکتر دات نت اولین اسمبلی برای بروز کردن CLI است. میتواند محتوای یک CLI کمپننت مثل اسمبلی را بازبینی، جستجو و آنالیز کند و اطلاعات باینری را به یک فرم قابل خواندن برای انسان در آورد. به صورت پیش فرض رفلکتور(refelector) اجازه میدهد که اسمبلیهای CLI دیکمپایل شوند و به فرم C#, Visual Basic .NET, C++/CLI[۳], CIL و یا F# (ورژن آلفا) در آیند. رفلکتر همچنین از یک "Call Tree" استفاده میکند که میتوان از آن استفاده کرد تا به تابعهای کد میانی دسترسی پیدا کرد تا ببینیم که چه تابعهای دیگری را صدا میزنند.همچنین به ما فراداده، منابع و مستندات XML را نشان میدهد. رفلکتر دات نت همچنین توسط سازندههای دات نت استفاده میشود تا رابطههای درونی کتابخانههای کد را برسی کنند یا تفاوتهای دو ورژن از یک اسمبلی مشابه را مشاهده کنند و یا این که مشاهده کنند که چه گونه بخشهای مختلف یک اپلیکیشن CLI با هم کار میکنند.
همچنین رفلکتر توانایی این را دارد که باگها و مشکلات اجرایی را بیابد، کلاسها را جستجو کند، و یا میتوان جهت نگهداری یا آشنایی با پایه کد از آن کمک گرفت. همچنین میتوان از توانائی "Analyer" آن استفاده کرد تا جاهایی که به اسمبلی یا حتی DLLهای ویندوز ارجاع شده است را پیدا کرد. یک "call tree" و "inheritance-browser" وجود دارد. مستندات و کامنت هایی را که در فایلهای XML مشابه وجود دارند را همراه با اسمبلیهای مربوطی که برای راندن IntelliSense در Microsoft Visual Studio استفاده میشود را میابد. حتی این امکان وجود دارد که مستندات (xmldoc) را در جستجوی تایپ ها، عضوها و اشارههای خاص، بصورت cross-navigate کرد. همچنین میتوان از آن استفاده کرد که به نوع بهینهای کد منبع را از #C به Visual Basic یا برعکس تبدیل کرد.
دات نت رفلکتر جوری دیزاین شده که بتواند از افزودنیها (add-on) حمایت کند تا توانایی آن افزایش یابد، بسیاری از آنها به صورت "open source" هستند. بعضی از این افزودنیها زبانهای دیگری را فراهم میکنند که میتوان آنها را "disassemble" کرد، برای مثل PowerShell، Delphi و MC++. دیگر افزودنیها اسمبلیها را جور دیگری آنالیز میکنند تا معیارهای کیفیت، نمودارهای توالی، نمودارهای کلاس، ماتریسهای ساختار وابستگی و یا گرافهای وابستگی به دست آید. همچنین این امکان وجود دارد که از افزودنیها برای جستجو متن، ذخیره سازی کد جداسازی شده بر روی دیسک، صادر کردن اسمبلی به XMI/UML, مقایسه ورژنهای مختلف و یافتن کد استفاده کرد. بعضی افزودنیها توانایی دباگ کردن دارند و بعضی دیگر برای تست کردن دیزاین شده اند.
تاریخچه[ویرایش]
دات نت رفلکتر توسط لوتز ردر(lutz Roeder)به عنوان "freeware" بنیانگذاری شد. اولین نسخه های آن در ژانویه 2001 انتشار یافت.[۴]در روز 20 آگوست 2008, Red Gate Software اعلام کرد که مسولیت توسعهی این نرمافزار را به عهده میگیرد.[۵]
فوریه سال 2010 سازمان ردگیت دات نت رفلکتر 6 را همراه با ورژن تجاری "پرو ادیشن" نشر داد که به کاربران اجازه میداد در فضای دیباگر ویژوال استودیو وارد کد جداسازی شده شوند همانند اینکه سرس کد خودشان است.
در روز 10 ژانویه 2011 ردگیت اعلام کرد که نسخه 7 از افزودنیهای "PowerCommands" جیسون هیلی(Jason Haley) استفاده میکند.[۶]
روز اول ژانویه 2011 این سازمان اعلام کرد که دات نت رفلکتر از ورژن 7 به یک محصول تجاری تبدیل میشود،[۷]که در 14 مارس همان سال در دسترس عموم قرار گرفت. این امر منجر به بهوجود آمدن چندین جایگزین مجانی مانند "dotpeek,،[۸]"CodeReflect" و نرمافزار open-source "ILSpy" گردید. درعینحال درروز 26 آوریل به دنبال بازخورد مردم، ردگیت اعلام کرد که برای کاربرانی که از قبل نسخهی 6 را دارند این نرمافزار همچنان مجانی خواهد ماند(اما کاربران جدید باید هزینهی آن را بپردازند).[۹]
منابع[ویرایش]
This article ".NET Reflector" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:.NET Reflector. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
- ↑ 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.
- ↑ 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.
- ↑ Wills, Dean. "C++/CLI Add-in for .NET Reflector".
- ↑ Roeder, Lutz. "Lutz Roeder's Programming.Net". Archived from the original on 2 July 2016. Retrieved 4 July 2016.
- ↑ Cramblitt, Bob (2008-08-20). "The Future of .NET Reflector". Archived from the original on 22 August 2008. Retrieved 2008-08-20.
- ↑ Read, Bart. "More Big News: .NET Reflector 7 Beta, Integrating Jason Haley's PowerCommands Add-in is Now Available". Simple Talk. Retrieved 20 January 2011.
- ↑ Davidson, Neil. "An open letter to the .NET community". Archived from the original on 2011-02-05. Retrieved 2011-02-02.
- ↑ "JetBrains .NET Tools Blog: dotPeek - Free .NET Decompiler is Available for Early Access".
- ↑ Davidson, Neil. "Why we reversed some of our Reflector decision">. Archived from the original on 16 January 2013.