Introducing Mono


Mono: Mono is an open-source implementation of the .NET Framework and is cross platform. Mono is Sponsored by Xamarin. It is based on ECMA standards for C#. The core Mono environment is the basis of the Mono platform and additional components offer enchanced functionality like Window forms, Threading etc.

There are several components that make up Core Mono envionment are:

The Common Language Runtime(CLR): The CLR environment is also referred to as a managed environment, in which common services, such as garbage collection and security, are automatically provided. This provides an implementation of the CLR through an executable that invokes your .NET application with in the CLR environment.

GNOME, Mono, or Unix Libraries:The .NET Framework provides its own API called Windows Forms, which has been developed entirely using the .NET Framework and associated class libraries. This enables interoperability between any implementation of the CLI, so the same code will run the same on Microsoft's .NET implementation, on Mono's .NET implementation, and so on. One such example is the GNOME toolkit called Gtk#, which provides a set of C# bindings that can be used to develop GNOME-based applications. GtK+ is an  Open Source, Free software designed specially for implementing user interfaces on a number of platforms like windows, linux etc.

.NET Class library Implementation: The Mono environment also includes a set of libraries that constitute the .NET class library implementation, which is the Mono implementation of the .NET class library. The .NET class library allow the developers to create Web Services, Web forms, window forms and build stand-alone components.

C# Compiler: The C# compiler is the core part of the Mono development environment. It produces executable (.exe) files, dynamic-link libraries (.dll), or code modules (.netmodule).

Assemblers and Disassemblers for IL: The IL disassembler and assembler form a toolset for serializing and deserializing managed PE files. The IL disassembler  tool ILDASM.EXE  is distributed with the .NET framework SDK. They form a perfectly complementary pair and the output of the IL disassembler can be fed to the IL assembler. The disassembler provides numerous viewing options that allow you to control the disassembly presentation. The IL assembler can define vtables and fixups. The data section of an image file generated by the class is a read/write section. The text section is emitted by the IL aasembler.


Additional components are:

Untitled-1.1.gif


Figure 1.1:  view of the Mono components
 

  • ASP.NET: ASP.NET is a technology for building the dynamic and interactive web sites. ASP stands for active server pages and .NET framework offers a variety  of languages which puts us programmers into a deep thought process about which programming language best suits our needs. ASP.NET also creates an application domain for each Web application that will run on a Web server. In other words, ASP.NET is a server side scripting language.

    Web services
    : Web services are components on a Web server  that is designed to interact directly with other applications over the internet. ASP.NET Web services provide the highest levels of interoperability with full support for WSDL and SOAP over HTTP. ASP.NET Web services favor the XML Schema type system, and provide a simple programming model with broad cross-platform reach.instance. ASP.NET Web Services client proxies work in  semitusted environment without having  to change the default security policy. In short, they are a simpler choice because security policy changes are not required.

    Web forms: A Web Forms application is one that is delivered to the user using a browser-based interface. They are similar to Windows Forms in that they provide properties, methods, and events for the controls that are placed onto the them. Web Forms are made up of two components: the visual portion(.aspx )and the code behind the form, which resides in a separate class file. It allows you to design and coinstruct the web pages.

     
  • WINDOW FORMS: A .NET based set of GUI Components for building the user interface. Window forms also known as Winforms. The Windows Forms technology is for building rich clients that are stand-alone applications and that require the .NET Framework. The WinForms components are provided within the System.Windows.Forms namespace. The WinForms components allow you to create and manipulate windows and controls using the predefined base classes provided under the relevant namespace with relative ease.

    GRAPHIC DISPLAY INTERFACE PLUS (GDI+): Windows Forms applications are completely dependent on the functionality offered by GDI+. The Graphics package provide the implementation of GDI+. The GDI+ layer is an Application programming interface (API) that is implemented as a set of detailed interfaces that are more complex to understand than some of the other components such as Windows Forms and Gtk#. The System.Drawing namespace is used for the concepts like directly manipualte the graphical display and create the UI components such as text boxes, panels and trees etc. This namespace is compatible with the microsoft application programming interface.

    The GDI+ programming interfaces has two drawing mechanisms. The first is Microsoft's System.Drawing API acts as a C# wrapper and the second is  a Cairo vector graphics library that  provide high-quality display and print outputs.

    Untitled-2.gif

    Figure 1.2: shows two drawing components.

    GTK#( GTK-SHARP): The GTK# is considered to be native for the Linux/Unix operating system. It is a multiplatform GUI framework means if you write an application on gtk# and you can use it on windows also. It supports many languages and it has wide range of widgets and controls. It is basically consists of three components:gtk-sharp, gnome-sharp and gnome -desktop . It is an open-source GNOME-based set of GUI components usedf to create the graphic user interface in mono environment. The original Gtk started for the GNU image Manipulation Program (GIMP) by the peter Mattis. It consists of a number of libraries, includes Cairo library, glib library, Accessibility Toolkit (ATK) library, Pango library , GdkPixbuf library etc.


Similar Articles