Design Patterns and ColdFusion: Exploring Object Based Programming Dan Blackman www.muddbrick.com.

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

Chapter 13 Review Questions
Lab 9: Code Organization User Interface Lab: GUI Lab October 23 rd, 2013.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Web Applications Development Using Coldbox Platform Eddie Johnston.
2007 Adobe Systems Incorporated. All Rights Reserved. 1 Glenda Vigoreaux Adobe Certified Instructor roundpeg, Inc. Component Development.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Model-View-Controller ("MVC") This is a architectural design pattern for interactive applications. This design pattern organizes an interactive application.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Shailen Sukul Senior Solutions Architect EMC BSc | Mct | Mcpd (.Net 2/3.5) | Mcts (Sharepoint (MOSS/WSS), Biztalk, Web, Win, Dist Apps) | Mcsd.NET | Mcsd.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Chapter 7: The Object-Oriented Approach to Requirements
UNIT-V The MVC architecture and Struts Framework.
Dependency Injection and Model-View-Controller. Overview Inversion of Control Model-View-Controller.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
The Design Discipline.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
1 Modular Software/ Component Software 2 Modular Software Code developed in modules. Modules can then be linked together to produce finished product/program.
Presenter - Donn Felker.  Senior Consultant for Microsoft Gold Certified Partner- Statêra.  8 years of experience in developing and architecting enterprise.
Exploring Real-time apps with ColdFusion and Blaze DS / Live Cycle Data Services ES Dan Blackman
MVC and MVP. References enter.html enter.html
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
An Introduction to Software Architecture
DATABASE PROGRAMMING Lecture on 16 – 05 – PREVIOUS LECTURE QUIZ: - Some students were very creative in transforming 2NF to 3NF. Excellent! - Some.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
1 Another group of Patterns Architectural Patterns.
DaveAndAl.net Do Application Design Patterns Make Sense in ASP.NET? Alex Homer You may like to write these down now...
Patterns in programming 1. What are patterns? “A design pattern is a general, reusable solution to a commonly occurring problem in software. A design.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Model View Controller Architecture of Java Web Applications Dr. M V S Peri Sastry, Ph.D.[BITS-Pilani]
Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
Consultant Effective Patterns and Practices in J2EE George de la Torre.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 8 1COMP9321, 15s2, Week.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 7 1COMP9321, 15s2, Week.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
Chapter 9 Web Application Design. Objectives Describe the MVC design pattern as used with Web applications Explain the role and responsibilities of each.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
The Service Layer!!! Sharing Data Between ColdFusion Applications Elliott Sprehn Software Engineer.
Mach-II Primer Ben Edwards An Introduction to Mach-II: An event-based, implicit invocation web-application framework.
Introduction to Object Oriented Programming in ColdFusion Nicholas Tunney Senior Software Architect.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
TECHNICAL ASSISTANCE FOR THE CONVERSION OF RBPAPs INTO RBMPs DATA MANAGEMENT INCEPTION WORKSHOP ESTAMBUL February Eusebio CRUZ GARCÍA.
Thomas Burleson. Using MVC with Flex & Coldfusion Projects June 27, 2007 See how Coldfusion MVC is similar to Flex MVC…
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
COMP9321 Web Application Engineering Semester 2, 2016
GRASP – Designing Objects with Responsibilities
Structure of a web application
OO Methodology OO Architecture.
Enterprise Application Architecture
Design and Maintenance of Web Applications in J2EE
Model-View-Controller (MVC) Pattern
ARCH-1: Application Architecture made Simple
Software Design Lecture : 15.
An Introduction to Software Architecture
Presentation transcript:

Design Patterns and ColdFusion: Exploring Object Based Programming Dan Blackman

Dan Blackman Founder and Senior Consultant – –Mudd Brick Inc, Dallas, Tx Certified Adobe Instructor – Flex, ColdFusion, Flash Experience – 12 Years ColdFusion, Flash and Flex

Setting Expectations I am not a Architect but I play one on TV My name does not end in Lehman, Forta, Majano etc. There will be NO debate here today…Just demystification of a cryptic topic. Let’s have an interactive dialog

Objectives Design Patterns: The Why? Identification of Core Design Patterns Frameworks Shut up and Show me some code!!! Summary and Questions

Design Patterns: The Why!? What is the main goal of building ColdFusion/ Flex Applications?

Design Patterns: The Why? SOA –Service Oriented Architecture Mind the Gap - Marcel Boucher Duane Nickul, et al _from_Adobe.pdf

Design Patterns: The Why? SOA –Service Oriented Architecture The ultimate value of SOA is the ability to combine automated business services to create new market offerings that may reduce time-to-market and development costs." Terry Borden and Bill Mitlehner

Design Patterns: The Why? SOA

Design Patterns: The Why? FACT: Refactoring patterns into existing code is much more difficult than writing an application correctly the first time.

Design Patterns: The Why Scalability – Can your application support a large number of concurrent users? Maintainability – the everyday fight we have with our inner-self and management. Reusability – Break down your application into small chunks. Forces us to build structure into our applications.

Design Patterns: The Why Let’s look at some Spaghetti Code: Most of you have written code like this!!!

Design Patterns: The Why MORAL of the STORY? An Architect does not construct a building with out a blueprint, Why are YOU then, building applications without a solid foundation? Me

Identification of Core Design Patterns What are design patterns and how do I use them?

Identification of Core Design Patterns –Design Pattern Definition: design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. –In short, design patterns provide a foundational blueprint for software development. –Patterns are NOT code, they are designs we apply to our application code.

Identification of Core Design Patterns –Core Patterns: MVC Design Pattern Singleton Pattern – Application.cfc Service Object Pattern Front Controller/ Command Patterns Business Delegate Pattern DAO/ Gateway Patterns Value/ Data Transfer Object Pattern

Identification of Core Design Patterns

–Model – View – Controller Allows for a clear separation between User Interface Objects and the underlying data model Elements of MVC include –Model, which manages data elements and responds to queries about its state and to instructions to change its state –View, which manages a rectangular area of the display and is responsible for presenting the data –Controller, which handles events from the user and system that affect the model and view These application components allow the separation of the following –User interaction –Modeling of the external world (data) –Visual feedback to the user

Identification of Core Design Patterns –Singleton Design Pattern –Used to restrict the instantiation of a class to a single instance. –Application.cfc - OnApplicationStart

Identification of Core Design Patterns –Service Objects Allows Encapsulation of Business Logic in a single service interface. LoginService.cfc Service.cfc ZipValidationService.cfc

Identification of Core Design Patterns –Front Controller/ Command Patterns The Front Controller is a single component created to handle all system requests. Controls and coordinates processing of each user across multiple requests. Employs Command (workers) in order to carry out requests. Commands can be reused throughout the application across multiple Views

Identification of Core Design Patterns –Business Delegate Pattern A simple class that acts to create separation between the Presentation/ Web tier client (HTML/ RIA) and the business tier on the back-end. Provides remote access from Web clients to important business tier services.

Identification of Core Design Patterns –DAO/ Gateway Patterns DAO – Data Access Object – Provides CRUD operation methods for specific business objects. Table Data Gateway (Fowler) – Provides a similar set of data access methods. Commonly used in ColdFusion applications for bulk data access. (i.e. queries that return large data sets)

Identification of Core Design Patterns –Data Transfer / Value Objects Also called “beans”, this pattern provides a way to transfer data back and forth to the Web Client tier Value Objects are NOT packaged exactly like Database tabels Designed using a UML Class diagram

Frameworks Various Frameworks implement design patterns: ColdFusion ColdBox Mach-II Model-Glue ColdSpring Flex Pure MVC Cairngorm Model-Glue Swiz Mate

Shut up and show me some code!!! When building an application, where do you start? –View  Controller  Model? –Model  Controller  View –You have a database – Where do I go from here!? –Let’s check out a real scenario!

Questions? Dan Blackman Mudd Brick Inc. Dallas, TX