Click here to Skip to main content
15,887,856 members

Bugs and Suggestions

   

General discussions, site bug reports and suggestions about the site.

For general questions check out the CodeProject FAQs. To report spam and abuse Head to the Spam and abuse watch. If you wish to report a bug privately, especially those related to security, please email webmaster@codeproject.com

 
GeneralRe: No OP's name Pin
Bryian Tan28-Feb-18 19:24
professionalBryian Tan28-Feb-18 19:24 
GeneralRe: No OP's name Pin
Richard Deeming28-Feb-18 0:57
mveRichard Deeming28-Feb-18 0:57 
GeneralRe: No OP's name Pin
RedDk28-Feb-18 7:19
RedDk28-Feb-18 7:19 
SuggestionCuriosity Question Pin
#realJSOP27-Feb-18 6:01
mve#realJSOP27-Feb-18 6:01 
GeneralRe: Curiosity Question Pin
Richard Deeming27-Feb-18 6:21
mveRichard Deeming27-Feb-18 6:21 
GeneralRe: Curiosity Question Pin
Chris Maunder27-Feb-18 6:37
cofounderChris Maunder27-Feb-18 6:37 
GeneralRe: Curiosity Question Pin
#realJSOP27-Feb-18 6:49
mve#realJSOP27-Feb-18 6:49 
GeneralRe: Curiosity Question Pin
Chris Maunder27-Feb-18 7:08
cofounderChris Maunder27-Feb-18 7:08 
The question we discuss probably every second day.

We desperately want to rewrite. I can come up with half a dozen justifications why we should rewrite. However, rewriting will cost an absolute boatload when you factor everything in.

The question's actually a deeper one because of the parts. As a rough picture here are the bits that need work

1. The UI. Always. This isn't to say we don't like it, it's just that you always have to update it and ensure the experience is good. Before any backend code rewriting I'd move the front end to Bootstrap (or similar) and drastically simplify the HTML and Javascript.

2. The database. Our database is good. Very good. However it has 3 major issues

- We support multiple sites (eg CodeProject and RootAdmin) and because of a bad call I made 5 years ago we have some data stored in the wrong the database. I need to move it over but it's a big annoying job. Like rebuilding your toilet or something. Someone, somewhere, is going to get covered in something smelly

- We have a dichotomy between our Users and our Members. They are the same thing, you'd think, but in the database they aren't. This needs to be addressed.

- We rely on it too much. This one we're always working on and the Follow system is the latest step in moving away from SQL. The entire follow system is powered by Lucene, with SQL storing only the core information just in case we need to rebuild the Lucene index

3. The structure of our services. We're currently a big monolithic app with several supporting webservices but we're actively breaking out chunks of the main app into services or micro services. Follow, again, is a completely separate service written in .NET Core 2 that the main CodeProject app uses. Search and identity are also split out, and we are looking to break off more chunks and rewrite them as needed.

4. Our data layer. Currently it's hand crafted. Not a single autogen ORM in sight. We need to move from that to probably Entity Framework or Dapper. It'll save a bunch of plumbing.

5. Our repository patterns. Yes, multiple. We moved from the onion layer model to a services / repository model but not completely so we have code duplication and ambiguity (who should be doing what?) This needs to be cleaned up.

6. Moving to async. If we do this it has to be done top to bottom so we'd make our datalayer async and move it up to the presentation layer

7. Presentation layer. This would probably be the last thing we change (though we may move to MVC on a page-by-page basis in some cases). This is the easy bit.

And then there's a whole bunch of core stuff such as modularising our components, upgrading the actual project to the latest .NET Core 2 with all the benefits and PITA's that brings, totally revamping our unit tests and probably breaking out a bunch of features such as logging, tracing, spam and language detection into separate services.


So it's not a case of a simple rewrite. It's more of a staged progression based on the bits that actually need reworking, or taking advantage of opportunities to break out bits when we're adding new features anyway.

Even if we spent a full year on a full ground up rewrite it would never be perfect and in 3 years we'd want to do it again anyway. So, you pick your battles and live within your means.
cheers
Chris Maunder

PraiseRe: Curiosity Question Pin
Slacker00727-Feb-18 7:22
professionalSlacker00727-Feb-18 7:22 
GeneralRe: Curiosity Question Pin
#realJSOP27-Feb-18 7:31
mve#realJSOP27-Feb-18 7:31 
GeneralRe: Curiosity Question Pin
Chris Maunder27-Feb-18 9:06
cofounderChris Maunder27-Feb-18 9:06 
GeneralRe: Curiosity Question Pin
Kornfeld Eliyahu Peter27-Feb-18 8:15
professionalKornfeld Eliyahu Peter27-Feb-18 8:15 
GeneralRe: Curiosity Question Pin
#realJSOP27-Feb-18 8:28
mve#realJSOP27-Feb-18 8:28 
GeneralRe: Curiosity Question Pin
Kornfeld Eliyahu Peter27-Feb-18 8:38
professionalKornfeld Eliyahu Peter27-Feb-18 8:38 
JokeRe: Curiosity Question Pin
Richard Deeming27-Feb-18 8:36
mveRichard Deeming27-Feb-18 8:36 
GeneralRe: Curiosity Question Pin
Kornfeld Eliyahu Peter27-Feb-18 8:39
professionalKornfeld Eliyahu Peter27-Feb-18 8:39 
GeneralRe: Curiosity Question Pin
Chris Maunder27-Feb-18 9:07
cofounderChris Maunder27-Feb-18 9:07 
PraiseRe: Curiosity Question Pin
den2k8828-Feb-18 2:08
professionalden2k8828-Feb-18 2:08 
GeneralRe: Curiosity Question Pin
Pete O'Hanlon28-Feb-18 10:44
mvePete O'Hanlon28-Feb-18 10:44 
GeneralRe: Curiosity Question Pin
Chris Maunder28-Feb-18 11:08
cofounderChris Maunder28-Feb-18 11:08 
GeneralRe: Curiosity Question Pin
Pete O'Hanlon28-Feb-18 23:20
mvePete O'Hanlon28-Feb-18 23:20 
BugCodeProject broken on Edge? Pin
Wolfgang Schober27-Feb-18 0:37
Wolfgang Schober27-Feb-18 0:37 
GeneralRe: CodeProject broken on Edge? Pin
Richard Deeming27-Feb-18 2:06
mveRichard Deeming27-Feb-18 2:06 
GeneralRe: CodeProject broken on Edge? Pin
Chris Maunder27-Feb-18 4:14
cofounderChris Maunder27-Feb-18 4:14 
BugQ/A Answer Points Pin
#realJSOP26-Feb-18 6:55
mve#realJSOP26-Feb-18 6:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Flags: Answered

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.