There are many half-(I need to watch my language) frameworks, which do the same thing in a different way. Why even bother inventing a new one, unless it does something amazing? Here are some requirements for an amazing framework: Secure, Consistent, Reliable, Extensible, and Fast.
In addition, it needs end-to-end debugging, intellisense, and most importantly, a design that takes in account its own obsolescence.