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:
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.
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.