Is Local ColdFusion development practical?

I used to develop entirely on development servers. This was fine until I started working 100% remotely about 5 years ago. At first I still used Homesite+ via RDP and continued to write code on the dev servers. Then I started using Eclipse/CFeclipse for my IDE. I have no regrets making that switch, but I was then limited to using Windows mapped drives to connect via a slow VPN connection (No RDP for CF5). Not Good! Eclipse was really-really slow doing anything over this connection. Somewhere in that time-frame I also started using Subversion and if I installed Subclipe it would literally kill Eclipse while it refreshed a project.

I now use various virtual machines running in VMWare Workstation. This is a terrific way to program locally on your PC, but still have the flexibility to configure just about anything that you want for a development setup. I typically use a much smaller database in the this dev scenario, as moving 10-20 GB of data over that same slow VPN connection is not any fun.

Well, today it bit me.

I do a lot of CF work around data from CA Unicenter Sevice Desk and I've been creating a neat little app using that data. It was my first 100% ExtJS app from top to bottom. GUI, AJAX, everything. It was really working well in my dev setup, so I pushed it up to my test server and it promptly fell on it's face. The query for the main grid on the page was taking about 4 seconds to run in dev, which was totally acceptable for what I was doing. Now it was running about 20-30 seconds. Yuck!

There were several problems:

  • Large database (15GB) on old hardware.
  • Using Linked SQL servers.
  • App server and database server geographical separated.

The only thing under my control was the use of the linked servers. That really is a poor method to perform any query in SQL Server, but I need it on occasion. In this case, I was able to recode my queries to use multiple datasources instead of the linked server plus a few other tweaks and I had the query time down to a respectable level.

I guess the moral of the story is: Don't get sucked into writing non-efficient code when you're developing locally. Remember what your production environment is really like and TEST on a production-similar server.


Comments (Comment Moderation is enabled. Your comment will not appear until approved.)