Un microframework es un término utilizado para referirse a marcos de aplicaciones web minimalistas, y se contrasta con los marcos completos.

A diferencia de un marco de aplicación completo, un microframework carece de la mayor parte de la funcionalidad de abstracción de amplio espectro, enfocándose exclusivamente en el manejo de solicitudes HTTP. Funcionalidades (generalmente) no incorporadas en un microframework:

  • Sistema de usuarios: Cuentas, autenticación, autorización, roles.
  • Abstracción del modelo, como por ejemplo el manejo de base de datos a través de un sistema de mapeo relacional de objetos u ORM.
  • Funciones utilitarias para validación y saneamiento de datos.
  • Abstracción de la vista mediante un motor de plantilla web.

Por lo general, un microframework facilita el intercambio de solicitudes HTTP: recibe la solicitud, enruta al controlador designado y devuelve una respuesta. Los microframeworks se utilizan a menudo para construir APIs para otros servicios o aplicaciones.[1]​ Por ejemplo, el microframework Lumen está diseñado para el desarrollo de microservicios y APIs.

Ejemplo de pseudocódigo editar

require "foo.php";

foo::get("/hello/{name}", function($name) {
  return "Hello $name!";
});

Microframeworks editar

  • Bottle for Python
  • Camping for Ruby
  • Express.js for Node.js
  • Falcon for Python
  • Flask for Python
  • Scalatra for Scala
  • Lumen for PHP
  • Slim for PHP
  • Silex for PHP
  • Sinatra for Ruby
  • Spark for Java
  • Jooby for Java
  • Javalin for Java
  • Jodd for Java
  • Helidon for Java
  • Pippo for Java
  • Rapidoid for Java
  • Armeria for Java
  • Akka HTTP for Java
  • Ratpack for Java
  • Ktor for Kotlin
  • Toolatra for Tcl

Frameworks completos editar

.NET ASP.NET (Core, AJAX, Dynamic Data, MVC, Razor, Web Forms), Blazor, DNN, BFC, MonoRail, OpenRasta, Umbraco, WebSharper
C++ CppCMS, Drogon, Pistache, Wt
ColdFusion CFWheels, ColdBox Platform, ColdSpring, Fusebox, Model-Glue
Common Lisp Caveman2, CL-HTTP, Weblocks
Haskell Yesod, Snap
Java AppFuse, Flexive, Grails, GWT, ICEfaces, ItsNat, JavaServer Faces, JHipster, Jspx, JWt, OpenXava, Play, Remote Application Platform, RIFE, Seam, Sling, Spring, Stripes, Struts, Tapestry, Vaadin, Vert.x, WebWork, Wicket, WaveMaker, ZK
JavaScript Angular/AngularJS, Backbone.js, Chaplin.js, Closure, Dojo Toolkit, Ember.js, Express.js, Ext JS, jQuery, Knockout.js, Meteor, MooTools, Node.js, OpenUI5, Prototype, React, Rico, script.aculo.us, Sencha Touch, SproutCore, Svelte, Vue.js, Wakanda
Perl Catalyst, Dancer, Mason, Maypole, Mojolicious, WebGUI
PHP CakePHP, CodeIgniter, Drupal, Fat-Free, FuelPHP, Flow, Grav, Gyroscope, Horde, Joomla, Kohana, Laravel, Lithium, Lumen, Midgard, MODX, Nette, Phalcon, PHP-Fusion, Pop PHP, PRADO, ProcessWire, Qcodo, Silex, SilverStripe, Symfony, TYPO3, WordPress, XOOPS, Yii, Zend Framework
Python BlueBream, Bottle, CherryPy, Django, Flask, Grok, Nevow, Pyjs, Pylons, Pyramid, Quixote, TACTIC, Tornado, TurboGears, web2py, Webware, Zope 2
Ruby Camping, Merb, Padrino, Ruby on Rails, Sinatra
Rust Actix, Rocket
Scala Lift, Play, Scalatra
Smalltalk AIDA/Web, Seaside
Otros lenguajes Vibe.d (D), Application Express (PL/SQL), Grails (Groovy), Kepler (Lua), OpenACS (Tcl), Phoenix (Elixir), SproutCore (JavaScript-Ruby), Yaws (Erlang)

Referencias editar

  1. «Full-Stack Framework or Microframework, Laravel or Lumen?». Consultado el 13 de septiembre de 2016.