Скачать презентацию Prelude to Fusebox Prerequisite Understanding cfinclude cflocation cfswitch Скачать презентацию Prelude to Fusebox Prerequisite Understanding cfinclude cflocation cfswitch

327c4b22a7f67670d8233fe42694a56c.ppt

  • Количество слайдов: 20

Prelude to Fusebox Prerequisite Understanding: <cfinclude> <cflocation> <cfswitch> / <cfcase> <cfapplication> Variable scopes: session/client/application/request/attributes/caller Prelude to Fusebox Prerequisite Understanding: / Variable scopes: session/client/application/request/attributes/caller Custom tags URLToken If you don’t understand any of these, please tell me!

An Introduction to Fusebox Methodology and Techniques Finally – A True Standard for Cold. An Introduction to Fusebox Methodology and Techniques Finally – A True Standard for Cold. Fusion’s Most Proven and Popular Application Architecture Presented by Nat Papovich – Webthugs Consulting Developed by the Fusebox Community including Hal Helms, Jordan Clark, Steve Nelson, Fred Sanders, Jeff Peters, Russ Johnson, Ken Beard, and Stan Cox

Why Fusebox? What Is Fusebox? Structured architecture - scalability, maintainability, modularity Facilitates team development Why Fusebox? What Is Fusebox? Structured architecture - scalability, maintainability, modularity Facilitates team development Self-documents your application Allows repeatability Large community Proven but evolving Community-driven Extensible - Fusebox for PHP, JSP, ASP Quick to learn Free

General Fusebox Theory Index. cfm is controller - all interaction goes through the Fusebox General Fusebox Theory Index. cfm is controller - all interaction goes through the Fusebox via Fuseactions Multiple index. cfms for sections of the site, called circuits Root index. cfm handles global variables, root requests Index. cfm acts via cfcase, including files (fuses) and logic If a circuit blows up, the entire site is not blacked out Electrical fuse box metaphor Circuits are modular, thus reusable New Extended Fusebox (Hal-style) standard calls for no home application: n All circuits standalone with individual cfapplication tags and no global variable dependencies – cfparam all vars n All circuit index. cfms are cfincluded, not cflocationed

First Steps (Pre-Coding) 1. Produce a quality specification n n Nothing Fusebox specific here First Steps (Pre-Coding) 1. Produce a quality specification n n Nothing Fusebox specific here Be on the lookout for Secretagents. com spec tool 2. Use f. Use. ML or another modeling tool to make the design including directory structure n n f. Use. ML is derived from the UML Build design taking index. cfm interaction (Fuseactions) into account 3. Create stringent Fusedocs for all fuses n n Fuses should not be dependant on any variables not explicitly stated Make assertions if necessary

Creating A Fusebox Application 1. 2. 3. 4. 5. Create the index. cfm files Creating A Fusebox Application 1. 2. 3. 4. 5. Create the index. cfm files Create Fuseactions in index. cfm Create Fusedocs for fuses Write fuses Stand back and marvel

Create the Index. cfm Files Every directory (circuit application) has one index. cfm file Create the Index. cfm Files Every directory (circuit application) has one index. cfm file Index. cfm controls all the Fuseactions of that circuit application It is the Fusebox All links and form submissions go to the index. cfm It is a single cfswitch statement with multiple cfcase statements Each cfcase is a different Fuseaction

The Fusebox Code <!--index. cfm--> <cf_form. URL 2 attributes> <cfinclude template=“app_globals. cfm”> <cfparam name=“attributes. The Fusebox Code . . More on the custom tag later…

Create the Fuseactions A Fuseaction may cfinclude. htm/. cfm; cfmodule; cflocation; contain limited cfml Create the Fuseactions A Fuseaction may cfinclude. htm/. cfm; cfmodule; cflocation; contain limited cfml A Fuseaction may NOT display anything to the browser or contain “open” SQL Determine what steps are needed to complete each Fuseaction Add those steps inside each cfcase statement

File Naming Conventions (Fuses) app_globals. cfm – File defines variables, instantiates application request. main. File Naming Conventions (Fuses) app_globals. cfm – File defines variables, instantiates application request. main. DSN, request. webroot, request. mypath n dsp_filename. cfm - Display file n Only file that contains HTML or any output to browser act_filename. cfm - Action file n Only file allowed to perform actions on the database – updates, inserts, deletes, selects allowed, but only in conjunction with action qry_filename. cfm - Query file n Extremely modular file can be called “willy-nilly” throughout application, performs selects on database

Fusedoc Documentation Standard A Fusedoc outlines responsibilities, customizations, and expectations of fuses, and is Fusedoc Documentation Standard A Fusedoc outlines responsibilities, customizations, and expectations of fuses, and is unique to each fuse No fuse can assume the existence of any variable unless it is noted in the Fusedoc for that fuse Once completed, a Fusedoc should provide all the information needed to code the fuse – no interaction with application architects or previous specifications should be needed A Fusecard contains the following elements: n Name of the file n Responsibilities (non-technical, plain English, derived from the application design/f. Use. ML) n Author / coder n Variables list (incoming, outgoing, and persistent)

Fusedoc Legend --> <-<-> ++> explicitly passed incoming parameter explicitly passed outgoing parameter pass-thru Fusedoc Legend --> <-<-> ++> explicitly passed incoming parameter explicitly passed outgoing parameter pass-thru parameter (unchanged) existing persistent parameter (session, client, etc. ) <++ created persistent parameter +++ included file [parameter] brackets indicates optional Examples: --> Current. User: a WDDX STRUCTURE <-- [bad. Login]: optional, a STRING <++ Session. Color. Choice: a STRING (Red|Blue) <-> User. ID: an INTEGER +++ my. Globals. cfm

Version 2: Putting It All Together One entire application is made up of many Version 2: Putting It All Together One entire application is made up of many smaller circuit applications One circuit application is made up of a directory of files Each circuit must contain an app_locals. cfm and index. cfm file plus other display/action/query files as Fuses One index. cfm file is made up of one or more Fuseactions One Fuseaction includes one or more display/action/query files plus any necessary CFML logic

Extended Fusebox Code <cfswitch expression=“#listfirst(attribs. fuseaction, “. ”)#”> <cfcase value=“cat”> <cfset attribs. fuseaction=list. Rest(attribs. Extended Fusebox Code

Fusebox: The Final Word Fusebox is nothing radical – sophisticated, large applications use the Fusebox: The Final Word Fusebox is nothing radical – sophisticated, large applications use the MVC approach, whether CGI, Java/J 2 EE, C++, PHP, ASP, etc No one owns Fusebox – it will evolve and grow to meet any need or new technology Plug-n-Play saves you tons of time (time=money) Other choices exist – but Fusebox is the proven solution Purchase completed applications or cut-n-paste old code

Fusebox Resources www. fusebox. org - home, sites using Fusebox www. boxofuses. com - Fusebox Resources www. fusebox. org - home, sites using Fusebox www. boxofuses. com - version 3 application sales repository www. houseoffusion. com - mailing list www. halhelms. com - primers and Fusedocs www. webthugs. com/consulting - frames www. fuseml. org - home of f. Use. ML www. secretagents. com - tutorials and tools www. grokfusebox. com - IRC info and archives www. fusionauthority. com - purchase Fusebox book