I'm familiar with QTP and have primarily used DP over the OR. We're getting ready to design a new framework for a client server application. This client server app will be the model and sold to different organizations after being rebranded. I'm sure that part of the rebranding will be changes to the UI and some of the functionality. However, the intent is that most of the functionality will be the same. We're looking to design the framework to be able to be ported to the next client. Of course there will be changes needed. With this information, which method would be the better way to go, DP or OR?
For better maintaining it's better to use the OR. In this case you won't need to update each test where you use DP. You have to update only one common OR (or several of them - but anyway it's much faster than to update each separate test).
Not sure I agree with having to update each test where DP is being used. The DP Framework is very maintainable using constants located in a constant file. The code uses these variables rather than being hard coded.
The initial code base will be the same. However, past experience has shown that the customizations would have been easier to have started from scratch. The next few projects should be a lot closer to rebranding with moderate UI changes. So I'd say each will have their own application whose code base came from a common source.
It depends on the nature of the application. If you've got an app where the gui is reasonably stable, the objects easy to recognise and change tends to be in the nature of additional objects etc an OR works really well.
If you have an app with pages that are dynamic, change depending on what data is displayed and object recognition is complex then use DP.
Our applications cover both situations above so we use each as appropriate and sometime even mix both e.g. using the OR for the parent object and DP for child objects.