Is it time to change your development platform? This article covers some of the considerations in making a decision whether to move an existing Visual FoxPro application to a new development environment.
Take for example, the case of a legacy application written in Visual FoxPro. Is it better to re-write it in a new language such as .Net or Java, or should you continue with Visual FoxPro?
For the sake of discussion this article will assume the following: - the existing application is written in Visual FoxPro (3.0 or above) (ie it is not a DOS app) - the existing application uses VFP as the backend database - the existing application may or may not have a middle-tier architecture, and if it does, the middle tier is written in VFP
You may be weighing up one or more of the following options: 1. Continue in VFP 2. Move to another database backend (eg SQL Server) 3. Move to another Windows front end (eg .Net) 4. Move to a web based front end (eg ASP.Net or West Wind Web Connection) 5. A combination of these (eg .Net front end, VFP middle-tier, SQL Server backend)
There are five main factors that need to be covered:
1. Life remainingWhat is the life remaining in this application (assuming it was rewritten)? Is there a significant time frame over which you can get return for your investment? If you are considering moving to a new platform then you have likely decided the application has a long term outlook.
2. Existing DesignIs the design of your current application good?
If not then you need to analyse what is not correct about the design. Have the requirements changed over the years and the initial design not coped? Or was the initial application written with poor design decisions?
In contrast, if the current application architecture and design is good then there is a compelling reason to stay with your current toolset.
Is part of your reason for considering redevelopment so that you can add significant new features? If so will your existing architecture handle the requirements? What are some of the new requirements? Is corporate compliance (eg privacy laws, security, backup strategy) part of it? Is usability an issue? Do you need to support remote users now (but didn't previously)? Has the volume of data changed significantly? Are you looking to incorporate large BI modules into your application? Are you likely to outsource development of the application?
All these questions will be part of design and architecture consideration.
3. BudgetAlthough an obvious consideration, the effects of a change in development toolset need to be evaluated carefully.
Skills Will the development be performed by in-house developers? If so, do they need training to get up to speed? Is there a significant learning curve?
Infrastructure Will you need new hardware to handle the re-developed application (eg for SQL Server)? Will there be additional licensing costs (for both the tools and any servers required)? Will you need better desktop machines to run the application (eg the .Net runtime requirements are much higher than VFP)?
4. ResourcesResourcing a team is very difficult. In the case of VFP programmers, they are becoming scarce. Getting a good Visual FoxPro developer is difficult (although not impossible). In the case of .Net developers the issue is not scarcity, but experience and cost. Experienced Senior .Net developers are hard to find, and incredibly expensive at the moment. Junior developers are more plentiful, but also slightly costly. This will improve in the future though.
Other resourcing considerations If your application is data intensive, you may experience additional difficulties hiring programmers. VFP programmers usually have a background working with data, however finding Senior .Net developers who have also work deeply with data is often rare. Here we are talking about things like database referential integrity, self joins, optimising complex select queries, understanding triggers etc.
If your application is XML intensive, you will find VFP developers are often inexperienced. They are aware of the technology but have not used extensively. On the other hand .Net developers use XML all the time and are more comfortable with it. Here we are talking about an understanding of hierarchical data, XSL stylesheets, web services and updategrams.
These considerations will go hand in hand with your application requirements and design.
5. Future maintenanceWill the application be enhanced continuously over the coming years, or will it be reasonably static once it has been re-developed?
No one wants to build a system in a technology that will be gone in a few years time. This is a potential risk with Visual FoxPro. It has a long history, but no clear statement from Microsoft that development will continue in the coming years. The current Microsoft technical Support for Visual FoxPro expires in 2015.
.Net on the other hand is heavily supported. There is constant improvement and clear guidelines to its future. Keep in mind that a system developed in .Net today may not necessarily work in the .Net of tomorrow. There is a common misconception that by developing the application in .Net it will be well supported for the future. However, many systems developed in earlier versions of .Net (i.e .Net 1.1 and .Net 2.0) required significant work to have them work in .Net 3.5 (the current release).
Depending on your circumstances, keeping your application supportable (ie working in the latest .Net release) may require constant redevelopment. Failure to keep it current may result in it declared 'an unsupported language' application.
Talman's position We do not consider or promote ourselves as an impartial software house, rather we have strong biases we apply to any development.
For the sake of clarity, and to declare our biases, the following is the position we have chosen at this time: - we use Microsoft development tools exclusively - we use SQL Server as the backend on all new applications - we use .Net for all new desktop application front end development - we maintain and upgrade existing Visual FoxPro applications - we use Visual FoxPro for most desktop application front end development - we use Visual Studio and the .Net compact framework for any mobile device development - we use Visual Studio and ASP.Net for all web development - we use Visual FoxPro and .Net equally for middle-tier development - we use .Net for new middle-tier devvelopment, however we support and maintain legacy Visual FoxPro middle-tier development
|