commandbox : free cfml

53
Go Commando!

Upload: ortus-solutions-corp

Post on 18-Feb-2017

686 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: CommandBox : Free CFML

Go Commando!

Page 2: CommandBox : Free CFML

WHO AM I?• Luis Majano

• Computer Engineer

• Born in El Salvador -> Texas

• CEO of Ortus Solutions

• Adobe Community Professional

• ColdFusion (CFML) Advocate

• Adobe Advisory Committee

• Lucee Language Committee

• Sandals & Beaches -> ESRI -> Ortus

Page 3: CommandBox : Free CFML

AGENDA

• How do we work in CF• A better way to work in CF• What is CommandBox• Features• Usage• Roadmap

Page 4: CommandBox : Free CFML

HOW DO WE WORK IN CF?

Code% App%

CodeCode

CodeCode

Code

Code

Code

Page 5: CommandBox : Free CFML

IT’S ALIVE!

CollaborationAutomationReusability

Page 6: CommandBox : Free CFML

Cool Kids

Page 7: CommandBox : Free CFML

How we should work!

App#Package#Manager#

CLI#

REPL#

Automa6on#

OS#

Page 8: CommandBox : Free CFML

CLI + PACKAGE MANAGER 4 CFML?????????

Page 9: CommandBox : Free CFML

WHAT IF?#OS integration execute myapp.cfm#!/bin/env/box

#generationcoldbox create app name=MyApp skeleton=rest ——installColdBox

testbox create bdd MySpec —open

#dependency managementinstall cborm,relax,chuck-norris,cfdocs

#server integrationserver start ——rewritesEnable ——SSLEnable

#os integrationrun grunt, run gulp, run git

#automation + customizationsrecipe myrecipe.boxr app=MyApp p=2

doc dateFormat

Page 10: CommandBox : Free CFML
Page 11: CommandBox : Free CFML

Setting CFML Free!

Page 12: CommandBox : Free CFML

Unveiled 1 year ago HERE!

• > 5 Releases

• 90+ Improvements+Features

• 60+ bug fixes

• 50+ Pull Requests

• ForgeBox packages tripled

• CommandBox Book

Page 13: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 14: CommandBox : Free CFML

Who is this for?

Any CFML Developer

Page 15: CommandBox : Free CFML

Free 4 All

Java 1.7+v2.1.1

Page 16: CommandBox : Free CFML

We are POSS

• GitHub

• https://github.com/Ortus-Solutions/commandbox• Professional Support

• Training + Mentoring

• Development

• Support

• Salsa Lessons are Optional

Brad WoodSalsa King

Page 17: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 18: CommandBox : Free CFML

Usage - CLI vs Shell

box myapp.cfm Shell

Page 19: CommandBox : Free CFML

Usage - OS Execution

OS +

CFML

Execute CFML Filesbox myapp.cfm &

Box Scripting: *Unix#!/usr/bin/env box

Page 20: CommandBox : Free CFML

Usage - Commands

• How you get things done!• Built-in Help

• command help• Command Namespaces

• Commands• Aliases• Parameters/Arguments

• Tab-Completion• History

Page 21: CommandBox : Free CFML

Usage - ParametersNamed Params

box execute file=test.cfm

Positionalbox install coldbox

Boolean Flagsbox coldbox create app —installColdBox

Boolean Flagsbox coldbox create controller —!script

Escape Input\t,\n, \”, \’

Page 22: CommandBox : Free CFML

Usage - HistoryCommand History

box history

REPL Historybox history type=scriptreplbox history type=tagrepl

Clear Historybox history —clear

Page 23: CommandBox : Free CFML

Usage - OS Integration

• Editing• sed

• Output Manipulation• |, more, tail, grep

• File Redirection• > Create, >> Append

• Open• Files/Directories

• Browser• Run OS Binaries

• Grunt, Node, Git, Gulp, Etc.

Page 24: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 25: CommandBox : Free CFML

What’s a package?

• A folder or zip/tar file that must contain:• box.json

• It must be in the root!

Page 26: CommandBox : Free CFML

box.json

• Package Descriptor• Declares package metadata

• Name• Slug• Version• Author• Dependencies• DevDependencies• Installation Details

• Custom Metadata

Page 27: CommandBox : Free CFML

box.json

Page 28: CommandBox : Free CFML

Where do they come from?

• ForgeBox • File zip/tar• Directory• http/https• Git

• Branches• Tags• Commit Hashes

• Coming Soon• ForgeBox Private• ForgeBox Pro

Page 29: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 30: CommandBox : Free CFML

ForgeBox

• Cloud package repository• Web GUI• Community driven• 205+ packages• Help us out!• www.forgebox.io

Page 31: CommandBox : Free CFML

ForgeBox Challenge

Next two packages in ForgeBox wins their very

own Weissbier Barrel

Page 32: CommandBox : Free CFML

Package Commands• bugs

• clear

• documentation

• homepage

• init

• install

• list

• outdated

• set

• show

• uninstall

• update

• version

Page 33: CommandBox : Free CFML

Artifacts Commands

• clean

• list

• remove

Page 34: CommandBox : Free CFML

ForgeBox Commands

• search• show• slugcheck• types• Coming Soon

• apikey• register• my-contributions

Page 35: CommandBox : Free CFML

Packaging Features• Can distribute without dependencies• Can have development dependencies• Dependencies Inception• “install” to initialize a project

• “update” to update dependencies

• “outdated” to check for versions

• “list” to visualize dependencies

Page 36: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 37: CommandBox : Free CFML

Read - Eval - Print - Loop

• Executes code• Support Tags or CFScript• History• Multi-line Statements• Declare closures, functions, etc• Keeps state

REPL

Page 38: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 39: CommandBox : Free CFML

Integrated Server• Lightweight servlet container : undertow

• Startup ad-hoc servers in any folder• Keeps track of servers, no WEB-INF needed• Server

• start• stop• restart• status• log• open• forget

• Lucee + Adobe CF

Page 40: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 41: CommandBox : Free CFML

Scaffolding

Available For Any Framework or Application

Preside CMS

Page 42: CommandBox : Free CFML

Scaffolding

initcoldbox create app “MyApp” —-installColdBoxcoldbox create handler contacts index,save,deletecoldbox create module MyModuleinstall testboxpackage set defaultPort=“90001”package set testbox.runner=“localhost:90001/tests/runner”testbox run

Page 43: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 44: CommandBox : Free CFML

Automation Commands• run

• Execute any OS binary• Integrate with grunt/gulp/ant

• execute

• Enhanced execution• Can accept parameters

• recipe

• Like a “Batch” file: !#/usr/bin/box

• Runs multiple commands• Can accept parameters• my-recipe.boxr

Page 45: CommandBox : Free CFML

# Init a repositorymkdir $nameinit $namerun git init# Create ColdBox Appcoldbox create app $name —installColdBoxcoldbox create handler $controller index,save,deletecoldbox create module $module# Prepare for Testinginstall testboxpackage set defaultPort=“$port”package set testbox.runner=“localhost:$port/tests/runner”

my-recipe.boxr

recipe my-recipe.boxr MyApp

Page 46: CommandBox : Free CFML

What is CommandBox?

CLI PackageManager

REPL

Read-EvalPrint-Loop

IntegratedServer

ScaffoldingForgeBox

CFML

ColdFusion Automation

Page 47: CommandBox : Free CFML

ColdFusion Extensibility

• Commands are CFML• Create custom commands• Register in ForgeBox• DI/AOP Capabilities• Favorite Commands

• CommandBox-Chuck-Norris

• cfdocs

CFML

Page 48: CommandBox : Free CFML

Resources• Official Site

• http://ortussolutions.com/products/commandbox• Documentation + Book

• http://apidocs.ortussolutions.com/commandbox/current• http://commandbox.ortusbooks.com

• Google Group

• https://groups.google.com/a/ortussolutions.com/forum/#!forum/commandbox• Training

• http://ortussolutions.com/services/training• Professional Support

• http://ortussolutions.com/services/support

Page 49: CommandBox : Free CFML

Roadmap

Task Runners

ForgeBox Enterprise

ForgeBox 2.0

SVN Endpoint

Command Modules

Adobe CF Version

Page 50: CommandBox : Free CFML

FORGEBOX V2.0

• www.forgebox.io

• Refreshed UI

• Multi-Version Support

• CommandBox Uploading, Registration

• Package Notifications

Page 51: CommandBox : Free CFML

PRIVATE FORGEBOX• Monthly Subscription Service

• Private Packages

• Collaborators

• Companies + Users

• Optional S3 Storage

• Unique Installation Strings

install @lmajano/rafflebox

Page 52: CommandBox : Free CFML

PRO

• ForgeBox for Enterprise + Government

• Downloadable Appliance

• Encapsulated Dependencies

• Unique URI entrypoint

• Unique CommandBox Registrations

forgebox pro register ortus http://fbpro.company.cominstall ortus:bradbox

Page 53: CommandBox : Free CFML

Thanks!

Q & A