Marco de referencia
En programación informática , un marco (también conocido como infraestructura de software , desarrollo de infraestructura , entorno de desarrollo , base de aplicaciones , para aplicaciones o marco de software ) significa un conjunto coherente de componentes de software Estructural, que se utiliza para crear las bases y el contorno de todos o parte de un software ( arquitectura ). Un marco se diferencia de una biblioteca de software simple principalmente por:
- su carácter genérico, débilmente especializado, a diferencia de algunas bibliotecas; como tal, un marco puede estar compuesto por varias bibliotecas, cada una especializada en un dominio. Un marco , sin embargo, se puede especializar, en un determinado idioma , una determinada plataforma , un dominio particular: la comunicación de datos , mapeo de datos , etc. ;
- el marco que impone por su propia construcción, guiando la arquitectura del software o incluso llevando al desarrollador a respetar ciertos patrones de diseño ; las bibliotecas que lo constituyen se organizan según el mismo paradigma .
Por lo tanto, los marcos están diseñados y utilizados para dar forma a la arquitectura del software de aplicación , las aplicaciones web , el middleware y los componentes de software . Los frameworks se adquieren por computadora y se incorporan en aplicaciones de software en el mercado, por lo que rara vez son comprados e instalados por separado por un usuario final.
Descripción
Un marco es un conjunto de herramientas y componentes de software organizados de acuerdo con un plan arquitectónico y patrones , todo formando o promoviendo un "esqueleto" de programa, un lienzo. A menudo se proporciona en forma de biblioteca de software y se acompaña del plan de la arquitectura de destino del marco .
Un marco está diseñado para ayudar a los programadores en su trabajo. La organización del marco apunta a la máxima productividad del programador que lo utilizará - garantía de menores costos de construcción y mantenimiento del programa. El contenido exacto del marco lo dicta el tipo de programa y la arquitectura de destino para el que está diseñado.
Hay diferentes tipos de marcos :
-
marco de infraestructura del sistema: para desarrollar sistemas operativos, interfaces gráficas , herramientas de comunicación (ejemplo: .Net Framework , Struts );
-
marco de integración de middleware ( middleware ) para federar aplicaciones heterogéneas. Poner a disposición diferentes tecnologías en forma de una única interfaz;
-
marcos empresariales: para desarrollar aplicaciones específicas para el sector empresarial de la empresa;
-
marcos de gestión de contenido : son los cimientos de un sistema de gestión de contenido - para la creación, recopilación, clasificación, almacenamiento y publicación de "propiedad escaneada".
Las principales ventajas de estos frameworks son la reutilización de su código, la estandarización del ciclo de vida del software (especificación, desarrollo, mantenimiento, evolución), permiten formalizar una arquitectura adaptada a las necesidades de la empresa. Se basan en la experiencia de desarrollos anteriores.
Objetos
En la programación orientada a objetos , un marco se compone típicamente de clases padre que serán derivadas y extendidas por herencia de acuerdo con las necesidades específicas de cada software que usa el marco . Con un framework orientado a objetos, el programador que utilice el framework podrá personalizar los elementos principales del programa por extensión, utilizando el mecanismo de herencia : crear nuevas clases que contengan todas las funcionalidades que implementa el framework , y además las propias. funcionalidades, creadas por el programador de acuerdo a las necesidades específicas de su programa. El mecanismo de herencia también permite transformar funcionalidades existentes en las clases del framework .
Inversión de control
Mientras que las bibliotecas de clases son típicamente pasivas: el programa que las usa ejecuta las operaciones de clase a demanda, los marcos suelen ser activos: el flujo de operaciones en un programa está dirigido por el marco que usa, por mecanismos como devoluciones de llamada y eventos , basados en el "no me llames, yo te llamo". "
La inversión del control es parte de la arquitectura típica de un marco .
traducción francés
En programación de computadoras , un marco se traduce en estructura de software, aunque el término marco todavía se usa principalmente. Se han realizado otros intentos de francizar el término; así, a veces se encuentran en el entorno de desarrollo , recomendado por la Comisión de enriquecimiento de la lengua francesa , y para aplicaciones , base de aplicaciones o marco de software recomendado por la Oficina de la lengua francesa en Quebec .
Tenga en cuenta que un marco no debe considerarse como una plataforma , en la medida en que no integre un entorno de ejecución de sistema o aplicación.
Ejemplos de
Algunos ejemplos
apellido
|
Usar
|
Arquitectura de destino
|
Idioma
|
Autor
|
Licencia
|
---|
Fundición de ActionScript
|
Aplicación web
|
Adobe flex
|
ActionScript y Java
|
ServeBox
|
|
---|
Capullo de apache
|
aplicación web - servlet
|
?
|
Java , XML
|
Software Apache
|
Software libre
|
---|
Primavera
|
Aplicación web
|
Multiplataforma
|
Java
|
Fuente de primavera
|
Software libre
|
---|
Puntales de Apache
|
Aplicación web
|
Modelo-Vista-Controlador
|
Java
|
Software Apache
|
Software libre
|
---|
Bootstrap de Twitter
|
Aplicación web
|
Modelo-Vista-Controlador
|
HTML / CSS / JAVASCRIPT
|
Gorjeo
|
Licencia MIT
|
---|
Catalizador
|
Software de la aplicacion
|
Modelo-Vista-Controlador
|
Perl
|
|
Software libre
|
---|
Cacao
|
Software de la aplicacion
|
Cacao
|
C objetivo
|
manzana
|
|
---|
CubicWeb
|
Plataforma de desarrollo web semántica
|
Multiplataforma
|
Pitón
|
Logilab
|
LGPL
|
---|
Django
|
Aplicación web
|
Modelo-Vista-Controlador
|
Pitón
|
Fundación de software Django
|
Software libre
|
---|
Dojo
|
applet
|
AJAX
|
Javascript
|
Fundación Dojo
|
---|
Marco de modelado de Eclipse (*) |
modelado de datos
|
Multiplataforma
|
(abierto)
|
Fundación Eclipse
|
Software libre
|
---|
Eclipse RCP
|
Plataforma de cliente enriquecido
|
Plataforma IDE Eclipse , multiplataforma
|
(abierto)
|
Fundación Eclipse
|
Software libre
|
---|
eZ Publish
|
Aplicación web
|
sistema de gestión de contenidos
|
PHP
|
eZ Systems AS
|
Software libre
|
---|
Caras de JavaServer
|
Aplicación web
|
Componente
|
Java
|
|
Software libre
|
---|
Marco de FxEngine
|
procesamiento de señal digital , complemento
|
Filtros y tubos
|
C ++
|
SMProcess
|
|
---|
Griales
|
Aplicación web
|
Modelo-Vista-Controlador
|
Groovy
|
Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig y Steven Devijver
|
|
---|
Google Guice
|
Aplicación web
|
Multiplataforma
|
Java
|
Bob Lee, Kevin B, Jesse Wilson y Christian Gruber
|
Software libre
|
---|
Hibernar
|
persistencia y mapeo
|
API de persistencia de Java
|
Java
|
JBoss
|
Software libre
|
---|
Java SE (**) |
marco genérico para Rich Client Platform
|
Multiplataforma
|
Java Scala JScheme , implementación de Scheme Clojure (dialecto de Lisp) JRuby Jython Rhino (motor JavaScript)
|
Sun Microsystems luego Oracle Corporation
|
Software libre
|
---|
Java EE (**) |
marco profesional con soporte distribuido
|
---|
Java ME (**) |
marco para aplicaciones móviles
|
---|
JavaFX (**) |
marco para la aplicación de Internet enriquecida
|
---|
Kivy
|
marco para aplicaciones móviles
|
Multiplataforma
|
Python Cython
|
Organización Kivy
|
Software libre
|
---|
Laravel
|
aplicaciones web
|
Multiplataforma , Modelo-Vista-Controlador
|
PHP
|
Equipo de desarrollo de Laravel
|
Licencia MIT
|
---|
MARF
|
procesamiento de señales y lenguaje
|
tubería
|
Java
|
Sergei Mokhov, Stephen Sinclair
|
|
---|
Clase Foundation de Microsoft
|
Software de la aplicacion
|
Modelo-Vista-Controlador
|
C ++
|
Microsoft
|
Dueño
|
---|
.Net (**) |
software de aplicación , aplicación web , componente de software
|
ASP.NET
|
C # , Visual Basic .NET
|
Microsoft
|
Dueño
|
---|
Ruby on Rails
|
Aplicación web
|
Modelo-Vista-Controlador
|
Rubí
|
David Heinemeier Hansson y
|
Software libre
|
---|
Symfony
|
Aplicación web
|
Modelo-Vista-Controlador
|
PHP
|
Laboratorios Sensio
|
Software libre
|
---|
SoJo FrameWork
|
Aplicación web
|
Modelo-Vista-Controlador
|
HTML / CSS
|
InGamesStudio
|
Software libre
|
---|
TopLink
|
persistencia y mapeo
|
API de persistencia de Java
|
Java
|
Oracle Corporation
|
---|
W3.CSS
|
Aplicación web
|
Diseño de materiales de Google
|
CSS
|
W3Schools
|
Software libre
|
---|
Zend Framework
|
Aplicación web
|
Modelo-Vista-Controlador
|
PHP
|
Tecnologías Zend
|
Software libre
|
---|
Zope
|
gestión de contenido
|
Zope
|
Pitón
|
Corporación Zope
|
Software libre
|
---|
(*) Ciertos frameworks como Eclipse constituyen más meta- frameworks , o frameworks de frameworks , en la medida en que permiten, según los módulos que se les instalen, reorientarse hacia diferentes actividades informáticas.
(**) Microsoft .NET y las Plataformas Java pueden verse indistintamente como frameworks , o como plataformas de software según se considere sus únicas librerías de desarrollo, o su entorno de ejecución.
Notas y referencias
-
" Marco o infraestructura de software: definición y traducción ", JDN ,23 de abril de 2018( leer en línea , consultado el 24 de junio de 2018 )
-
Sandy Hacyan, " El marco: una base de desarrollo estructurante " , en journaldunet.com , Le Journal du Net ,3 de abril de 2008(consultado el 2 de mayo de 2017 )
-
Comisión para el enriquecimiento de la lengua francesa , " entorno de desarrollo " , FranceTerme , Ministerio de Cultura (visitada 22 de de enero de, 2020 ) .
-
" marco de aplicaciones " , Le Grand Dictionnaire terminologique , Oficina québécois de la langue française (visitada 22 de de enero de, 2020 ) .
-
(es) Ken Chazotte, construir su propio marco con Visual FoxPro , Hentzenwerke, 2004, ( ISBN 9781930919532 ) .
-
(in) RJ Townsend Foundation Drupal 7: Aprenda a utilizar el marco de Drupal para crear rápidamente sitios web ricos en funciones , Apress - 2010 ( ISBN 9781430228080 )
-
(en) Nicolas Guelfi, Egidio Astesiano y Gianna Reggio Ingeniería científica para aplicaciones Java distribuidas , Springer - 2003 ( ISBN 9783540006794 )
-
(en) Douglas C. Schmidt y Stephen D. Huston, Programación de red C ++: Reutilización sistemática con ACE y Frameworks , Addison-Wesley - 2003 ( ISBN 9780201795257 )
-
(en) Stephen D. Huston, James Johnson CE, Umar Syyid, La guía del programador de ACE: patrones de diseño prácticos para la programación de redes y sistemas , Addison-Wesley - 2004 ( ISBN 9780201699715 )
Ver también
Artículos relacionados
Enlace externo