Ask HN: Inheriting a large ASP.NET app, what would you do.
tl;dr:New CTO, dump asp.net for bootstrap + RESTful API?
I'm a consultant, and I'm charged with completing development on a large asp.net web application. It's about 25-50% of the way to being complete thanks to the previous devs who abandoned the project. I have full creative control of the project, so I am faced with a conundrum: If I stick with asp.net, I'll likely end up rewriting the app in place. The developers abondoned the project for a reason. They followed OO to the point of making a huge and hard to manage code base with hundreds of classes that need to be finished. Should I trudge on and finish this? I ask because I gave the client a substantial discount on my services for an equity stake in the company, and we have already made plans for extensions to my contract to deliver peripheral apps and additional features once the web app is delivered. My instincts are:
Put all the functionalities into an API,
Call the api from a new web app, possibly using bootstrap.
When phase 2 comes around, call API from native apps.
Or I could just stick with asp.net and have no jumpstart come phase 2, but it just seems so inefficient. Can I get some feedback as to what you would do in this situation?
15 comments
[ 3.3 ms ] story [ 54.8 ms ] threadI wish I would stress this more. Do it right, the way you know how.
Also, you haven't said if the existing code is WebForms or MVC (and the fact that you haven't makes it seem like you may struggle to finish the server side code using ASP.NET).
Which platform were you thinking you would develop the REST API on if not ASP.NET?
If the code was written in a half-way competent manner, it shouldn't be too tightly coupled to ASP.NET.
If there is a substantial amount of boilerplate code already written that you don't have to rewrite, I would suggest not rewriting it.
I too would like to know what you are considering for the server-side end of things.
The nice thing about ASP.NET is you can strip it down to the absolute basics. Remember that you have complete access to the request/response model. You don't have to render HTML at all. You can deal entirely in JSON if you are looking to build this into an API.
You don't necessarily need to rewrite all the components. If it's possible, hammer and chisel the existing code into something that's not so dependent on ASP.NET (e.g. move code out of .aspx/.ascx components). You can build a web app and an API at the same time, especially if you treat ASP.NET simply as a presentation layer.
The previous devs managed to get everything tightly coupled at the design stage, which is why I think their implementation efforts failed.
The plan for now is to seperate the existing code into layers and decide what to do from there.
Good luck!