X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=web%2Ffaq;h=02a643fbe99a40727263ea50ac2dd2f9e1cd987f;hb=e763e13d2f936504e1ebd94fd4c989bf3830450d;hp=ebac5dba3bd86698c4e3db047fc81bdb9320a61a;hpb=c894cb6c021180970bef3a5ac3e160560f12c066;p=mono.git diff --git a/web/faq b/web/faq index ebac5dba3bd..02a643fbe99 100644 --- a/web/faq +++ b/web/faq @@ -1,18 +1,42 @@ +Basics
+The Ximian Role in the Mono project
+Mono and GNOME
+Building GUI applications with Mono
+Mono and Microsoft
+Mono and the Portable.NET Project
+Web Services
+Development Tools and Issues
+Mono and Java
+Extending Mono
+Portability
+Reusing Existing Code
+Mono and GCC
+Performance
+Licensing
+Miscellaneous Questions
+ + + ** Basics -Q: Is Mono the same as Microsoft's .NET initiative? +Q: What is Mono exactly? -A: It is not. +A: The Mono Project is an open development initiative sponsored by + Ximian that is working to develop an open source, Linux-based + version of the Microsoft .NET development platform. Its objective + is to enable Linux developers to build and + deploy cross-platform .NET Applications. The project will + implement various technologies developed by Microsoft that have now + been submitted to the ECMA for standardization. - .NET is a company-wide initiative at Microsoft that - encompasses many different areas. The .NET development framework, - Passport, Biztalk, new server products, and anything that is - remotely connected to .NET gets the ".NET-stamping" treatment. - Some components of Microsoft's .NET initiative have been announced - and some others are in the works. +Q: What is the difference between Mono and the .NET Initiative? - Mono is a project to implement several technologies developed by - Microsoft that have now been submitted to the ECMA Standards Body. +A: The ".NET Initiative" is a somewhat nebulous company-wide effort by + Microsoft, one part of which is a cross-platform development + framework. Mono is an implementation of the development framework, + but not an implementation of anything else related to the .NET + Initiative, such as Passport, software-as-a-service, or + corporate rebranding. Q: What technologies are included in Mono? @@ -30,20 +54,18 @@ A: Mono contains a number of components useful for building new * A compiler for the C# language. In the future we might work on other compilers that target the Common Language Runtime. - - Windows has compilers that target the - virtual machine from - a - number of languages: Managed C++, Java Script, - Eiffel, Component Pascal, APL, Cobol, Oberon, Perl, - Python, Scheme, Smalltalk, Standard ML, Haskell, - Mercury and Oberon. + + Windows has compilers that target the virtual machine from a + number of languages: Managed C++, Java Script, Eiffel, + Component Pascal, APL, Cobol, Oberon, Perl, Python, Scheme, + Smalltalk, Standard ML, Haskell, Mercury and Oberon. + The CLR and the Common Type System (CTS) enables applications and - libraries to be written in a number of languages. Classes and - methods created in one language can be used from a different - language. + libraries to be written in a collection of different languages that + target the byte code This means for example that if you define a class to do algebraic manipulation in C#, that class can be reused from any other @@ -65,45 +87,58 @@ Q: Will you implement the .NET Framework SDK class libraries? A: Yes, we will be implementing the APIs of the .NET Framework SDK class libraries. -Q: What does Mono stand for? +Q: Will you offer an ECMA-compliant set of class libraries? -A: Mono is the word for `Monkey' in Spanish. We like monkeys. +A: Eventually we will. Our current focus is on interoperating + with the Microsoft SDK, but we will also offer an ECMA compliant + set of libraries. -Q: When will you ship it? +Q: What does the name "Mono" mean? + +A: Mono is the word for `monkey' in Spanish. We like monkeys. -A: We do not know when the code will be shipped. The more - contributions we get to the project, the sooner it will ship. +Q: Is Mono usable? - A rough estimate is that we might be able to run our C# compiler on - Linux by the end of the year. That means running the Windows - Executable generated by a Microsoft .NET compiler on the Linux - platform. +A: The JIT engine is usable on Intel x86 machines. An interpreter + can be used on other non-Intel x86 machines. - We expect that doing GUI applications will require more work on the - class libraries. That could take another six months. + The class libraries are not yet mature enough to run real applications, + but if you are interested in trying out Mono, you can definetly start + testing things out as many programs run. + + The C# compiler has made significant progress, it can even compile + itself now, but it can not yet be ran with our class libraries as + they are missing some features. + +Q: When will you ship it? + +A: It is premature to target a shipdate for the code, but we + anticipate that it will be available some time in the middle of + 2002. Q: How can I contribute? A: Check the contributing section. -Q: You guys should innovate instead of copying. +Q: Aren't you just copying someone else's work? -A: In this particular case, we see a clear advantage in the platform - and we are interested in using the features of the CLI on open source systems. +A: We are interested in providing the best tools for programmers to + develop applications for Free Operating Systems. We also want to help + provide the interoperability that will allow those systems to fit in + with other standards. - We have decided that we should spend our limited resources towards - implementing an existing specification instead of designing and - implementing our own. + For more background, read the Mono + Project white paper. + the project. - Designing and implementing our own would be possible, but it doesn't make - sense to do that just because the specification comes from a - proprietary vendor. -** Ximian + + +** The Ximian Role in the Mono Project Q: Why is Ximian working on .NET? -A: We are interested in providing the best tools for programmers to +A: Ximian is interested in providing the best tools for programmers to develop applications for Free Operating Systems. For more information, read the project contribute to this effort. +A: Of course not. Ximian a supporter of the Mono project, but the only way + to implement something of this size is for the entire free software + community to get involved. Visit the contributing + page if you'd like to help out. Q: What pieces will Ximian be working on? -A: We will focus on building a development and execution - environment. +A: We will devote most of our resources to work on the pieces which are + on the critical path to release a development and execution + environment. Once the project is at a stage where it is useful in + the real world, it will achieve a critical mass of developers to + improve it further. - The idea is to get Mono to a state of that would allow - third parties to actually be able to use it real-world development. +Q: Will Ximian offer Mono commercially? -Q: Why does Ximian even care? +A: When Mono is ready to be shipped Ximian will offer a commercial + support and services for Mono. -A: We like the features that the CLI and its related technologies - bring to the table. An exciting addition to the developer toolkit. - The goal of Mono is to bring this technology to non-Windows - platforms (although we hope Mono will also run on Windows, for - debugging and comparative purposes). +Q: Will you wait until Mono is finished? +A: Mono will ship on various stages as they mature. Some people + require only a subset of the technologies, those will ship first. -** Licensing + More advanced features will take more time to develop. A support + timeline will be available in June 2002. + + +** Mono and GNOME + +Q: How is Mono related to GNOME? + +A: In a number of ways. This project was born out of the need of + providing improved tools for the GNOME community, and will use + existing components that have been developed for GNOME when they + are available. For example, we plan to use Gtk+ and Libart to + implement Winforms and the Drawing2D API and are considering + GObject support. + +Q: Has the GNOME Foundation or the GNOME team adopted Mono? + +A: Mono is too new to be adopted by those groups. We hope that the + tools that we will provide will be adopted by free software + programmers including the GNOME Foundation members and the GNOME + project generally. + +Q: Should GNOME programmers switch over to Mono now? + +A: It is still far to early for discussions of "switching over." No + pieces of Mono will be ready within the next six months, and a + complete implementation is roughly one year away. + + We encourage GNOME developers to continue using the existing tools, + libraries and components. Improvements made to GNOME will have an + impact on Mono, as they would be the "backend" for various classes. + +Q: Will Mono include compatibility with Bonobo components? What is the + relationship between Mono and Bonobo? + +A: Yes, we will provide a set of classes for implementing and using + Bonobo components from within Mono. Mono should allow you to write + Bonobo components more easily, just like .NET on Windows allows you + to export .NET components to COM. + +Q: Does Mono depend on GNOME? + +A: No, Mono does not depend on GNOME. We use a few packages produced by + the GNOME team like the `glib' library. + +Q: But will I be able to build GNOME applications? + +A: Yes, we will enable people to write GNOME applications using Mono. + + +** GUI applications + +Q: Will Mono enable GUI applications to be authored? -Q: What license is Mono on? +A: Yes, you will be able to build GUI applications. Indeed, that is our + main focus. We will provide both the Windows.Forms API and the Gtk# AP(I. -A: The C# Compiler is released under the terms of the GPL. The - class libraries are under the LGPL. The runtime libraries are - under the LGPL. +Q: What is the difference between Gtk# and System.Windows.Forms? -Q: Will you accept code under the XXX License? +A: Gtk# is a set of bindings for the Gtk+ toolkit for C# (and other + CIL-enabled languages). System.Windows.Forms is an API defined + by Microsoft to build GUI applications. -A: If the XXX License is compatible with the license we use in that - specific piece of code, then yes. If you want to use the BSD license, make - sure you use the BSD license without the advertisement clause (The - `Ousterhout License'). +Q: Will I be able to run my smart clients on systems powered by Mono? -** Mono and .NET +A: As long as your applications are 100% .NET and do not make use + of P/Invoke to call Win32 functions, your smart client applications + will run on Mono platforms. -Q: If applications use Mono, does that mean that I have to pay a service fee? + +** Mono and Microsoft + +Q: Is Microsoft helping Ximian with this project? + +A: No. Ximian CTO Miguel de Icaza had a friendly conversation with + Microsoft software architect David Stutz, but that's about the + extent of the contact. Microsoft is interested in other + implementations of .NET and are willing to help make the ECMA spec + more accurate for this purpose. + + Ximian representatives have also spoken with Sam Ruby at the ECMA + TG3 committee to discuss the same issues. + +Q: Is Microsoft or Corel paying Ximian to do this? + +A: No. + +Q: Do you fear that Microsoft will change the spec and render Mono + useless? + +A: No. Microsoft proved with the CLI and the C# language that it was + possible to create a powerful foundation for many languages to + interoperate. We will always have that. + + Even if changes happened in the platform which were undocumented, + the existing platform would a value on its own. + +Q: Are you writing Mono from the ECMA specs? + +A: Yes, we are writing them from the ECMA specs and the published + materials in print about .NET. + +Q: If my applications use Mono, will I have to pay a service fee? A: No. Mono is not related to Microsoft's initiative of - software-as-a-service. + software-as-a-service. -Q: If you implement .NET, will I depend on Microsoft Passport to run my software? +Q: Is the Mono Project is related to the Microsoft Hailstorm effort? Is + Ximian endorsing Hailstorm? -A: No. The .NET Framework is a runtime infrastructure and collection - of class libraries. Passport may be required to access certain web - services written for that framework, but only if the programmer - chooses Passport as the authentication mechanism. +A: No. The Mono Project is focused on providing a compatible set of + tools for the Microsoft .NET development platform. It does not + address, require, or otherwise endorse the MS Passport-based + Hailstorm single sign-on system that is part of Windows XP and + other services. -Q: Is .NET just a bunch of marketing slogans? +Q: Will Mono or .NET applications depend on Microsoft Passport? -A: Although the `.NET initiative' is still quite nebulous, The .NET Framework - has been available for some time. Mono is not an implementation of the .NET - initiative, just the development framework. +A: No. MS Passport is unrelated to running .NET compatible applications + produced with the Mono tools. The only thing you will need is a + just-in-time compiler (JIT). Q: What is a 100% .NET application? @@ -175,117 +298,83 @@ A: A `100% .NET application' is one that only uses the APIs defined applications would in theory run unmodified on Windows, Linux, HP-UX, Solaris, MacOS X and others. -Q: But Microsoft will release a port of the real thing under the - `Shared Source' license, why bother with anything else? +Q: If Microsoft will release a port of their .NET platform under the + `Shared Source' license, why should I bother with anything else? -A: The Shared Source implementation will not be usable for commercial - purposes. We are working towards an implementation that will grant - a number of rights to recipients: use for any purpose, +A: The Shared Source implementation will be expensive and its uses + will be tightly restricted, especially for commercial use. We are + working towards an implementation that will grant a number of + important rights to recipients: use for any purpose, redistribution, modification, and redistribution of modifications. This is what we call Free Software -** Passport - -Q: Is this a free implementation of Passport? +Q: Is Mono a free implementation of Passport? -A: No. Passport is part of Microsoft's Hailstorm initiative. Mono - is just a runtime, a compiler and a set of class libraries. +A: No. Mono is just a runtime, a compiler and a set of class + libraries. -Q: Will the System.Web.Security.PassportIdentity class, mean +Q: Will the System.Web.Security.PassportIdentity class mean that my software will depend on Passport? -A: No. That just means that applications might use that API to - contact a Passport site. +A: No. Applications may use that API to contact a Passport site, but + are not required to do so. As long as your application does not use Passport, you will not need Passport. - It might even be possible to implement that class with - a set of dummy functions, or use an alternate Passport implementation. +Q: Will Mono running on Linux make Passport available for Linux? - We do not know at this time whether the Passport protocol is - documented and whether we will be able to talk to - passport.com - -** Mono and Windows +A: No. However, the Passport toolkit for Linux-based web servers is + available from Microsoft. Q: Will Mono allow me to run Microsoft Office on Linux? A: No, it will not. Microsoft Office is a Windows application. To - run Windows applications on Intel Unix systems refer to the Wine Project - -** GNOME + learn more about running Windows applications on Intel Unix systems + refer to the Wine Project. -Q: How is this related to GNOME? + +** Mono and Portable.NET -A: In a number of ways: +Q: What are the differences between Mono and Portable.NET? - * Mono will use existing - components that have been developed for GNOME when it makes - sense. For example on X systems, we will use Gtk+ and - Libart to implement Winforms and the Drawing2D API. +A: Most of Mono is being written using C#, with only + a few parts written in C (The JIT engine, the runtime, the + interfaces to the garbage collection system). The Portable.NET + Project is using C for development. - For database access, we will use LibGDA (not really - depending on GNOME, but related to). - - * This project was born out of the need of providing improved - tools for the GNOME community. - - * We would like to add support to our CLR implementation to - deal with GObjects (in GNOME 1.x, they are called - GtkObjects), and allow Mono developers to provide GObjects - or use and extend existing GObjects. - -Q: Has the GNOME Foundation or the GNOME team adopted Mono? - -A: Mono is too new to be adopted by those groups. We hope that the - tools that we will provide will be adopted by free software - programmers including the GNOME Foundation members and the GNOME - project generally. - -Q: Should GNOME programmers switch over to Mono? - -A: Mono will not be ready even within the next six months, and a - complete implementation is probably one year away. - - We encourage GNOME developers to continue using the existing tools, - libraries and components. Improvements made to GNOME will have an - impact on Mono, as they will provide the "backend" for various - classes. - -Q: Will Mono include compatibility with Bonobo components? - -A: Yes, we will provide a set of classes for implementing and using - Bonobo components from within Mono. - -** Mono and the Web + +** Web Services -Q: Is Mono a way of running Java applets? +Q: How is Mono related to Web Services? -A: No. +A: Mono is only related to Web Services in that it will implement the + same set of classes that have been authored in the .NET Framework + to simplify and streamline the process of building Web Services. -** Web Services + But most importantly, Mono is an Open Source implementation of the + .NET Framework. -Q: Is Mono just a new way of writing Web Services? +Q: Can I author Web Services with Mono? -A: No. +A: You will be able to write Web Services on .NET that run on Mono and + viceversa. -Q: If this implements the SDK classes, will I be able to write and - execute .NET Web Services with this? +Q: If Mono implements the SDK classes, will I be able to write and + execute .NET Web Services with it? -A: Yes, you will. +A: Yes. When the project is finished, you will be able to use the + same technologies that are available through the .NET Framework SDK + on Windows to write Web Services. - When the project is finished, you will be able to use the same - technologies that are available through the .NET Framework SDK on - Windows to write Web Services. +Q: What about Soup? Can I use Soup without Mono? -Q: What about Soup? - -A: Soup is a library for GNOME applications to create SOAP server and - SOAP clients. +A: Soup is a library for GNOME applications to create SOAP servers and + SOAP clients, and can be used without Mono. You can browse the + source code for soup using GNOME's Bonsai. Q: Can I use CORBA? @@ -303,7 +392,8 @@ Q: Can I serialize my objects to other things other than XML? A: Yes, although the serializing tools have not yet been planned, and you would probably have to implement them yourself. -** Development Tools + +** Development Tools and Issues Q: Will it be possible to use the CLI features without using bytecodes or the JIT? @@ -316,14 +406,34 @@ A: Yes. The CLI engine will be made available as a shared library. Q: Will you have new development tools? -A: Hopefully Free Software enthusiasts will contribute tools to +A: With any luck, Free Software enthusiasts will contribute tools to improve the developer environment. These tools could be developed - initially using Microsoft implementation of the CLI and then + initially using the Microsoft implementation of the CLI and then executed later with Mono. +Q: What kind of rules make the Common Intermediate Language useful for + JITers? + +A: The main rule is that the stack in the CLI is not a general purpose + stack. You are not allowed to use it for other purposes than + computing values and passing arguments to functions or return + values. + + At any given call or return instruction, the types on the stack + have to be the same independently of the flow of execution of your + code. + +Q: Is it true that the CIL is ideal for JITing and not efficient for + interpreters? + +A: The CIL is better suited to be JITed than JVM byte codes, but you + can interpret them as trivially as you can interpret JVM byte + codes. + + ** Mono and Java -Q: What about using Java? After all there are many languages that +Q: Why don't you use Java? After all, there are many languages that target the Java VM. A: You can get very good tools for doing Java development on free @@ -342,18 +452,36 @@ A: You can get very good tools for doing Java development on free wide variety of programming languages, and has a set of rules designed to be optimal for JITers. -Q: What kind of rules make the Common Intermediate Language useful for - JITers? +Q: Could Java target the CLI? -A: The main rule is that the stack in the CLI is not a general purpose - stack. You are not allowed to use it for other purposes than - computing values and passing arguments to functions or return - values. +A: Yes, Java could target the CLI. We have details on a project that someone could take on to + make this happen. - At any given call or return instruction, the types on the stack - have to be the same independently of the flow of execution of your - code. + Microsoft has an implemenation of the Java language called J# that + can target the CIL execution engine. + +Q: Is it possible to write a JVM byte code to CIL convertor? + +A: Yes, it is possible. Here are a few starting point: + + + + ** Extending Mono Q: Would you allow other classes other than those in the @@ -372,7 +500,18 @@ A: Yes. The Microsoft class collection is very big, but it is by no For more information on extending Mono, see our ideas page. -** Mono and portability +Q: Do you plan to Embrace and Extend .NET? + +A: Embracing a good technology is good. Extending technologies in + incompatible ways is bad for the users, so we do not plan on + extending the technologies. + + If you have innovative ideas, and want to create new classes, we + encourage you to make those classes operate correctly well in both + Mono and .NET + + +** Portability Q: Will Mono only work on Linux? @@ -386,9 +525,23 @@ A: Our main intention at Ximian is to be able to develop GNOME applications with Mono, but if you are interested in providing a port of the Winform classes to other platforms (frame buffer or MacOS X for example), we would gladly integrate them, as long - they are under a Free Software License. + they are under an open source license. -** Reusing existing Code +Q: Will Mono run on Windows? + +A: We hope so. Currently some parts of Mono only run on Windows + (the C# compiler is a .NET executable) and other parts have only + been compiled on Linux, but work on Windows with Cygwin. + +Q: Will Mono depend on GNOME? + +A: It will depend only if you are using a particular assembly (for + example, for doing GUI applications). If you are just interested + in Mono for implementing a `Hello World Enterprise P2P Web + Service', you will not need any GNOME components. + + +** Reusing Existing Code Q: What projects will you reuse or build upon? @@ -398,9 +551,9 @@ A: We want to get Mono in the hands of programmers soon. We are Q: What about Intel's research JIT framework, ORP? A: At this time, we are investigating whether we can use elements of - ORP for Mono. ORP is a research JIT engine that has a clear + ORP for Mono. ORP is a research JIT engine that has a clearly defined API that splits the JIT from the GC system and the actual - byte code implementation. It is a research product. + byte code implementation. Q: What about using GNU Lightning? @@ -408,101 +561,103 @@ A: We are also researching GNU Lightning. -** Ximian and Microsoft - -Q: Didn't Miguel de Icaza say that `Unix Sucks'? - -A: Yes, he did, as a catch phrase in his opening remark on the Ottawa - Linux Symposium. His talk focused on various ways to improve Unix. - - There is a paper describing some ways to improve Unix at: - - - http://primates.ximian.com/~miguel/bongo-bong.html - -Q: Didn't Ximian's Miguel work for Microsoft? - -A: Actually, Nat Friedman (Ximian's co-founder) did work as an - intern for Microsoft for one summer but Miguel did not. - -Q: Did Nat and Miguel meet at Microsoft? + +** Mono and GCC -A: They met online on the Linux IRC network; They met in person for - the first time in 1997. +Q: Are you working on a GCC front-end to C#? A GCC backend that will + generate CIL images? What about making a front-end to GCC that + takes CIL images and generates native code? -Q: How can you expect Mono to compete with Microsoft, wont this - require an effort too large? +A: We are currently seeking volunteers for those projects. + Visit the contributing section if + you are interested. -A: You are right. Mono will never become a reality without the help - of other contributors. Ximian is a small company that can not - finish Mono alone. We will be working with members of the - community to deliver the product. +Q: But would this work around the GPL in the GCC compiler and allow + people to work on non-free front-ends? -** Acronyms +A: People can already do this by targeting the JVM byte codes (there + are about 130 compilers for various languages that target the JVM). -Q: What is the difference between CLR (Common Language Runtime) and - CLI (Common Language Infrastructure)? +Q: Why are you writing a JIT engine instead of a front-end to GCC? -A: CLI is the specification of an execution system. The Microsoft - implementation of this specification is named CLR. +A: We want the JIT engine and runtime engine because they will be able + to execute CIL executables generated on Windows, and so no recompilation + will be necessary. - Unless we come up with our own acronym, we could just call ours - also CLR, just because it would do exactly the same thing the - Microsoft implementation does. + +** Performance - -** Mono and GCC +Q: How fast will Mono be? -Q: Should someone work on a GCC front-end to C#? +A: We can not predict the future, but a conservative estimate is that + it would be at least `as fast as other JIT engines'. -A: I would love if someone does, and we would love to help anyone that - takes on that task, but we do not have the time or expertise to - build a C# compiler with the GCC engine. I find it a lot more fun - personally to work on C# on a C# compiler, which has an intrinsic - beauty. + We would like to ship various JIT engines with Mono, just like + Microsoft has done with their .NET development platform. We could + provide a faster, JIT for fast load times but lower performance, + and an and an optimizing JIT that would be slower at generating + code but produce more optimal output. -Q: Should someone make a GCC backend that will generate CIL images? + The CIL has some advantages over the Java byte code: it is really + an intermediate representation and there are a number of + restrictions on how you can emit CIL code that simplify creating + better JIT engines. -A: I would love to see a backend to GCC that generates CIL images. It - would provide a ton of free compilers that would generate CIL - code. This is something that people would want to look into - anyways for Windows interoperation in the future. + For example, on the CIL, the stack is not really an abstraction + available for the code generator to use at will. Rather, it is a + way of creating a postfix representation of the parsed tree. At + any given call point or return point, the contents of the stack are + expected to contain the same object types independently of how the + instruction was reached. -Q: What about making a front-end to GCC that takes CIL images and - generates native code? + +** Licensing -A: I would love to see this, specially since GCC supports this same - feature for Java Byte Codes. You could use the metadata library - from Mono to read the byte codes (ie, this would be your - "front-end") and generate the trees that get passed to the - optimizer. +Q: Will I be able to write proprietary applications that run with + Mono? - Ideally our implementation of the CLI will be available as a shared - library that could be linked with your application as its runtime - support. +A: Yes. The licensing scheme is planned to allow proprietary + developers to write applications with Mono. + +Q: What license or licenses are you using for the Mono Project? -Q: But would this work around the GPL in the GCC compiler and allow - people to work on non-free front-ends? +A: The C# Compiler is released under the terms of the GNU GPL. The runtime + libraries are under the GNU + Library GPL. And the class libraries are released + under the terms of the MIT X11 + license. -A: People can already do this by targeting the JVM byte codes (there - are about 130 compilers for various languages that target the JVM). +Q: I would like to contribute code to Mono under a particular + license. What licenses will you accept? +A: We will have to evaluate the licenses for compatibility first, + but as a general rule, we will accept the code under the same + terms of the "container" module. -** Mono and Portability + +** Miscellaneous Questions -Q: Will Mono work on other variants of Unix? +Q: You say that the CLI allows multiple languages to execute on the + same environment. Isn't this the purpose of CORBA? -A: Yes. We do not expect to add any gratuitous incompatibilities. +A: The key difference between CORBA (and COM) and the CLI is that the + CLI allows "data-level interoperability" because every + language/component uses the same data layout and memory management. -Q: Will Mono run on Windows? + This means you can operate directly upon the datatypes that someone + else provides, without having to go via their interfaces. It also + means you don't have to "marshall" (convert) parameters (data + layouts are the same, so you can just pass components directly) and + you don't have to worry about memory managment, because all + languages/components share the same garbage collector and address + space. This means much less copying and no need for reference + counting. -A: Hopefully yes. Currently some parts of Mono only run on Windows - (the C# compiler is a .NET executable) and other parts have only - been compiled on Linux, but work on Windows with Cygwin. +Q: Will you support COM? -Q: Will Mono depend on GNOME? +A: The runtime will support XPCOM on Unix systems and COM on Windows. + Most of the code for dynamic trampolines exists already. -A: It will depend only if you are using a particular assembly (for - example, for doing GUI applications). If you are just interested - in Mono for implementing a `Hello World Enterprise P2P Web - Service', you will not need any GNOME component. \ No newline at end of file