I generally tell my clients to focus on the long term costs of a project rather than the initial development costs. It is common knowledge that no technology lasts forever, but what people don’t take into account is the cost and quality of staff. A good example is Classic ASP.
Some of our first websites were done in Classic ASP. It was simply the only real option at the time. Development was fairly straight forward and developers were easy to find. Most websites have a “Contact Us” form, and maybe a few other forms on their site, but nothing extremely advanced. Our systems were exclusively ERP and CRM, every single page was data intensive and quite complex. As such, heavily laden with spots of practically incomprehensible code.
We cleaned them up and designed a more object oriented “model”. Still, those classic ASP sites became very expensive to maintain. The problem wasn’t the time, it was the staffing. Go look for a classic ASP developer. There is a dwindling pool. Moreover, in that pool, lives a lot of people you simply don’t want to hire. These are people who never “moved on” to new technology. The best ones know perfectly well that they are the best in their field, and charge accordingly. So, a very good 30yr old developer from 15 years ago is now married with kids and making $100/hr and clocks out at 5pm to get ready to start coaching his kids soccer team, rather than $30/hr and would work nights and weekends for you.
What’s even worse is the guys who will take the job, but are really just waiting for a “real job” to appear, and then they’ll drop everything and walk away. If your system takes a few months to get a handle on, this is a massive loss.
Now, we’ve reached another turning point.
While developers love MVC, many business owners have been frustrated with what appears to be a massive loss of investment. After putting huge amounts of money into converting Classic ASP sites into WebForms, suddenly the market for WebForms developers is tightening up. MVC is the new cool thing. (and it is pretty cool) Unfortunately, most developers don’t realize the amount of investment made by businesses to convert their classic ASP sites into WebForms. With a large and complex database system, that change was probably extremely expensive. We could convert any website into MVC in a few weeks, but converting an ERP system could take years. Moreover, the risk of failure is immense. Shutting down 50 warehouses pick-lines, for example, could cost millions.
So, what to do?
For businesses looking into the future of their ERP and CRM, I’m recommending that WebForms customers just sit tight for a few years, but Classic ASP site owners -> Skip MVC and go directly to pure WebApi with Dynamic HTML.
Basically, the cost of WebAPI is about the same as MVC, but the conversion can actually be done piecemeal. Most likely, your Classic ASP site is running on an old server and probably has a ton of other supporting applications running on it as well. The key here is that you can run your WebApi on a completely different server and use CORS to access the data. So, you can actually create a WebApi for each ASP page. If you’d like, you can even use the API to simply do the READ of data, leaving all the work for the classic ASP logic to handle.
Later, start adding the PUT and POST to your WebApi, sending back the data that way, rather than using the classic ASP engine. Pretty soon, you’ll be able to delete almost all classic ASP from your site, without even shutting it down. No big roll-out, no endless QA, just a slow upgrade that will be appreciated by users.
There is a huge value in that stability, but you’ve also got to look at the long-view. Your Classic ASP developers have a wealth of information that simply can’t be learned in a book. Just as you need to convert your site to a new technology, you need to convert THEM as well. In 10 years, nobody will know what Classic ASP even is, but WebApi will be common. Not only will finding employees will be easy, but the wealth of information held by your long-term employees will be handed down.
When your site is completely WebApi, THEN you might want to move to MVC. What’s simply fantastic is that a conversion from WebApi to MVC is child’s play. All the data is already handled. It would simply be dealing with layout. Moreover, you could run them both at the exact same time. Put one department on the new MVC site and leave the rest where they are. It’s ideal. Again, the focus being on stability and roll-out.
Good Luck!