学习 Mono 源代码

Learning Mono Source Code(学习 Mono 源代码)
本文介绍了学习 Mono 源代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有兴趣为 mono 贡献一些东西,无论是文档还是其他任何东西.作为第一步,我下载了源代码树以查看代码.但是,我想如果有人会花足够的时间来理解项目结构,这将对这里的每个人都有帮助.有人指出我在哪里可以很好地解释项目结构吗?

I am interested in contributing something to mono whether it is a documentation or what ever. As a first step, I downloaded the source tree for going through the code. However, I thought if some one would've spend enough time to understand the project structure that would help everyone here. Any one point me out where the project structure is well explained?

注意:这不是问题的重复 https://stackoverflow.com/questions/1655090/mono-source-code-walkthrough-tutorial,这个问题的答案并不能满足我的期望.

NOTE: This is not a duplicate of question https://stackoverflow.com/questions/1655090/mono-source-code-walkthrough-tutorial, the answer to this question doesn't suffice my expectation.

推荐答案

你应该 签出(subversion结帐网址这里):

You should have checked out (subversion checkout URLs here):

  • 主干/libgdiplus

这是 System.Drawing 使用的库.

This is a library used by System.Drawing.

主干/单声道

这就是我们所说的 Mono 运行时.主要包含 C 源代码.在这个目录下你可以找到:

This is what we call the Mono runtime. Contains mainly C source code. Under this directory you can find:

  • data/:不同版本(1.x、2.x、...)的一些配置文件.
  • msvc*/:用于构建 Mono 运行时的 Visual Studio 解决方案文件.
  • libgc/:Boehm 垃圾收集器来源.
  • mono/:Mono 运行时源.
    • mini/:JIT 源代码
    • 元数据/:这些几乎是 Mono 运行时使用的所有功能(编组、线程池、套接字 I/O、文件 I/O、控制台 I/O、应用程序域、GC、性能计数器,...).每个或多或少都是一个 C 文件.
    • util:杂项功能.
    • io-layer/:Win32 I/O 模拟函数.
    • data/: a few configuration files for different version (1.x, 2.x,...).
    • msvc*/: Visual Studio solution files to build the Mono runtime.
    • libgc/: the Boehm Garbage Collector sources.
    • mono/: Mono runtime sources.
      • mini/: JIT source code
      • metadata/: these are almost all the functions used by the Mono runtime (marshaling, thread pool, socket I/O, file I/O, console I/O, application domains, GC, performance counters,...). It's more or less one C file each.
      • util: miscellaneous functions.
      • io-layer/: Win32 I/O emulation functions.

      主干/mcs

      这是 C# 编译器、类库、类库测试和其他工具所在的位置.

      This is where the C# compiler, the class libraries, class libraries tests and other tools are.

      • class/ :每个程序集一个文件夹.它们中的每一个都包含每个程序集的源代码,这些程序集以命名空间名称(即,System/System.Configuration 等)并且通常也是一个测试目录.唯一的命名例外是 mscorlib,其对应的文件夹名为 corlib.

      • class/ : One folder per assembly. Each of them contains the source code for each assembly split in directories with the namespace name (ie, System/System.Configuration and so on) and usually a Test directory too. The only naming exception is mscorlib whose corresponding folder is called corlib.

      例如,如果您想查看 System.Net.HttpWebRequest 的源代码,它位于 System.dll 程序集中,请转到 trunk/mcs/class/System/System.Net 并且应该有一个名为 HttpWebRequest.cs 的文件,其中包含您要查找的代码.

      For example, if you want to see the source code for System.Net.HttpWebRequest, which is in the System.dll assembly, you go to trunk/mcs/class/System/System.Net and there shoould be a file named HttpWebRequest.cs containing the code you're looking for.

      mcs/:C# 编译器的源代码(mcs、gmcs、smcs、dmcs...)

      mcs/: the sources for the C# compilers (mcs, gmcs, smcs, dmcs...)

      周围还有很多目录,但您应该在这些目录中查找 C 和 C# 代码.另外,我建议使用 trunk 进行结帐,因为这样您将获得最新的资源.

      There are a lot more directories around, but those are where you should look for the C and C# code. Also, I suggested trunk for the checkout, since you will get the most up-to-date sources that way.

      更新: Mono 现在驻留在 github 和 mcs 已集成到 mono 存储库中.

      Update: Mono resides now in github and mcs has been integrated into the mono repository.

      这篇关于学习 Mono 源代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)