Merb
Encyclopedia
Merb, short for "Mongrel+Erb", is a model–view–controller web framework written in Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

. Merb adopts an approach that focuses on essential core functionality, leaving most functionality to plugins. Merb was merged into Rails web framework
Ruby on Rails
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

 on December 23, 2008 as part of the Ruby on Rails 3.0 release
Ruby on Rails
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

.

Relation to Ruby On Rails

Merb 1.0 was released on November 7, 2008 at RubyConf. and is currently at version 1.1.

The Merb project was started as a "clean-room" implementation of the Ruby on Rails
Ruby on Rails
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

 controller stack
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

, but has grown to incorporate a number of ideas which deviated from Rails's spirit and methodology, most notably, component modularity
Modular programming
Modular programming is a software design technique that increases the extent to which software is composed of separate, interchangeable components called modules by breaking down program functions into modules, each of which accomplishes one function and contains everything necessary to accomplish...

, extensible API design, and vertical scalability. Most of these capabilities have since been incorporated back into Rails during the Rails/Merb merger announced on December 23, 2008.

Like Rails, Merb can also be used to write sophisticated applications and RESTful
Representational State Transfer
Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation...

 Web services. It has been suggested that Merb is more flexible and faster than Rails.

Differences with Ruby On Rails

Most of the key features and purported benefits of Merb have been integrated into Ruby on Rails during the course of development of Rails3. There will be no version 2 of Merb, with Rails 3 serving as the successor to both Rails 2 and Merb. However, historically, Merb's design was built with the intent of addressing a number of key criticisms of Ruby on Rails. This led Merb's developers to stress two key design principles, modularity, and an extensible API.

Modularity

Merb proper encompasses only the controller layer in the Model, View, Controller architecture, however Merb serves as the integration point for a larger suite of technologies which operate in concert as an entire web application framework. The primary points of integration with Merb are the web server interface, the MVC model layer, the MVC view layer, and finally controller extensions and addons. Merb's default application stack incorporates Datamapper
Datamapper
Datamapper is an object-relational mapper library written in Ruby and commonly used with Merb. It was developed to address perceived shortcomings in Ruby on Rails' ActiveRecord library.Some features of Datamapper:...

 at the Model layer, ERB
ERuby
eRuby is a templating system that embeds Ruby into a text document. It is often used to embed Ruby code in an HTML document, similar to ASP, JSP and PHP.-Usage:eRuby allows Ruby code to be embedded within a pair of delimiters...

 at the view layer, and Rack
Rack (web server interface)
Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between into a single method call.Rack is...

 and Mongrel at the web server layer.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK