Microframework
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
require "foo.php";
foo::get("/hello/{name}", function($name) {
return "Hello $name!";
});
Microframeworks
- 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
.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
|
|