Книга: Fedora™ Unleashed, 2008 edition
Why Use Mono?
Why Use Mono?
Linux already has numerous programming languages avail able to it, so why bother with Mono and .NET? Here are my top five reasons:
? .NET is "compile once, run anywhere"; that means you can compile your code on Linux and run it on Windows, or the reverse.
? Mono supports C#, which is a C-like language with many improvements to help make it object-oriented and easier to use.
? .NET includes automatic garbage collection to remove the possibility of memory leaks.
? .NET uses comes with built-in security checks to ensure that buffer overflows and many types of exploits are a thing of the past.
? Mono uses a high-performance just-in-time compiler to optimize your code for the platform on which it's running. This lets you compile it on a 32-bit machine, then run it on a 64-bit machine and have the code dynamically re-compiled for maximum 64-bit performance.
At this point, Mono is probably starting to sound like Java, and indeed it shares several properties with it. However, Mono has the following improvements:
? The C# language corrects many of the irritations in Java, while keeping its garbage collection.
? .NET is designed to let you compile multiple languages down to the same bytecode, including C#, Visual Basic .NET, and many others. The Java VM is primarily restricted to the Java language.
? Mono even has a special project (known as "IKVM") that compiles Java source code down to .NET code that can be run on Mono.
? Mono is completely open source!
Whether you're looking to create command-line programs, graphical user interface apps, or even web pages, Mono has all the power and functionality you need.
- Conventions used in this document
- Chapter 15. Graphical User Interfaces for Iptables
- Why this document was written
- Terms used in this document
- What NAT is used for and basic terms and expressions
- Раздел uses
- User-land setup
- Compiling the user-land applications
- User specified chains
- User-land states
- System tools used for debugging
- Setting up user specified chains in the filter table