SlideShare uma empresa Scribd logo
1 de 28
Using Rails to Create an Enterprise App: A Real-Life Case Study By David Keener http://www.keenertech.com AOL proprietary information used with permission.
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],Ruby on Rails is clearly an exciting and ground-breaking technology. But how good is it at solving the types of problems that corporate developers need to solve?   My team put Rails to the test in a real-world internal application for AOL that’s used by hundreds of employees. This case study, the  Exception Request Tool , is a non-trivial application that features:
What We Wanted to Know ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],The underlying question affecting the adoption of Rails for corporate development is: “How good is it at producing web sites that aren’t blogs?”
Rails Adoption Rails is in a unique place, just to the left of the “Chasm”. Its capacity for successful delivery of real business applications will probably be a key factor in crossing the chasm between early adopters and widespread adoption.  From:  Diffusion of Innovations , by E. M. Rogers, 1995
The Case Study Application ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],The Exception Request Tool (ERT) allows AOL employees to request production installs for time periods when such installs are not normally allowed. Key features included:
Database Objects ,[object Object],[object Object],[object Object],[object Object],[object Object],Exception Type Request Unit Install Item Approver
Exception Request Tool Screenshot used with AOL permission.
Process Change ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],The first, and perhaps most striking, change due to Rails, was its impact on the development process.
Environments ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Applications need a place to run, where they will be properly supported. Environment set-up was  not  a trivial exercise.
Database Support ,[object Object],[object Object],[object Object],[object Object],[object Object]
Migrations ,[object Object],[object Object],[object Object],[object Object],[object Object],class CreateRiskLookup < ActiveRecord::Migration def self.up create_table :btr_risk_lookup do |t| # t.column :name, :string t.column :risk_name, :string, :null=>false, :limit => 50 t.column :risk_desc, :string, :null=>true, :limit => 100 end end def self.down drop_table :btr_risk_lookup end end
Cross-Database Migration Issues ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conditional Logic in Migrations ,[object Object],[object Object],[object Object],[object Object],def self.down adapter = User.connection.instance_variable_get(&quot;@config&quot;)[:adapter] puts(&quot;Database Adapter Detected: &quot; + adapter) if adapter == &quot;mysql“ drop_table :btr_users end end
Killer Legacy Database ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Our legacy database put Rails to the test. Our legacy database possessed the following features:
Legacy Database Cheat Sheet ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dual Query Tactic ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JavaScript & Validations ,[object Object],[object Object],[object Object],[object Object],[object Object]
Date Manipulation ,[object Object],[object Object],[object Object],[object Object],[object Object]
Popup Calendar Component Popup Calendar - Date selection - Time selection
Email in Rails ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sample Email Real-Life Email - Mimics web page - Dual format
Spaminator Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sending Email ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testing ,[object Object],[object Object],[object Object],[object Object],[object Object]
Overall Rails “Report Card” – 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overall Rails “Report Card” - 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],* Note: See JRuby as an alternative environment for Rails applications.
The “Green Field” Perception One of the biggest problems facing Rails adoption is the growing “green field” perception, i.e. – that Rails is only good for brand-new applications…. An Excerpt from a Real-Life Conversation : David Keener: I’d like to promote Rails as a tool to get  more done with fewer people. Executive: Well, it was my understanding that Rails was only good for “green field”  applications.
Summary ,[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Ten Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems RevealedTen Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems RevealedRoel Hartman
 
Abstract #236765 advanced essbase java api tips and tricks
Abstract #236765 advanced essbase java api tips and tricksAbstract #236765 advanced essbase java api tips and tricks
Abstract #236765 advanced essbase java api tips and trickstimtow
 
Oracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data EditionOracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data EditionJeff Smith
 
SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016Alex Theedom
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeJeff Smith
 
Spring Data JPA + JSF + Maven + Mysql using Eclipse IDE
Spring Data JPA + JSF + Maven + Mysql using Eclipse IDESpring Data JPA + JSF + Maven + Mysql using Eclipse IDE
Spring Data JPA + JSF + Maven + Mysql using Eclipse IDENikhil Bhalwankar
 
Parsing strange v4
Parsing strange v4Parsing strange v4
Parsing strange v4Hal Stern
 
Oracle SQL Developer Reports
Oracle SQL Developer ReportsOracle SQL Developer Reports
Oracle SQL Developer ReportsJeff Smith
 
SQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle DatabaseSQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle DatabaseJeff Smith
 
Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!Jeff Smith
 
Understanding and preventing sql injection attacks
Understanding and preventing sql injection attacksUnderstanding and preventing sql injection attacks
Understanding and preventing sql injection attacksKevin Kline
 
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSDoug Gault
 
Oracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewOracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewJeff Smith
 
Browser Developer Tools for APEX Developers
Browser Developer Tools for APEX DevelopersBrowser Developer Tools for APEX Developers
Browser Developer Tools for APEX DevelopersChristian Rokitta
 
Parsing strange v4
Parsing strange v4Parsing strange v4
Parsing strange v4Hal Stern
 
Satyapriya rajguru: Every day, in one way or another.
Satyapriya  rajguru:  Every day, in one way or another.Satyapriya  rajguru:  Every day, in one way or another.
Satyapriya rajguru: Every day, in one way or another.Satyapriya Rajguru
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questionsAkhil Mittal
 

Mais procurados (20)

Ten Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems RevealedTen Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems Revealed
 
Abstract #236765 advanced essbase java api tips and tricks
Abstract #236765 advanced essbase java api tips and tricksAbstract #236765 advanced essbase java api tips and tricks
Abstract #236765 advanced essbase java api tips and tricks
 
Oracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data EditionOracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data Edition
 
Oracle SQLcl
Oracle SQLcl Oracle SQLcl
Oracle SQLcl
 
Plugins unplugged
Plugins unpluggedPlugins unplugged
Plugins unplugged
 
SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should Be
 
Spring Data JPA + JSF + Maven + Mysql using Eclipse IDE
Spring Data JPA + JSF + Maven + Mysql using Eclipse IDESpring Data JPA + JSF + Maven + Mysql using Eclipse IDE
Spring Data JPA + JSF + Maven + Mysql using Eclipse IDE
 
Parsing strange v4
Parsing strange v4Parsing strange v4
Parsing strange v4
 
Oracle SQL Developer Reports
Oracle SQL Developer ReportsOracle SQL Developer Reports
Oracle SQL Developer Reports
 
SQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle DatabaseSQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle Database
 
Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!
 
Understanding and preventing sql injection attacks
Understanding and preventing sql injection attacksUnderstanding and preventing sql injection attacks
Understanding and preventing sql injection attacks
 
High Performance PL/SQL
High Performance PL/SQLHigh Performance PL/SQL
High Performance PL/SQL
 
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDS
 
Oracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewOracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features Overview
 
Browser Developer Tools for APEX Developers
Browser Developer Tools for APEX DevelopersBrowser Developer Tools for APEX Developers
Browser Developer Tools for APEX Developers
 
Parsing strange v4
Parsing strange v4Parsing strange v4
Parsing strange v4
 
Satyapriya rajguru: Every day, in one way or another.
Satyapriya  rajguru:  Every day, in one way or another.Satyapriya  rajguru:  Every day, in one way or another.
Satyapriya rajguru: Every day, in one way or another.
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questions
 

Destaque

Университеты Англии
Университеты АнглииУниверситеты Англии
Университеты АнглииKlukva
 
Entrepreneurship as a Career Choice
Entrepreneurship as a Career ChoiceEntrepreneurship as a Career Choice
Entrepreneurship as a Career ChoiceDimitris Tsingos
 
Pharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ Mindset
Pharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ MindsetPharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ Mindset
Pharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ MindsetAnup Soans
 
HSA Drama Symbolic Capital
HSA Drama Symbolic CapitalHSA Drama Symbolic Capital
HSA Drama Symbolic CapitalDimitris Tsingos
 
Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...
Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...
Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...KESYPSERRON
 
Being john malkovich no vi
Being john malkovich no viBeing john malkovich no vi
Being john malkovich no viKa Hui
 
Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...
Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...
Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...KESYPSERRON
 
"Strategy, tactics and staying interested."
"Strategy, tactics and staying interested.""Strategy, tactics and staying interested."
"Strategy, tactics and staying interested."habit47
 
Sept10 slides
Sept10 slidesSept10 slides
Sept10 slideshollsterm
 
профессиональные компетенции ппс
профессиональные компетенции ппспрофессиональные компетенции ппс
профессиональные компетенции ппсfarcrys
 
Web 2.0 - Social Media Emergency Management
Web 2.0 - Social Media Emergency ManagementWeb 2.0 - Social Media Emergency Management
Web 2.0 - Social Media Emergency ManagementPaolo Cavaliere, MSc
 
Lecture 1: Presentation and staging msk tumour
Lecture 1: Presentation and staging msk tumourLecture 1: Presentation and staging msk tumour
Lecture 1: Presentation and staging msk tumourUniversiti Sains Malaysia
 
Inaguration of Mission Year in the Diocese of Sagar
Inaguration of Mission Year in the Diocese of SagarInaguration of Mission Year in the Diocese of Sagar
Inaguration of Mission Year in the Diocese of Sagarpatergiri
 
A tribute to Bishop Clemens Thottungal
A tribute to Bishop Clemens ThottungalA tribute to Bishop Clemens Thottungal
A tribute to Bishop Clemens Thottungalpatergiri
 
SheSpeaks 2009 Social Media Study
SheSpeaks 2009 Social Media StudySheSpeaks 2009 Social Media Study
SheSpeaks 2009 Social Media StudySheSpeaks Inc.
 

Destaque (20)

Университеты Англии
Университеты АнглииУниверситеты Англии
Университеты Англии
 
Entrepreneurship as a Career Choice
Entrepreneurship as a Career ChoiceEntrepreneurship as a Career Choice
Entrepreneurship as a Career Choice
 
Pharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ Mindset
Pharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ MindsetPharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ Mindset
Pharma: Sky’s the Limit if You Have an ‘Entrepreneurial’ Mindset
 
HSA Drama Symbolic Capital
HSA Drama Symbolic CapitalHSA Drama Symbolic Capital
HSA Drama Symbolic Capital
 
Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...
Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...
Συμμετοχή του ΤΕΕ Ειδικής Αγωγής Α΄ Βαθμίδας -(Ειδικό ΕΠΑΛ Σερρών) στον Διαγω...
 
How to apply for part time jobs
How to apply for part time jobsHow to apply for part time jobs
How to apply for part time jobs
 
Being john malkovich no vi
Being john malkovich no viBeing john malkovich no vi
Being john malkovich no vi
 
Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...
Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...
Συμμετοχή του 2ου ΕΠΑΛ Σερρών στον περσινό Διαγωνισμό Επιχειρηματικότητας με ...
 
"Strategy, tactics and staying interested."
"Strategy, tactics and staying interested.""Strategy, tactics and staying interested."
"Strategy, tactics and staying interested."
 
Sept10 slides
Sept10 slidesSept10 slides
Sept10 slides
 
Elvis 1984
Elvis 1984Elvis 1984
Elvis 1984
 
профессиональные компетенции ппс
профессиональные компетенции ппспрофессиональные компетенции ппс
профессиональные компетенции ппс
 
Web 2.0 - Social Media Emergency Management
Web 2.0 - Social Media Emergency ManagementWeb 2.0 - Social Media Emergency Management
Web 2.0 - Social Media Emergency Management
 
One 2 One Rollover
One 2 One RolloverOne 2 One Rollover
One 2 One Rollover
 
Lecture 1: Presentation and staging msk tumour
Lecture 1: Presentation and staging msk tumourLecture 1: Presentation and staging msk tumour
Lecture 1: Presentation and staging msk tumour
 
Inaguration of Mission Year in the Diocese of Sagar
Inaguration of Mission Year in the Diocese of SagarInaguration of Mission Year in the Diocese of Sagar
Inaguration of Mission Year in the Diocese of Sagar
 
A tribute to Bishop Clemens Thottungal
A tribute to Bishop Clemens ThottungalA tribute to Bishop Clemens Thottungal
A tribute to Bishop Clemens Thottungal
 
Yes for eban w.u
Yes for eban w.uYes for eban w.u
Yes for eban w.u
 
SheSpeaks 2009 Social Media Study
SheSpeaks 2009 Social Media StudySheSpeaks 2009 Social Media Study
SheSpeaks 2009 Social Media Study
 
CHOReOS Exploitation
CHOReOS ExploitationCHOReOS Exploitation
CHOReOS Exploitation
 

Semelhante a Using Rails to Create an Enterprise App: A Real-Life Case Study

Practical catalyst
Practical catalystPractical catalyst
Practical catalystdwm042
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyRobert Dempsey
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity FrameworksRich Helton
 
Data Mining for Developers
Data Mining for DevelopersData Mining for Developers
Data Mining for Developersllangit
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simplellangit
 
What's New for Data?
What's New for Data?What's New for Data?
What's New for Data?ukdpe
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
Data Handning with Sqlite for Android
Data Handning with Sqlite for AndroidData Handning with Sqlite for Android
Data Handning with Sqlite for AndroidJakir Hossain
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersoazabir
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsMike Subelsky
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Servicesukdpe
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudMicrosoft ArcReady
 
One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"testflyjets
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Miningllangit
 

Semelhante a Using Rails to Create an Enterprise App: A Real-Life Case Study (20)

Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with Ruby
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity Frameworks
 
Data Mining for Developers
Data Mining for DevelopersData Mining for Developers
Data Mining for Developers
 
PPT
PPTPPT
PPT
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simple
 
CV Chandrajit Samanta
CV Chandrajit SamantaCV Chandrajit Samanta
CV Chandrajit Samanta
 
What's New for Data?
What's New for Data?What's New for Data?
What's New for Data?
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
PHP FUNCTIONS
PHP FUNCTIONSPHP FUNCTIONS
PHP FUNCTIONS
 
Data Handning with Sqlite for Android
Data Handning with Sqlite for AndroidData Handning with Sqlite for Android
Data Handning with Sqlite for Android
 
Web Security
Web SecurityWeb Security
Web Security
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
 
Practical OData
Practical ODataPractical OData
Practical OData
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"One does not simply "Upgrade to Rails 3"
One does not simply "Upgrade to Rails 3"
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
 

Mais de David Keener

Writing Killer Fight Scenes
Writing Killer Fight ScenesWriting Killer Fight Scenes
Writing Killer Fight ScenesDavid Keener
 
Build a Space Battle
Build a Space BattleBuild a Space Battle
Build a Space BattleDavid Keener
 
Creating an Adaptive Setting
Creating an Adaptive SettingCreating an Adaptive Setting
Creating an Adaptive SettingDavid Keener
 
Public Speaking for Writers
Public Speaking for WritersPublic Speaking for Writers
Public Speaking for WritersDavid Keener
 
21st Century Writer
21st Century Writer21st Century Writer
21st Century WriterDavid Keener
 
Titanic: The Forgotten Passengers
Titanic: The Forgotten PassengersTitanic: The Forgotten Passengers
Titanic: The Forgotten PassengersDavid Keener
 
Rails Tips and Best Practices
Rails Tips and Best PracticesRails Tips and Best Practices
Rails Tips and Best PracticesDavid Keener
 
Elevator Up, Please!
Elevator Up, Please!Elevator Up, Please!
Elevator Up, Please!David Keener
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineDavid Keener
 
Killer Business Models
Killer Business ModelsKiller Business Models
Killer Business ModelsDavid Keener
 
Building Facebook Apps
Building Facebook AppsBuilding Facebook Apps
Building Facebook AppsDavid Keener
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsDavid Keener
 
Quick Start: ActiveScaffold
Quick Start: ActiveScaffoldQuick Start: ActiveScaffold
Quick Start: ActiveScaffoldDavid Keener
 
Creating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector GraphicsCreating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector GraphicsDavid Keener
 
A Tour of Ruby On Rails
A Tour of Ruby On RailsA Tour of Ruby On Rails
A Tour of Ruby On RailsDavid Keener
 
Implementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking SiteImplementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking SiteDavid Keener
 
Creating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChartCreating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChartDavid Keener
 
Quick Start: Rails
Quick Start: RailsQuick Start: Rails
Quick Start: RailsDavid Keener
 

Mais de David Keener (20)

Writing Killer Fight Scenes
Writing Killer Fight ScenesWriting Killer Fight Scenes
Writing Killer Fight Scenes
 
Build a Space Battle
Build a Space BattleBuild a Space Battle
Build a Space Battle
 
Creating an Adaptive Setting
Creating an Adaptive SettingCreating an Adaptive Setting
Creating an Adaptive Setting
 
Public Speaking for Writers
Public Speaking for WritersPublic Speaking for Writers
Public Speaking for Writers
 
21st Century Writer
21st Century Writer21st Century Writer
21st Century Writer
 
Titanic: The Forgotten Passengers
Titanic: The Forgotten PassengersTitanic: The Forgotten Passengers
Titanic: The Forgotten Passengers
 
Rails Tips and Best Practices
Rails Tips and Best PracticesRails Tips and Best Practices
Rails Tips and Best Practices
 
Elevator Up, Please!
Elevator Up, Please!Elevator Up, Please!
Elevator Up, Please!
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search Engine
 
Killer Business Models
Killer Business ModelsKiller Business Models
Killer Business Models
 
Rails Security
Rails SecurityRails Security
Rails Security
 
Building Facebook Apps
Building Facebook AppsBuilding Facebook Apps
Building Facebook Apps
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook Apps
 
Quick Start: ActiveScaffold
Quick Start: ActiveScaffoldQuick Start: ActiveScaffold
Quick Start: ActiveScaffold
 
Creating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector GraphicsCreating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector Graphics
 
A Tour of Ruby On Rails
A Tour of Ruby On RailsA Tour of Ruby On Rails
A Tour of Ruby On Rails
 
Practical JRuby
Practical JRubyPractical JRuby
Practical JRuby
 
Implementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking SiteImplementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking Site
 
Creating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChartCreating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChart
 
Quick Start: Rails
Quick Start: RailsQuick Start: Rails
Quick Start: Rails
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Using Rails to Create an Enterprise App: A Real-Life Case Study

  • 1. Using Rails to Create an Enterprise App: A Real-Life Case Study By David Keener http://www.keenertech.com AOL proprietary information used with permission.
  • 2.
  • 3.
  • 4. Rails Adoption Rails is in a unique place, just to the left of the “Chasm”. Its capacity for successful delivery of real business applications will probably be a key factor in crossing the chasm between early adopters and widespread adoption. From: Diffusion of Innovations , by E. M. Rogers, 1995
  • 5.
  • 6.
  • 7. Exception Request Tool Screenshot used with AOL permission.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Popup Calendar Component Popup Calendar - Date selection - Time selection
  • 20.
  • 21. Sample Email Real-Life Email - Mimics web page - Dual format
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. The “Green Field” Perception One of the biggest problems facing Rails adoption is the growing “green field” perception, i.e. – that Rails is only good for brand-new applications…. An Excerpt from a Real-Life Conversation : David Keener: I’d like to promote Rails as a tool to get more done with fewer people. Executive: Well, it was my understanding that Rails was only good for “green field” applications.
  • 28.