zoukankan      html  css  js  c++  java
  • .NET程序员的一个礼物——TypeMonster

    上图是NET程序集分析工具TypeMonster的截图(这是一个原型,已经可以运作)。它显示了从 Object 到 FrameworkElement 的继承链。

    TypeMonster是一个辅助分析工具,帮助程序员分析一个.NET类型的内部结构,及其内部的运作机制。

    从这一点看TypeMonster的功能看起来和.NET Reflector类似。但实际上两者的定位是不同的。

    TypeMonster核心理念,并不仅仅是告诉你目标程序集里“有什么”,而是为你提供一个精心设计的分析工具集,让你弄清楚“为什么”目标程序集里有这些东西。

    从上面的运行图例可以看出TypeMonster的用户界面是经过精心设计的,因此我们有理由相信使用它完成类型进行分析是一件愉快的事。

    TypeMonster内置了一套好用的笔记与注解功能,分析人员可以直接在TypeMonster内编写分析笔记——这是对我而言最重要的功能!

    因为工作的关系,我经常需要分析一些程序集内部的运作机制。过去我一直是使用.NET Reflector,后来也试过其他一些工具,例如JustDecompile。

    这些工具都很强大。但是我最苦恼的地方是,这些工具的设计风格,基本上还是非常传统的Windows应用程序风格——使用各种内置成品控件,例如菜单、按钮、树形控件、拥挤的界面划分等等。

    看看现在平板电脑上的设计,传统桌面平台的设计简直就是石器时代。我并不是说平板上的就都是好东西,平板上的垃圾软件和游戏堆得比山还高,但是平板上引入的新的设计方法,是值得借鉴的。并且我认为在桌面平台上也应该可以很好的再现出来。

    带着这样的想法,我开始来制作TypeMonster。上面的截图是来自真实可运行的版本,但是在发布第一个版本之前我还需要为它添加许多的细节。

    目前我已经为它开发了一个符合ECMA-355(5e)规范的反汇编引擎。在此基础上,我希望不久后,TypeMonster也可以将一个方法反编译为等价的C#或者VB.NET代码。

    但我认为这并不是重点。因为这件事.NET Reflector已经做得很好了,我会花费更多的精力,来完善TrustMore的视觉细节,并完善其他功能。

    接下来要完成的工作:

    • 补充一些过滤条件,例如 public、internal 等等
    • 为Field和Property显示出其对应的类型信息
    • 为Method显示出参数列表和返回值类型信息
    • 对重载额Method创建一个组,而不是显示一系列同名的函数
    • 能够扫描GAC,创建一个cache文件快速完成类型匹配和检索
    • 其他

    我已经在这一程序上花费了超过一个月的时间。并且我将继续在其上花费更多的时间。

    如果顺利,在下周就可以发布第一个预览版本。如果你关注这一项目,欢迎你订阅我在博客园的博客。如果有什么建议或者疑问,欢迎留言。如果有什么批评,恳请轻拍。

    最后强调一下,TypeMonster 会是一个开源、免费的软件。很快会托管在 Github 上。

    谢谢!

     
     
  • 相关阅读:
    vue element-ui 动态上传
    vue element ui 导航刷新 is-active
    算法图解笔记
    简单操作的一些小技巧
    大话数据结构 -07-1 图的定义、抽象数据类型与存储结构
    ELO kernels 记录
    [2] day 02
    [1] first day
    大话数据结构 -04-3 队列
    大话数据结构 -04-2 栈的应用-递归
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2492594.html
Copyright © 2011-2022 走看看