Sumário Itens Encontrados: 462Preface 1Chapter 1: The ADF Proof of Concept 11Understanding the architecture of ADF 12Enterprise architecture 12The frontend part 12The backend part 13The ADF architecture 13Entity objects and associations 15View objects and view links 15Application modules 16The ADF user interface 17ADF Task Flows 18ADF pages and fragments 18The Proof of Concept 19Content of a Proof of Concept 19Making the technology work 20Determining the development speed 21The Proof of Concept deliverables 22The Proof of Concept case study 23Use cases 24UC008 Task Overview and Edit 24UC104 Person Task Timeline 25Data model 25Getting started with JDeveloper 27The JDeveloper window and panels 29Setting JDeveloper preferences 29The Proof of Concept ADF Business Components 31Creating a connection 31Entity objects for the Proof of Concept 33Building associations for the Proof of Concept 35Building view objects and view links for the Proof of Concept 36Creating view objects for value lists 36Creating a view object for tasks 38Building an application module for tasks 41Creating view objects for scheduling 43Building an application module for scheduling 45The Proof of Concept ADF user interface 47ADF Task Flows 48The tasks page 49Creating the tasks page 49Running the initial tasks page 54Refining the tasks page 54Fixing the bindings 59Running the tasks page with parameters 60Adding database operations 61Running the tasks page with database operations 63The scheduled tasks page 63Adding the Gantt component 64Navigation 65Summary 67Chapter 2: Estimating the Effort 69Gathering requirements 69Building it just like the old system 70Use cases 70User stories 73Non-functional requirements 73Requirement lists 74Screen design 74Deciding how to build it 76Deciding how much to build at a time 76Deciding how much to build yourself 77Deciding how to integrate 77Application architecture 78Example Work Breakdown Structure 80Estimating the solution 83Top-down estimate 83Bottom-up estimate 83Three-point estimates 84Grouping â simple, normal, and hard 85More input, better estimates 86Adding it all up â the final estimate 88Swings and roundabouts 88Calculating the standard deviation for a task 89Calculating the standard deviation for a project 89Sanity check 90From effort to calendar time 91Summary 91Chapter 3: Getting Organized 93Skills required for an ADF project 93ADF framework knowledge 94Object-oriented programming 95Java programming 95Database design and programming 96XML knowledge 96Web technologies 97Regular expressions 97Graphics design 98Usability 99Testing 99Organizing the team 99Project manager 100Software architect and lead programmer 100Regular programmers 101Building Business Components 102Building the user interface 102Skinning 103Templates 103Defining data validation 104Building support classes 104Building database stored procedures 105Build/configuration manager 105Database and application server administrator 106Graphic designers 107Usability experts 107Quality assurance, test manager, and tester 108Data modelers 108Users 109Gathering the tools 109Source control 110Bug/issue tracking 111Collaboration 112Shared documents 112Discussion forums 113Online chat 113Test and requirement management 114Automated build system 114Structuring workspaces, projects, and code 115Using projects 115Simple architecture 115Modular architecture 116Application Common Workspace 117Database workspace 119Subsystem workspaces 119Master workspace 119Enterprise architecture 120Enterprise Common Workspace 120Master application workspaces 120Naming conventions 121General 121Java packages 121Project code 121Enterprise Common Code 122Database objects 123ADF elements 124File locations 125Test code 126Summary 127Chapter 4: Productive Teamwork 129The secret of productivity 129More pixels give better productivity 129Version control 130Avoiding spreadsheets 130Split your project into tasks 130Focus 130Integrate your tools 131Version control with Subversion 131Effective Subversion 132Handling new files 133Starting with Subversion 134Working with Subversion 135Getting a new copy 136Getting other peoples changes 137Automatic merge 137Handling conflicts 138Version control with Git 140Effective Git 140Staging and committing 141Preparing your local repository 142Initial load of a workspace 146Working with Git 147Starting the day 148Starting work on a task 148Committing often to a task 148Completing a task 149Ending the day 149Handling conflicts 150Avoiding conflicts 151Focusing for maximum productivity 152The Integrated Solution â Oracle Team Productivity Center 154Installing the server 155Connecting JDeveloper to repositories 157Administration tasks 158Working with Oracle Team Productivity Center 158Working with work items 159Finding work items 159Setting the active work item 159Linking work items 160Tagging work items 160Saving and restoring context 160Code reviews 161Viewing build status 162Chat 162Reading news 162Summary 162Chapter 5: Preparing to Build 163Creating common workspaces 163Working with task flow templates 165Creating a task flow template 166Contents of your task flow template 167An exception handler 167Initializers and finalizers 169Creating several levels of templates 169Working with page templates 169Creating a page template 170Using layout containers 172Working with facets 173Defining template facets 173Understanding component facets 174Defining template attributes 175Adding content to the page template 175Framework extension classes 176Understanding how Java classes are used in ADF 177Some Java required 178The place for framework extension classes 178Creating framework extension classes 180Using framework extension classes 182Packaging your common code 183Summary 184Chapter 6: Building the Enterprise Application 185Structuring your code 185Using workspaces 186The workspace hierarchy 186Creating a workspace 187Working with ADF Libraries 188The ADF Library workflow 188Using ADF Libraries 189Building the Common Model 190Use framework extension classes 190Entity objects 190Primary key generation 193Business rules 193User interface strings 194Common View objects 194Testing the Common Model 196Exporting an ADF Library 196Organizing the work 198Preconditions 198Development tasks 199Creating Business Components 199Building view objects, view links, and the application module 199Implementing Business Logic 201Testing your Business Components 201Creating task flows 201Reviewing the task flows 202Creating the page fragments 203Implementing UI logic 203Defining the UI test 203Reviewing the UI test 204Implementing the task management subsystem 204Setting up a new workspace 204Getting the libraries 205Creating Business Components 206Starting work 207Building the main view object 207Building the application module 210Testing your Business Components 210Checking in your code 210Finishing the tasks 212Creating the task flow 212Creating the page fragment 213Data table 214Search panel 215Fixing the bindings 216Running the page 217OK and Cancel buttons 218Checking in your code 218Deploying the task management subsystem 220Implementing the scheduling subsystem 221Setting up a new workspace 221Getting the libraries 221Creating Business Components 222Building the persons view object 222Building the tasks view object 223Building the master-detail link 223Building the MinMaxDate view object 223Building the application module 225Testing your Business Components 226Finishing the tasks 226Building the task flow 226Building the page 227Adding a Gantt chart component 227Defining the start and end time 229Running the page 230Checking in your code 231Deploying your scheduling subsystem 231Building the master application 231Setting up the master workspace 232Getting the libraries 232Creating the master page 233Creating the layout 234Adding the menu 234Creating a dynamic region 234Understanding the dynamic region 236Additional code for task flow switching 237Storing the selected task flow value 237Accessing the session bean from the backing bean 238Setting up the task flow values 239Making the region redraw itself 240Checking in your code 241Summary 242Chapter 7: Testing Your Application 243Initial tests 243Working with JUnit 244Using JUnit to test code 245Writing good unit tests 245The unit testing ADF applications 246Preparing for unit testing 246Setting up a test project 247Adding default testing 248The real unit testing example 253Adding a test case 253Implementing logical delete 256Re-testing 258Automating unit testing 258User interface tests 258What should you test? 258About Selenium 259Installing Selenium IDE 260A simple test with Selenium 260Exporting your test 265Using Selenium effectively 266Value checking options 266Lazy content delivery 266Testing the context menus 267Verifying the item ID 267Testing passivation and activation 267Stress and performance tests 269Working with JMeter 269Testing application performance with JMeter 270Installing and running JMeter 270A simple test with JMeter 271Setting up JMeter as a proxy 272Recording a session 274Post-processing a recorded session 274Running a recorded session 275Troubleshooting JMeter sessions 276The Oracle alternative 277Summary 277Chapter 8: Changing the Appearance 279Controlling appearance 279The Cascading Style Sheets basics 280Styling individual components 281Building a style 282InlineStyle and ContentStyle 283Unravelling the mysteries of CSS styling 285Conditional formatting 289Skinning overview 289Skinning capabilities 289Skinning recommendations 293The skinning process 293Creating a skin project 294Skinning in practice 294Creating a skin CSS file 295Working in the Design tab 297Working in the Selectors tab 298Style Classes 299Global Selector Aliases 299At-Rules 299Faces Component Selectors 299Data Visualizations Component Selectors 301Finding the selector at runtime 301Optionally providing images for your skin 302Optionally creating a resource bundle for your skin 303Packaging the skin 305Using the skin 305Summary 306Chapter 9: Customizing Functionality 307The reason for customization 307The technology behind ADF customization 308Applying customization layers 309Making an application customizable 311Developing customization classes 311Building the classes 311Implementing the methods 313Deploying the customization classes 314Enabling seeded customization 315Linking the customization class to the application 316Configuring customization layers 317Using resource bundles 319Allowing resource bundle customization 321Performing customization 321Selecting the customization role 322Customizing Business Components 323Customizing pages 324Customizing strings 326Elements that cannot be customized 328Summary 329Chapter 10: Securing Your ADF Application 331The security basics 331Authentication means knowing your user 332Authorization means deciding on access 332The Oracle security solution 333Alternative security 333Security decisions 333Performing authentication 334Performing authorization 334Where to implement security 334Implementing ADF Security 334Selecting a security model 335Selecting the authentication type 336Selecting how to grant access 337Select a common welcome page 338Application roles 339Implementing the user interface security 340Securing task flows 340Securing pages 341Using entitlements 341Implementing data security 341Defining protected operations 342Protecting an entity object 342Protecting an attribute 343Granting operations to roles 343Users and groups 344Mapping the application to the organization 344Example users and enterprise roles 345Assigning application roles 347Running the application 348Removing inaccessible items 348Summary 349Chapter 11: Packaging and Delivery 351The contents of a good deployment package 351The runnable application 352Database code 352Installation and operation instructions 352Preparing for deployment 353Cleaning up your code 353Test users and groups 354Other development artifacts 355Performing code audit 356Ignoring rules 357Checking more rules 357Setting application parameters for production use 357Application module tuning 358Controlling database locking 359Tuning your ADF application 360Setting up the application server 361Number of servers 361Installing WebLogic 12c standalone for ADF 362Creating a data source on the server 362Deploying the application 366Direct deployment 366Creating an application server connection 366Deploying your application directly 368Deploying the file through the console 370Creating the EAR file 370Deploying the EAR file 371Scripting the build process 373Creating a build task 373Creating a build task for the master project 373Creating build tasks for ADF Libraries 375Creating a build task for the master application 376Moving your task to the test/integration server 376Adding a checkout 376Adding the database 377More scripting 377Automation 377Summary 378Appendix: Internationalization 379Automatic internationalization 380How localizable strings are stored 382Defining localizable strings 385Performing the translation 387Running your localized application 389Testing the localized Business Components 389Testing the localized user interface 389Localizing formats 391More internationalization 391Summary 392Index 393PrefaceWelcome to your first real-life enterprise ADF application!The book you are holding in your hands is about building seriou