One thing that I would appreciate is better support for providing declerative values in the ADF BC layer. For instance:
1) When expressing default values on attribute on VO/EO through VL/AS accessors
2) When expressing parameter values on view criterias for view instances and view accessors
It would be very supportive to have some kind of editor showing which value sources are accessable in each context (attributes on current VO/EO, attributes on related VO/EO via accessors, etc.) - like the binding editor.
(and if possible some notifications when references are broken)
I feel, there is lot of scope to improve the document. Below is one concern regarding this-
1. You have very good feature of menu,train,accordion etc like UI generation using XML. But in most cases of real life application we require to do it from DB. I mean to say we store related info into DB. then we read as per logged in user and on the fly prepare menu,accordion or train control. So for my requirement when i tried to do the same for Menu, I had no. of sleepless night to get it done. At the end of the day I just went through JSF document I got the basic Idea all about responsible classes from where i needed to find equivalent classes from ADF and successfully did it. Here one question come if the documentation was proper never I needed to go back to JSF to under stand the big picture behind this. Same case on train. Anyway As i did it for Menu first so for train it was easy go life for me.
2. Also when we bind some managed/backing bean method on page load, it gets executed multiple times. Is it require? Atleast you can see it on debug mode that how many times it is being executed. I had a menu tag declartion in my jspx file. On load I binded one method to genarate the menu and i was seeing multiple entry for each menu. To find the root cause i just debug the application and strangely found it was called more than 5 times. So i needed to check the bind variable for the menu against null. hence though it was getting executed multiple times only first time the bind variable was null next onward non null hence i got single appearance for each menu level. need to have a big thought.
N.B. It is not only for onload but some other cases also i found during my development.
3. I could not find out any solution to handle the error when all of my Application instance is exhausted from pool, and that time if I have more request it throws error but where to handle it? Even I had an entry in my web.xml for different type of error to show some specific error related jspx file. did not get positive result. To do it what I did I made my application pool size very less like 2 or 3. The I made a load test using jmeter and tried to run more thread(VU) at a time and got that situation. Also I tried to put my application module in reserve mode to check it.Pool size was 3 and i tried from 4 browser to get the error and i made application in reserve mode. basicaaly I did it to just debug and find out the point where I can handle this type error. But could not find any suitable place.
4. Off-course Security. Now I can find one blog from oracle where it is clearly told how to implement security against DB(and it works fine) but not in past.
5. If you think about J2EE web application, If I require any third party .jar file ( lets say JDBC as an example), I want to use MySql rather Oracle for my small application. what are the trivial experiance one need to go through. Generally if I put any .jar file inside my /WEB-INF/lib folder it should be detected. But here it won't do. The step we need to follow is below -
I need to put my .jar file in any place and from properties window I need to point it. So in design time it will work now. But certainly on runtime on integrated env. it falis. You need to follow the different steps - i.e. need to place the same in C:\Documents and Settings\logedin user\Application Data\JDeveloper\system184.108.40.206.36.55.36\DefaultDomain\lib folder. or modify your CLASSPATH variable in setDomainEnv.cmd file. Again when you go for deployement to a stand alone weblogic server, and if you drop your .jar inside /WEB-INF/lib it works.
The same experiance when i tried to use iReport with ADF,JDEVELOPER,WebLogic. Jedeveloper version was 220.127.116.11.0.
6. Offcourse backward compatibility. I had my ongoing application developement. we started it in version 18.104.22.168.2 and later migrated to 22.214.171.124.0 once it was available. It works smoothly. next once 126.96.36.199.0 is available and tried to migrate into new version it won't work. My experiance it work with some application and won't work with some other. Atleast in my case i was successfull for 2 application but for 4 application it did not work out. Might be some thing fishy inside. Neve I prefer to look into to investigate to find out the root cause due to time constraint. But in conclussion it won't work.
7.You can provide the documentation facility like JAutodoc a plugin for eclipse. Where we can do our customisation for some specific method too.
8. Next code quality. I feel jDeveloper is using PMD internally. Some of the places it tells separate the declarition and assignment do in separate line. where is inside method always it is not the right approach. And some of the basic rule it is missing. Like people is having trend to reassign the value of parameter variable, that could be reported from code quality point of view. also inside iteration people declare object that also need to be reported for code quality maintainance point of view. Yup, I agree some time we are forced to follow the same but not always. Atleast we will be able to find out the rule where it is not followed and can take a decission if it is really required. Reason behind as through ADF Oracle is truing Oracle form developer to be in j2EE world with minimum knowledge, and there will be instances a lot to violate it. We can't blame them as they are new into the world.
Different things can cause confusion about the values in use by an application (e.g. having someone else do the configuration for you because you're not allowed access to a deployment environment, the different ways to configure a parameter value, other miscommunications) so if the application can tell you itself which property values it is using, that confusion is gone. This is required to understand why your ADF BC application is behaving the way it is behaving.
Such an API is requested in enhancement request 7540624, "need an API to access runtime property values".
If you think this could be a useful feature, please update this forum thread accordingly. (I don't think Oracle currently has other means to vote for enhancement requests.)
I wonder if anyone from Oracle is still reading this thread? Anyway, I thought it worth mentioning a few more improvements regards the Resource Palette + ADF Libraries.
a) Currently to utilise BCs from another workspace/project they need to be imported via the master app's project properties Business Components -> Imports options. From what I can see adding an ADF Library JAR via the Resource Palette to a master app project doesn't automatically do this. It would be nice if it did.
b) ADF Library attachments only support fully qualified paths. If the associated ADF Library JAR was checked out with the current application from SVN to some random location on the developer's PC, it would be nice that the ADF Library facility support relative paths too.
Correction on my last post "a", JDev does support this, but only if you do it by selecting a precise business component in the Resource Palette and then import. Selecting the project alone in the Resource Palette doesn't configure the destination project with the correct import options.
1. FTP support to open remote files
2. UI bug fixes. Irrelevant exception keep coming without reason in the UI thread.
3. enrichment of the Design Mode where it automatically should include spacers between components/adjust the CSS similar to the visual studio/netbeans so that component can be positioned absolutely and re sized with utmost easer.
1. fix performance issues in IDE
I started using JDeveloper with version 188.8.131.52.1 on an AMD 2.2 Ghz and 3 GB of ram and that took around 5 minutes to load JDeveloper and another 10 min to load weblogic.
If you also consider that you have to restart weblogic at least 10 times per day because of memory leaks in the deployer you notice how much time you loose for waiting.
Now with version 184.108.40.206 things have changed to the better and also on my new machine with quad core and 6 GB of ram loads JDeveloper in about 30 sec and loads weblogic in 1 min.
But I think throwing at it more and more hardware isnt the real solution.
2. errors reported by Jdeveloper or ADF are not readable for a sane person.
F. ex. 200 lines of output without any reference to where the error is. I dont realy need to see the whole error trace in the console window.
And messages like "couldn't parse argument number" without any details about in which file and line the error occured.
3. Better to fix the outstanding bugs as to add new functionality.
1. Installation of Jdeveloper 220.127.116.11 does not hose sqlplus, Oracle Reports builder and Oracle Forms (thanks alot). I am not sure if it was the de-installation of JDEV 18.104.22.168 that caused this problem or the installation of 22.214.171.124, but now I have to deal with it.
2. The Jdeveloper instance does not hose computer you are running on. Memor usage (on windows) is at 200,000k. I haven't ever seen an app suck so much from computer, unless it is hosed.
3. Make it faster. Start up time is ridiculously slow.
1) Change the key mapping yourself if you want, all the functions are there. For example CTRL + - navigate to class CTRL + ALT + - open a file in project and you can remap them in the preferences
2) Preferences -> Code Editor -> Java -> Imports
3) Good idea, the caps and multiple ! obviously make it a MUCH BETTER suggestion too!!!
The key mapping in JDev is a bit different but the open resource is basically ctrl+alt+- (navigate to file).
If you are used to eclipse key mapping you can use those - > preferences->short cut keys->more action->load keyboard scheam->eclipse