|
It might be worth it for you to take a look at TreeSheets:
<a href="https://strlen.com/treesheets/">TreeSheets</a>[<a href="https://strlen.com/treesheets/" target="_blank" title="New Window">^</a>]
<a href="https://github.com/aardappel/treesheets">GitHub - aardappel/treesheets: TreeSheets : Free Form Data Organizer (see treesheets.com)</a>[<a href="https://github.com/aardappel/treesheets" target="_blank" title="New Window">^</a>]
|
|
|
|
|
COTS. The technology is secondary if it's already written and you have to ask.
|
|
|
|
|
Are you going to re-install the client on every computer in your company when you make changes? You are still going to need a central database server, so why not also a web server?
|
|
|
|
|
So I have this customer who has this 20 year old web application.
It works, it's still actively developed, but it's beginning to show its age (well, I guess it's been doing that for years).
It's VB.NET Web Forms updated to the latest .NET Framework, 4.8.
It's pretty much what you'd expect of something like that.
SQL queries written directly into the HTML (or whatever you call the Web Forms HTML), a lot of roundtrips to the server, and XML web services.
Most logic is written in SQL Server views, functions and stored procedures, which don't really have any sort of reliable source control.
A lot of programmers wouldn't touch it with a stick.
Now there have been discussions over whether or not we should do a rewrite, or in any other way update to something more modern.
Maybe we can start by modernizing the generated HTML and CSS to make things more modern, like making the pages responsive.
Replacing VB with C# would be a good move to attract developers in the future and to make use of newer language and VS features and we can hopefully do that page by page (for example, LINQ queries are a pain in VB!).
Perhaps throw in some build and release pipelines (it's now copy/paste) and replace SVN with Git.
I know rewrites are hard, expensive, and probably more often than not don't end well.
Have you been in this situation?
What did you do?
Tips?
|
|
|
|
|
I am on the 'rewrite from scratch' side.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
Yeah, but unless you have a very solid plan and strategy that's destined to fail.
You don't just rewrite 20 years of development.
|
|
|
|
|
Quote: You don't just rewrite 20 years of development. More than 30, in my case.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
ditto
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
I have no experience with those technologies but have gone through rewrites that succeeded and others that failed, so I wrote an article[^] on the topic.
|
|
|
|
|
Thanks, going to discuss some points with my client.
|
|
|
|
|
Oooohhh... you should put it in The Cloud!
|
|
|
|
|
I know you're being sarcastic here, but that would absolutely have my preference.
|
|
|
|
|
Based on your experience to develop such a web app from scratch you need to come up with the scope of work, the technology going to be used , the team that will be involved, the skill needed......and the man hours and the project development phases...all that needs to be submitted to the client.Taking that 20 year code and working with that along with all that sql and vb.net ooff
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
How much money and time do you have?
Rewriting or porting an application is normally only 100% successful if it's built in a structured way. Hell know what's awaiting you in a bowl of spaghetti.
I would start with refactoring the existing app into proper logical layers. (Move all sql-queries to a datalayer and all logics to a business layer and clean it up while doing so)
If you feel that this is to hard or to much work, or get to much resistance from the existing developers, you probably already know it will fail.
Otherwise you will have a good starting point for a rewrite.
So as I see it, the choice isn't between refactor OR rewrite. You should do both.
|
|
|
|
|
Before touching anything, you should have done a current logical and physical design analysis ("diagrams"); allowing you to tackle any "rewrites" in an an intelligent manner (priorities); instead of heading off in all directions.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
Just ask the Witch to help you port it to the Teensy and she will rewrite it in a couple of days for you!
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|
The best quote for deciding on Green-field or Maintenance on Brown-field...
"It is easier to give birth than raise the dead." ~unknown
Build the new one!!!
|
|
|
|
|
It sounds like you should be able to rewrite it a page at a time.
Bonus:
Have both deployed side by side so you can compare them/use them.
Once they are happy with the new version, delete the old one.
|
|
|
|
|
> but it's beginning to show its age
That is a vague problem description.
What is the real problem?
- performance,
- concurrency,
- GUI (look & feel)
- quality of code,
- no people that know the technology?
- ....
|
|
|
|
|
All of the above.
People know the technology, they just don't want to work with it (including me, to be honest).
|
|
|
|
|
Avoid doing a hard rewrite/relaunch, do a gentle "sunsetting" over time
1 Keep the old application but keep track of how many hits it gets
2 Make a new competing application, also tracking its hits
Then launch them side-by-side, giving the user a choice about which one they want to use, maybe even having cross links to make them able to "jump to the other side". Keep a look at the statistics to see if the new one is gaining or losing. I think you get the basic idea.
Suggested reading: https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22[^]
|
|
|
|
|
It's an internal business application.
No competing or statistics there, just the one or the other.
|
|
|
|
|
You haven't given us any idea how big the system is (in terms of lines of code or whatever). Although, arguably, the bigger it is the more it would make sense to rewrite it rather than having to keep some old, creaking codebase working.
I recently went through my entire C++ codebase replacing a lot of old-fashioned manual memory management with 'modern' C++ idioms. It was a daunting prospect initially but I am sooooooo glad I did it. So, I would say, if you can handle the issues that Sander (quite rightly) raises and have sufficient resources then I would go for it. Just my $0.02
Paul Sanders.
If I had more time, I would have written a shorter letter - Blaise Pascal.
Some of my best work is in the undo buffer.
|
|
|
|
|
Well, what do you expect after 20 years of development?
It's not small, it has a few dozen pages with features such as entering sales orders, purchase orders, importing data from various sources, exporting to various sources, product and client management, stock management...
Basically everything a mid-sized organization needs to do business.
Paul Sanders (the other one) wrote: So, I would say, if you can handle the issues that Sander (quite rightly) raises and have sufficient resources then I would go for it. If I can handle the issues I raised myself?
|
|
|
|
|
Oh, it was you that started the thread, lol. Sorry, need coffee.
Paul Sanders.
If I had more time, I would have written a shorter letter - Blaise Pascal.
Some of my best work is in the undo buffer.
|
|
|
|