Equipodefacturacin(CesarDubielgrajales,CarlosAndresMartinez,AndersonDiaz,
DanielCardona)
FRAMEWORKS
QUEESUNFRAMEWORK?
Lapalabrainglesa"
framework
"(marcodetrabajo)define,entrminosgenerales,un
conjuntoestandarizadodeconceptos,prcticasycriteriosparaenfocaruntipode
problemticaparticularquesirvecomoreferencia,paraenfrentaryresolvernuevos
problemasdendolesimilar.
Eneldesarrollodesoftware,un
framework
o
infraestructuradigital
,esunaestructura
conceptualytecnolgicadesoportedefinido,normalmenteconartefactosomdulosde
softwareconcretos,quepuedeservirdebaseparalaorganizacinydesarrollode
software
.
Tpicamente,puedeincluirsoportede
programas
,
bibliotecas
,yun
lenguajeinterpretado
,
entreotrasherramientas,paraasayudaradesarrollaryunirlosdiferentescomponentesde
unproyecto.
Unframeworkes,bsicamente,unconjuntodeclasesqueinteractanenformacooperativa
paradarsolucinaunadeterminadanecesidad.Lasprincipalescaractersticasdeun
Frameworkson:Elestarenfocadoenuntemaespecficoyseraltamentereutilizable.
https://www.youtube.com/watch?v=vuaxrIUae60
vervideo
HISTORIADELOSFRAMEWORKS
PRIMERAGENERACIN
Integraraplicacioneseramuydifcil(procesosbatch,importacinexportacin,etc).
Programacionenlenguajesdeprimerageneracion:COBOL,
FORTRAN,PASCAL,C,ETC.
Nocualquierapodaescribiraplicaciones.
Notodostenanaccesoaunacomputadora.
SEGUNDAGENERACIN
Ahorayaelusodelacomputadoranoeraprivilegiodeunospocos.
Sepodrateneraplicacionesenunasolacomputadora(standalone).
TERCERAGENERACIN
SurgeelBOOMdeinternet,sesiguemezclandoelpoderdelascomputadorasde
escritorioconelusodeservidorespotentesparadarlesservicios.
Aparecennuevoslenguajescomo:Java,VisualBasic,ETC.
FRAMEWORKSPHP
Symfony:
Symfonysehaconvertidoenunodelosframeworks
msusadosenlaactualidadparaeldesarrollode
proyectosdecasicualquiertamao.Aligualqueparte
delossiguientesframeworksponeenprcticael
patrndediseomodelovistacontrolador,adems
tienecomponentescomplementarioscomosistemadeplantillas,traduccin,rutas(REST),
sistemadeficherosyunalistabastanteinteresante.
Caractersticas
Symfonyfuediseadoparaajustarsealossiguientesrequisitos:
Fcildeinstalaryconfigurarenlamayoradeplataformas(yconlagarantade
quefuncionacorrectamenteenlossistemasWindowsy*nixestndares).
Independientedelsistemagestordebasesdedatos.Sucapadeabstraccinyel
usodeORM(Doctrine2,Propel),permitencambiarconfacilidaddeSGBDen
cualquierfasedelproyecto.
Utilizaprogramacinorientadaaobjetosycaractersticascomolosespaciosde
nombres,deahqueseaimprescindiblePHP5.3.
Sencillodeusarenlamayoradecasos,aunqueespreferibleparaeldesarrollode
grandesaplicacionesWebqueparapequeosproyectos.
AunqueutilizaMVC(ModeloVistaControlador),tienesupropiaformadetrabajo
enestepunto,convariantesdelMVCclsicocomolacapadeabstraccinde
basededatos,elcontroladorfrontalylasacciones.
Basadoenlapremisadeconvenirenvezdeconfigurar,enlaqueel
desarrolladorslodebeconfiguraraquelloquenoesconvencional.
Siguelamayorademejoresprcticasypatronesdediseoparalaweb.
Preparadoparaaplicacionesempresarialesyadaptablealaspolticasy
arquitecturaspropiasdecadaempresa,ademsdeserlosuficientementeestable
comoparadesarrollaraplicacionesalargoplazo.
CdigofcildeleerqueincluyecomentariosdephpDocumentoryquepermiteun
mantenimientomuysencillo.
Fcildeextender,loquepermitesuintegracinconlasbibliotecasdeotros
fabricantes.
Unapotentelneadecomandosquefacilitangeneracindecdigo,locual
contribuyeaahorrartiempodetrabajo.
Caractersticasparaeldesarrolloautomatizadodeproyectosweb
Lascaractersticasmscomunesparaeldesarrollodeproyectoswebestnautomatizadas
ensymfony,talescomo:
Permitelainternacionalizacinparalatraduccindeltextodelainterfaz,losdatos
yelcontenidodelocalizacin.
Lapresentacinusa
templates
y
layouts
quepuedenserconstruidospor
diseadoresdeHTMLquenoposeanconocimientosdel
framework
.
Losformulariossoportalavalidacinautomtica,locualaseguramejorcalidadde
losdatosenlasbasededatosyunamejorexperienciaparaelusuario.
Elmanejodecachreduceelusodebandaanchaylacargadelservidor.
Lafacilidaddesoportarautenticacinycredencialesfacilitalacreacindereas
restringidasymanejodeseguridaddelosusuarios.
ElenrutamientoylasURLsinteligenteshacenamigablelasdireccionesdelas
pginasdelaaplicacin.
Laslistassonmsamigables,yaquepermitelapaginacin,clasificacinyfiltraje
automticos.
Lospluginsproveenunaltoniveldeextensibilidad.
LainteraccinconAJAXesmuchomssencilla.
SILEX:
Silexesunmicroframework,oesonosquierenhacercreer,porquees
bastantecompletoensucometido.Desciendedirectamentede
SymfonyyvienetambindelamanodeSensioLabs.Incorporael
patrnmodelovistacontroladordeunaformamuysimpledeusar,
mediantesusencillomtododeenrutamientoqueaportatotalflexibilidadenlaforma
derecibirpeticiones.
KumbiaPHP:
PorfinllegamosaKumbiaPHP,elframeworkquereclamaronlamayora
delaspersonasquecomentaronennuestroanteriorrepasode
frameworks.Ysindudaloreclamabanycomentabansusbondadesde
formatotalmentefundada,KumbiaPHPesunframeworkrealizadoporla
comunidadhispanohablantequeincorpora,paraempezarMVC,
aliandoconunalargaseriedeelementosquenosayudarna
desarrollarnuestrosproyectosmsrpido.Incorporaunsistemade
cacheo,mapeoobjetorelacional,sistemadeplantillas,sistemaderutas,
generadordeformularios,componentesgrficosyanms.Sinduda,unabuena
opcin.
KumbiaPHPFrameworkintentaproporcionarfacilidadesparaconstruiraplicacionesrobustas
paraentornoscomerciales.Estosignificaqueelframeworkesmuyflexibleyconfigurable.
KumbiaPHPesunesfuerzoporproducirunframeworkqueayudeareducireltiempode
desarrollodeunaaplicacinwebsinproducirefectossobrelosprogramadores.
Caractersticas
Sistemadeplantillassencillo.
AdministracindeCach.
ScaffoldingAvanzado.
MapeoObjetoRelacional(ORM)ySeparacinMVC.
SoporteparaAJAX.
GeneracindeFormularios.
ComponentesGrficos.
URLamigables
SeguridadACL(ListasdeAcceso)
PatrnActiveRecordparalosmodelos
Orientadoalpblicodehablacastellana
ElnmeroderequisitosparainstalaryconfiguraresUnixoWindowsconunservidorweby
PHP5instalado.KumbiaPHPescompatibleconmotoresdebasededatoscomoMySQL,
PostgreSQLyOracle.
KumbiaPHPestdiseadoteniendoencuentalossiguientesaspectos:
Sercompatibleconmuchasplataformas.
Fcildeinstalaryconfigurar.
Fcildeaprender.
Listoparaaplicacionescomerciales.
Convencinsobreconfiguracin.
Simpleenlamayorpartedecasosperoflexibleparaadaptarseacasosms
complejos.
Soportarmuchascaractersticasdelasaplicacioneswebactuales.
Soportarlasprcticasypatronesdeprogramacinmsproductivosyeficientes.
Produciraplicacionesfcilesdemantener.
Essoftwarelibre.
Elprincipalobjetivoesproduciraplicacionesqueseanprcticasparaelusuariofinalynosolo
paraelprogramador.Lamayorpartedetareasquelequitentiempoaldesarrolladordeberan
serautomatizadasporKumbiaPHPparaquelpuedaenfocarseenlalgicadenegociode
suaplicacin.
ZendFramework:
ZendFrameworkesunframeworkfcildeentender,
biendocumentadoyquecumplevariasfuncionesde
formasegura,eficienteymodular(siasloqueremos).
Incorporaelmodelovistacontrolador,ademsdetener
sistemaderutas,sistemadegeneracindeformularios
ysistemadetraduccin.Incorporaunacapade
compatibilidadconbasesdedatosdedistintos
proveedores,parahacerlosproyectosmsuniformesy
fcilmenteportables.
APIGILITY:
YdeloscreadoresdeZendFramework:
Apigility
,el
frameworkperfectoparacrearAPIsparanuestros
proyectos,yaseanparaservirymanipularcontenido
portercerosoparafacilitarlamanipulacindela
informacinporpartedenuestras
aplicaciones.Permitecrearyconfigurardeforma
simplemediantesugestorAPIsRESTfuloRPC,
incorporandoademsvariossistemasde
autenticacinyfiltradodepeticiones.
KOHANA:
Kohanaestodouncajndesastre,incorporaademsdeMVC
unsinfindefuncionescomplementarias,posicionndose
cmounodelosmscompletos.Tieneunsistemadeusuarios
yroles,sistemadecacheo,facilitaycompatibilizala
interaccincondistintasbasesdedatos,tienemodeladopara
elmapeoobjetorelacionalyunsistemademanipulacinde
imgenes,entreotrascaractersticas.
WEBAPPLICATIONFRAMEWORKS
Unframeworkdeaplicacioneswebesuntipodeframeworkquepermiteeldesarrollode
sitioswebdinmicos,webservices(serviciosweb)yaplicacionesweb.Elpropsitodeeste
tipodeframeworkespermitiralosdesarrolladoresconstruiraplicacioneswebycentrarseen
losaspectosinteresantes,aliviandolatpicatarearepetitivaasociadaconpatronescomunes
dedesarrolloweb.Lamayoradelosframeworksdeaplicacioneswebproporcionanlostipos
defuncionalidadbsicacomn,talescomosistemasdetemplates(plantillas),manejode
sesionesdeusuario,interfacescomunesconeldiscooelalmacenamientoenbasededatos
decontenidocacheado,ypersistenciadedatos.Normalmente,losframeworksdeaplicacin
webademspromuevenlareutilizacinyconectividaddeloscomponentes,ascomola
reutilizacindecdigo,ylaimplementacindebibliotecasparaelaccesoabasededatos.
RubyonRails
FrameworkMVCbasadoenRuby,orientado
aldesarrollodeaplicacionesweb
CodeIgniter
PoderosoframeworkPHPlivianoyrpido
Kohana
UnforkdeCodeIgniter,GraciasaSamuel
pormencionarloenloscomentarios.
Django
FrameworkPythonquepromueveel
desarrollorpidoyeldiseolimpio
CakePHP
FrameworkMVCparaPHPdedesarrollo
rpido
ZendFramework
FrameworkparaPHP5,simple,claroy
opensource
Yii
FrameworkPHPdealtorendimientobasado
encomponentes
Pylons
FrameworkwebparaPythonqueenfatizala
flexibilidadyeldesarrollorpido
Catalyst
FrameworkparaaplicacioneswebMVC
elegante
Symfony
Frameworkfullstack
TurboGears
Prximageneracinconstruidosobre
Pylons
Elmsconocidopatrndediseodeaplicacioneswebeslaarquitectura
ModelViewController(MVC:ModeloVistaControlador).UnModeloesunobjetoque
representadatosoinclusounaactividadenformadetablaenbasededatos.UnaVistaes
algntipodevisualizacindelestadodelmodelo,yunControladorofrecefunciones
(herramientas)paracambiarelestadodelmodelo.
CakePHP:
CakePHPesunframeworkparaeldesarrolloaplicacioneswebescritoen
PHP,creadosobrelosconceptosdeRubyonRails.
CakePHPempezen2005,cuandoRubyOnRailsestabaganando
popularidadyutilizamuchosdesusconceptos.Desdeentoncesla
comunidadcreciygenermuchossubproyectos.
Principalescaractersticas:
CakePHPopastelPHPesunframeworkomarcodetrabajoquefacilitaeldesarrollode
aplicacionesweb,utilizandoelpatrndediseo
MVC
(
M
odelo
V
ista
C
ontrolador).Esde
cdigoabiertoysedistribuyebajolicenciaMIT.
AligualqueRubyOnRails,CakePHPfacilitaalusuariolainteraccinconlabasededatos
medianteelusodeActiveRecord.Ademshaceusodel
patrn
ModeloVistaControlador.
CompatibleconPHP4yPHP5
CRUDdelabasededatosintegrado
URLsamigables
Sistemadeplantillasrpidoyflexible
AyudasparaAJAX,Javascript,HTML,formsyms
Trabajaencualquiersubdirectoriodelsitio
Validacinintegrada
Scaffoldingdelasaplicaciones
AccessControlLists
Sintetizacindedatos
Componentesdeseguridadysesin
Yii:
Yiiesunframeworkorientadoaobjetos,softwarelibre,dealtorendimiento
basadoencomponentes,PHPyframeworkparaaplicacionesweb.Yiise
pronunciaenespaolcomoseescribeyesunacrnimopara"YesItIs!"
(enespaol:Sloes!).
ElproyectoYiicomenzel1deenerode2008,conelfindesolucionaralgunosproblemas
conelframeworkPRADO.Porejemplo,PRADOeslentomanejandopginascomplejas,
tieneunacurvadeaprendizajemuypronunciadaytienevarioscontrolesquedificultanla
personalizacin,mientrasqueYiiesmuchomsfcilyeficiente.Enoctubrede2008
despusde10mesesdetrabajoenprivado,laprimeraversinalfadeYiifuelanzada.El3
dediciembredelmismoao,Yii1.0fueformalmentepresentado.
Caractersticas
AlgunascaractersticasdeYiiincluyen:
PatrndediseoModeloVistaControlador(MVC).
DatabaseAccessObjects(DAO),querybuilder,ActiveRecordymigracinde
basededatos.
IntegracinconjQuery.
EntradasdeFormularioyvalidacin.
WidgetsdeAjax,comoautocompletadodecamposdetextoydems.
SoportedeAutenticacinincorporado.Ademssoportaautorizacinva
rolebasedaccesscontrol(RBAC)jerrquico.
Personalizacindeaspectosytemas.
GeneracincomplejaautomticadeWSDL,especificacionesyadministracinde
peticionesWebservice.
Internacionalizacinylocalizacin.Soportatraducciones,formatodefechayhora,
formatodenmeros,ylocalizacindelavista.
Esquemadecachingporcapas.Soportaelcachdedatos,cachdepginas,
cachporfragmentosycontenidodinmico.Elmediodealmacenamientodel
cachpuedesercambiado.
Elmanejodeerroresylogging.Loserroressonmanejadosypersonalizados,ylos
logdemensajespuedensercategorizados,filtradosymovidosadiferentes
destinos.
Lasmedidasdeseguridadincluyenlaprevencincrosssitescripting(XSS),
prevencincrosssiterequestforgery(CSRF),prevencindelamanipulacinde
cookies,etc.
HerramientasparapruebasunitariasyfuncionalesbasadosenPHPUnity
Selenium.
Generacinautomticadecdigoparaelesqueletodelaaplicacin,aplicaciones
CRUD,etc.
GeneracindecdigoporcomponentesdeYiiylaherramientaporlneade
comandoscumpleconlosestndaresdeXHTML.
Cuidadosamentediseadoparatrabajarbienconcdigodeterceros.Porejemplo,
esposibleusarelcdigodePHPoZendFrameworkenunaaplicacinYii.
Licencia
YiiesliberadobajolaNuevaLicenciaBSD.Estosignificaqueesposibleutilizardeforma
gratuitaparadesarrollarcualquieraplicacinwebdecdigoabiertoosoftwareprivativo.
EltextoquefiguraenladocumentacinoficialdeYiitienelicenciaparaelpblicobajola
GNUFreeDocumentationLicense(GFDL).Engeneral,elcontenidodeladocumentacinYii
puedesercopiado,modificadoyredistribuidosiempreycuandolanuevaversinde
subvencionesdelasmismaslibertadesalosdemsyreconozcaalosautoresdelartculode
ladocumentacinutilizadaYii.
EllogotipoestbajounalicenciaCreativeCommonsAtribucinNoDerivativeWorks3.0
Unported.
CATALYST:
Catalyst
esunaestructuradecdigolibreparaaplicacionesweb
escritoenPerl.SoportalaarquitecturaMVC,ascomosoporta
algunospatroneswebexperimentales.Estaltamenteinspiradoen
RubyonRails,MaypoleySpring.
CatalystpromueveelreutilizamientodelosmdulosdePerlqueyasoportanbienloque
requierenlaspginasWeb.
LaformaenqueCatalystsoportalaarquitecturaMVCeslasiguiente:
Lapartede
Modelo
(
Model
)esmanejadapormediode
DBIx:Class
,
Plucene
,
Net::LDAP
uotrasclasesmodelo.
Lapartede
Vista
(
View
)esusualmentemanejadapor
TemplateToolkit
,
Mason
o
HTML::Template
.
Lapartede
Control
(
Controller
)esescritaporelautor,porsupuesto.Grandes
pedazosdefuncionalidadusualmentesepuedenconseguirconlospluginsde
Catalyst(ejemplo:
Catalyst::Plugin::FormValidator
,
Catalyst::Plugin::Prototype
,
Catalyst::Plugin::Account::AutoDiscovery
,etc.).
CatalystproveeayudasparasimplificarelcontroldeflujoymapeodeURLsparalosmtodos
deControl.UnadelascaractersticasadestacaresqueCatalysttieneunagranvariedadde
pluginslocualfacilitasuutilizacin.
PERL
esunlenguajedeprogramacindiseadoporLarryWallen1987.Perltoma
caractersticasdellenguajeC,dellenguajeinterpretadobourneshell(sh),AWK,sed,Lispy,
enungradoinferior,demuchosotroslenguajesdeprogramacin.
FRAMEWORKPHPMSUSADOSENEL2015
Bibliografia
1. Wikipediaparalainformacindelosframework.
2. http://elbauldelprogramador.com