FastReport .Mono. What is it? What for is it?

Dmitriy Fedyashov

Mono is an open source development platform based on the .NET Framework, allowing developers to create cross-platform applications. The implementation of Mono .NET is based on the ECMA standards for C # and Common Language Infrastructure.

Initially, Mono was developed by Novell, then it was developed by Xamarin, and now by Microsoft. The Mono project has an active and enthusiastic community. Mono includes both developer tools and the infrastructure needed to run .NET client and server applications.

The Mono platform consists of several components:

The C # compiler supports C # standard 1.0, 2.0, 3.0, 4.0, 5.0 and 6.0 (ECMA).

Mono Runtime is the ECMA Common Language Infrastructure (CLI) framework. The runtime is provided by the Just-in-Time (JIT) compiler, the Ahead-of-Time compiler (AOT), the library loader, garbage collector, and so on.

The .NET Framework class library.

The Mono platform provides the implementation of libraries WinForms, ADO.Net, ASP.Net and others.

Mono Class Library - Many classes have been created with additional functionality specifically for Mono, which go beyond the base class library provided by Microsoft.

Despite the prejudiced attitude of developers to the Mono platform, many well-known companies use it. For example:

• Novell uses Mono for client and server applications;

• Unity Technologies uses Mono in the Unity 3D computer game simulation tool. This makes it possible to create cross-platform video games;

• Artisteer uses Mono to transfer its web designer to another platform. Starting with version 2.2, you can run your software with Mono.

Since there are not so many cross-platform generators, but really good ones can be counted on fingers, FastReports decided to create a report generator for Mono. Moreover, there is a ready-made popular report generator FastReport.Net, on the basis of which FastReport.Mono has been created. It appeared in 2013, and at that time it repeated the functionality of FastReport.Net. For now, however, there are differences between them. To be honest, FastReport.Net has made great progress. Nevertheless, FastReport.Mono remains a strong competitor in its niche. Moreover, personally I do not know other report generators under the Mono framework with such rich functionality.

What does FastReport.Mono offer?

• User-friendly and functional report designer;

• Connection to any database, and not only. Even text files can be data sources, not to mention XML and JSON;

• Presence of built-in report script. That gives the report huge opportunities. After all, you can use the Mono libraries directly in the report, to produce data transformations, and also work with report objects;

• Web reports, based on ASP.Net;

Let's take a closer look. With FastReport.Mono you can work in different operating systems. Well, of course, Mono is a cross-platform framework. Therefore, there are available systems: Windows, MacOs, the Linux family.

To work with Mono, and accordingly with FastReport.Mono, the following development environments are suitable:

Microsoft Visual Studio (under Windows), MonoDevelop (Windows, MacOs, Linux) and Embarcadero Delphi Prism (Windows, MacOs, Linux).

Programming languages for working with FR.Mono: C #, VB.Net, Oxygene (Embarcadero Delphi Prism).

The language of the built-in report script: C #, VB.Net. Everything is the same as in FastReport.Net.

The data sources available by default are XML, CSV. And to connect to databases, you need to use the data source of the user application, or external connectors that are installed in the system.

Interesting features of the report generator:

• dialog forms - before displaying a report, you can display a form with controls. In this way, the report user can set the report display options. For example, filter the required values;

• report inheritance - the ability to use the report as an initial template for others. This is convenient when you make many similar reports. In addition, changes to the base report will be displayed in all inherited reports. This can be attributed to the pluses as well. After all, you do not need to change a large number of reports if you need to edit the base template;

• Preview report component - allows you to view the report and do its export, send email, and manage viewing by displaying a report plan, navigate between pages;

• The report designer can be called separately as a standalone program, can be called up during the development of the user application, and during the execution of the user application. The latter option is very interesting. In fact, you embed the designer in your program and give the user the ability to edit the reports themselves.

• Advanced print mode - another thoughtful tool. Print settings are very rich.

Web reports are implemented through ASP.Net and ASP.Net MVC. What can I say -  it is a modern and popular approach.

The list of possible export reports is quite large:

  • Acrobat PDF;
  • Images Jpeg/PNG/BMP/GIF/TIFF;
  • RichText;
  • Word OOXML (docx);
  • PowerPoint OOXML (pptx);
  • HTML;
  • MHT (web archive);
  • Microsoft XPS;
  • Excel OLE;
  • Excel XML;
  • Excel binary (xls);
  • Excel OOXML (xlsx);
  • Comma separated values (CSV);
  • DBF (table);
  • Open Document Speadsheet (OpenOffice);
  • Open Document Text (OpenOffice);
  • Email;
  • PostScript;
  • Json;
  • LaTex;
  • FTP;
  • Text File / Matrix Printer;
  • Clouds (DropBox);
  • Clouds (Box);
  • Clouds (FastReport Cloud);
  • Clouds (GoogleDrive);
  • Clouds (OneDrive).

Pay attention, the last elements of the list - Clouds – are essentially saving the report to cloud services.

The format of the report file is frx, the same as in FastReport.Net. Yes, in fact, the reports are compatible between FR.Net and FR.Mono.

Developers, choosing a logo for FastReport.Mono, showed wit. Judge for yourself. Here is the logo of the Mono platform:

 

But the logo FastReport.Mono:

 

In conclusion, I want to note that the transfer of FastReport.Net to the Mono platform was a strategically correct decision.

Similar articles:

back