Prelude to Fusebox Prerequisite Understanding: / Variable scopes: session/client/application/request/attributes/caller Custom tags URLToken If you don’t.

Slides:



Advertisements
Similar presentations
PHP + Framework + MVC. What is Framework? Common code - Generic functionality Extensible - Specific functionality Unlike library – Flow Dictated by.
Advertisements

PHP I.
Introduction to MVC Adding a View Page NTPCUG Tom Perkins, Ph.D.
PHP (2) – Functions, Arrays, Databases, and sessions.
DT228/3 Web Development multi page applications/ sharing data.
Tutorial 6 Working with Web Forms
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
DT228/3 Web Development JSP: Directives and Scripting elements.
Tutorial 6 Working with Web Forms. XP Objectives Explore how Web forms interact with Web servers Create form elements Create field sets and legends Create.
XP Tutorial 1 New Perspectives on JavaScript, Comprehensive1 Introducing JavaScript Hiding Addresses from Spammers.
Fusebox Framework Florencio Almirol. Overview What is Fusebox? Concepts Request-Response Process Extending Fusebox.
Systems Analysis I Data Flow Diagrams
UNIT-V The MVC architecture and Struts Framework.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
Fusebox 3.0 The Framework, The Methodology, The Community Nat Papovich, Fusium.
Dataface API Essentials Steve Hannah Web Lite Solutions Corp.
JAVASCRIPT HOW TO PROGRAM -2 DR. JOHN P. ABRAHAM UTPA.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Dynamic Web Sites Chris North cs3724: HCI. Presentations matt ketner, sam altman, mike gordon Vote: UI Hall of Fame/Shame?
Page Layout and Navigation in ColdFusion Jon Brundage CF Developer / Accessibility and Section 508 Consultant MDCFUG April 2003.
4-1 INTERNET DATABASE CONNECTOR Colorado Technical University IT420 Tim Peterson.
Prelude to Fusebox The Basics: - Variable scopes: session/client/application/request/attributes/caller Custom Tags URLToken.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
More on Fusebox at Fusebox Development Methodology : More on Fusebox at Fusebox Development Methodology.
Software Architecture for ColdFusion Developers Unit 4: Application Events and Global Variables.
An Introduction to Fusebox 3.0 Fusebox 3.0. An Introduction to Fusebox 3.0 The Fusebox Philosophy There are two ways of constructing a software design:
HTML Hyper Text Markup Language A simple introduction.
©2003 The Fusebox Corporation Fusebox MX Hal Helms.
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
Lecture 8 – Cookies & Sessions SFDV3011 – Advanced Web Development 1.
Searching Business Data with MOSS 2007 Enterprise Search Presenter: Corey Roth Enterprise Consultant Stonebridge Blog:
Forms and Server Side Includes. What are Forms? Forms are used to get user input We’ve all used them before. For example, ever had to sign up for courses.
More on Fusebox at Fusebox 3 Development Methodology : Fusebox 3.0 With thanks to David Laing, Hal.
CSC 2720 Building Web Applications Server-side Scripting with PHP.
BlackBox Methodology A means of creating efficient and flexible reusable ColdFusion code.
Application.cfm tips and Tricks Michael Smith President TeraTech, Inc ColdFusion, database & VB custom development and training.
Tutorial 6 Working with Web Forms. 2New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition Objectives Explore how Web forms interact with.
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
9/16/2000 Nat Papovich – Putting It All Together Putting It All Together: Developing Web Applications Using Fusebox and Frames Presented by Nat Papovich.
Building Fusebox Frameworks Jeff Peters
Fusebox Conference 2001 Out with the old in with the new An introduction to Fusebox 3.0 for current Fusebox developers By Erik Voldengen
ASP. What is ASP? ASP stands for Active Server Pages ASP is a Microsoft Technology ASP is a program that runs inside IIS IIS stands for Internet Information.
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
An Introduction to FB4 An Introduction to Fusebox 4 If written directions alone would suffice, libraries wouldn't need to have the rest of the universities.
Visual Basic for Application - Microsoft Access 2003 Programming applications using Objects.
Implementing and Using the SIRWEB Interface Setup of the CGI script and web procfile Connecting to your database using HTML Retrieving data using the CGI.
Advanced Fusebox: Securing a Fusebox Application By Steve Nelson SecretAgents.com.
1 FUSEDOC: AN EMERGING STANDARD Make everything as simple as possible, but not simpler. -Albert Einstein.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Tutorial 6 Working with Web Forms. 2New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition Objectives Explore how Web forms interact with.
ASP. ASP is a powerful tool for making dynamic and interactive Web pages An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are.
Building CF Applications with Fusebox Steve Nelson CTO, Zero-G Commerce, Inc. member, Team Allaire Chairman of Fusebox.org.
ITM © Port,Kazman 1 ITM 352 Cookies. ITM © Port,Kazman 2 Problem… r How do you identify a particular user when they visit your site (or any.
Chapter 6 Chapter 6 Server Side Programming (JSP) Part 1 1 (IS 203) WebProgramming (IS 203) Web Programming.
Dr. Abdullah Almutairi Spring PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages. PHP is a widely-used,
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
Fusebox Not Just For Breakfast Anymore! An Introduction to Fusebox Author: Fred T. Sanders, Instant Knowledge Some Content unscrupulously taken from Steve.
FOS Fusebox Open Source. Standards GOOD Built to match needs of an environment Proven Solutions BAD Environments change Solutions change.
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
Chapter 19 PHP Part III Credits: Parts of the slides are based on slides created by textbook authors, P.J. Deitel and H. M. Deitel by Prentice Hall ©
ITM 352 Cookies.
Brian Kotek INDUS Corporation
PHP an introduction.
Web Application Development Using PHP
Presentation transcript:

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 ColdFusion’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 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 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: All circuits standalone with individual cfapplication tags and no global variable dependencies – cfparam all vars All circuit index.cfms are cfincluded, not cflocationed

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

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

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.... More on the custom tag later…

Model-View-Controller Approach This is Meant to Be Just text That isn’t Clear. I hope It works the Way I want It to. dsp_UserLogin.cfm Fusebox (controller) Request This is Meant to Be Just text That isn’t Clear. I hope It works the Way I want It to. cf_do_logic Name: Stan Cox Intelligence: Monumental Bravery: Stunning HTML Returned (model) (view)

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.mainDSN, request.webroot, request.mypath dsp_filename.cfm - Display file Only file that contains HTML or any output to browser act_filename.cfm - Action file 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 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 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: Name of the file Responsibilities (non-technical, plain English, derived from the application design/fUseML) Author / coder Variables list (incoming, outgoing, and persistent)

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: --> CurrentUser: a WDDX STRUCTURE <-- [badLogin]: optional, a STRING <++ Session.ColorChoice: a STRING (Red|Blue) UserID: an INTEGER +++ myGlobals.cfm

Create the Necessary Fuses Because the Fusedocs are so carefully built, and the design so thoroughly thought out, individual fuses can be “farmed out” for coding Remember – all links and form actions go to index.cfm, specifying which Fuseaction to perform; never to the specific dsp or act files. Javascript:window.location=‘index.cfm?fuseaction=Buy’ or

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: Putting It All Together Version 2 calls for multiple Fuseboxes to be tied together with cflocation or cfmodule Version 3 ties Fuseboxes together with cfincludes ONLY There are no longer “circuit” and “home” apps – all index.cfms function standalone – loosely coupled Any Fusebox can cfinclude any other Fusebox without knowing or caring what variables are used or what the Fusebox’s architecture is When the Fuseboxes are collected, they are called from the highest Fusebox only using “dot-notation” href and form action All hrefs and form actions call the current index.cfm which, when Fuseboxes are cfincluded, means the highest Fusebox in the chain, without having to recode links But this Fusebox can in turn, be called by a higher Fusebox…

Extended Fusebox Code

Fusebox Glue / app_layout.cfm Application.cfm security app_server.cfm Search-engine safe URLs via modified cf_formurl2attributes Verity friendly Fusebox in the works (store content in database) Exit Fuseactions (XFA)

Fusebox: The Final Word Fusebox is nothing radical – sophisticated, large applications use the MVC approach, whether CGI, Java/J2EE, 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 - home, sites using Fusebox - version 3 application sales repository - mailing list - primers and Fusedocs - frames - home of fUseML - tutorials and tools - IRC info and archives - purchase Fusebox book