Legacy Application Maintenance & Rewrites

Having developed software using many platforms and technologies over the past 20 years, we've seen today's latest technology become tomorrow's legacy systems. Whilst not especially exciting, dependable legacy systems are the backbone of many businesses and it often makes little economic sense to replace them with a completely new and incompatible system. We've many years' experience of extending and rewriting legacy systems, with great success, and indeed, some of the earliest systems we developed are now considered legacy systems themselves.

VB6, VB.NET & VBA Specialist!

We have decades of experience using Visual Basic, from VB2 through to VB6 including VBA.
If you need to...

  • Integrate your VB6 application with .NET components.
  • Call your tried-and-tested VB6 components from VB.NET.
  • Rewrite your VB6 application using a new language, for example VB.NET or C#.
...we can definitely help. We can even track down multiple dependencies and resolve those elusive "Runtime Error 429 - ActiveX Component Can't Create Object" messages.

Case Studies

VB6 Multi-Valued Database Application

One of our employees, Nick Mason, worked at a software house that sold a large multi-user application written in VB6, designed exclusively to work with a proprietary multi-valued database. Due to customer pressure, the vendor genuinely wanted to move the application from the old multi-valued database system onto Microsoft SQL Server. Initially, this was considered to be impractical, but Nick designed and implemented a new approach. In short, he:

  • Created a proof-of-concept in seven days (including partial conversion routines), to demonstrate that the approach was viable.
  • Wrote a database middleware layer to emulate the multi-valued database using SQL Server - this presented the legacy VB6 application with an interface identical to the multi-valued database, allowing the VB6 application to run almost unmodified against SQL Server. Data conversions and translations were applied on-the-fly, for example, the proprietary query language was translated into its SQL equivalent using a custom parser and then executed against SQL Server. The resulting data was re-encoded into the internal format exposed by the multi-valued database, before being passed back to the VB6 application. Likewise, data being written back was decoded from the proprietary format before being submitted to SQL Server.
  • Emulated various unusual aspects of the legacy database, ranging from its nonstandard locking behaviour, through to transaction management, and indeed, even some of the lesser-known quirks present in the original DBMS were emulated as well, to assure compatibility.
  • Produced data conversion routines to migrate data from the old database into SQL Server.
  • Worked with his development team to identify those few areas where going the full "100%" would be impractical - a pragmatic decision was made to manually rewrite those few areas where reaching perfect compatibility wasn't viable.

Nick's insight to take the emulation approach was significant, as the VB6 application had taken tens of man-years to write, comprising of hundreds of thousands of lines of source code - rewriting the entire application was completely out of the question. The project was a complete success and resulting product gained a new lease of life on SQL Server - the emulation layer was heavily optimised and added very little overhead and indeed, those few areas where key routines had been rewritten for SQL Server far outperformed the original system, thanks to SQL's set-based processing facilities as opposed to the legacy system's row-at-a-time approach. This system still runs right across the UK, serving hundreds of concurrent users across multiple sites every day.

.NET Reporting Application - Maintenance

An existing client approached us to take over software development and maintenance of an ASP.NET WebForms application. We inherited a list of outstanding issues, along with a large and varied development list of proposed additions, although as is often the case, no technical documentation. Arcamex has taken this product from strength to strength and still undertakes software development and maintenance on this product to this day - helping propel our client from a minor player, to the prominent market force they are today.

Summary

Whether you have a legacy system requiring re-implementation onto a newer platform, or have an existing system that requires further maintenance, Arcamex can help. Provided that we have access to the source code, we can often take complete systems "as is" with a minimum of technical documentation.