Mono (software) Wiki resources & Mono (software) information at HealthHaven.com
advertise
toolbar
services
publishers
database
membership
Dr. Paul

Search  for    ?
web dir image video media news gallery wiki shop 
about
HealthBot
stats
live show
health store
shirts
JOIN/LOGIN
Mono (software):
Mono
Developed by Novell
Initial release June 30, 2004
Latest release 2.0.1 / 23 October 2008; 42 days ago
OS Cross-platform
Type Platform
License GPLv2, LGPLv2 and MIT, or dual license
Website http://www.mono-project.com

Mono is a project led by Novell (formerly by Ximian) to create an Ecma standard compliant .NET compatible set of tools, including among others a C# compiler and a Common Language Runtime. Mono can be run on Linux, BSD, UNIX, Mac OS X, Solaris and Windows operating systems.

Microsoft has a version of .NET 2.0 now available only for Windows XP, called the Shared Source CLI (Rotor). Microsoft's shared source license may be insufficient for the needs of the community (it explicitly forbids commercial use). The Mono project has many of the same goals as the Portable.NET project, part of the similar but separate project DotGNU run by Free Software Foundation.

The Mono runtime contains a just-in-time compilation (JIT) engine for a number of processors: x86, SPARC, PowerPC, ARM, S390 (in 32-bit and 64-bit mode), and x86_64, IA64 and SPARC for 64-bit modes. The runtime will perform a just-in-time compilation to the machine's native code which is cached as the application runs. It is also possible to precache the native image before execution. For other supported systems not listed, an interpreter performs each byte code one by one without compiling the image to native code. In almost every condition the JIT method will outperform the interpreted method.

Contents

[edit] History

Miguel de Icaza became interested in .NET technology as soon as the .NET documents came out in December 2000. After looking at the byte code interpreter, he realized that there were no specifications for the metadata. In February 2001 de Icaza asked for the missing information on the metadata file format in the .NET mailing lists and at the same time started to work on a C# compiler written in C#, as an exercise in C#. In April 2001 ECMA published the missing file format, and at GUADEC (April 6April 8, 2001) de Icaza demonstrated the features of his compiler (which by then was able to parse itself).

Internally at Ximian there was much discussion about building tools to increase productivity: making it possible to create more applications in less time and therefore reduce time and cost of development. After a feasibility study, which clearly stated that it was possible to build the technology, Ximian reassigned staff from other projects and created the Mono team. Lacking the resources to build a full .NET replacement on their own, they formed the Mono open source project, which was announced on July 19, 2001 at the O'Reilly conference.

Almost three years later, on June 30, 2004 Mono 1.0 was released.

The logo of Mono features a monkey, mono being the Spanish word for monkey. The name relates to the monkeys and apes that are a central theme within Ximian, such as the GNOME Project foot, the Bonobo project (a OLE/COM like library used in GNOME created by Ximian) which is a species of ape related to chimpanzees and humans, the Novell Evolution (formerly Ximian Evolution) Project, and the Ximian logo itself. The Mono FAQ claims that the origin of the name is "We like monkeys." For what it may be worth, "Ximian" is near-homophone of simian.

[edit] Current status and roadmap

Mono's current version is 2.0 (as of October 6, 2008).[1] This version provides the core API of the .NET Framework as well as support for Visual Basic.NET and C# versions 2.0 and (partially) 3.0. LINQ to objects and XML is part of the distribution, but not LINQ to SQL. C# 3.0 is now the default mode of operation for the C# compiler. Windows Forms 2.0 is also now supported.

Implementation of .NET Framework 3.0 is under development under an experimental Mono subproject called Olive, but the availability of a Mono framework supporting .NET 3.0 is still not planned yet.[2]

An open source implementation of Silverlight, called Moonlight, is now underway and is included since Mono 1.9.[3] The Silverlight .NET implementation is currently still a work in progress, a Silverlight 1.0 compatible Beta version being planned for end of 2008, and an alpha version for Silverlight 2.0 for June 2009[4].

[edit] Mono components

Mono consists of three groups of components:

  1. Core components
  2. Mono/Linux/GNOME development stack
  3. Microsoft compatibility stack.

The core components include the C# compiler, the virtual machine, and the base class libraries. These components are based on the Ecma-334 and Ecma-335 standards, allowing Mono to provide a standards compliant, free and open source CLI virtual machine.

The Mono/Linux/GNOME development stack provide tools for application development while leveraging existing GNOME and Free and Open Source libraries. These include: Gtk# for GUI development, Mozilla libraries for working with the Gecko rendering engine, Unix integration libraries, database connectivity libraries, a security stack, and the XML schema language RelaxNG. Gtk# allows Mono applications to integrate into the Gnome desktop as native applications. The database libraries provide connectivity to MySQL, SQLite, PostgreSQL, Firebird, Open Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle, the object-relational database db4o, and many others. The Mono project tracks developing database components at its website.

The Microsoft compatibility stack provides a pathway for porting Windows .NET applications to Linux. This group of components include ADO.NET, ASP.NET, and Windows.Forms, among others. As these components are not covered by ECMA standards, some of them remain subject to patent fears and concerns.

[edit] Framework architecture

Simplified Mono architecture

[edit] Class library

The class library provides a comprehensive set of facilities for application development. They are primarily written in C#, but due to the Common Language Specification they can be used by any .NET language. The class library is structured into namespaces, and deployed in shared libraries known as assemblies. When we speak of the .NET framework, we are primarily referring to this class library.

[edit] Namespaces and assemblies

Namespaces are a mechanism for logically grouping similar classes into a hierarchical structure. This prevents naming conflicts. The structure is implemented using dot-separated words, where the most common top-level namespace is System, such as System.IO and System.Net (a complete list can be found in Mono Documentation). There are other top-level namespaces as well, such as Accessibility and Windows. A user can define a namespace by placing elements inside a namespace block.

Assemblies are the physical packaging of the class libraries. These are .dll files, just as (but not to be confused with) Win32 shared libraries. Examples of assemblies are mscorlib.dll, System.dll, System.Data.dll and Accessibility.dll. Namespaces are often distributed among several assemblies and one assembly can be composed of several files.

[edit] Common Language Infrastructure and Common Language Specification

The Common Language Infrastructure (CLI), or more commonly known as the Common Language Runtime, is implemented by the Mono executable. The runtime is used to execute compiled .NET applications. The common language infrastructure is defined by the ECMA standard ECMA-335. To run an application, you must invoke the runtime with the relevant parameters.

The Common Language Specification (CLS) is specified in chapter 6 of ECMA-335 and defines the interface to the CLI, such as conventions like the underlying types for Enum. The Mono compiler generates an image that conforms to the CLS. This is the Common Intermediate Language. The Mono runtime takes this image and runs it. The ECMA standard formally defines a library that conforms to the CLS as a framework.

[edit] Managed and unmanaged code

Within a native .NET/Mono application, all code is managed; that is, it is governed by the CLI's style of memory management and thread safety. Other .NET or Mono applications can use legacy code, which is referred to as unmanaged, by using the System.Runtime.InteropServices libraries to create C# bindings. Many libraries which ship with Mono use this feature of the CLI, such as Gtk#.

[edit] Related projects

There exist lots of projects related to Mono that extend Mono and allows developers to use Mono in their development environment. These projects include:

  • Cocoa# [1] wrappers around the native Mac OS X toolkit (Cocoa).
  • Gecko#, bindings for embedding the layout engine used in Mozilla (Gecko).
  • Gtk#, C# wrappers around the underlying GTK+ and GNOME libraries, written in C.
  • Tao, a collection of graphics and gaming bindings (OpenGL, SDL, Glut, Cg).
  • MoMA, Mono Migration Analyzer (MoMA) tool.

[edit] MonoDevelop: the Mono IDE

Main article: MonoDevelop

MonoDevelop is a free GNOME integrated development environment primarily designed for C# and other .NET languages such as Nemerle, Boo, and Java (via IKVM.NET). MonoDevelop was originally a port of SharpDevelop to Gtk#, but it has since evolved to meet the needs of Mono developers. The IDE includes class management, built-in help, code completion, Stetic (a GUI designer), project support, and an integrated debugger.

The MonoDoc browser provides access to API documentation and code samples. The documentation browser uses wiki-style content management, allowing developers to edit and improve the documentation.

[edit] License

Mono is dual licensed by Novell, similar to other products such as Qt and the Mozilla Application Suite. Mono's C# compiler and tools are released under the GNU General Public License (GPLv2 only) (starting with version 2.0 of Mono, the Mono C# compiler source code will also be available under the MIT X11 license)[5], the runtime libraries under the GNU Lesser General Public License (LGPLv2 only) and the class libraries under the MIT License. These are all free software and open-source licenses and hence Mono is free and open-source software.

[edit] Mono and Microsoft’s patents

Mono’s implementation of those components of the .NET stack not submitted to the ECMA for standardization has been the source of patent violation concerns for much of the life of the project. In particular, discussion has taken place about whether Microsoft could destroy the Mono project through patent suits.

The base technologies submitted to the ECMA, and therefore also the Unix/GNOME-specific parts, may be non-problematic. The concerns primarily relate to technologies developed by Microsoft on top of the .NET Framework, such as ASP.NET, ADO.NET and Windows Forms, i.e. parts composing Mono’s Windows compatibility stack. These technologies are today not fully implemented in Mono and not required for developing Mono-applications. Richard Stallman (who is not involved with the project) has claimed it may be "dangerous" to use Mono because of the possible threat of Microsoft patents[6].

On November 2, 2006, Microsoft and Novell announced a joint agreement whereby Microsoft agreed to not sue Novell’s customers for patent infringement.[7] According to Mono project leader Miguel de Icaza,[8] this agreement extends to Mono but only for Novell developers and customers. It was criticized by some members of the free software community because it violates the principles of giving equal rights to all users of a particular program (see Novell and their Patent Agreement with Microsoft).

For more details on this topic, see Patents and free software.

[edit] Software developed with Mono

The following are programs that use the Mono API and C#.

F-Spot photo management program
  • F-Spot is a photo management program.
  • iFolder 3 (by Novell) lets you share files across multiple computers and with other users through peer-to-peer or Novell's groupware server products.
  • KeePass 2 (preview release!) is an open source password management utility.
  • libsecondlife is an open source implementation of the Second Life networking protocol written in C# that will run under Mono or .NET.
  • MonoDevelop is an IDE for creating Mono applications. It was originally a port of SharpDevelop to Gtk#, but is today developed on its own. A Windows installer is not provided, but it can be built and run on Windows[9].
  • Muine is a music player with a user interface designed to be intuitive, developed by Jorn Baayen who also worked on Rhythmbox.

[edit] See also

[edit] References

[edit] Notes

[edit] External links

[edit] International


Product Results:

Welch-Allyn ABPM Software W/O Cable Software Ea - Model ABP-SW Categorization: Miscellaneous > Miscellaneous
Welch-allyn Abpm Software W/o Cable Software Ea...
DietMaster 2100 V8 is like having your own private sports nutrition counselor! Enter your personal profile to calculate your calorie needs and select from ready-to-print stable blood sugar meal plans and grocery lists designed by our team registered dietitians. DietMaster 2100 also provides you the ability to analyze your eating habits to identify caloric intake and nutrient deficiencies. ::Set you goal weight and track your body symmetry measurements including arms, shoulders, waist, hips, thighs and more. Use the Body Composition screen to save historical body weight and body fat data and graph progress over 3 months, six months or one year.::Dietitians note about meal plans included in the software: Blood sugar or glucose is the bodys main source of energy and is formed when any type of carbohydrate is digested. Keeping blood sugar levels stable or level throughout the day is vital to people with diabetes to help protect them from developing diabetic complications down the road. Tight control of blood sugar levels can also help you avoid hunger throughout the day. The Templates incorporate six meals everyday to help minimize dips in blood sugar levels. They are packed with good nutrition including fiber, healthy fats, flaxseed and chromium that all play an important role in stabilizing blood sugar levels. If you have type 1 or type 2 diabetes, check with your physician before following any type of meal plan. Meal planning for diabetics should be individualized and based on individual nutritional goals as well as medications.::IMPORTANT: DietMaster 2100 Plus editions are not designed for professional use. Certain personal profile information cannot be changed once entered (e.g., birth date and gender). DietMaster 2100 and other DietMaster products are not intended to replace the expert advice of a medical practitioner and are not designed to treat diseases of any kind.
DietMaster 2100 Plus Nutrition Software -...
The Ergo Concept II software from Kettler is an advanced fitness aid that offers one of the most sophisticated and thorough home workouts available. The Ergo Concept II training and exercise software provides standardized level testing, fitness tests, beginners†courses and true-life training programs. This innovative fitness tool also offers intense mountain biking and all 16 stages of the Tour de France. The versatile Ergo Concept II monitors, assesses and trains with intuitive precision for a remarkably challenging and effective workout.
Kettler Fitness Ergo Concept II Software
This Combo Includes::::Personal Body Fat Tester:::Body Tracker Software: A software package that will help you calculate and record your body fat percentage, keep track of your body measurements, keep track of your blood pressure, graph your progress, and view your pictures. All you need is a fat caliper or tape measure, and Body Tracker will do all the calculations for you, using the popular Jackson and Pollock skinfold method or the Naval Health Research Center tape measurement method.
Body Fat Tester & Software Combo
Save $49 on the NetAtlon2 real-time virtual reality cycling package for the MagneTrainer. Includes NetAtlon2 software and the MagneTrainer PC Interface. Works with the MagneTrainer Mini Exercise Bike (sold separately). Your pedal speed controls your character speed. The faster you pedal the bike, the faster your character will go. The software can automatically steer for you for hands-free operation. You can also steer using a USB game controller or USB steering wheel. There are 3 ways to enjoy NetAtlon2 software. 1.(SOLO): NetAthlon gives individual users motivating virtual training courses. In addition, virtual training partners can quickly be created to challenge you during your workout. 2. Over a Local Network Two or more NetAthlon users can use a network or direct PC connection to create head-to-head competition. Up to 16 users on the same network can join in, too! 3. Over the WEB: WebRacing is what NetAthlon was ultimately created for: Using the internet to take participatory sports beyond the current constraints of time and space. Up to 16 users at a time.
MagneTrainer PC Interface with NetAthlon2 Softwar...

Search  for    ?
web dir image video media news gallery wiki shop 


↑ top of page ↑