WWW.DATA-BOSS.COM

Wednesday, July 3, 13 WHO AM I?

• Luis Majano - Computer Engineer

• Born in El Salvador ------>

• Architecture + Software Design

• CEO of Ortus Solutions

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

• Adobe Community Professional

• Creator of all things Box: ColdBox, ContentBox, WireBox....

Wednesday, July 3, 13 AGENDA

• Purpose of DataBoss • Goals • 20,000ft overview • Installation • Major Features • Demos

Wednesday, July 3, 13 Purpose

ORM Desert Wednesday, July 3, 13 Purpose

• Do my properties work? • Are my relationships ok? • How will I deal with validation? • Will my database be created correctly? • If I could only test it? • Maybe do a quick template and try it? • I already have a database, how do I manage this?

Wednesday, July 3, 13 ? Goals

• Test ORM Properties and Relationships • Manage ORM data • Validate ORM Data • Verify DB Generation • Accelerate ORM Dev

• Accelerate data management • RESTFul services • Security • i18n • Reverse Engineer Databases

Wednesday, July 3, 13 Wednesday, July 3, 13 DataBoss Feature Set

• Commercial Ortus Product • Manages ORM Objects • Automatic ORM entity detection and analysis • one-to-one, many-to-one, one-to-many, many-to-many • Multi-level inheritance • RESTFul export as JSON, JSONP, XML, WDDX and PDF • Localized = English, Spanish, French, Italian, German and Portuguese • Customizable validation • HTML 5 Controls • Null Support • Responsive Design • Reload ORM/Metadata and Application

Wednesday, July 3, 13 Distribution Contents

Documentation!

ColdBox Modules

Sample Apps

Standalone

License + Build ID

Wednesday, July 3, 13 Installation Flavors

Standalone Application Entities

ColdBox Module

Standalone Entities Application From Existing App

Wednesday, July 3, 13 Practical Example

Standalone Application Entities

Wednesday, July 3, 13 Reverse Engineer

• Adobe ColdFusion Builder • RDS • Adobe CFC Generator Extension • DataBoss

Wednesday, July 3, 13 Practical Example

Place your entities here

DataBoss Configuration

DataBoss Error Logs

Wednesday, July 3, 13 databoss..cfm

{ "pagingMaxRows" : 20, "pagingBandGap" : 5, "loadJquery" : true, "supportedLanguages" : ["en_US", "es_CO", "de_DE", "fr_FR", "pt_BR", "it_IT"], "defaultLocale" : "en_US", "debugMode" : false, "showLanguageOptions" : true, "showGlobalActions" : true, "showLogo" : true, "showAbout" : true, "listingMaxChars" : 100, "jsonpcallback" : "", "basicAuthentication" : { "enabled" : false, "username" : "admin", "password" : "databoss" }, "logging" : { "enabled" : true, "levelMin" : "fatal", "levelMax" : "info" } }

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 Validation

• this.constraints => Validation Rules • Constraints: • Required • Types: dates, JSON, query, structs, binary, creditcard, ssn, etc • Ranges • Regex • SameAs • Unique • min, max • Closures • Custom Validators • etc.

Wednesday, July 3, 13 DataBoss Actions

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 DataBoss Annotations

• Annotations or Metadata • Display Names • UI • HTML Controls • Formatting • ORM Relationship Information • Much more...

Wednesday, July 3, 13 Entity Annotations

• displayName : The display name to use on all UI elements. By default it uses the name of the entity. • db_sortyBy : The sorting string. This can be a single property or an entire sorting string. This annotation is also used to sort and display MANY-TO-MANY collections

component displayName=”Blog Entries” db_sortBy=”title, postedDate desc”{}

Wednesday, July 3, 13 Field Order

• Order of the properties in code, order of display on form

component persistent="true" table="user" displayName="User" db_sortBy="lastName"{

// Properties property name="userID" fieldtype="id" generator="native" setter="false"; property name="firstName" length="100" notnull="true" db_labelText="First Name"; property name="lastName" length="100" notnull="true" db_labelText="Last Name"; property name="email" notnull="true" db_html="email" db_labelText="Email Address"; property name="username" notnull="true" unique="true" db_labelText="Username" db_display="false"; property name="password" db_labelText="Password" db_html="password" db_display="false"; property name="isActive" ormtype="boolean" default="false" dbdefault="0" db_labelText="Active"; property name="description" ormtype="text" db_labelText="Description" db_html="richtext";

// M20 -> Role property name="role" notnull="true" fieldtype="many-to-one" cfc="Role" fkcolumn="FK_roleID" lazy="true" db_labelText="Role" db_displayColumns="Role";

... }

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 HTML Controls

• Property annotations: db_html • text • email • password • date • time • URL • textarea • richtext • radio • select

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 Relationships

• db_displayColumns : Used by many-to-one relationship dropdowns, can be a list.

property name="entry" fieldtype="many-to-one" cfc="Entry" fkcolumn="FKentry_id" db_DisplayColumns="title";

Wednesday, July 3, 13 Relationships

• db_sortBy : Used to sort listings and also for many-to-many relationships

component persistent="true" table="categories" db_sortBy="category" displayname="Categories" { }

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 Formatting Annotations

• db_display : Displays property in listing or not • db_placeholder : HTML placeholder • db_validate : HTML5 validation • db_helpText : Help text string • db_labelText : HTML label string • db_maxLength : Max length of the HTML input • default : Default values

Wednesday, July 3, 13 Date/Time Annotations

• db_dateFormat : Valid formatting mask • db_showDate : Shows the date portions of date/time fields • db_timeFormat : Valid formatting mask • db_showTime : Shows the time portions of date/time fields • db_timeSeconds : Displays seconds in the time pickers • db_timeMeridian : Displays AM/PM chooser or 24 hour picker

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 Non-Editable Properties

• id : Auto-generated primary keys • version : Version auto properties • formula : Formula generated properties • update=false : Property tagged as non updatable • insert=false : Property tagged as non insertable

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 RESTFul Exports

• Export all data or single entity with relationships • Formats: JSON, JSONP, XML, WDDX, and PDF • All Records Route:

// With Format in URL /databoss/entity/:entity/export/:format?page=X

// With Format as Extension (if enabled) /databoss/entity/:entity.(json|jsonp||wddx|pdf)?page=X

• Single Record Route:

// With Format in URL /databoss/entity/:entity/id/:id/format/:format?page=X

// With Format as Extension (if enabled) /databoss/entity/:entity/id/:id.(json|jsonp|wddx|xml|pdf)?page=X

Wednesday, July 3, 13 Demo Time

Wednesday, July 3, 13 Pricing & Versions

Standalone Multi-Project $149 $499 30% 30% OFF OFF

• Manage Unlimited Entities • Manage Unlimited Entities • 1 Application per CFML Instance • Unlimited Application per CFML Instance • Multi-Lingual Support • Multi-Lingual Support • Ability to remove or customize logo • Ability to remove or customize about

Send your order # to [email protected]

Wednesday, July 3, 13 Information

www.data-boss.com www.ortussolutions.com/products/databoss

• Documentation • Google Support Group • Social & Media • Twitter: @ortussolutions • Facebook: facebook.com/ortussolutions & facebook.com/ortusdataboss • Google+: plus.google.com/111955259125769846419 • Videos: vimeo.com/channels/databoss • Trial Version Available!

Wednesday, July 3, 13 Q & A

Thanks!

Wednesday, July 3, 13