project
> cvs
— An older project revision control system, now replaced by Subversion
> designer
— Trolltech's graphical prototyping tool for use with Qt libraries and X
> gcc
— The GNU C/C++ compiler system
> gdb
— The GNU interactive debugger
> glade-3
— The GNOME graphical development environment for building GTK+ clients
> gprof
— The GNU program profiler
> kdevelop
— The KDE C/C++ graphical development environment for building KDE, GNOME, or terminal clients
> make
— A GNU project management command
> patch
— Larry Wall's source patching utility
> pmake
— A BSD project management command
> splint
— The C source file checker
> svn
— The Subversion version control system
Reference
> http://www.trolltech.com/products/qt/tools.html — Trolltech's page for Qt Designer and a number of programming automation tools (including translators) that you can use with Fedora.
> http://glade.gnome.org — Home page for the Glade GNOME developer's tool.
> http://www.kdevelop.org — Site that hosts the KDevelop Project's latest versions of the KDE graphical development environment, KDevelop.
>
>
>
>
CHAPTER 29
Mono
Although Microsoft intended it for Windows, Microsoft's .NET platform has grown to encompass many other operating systems. No, this isn't a rare sign of Microsoft letting customers choose which OS is best for them — instead, the spread of .NET is because of the Mono project, which is a free re-implementation of .NET available under the GPL license.
Because of the potential for patent complications, it took Red Hat a long time to incorporate Mono into Fedora, but it's here now and works just fine. What's more, Mono supports both C# and Visual Basic .NET, as well as the complete .NET 1.0 and 1.1 frameworks (and much of the 2.0 framework too), making it quick to learn and productive to use.
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.
Mono on the Command Line
Mono should already be installed on your system; however, it is installed only for end users rather than for developers—you need to install a few more packages to make it usable for programming. Start up Add/Remove Software, and, from the List view, make sure the following packages are selected:
> mono-core
> mono-data
> mono-data-sqlite
> mono-debugger
> mono-devel
> monodevelop
> monodoc
> mono-jscript
> mono-locale-extras
> mono-nunit
> mono-web