ADF VS VBCS
The current article is based on personal experience of working with 2 different tools that oracle offer to develop responsive design front-end application.
This is mainly aimed to those consultants who are experienced in ADF/JSF/Java and are thinking or evaluating a technology shift to VBCS/Oracle Jet.
It is based on similarities and differences on any of them highlighting the pros and cons of each one.
It is worthy to mention that I am an experienced IT consultant with a lot of background knowledge on front-end development among other areas and my speciality is with JSF and ADF frameworks.
Below are the similarities and differences that I can count on my experience:
1. They both have a component palette or section where you can drag and drop the graphical component.
2. They both count with a page structure section where you can locate hiercharly in a structure where is every component exactly.
3. They both have a palette editor to change the attributes of specific components.
4. Graphical component are similar and oriented to the same style of app development.
5. They both have a navigation page component, in ADF call task Flow and in VBCS call page Flow where you can illustrate how is the flow between pages in your app.
6.They both manage same variables scope with different names.
7. They are both made to integrate with the oracle process products. Oracle BPM in case of ADF and Process Cloud service in case of VBCS.
2. The services consumption is done by REST architecture model in VBCS and the type of code that is used most of the time to made the payload size smaller is json and in ADF the consumption have to be done by SOAP services and the payloads are represent in xml code.
3. ADF is server side framework that means that most of action and function done in the client interact with the service meanwhile VBCS apps do its graphical events and function just in the browser client.
4. The editors are different, JDeveloper for ADF and VBCS PAAS editor for VBCS.
5. The debugging and monitoring of logging are different for ADF is done in the server and with VBCS is done all the browser.
6. VBCS is based on an open source tool-kit with documentation of all component while ADF is hermetic in its framework implementation.
I just took a leap to VBCS 2 months ago and I already make several apps with this tool, here are my reviews in comparison on both.
As all IT's world know Oracle JET and VBCS is an evolution in the IT front-end solutions that Oracle offers over ADF application.
So this is the highlights pros and cons of VBCS over ADF.
1. It is not server side framework so the client connect with server just when is needed. This avoid overload of requests to the server and network latency.
2. The responsive design behaviour of the graphical components are smoother and easier to maintain.
4. The effect on refresh components is smother and unnoticeable to the user. There is not need to refresh components programmatically because they automatically refresh themselves when their binding values change unlike ADF where we need to refresh them by code sometimes.
5. Use the SPA technology that make the interaction within the app way more efficient because of the benefits of Single page application.
6. It is made to consume services by REST architecture which usually passes json objects, this objects are lighter than xml payload implemented by soap protocol.
7. It is not needed to redeploy the app to see any change in the logic of client events, once the change is done a browser refresh is enough to see the app.
8. The PAAS is way more efficient to use than the JDeveloper, JDeveloper is a really powerful tool but to use it you need to have a significant amount of RAM memory available in your machine, it consumes a considerable quantity of resources once is running and sometimes with ADF design mode the editor get stuck.
9. you can use a graphical designer to develop the actions flow logic of the button event, unlike ADF where the actionEvent method have to be develop most of the time by java code.
10. It works for mobile application unlike ADF that it is just for desktop app. MAF is used instead ADF for phones.
2. Although you can have your back-end representated on business object, in most of real case scenarios your are going to need other tools as OIC, Java CS, SOA CS, ADF BC to expose REST services as is required for the front-end consumption.
This require to use other tools, whereas in ADF is easier to do everything just with one code editor "Jdeveloper" through ADF BC.
3. The use of the oracle PAAS varies depending on use, bytes, times and messages and can cost more that the use of ADF framework.
4. When it comes to complex logic of web service data java is more convenient because of its properties "Encapsulation, Polymorphism and heritage".
5. It is noteworthy to mention some of the cloud disadvantages. It is impossible to work without internet. If something with the PAAS is not ok, you will not be able to work, it is something out of developer hands because is in the cloud and not on local environment.
Note: In one of the last Oracle Open world presentations they expose ADF 19c. A new ADF version with some enhancement and a lot of bugs already corrected.
Between the most important enhancement we have:
1. Client side responsive layout 2. Vertical tabs with text labels 3. ADF list with swipe option 4. New client side date components 5. Client LOVs with search and custom result list.
You can check this out in the following article.
These are good enhancement but nothing that can alter significantly the pros and cons written above.
VBCS and oracle JET fulfill all the requirements of modern front-end tool development (REST service consumption, SPA, responsive design, minimum interaction with the server as possible and so on).
I am a mainly JSF/ADF consultant when we talk about front-end development and I can assure that the adaptation to VBCS is really smooth, development is faster, it does not get your machine or editor stucked and best of all, it produces a better and more efficient apps because of the following.
- Refreshment of graphical components is smooth and comfortable to the user.
-It avoids overloading of request to the servers and latency network.
- It is more maintainable and have better responsive design behavior.
- It is suitable for phone as for desktop user.
If you are an ADF/JSF consultant you are going to get in love with VBCS editor as soon as you start with it, everything is easier as I consider and it is a more productive tool with a better assistant which add some graphical data mapping and logic.
The ADF banner has been the Business Components which are really efficient way to consume the databases as well as maintainable and scalable components to apply complex logic through java code and BC libraries.
This Business components in the last releases of ADF have the possibilities to be expose as rest services to be consumed.
As it is noticeable ADF seem to be a backend complementary of VBCS. This can help to develop complex systems in the future taking out the best of each tool.