|
I've been there many times as it seems I am one of those (un)lucky ones that actually enjoys untangling legacy code messes mysteries. What I usually do, after getting the hang of how to do a release with the current process, is:
1) Automating CI/CD - some things will be broken by refactorings, better be able to build/test/release quickly. Moreover, nowadays Git is a must;
2) Encapsulating all data access queries. Start with the writes, there are less of them and most of the time they can easily be ported to a proper data layer. Bonus points if you can start using a framework like EF6 that still runs on .net Framework - this may mean porting the SPs to code, but as you already mentioned that doubles as "putting them in source control".
3) Try to find the "bundles" of DB reads/writes and pack them into meaningful methods. This will be your business layer. May need to use TransactionScope to build some simple "unit of work" pattern here. Unless you need to use multiple databases this won't require using DTC so no major architectural problems here.
4) When all previous steps are completed, you have a UI shell around a business layer. That will need to be rewritten using your favorite technology. That's going to be less boring
Luca
The Price of Freedom is Eternal Vigilance. -- Wing Commander IV
En Það Besta Sem Guð Hefur Skapað, Er Nýr Dagur.
(But the best thing God has created, is a New Day.)
-- Sigur Ròs - Viðrar vel til loftárása
modified 11-Sep-22 8:50am.
|
|
|
|
|
I don't think you will find a "silver-bullet-answer".
It depends on the application, but mostly it depends on how well will the business that uses the app handle missed implementations. Old apps like that have the habit of getting small hidden gems that we gloss over during rewrite for one reason or another. Then we realize... "Ohhh so that is what that code was for!"
If the application allows, i'm partial to the use of
[^]
If done right, both can coexist, and you can port an old piece into the new code bit by bit.
The way it works is, you make a request for a url, if that URL is routed on the new app thats what gets served, if that url is not routed on the new one, YARP will fetch from the old and serve.
|
|
|
|
|
I'm going to assume there is a stable user base using the existing application, and although it's tempting to redesign from scratch, it can impact existing users negatively.
so keep the existing product in maintenance mode, start a sub team or at least one person to start mapping functionality and building it in a newer .NET 6 using something like server side blazer; it will be a close relative to Web forms to migrate logic over.
next step would be to modernize the layouts, if not already there. it's a slow process.
my reasoning for this is you can launch the new version and have (almost) no difference to the "feel" of the application. once you know that the new platform is stable and works identical or better than the original version now you can start implementing newer layouts, letting the users grow with your changes.
worse case when testing out the new version would be slipping the old one back in place if something major needs fixed.
|
|
|
|
|
So they thought they can write a better story, so payed hundred of millions of dollars to butcher Tolkien's work...
The series is actually a sale of the characters - all of them on the self at the same time...
"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid." ― Albert Einstein
|
|
|
|
|
The only surprise about this is that people expected it to be as good as the original.
|
|
|
|
|
I haven't heard a single good comments about Rings of Power, yet it still has a 6.7 on IMDb.
Now 6.7 is not a lot, especially for a series that cost a billion, but from the comments I'd expected something less than 6.
I'd still watch an action movie with a 6.7.
Rotten Tomatoes is on point, as always... A 85% score by critics and 39% score by audience
|
|
|
|
|
There is a huge diversion between critics and fans... 85% vs 39% on rotten tomatoes for example...
It seems that what critics find refreshing (introducing new character, more feminine and so), fans find insulting the the original story...
For one I find it wrong that they re-write the story instead of telling it using their tools...
(I told the same of Peter Jackson's Hobbit, when Jackson find it necessary to introduce mini-stories never was there)
"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid." ― Albert Einstein
|
|
|
|
|
Reviews have been disabled at IMDb, likely because Amazon owns it. They first went through and deleted a whole bunch of very low ratings. Curiously, there were no reviews on-line at Amazon the last time I looked. I am getting the impression that public response to this has been largely abysmal.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
lol.
it's a fun TV show/series adaptation.
nothing more, nothing less.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
I would agree with that, if it wasn't a story I grew up with and admired...
It is hard to me to enjoy it this way, but probably for others it is what it is...
"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid." ― Albert Einstein
|
|
|
|
|
Most people who watch the Peter Jackson or the Amazon versions will not have read the books, let alone the appendices. Watching gives them the illusion of erudition - they think they know what Tolkien was getting at in his books.
I am one of those who claim that an artist cannot be fully understood in translation, or in a different medium (e.g. film as opposed to print).
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
More than anything, what Tolkien was getting at was Lord Acton's belief that power corrupts, and absolute power corrupts absolutely. In our age of World Improvers and sycophants who believe that everything would be great if they, or their guy, were in charge, this is a theme that will be downplayed as much as possible.
|
|
|
|
|
The press don't appear to have liked it much, either: Amazon's The Rings of Power is a betrayal of Tolkien’s vision | The Spectator[^]
And I have to reluctantly agree: I was looking forward to this, but it's just not worth the time to watch it.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
From what I understand they don't have the rights to the Silmarillion, so they have to make up some different backstories.
Just take it as non-canonical entertainment
|
|
|
|
|
Rings of power could have been a great title for a Sonic the hedgehog movie
|
|
|
|
|
I've never read the Silmarillion all the way through so I don't know if they are creating new stories using Tolkein's characters or if they are adding their own spin to the book's tales. Whichever, I'm enjoying it so far for what it is. I didn't go into it with high expectations anyway.
I am slightly disappointed that they didn't do some brief intro that covered the book's creation story and how Melkor went bad, some history behind the current story.
If you think 'goto' is evil, try writing an Assembly program without JMP.
|
|
|
|
|
Second.
I twice tried reading it, and never made it to page 200.
|
|
|
|
|
We watched the first episode and it sucked.
I'm an avid Tolkien fan and I agree this is a sell out...and a bad one at that!
PartsBin an Electronics Part Organizer is finally available for download.
JaxCoder.com
|
|
|
|
|
There is a difference between a professor of English who devote his life to creating a piece of work, and someone who thinks 140 characters is literature.
You would thick there would be adult supervision for the a 10th of what they spent...
Exception up = new Exception("Something is really wrong.");
throw up;
|
|
|
|
|
Haven't seen it yet working my way through Dark Matter, I've heard it's visually very good...
|
|
|
|
|
I rocked today.
I ported my TTF engine from C++ to C, and I'm about 80% of the way through integrating it into LVGL.
I even built a custom LVGL filesystem extension that allows you to treat a const array like a read only file, for reasons having to do with embedding assets into the firmware as headers.
I'm having trouble with the last mile, mostly because I'm unfamiliar with the machinations of LVGL.
Fortunately, the original author of LVGL, the big cheese, is helping me through this. He's at least as excited about my contribution as I am, so that's cool.
To err is human. Fortune favors the monsters.
|
|
|
|
|
The LVGL library looks great. Sounds like you're having alot of fun working on this.
|
|
|
|
|
I am. I did make my own graphics library, and it's still better that LVGL for certain things like color e-paper displays.
However, LVGL has a visual UI designer, UI widgets, and 300 contributors. And it's light and fast.
I can't really compete with that by myself.
If you can't beat 'em, join 'em, I guess.
TrueType is already supported on heavyweight MCUs via Freetype, with several caveats like (IIRC) requiring linux to compile your firmware, because the windows toolchain has a compiler that's too old, though that may have changed.
My engine is lighter. I'm hoping LVGL decides to fully integrate it into their core rather than keeping it as a separate entity, but I'm not sure the route they will take with it - a lot of the seemingly core functionality like basic filesystem support is provided by separate libraries.
To err is human. Fortune favors the monsters.
|
|
|
|
|
honey the codewitch wrote: TrueType is already supported on heavyweight MCUs via Freetype I saw that in the documentation but was afraid to ask.
honey the codewitch wrote: a lot of the seemingly core functionality like basic filesystem support is provided by separate libraries Yep, I saw a list here.
You should do a QR code reader next.
|
|
|
|
|
The issue with that QR code reader is due to the way the cameras work getting a bitmap out of one on something like an ESP32 isn't really realistic with a modern camera. There's not enough RAM. Even with the smaller cameras, they have a relatively high data throughput, and the device a relatively slow processor so doing image processing on top of that is pretty much a no go.
It's doable, on something like the right ARM Cortex, but not on most IoT gadgets I think.
Disclaimer: I might be wrong, because I've never actually tried it. There definitely is a possibility that there's some clever way to do it on say, an ESP32 WROVER that I'm not aware of, but I doubt you could do it on a regular ESP32 without the 4MBs or more of PSRAM.
I'm almost done with my initial attempt at integrating my library but waiting on some guidance from the LVGL author.
To err is human. Fortune favors the monsters.
|
|
|
|