I was investigating lately MDS user customization capabilities and cost in order to apply it to our application.
I used the following References
Guides34 Customizing Applications with MDS
http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/customize.htm35 Allowing User Customizations at Runtime
http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/ad_persist.htm#CIHHEHCF13 Managing the Metadata Repository
http://download.oracle.com/docs/cd/E15523_01/core.1111/e10105/repos.htm#CIHDCHCFArticles
http://www.oracle.com/technology/pub/articles/adf-development-essentials/part8.htmlTutorial
http://www.oracle.com/technology/products/jdev/11/cuecards111/adf_set_18/ccset18_ALL.htmlBlogshttp://biemond.blogspot.com/2009/07/customize-and-personalize-your-jsf.htmlhttp://andrejusb.blogspot.com/2009/09/persisting-query-criteria-results.htmlI created a demo application:
http://adfbugs.googlecode.com/files/MDSTest.zipWhere user1/welcome1 has customizations:
And user2/welcome2 has not:
And tested also our application with MDS enabled
I came up with the following
conclusions :
User customization Persist user changes through MDS is very powerful framework and all users would like to have it, yet it has it limitation and its cost:
Limitations:
1. Save Search: If you Use MDS then you need to configure also Saved search, or else you get exception when you try to save it
2. Components Not all components and attributes are persisted by default and they might override your custom business logic.
3. Deployment: New deployment file is needed (MAR) and configuration in order to define MDS repository domain. Investigation is needed for continues integration and deployment processes and update deployment scripts
Cost
> Performance
-- Increased resources needed on weblogic (memory and disc io)
-- Increased resources needed on database (mds_repository)
-- Lower response time on customisable components
> Increase testing needs
> Increase Administration needs (database, weblogic, metadata management)
> Saved search may break integration between Pages. Workaround may be needed for specific search pages. This will increase development needs
> Increase Support needs.