Analisis estructural 2 by manuel angel y teodoro lopez(padrino)
Introduction to Padrino
-
Upload
victor-stan -
Category
Documents
-
view
358 -
download
3
description
Transcript of Introduction to Padrino
What is Padrino?
A Framework built on top of Sinatra
...a 'micro-framework'
● good for small web application● small footprint● easy to learn and use
What is Padrino?
● A quote from the Padrino mailing list:○ The Padrino framework appreciates and believes in the
philosophy of Sinatra [in] keeping things simple, elegant, and 'closer to the metal' while still allowing you to express yourself in a ruby-esque manner. However at times it's nice to have some more additional functionalit[y] (like helpers, mailers, even caching) that Rails does [have]; and it's nice to have those features without leveraging their full opinionated stack.
■ Arthur Chiu
How is it different than Sinatra?
Adds generators for building projects:● Can be 'tiny'
○ padrino g project my_project --tiny ● Can be 'Rails like'
○ padrino g project my_big_project -d activerecord -s prototype -e erb -a sqlite -t rspec -m mocha
padrino g project my_project --tiny
padrino g project my_big_project -d activerecord -s prototype -e erb -a sqlite -t rspec -m mocha
How is it different than Sinatra?
Helpers and functionality familiar to Rails developers:● Tag helpers (tag, content_tag, input_tag, form_tag, link_to, image_tag)● Mailer functionality (similar to ActiveMailer)● Admin Interface (inspired by Django)● Reloading (automatically reloads server, previously you had to use
something like 'shotgun' to have this behaviour with Sinatra -- never a problem with Rails)
● Localization support● [complete list: http://www.padrinorb.com/]
How is it different than Rails?
Has a flexible project generator:● padrino g project test_app -d datamapper -b● padrino g project test_app -d mongoid -t rspec -e haml -m rr -s
jquery -b● padrino g project test_app --test none --renderer none● Plugin Generator
○ ...● [more details: http://www.padrinorb.com/guides/generators]
How is it different than Rails?
Mounting sub-applications:● Extend application functionality by building 'apps'
○ Build apps within an app■ Padrino.mount("blog").to("/blog")■ Padrino.mount("website").to("/website")■ Padrino.mount("app").to("/")
Advanced mounting:● Padrino.mount("Blog").to("/").host("blog.example.org")● Padrino.mount("Admin").host("admin.example.org")● Padrino.mount("WebSite").host(/.*\.?example.org/)● Padrino.mount("Foo").to("/foo").host("bar.example.org"
[more details: http://www.padrinorb.com/guides/mounting-applications]
padrino g app my_sub_app
How is it different than Rails?
Has automatic administration interface generator -- inspired by Django:
● padrino g admin ○ generate admin application to be mounted inside main
application● padrino rake ar:migrate
○ for admin tables● padrino rake seed
○ create first admin account wizard● padrino generate admin_page model_name
○ adding a page to manage a new model● [more details: http://www.padrinorb.com/guides/basic-projects#generating-the-admin-section]
padrino g admin
1) Run 'padrino rake ar:migrate'2) Run 'padrino rake seed'3) Visit the admin panel in the browser at '/admin'
Administration login page
User editing form
Why would someone choose to develop with Padrino VS Rails?From beginner...
● Sinatra is much easier to learn conceptually and in practice.
Why would someone choose to develop with Padrino VS Rails?... to advanced.
● Once applications reach a certain size [...], Sinatra begins to break down without some imposed structure, feature extensions and a framework to bring things together.
○ Nathan Esquenazi
Why would someone choose to develop with Padrino VS Rails?Other reasons why you might want to take a look at Padrino:
● Benchmarks performance of Padrino vs Rails (memory footprint, speed)● The ability to easily 'scale' up a Sinatra based app with more features
and functionalities with Padrino modules & embedded apps (app within an app)
● In Rails, Sinatra is already used sometimes as a platform for building 'plugins' and extending Rails functionality
● Agnostic generators that generate a variety of components for your project (orm's, js, renderers, tests, etc...)
● Admin interface application that can be generated into your existing padrino application ("... not just the scaffold, but the whole house" -- to paraphrase Django)
Why would someone choose to develop with Padrino VS Rails?Selling Padrino:
● My motivation? I like to touch all pieces of my stack on my own, so I use a framework where I can easily look 'under the hood'.
○ Florian Gilcher
@victorbstan
With help from the Padrino community&
Special thanks to the Toronto Ruby Brigade