luis majano & ortus solutions, corp

27
Luis Majano & Ortus Solutions, Corp [email protected] www.coldbox.org More Than MVC 1

Upload: others

Post on 18-Apr-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: Luis Majano & Ortus Solutions, Corp

WHO AM I?

• Luis Majano - Computer Engineer

• Born in San Salvador, El Salvador

• Work for ESRI (Environmental Systems Research Institute)

• Manager of the IECFUG (www.iecfug.com)

• Creator of ColdBox

• Co-Creator of CodexWiki - www.codexwiki.org

2

Page 3: Luis Majano & Ortus Solutions, Corp

HISTORY & FACTS• Did not start as an open source project

• Designed and built for a high availability multi-tiered web application in 2005

• First Release in July 2006

• 16 releases since July 2006Really? Yes, Really!

• Current Build is 2.6.4

• Build in Progress is 3.0.0 (4th Quarter)

• Large usage base with over 13000 downloads

3

Page 4: Luis Majano & Ortus Solutions, Corp

WHAT IS COLDBOX?

?4

Page 5: Luis Majano & Ortus Solutions, Corp

COLDBOX IS A ...

• Proven event-driven ColdFusion Development Platform

• Follows OO principles and best practices

• Conventions Based

• Built on a layered Modular Architecture

• More than MVC => ColdBox Platform

• Software Toolkit, Remote Framework, Enterprise Cache, LogBox, MockBox, etc.

• Addresses most infrastructure concerns of typical ColdFusion applications

C

V

M

Remote Proxy

5

Page 6: Luis Majano & Ortus Solutions, Corp

PLATFORM OVERVIEW

Cold

Box P

latf

orm

Core MVC

Remote ProxyFlex - Air - Ajax

Unit TestingEngine

Core Interceptors

SESRouting

Autowire

Security

Environment Control

DebuggerService

Core Plugins

Application-Session-Client

StoragesBean Factory

Code Timer

CFC Viewer

Cookie Storage i18n

IoC Proxy JSONJavaLoader

Logger/Tracing Messagebox Method Injector

RendererResource BundlesQuery Helper

XSS Cleanup String BufferFeed Reader/Generator

Webservices ZipUtilities

ColdBox Dashboard

ColdBox Eclipse Plugins

ColdBox Tools

CFEclipse Dictionary &

Snippets

Dreamweaver Dictionary

* ColdBox Enterprise Cache

Deploy

SideBar

Exception Service

Plugin Service

Interceptor Service

ANT Code Generators

* MockBox Mocking Engine

* BlenderBox DI-AOP

* LogBoxEnterprise Logging

HandlerService

ProxyBuilder

6

Page 7: Luis Majano & Ortus Solutions, Corp

BENEFITS

• Common Vocabulary

• Promotes Team Oriented Development

• Facilitates good programming practices

• Fosters Code Re-use

• Flexibility

• Extensibility

* Wikipedia

7

Page 8: Luis Majano & Ortus Solutions, Corp

What Sets ColdBox Apart?

8

Page 9: Luis Majano & Ortus Solutions, Corp

Documentation & Training

• Over 40 Step by Step Guides

• Over 600 pages worth of docs

• Professional Training

• CBOX-100 : Intro To ColdBox

• CBOX-101 : Core ColdBox

• More on the way....

• 3 books on the way

• Eclipse Help Integration

• A “No Hair” Pulling Effect

9

Page 10: Luis Majano & Ortus Solutions, Corp

No Documentation!

Effects of Documentation

Mark Drew on ColdBox!

Where are my docs?

I Love ColdBox, it

gave me hair again!

10

Page 11: Luis Majano & Ortus Solutions, Corp

All About Conventions

• No need of declaring logic or application flow in XML

• Uses folder & naming conventions

• Internal Conventions For:

• Implicit Executions: Just create method signatures and you are ready to roll

• Helpers by Convention

• Plugins, helpers and much more

11

Page 12: Luis Majano & Ortus Solutions, Corp

Code Controllers• Code in ColdFusion (CFC’s)

• New Event, New Function (Easy!)

• Flexible, Extensible and Reusable

• Built-in Unit Testing Framework

• Integration Testing

• MockBox

• Object Mocking/Stubbing

• Increased Performance through smart caching

12

Page 13: Luis Majano & Ortus Solutions, Corp

Multiple Applications

• No extra configuration files or nasty imports

• Organize controllers & views in packages

• Multiple external extension points: layouts, views, handlers, plugins, etc.

• Use state of the art SES URL routing

!"#$%"&'())#*+,-*".'

/*0*'

'%#"1'

2-"34'

13

Page 14: Luis Majano & Ortus Solutions, Corp

Debugging Tools

• Customizable Debugger

• Profiles your events

• Profiles your remote proxies

• Monitors

• Cache

• Remote Calls

• Execution Profiler

• Logging Facilities

“A new way to debug and monitor your applications”

14

Page 15: Luis Majano & Ortus Solutions, Corp

Smart Caching• CF/Java Hybrid

• Memory Aware

• Object and Data Caching

• Event and View Caching

• Highly Customizable

• Monitor & Interactive Console

• Multi-Threaded

• Built-In Event Model

I Likey!!

“3.0 will be cache agnostic”15

Page 16: Luis Majano & Ortus Solutions, Corp

Event Caching<cffunction name=”entry” cache=”true” cacheTimeout=”40” cacheLastAccessTimeout=”15” >....</cffunction>

<cfset event.setView(name=”widget”,cache=”true”,cacheTimeout=”15”)>

<cfoutput>#renderView(view=”viewlet/userDetail”,cache=”true”,cacheTimeout=”30”)#</cfoutput>

View Caching

16

Page 17: Luis Majano & Ortus Solutions, Corp

MODEL INTEGRATION

• “An easy & maintainable way of managing your domain objects”

• Retrieved By Convention

• Manages Singletons, Transients & Time Persisted Objects

• Manage CFC’s, Webservices, & Java objects (3.0)

• ColdBox Does Dependency Injection (IoC)

• Autowiring, Factories, Object Aliases, Parent Hierarchies

• Constructor, Setter or Metadata Injection

• Scope Persistence: session, request, application, server (3.0)

• Custom Autowire DSL’s (3.0)

My Handler

My Model

Other Model

17

Page 18: Luis Majano & Ortus Solutions, Corp

Object Persistence<cfcomponent name=”UserService” singleton=”true”>

<cfcomponent name=”BlogEntry” cache=”true” cacheTimeout=”10”>

<cfcomponent name=”TransientObject”>

<cfproperty name=”UserGateway” type=”Model” scope=”instance” /><cfproperty name=”Datasource” type=”coldbox:datasource:myDSN” scope=”instance” /><cfproperty name=”MailTo” type=”coldbox:setting:MailTo” scope=”instance” /><cfproperty name=”cache” type=”coldbox:cacheManager” scope=”instance” /><cfproperty name=”logger” type=”logbox:root” scope=”instance” />

Dependencies DSL

18

Page 19: Luis Majano & Ortus Solutions, Corp

Software Toolkit

• LogBox: Enterprise Logging

• SES Pretty URL’s

• Java & CF Utilities

• Query & Storage Helpers

• Internationalization

• Environment Settings & Detection

• Bug Reporting

• Application Security

• Server Deployment

• Create your own

19

Page 20: Luis Majano & Ortus Solutions, Corp

DATA RENDERING

• Easily render data from your event handlers

• event.renderdata()

• Automatic Data Marshaling To:

• JSON

• XML

• Plain (Anything)

• Easily create REST services

View

HTML/JSON/XMLPLAIN TEXT

<cfset event.renderData(type=”plain”,data=”<h1>Hello</h1>”>

<cfset event.renderData(type=”json”,data=qUsers)>

<cfset event.renderData(type=”xml”,data=qUsers)>

20

Page 21: Luis Majano & Ortus Solutions, Corp

WHAT ABOUT SECURITY?

• Event based security rule engine

• Protects external & internal event calls

• Authorize by user roles, permissions or custom

• Can use Regex Pattern Matching

• Easily validate integrate custom security implementations

Listening to Shakira rocks man!!

I know! Better than guarding this

place

http://www.flickr.com/photos/carolyncoles/131618244

Damn You ColdBox!!

21

Page 22: Luis Majano & Ortus Solutions, Corp

CUSTOM INTERCEPTORS• Custom Interception Points (Observer-Observable) or Broadcasters

• Observation Points by Conventions

• Announce, Register, UnRegister via the API

• Can also be chained

• You can also send in a structure of intercepted data via the announcement

• A solid base to create event driven architectures

Publisher

Interceptor X

Interceptor X

Interceptor X

data

data

data

22

Page 23: Luis Majano & Ortus Solutions, Corp

COLDBOX PROXY

ColdBox Events

Remoting

Remoting

ColdBox Cache

ColdBoxPlugins

ColdBoxInterceptors

ColdspringLightWire

TransferReactor

ColdBox/ApplicationSettings

Remoting

Model Objects

Now that’s Cool!!

23

Page 24: Luis Majano & Ortus Solutions, Corp

COLDBOX PROXY

• AJAX CFC data binding

• Event Driven Model - creates an enhanced service layer or

• Just tap into your services directly

• Access to:

• Model Objects

• IoC object factories : LightWire/ColdSpring

• IoC Beans

• Cache, Plugins, and more

• Monitors & Profiles ALL your remote calls, creates debuggers for you.

• A new way to develop headless applications

“One development framework - ANY GUI interface”24

Page 25: Luis Majano & Ortus Solutions, Corp

Demo Time

25

Page 26: Luis Majano & Ortus Solutions, Corp

• Official Site

• http://www.coldbox.org

• Forums

• http://forums.coldbox.org

• Wiki, Bugs, Trac Site

• http://ortus.svnrepository.com/coldbox

• Google Group

• http://groups.google.com/group/coldbox

• Training Courses

• CBOX-100 (1-Day), CBOX-101 (2-Days)

• http://www.coldbox.org/index.cfm/training

ColdBox Resources

Luis Majano & Ortus Solutions, Corp

[email protected]

26

Page 27: Luis Majano & Ortus Solutions, Corp

Thanks!

Q & A

Bye Bye Homies!!

27