DRY has its limitations. Client-server boundary is a good candidate for that.
that seems like an easy way for validation logic between the two to fall out of sync. Limits want to be enforced on the back end, definitely, but if the frontend also does the same validation the user experience is better, so you want to do some there as well (eg blank username does not need to do the slow round trip to the server). Through the magic of using JavaScript on both ends, the exact same bit of code can, with a bit of work, be used on both the front and the back end, so you can get the best of both worlds.
I myself would like to see a data-dictionary-driven app framework. Code annotations on "class models" are hard to read and too static.