.NET Reflector

Şimdi aslında bu yazıyı hazırlamamın amacı bir sonraki yazımda .NET için bunu kullanarak bazı şeyler anlatacak olmam. O yüzden sonraki konuyu fazla uzatmamak ve Reflector aracının diğer amaçlarla da kullanılması faydalı olabileceği için böyle bir yazı yazmaya karar verdim.

Öncelikle şunu belirteyim yazılım geliştirirken bu tarz araçlar kullanmak oldukça faydalı oluyor. Daha önceden Java kullandığımda da bu tarz araçların yardımına oldukça başvuruyordum. .NET’e geçince de tabi ilk işim bu tarz araçlar aramak oldu ve oldukça güzel bir araç olan Reflector‘e rastladım. Fazla uzatmadan kuruluma geçelim ve ardından bize ne gibi faydalar sağlıyor ona bakalım.

  • Öncelikle buradan Reflector aracını indirin.
  • Herhangi bir yere .zip halinde gelen dosyayı açın
  • Son olarak Reflector.exe basarak programı çalıştırın :)
  • Çıkan ekranda size varsayılan olarak ekleyeceği .NET kütüphaneleri soracak birini seçin

Aşağıdaki gibi bir ekran karşınıza çıkacaktır.

reflectorAnaEkran

Şimdi bu araç ne işe yarar ondan bahsedelim. Aslında Reflector çok kullanışlı bir Disassembler. Derlenmiş olan herhangi bir .NET kodunun içerisini rahatlıkla görüp hangi sınıf kullanılmış, hangi değişken kullanılmamış, hangi sınıf hangi sınıflara bağımlı, kimden türemiş gibi birçok faydalı bilgiyi görebiliyorsunuz. Buda uygulama geliştirirken hata bulmada, kodu inceleme de oldukça fayda sağlıyor. Mesela ben örnek bir projenin Dll dosyasını aşağıdaki gibi ekleyip içerisiniz incelemek istiyorum. Bunun için önce aşağıda gördüğünüz gibi File—–>Open diyorum

reflectorAnaEkran2

Ardından Dll yüklendi. İncelemek istediğimi Dll Tree menü içerisinden seçiyorum.

reflectorAnaEkran3

Dll içerisine girdikçe hangi metodlar,hangi sınıflar içeriyor görebiliyorsunuz. Yukarıda gördüğünüz gibi InMemoryCache sınıfı ICacheManager interface’ini uygulamış. Ardından aşağıdaki gibi analiz ettiğimiz zaman çeşitli bilgiler görebiliyoruz.

reflectorAnaEkran4

Analiz dediğimiz zaman yandaki menüye bu sınıf kimin tarafından kullanılmış,kime bağımlı gibi görebiliyorsunuz. Şimdi kodun içini görmek için aşağıdaki gibi yapalım

reflectorAnaEkran5

Gördüğünüz gibi kodun içeriğini Disassemble dedikten sonra yukarıdaki gibi gördük.

Şimdi Reflector’ün asıl güçlü yanı olan eklentilerine bakalım. Öncelikle en çok kullandığım eklentisi olan Code Metrics eklentisini örnek olarak ekleyelim ve bir eklenti nasıl Reflector aracına ekleniyor ona bakalım.

  • Öncelikle bu sayfadan Code Metrics eklentisini indirmek için download linkine tıklayın.
  • Sizi başka bir sayfaya yönlendirecek o sayfadan CodeMetrics.zip dosyasını bulup indirin
  • Dosyayı daha önceden Reflector’ü açtığınız dizinin içerisine kopyalayın ve aşağıdaki gibi açın

reflectorAnaEkran6

Ardından aşağıdaki gibi eklenti eklemek için View—->Add-Ins kısmına girin

reflectorAnaEkran7

Ardından çıkan eklenda Add deyip daha önceden klasör içine açtığımız CodeMetrics.dll dosyasını seçiyoruz.

reflectorAnaEkran8

Evet sonunda eklentimizi eklemiş olduk. Şimdi kullanmak için aşağıdaki gibi Tools—->Code Metrics aracını seçin

reflectorAnaEkran9

reflectorAnaEkran10

reflectorAnaEkran11

Evet gördüğünüz gibi Reflector .NET kullanıcıları için oldukça faydalı bir araç. Özellikle birçok eklentisi size kodun analizini, metriklerini ölçmek için kolaylık sağlıyor.

6 thoughts on “.NET Reflector

  1. Pingback: Yazılım Mühendisliği » Code Metrics : Cyclomatic Complexity

  2. Tolga Yaramis

    Cihat gercekten Reflector kullanisli ve oldukca taninmis bir yazilim. Böyle bir decompiler yazilimini gelistirmekde tabiki karmasik bir is. Zaten bu yazilimi yapanda su anda Microsoft da team leader olarak calisiyor :) Fakat bu karmasik yazilimin benzerini, hatta daha iyisini benimde yakin bir dostum olan bir türk yazilimci yazdi ve USA da su anda bir sirket tarafindan tüm dünyaya satilmakda. FOX.NET ve gelistiriciside Özcan Degirmenci. Dedigim gibi cok karmasik bir yazilim ve bence bu türk yazilimcisi icin büyük bir basari. o yüzden Özcan i desteklemek gerektigini düsünüyorum. Belki incelemek istersin ve bir makalede onun icin yazarisin :) Community Edition Free olarak Özcan in sayfasindan download edilebiliyor.

    http://www.ozcandegirmenci.com/page/Downloads.aspx

    Tesekkürler

  3. M. Cihat Altuntaş Post author

    Evet Tolga haklısın. Daha önceden de Fox yazılımını ve bir türk yazılımcı tarafından geliştirildiğini duymuştum. Açıkçası bunlada gurur duyuyorum. Hepimizin arkadaşını örnek alarak bu şekilde dünya çapında yazılımlar geliştirmemizi canı gönülden istiyorum. Fakat Reflector’ü anlatmamın asıl sebebi Decompiler değilde sonraki yazıda kullandığım eklentileri yüzünden.Çok sayıda oldukça faydalı eklentisi var o yüzden oldukça kullanışlı. Tabi disassembler olarak Fox’u da en kısa zamanda inceleyeceğim.Teşekkürler

  4. Pingback: Code Metrics : Cyclomatic Complexity « Dumlupınar Üniversitesi ( DPÜ ) Bilgi ve Bilişim Kulübü

  5. burak

    bu işde biraz yeniyim kusuruma bakmayın

    net reflectorle actım bir exe yada dll editleme sansım varmı yoksa sadece icerigimi goruntuleyebılıyoruz ?

Comments are closed.