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.json.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|xml|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