BUSS Ltd are a specialist technical and scientific computer graphics company, who have been
supplying their SIMPLEPLOT range of products and other services for over 20 years.
The BUSS SIMPLEPLOT graphing library was originally written in the early 1980's in Fortran
for use on mainframe and minicomputers. Over the last 20 years SIMPLEPLOT has been ported
to many systems, and languages, including C, C++, VB, Java, and Delphi.
At BUSS Ltd we like to ensure that our products are as portable as possible, while still
being relevant for the platform of the day. The last 10 years has seen a profusion of
language bindings and platforms which have their own strengths and weaknesses, and their
own ardent followers. The problem of maintaining so many different language bindings is
non-trivial, especially with the rate of change of compiler releases.
The Microsoft .NET framework offered a possible long term solution to these problems,
by allowing a single product to work well with many different language bindings, and
potentially across many different platforms.
Moving the SIMPLEPLOT family of products to the .NET platform would not be easy however.
SIMPLEPLOT has evolved into 2 major branches, the original Fortran branch, and a new C++
based branch. At first the obvious choice was to convert the C++ branch to managed C++
for use with .NET, but other work was also required. In addition to porting the core
SIMPLEPLOT code, a new .NET control would need developing to interface with Windows Forms
applications and the .NET framework. This control would be independent of the underlying
SIMPLEPLOT code and could be developed separately.
The complexities of learning the .NET platform, developing the new .NET control and porting
up to a hundred thousand lines of code meant that the project kept getting pushed back and
back. Worries about the performance of the .NET platform also did not encourage early adoption.
Enter the Silverfrost FTN95 for Microsoft .NET compiler
At BUSS we have had a long and profitable relationship with Salford Software. Back in the
days of 16 bit applications the Salford compilers with their 32 bit runtime system provided
the best platform for scientific and technical computing on the PC. SIMPLEPLOT has run on
the Salford compilers, first under DOS and later under Windows for many years, and has many
News that Salford (the original developers of FTN95) were developing a Fortran 95 compiler for .NET provided us with the
opportunity we had been waiting for. The Fortran version of SIMPLEPLOT should easily port
to the Silverfrost FTN95 for Microsoft .NET compiler, allowing us to concentrate on the
development of the new .NET control which would be required.
Despite the fact that we were working with a preview version of the compiler, the 60,000
lines of SIMPLEPLOT Fortran code compiled first time with the .NET compiler and we were
able to get a user program running against it within a few hours of downloading the compiler.
This was only half of the story however, without a .NET control to handle the interface
to the .NET graphics layer, there would be no pictures.
Having the bulk of the porting work done in a couple of hours by the FTN95 for .NET
compiler, freed up a huge amount of time to spend developing the .NET control.
All of the control development was carried out in C#. This meant that at some point the
C# and the Fortran code would have to communicate. This turned out to be surprisingly
easy. We were able to create an instance of the control within a Fortran program, pass
this down to the SIMPLEPLOT Fortran code and then call the C# drawing routines directly
from the Fortran.
A couple of days later, with the drawing routines added to the C# control, we managed
to produce a first graphics from SIMPLEPLOT.NET.
The ability of the Silverfrost FTN95 for Microsoft .NET compiler to interoperate within the
Visual Studio .NET IDE and to allow mixed language debugging was a major plus when developing
the .NET control. We were quickly able to track down any issues with the C# control.
As the C# control neared completion, and we were able to start validating the output of
our standard test programs, one other feature of the FTN95 .NET compiler became apparent.
It was fast, very fast. This has been a major worry before we started; our experience with
other JIT compilers was not good. This proved to be a groundless worry with Silverfrost FTN95
for .NET. The performance was satisfactory when running from within the Visual Studio .NET
IDE, and when running standalone it was impossible to tell the difference between the .NET
application and a natively compiled application.
SIMPLEPLOT.NET Project Summary
Our experience with the Silverfrost FTN95 for Microsoft .NET compiler has been very good. There
have been some issues, which you would expect with a preview release, but these have all
been sorted out quickly. Overall we are delighted with how the project has gone. We went
into the project looking to provide a graphing solution for users of the Silverfrost FTN95 for
.NET compiler, and to develop the .NET control that would be required. The performance we
have been able to achieve means that we may now postpone the idea of porting the
SIMPLEPLOT C++ version to managed C++.
We would certainly recommend the Silverfrost FTN95 for Microsoft .NET compiler to our customers
and anyone who wishes to move an application to .NET while reusing legacy FORTRAN code.
4 The Crofts
Phone/Fax: 01535 630458