280 likes | 446 Views
Web App Frameworks. aka The Luke and Josh Variety Hour. servlets are terrible. Way too many System.out.println ’s Tightly coupled Umm... sessions The ultimate DIY. web frameworks are cool. Fewer System.out.println ’s Hide the gross stuff (sessions...) Lots of free stuff
E N D
Web App Frameworks aka The Luke and Josh Variety Hour
servlets are terrible • Way too many System.out.println’s • Tightly coupled • Umm... sessions • The ultimate DIY
web frameworks are cool • Fewer System.out.println’s • Hide the gross stuff (sessions...) • Lots of free stuff • Steep learning curve :(
the basics • Model (the stuff) • View (the pretty face) • Controller (the middleman)
model (the stuff) • Persistent data • Trucks, POs, etc.
controller (the middleman) • Pull data / I can has trucks? • Push data / save the truck’s state
view (the pretty face) • Show the trucks • Edit the trucks
Seam It’s pretty cool I guess
seam model • Model = Java object + annotations • Truck.java
seam controller • Controller = Java object + annotations • YardController.java
seam view • View = XHTML • trucks.xhtml
Ruby on Rails Why it is Always the Right Answer
rails • “Web development that doesn’t hurt.” • Based very strongly on the Ruby scripting language • Heavily Object-Oriented • Dynamic type • Basically, it’s scripting for the web. • Well-developed programming paradigm • Huge community support and documentation
paradigm • RESTful design • REpresentativeState Transfer • Designs data control into the four natural states of HTTP communication • Not specific to Rails, just the adopted paradigm • States: The CRUD Model UD • CRUD • POST • Create • GET • Read • PUT • Update/Create • DELETE • Delete • HTTP • CRUD • POST • Create • GET • Read • PUT • Update/Create • DELETE • Delete • HTTP • CRUD • POST • Create • GET • Read • PUT • Update/Create • DELETE • Delete
paradigm • Reasons for RESTful design • Clean, meaningful organization • Organized by action • Concise way of sending data • Improves consistency and data integrity • Simplified interface design • Three components • View data • Create new entry • Edit existing entry
design • How It Looks: an MVC example • The Model, Part I
design • The Model, Part II
design • The Views
design • The Views: Partials
design • The Views: New
design • The Controller: Part 1
design • The Controller: Part 2
why rails is better • Single-Source Solution… mostly • Install Ruby and RoR and you’re ready to start. • The total MVC solution is wrapped up in Rails, no need for: • JBoss framework • Seam • Hibernate • JSF • Richfaces • This includes JavaScript/AJAX functionality. All Ruby code which is rendered to HTML/Javascript later.
why rails is better • Integration across platform much smoother, all Ruby/Rails code, no need for other layers. • Because of this, it’s faster. • More control over finer details of: • Server environment • Development or Production • Database setup – lots of options • Optimization – lots of opportunities for this • Large number of plugins • Can get a bit over-the-top if not careful.
downfalls • Still gaining adoption on a large scale • Very strict definitions (namely database naming conventions) • A bad thing? • Optimization is not automatic, programmer needs to do a lot to optimize • Takes smart programming to gain in efficiency • A bad thing? • Not as many sweet built-in GUI features
Last Word Use Ruby on Rails... it’s amazing
references • http://www.seamframework.org/Documentation/GettingStarted • http://livedemo.exadel.com/richfaces-demo/richfaces/message.jsf?s=glassX • http://www.infoq.com/articles/jboss-seam • http://rubyonrails.org/ - Ruby on Rails site • http://www.railsbrain.com/ - Rails documentation • http://railscasts.com/ - Rails Tutorials via Screencast • http://railsforum.com/- Rails help / discussion forum