Upload
dale-wiggins
View
219
Download
2
Embed Size (px)
Citation preview
Spectra Tips and TricksSpectra Tips and Tricks
Tips for Spectra First ContactTips for Spectra First Contact
Coding TipsCoding Tips
Q&AQ&A
Spectra Pre-RequisitesSpectra Pre-Requisites
Structures: Everything’s a structureStructures: Everything’s a structure Custom TagsCustom Tags
• Passing data in/outPassing data in/out• Modular codeModular code
Conceptual understanding of WDDXConceptual understanding of WDDX Request Scope (thread safe)Request Scope (thread safe)
Request ScopeRequest Scope
What is Spectra?What is Spectra?
Content Object Database (CODB): Content Object Database (CODB): An object-based data storage built in An object-based data storage built in relational tables.relational tables.
Tags to interact with CODBTags to interact with CODB• 200+ Tags in about 20 groupings200+ Tags in about 20 groupings
Webtop: A fancy Spectra applicationWebtop: A fancy Spectra application• Admin interfaceAdmin interface• User interfaceUser interface
Three Parts of SpectraThree Parts of Spectra
ContentObject DatabaseContentObject Database
Spectra: the same but Spectra: the same but differentdifferent
DB Design and Spectra Object Design DB Design and Spectra Object Design are similar enough to be familiar but are similar enough to be familiar but different enough to be potentially different enough to be potentially confusingconfusing
GainsGains• Fast for getting complete objectsFast for getting complete objects• Linking data with methodsLinking data with methods
LossesLosses• Flexible relational accessFlexible relational access
Spectra vs ColdFusionSpectra vs ColdFusion
Spectra IS ColdFusionSpectra IS ColdFusion ALL of ColdFusion functionality is ALL of ColdFusion functionality is
available within Spectra available within Spectra applicationsapplications• CF TagsCF Tags• FunctionsFunctions• Database connectionsDatabase connections
Spectra: All or Nothing?Spectra: All or Nothing?
Spectra is not right for all applicationsSpectra is not right for all applications• Highly relational data should not be Highly relational data should not be
moved into Spectra Content Object moved into Spectra Content Object databasedatabase
Spectra is not right for all parts of an Spectra is not right for all parts of an application.application.
Spectra and ColdFusion togetherSpectra and ColdFusion together• HR.com Resource CenterHR.com Resource Center
Spectra: More PlanningSpectra: More Planning
Spectra apps require more up front Spectra apps require more up front planning than straight CF apps planning than straight CF apps because:because:• Spectra apps are (usually) biggerSpectra apps are (usually) bigger• Spectra apps live in an existing set of Spectra apps live in an existing set of
servicesservices
Chicken and the EggChicken and the Egg
To competently plan a Spectra app, To competently plan a Spectra app, you need to have built a Spectra appyou need to have built a Spectra app
Two solutions:Two solutions:• Find someone who has been through it Find someone who has been through it
to help get up to speedto help get up to speed• Iterate over the design and Iterate over the design and
construction of your first Spectra construction of your first Spectra applicationapplication
Security is a problem Security is a problem
Allow time to configure and test Allow time to configure and test (2 - 3 weeks)(2 - 3 weeks)• Don’t turn on security caching in Don’t turn on security caching in
developmentdevelopment Use a workaround insteadUse a workaround instead Spectra 2 will likely address this Spectra 2 will likely address this
issueissue
Minimize CFLocking (CF Minimize CFLocking (CF Tip)Tip)
Server, application and session Server, application and session scope variables need to be locked scope variables need to be locked (read and write)(read and write)
Use the new duplicate() functionUse the new duplicate() function <cflock name="AppName" type=”readonly"><cflock name="AppName" type=”readonly"> <cfset request.app = <cfset request.app =
duplicate(application)>duplicate(application)> </cflock></cflock>
Use the Application ScopeUse the Application Scope
Put needed items in Application Put needed items in Application Scope (and transfer to Request Scope (and transfer to Request scope) such as:scope) such as:• Lookup valuesLookup values• User-defined TypeIDsUser-defined TypeIDs• Property namesProperty names• Application-specific translation dataApplication-specific translation data
– HR.com HRID and nodeIDsHR.com HRID and nodeIDs
Plan MetaData CarefullyPlan MetaData Carefully
Spectra 1.01 provides minimal Spectra 1.01 provides minimal tools for changing Metadata once tools for changing Metadata once usedused
Use possible alternatives to Use possible alternatives to Metadata carefully as Metadata Metadata carefully as Metadata will be important for future will be important for future Personalization upgradesPersonalization upgrades
SQL Searching StrategiesSQL Searching Strategies
cfa_contentObjectFind is slow for cfa_contentObjectFind is slow for SQL lookups with medium size SQL lookups with medium size datasetsdatasets
Uniquely name all SQL searchable Uniquely name all SQL searchable propertiesproperties
Use a Custom Tag to directly search Use a Custom Tag to directly search Properties tableProperties table
Spectra 2 MAY address thisSpectra 2 MAY address this
SearchingSearching
Spectra Debug TagSpectra Debug Tag
<cfset request.cfa.mode.debug = true>
<cfif request.cfa.mode.debug> <cfa_tagDebugBegin></cfif><cfif request.cfa.mode.debug><cfif request.cfa.mode.debug> <cfa_tagDebugEnd> <cfa_tagDebugEnd></cfif></cfif>
<cfa_tagDebugOutput><cfa_tagDebugOutput>
Debug OutputDebug Output
Number of iterations:cfa_contentobject: 2cfa_contentobjectget: 2 cfa_contentobjectgetmultiple: 1 cfa_contentobjectinvokemethod: 2 cfa_objecttypeget: 2
Tag tree:
cfa_contentobject / time: 250 ms / vars: labels='Blackman, Samuel G.'; oids='3E8004F7-5DA0-11D4-94FE00D0B7752E0A';
cfa_contentobjectinvokemethod / time: 234 ms
cfa_contentobjectget / time: 15 ms
cfa_objecttypeget / time: 15 ms
cfa_contentobjectgetmultiple / time: 47 ms
Wrap UpWrap Up
Spectra is a ColdFusion Application Spectra is a ColdFusion Application that is great for Content that is great for Content Management and related servicesManagement and related services
Use it as one of several available Use it as one of several available toolstools
Plan for the time to get through Plan for the time to get through the initial learning curvethe initial learning curve
FREE . . . . . FREE . . . . . FREE . . . . . FREE . . . . . FREEFREE
Spectra Spectra ConsultationConsultation- By phone- By phone- In your office- In your office
www.wwstudios.comwww.wwstudios.com