Björn Waide posted great comment and said that we'd better refactor TP 1.x than developing TP 2.0 from scratch.
Let me justify our decision. TP 2.0 going to be easier to use, easier to evolve and easier to support. We've really estimated cost of all work that required to refactor TP 1.x to appropriate level, but it appeared that cost of new software almost the same as cost of refactoring.
- NEO O/R framework has several very bad restrictions that make overall architecture ineffective and hard to support. So NEO should be replaced by another ORMF (NHibernate in our case). But since so many places in application use NEO directly, such replacement will take really much time
- UI of TP 1.x does not fit new ideas and structure. It should be completely changed.
- Controller layer in ASP.NET has high cohesion with UI because of code behind (Page Controller pattern). So if UI changed greatly, controller will be changed as well.
So we have to throw out business layer and throw out UI. In fact that is almost all we have in application 🙂 As a result, there is almost no difference between refactoring and re-writing.
First release of TP 2.0 (code name "Minima") will appear next week or so. We've almost done with new architecture and partially with new UI, so from this perspective, I don't think our decision was wrong.