I have looked and thought about good and bad points of my past designs and considering my next venture and what it should be. Everyone says MVC and others say one design doesn't fit all. Frameworks don't help me a whole lot for my projects, mostly because of legacy databases, and my past ideas weren't terribly horrible for the time. One thing I have confirmed. All the design patterns are hard to maintain.
Consider old classic asp and jsp where you mix code and emit html all in one page. Someone says add a column and it's pretty easy to do really. Change the database, add to your SQL statement, add new HTML, almost all right there. If I have a DAL and BLL and UI I have a lot of places to change that. If I have MVC with an ORM, lots of places. So for a minor change that design wasn't bad. Classic got bad when there are lots of changes to make and I have lots of changes.
When webforms came along I got to separate more with things but changing things still took work, just at separate levels. I never have had a "designer" so sending the UI web page to a designer like all the books said without ever having to send the logic never really made a big deal to me. I'm sure it did to someone. Anyway, I accepted it as "correct" because Microsoft said so.
Then everyone inside MS decided to push MVC and I found out that MS didn't invent MVC, separation of layers, and so on. MVC seems to be very good but not easy. Each change means changes on all kinds of layers.
In the end all the design patterns, MVC, no-design, DAL, no DAL, BLL, etc. hard to use and maintain. Nothing is easy. It's hard work. I wish I could see the grand design in it all but I see hardship in all of it. "Easy to maintain" is a relative term it seems.
In the end aren't all designs hard to maintain?