SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 

Último (20)

%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 

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