Let me try to elaborate.
1) Framework should be very simple, small, fast, generic, should have very less files, i suggest only 1 file framework.
1) very simple : for our end users (not just the users who are configuring & running it, but also for the other automation teams/developers to understand and reuse it 100%), other automation team should not spend much time referring to documents every time they are using.
2) small & single file : the framework we have developed is having only one file we call it Core.qfl
this is the back-born of the framework, it has very few say only 5 public functions and other are private)
it helps easy maintenance, and give portability, if anyone want to reuse this framework then he/she just have to add this file in his resources and that's all. (we keep this file in SVN)
Mark, we also have other files too, but we call them plugins to our framework ( CoreWeb.qfl, CoreNet.qfl, CoreJava.qfl, CoreInfragistics.qfl so and so forth) can be added on demand
We also have 2 more files 1- globalrecovery.qrs , 2 - RecoveryFunctions.qfl (Need not to attach them to resources)
Finally the best part of our framework is our COM dll, which needs to be register (framework automatically register if COM cannot able to create object) - Thanks to Tarun lalwani
we have all non-qtp utility functions in our dll. (screen-shot attached)
3) Fast - it is based on recovery , so we never check our control, just do the operation on that control, if the operation is successful, its good, otherwise recovery executes(No need to check Exist, disabled, ListItems, duplicateitems and duplicate objects explicitly )
One more thing, our recovery is doing nothing but calling a function and this reports (so no messy reporting due to recovery)
Its fast because, for all common operation we are using COM object (pre-compiled dll)
4)generic - this framework is really not having any business functionality, you just have to attach Core.qfl files, now record your test and then do some modification in OR, and your script is ready, that's all.
on the good node!, our framework is make our life & work simple efficient and not complex.