Dont throwthatout

514 views

Published on

Published in: Software, Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
514
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dont throwthatout

  1. 1. Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century by Cutter
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 21. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Understanding Scope
  22. 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. 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. 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. 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. 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. 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. 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. 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. 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. 31. Cutter * Twitter: cutterbl * http://cutterscrossing.com Don't Throw That Out! Bringing Legacy ColdFusion Code In To This Century Beyond The Code
  32. 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. 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. 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

×