Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Oracle ADF Enterprise Application Development – Made Simple
Nội dung xem thử
Mô tả chi tiết
Oracle ADF
Enterprise Application
Development – Made Simple
Second Edition
Successfully plan, develop, test, and deploy enterprise
applications with Oracle ADF
Sten E. Vesterli
PUBLISHING
professional expertise distilled
BIRMINGHAM - MUMBAI
Oracle ADF Enterprise Application
Development – Made Simple
Second Edition
Copyright © 2014 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, without the prior written
permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy
of the information presented. However, the information contained in this book is
sold without warranty, either express or implied. Neither the author, nor Packt
Publishing, and its dealers and distributors will be held liable for any damages
caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
First published: June 2011
Second Edition: February 2014
Production Reference: 1120214
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78217-680-0
www.packtpub.com
Cover Image by Artie ([email protected])
Credits
Author
Sten E. Vesterli
Reviewers
Maroof Ahmad
Vinod Krishnan
Sanjeeb Mahakul
Frank Nimphius
Dimitrios Stasinopoulos
Acquisition Editors
Dhwani Devater
Rashmi Phadnis
Rubal Kaur
Content Development Editor
Arvind Koul
Technical Editors
Manan Badani
Shashank Desai
Shali Sasidharan
Copy Editors
Sarang Chari
Karuna Narayanan
Project Coordinator
Kranti Berde
Proofreaders
Lauren Harkins
Amy Johnson
Indexer
Rekha Nair
Graphics
Yuvraj Mannari
Abhinash Sahu
Production Coordinator
Arvindkumar Gupta
Cover Work
Arvindkumar Gupta
About the Author
Sten E. Vesterli picked up Oracle development as his first job after graduating
from the Technical University of Denmark and hasn't looked back since. He has
worked with almost every development tool and server Oracle has produced in the
last two decades, including Oracle ADF, JDeveloper, WebLogic, SQL Developer,
Oracle Portal, BPEL, Collaboration Suite, Designer, Forms, Reports, and even Oracle
Power Objects.
He started sharing his knowledge with a conference presentation in 1997 and has
given more than 100 conference presentations at Oracle OpenWorld and at ODTUG,
IOUG, UKOUG, DOAG, DOUG, and other user group conferences around the world
since. His presentations are highly rated by the participants, and in 2010 he received
the ODTUG Best Speaker award.
He has also written numerous articles, participated in podcasts, and written Oracle
Web Applications 101, Oracle ADF Enterprise Application Development – Made Simple,
and Developing Web Applications with Oracle ADF Essentials. You can find his blog at
www.vesterli.com and follow him on Twitter as @stenvesterli.
Oracle has recognized Sten's skills as an expert communicator on Oracle technology
by awarding him the prestigious title, Oracle ACE Director, carried by less than
100 people in the world. He is also an Oracle Fusion User Experience Advocate and
sits on the Oracle Usability Advisory Board and participates in the Oracle WebLogic
Partner Council.
Based in Denmark, Sten is a partner in the Oracle consulting company
Scott/Tiger, where he works as a senior principal consultant. When not writing
books or presenting, he is helping customers choose the appropriate technology
for their needs, teaching, mentoring, and leading development projects. In his
spare time, Sten enjoys triathlon and completed his first Ironman in 2012.
Acknowledgment
First and foremost, I'd like to thank the members of the ADF Enterprise Methodology
Group (ADF EMG). This group meets online, and occasionally in person, to discuss
ADF architecture, methodology, and best practice. The discussions I've had in this
group have widened my perspective and challenged me to formulate my own
methodology clearly. I'd like to extend a special thanks to the group moderator,
John Flack, who works tirelessly to keep the signal-to-noise ratio on the discussion
forum extremely high. If you are a software developer working with ADF and
you are serious about your software craftsmanship, you need to join this group:
https://sites.google.com/site/oracleemg/adf.
Many people at Oracle have also been contributing with clarifications, comments,
and insights that have made this book better. I especially appreciate the efforts of
ADF EMG founder Chris Muir, now at Oracle, for responding to my many queries
on ADF and JDeveloper 12c on the ADF EMG Jira issue tracker.
I would also like to thank the people at Packt Publishing who have been working on
this project as well as my reviewers who have improved the book with their excellent
questions and suggestions.
Finally, I'd like to thank my wonderful wife for her love and support and for accepting
yet another batch of weekends marked with "Book deadline" in our calendar.
About the Reviewers
Maroof Ahmad is an Engineering Graduate (B.Tech) from Integral University,
Lucknow. He has majored in Computer Science and Engineering. He has
worked on multiple projects with a very large team, where he found freshers
who were learning ADF. He also writes a blog on Oracle Fusion Middleware Lab
(http://www.ofmlab.blogspot.com/) for providing real challenging solutions
and building ADF applications using ADF components and advantages. For more
updated details about Maroof, please visit http://maroofgm.blogspot.com/.
He has a rich work experience in ADF and middleware technologies, and he is
currently working with Bader Al Mulla and Brothers Company W.L.L. in Kuwait
as an Oracle Middleware consultant. He has also worked in CMC Limited (A TATA
Enterprise) and HMK INDIA Technologies as a software engineer.
First, I want to thank my Mommy for her encouragement and
compromise. After that, it's only possible because of Priyanka; she
always stood by me, offering moral and positive support during
the time of the review, so a big thanks to Priyanka. I also want to
mention a key person and colleague, Ahmad Salman; he always
provided comfort when I was working late, leaving the office early,
and much more. So, thank you Ahmad Salman for this wonderful
journey. I would also like to mention Mohammed Jabarullah and
Joby Josheph, who have always supported me in every situation.
Vinod Krishnan has over nine years of experience in the Information Technology
industry. This exposed him to a wide range of technologies that include Java, J2EE,
WebLogic, Fusion Middleware, SOA, and WebCenter. He has been working with
Oracle ADF Technologies since 2005 and enhanced his affinity towards ADF after
he joined Oracle India. For the last five years, he has been actively involved in
large implementations of next-generation enterprise applications utilizing Oracle's
JDeveloper and Application Development Framework (ADF) technologies. He
holds a B.Tech. degree in Information Technology from Anna University, Chennai,
India. He is currently responsible for building and deploying applications using the
Oracle Fusion Middleware technology stack as a project lead in Oracle America.
He is an Oracle-certified specialist, and the technologies he has worked on include
Oracle ADF, SOA, WebCenter, and Identity Management. His contribution towards
JDeveloper and ADF discussion forums is immense. With his experience, he has
learned many tips and techniques that will help a new user to learn this technology
without any hassles. He writes his own blog (http://vtkrishn.com) that discusses
the tips and tricks with using Oracle technologies. He has had a multifaceted career;
he has worked in positions such as senior consultant, senior applications engineer,
software engineer, and solution architect for MNCs such as Oracle, Capgemini, and
Keane. He is the author of the book Oracle ADF 11gR2 Development Beginner's Guide—
ISBN 978-1-84968-900-7.
Sanjeeb Mahakul is a technical architect who has dedicated his career to
specializing in Oracle Fusion products. With over eight years of experience in Oracle
Fusion products, such as Oracle ADF, WebCenter Portal, WebCenter Spaces, and
WebCenter Content, he has seen the evolution in enterprise application and portals.
He leads enterprise architecture and integration and delivers industry-applied
solutions for various customers. He is also an Oracle-certified ADF implementation
specialist. He is passionate about researching and learning upcoming technologies,
architecture, and the industry's best practices. He is also dedicated to helping out
and posting in the OTN community and various forums.
I would like to thank all my family and friends who supported me
with time and every other way. I would especially like to thank one
of my best friends, Mona, who was a constant source of inspiration
and a driving force for reviewing this book.
Frank Nimphius is a senior principal product manager in the Oracle Application
Development Tools group at Oracle Corporation, specializing in Oracle JDeveloper
and the Oracle Application Development Framework (ADF) as well as in mobile
application development. Frank runs the ADF Code Corner website, the OTN
Forum Harvest blog, and is the co-author of the Oracle Fusion Developer Guide book
published in 2009 by McGraw Hill and the ADF Architecture Square website.
Dimitrios Stasinopoulos is a certified Application Development Framework
implementation specialist with more than seven years of experience in Oracle Fusion
Middleware and, more specifically, in ADF BC 11g. He currently works as an Oracle
Fusion Middleware consultant, mainly focusing on Oracle ADF. He has worked in
several Oracle ADF projects in various positions, from developer to architect, and
enjoys teaching and talking about Fusion Middleware.
In his spare time, he helps the ADF community by answering technical questions
in the Oracle ADF and JDeveloper forums and maintains a blog, where he posts his
findings and ideas: dstas.blogspot.com.
He holds a B.Sc degree in Computer Science from the Technological Educational
Institution of Larissa, Greece.
www.PacktPub.com
Support files, eBooks, discount offers, and more
You might want to visit www.PacktPub.com for support files and downloads related to
your book.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub
files available? You can upgrade to the eBook version at www.PacktPub.com and as a print
book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
[email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
TM
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book
library. Here, you can access, read and search across Packt's entire library of books.
Why subscribe?
• Fully searchable across every book published by Packt
• Copy and paste, print and bookmark content
• On demand and accessible via web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access
PacktLib today and view nine entirely free books. Simply use your login credentials for
immediate access.
Instant updates on new Packt books
Get notified! Find out when new books are published by following @PacktEnterprise on
Twitter, or the Packt Enterprise Facebook page.
Table of Contents
Preface 1
Chapter 1: The ADF Proof of Concept 11
Understanding the architecture of ADF 12
Enterprise architecture 12
The frontend part 12
The backend part 13
The ADF architecture 13
Entity objects and associations 15
View objects and view links 15
Application modules 16
The ADF user interface 17
ADF Task Flows 18
ADF pages and fragments 18
The Proof of Concept 19
Content of a Proof of Concept 19
Making the technology work 20
Determining the development speed 21
The Proof of Concept deliverables 22
The Proof of Concept case study 23
Use cases 24
UC008 Task Overview and Edit 24
UC104 Person Task Timeline 25
Data model 25
Getting started with JDeveloper 27
The JDeveloper window and panels 29
Setting JDeveloper preferences 29
The Proof of Concept ADF Business Components 31
Creating a connection 31
Entity objects for the Proof of Concept 33
Building associations for the Proof of Concept 35
Table of Contents
[ ii ]
Building view objects and view links for the Proof of Concept 36
Creating view objects for value lists 36
Creating a view object for tasks 38
Building an application module for tasks 41
Creating view objects for scheduling 43
Building an application module for scheduling 45
The Proof of Concept ADF user interface 47
ADF Task Flows 48
The tasks page 49
Creating the tasks page 49
Running the initial tasks page 54
Refining the tasks page 54
Fixing the bindings 59
Running the tasks page with parameters 60
Adding database operations 61
Running the tasks page with database operations 63
The scheduled tasks page 63
Adding the Gantt component 64
Navigation 65
Summary 67
Chapter 2: Estimating the Effort 69
Gathering requirements 69
Building it just like the old system 70
Use cases 70
User stories 73
Non-functional requirements 73
Requirement lists 74
Screen design 74
Deciding how to build it 76
Deciding how much to build at a time 76
Deciding how much to build yourself 77
Deciding how to integrate 77
Application architecture 78
Example Work Breakdown Structure 80
Estimating the solution 83
Top-down estimate 83
Bottom-up estimate 83
Three-point estimates 84
Grouping – simple, normal, and hard 85
More input, better estimates 86
Adding it all up – the final estimate 88
Swings and roundabouts 88
Table of Contents
[ iii
]
Calculating the standard deviation for a task 89
Calculating the standard deviation for a project 89
Sanity check 90
From effort to calendar time 91
Summary 91
Chapter 3: Getting Organized 93
Skills required for an ADF project 93
ADF framework knowledge 94
Object-oriented programming 95
Java programming 95
Database design and programming 96
XML knowledge 96
Web technologies 97
Regular expressions 97
Graphics design 98
Usability 99
Testing 99
Organizing the team 99
Project manager 100
Software architect and lead programmer 100
Regular programmers 101
Building Business Components 102
Building the user interface 102
Skinning 103
Templates 103
Defining data validation 104
Building support classes 104
Building database stored procedures 105
Build/configuration manager 105
Database and application server administrator 106
Graphic designers 107
Usability experts 107
Quality assurance, test manager, and tester 108
Data modelers 108
Users 109
Gathering the tools 109
Source control 110
Bug/issue tracking 111
Collaboration 112
Shared documents 112
Discussion forums 113
Online chat 113
Table of Contents
[ iv
]
Test and requirement management 114
Automated build system 114
Structuring workspaces, projects, and code 115
Using projects 115
Simple architecture 115
Modular architecture 116
Application Common Workspace 117
Database workspace 119
Subsystem workspaces 119
Master workspace 119
Enterprise architecture 120
Enterprise Common Workspace 120
Master application workspaces 120
Naming conventions 121
General 121
Java packages 121
Project code 121
Enterprise Common Code 122
Database objects 123
ADF elements 124
File locations 125
Test code 126
Summary 127
Chapter 4: Productive Teamwork 129
The secret of productivity 129
More pixels give better productivity 129
Version control 130
Avoiding spreadsheets 130
Split your project into tasks 130
Focus 130
Integrate your tools 131
Version control with Subversion 131
Effective Subversion 132
Handling new files 133
Starting with Subversion 134
Working with Subversion 135
Getting a new copy 136
Getting other people's changes 137
Automatic merge 137
Handling conflicts 138
Version control with Git 140
Effective Git 140
Staging and committing 141