bluedragon 7.0 new possibilities for cfml applications josh adams

47
BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

Upload: verity-harrington

Post on 27-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

BlueDragon 7.0New Possibilities for CFML Applications

BlueDragon 7.0New Possibilities for CFML Applications

Josh AdamsJosh Adams

Page 2: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 2© Copyright 1997-2007

About MeAbout Me

Josh [email protected]

(678) 256-5395

Developer Evangelist for BlueDragon at New Atlanta

CFML Developer

Past President of the Atlanta ColdFusion User Group, Inc. and general big fan of CFUGs and the CFML community!

Page 3: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 3© Copyright 1997-2007

Your QuestionsYour Questions

Please ask questions!Feel free to ask at any time during the presentation

I will address as many questions as possible

Due to time constraints some questions may go unanswered during the presentation

If I do not answer your question during the presentation, I will answer you as soon as possible

Page 4: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 4© Copyright 1997-2007

AgendaAgenda

Introduction to New Atlanta and BlueDragon

BlueDragon 7.0 Features

BlueDragon 7.0 Demos

BlueDragon Future

Obtaining, Using, and Licensing BlueDragon

Q&A

BlueDragon Server JX License Giveaway (Maybe)

Afterparty Information

Further Info

Page 5: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 5© Copyright 1997-2007

Introduction to New AtlantaWeb Application Server Technology

Experts

Introduction to New AtlantaWeb Application Server Technology

Experts

BlueDragon is our 3rd generation web application platform

1. FileMaker Web Companion (Lasso)

Web Publisher for FileMaker Pro databases

Built in 1995, sold to Apple in 1997

Over 10 Million licenses since initial release

2. ServletExec - Servlet/JSP Container

First servlet engine on the market for Microsoft IIS and Netscape Enterprise Server with Servlet 1.0 Specification support

Charter members of Servlet and JSP Expert Groups (Sun's JCP)

Tens of thousands of licenses since 1997

3. BlueDragon

CFML Runtime with native deployment and integration on J2EE and .NET platforms

New Atlanta has over 14,000 customers in 85+ countries

Page 6: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 6© Copyright 1997-2007

New Atlanta CustomersNew Atlanta Customers

Land's End

Over $1 billion in e-sales

Myspace.com

Over 110 million users

ESRI – ArcIMS: web-based GIS

ServletExec ships on ArcIMS CD

American Airlines

Worldwide reporting of safety incidents

Yahoo! Resumix

hotjobs.yahoo.com

Page 7: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 7© Copyright 1997-2007

Our Largest Deployment:MySpace Surpasses Yahoo – Nov

2006

Our Largest Deployment:MySpace Surpasses Yahoo – Nov

2006

1.3+ billion!

145+ million!

40 billion!

Page 8: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 8© Copyright 1997-2007

What BlueDragon Is & DoesWhat BlueDragon Is & Does

CFML ≠ ColdFusionCFML is a coding language

CFML = ColdFusion Markup Language

ColdFusion is softwareColdFusion = Adobe's CFML application server / CFML engine

ColdFusion is Adobe's deployment platform for CFML applications

BlueDragon is softwareBlueDragon = New Atlanta's CFML application server / CFML engine

BlueDragon is New Atlanta's deployment platform for CFML applications

You do not need ColdFusion to use BlueDragon!

Page 9: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 9© Copyright 1997-2007

BlueDragon BackgroundBlueDragon Background

HistoryOldest Java-based CFML application server: created in 1998 by a consultancy in Scotland

Available commercially for 5 years: purchased and productized by New Atlanta in 2002

Platform-agnostic for 2 years: .NET edition released in 2005

Page 10: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 10© Copyright 1997-2007

Microsoft PartnershipMicrosoft Partnership

New Atlanta is a Microsoft Gold Certified Partner1 of only approximately 150 ISV Gold Certified Partners

BlueDragon.NET is a Microsoft Certified Product (Windows 2003 Server)

BlueDragon.NET is a .NET Connected product

BlueDragon is a SQL Server 2005 Frontrunner

Page 11: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 11© Copyright 1997-2007

BEA licenses BlueDragon from New AtlantaSpecial BEA-only version

Rebranded as a BEA product: BlueDragon, BEA WebLogic Edition

Runs on any O/S BEA WebLogic Server 8.1 or later is available on

Supported directly by BEA's world-class support organization

Offered via BEA's download center

BlueDragon, BEA WebLogic EditionLaunched in April 2006

BEA PartnershipBEA Partnership

Page 12: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 12© Copyright 1997-2007

BlueDragon EditionsBlueDragon Editions

BlueDragon J2EE

BlueDragon Server & Server JX

BlueDragon .NET

Standalone(including "Free version")

Native J2EEAny J2EE app server

Native .NETNo need to write

ASP.NET.

Direct .NET platform advantages within your

CFML applications

Page 13: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 13© Copyright 1997-2007

BlueDragon FeaturesBlueDragon Features

See the "BlueDragon 7.0 CFML Enhancements" document on the New Atlanta website for full details!

Includes both information on new BlueDragon 7.0 enhancements and enhancements present in previous BlueDragon releases

Documents such long-existing BlueDragon CFML tags as CFIMAP, CFIMAGE, CFFORWARD, CFTHROTTLE, and CFZIP

Documents such long-existing BlueDragon CFML functions as Render(), QuerySort(), and ListRemoveDuplicates()

Documents long-existing CFC enhancements (serialization, duplication, more!)

Documents long-existing enhancements to numerous CFML tags and functions (new attributes/arguments and attribute/argument values)

Page 14: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 14© Copyright 1997-2007

BlueDragon 7.0 FeaturesBlueDragon 7.0 Features

For additional information, see the "What's New in BlueDragon 7.0" document on the New Atlanta website

All features in all editions unless noted

Page 15: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 15© Copyright 1997-2007

BlueDragon 7.0 FeaturesNon-CFML-related

BlueDragon 7.0 FeaturesNon-CFML-related

Performance enhancements

Support for Java 5.0 and 6.0Note: supported on all versions of BlueDragon that are Java-based

Support for MySQL 5.0, including stored procedures

Earlier versions of MySQL are also still supported

Page 16: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 16© Copyright 1997-2007

BlueDragon 7.0 FeaturesNew CFML Language Elements

BlueDragon 7.0 FeaturesNew CFML Language Elements

CFTHREAD, CFJOIN, and related tags and functions

NULL keyword and IsNull() functions

Page 17: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 17© Copyright 1997-2007

BlueDragon 7.0 FeaturesNew CFML EnhancementsBlueDragon 7.0 Features

New CFML Enhancements

CACHEDUNTILCHANGE attribute for CFQUERYNote: supported exclusively on BlueDragon .NET when used with SQL Server 2005

BACKGROUND attribute for CFQUERY

TYPE attribute for CFCOMPONENTUse of value "abstract" creates an abstract CFC

Use of value "interface" creates a CFC interface

Multiple language support in CFSEARCH

Word and PDF document support in CFSEARCH

Page 18: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 18© Copyright 1997-2007

BlueDragon 7.0 FeaturesCFMX 6-level CFML Language

Elements

BlueDragon 7.0 FeaturesCFMX 6-level CFML Language

Elements

CFCHARTNew BlueDragon 7.0 features: CFCHARTLEGEND, CFCHARTTITLE, CFCHARTIMAGE, and more!

Page 19: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 19© Copyright 1997-2007

BlueDragon 7.0 FeaturesCFMX 7-level CFML Language

Elements

BlueDragon 7.0 FeaturesCFMX 7-level CFML Language

Elements

Application.cfcNew BlueDragon 7.0 feature: onClientStart event handler

New BlueDragon 7.0 feature: onMissingTemplate event handler

CFDOCUMENTNew BlueDragon 7.0 feature: PNG and JPEG output formats

New BlueDragon 7.0 feature: multi-threaded on all editions

Note: not supported on BlueDragon Server

CFTIMERSOAP-related functionsMiscellaneous tag attributes, functions, and function arguments

Page 20: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 20© Copyright 1997-2007

CFMX 7 Features Not in BlueDragon 7.0

CFMX 7 Features Not in BlueDragon 7.0

Event gatewaysBD 7.0 has CFTHREAD which can accomplish many of the same tasks

Flash generation (Flash Paper, Flash Forms, Flash chart format)

Reporting services (Report Builder, CFREPORT)

Page 21: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 21© Copyright 1997-2007

"Scorpio" Features vs.BlueDragon 7.0 Features

"Scorpio" Features vs.BlueDragon 7.0 Features

.NET IntegrationSupported by BlueDragon .NET natively; BlueDragon .NET provides true integration with .NET

It appears Scorpio uses Java-to-.NET bridge technology

CFIMAGEAlready supported by BlueDragon (and has been for some time)

Scorpio enhancements do more than current CFIMAGE in BlueDragon; expect similar enhancements in a soon-to-follow BlueDragon release

Page 22: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 22© Copyright 1997-2007

Multi-threaded ProgrammingMulti-threaded Programming

Multi-threaded programming is the ability to have two or more threads executing at the same time

You're already doing multi-threaded programming!

Every request runs on a separate thread

Multiple requests run simultaneously

Now you have the ability to create your own threads that run concurrently with the request threads using CFTHREAD and its associated tags and functions!

Page 23: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 23© Copyright 1997-2007

CFTHREAD SyntaxCFTHREAD Syntax

<cfthread>…[Your CFML goes here]…

</cfthread>

Page 24: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 24© Copyright 1997-2007

Single-threaded Code ExecutionSingle-threaded Code Execution

<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cfwhatever>…

Page 25: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 25© Copyright 1997-2007

Multi-threaded Code ExecutionMulti-threaded Code Execution

<cf_whatever>………<cf_whatever>

<cfthread … >……<cf_whatever>……

</cfthread>

<cf_whatever>……<cf_whatever>

Page 26: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 26© Copyright 1997-2007

Thread Details: Thread LifeThread Details: Thread Life

Thread lives for as long as it takes to execute the CFTHREAD body

CFTHREAD can outlive the request thread that created it or it can finish before the request thread is finished

Request thread can wait (as necessary) for a generated thread to finish

This is called "joining" the thread

Use the CFJOIN tag or the ThreadJoin() function

Request thread can check whether or not a thread is running

Use the ThreadIsAlive() function

Page 27: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 27© Copyright 1997-2007

Joining a ThreadJoining a Thread

<cfthread name="Variables.myThread">…

</cfthread>

<!--- join Variables.myThread ---><cfjoin thread="Variables.myThread">

<!--- join Variables.myThread ---><cfset ThreadJoin(Variables.myThread)>

Page 28: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 28© Copyright 1997-2007

Checking for a Running ThreadChecking for a Running Thread

<cfthread name="Variables.myThread">…

</cfthread>

<cfif ThreadIsAlive(Variables.myThread)> myThread is alive!<cfelse> myThread has stopped</cfif>

Page 29: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 29© Copyright 1997-2007

Thread Details: Accessing DataThread Details: Accessing Data

You can pass data to a threadUse attribute name/value pairs

You can access some variable scopes within a thread

Application scope

Server scope

Page 30: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 30© Copyright 1997-2007

Passing Data to a ThreadPassing Data to a Thread

<cfset application.dsn="myDatasource">

<cfthread firstName="John" lastName="Smith">

<cfquery datasource="#application.dsn#"> INSERT INTO Employees ( FirstName, LastName ) VALUES ( '#attributes.firstName#', '#attributes.lastName#' ) </cfquery>

</cfthread>

Page 31: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 31© Copyright 1997-2007

Accessing Shared Scopes in a Thread

Accessing Shared Scopes in a Thread

<cfapplication ... ><cfset Application.myValue = "thread">

<cfthread name="Variables.myThread"> <cfif Application.myValue EQ "thread"> <cfset Application.myValue = "request"> </cfif></cfthread>

<!--- join Variables.myThread ---><cfjoin thread="Variables.myThread">

<cfoutput> #Application.myValue#</cfoutput>

Page 32: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 32© Copyright 1997-2007

Thread Details: Returning DataThread Details: Returning Data

You can return data from a threadUse the CFRETURN tag

Use output="true" in the CFTHREAD tag then generate output within the thread

Page 33: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 33© Copyright 1997-2007

Returning Data from a ThreadReturning Data from a Thread

<cfthread name="Variables.myThread" output="true"> <h2>Running within myThread</h2> <cfreturn "Hello, World!"></cfthread>

<!--- join Variables.myThread ---><cfjoin thread="Variables.myThread">

<cfoutput> #Variables.myThread.generatedContent# #Variables.myThread.returnVariable#</cfoutput>

Page 34: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 34© Copyright 1997-2007

Returning Data from a ThreadReturning Data from a Thread

<cfset Variables.myVar = 12>

Name = "myVar"Value = 12

Requested PageVariables Scope

Threads

<cfthread name="Variables.myThr">

<cfjoin thread="Variables.myThr">

<cfoutput>#Variables.myThr.returnVariable#

</cfoutput>

<cf_whatever>

</cfthread>Name ="Variables.myThr"

<cfreturn "some string">

Name = "myThr"

Name = "returnVariable"Value = "some string"

Page 35: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 35© Copyright 1997-2007

More Thread-related Tags/Functions

More Thread-related Tags/Functions

GetAllThreads() – returns an array of thread variables representing all actively running threads created using CFTHREAD

ThreadRunningTime() – returns the amount of time in milliseconds that the thread has been running

ThreadStop() – halts execution of the specified thread

CFINTERRUPT/ThreadInterrupt() – "wakes up" a thread "sleeping" due to CFPAUSE tag

Page 36: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 36© Copyright 1997-2007

Multi-Threaded CFML DemoMulti-Threaded CFML Demo

Traditional CFML: single-threaded CFML codeSingle stock quote obtained via web service

4 stock quotes obtained via web service in series

BlueDragon 7.0 Feature: multi-threaded CFML code

4 stock quotes obtained via web service in parallel

Page 37: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 37© Copyright 1997-2007

Multi-Threaded CFML DemoMulti-Threaded CFML Demo

4 web service calls in single-threaded CFML code (in series)

4 web service calls in multi-threaded CFML code (in parallel)

KO BEAS MSFT RHAT

KO

MSFT

BEAS

RHAT

Page 38: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 38© Copyright 1997-2007

BlueDragon 7.0 DemosBlueDragon 7.0 Demos

CFTHREAD and CFJOINConcurrent processing (stock ticker demo)

Asynchronous background thread (stock ticker demo)

"Fire-and-forget" (logging demo)

CFQUERY enhancementsBACKGROUND attribute (logging demo)

CACHEDUNTILCHANGE attribute (employee demo)

"null" keyword and IsNull functionDatabase null (employee demo)

CFC null (employee demo)

Page 39: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 39© Copyright 1997-2007

BlueDragon 7.0 Demos (cont.)BlueDragon 7.0 Demos (cont.)

CFC enhancementsAbstract CFCs and CFC interfaces (light source demo)

Application.cfc enhancementsonMissingTemplate() method (demo)

CFDOCUMENT enhancementsSRC attribute (web page demos)

PNG and JPEG output formats (web page demos)

CFCHART enhancementsCFCHARTRANGEMARKER, CFCHARTTITLE (demo)

CFCHARTLEGEND, CFCHARTIMAGE (demo)

Page 40: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 40© Copyright 1997-2007

BlueDragon FutureBlueDragon Future

Expect a minor release within a few months64-bit Windows and Linux

Expect another major release by early 2008Windows Vista and IIS 7 integration

Direct AJAX integration

CFIMAGE enhancements

Administration and configuration enhancements

Features inspired by those in CFMX 8

We are investigating creation of a Visual Studio plug-in

Page 41: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 41© Copyright 1997-2007

Obtaining BlueDragonObtaining BlueDragon

Download from New Atlanta's website

Page 42: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 42© Copyright 1997-2007

Using BlueDragonUsing BlueDragon

BlueDragon ServerTrial, development/testing, and production: free and unlimited use for an unlimited time period (subject to licensing restrictions)

All other versionsTrial: free and unlimited use for 30 days

Development/testing

Localhost: free and unlimited use for an unlimited time period

External connections: valid license key required for unlimited use for an unlimited time period

Production: valid license key required for unlimited use for an unlimited time period

Page 43: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 43© Copyright 1997-2007

Licensing BlueDragonLicensing BlueDragon

Purchase license keys from New Atlanta's online store

See the TrueBlue Partner Program Overview on New Atlanta's website

Opportunities for integrated service providers

Create a custom installer for your app!

Opportunities for systems integrators

Opportunities for hosting companies

Page 44: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 44© Copyright 1997-2007

Q&AQ&A

Got questions? Ask away!

Page 45: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 45© Copyright 1997-2007

Software GiveawaySoftware Giveaway

Let's give away some software (if doing so is supported by attendance numbers)!

One winner will receive a NFR license for BlueDragon Server JX 7.0

Page 46: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 46© Copyright 1997-2007

AfterpartyAfterparty

Brought to you this month by New Atlanta!

Page 47: BlueDragon 7.0 New Possibilities for CFML Applications Josh Adams

New Atlanta Confidential. | 47© Copyright 1997-2007

Further InformationFurther Information

See New Atlanta's websitehttp://www.newatlanta.com

Contact [email protected]

(678) 256-5395