SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
1 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
2 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Real World ADF Design & Architecture Principles
Naming Conventions & Project Layouts
15th Feb 2013 v1.0
3 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Learning Objectives
•  At the end of this module you should be able to:
–  Recognize the needs for naming and project layout conventions
–  Identify some of the challenges the conventions attempt to avoid
–  Appreciate the conventions aren't the law, you can define your own
Image: imagerymajestic/ FreeDigitalPhotos.net
4 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  The Need for Guidelines
•  General Guidelines
•  JDeveloper Workspaces & Projects
–  Workspaces
–  Projects
•  ADF Structures
5 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Code Naming and Project Layout Guidelines
•  Such guidelines for code can assist:
–  Readability
–  Maintainability
–  Avoid namespace collisions
–  Show a well disciplined development team
Image: Bernie Condon / FreeDigitalPhotos.net
6 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Guidelines for Following Naming Conventions
•  Naming Conventions are just “conventions”, they are not the law
•  Violations don’t result in jail time!
•  Different people and projects have different preferences
•  Oracle breaks their own conventions all the time (shhhh!)
•  If you do break them:
–  Document why
–  Be consistent
–  Be consistent
–  Be consistent
Image: David Castillo Dominici / FreeDigitalPhotos.net
7 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.7 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
You may be building one monolithic
but simple application today, but
tomorrow you may have dozens of
workspaces containing reusable
templates, task flows, skins, business
logic.
Keep an eye on the future.
Without good naming conventions
and project structures, things are
going to get messy quickly.
Image: Ambro / FreeDigitalPhotos.net
8 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Code Naming and Project Layout Guidelines
•  Oracle will now introduce it’s
233 guidelines
•  Guideline #1 of 233……
•  Understandably reading all of
these can be rather tedious
work
Image: David Castillo Dominici / FreeDigitalPhotos.net
9 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Further Reading
•  Rather than discuss all 233 points
•  You’re referred to a paper that covers
these in detail
–  ADF Naming and Project Layout Guidelines
–  http://bit.ly/adfarchsquare
–  The conventions are suggestions from
Oracle
–  With the goal of shortcutting writing your own
–  But you can go with your own
•  Here we’ll discuss the salient points
•  And base it on a known architectural
pattern
10 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  The Need for Guidelines
•  General Guidelines
•  JDeveloper Workspaces & Projects
–  Workspaces
–  Projects
•  ADF Structures
•  Deployment Artifacts
11 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
General Naming Conventions for ADF
•  Follow the Java SE naming conventions
•  http://bit.ly/javasecodeconvsect9
•  Conventions should extend to ADF objects too
Image: David Castillo Dominici / FreeDigitalPhotos.net
12 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Hungarian Notation
•  Hungarian Notation is a code convention of
adding prefix/suffixes to objects to designate
their type
–  eg. TBL_EMPLOYEES for a database table
•  Can lead to inconsistent names when objects
change type and refactoring isn’t possible
•  Use only when objects can’t change type or
that’s the known general convention
–  eg. EmployeesView for ADF BC view objects
13 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Use Meaningful Names, Acronyms & Abbreviations
•  Names should be meaningful when taken out of context
–  eg. Csp400.jspx means little, EnrolStudent.jspx is meaningful
•  Avoid using abbreviations and conventions from legacy systems
•  Avoid unnecessary acronyms/abbreviations
–  eg. Dob for DateOfBirth
•  Use acronyms/abbreviations when the acronym is used more
commonly than the complete word/phrase
–  eg. Html rather than HyperText Markup Language
•  If a name contains an acronym, only capitalize the first letter of the
acronym
–  eg. RegisteredTfn for Registered Tax File Number
14 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Java Classes, Abstract Classes & Interfaces
•  Use nouns – cat, dog, house, queue, shopping cart
•  Mixed case, 1st letter of each word capitalized, no special characters
•  Keep class names simple as possible
•  Use whole words, avoid acronyms and abbreviations
–  Unless the abbreviation is more widely used than word e.g. HTML
•  e.g. Raster, EmployeeEntitlements, Departments
•  Treat ADF objects the same as Java Classes for naming purposes
15 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  The Need for Guidelines
•  General Guidelines
•  JDeveloper Workspaces & Projects
–  Workspaces
–  Projects
•  ADF Structures
16 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.16 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Describes guidelines based
around an ADF Architectural
Pattern out of the “Angels in the
Architecture” presentation from
Oracle Open World 2013
http://youtu.be/toEuQvp73h8
17 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.17 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
1Master Workspace
ViewController
The Sum-of-the-Parts Architecture
Common Workspace
Model
Entity Objects
View Objects
AppModule
Framework
Extensions
Task Flow Templates
Unbounded Task Flow
Pages
BTF Workspace
ViewController
Bounded Task Flow
Fragments
Bounded Task Flow
Fragments
Page Templates
Declarative Components
Skins
ViewController
Extensions
BTF Workspace
ViewController
Bounded Task Flow
Fragments
Bounded Task Flow
Fragments
ADF Libraries
ADFLibraries
EAR
For	
  purposes	
  of	
  the	
  following	
  discussion	
  let’s	
  assume	
  
1)  There	
  is	
  a	
  single	
  database	
  schema	
  “humanres”	
  
2)  The	
  BTF	
  workspaces	
  separately	
  deal	
  with	
  
Departments	
  and	
  Employees	
  funcBons	
  within	
  our	
  
applicaBon	
  
3)  The	
  overall	
  applicaBon	
  being	
  built	
  is	
  for	
  HR	
  
18 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.18 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
1Master Workspace
ViewController
The Sum-of-the-Parts Architecture
Common Workspace
Model
Entity Objects
View Objects
AppModule
Framework
Extensions
Task Flow Templates
Unbounded Task Flow
Pages
BTF Workspace
ViewController
Bounded Task Flow
Fragments
Bounded Task Flow
Fragments
Page Templates
Declarative Components
Skins
ViewController
Extensions
BTF Workspace
ViewController
Bounded Task Flow
Fragments
Bounded Task Flow
Fragments
ADF Libraries
ADFLibraries
EAR
19 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.19 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
1Master Workspace
The Sum-of-the-Parts Architecture
Common WorkspaceBTF Workspace BTF Workspace
ADF Libraries
ADFLibraries
EAR
20 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.20 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Master Workspace
The Sum-of-the-Parts Architecture
Common WorkspaceBTF Workspace BTF Workspace
21 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.21 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Hr Workspace
The Sum-of-the-Parts Architecture
Common WorkspaceEmp Workspace Dept Workspace
22 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Challenges
•  At least 4 workspaces (if not many more)
•  Workspaces contain multiple projects
•  Require their own package structures
•  1 to many bounded task flows requiring unique namespaces
•  Generate numerous ADF Libraries to be consumed
•  We must not have naming collisions
•  Programmers should not get confused where code is coming from
•  There’s potential for more applications in the future
23 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  The Need for Guidelines
•  General Guidelines
•  JDeveloper Workspaces & Projects
–  Workspaces
–  Projects
•  ADF Structures
24 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.24 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
25 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.25 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
26 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.26 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
27 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.27 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  The location of code across developer’s PC can be different
•  However it helps to standardize this
•  In case the developer is run over by a bus
•  Build scripts need to assume a standard location
•  Exemptions need to be put in place for virus scanners
28 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.28 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  All workspaces regardless of their purpose should prefix
the default package with your organization’s URL (in
reverse)
•  This helps differentiate your organization’s code from
others, both if you’re importing or exporting code
29 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.29 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  Ensure workspace names are unique amongst
all workspaces
•  A good choice of workspace names helps differentiate many
workspace artifacts from other workspace artifacts
30 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.30 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  Ensure workspace names are unique amongst
all workspaces
•  A good choice of workspace names helps differentiate many
workspace artifacts from other workspace artifacts
Common
31 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.31 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  Ensure workspace names are unique amongst
all workspaces
•  A good choice of workspace names helps differentiate many
workspace artifacts from other workspace artifacts
Common
Emp
32 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.32 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  Ensure workspace names are unique amongst
all workspaces
•  A good choice of workspace names helps differentiate many
workspace artifacts from other workspace artifacts
Common
Emp
Dept
33 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.33 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  Ensure workspace names are unique amongst
all workspaces
•  A good choice of workspace names helps differentiate many
workspace artifacts from other workspace artifacts
Common
Emp
Dept
Hr
34 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.34 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  Also use meaningful names
•  e.g. VehicleLicensingSystem or Procurement
•  But use acronyms or abbreviations if possible: Vls, Proc
•  The workspace name becomes basis for default package
•  Long names can make the package structure unwieldy
Common
Emp
Dept
Hr
35 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.35 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  For common artifacts place in a workspace with
a “Common” prefix
•  In this example there is only 1 Common workspace which
will contain many projects
•  Alternatively you may break this into 1 workspace per
project, so the following naming scheme could be used
•  eg. CommonModel or CommonViewController
Common
Emp
Dept
Hr
36 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.36 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  For task flows workspaces use a suffix like
“Modules” or “Flows”
•  Suffix might depend on how many task flows are
contained in the workspace
•  eg. HrModule or ProcureLodgingsFlow
Common
Emp
Dept
Hr
37 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.37 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
•  For the main application use just the application
name
Common
Emp
Dept
Hr
38 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.38 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Common
Emp
Dept
Hr
•  You eventually may have 10s/100s of workspaces
•  Use subdirectories to your advantage to
categorize types of workspaces.
•  e.g. Common, Flow, Applications
•  Categories can assist division of source control
directory structures
39 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.39 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Common
Emp
Dept
Hr
•  The same rule applies to your package names
•  Ensure categorizations comes before name to
assist sorting
40 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.40 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Common
Emp
Dept
Hr
•  The workspace name and case should be consistent as the base directory for
the workspace and the .jws file
•  Avoids confusion and errors
•  In discussing source code
•  When copying files
•  Comparing source code to SVN
•  Working with build tools
41 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  The Need for Guidelines
•  General Guidelines
•  JDeveloper Workspaces & Projects
–  Workspaces
–  Projects
•  ADF Structures
42 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Projects
•  The project name and case should be consistent as the base directory for
the project and the .jpr file
•  Project names should attempt to follow defaults proposed by the JDev
wizards
•  e.g. Model and ViewController
•  These are familiar to programmers and new team members with ADF experience
•  There are some exceptions (see next slide)
•  Ensure unique projects names per workspace (enforced anyway)
•  But they don’t need to be unique across workspaces
43 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
ADF Business Component Projects
•  ADF BC projects at design time are limited to a single database
connection defined in the Project Properties
•  However some applications/architectures must support multiple
database schemas, each served by a different Model project
•  In this case break the previous convention to include a prefix of the
schema name in the Model project name
–  e.g. HrModel
44 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Project Default Packages
•  On multi workspace applications, it’s important to ensure unique
packages across workspaces
•  Regardless or your architecture use this for future proofing
•  The default package for a project should take the form:
<org>.<workspace-type>.<workspace-name>.<project-name>
•  eg. com.acme.common.hrmodel
com.acme.flow.createemployee.view
com.acme.app.procurement.model
45 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  The Need for Guidelines
•  General Guidelines
•  JDeveloper Workspaces & Projects
–  Workspaces
–  Projects
•  ADF Structures
46 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.46 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Hr Workspace
Reminder: Example Package Structures
Common Workspace
Emp Workspace Dept Workspace
com.acme.common.model
com.acme.flow.emp.view
com.acme.flow.dept.view
com.acme.app.hr.view
47 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.47 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Object Package Example
Model.jpx file Resides in base package for project com.acme.common.model.adfbc.Model.jpx
Framework extensions .base com.acme.common.model.adfbc.base.HrAppModuleImpl.java
Application modules .services com.acme.common.model.adfbc.services.HrAppModule
Domains .domains com.acme.common.model.adfbc.domains.EmailDomain
Entity objects .entities com.acme.common.model.adfbc.entities.Employees
Entity associations .entities.associations com.acme.common.model.adfbc.entities.associations.EmpDeptFkAssoc
Property sets .properties com.acme.common.model.adfbc.properties.ReadOnlyPropertySet
Validation rules .validations com.acme.common.model.adfbc.validations.EmailValidationRuleImpl.java
Updateable view objects .views com.acme.common.model.adfbc.views.EmployeesView
Read only view objects .views.readonly com.acme.common.model.adfbc.views.readonly.PostcodesView
Programmatic view objects .views.programmatic com.acme.common.model.adfbc.views.programmatic.SocialSecurityView
View links .views.links com.acme.common.model.adfbc.views.links.EmpDeptFkLink
ADF BC Package Structures
48 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
ADF ViewController BTF Structure Challenge
•  Base BTF workspace package examples:
–  com.acme.flow.dept.view or com.acme.flow.dept.view
•  JDeveloper by default places
–  BTFs under ViewController/public_html/WEB-INF
–  Page/fragments under ViewController/public_html
•  But
–  PageDefs under ViewController/adfmsrc/com/acme/flow/dept/view
–  Beans under ViewController/src/com/acme/flow/dept/view
•  By the structures alone this makes it hard to relate the code artifacts
49 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
ADF ViewController BTF Structure Solution
•  Use the same directory structure for all artifacts. e.g.:
–  BTFs:
•  ViewController/public_html/WEB-INF/
com/acme/flow/dept/view/depttaskflow/depttaskflow.xml
–  Page/Fragments
•  ViewController/public_html/
com/acme/flow/dept/view/depttaskflow/ViewDept.jspx
–  PageDefs
•  ViewController/adfmsrc/
com/acme/flow/dept/view/depttaskflow/PageDef/ViewDeptPageDef.xml
–  Beans
•  ViewController/src/
com/acme/flow/dept/view/depttaskflow/DeptBean.java
50 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
ADF ViewController UTF Structure Challenge
•  Base UTF workspace package example:
–  com.acme.app.hr.view
•  adfc-config.xml file(s) must reside under
–  ViewController/public_html/WEB-INF
•  JDeveloper will still place
–  Page/Fragments under ViewController/public_html
•  But
–  PageDefs under ViewController/adfmsrc/com/acme/flow/dept/view/PageDef
–  Beans under ViewController/src/com/acme/flow/dept/view
•  Argh! We cannot apply our BTF directory solution here
51 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
ADF ViewController UTF Structure Challenge
•  Base UTF workspace View Controller package example:
–  com.acme.app.hr.view
•  adfc-config.xml file(s) must reside under
–  ViewController/public_html/WEB-INF
•  JDeveloper will still place
–  Pages under ViewController/public_html
•  But
–  PageDefs under ViewController/adfmsrc/com/acme/app/hr/view/PageDef
–  Beans under ViewController/src/com/acme/app/hr/view
•  Argh! We cannot apply our BTF directory solution here
52 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
ADF ViewController UTF Structure Solution
•  Instead assume that:
–  ViewController/public_html/WEB-INF
–  ViewController/public_html
–  ViewController/adfmsrc/com/acme/app/hr/view/
–  ViewController/src/com/acme/app/hr/view/
•  Are all logical “base” structures for all your different UTF artifacts
•  This is where you expect to find your UTF artifacts
•  So you don’t need to move anything around
•  You just assume that any code artifact at these levels are related
53 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Options to Avoid BTF Namespace Solutions
•  Use path with project package name preceding BTF name
–  e.g. /WEB-INF/com/acme/flows/emp/viewcontroller/view/
CreateEmployees.xml#CreateEmployees
–  Can be long and unwieldy in the IDE
•  Use path with workspaces name preceding BTF name
–  e.g. /WEB-INF/EmpFlows/CreateEmployees.xml#CreateEmployees
–  Relies on assumption workspace names are unique
54 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  The Need for Guidelines
•  General Guidelines
•  JDeveloper Workspaces & Projects
–  Workspaces
–  Projects
•  ADF Structures
55 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.55 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
But Oracle’s hasn’t covered
every type of component –
what about static VOs?!!
What do we do?
Exercise
Image: imagerymajestic/ FreeDigitalPhotos.net
56 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.56 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
But Oracle’s conventions are
completely different from ours!
What do we do?
Exercise
Image: imagerymajestic/ FreeDigitalPhotos.net
57 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.57 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
One of Oracle's guidelines is
different from ours!
What do we do?
Exercise
Image: imagerymajestic/ FreeDigitalPhotos.net
58 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.58 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
But we don't like one of
Oracle's guidelines!
What do we do?
Exercise
Image: imagerymajestic/ FreeDigitalPhotos.net
59 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Conclusion
•  Conventions show a well disciplined development team
•  They are necessary to avoid namespace collisions in large scale application
development
•  However conventions aren't the law, you can bend the rules and write your
own
•  Document, document, document.....
60 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
Further Reading
•  ADF Naming & Project Layout Guidelines
–  http://bit.ly/adfarchsquare
•  Sten Vesterli’s Oracle ADF Enterprise Application Development Made Simple
61 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.

Weitere ähnliche Inhalte

Was ist angesagt?

Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationChris Muir
 
Oracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration ArchitecturesOracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration ArchitecturesChris Muir
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingChris Muir
 
Oracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityOracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewChris Muir
 
Oracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesOracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesChris Muir
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsOracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsChris Muir
 
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignOracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignChris Muir
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningChris Muir
 
Oracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL IntegrationOracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL IntegrationChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsOracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsChris Muir
 
Oracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts
Oracle ADF Architecture TV - Design - Advanced ADF Task Flow ConceptsOracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts
Oracle ADF Architecture TV - Design - Advanced ADF Task Flow ConceptsChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication PatternOracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication PatternChris Muir
 
Oracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesOracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesChris Muir
 
Oracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsOracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsChris Muir
 
Oracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingOracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingChris Muir
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...Chris Muir
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk MobileChris Muir
 
Oracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for InternationalizationOracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for InternationalizationChris Muir
 

Was ist angesagt? (20)

Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
 
Oracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration ArchitecturesOracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration Architectures
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error Handling
 
Oracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityOracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for Security
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow Overview
 
Oracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesOracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project Dependencies
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version Control
 
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsOracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
 
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignOracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & Tuning
 
Oracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL IntegrationOracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL Integration
 
Oracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsOracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction Options
 
Oracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts
Oracle ADF Architecture TV - Design - Advanced ADF Task Flow ConceptsOracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts
Oracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts
 
Oracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication PatternOracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication Pattern
 
Oracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesOracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System Topologies
 
Oracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsOracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build Options
 
Oracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingOracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - Logging
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk Mobile
 
Oracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for InternationalizationOracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for Internationalization
 

Andere mochten auch

The Evolution of Good Code
The Evolution of Good CodeThe Evolution of Good Code
The Evolution of Good CodeArjan van Leeuwen
 
Oracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure DecisionsOracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure DecisionsChris Muir
 
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleMobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleChris Muir
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...Chris Muir
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Chris Muir
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 

Andere mochten auch (7)

The Evolution of Good Code
The Evolution of Good CodeThe Evolution of Good Code
The Evolution of Good Code
 
Oracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure DecisionsOracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure Decisions
 
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleMobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013
 
Joulex & Junos Space SDK: Customer Success Story
Joulex & Junos Space SDK: Customer Success StoryJoulex & Junos Space SDK: Customer Success Story
Joulex & Junos Space SDK: Customer Success Story
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 

Ähnlich wie Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts

Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerBerry Clemens
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsBerry Clemens
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...Jean Ihm
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesChristopher Jones
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScriptGeertjan Wielenga
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedJoĂŁo Pedro Martins
 
11g-sql-fundamentals-ppt.pdf
11g-sql-fundamentals-ppt.pdf11g-sql-fundamentals-ppt.pdf
11g-sql-fundamentals-ppt.pdffirasatsayyed1
 
Session at Oredev 2016.
Session at Oredev 2016.Session at Oredev 2016.
Session at Oredev 2016.Geertjan Wielenga
 
Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...
Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...
Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...Josh Carlisle
 
Slovenian Oracle User Group
Slovenian Oracle User GroupSlovenian Oracle User Group
Slovenian Oracle User GroupGeertjan Wielenga
 
How Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting PlatformHow Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting Platformlucenerevolution
 
Separation of Concerns through APIs: the Essence of #SmartDB
Separation of Concerns through APIs: the Essence of #SmartDBSeparation of Concerns through APIs: the Essence of #SmartDB
Separation of Concerns through APIs: the Essence of #SmartDBToon Koppelaars
 
OOW-TBE-12c-CON7307-Sharable
OOW-TBE-12c-CON7307-SharableOOW-TBE-12c-CON7307-Sharable
OOW-TBE-12c-CON7307-SharableObaidur (OB) Rashid
 
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSDoug Gault
 
Oracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerOracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerJeff Smith
 

Ähnlich wie Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts (20)

Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionapps
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
 
Imworld.ro
Imworld.roImworld.ro
Imworld.ro
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
 
11g-sql-fundamentals-ppt.pdf
11g-sql-fundamentals-ppt.pdf11g-sql-fundamentals-ppt.pdf
11g-sql-fundamentals-ppt.pdf
 
Session at Oredev 2016.
Session at Oredev 2016.Session at Oredev 2016.
Session at Oredev 2016.
 
Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...
Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...
Building Resilient Azure Solutions for Office 365 - SharePoint Saturday Atlan...
 
Slovenian Oracle User Group
Slovenian Oracle User GroupSlovenian Oracle User Group
Slovenian Oracle User Group
 
Developer day v2
Developer day v2Developer day v2
Developer day v2
 
How Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting PlatformHow Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting Platform
 
Separation of Concerns through APIs: the Essence of #SmartDB
Separation of Concerns through APIs: the Essence of #SmartDBSeparation of Concerns through APIs: the Essence of #SmartDB
Separation of Concerns through APIs: the Essence of #SmartDB
 
OOW-TBE-12c-CON7307-Sharable
OOW-TBE-12c-CON7307-SharableOOW-TBE-12c-CON7307-Sharable
OOW-TBE-12c-CON7307-Sharable
 
Cloud based database
Cloud based databaseCloud based database
Cloud based database
 
Reusability
ReusabilityReusability
Reusability
 
Lecture 5 reusability
Lecture 5 reusabilityLecture 5 reusability
Lecture 5 reusability
 
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDS
 
Oracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerOracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL Server
 

KĂźrzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

KĂźrzlich hochgeladen (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts

  • 1. 1 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
  • 2. 2 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Real World ADF Design & Architecture Principles Naming Conventions & Project Layouts 15th Feb 2013 v1.0
  • 3. 3 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Learning Objectives •  At the end of this module you should be able to: –  Recognize the needs for naming and project layout conventions –  Identify some of the challenges the conventions attempt to avoid –  Appreciate the conventions aren't the law, you can define your own Image: imagerymajestic/ FreeDigitalPhotos.net
  • 4. 4 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  The Need for Guidelines •  General Guidelines •  JDeveloper Workspaces & Projects –  Workspaces –  Projects •  ADF Structures
  • 5. 5 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Code Naming and Project Layout Guidelines •  Such guidelines for code can assist: –  Readability –  Maintainability –  Avoid namespace collisions –  Show a well disciplined development team Image: Bernie Condon / FreeDigitalPhotos.net
  • 6. 6 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Guidelines for Following Naming Conventions •  Naming Conventions are just “conventions”, they are not the law •  Violations don’t result in jail time! •  Different people and projects have different preferences •  Oracle breaks their own conventions all the time (shhhh!) •  If you do break them: –  Document why –  Be consistent –  Be consistent –  Be consistent Image: David Castillo Dominici / FreeDigitalPhotos.net
  • 7. 7 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.7 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. You may be building one monolithic but simple application today, but tomorrow you may have dozens of workspaces containing reusable templates, task flows, skins, business logic. Keep an eye on the future. Without good naming conventions and project structures, things are going to get messy quickly. Image: Ambro / FreeDigitalPhotos.net
  • 8. 8 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Code Naming and Project Layout Guidelines •  Oracle will now introduce it’s 233 guidelines •  Guideline #1 of 233…… •  Understandably reading all of these can be rather tedious work Image: David Castillo Dominici / FreeDigitalPhotos.net
  • 9. 9 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Further Reading •  Rather than discuss all 233 points •  You’re referred to a paper that covers these in detail –  ADF Naming and Project Layout Guidelines –  http://bit.ly/adfarchsquare –  The conventions are suggestions from Oracle –  With the goal of shortcutting writing your own –  But you can go with your own •  Here we’ll discuss the salient points •  And base it on a known architectural pattern
  • 10. 10 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  The Need for Guidelines •  General Guidelines •  JDeveloper Workspaces & Projects –  Workspaces –  Projects •  ADF Structures •  Deployment Artifacts
  • 11. 11 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. General Naming Conventions for ADF •  Follow the Java SE naming conventions •  http://bit.ly/javasecodeconvsect9 •  Conventions should extend to ADF objects too Image: David Castillo Dominici / FreeDigitalPhotos.net
  • 12. 12 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Hungarian Notation •  Hungarian Notation is a code convention of adding prefix/suffixes to objects to designate their type –  eg. TBL_EMPLOYEES for a database table •  Can lead to inconsistent names when objects change type and refactoring isn’t possible •  Use only when objects can’t change type or that’s the known general convention –  eg. EmployeesView for ADF BC view objects
  • 13. 13 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Use Meaningful Names, Acronyms & Abbreviations •  Names should be meaningful when taken out of context –  eg. Csp400.jspx means little, EnrolStudent.jspx is meaningful •  Avoid using abbreviations and conventions from legacy systems •  Avoid unnecessary acronyms/abbreviations –  eg. Dob for DateOfBirth •  Use acronyms/abbreviations when the acronym is used more commonly than the complete word/phrase –  eg. Html rather than HyperText Markup Language •  If a name contains an acronym, only capitalize the first letter of the acronym –  eg. RegisteredTfn for Registered Tax File Number
  • 14. 14 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Java Classes, Abstract Classes & Interfaces •  Use nouns – cat, dog, house, queue, shopping cart •  Mixed case, 1st letter of each word capitalized, no special characters •  Keep class names simple as possible •  Use whole words, avoid acronyms and abbreviations –  Unless the abbreviation is more widely used than word e.g. HTML •  e.g. Raster, EmployeeEntitlements, Departments •  Treat ADF objects the same as Java Classes for naming purposes
  • 15. 15 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  The Need for Guidelines •  General Guidelines •  JDeveloper Workspaces & Projects –  Workspaces –  Projects •  ADF Structures
  • 16. 16 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.16 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Describes guidelines based around an ADF Architectural Pattern out of the “Angels in the Architecture” presentation from Oracle Open World 2013 http://youtu.be/toEuQvp73h8
  • 17. 17 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.17 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. 1Master Workspace ViewController The Sum-of-the-Parts Architecture Common Workspace Model Entity Objects View Objects AppModule Framework Extensions Task Flow Templates Unbounded Task Flow Pages BTF Workspace ViewController Bounded Task Flow Fragments Bounded Task Flow Fragments Page Templates Declarative Components Skins ViewController Extensions BTF Workspace ViewController Bounded Task Flow Fragments Bounded Task Flow Fragments ADF Libraries ADFLibraries EAR For  purposes  of  the  following  discussion  let’s  assume   1)  There  is  a  single  database  schema  “humanres”   2)  The  BTF  workspaces  separately  deal  with   Departments  and  Employees  funcBons  within  our   applicaBon   3)  The  overall  applicaBon  being  built  is  for  HR  
  • 18. 18 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.18 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. 1Master Workspace ViewController The Sum-of-the-Parts Architecture Common Workspace Model Entity Objects View Objects AppModule Framework Extensions Task Flow Templates Unbounded Task Flow Pages BTF Workspace ViewController Bounded Task Flow Fragments Bounded Task Flow Fragments Page Templates Declarative Components Skins ViewController Extensions BTF Workspace ViewController Bounded Task Flow Fragments Bounded Task Flow Fragments ADF Libraries ADFLibraries EAR
  • 19. 19 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.19 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. 1Master Workspace The Sum-of-the-Parts Architecture Common WorkspaceBTF Workspace BTF Workspace ADF Libraries ADFLibraries EAR
  • 20. 20 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.20 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Master Workspace The Sum-of-the-Parts Architecture Common WorkspaceBTF Workspace BTF Workspace
  • 21. 21 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.21 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Hr Workspace The Sum-of-the-Parts Architecture Common WorkspaceEmp Workspace Dept Workspace
  • 22. 22 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Challenges •  At least 4 workspaces (if not many more) •  Workspaces contain multiple projects •  Require their own package structures •  1 to many bounded task flows requiring unique namespaces •  Generate numerous ADF Libraries to be consumed •  We must not have naming collisions •  Programmers should not get confused where code is coming from •  There’s potential for more applications in the future
  • 23. 23 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  The Need for Guidelines •  General Guidelines •  JDeveloper Workspaces & Projects –  Workspaces –  Projects •  ADF Structures
  • 24. 24 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.24 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. 25 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.25 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
  • 26. 26 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.26 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.
  • 27. 27 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.27 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  The location of code across developer’s PC can be different •  However it helps to standardize this •  In case the developer is run over by a bus •  Build scripts need to assume a standard location •  Exemptions need to be put in place for virus scanners
  • 28. 28 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.28 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  All workspaces regardless of their purpose should prefix the default package with your organization’s URL (in reverse) •  This helps differentiate your organization’s code from others, both if you’re importing or exporting code
  • 29. 29 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.29 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  Ensure workspace names are unique amongst all workspaces •  A good choice of workspace names helps differentiate many workspace artifacts from other workspace artifacts
  • 30. 30 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.30 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  Ensure workspace names are unique amongst all workspaces •  A good choice of workspace names helps differentiate many workspace artifacts from other workspace artifacts Common
  • 31. 31 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.31 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  Ensure workspace names are unique amongst all workspaces •  A good choice of workspace names helps differentiate many workspace artifacts from other workspace artifacts Common Emp
  • 32. 32 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.32 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  Ensure workspace names are unique amongst all workspaces •  A good choice of workspace names helps differentiate many workspace artifacts from other workspace artifacts Common Emp Dept
  • 33. 33 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.33 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  Ensure workspace names are unique amongst all workspaces •  A good choice of workspace names helps differentiate many workspace artifacts from other workspace artifacts Common Emp Dept Hr
  • 34. 34 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.34 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  Also use meaningful names •  e.g. VehicleLicensingSystem or Procurement •  But use acronyms or abbreviations if possible: Vls, Proc •  The workspace name becomes basis for default package •  Long names can make the package structure unwieldy Common Emp Dept Hr
  • 35. 35 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.35 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  For common artifacts place in a workspace with a “Common” prefix •  In this example there is only 1 Common workspace which will contain many projects •  Alternatively you may break this into 1 workspace per project, so the following naming scheme could be used •  eg. CommonModel or CommonViewController Common Emp Dept Hr
  • 36. 36 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.36 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  For task flows workspaces use a suffix like “Modules” or “Flows” •  Suffix might depend on how many task flows are contained in the workspace •  eg. HrModule or ProcureLodgingsFlow Common Emp Dept Hr
  • 37. 37 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.37 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. •  For the main application use just the application name Common Emp Dept Hr
  • 38. 38 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.38 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Common Emp Dept Hr •  You eventually may have 10s/100s of workspaces •  Use subdirectories to your advantage to categorize types of workspaces. •  e.g. Common, Flow, Applications •  Categories can assist division of source control directory structures
  • 39. 39 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.39 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Common Emp Dept Hr •  The same rule applies to your package names •  Ensure categorizations comes before name to assist sorting
  • 40. 40 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.40 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Common Emp Dept Hr •  The workspace name and case should be consistent as the base directory for the workspace and the .jws file •  Avoids confusion and errors •  In discussing source code •  When copying files •  Comparing source code to SVN •  Working with build tools
  • 41. 41 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  The Need for Guidelines •  General Guidelines •  JDeveloper Workspaces & Projects –  Workspaces –  Projects •  ADF Structures
  • 42. 42 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Projects •  The project name and case should be consistent as the base directory for the project and the .jpr file •  Project names should attempt to follow defaults proposed by the JDev wizards •  e.g. Model and ViewController •  These are familiar to programmers and new team members with ADF experience •  There are some exceptions (see next slide) •  Ensure unique projects names per workspace (enforced anyway) •  But they don’t need to be unique across workspaces
  • 43. 43 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. ADF Business Component Projects •  ADF BC projects at design time are limited to a single database connection defined in the Project Properties •  However some applications/architectures must support multiple database schemas, each served by a different Model project •  In this case break the previous convention to include a prefix of the schema name in the Model project name –  e.g. HrModel
  • 44. 44 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Project Default Packages •  On multi workspace applications, it’s important to ensure unique packages across workspaces •  Regardless or your architecture use this for future proofing •  The default package for a project should take the form: <org>.<workspace-type>.<workspace-name>.<project-name> •  eg. com.acme.common.hrmodel com.acme.flow.createemployee.view com.acme.app.procurement.model
  • 45. 45 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  The Need for Guidelines •  General Guidelines •  JDeveloper Workspaces & Projects –  Workspaces –  Projects •  ADF Structures
  • 46. 46 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.46 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Hr Workspace Reminder: Example Package Structures Common Workspace Emp Workspace Dept Workspace com.acme.common.model com.acme.flow.emp.view com.acme.flow.dept.view com.acme.app.hr.view
  • 47. 47 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.47 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Object Package Example Model.jpx file Resides in base package for project com.acme.common.model.adfbc.Model.jpx Framework extensions .base com.acme.common.model.adfbc.base.HrAppModuleImpl.java Application modules .services com.acme.common.model.adfbc.services.HrAppModule Domains .domains com.acme.common.model.adfbc.domains.EmailDomain Entity objects .entities com.acme.common.model.adfbc.entities.Employees Entity associations .entities.associations com.acme.common.model.adfbc.entities.associations.EmpDeptFkAssoc Property sets .properties com.acme.common.model.adfbc.properties.ReadOnlyPropertySet Validation rules .validations com.acme.common.model.adfbc.validations.EmailValidationRuleImpl.java Updateable view objects .views com.acme.common.model.adfbc.views.EmployeesView Read only view objects .views.readonly com.acme.common.model.adfbc.views.readonly.PostcodesView Programmatic view objects .views.programmatic com.acme.common.model.adfbc.views.programmatic.SocialSecurityView View links .views.links com.acme.common.model.adfbc.views.links.EmpDeptFkLink ADF BC Package Structures
  • 48. 48 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. ADF ViewController BTF Structure Challenge •  Base BTF workspace package examples: –  com.acme.flow.dept.view or com.acme.flow.dept.view •  JDeveloper by default places –  BTFs under ViewController/public_html/WEB-INF –  Page/fragments under ViewController/public_html •  But –  PageDefs under ViewController/adfmsrc/com/acme/flow/dept/view –  Beans under ViewController/src/com/acme/flow/dept/view •  By the structures alone this makes it hard to relate the code artifacts
  • 49. 49 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. ADF ViewController BTF Structure Solution •  Use the same directory structure for all artifacts. e.g.: –  BTFs: •  ViewController/public_html/WEB-INF/ com/acme/flow/dept/view/depttaskflow/depttaskflow.xml –  Page/Fragments •  ViewController/public_html/ com/acme/flow/dept/view/depttaskflow/ViewDept.jspx –  PageDefs •  ViewController/adfmsrc/ com/acme/flow/dept/view/depttaskflow/PageDef/ViewDeptPageDef.xml –  Beans •  ViewController/src/ com/acme/flow/dept/view/depttaskflow/DeptBean.java
  • 50. 50 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. ADF ViewController UTF Structure Challenge •  Base UTF workspace package example: –  com.acme.app.hr.view •  adfc-config.xml file(s) must reside under –  ViewController/public_html/WEB-INF •  JDeveloper will still place –  Page/Fragments under ViewController/public_html •  But –  PageDefs under ViewController/adfmsrc/com/acme/flow/dept/view/PageDef –  Beans under ViewController/src/com/acme/flow/dept/view •  Argh! We cannot apply our BTF directory solution here
  • 51. 51 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. ADF ViewController UTF Structure Challenge •  Base UTF workspace View Controller package example: –  com.acme.app.hr.view •  adfc-config.xml file(s) must reside under –  ViewController/public_html/WEB-INF •  JDeveloper will still place –  Pages under ViewController/public_html •  But –  PageDefs under ViewController/adfmsrc/com/acme/app/hr/view/PageDef –  Beans under ViewController/src/com/acme/app/hr/view •  Argh! We cannot apply our BTF directory solution here
  • 52. 52 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. ADF ViewController UTF Structure Solution •  Instead assume that: –  ViewController/public_html/WEB-INF –  ViewController/public_html –  ViewController/adfmsrc/com/acme/app/hr/view/ –  ViewController/src/com/acme/app/hr/view/ •  Are all logical “base” structures for all your different UTF artifacts •  This is where you expect to find your UTF artifacts •  So you don’t need to move anything around •  You just assume that any code artifact at these levels are related
  • 53. 53 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Options to Avoid BTF Namespace Solutions •  Use path with project package name preceding BTF name –  e.g. /WEB-INF/com/acme/flows/emp/viewcontroller/view/ CreateEmployees.xml#CreateEmployees –  Can be long and unwieldy in the IDE •  Use path with workspaces name preceding BTF name –  e.g. /WEB-INF/EmpFlows/CreateEmployees.xml#CreateEmployees –  Relies on assumption workspace names are unique
  • 54. 54 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  The Need for Guidelines •  General Guidelines •  JDeveloper Workspaces & Projects –  Workspaces –  Projects •  ADF Structures
  • 55. 55 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.55 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. But Oracle’s hasn’t covered every type of component – what about static VOs?!! What do we do? Exercise Image: imagerymajestic/ FreeDigitalPhotos.net
  • 56. 56 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.56 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. But Oracle’s conventions are completely different from ours! What do we do? Exercise Image: imagerymajestic/ FreeDigitalPhotos.net
  • 57. 57 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.57 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. One of Oracle's guidelines is different from ours! What do we do? Exercise Image: imagerymajestic/ FreeDigitalPhotos.net
  • 58. 58 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.58 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. But we don't like one of Oracle's guidelines! What do we do? Exercise Image: imagerymajestic/ FreeDigitalPhotos.net
  • 59. 59 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Conclusion •  Conventions show a well disciplined development team •  They are necessary to avoid namespace collisions in large scale application development •  However conventions aren't the law, you can bend the rules and write your own •  Document, document, document.....
  • 60. 60 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved. Further Reading •  ADF Naming & Project Layout Guidelines –  http://bit.ly/adfarchsquare •  Sten Vesterli’s Oracle ADF Enterprise Application Development Made Simple
  • 61. 61 Copyright Š 2013, Oracle and/or its affiliates. All rights reserved.