2002-05-07 Duncan Mak <duncan@ximian.com>
[mono.git] / web / tools
1 * Tools
2
3         We need a number of tools to make people productive using a
4         Mono-based solution.  Some of these tools can be developed on
5         Windows before Mono is fully finished.
6
7         All of these tools should be written using C#.  
8
9         For the tools that are typically command line tools: Try to
10         write these as components that could load their input from
11         streams or collections of streams, and implement the command
12         line tools as wrappers around those classes.
13
14         For example, we will be making the C# compiler a component
15         that could be reused by applications that might have a use for
16         the various bits of the compiler (either to embed the
17         compiler, or reuse the code generator part of it).  
18
19         This is important so that these components (compiler,
20         assembler, linker, etc) can be integrated later into the
21         visual development environment (hopefully with the help of the
22         SharpDevelop hackers). 
23
24 TODO=ilasm,IL Assembler
25 ** IL Assembler.
26
27         This assembler should basically take as input a file
28         containing IL bytecodes as specified in the `Partition II' of
29         the ECMA spec, and produce a binary file.
30
31 TODO=al,Assembly Linker
32 ** Assembly Linker.
33
34         This tool is used to construct assemblies, which are basically
35         deployment units for CLI executables.
36
37 TODO=debugger,Debugger
38 ** Debugger
39
40         We will need a debugging API to debug CLI applications and
41         then a debugger component that can be used in an IDE
42         environment.
43
44 TODO=ide,Integrated Development Environment
45 ** Integrated Development Environment
46
47         There is already a project to create a C# development
48         environment: <a
49         href="http://www.icsharpcode.net/OpenSource/SD/default.asp">SharpDevelop</a>.
50         People should work with the SharpDevelop hackers to produce a
51         unified development environment.
52
53         Please work with the SharpDevelop hackers to build a good IDE.
54         We will work on creating an embedable compiler component and
55         an embeddable debugger component that can be used withing
56         SharpDevelop
57
58 TODO=hbrowser,Help Browser
59 ** Help Browser
60
61         We need a good help browser that can be used to browse
62         documentation.  Ideally this help browser can accept as input
63         XML Docbook input and an assorted set of file formats
64         (Microsoft Help, Unix manual pages, Unix Info pages)
65
66         Look at the GNOME DevHelp for a good set of ideas on how to
67         implement this.