SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Don't Throw That Out!
Bringing Legacy ColdFusion Code In To
This Century
by Cutter
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
What's The Problem?

There are thousands of outdated applications

Millions of dollars and man hours went in to building these apps

Many never, or very infrequently, updated
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
The Consequences

Poor Performance

Major Security Issues

Hard to Maintain

Difficult To Extend

Publicity Nightmare
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Your Crossroads

Toss it for a COTS app

Toss it for a FOSS app

Write a new app in ColdFusion

Write a new app in “X”

Keep it, and modernize
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Key Considerations

Availability of third party applications

Customizability of those third party apps

Learning Curve/Skill Set

Existing Data

Current Investment

LOE

Resources
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
This Discussion
Here we discuss modernizing that existing
application. Leveraging that previous investment
and institutional knowledge with modern practices
to continue to capitalize on what's already been
created.
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Key Requirements

A Plan

Patience

A Will To Succeed
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Get Current

Modern OS

Modern Web Server

Modern Database Server

Modern Application Server (ColdFusion + Tomcat)

Hardware (?)

Virtual Machines (?)
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pitfalls Of Getting Current

Will require code changes

Might require SQL changes (and more code changes)

Costs - $ and man power

Will require regression testing
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Some Suggested Tools

Version Control (Git, Subversion, etc)

Modern Editor/IDE (ColdFusion Builder, Brackets, Sublime Text, etc)

Redgate SQL Toolbelt

Application Firewall (FuseGuard?)

Profiling Tools (FusionReactor, SeeFusion, etc)
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pitfalls Of New Tools

Learning Curve

Costs - $ and man hours
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Get Current (You Personally)
Get at least a basic understanding of the advancements/changes to the
following

CFML/ColdFusion Server

SQL Server (whichever flavor you use)

Key Web Developer Competencies
− HTML
− CSS
− JS
Author's Note: If you don't know these last three, you aren't a web developer
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Revisiting The Crossroads
Are you still certain that refactoring
is the most effective solution?
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Let's
Talk
Code!
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Map Your App
Understand the built-in application framework

Server.cfc
− OnServerStart()

Application.cfc
− Application, Session and Request Event Handlers
− Application level error handling
Map out core event handling in each of the three key areas
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pitfalls Of Mapping Your App

Will require extensive application review

Will require extensive code changes

Costs – Many Man Hours

Will require extensive regression testing
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Cover Yourself

SQL Injection
− Cfqueryparam
− Cfprocparam

ColdFusion Lockdown Guide

Application Firewall (FuseGuard?)
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pitfalls Of Covering Yourself

Will require extensive code changes

Will likely require server access

Costs - $ and Many Man Hours

Will require extensive regression testing
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Scope It Out!

Explicitly declare ALL of them

Do so in small, testable, digestable chunks
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pitfalls Of Scoping

Will require extensive code changes

Costs – Many Man Hours

Will require extensive regression testing
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Understanding
Scope
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Persistent Scopes

Server

Application

Session

Request

(Client)
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pass Along Scopes

URL

Form

Arguments

Attributes

(Request)
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pass Along Pitfalls
Think
Security
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Custom Tag Scopes

Attributes

Variables

ThisTag

Caller

(Request)
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
CFC Scopes

This

Variables

Arguments

Local
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Pitfalls of Tag and CFC Scopes
Pick Your Bits
Use The Right Scope
For The Job
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Other Scopes

CGI

Cookie

Thread

Built-In Unscoped Scopes
− Query
− CFFile
− CFCatch
− Etc
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Retrieving Data

Profile

Analyze

Refactor

ORM? Or Not ORM?

Caching
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Dynamic or Static

Cached Content

Generated Content
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Beyond The
Code
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Tune In

RAM Allocation

Garbage Collection Settings

Request Tuning

Queue Timeout

Network Infrastructure and Interface I/O

Pure Processing Power
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
The Road Ahead

Stay On Course

Consider Frameworks

Process
− Develop One
− Document It
− Stick To It

PLAN!
Cutter * Twitter: cutterbl * http://cutterscrossing.com
Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century
Read On
http://www.cutterscrossing.com/index.cfm/Legacy-Code
Cutter

Site: http://cutterscrossing.com

Email: web.admin@cutterscrossing.com

Twitter: cutterbl

Weitere ähnliche Inhalte

Andere mochten auch

Single page apps_with_cf_and_angular[1]
Single page apps_with_cf_and_angular[1]Single page apps_with_cf_and_angular[1]
Single page apps_with_cf_and_angular[1]ColdFusionConference
 
How do I write Testable Javascript
How do I write Testable JavascriptHow do I write Testable Javascript
How do I write Testable JavascriptColdFusionConference
 
Our application got popular and now it breaks
Our application got popular and now it breaksOur application got popular and now it breaks
Our application got popular and now it breaksColdFusionConference
 
The Future of CSS with Web Components
The Future of CSS with Web ComponentsThe Future of CSS with Web Components
The Future of CSS with Web ComponentsColdFusionConference
 
Safeguarding applications from cyber attacks
Safeguarding applications from cyber attacksSafeguarding applications from cyber attacks
Safeguarding applications from cyber attacksColdFusionConference
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSColdFusionConference
 
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataColdFusionConference
 
Level up your front-end skills- going beyond cold fusion’s ui tags
Level up your front-end skills- going beyond cold fusion’s ui tagsLevel up your front-end skills- going beyond cold fusion’s ui tags
Level up your front-end skills- going beyond cold fusion’s ui tagsColdFusionConference
 

Andere mochten auch (20)

Fr sponsor talk may 2015
Fr sponsor talk may 2015Fr sponsor talk may 2015
Fr sponsor talk may 2015
 
Command box
Command boxCommand box
Command box
 
Single page apps_with_cf_and_angular[1]
Single page apps_with_cf_and_angular[1]Single page apps_with_cf_and_angular[1]
Single page apps_with_cf_and_angular[1]
 
How do I write Testable Javascript
How do I write Testable JavascriptHow do I write Testable Javascript
How do I write Testable Javascript
 
My charts can beat up your charts
My charts can beat up your chartsMy charts can beat up your charts
My charts can beat up your charts
 
Our application got popular and now it breaks
Our application got popular and now it breaksOur application got popular and now it breaks
Our application got popular and now it breaks
 
Cold fusion is racecar fast
Cold fusion is racecar fastCold fusion is racecar fast
Cold fusion is racecar fast
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
The Future of CSS with Web Components
The Future of CSS with Web ComponentsThe Future of CSS with Web Components
The Future of CSS with Web Components
 
Web hackingtools 2015
Web hackingtools 2015Web hackingtools 2015
Web hackingtools 2015
 
Java scriptconfusingbits
Java scriptconfusingbitsJava scriptconfusingbits
Java scriptconfusingbits
 
Front end-modernization
Front end-modernizationFront end-modernization
Front end-modernization
 
CFML Sessions For Dummies
CFML Sessions For DummiesCFML Sessions For Dummies
CFML Sessions For Dummies
 
Top5 scalabilityissues
Top5 scalabilityissuesTop5 scalabilityissues
Top5 scalabilityissues
 
Safeguarding applications from cyber attacks
Safeguarding applications from cyber attacksSafeguarding applications from cyber attacks
Safeguarding applications from cyber attacks
 
Sql killedserver
Sql killedserverSql killedserver
Sql killedserver
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWS
 
Relationships are hard
Relationships are hardRelationships are hard
Relationships are hard
 
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
 
Level up your front-end skills- going beyond cold fusion’s ui tags
Level up your front-end skills- going beyond cold fusion’s ui tagsLevel up your front-end skills- going beyond cold fusion’s ui tags
Level up your front-end skills- going beyond cold fusion’s ui tags
 

Ähnlich wie Dont throwthatout

Voxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 spec
Voxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 specVoxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 spec
Voxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 specVoxxed Days Thessaloniki
 
Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Ashley Roach
 
Threat Modelling - It's not just for developers
Threat Modelling - It's not just for developersThreat Modelling - It's not just for developers
Threat Modelling - It's not just for developersMITRE ATT&CK
 
CodeMeter, the global specialist in software protection
CodeMeter, the global specialist in software protectionCodeMeter, the global specialist in software protection
CodeMeter, the global specialist in software protectionteam-WIBU
 
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...Felipe Prado
 
Hands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ NagoyaHands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ NagoyaKiwamu Okabe
 
CodeMeter, the global specialist in software licensing
CodeMeter, the global specialist in software licensingCodeMeter, the global specialist in software licensing
CodeMeter, the global specialist in software licensingteam-WIBU
 
CodeMeter, the Global Specialist in Software Security
CodeMeter, the Global Specialist in Software SecurityCodeMeter, the Global Specialist in Software Security
CodeMeter, the Global Specialist in Software Securityteam-WIBU
 
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG🎤 Hanno Embregts 🎸
 
Hands-on VeriFast with STM32 microcontroller @ Osaka
Hands-on VeriFast with STM32 microcontroller @ OsakaHands-on VeriFast with STM32 microcontroller @ Osaka
Hands-on VeriFast with STM32 microcontroller @ OsakaKiwamu Okabe
 
Rainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could ExpectRainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could ExpectPeter Hlavaty
 
Angular 2 : learn TypeScript already with Angular 1
Angular 2 : learn TypeScript already with Angular 1Angular 2 : learn TypeScript already with Angular 1
Angular 2 : learn TypeScript already with Angular 1David Amend
 
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013Dominik Obermaier
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco DevNet
 
Kranky geeklondon build an app
Kranky geeklondon build an appKranky geeklondon build an app
Kranky geeklondon build an appTim Panton
 
The Container Security Checklist
The Container Security Checklist The Container Security Checklist
The Container Security Checklist LibbySchulze
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Henning Jacobs
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Cisco DevNet
 

Ähnlich wie Dont throwthatout (20)

Voxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 spec
Voxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 specVoxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 spec
Voxxed Days Thesaloniki 2016 - Whirlwind tour through the HTTP2 spec
 
Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018
 
Threat Modelling - It's not just for developers
Threat Modelling - It's not just for developersThreat Modelling - It's not just for developers
Threat Modelling - It's not just for developers
 
CodeMeter, the global specialist in software protection
CodeMeter, the global specialist in software protectionCodeMeter, the global specialist in software protection
CodeMeter, the global specialist in software protection
 
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
 
Hands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ NagoyaHands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ Nagoya
 
CodeMeter, the global specialist in software licensing
CodeMeter, the global specialist in software licensingCodeMeter, the global specialist in software licensing
CodeMeter, the global specialist in software licensing
 
CodeMeter, the Global Specialist in Software Security
CodeMeter, the Global Specialist in Software SecurityCodeMeter, the Global Specialist in Software Security
CodeMeter, the Global Specialist in Software Security
 
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
 
Hands-on VeriFast with STM32 microcontroller @ Osaka
Hands-on VeriFast with STM32 microcontroller @ OsakaHands-on VeriFast with STM32 microcontroller @ Osaka
Hands-on VeriFast with STM32 microcontroller @ Osaka
 
Rainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could ExpectRainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could Expect
 
Angular 2 : learn TypeScript already with Angular 1
Angular 2 : learn TypeScript already with Angular 1Angular 2 : learn TypeScript already with Angular 1
Angular 2 : learn TypeScript already with Angular 1
 
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API Workshop
 
Atelier Technique CISCO ACSS 2018
Atelier Technique CISCO ACSS 2018Atelier Technique CISCO ACSS 2018
Atelier Technique CISCO ACSS 2018
 
Kranky geeklondon build an app
Kranky geeklondon build an appKranky geeklondon build an app
Kranky geeklondon build an app
 
The Container Security Checklist
The Container Security Checklist The Container Security Checklist
The Container Security Checklist
 
IBOSEC-3000-2.pdf
IBOSEC-3000-2.pdfIBOSEC-3000-2.pdf
IBOSEC-3000-2.pdf
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
 

Mehr von ColdFusionConference

Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server DatabasesColdFusionConference
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsColdFusionConference
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectColdFusionConference
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerColdFusionConference
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISColdFusionConference
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016ColdFusionConference
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016ColdFusionConference
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusionConference
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMSColdFusionConference
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webColdFusionConference
 

Mehr von ColdFusionConference (20)

Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
Cf ppt vsr
Cf ppt vsrCf ppt vsr
Cf ppt vsr
 
Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server Databases
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Don't just pdf, Smart PDF
Don't just pdf, Smart PDFDon't just pdf, Smart PDF
Don't just pdf, Smart PDF
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API Manager
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APIS
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
ColdFusion in Transit action
ColdFusion in Transit actionColdFusion in Transit action
ColdFusion in Transit action
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMS
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
Why Everyone else writes bad code
Why Everyone else writes bad codeWhy Everyone else writes bad code
Why Everyone else writes bad code
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 
Rest ful tools for lazy experts
Rest ful tools for lazy expertsRest ful tools for lazy experts
Rest ful tools for lazy experts
 

Kürzlich hochgeladen

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 

Kürzlich hochgeladen (20)

Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 

Dont throwthatout

  • 1. Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century by Cutter
  • 2. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century What's The Problem?  There are thousands of outdated applications  Millions of dollars and man hours went in to building these apps  Many never, or very infrequently, updated
  • 3. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century The Consequences  Poor Performance  Major Security Issues  Hard to Maintain  Difficult To Extend  Publicity Nightmare
  • 4. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Your Crossroads  Toss it for a COTS app  Toss it for a FOSS app  Write a new app in ColdFusion  Write a new app in “X”  Keep it, and modernize
  • 5. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Key Considerations  Availability of third party applications  Customizability of those third party apps  Learning Curve/Skill Set  Existing Data  Current Investment  LOE  Resources
  • 6. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century This Discussion Here we discuss modernizing that existing application. Leveraging that previous investment and institutional knowledge with modern practices to continue to capitalize on what's already been created.
  • 7. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Key Requirements  A Plan  Patience  A Will To Succeed
  • 8. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Get Current  Modern OS  Modern Web Server  Modern Database Server  Modern Application Server (ColdFusion + Tomcat)  Hardware (?)  Virtual Machines (?)
  • 9. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pitfalls Of Getting Current  Will require code changes  Might require SQL changes (and more code changes)  Costs - $ and man power  Will require regression testing
  • 10. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Some Suggested Tools  Version Control (Git, Subversion, etc)  Modern Editor/IDE (ColdFusion Builder, Brackets, Sublime Text, etc)  Redgate SQL Toolbelt  Application Firewall (FuseGuard?)  Profiling Tools (FusionReactor, SeeFusion, etc)
  • 11. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pitfalls Of New Tools  Learning Curve  Costs - $ and man hours
  • 12. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Get Current (You Personally) Get at least a basic understanding of the advancements/changes to the following  CFML/ColdFusion Server  SQL Server (whichever flavor you use)  Key Web Developer Competencies − HTML − CSS − JS Author's Note: If you don't know these last three, you aren't a web developer
  • 13. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Revisiting The Crossroads Are you still certain that refactoring is the most effective solution?
  • 14. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Let's Talk Code!
  • 15. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Map Your App Understand the built-in application framework  Server.cfc − OnServerStart()  Application.cfc − Application, Session and Request Event Handlers − Application level error handling Map out core event handling in each of the three key areas
  • 16. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pitfalls Of Mapping Your App  Will require extensive application review  Will require extensive code changes  Costs – Many Man Hours  Will require extensive regression testing
  • 17. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Cover Yourself  SQL Injection − Cfqueryparam − Cfprocparam  ColdFusion Lockdown Guide  Application Firewall (FuseGuard?)
  • 18. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pitfalls Of Covering Yourself  Will require extensive code changes  Will likely require server access  Costs - $ and Many Man Hours  Will require extensive regression testing
  • 19. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Scope It Out!  Explicitly declare ALL of them  Do so in small, testable, digestable chunks
  • 20. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pitfalls Of Scoping  Will require extensive code changes  Costs – Many Man Hours  Will require extensive regression testing
  • 21. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Understanding Scope
  • 22. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Persistent Scopes  Server  Application  Session  Request  (Client)
  • 23. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pass Along Scopes  URL  Form  Arguments  Attributes  (Request)
  • 24. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pass Along Pitfalls Think Security
  • 25. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Custom Tag Scopes  Attributes  Variables  ThisTag  Caller  (Request)
  • 26. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century CFC Scopes  This  Variables  Arguments  Local
  • 27. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Pitfalls of Tag and CFC Scopes Pick Your Bits Use The Right Scope For The Job
  • 28. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Other Scopes  CGI  Cookie  Thread  Built-In Unscoped Scopes − Query − CFFile − CFCatch − Etc
  • 29. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Retrieving Data  Profile  Analyze  Refactor  ORM? Or Not ORM?  Caching
  • 30. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Dynamic or Static  Cached Content  Generated Content
  • 31. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Beyond The Code
  • 32. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Tune In  RAM Allocation  Garbage Collection Settings  Request Tuning  Queue Timeout  Network Infrastructure and Interface I/O  Pure Processing Power
  • 33. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century The Road Ahead  Stay On Course  Consider Frameworks  Process − Develop One − Document It − Stick To It  PLAN!
  • 34. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Read On http://www.cutterscrossing.com/index.cfm/Legacy-Code Cutter  Site: http://cutterscrossing.com  Email: web.admin@cutterscrossing.com  Twitter: cutterbl