Download - Investigación Framework

Transcript
  • Documentodeinvestigacin(frameworkespaolmarcodetrabajo).Equipodefacturacin(CesarDubielgrajales,CarlosAndresMartinez,AndersonDiaz,DanielCardona)

    FRAMEWORKS QUEESUNFRAMEWORK?Lapalabrainglesa"framework"(marcodetrabajo)define,entrminosgenerales,unconjuntoestandarizadodeconceptos,prcticasycriteriosparaenfocaruntipodeproblemticaparticularquesirvecomoreferencia,paraenfrentaryresolvernuevosproblemasdendolesimilar.Eneldesarrollodesoftware,unframeworkoinfraestructuradigital,esunaestructuraconceptualytecnolgicadesoportedefinido,normalmenteconartefactosomdulosdesoftwareconcretos,quepuedeservirdebaseparalaorganizacinydesarrollodesoftware.Tpicamente,puedeincluirsoportedeprogramas,bibliotecas,yunlenguajeinterpretado,entreotrasherramientas,paraasayudaradesarrollaryunirlosdiferentescomponentesdeunproyecto.Unframeworkes,bsicamente,unconjuntodeclasesqueinteractanenformacooperativaparadarsolucinaunadeterminadanecesidad.LasprincipalescaractersticasdeunFrameworkson:Elestarenfocadoenuntemaespecficoyseraltamentereutilizable.https://www.youtube.com/watch?v=vuaxrIUae60vervideo

    HISTORIADELOSFRAMEWORKS

    PRIMERAGENERACIN

    Integraraplicacioneseramuydifcil(procesosbatch,importacinexportacin,etc). Programacionenlenguajesdeprimerageneracion:COBOL,

    FORTRAN,PASCAL,C,ETC. Nocualquierapodaescribiraplicaciones. Notodostenanaccesoaunacomputadora.

    http://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Programa_%28computaci%C3%B3n%29http://es.wikipedia.org/wiki/Biblioteca_%28programaci%C3%B3n%29http://es.wikipedia.org/wiki/Lenguaje_interpretadohttps://www.youtube.com/watch?v=vuaxrIUae60
  • SEGUNDAGENERACIN

    Ahorayaelusodelacomputadoranoeraprivilegiodeunospocos. Sepodrateneraplicacionesenunasolacomputadora(standalone).

    TERCERAGENERACIN

    SurgeelBOOMdeinternet,sesiguemezclandoelpoderdelascomputadorasdeescritorioconelusodeservidorespotentesparadarlesservicios.

    Aparecennuevoslenguajescomo:Java,VisualBasic,ETC.

    FRAMEWORKSPHP

    Symfony:

    Symfonysehaconvertidoenunodelosframeworksmsusadosenlaactualidadparaeldesarrollodeproyectosdecasicualquiertamao.Aligualquepartedelossiguientesframeworksponeenprcticaelpatrndediseomodelovistacontrolador,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.

    Lapresentacinusatemplatesylayoutsquepuedenserconstruidospor

    diseadoresdeHTMLquenoposeanconocimientosdelframework.

    Losformulariossoportalavalidacinautomtica,locualaseguramejorcalidadde

    losdatosenlasbasededatosyunamejorexperienciaparaelusuario.

    Elmanejodecachreduceelusodebandaanchaylacargadelservidor.

    Lafacilidaddesoportarautenticacinycredencialesfacilitalacreacindereas

    restringidasymanejodeseguridaddelosusuarios.

    ElenrutamientoylasURLsinteligenteshacenamigablelasdireccionesdelas

    pginasdelaaplicacin.

    Laslistassonmsamigables,yaquepermitelapaginacin,clasificacinyfiltraje

    automticos.

    Lospluginsproveenunaltoniveldeextensibilidad.

  • LainteraccinconAJAXesmuchomssencilla.

    SILEX:

    Silexesunmicroframework,oesonosquierenhacercreer,porqueesbastantecompletoensucometido.DesciendedirectamentedeSymfonyyvienetambindelamanodeSensioLabs.Incorporaelpatrnmodelovistacontroladordeunaformamuysimpledeusar,

    mediantesusencillomtododeenrutamientoqueaportatotalflexibilidadenlaformaderecibirpeticiones.

    KumbiaPHP:

    PorfinllegamosaKumbiaPHP,elframeworkquereclamaronlamayoradelaspersonasquecomentaronennuestroanteriorrepasodeframeworks.Ysindudaloreclamabanycomentabansusbondadesdeformatotalmentefundada,KumbiaPHPesunframeworkrealizadoporlacomunidadhispanohablantequeincorpora,paraempezarMVC,aliandoconunalargaseriedeelementosquenosayudarnadesarrollarnuestrosproyectosmsrpido.Incorporaunsistemadecacheo,mapeoobjetorelacional,sistemadeplantillas,sistemaderutas,

    generadordeformularios,componentesgrficosyanms.Sinduda,unabuenaopcin.

    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,biendocumentadoyquecumplevariasfuncionesdeformasegura,eficienteymodular(siasloqueremos).Incorporaelmodelovistacontrolador,ademsdetenersistemaderutas,sistemadegeneracindeformulariosysistemadetraduccin.Incorporaunacapadecompatibilidadconbasesdedatosdedistintosproveedores,parahacerlosproyectosmsuniformesyfcilmenteportables.

  • APIGILITY:YdeloscreadoresdeZendFramework:Apigility,elframeworkperfectoparacrearAPIsparanuestrosproyectos,yaseanparaservirymanipularcontenidoportercerosoparafacilitarlamanipulacindelainformacinporpartedenuestrasaplicaciones.PermitecrearyconfigurardeformasimplemediantesugestorAPIsRESTfuloRPC,incorporandoademsvariossistemasdeautenticacinyfiltradodepeticiones.

    KOHANA:

    Kohanaestodouncajndesastre,incorporaademsdeMVCunsinfindefuncionescomplementarias,posicionndosecmounodelosmscompletos.Tieneunsistemadeusuariosyroles,sistemadecacheo,facilitaycompatibilizalainteraccincondistintasbasesdedatos,tienemodeladoparaelmapeoobjetorelacionalyunsistemademanipulacindeimgenes,entreotrascaractersticas.

    WEBAPPLICATIONFRAMEWORKSUnframeworkdeaplicacioneswebesuntipodeframeworkquepermiteeldesarrollodesitioswebdinmicos,webservices(serviciosweb)yaplicacionesweb.Elpropsitodeestetipodeframeworkespermitiralosdesarrolladoresconstruiraplicacioneswebycentrarseenlosaspectosinteresantes,aliviandolatpicatarearepetitivaasociadaconpatronescomunesdedesarrolloweb.Lamayoradelosframeworksdeaplicacioneswebproporcionanlostiposdefuncionalidadbsicacomn,talescomosistemasdetemplates(plantillas),manejodesesionesdeusuario,interfacescomunesconeldiscooelalmacenamientoenbasededatosdecontenidocacheado,ypersistenciadedatos.Normalmente,losframeworksdeaplicacinwebademspromuevenlareutilizacinyconectividaddeloscomponentes,ascomolareutilizacindecdigo,ylaimplementacindebibliotecasparaelaccesoabasededatos.

    https://www.apigility.org/
  • RubyonRails FrameworkMVCbasadoenRuby,orientadoaldesarrollodeaplicacionesweb

    CodeIgniter PoderosoframeworkPHPlivianoyrpido

    Kohana UnforkdeCodeIgniter,GraciasaSamuelpormencionarloenloscomentarios.

    Django FrameworkPythonquepromueveeldesarrollorpidoyeldiseolimpio

    CakePHP FrameworkMVCparaPHPdedesarrollorpido

    ZendFramework FrameworkparaPHP5,simple,claroyopensource

    Yii FrameworkPHPdealtorendimientobasadoencomponentes

    Pylons FrameworkwebparaPythonqueenfatizalaflexibilidadyeldesarrollorpido

    Catalyst FrameworkparaaplicacioneswebMVCelegante

    Symfony Frameworkfullstack

    TurboGears PrximageneracinconstruidosobrePylons

    ElmsconocidopatrndediseodeaplicacioneswebeslaarquitecturaModelViewController(MVC:ModeloVistaControlador).UnModeloesunobjetoquerepresentadatosoinclusounaactividadenformadetablaenbasededatos.UnaVistaesalgntipodevisualizacindelestadodelmodelo,yunControladorofrecefunciones(herramientas)paracambiarelestadodelmodelo.

  • CakePHP:CakePHPesunframeworkparaeldesarrolloaplicacioneswebescritoenPHP,creadosobrelosconceptosdeRubyonRails.CakePHPempezen2005,cuandoRubyOnRailsestabaganandopopularidadyutilizamuchosdesusconceptos.Desdeentonceslacomunidadcreciygenermuchossubproyectos.

    Principalescaractersticas:

    CakePHPopastelPHPesunframeworkomarcodetrabajoquefacilitaeldesarrollode

    aplicacionesweb,utilizandoelpatrndediseoMVC(ModeloVistaControlador).Esde

    cdigoabiertoysedistribuyebajolicenciaMIT.

    AligualqueRubyOnRails,CakePHPfacilitaalusuariolainteraccinconlabasededatos

    medianteelusodeActiveRecord.AdemshaceusodelpatrnModeloVistaControlador.

    CompatibleconPHP4yPHP5

    CRUDdelabasededatosintegrado

    URLsamigables

    Sistemadeplantillasrpidoyflexible

    AyudasparaAJAX,Javascript,HTML,formsyms

    Trabajaencualquiersubdirectoriodelsitio

    Validacinintegrada

    Scaffoldingdelasaplicaciones

    AccessControlLists

    Sintetizacindedatos

    Componentesdeseguridadysesin

    Yii:

    Yiiesunframeworkorientadoaobjetos,softwarelibre,dealtorendimiento

    basadoencomponentes,PHPyframeworkparaaplicacionesweb.Yiisepronunciaenespaolcomoseescribeyesunacrnimopara"YesItIs!"(enespaol:Sloes!).

    http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o
  • ElproyectoYiicomenzel1deenerode2008,conelfindesolucionaralgunosproblemasconelframeworkPRADO.Porejemplo,PRADOeslentomanejandopginascomplejas,tieneunacurvadeaprendizajemuypronunciadaytienevarioscontrolesquedificultanlapersonalizacin,mientrasqueYiiesmuchomsfcilyeficiente.Enoctubrede2008despusde10mesesdetrabajoenprivado,laprimeraversinalfadeYiifuelanzada.El3dediciembredelmismoao,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.Estosignificaqueesposibleutilizardeformagratuitaparadesarrollarcualquieraplicacinwebdecdigoabiertoosoftwareprivativo.

    EltextoquefiguraenladocumentacinoficialdeYiitienelicenciaparaelpblicobajola

    GNUFreeDocumentationLicense(GFDL).Engeneral,elcontenidodeladocumentacinYii

    puedesercopiado,modificadoyredistribuidosiempreycuandolanuevaversinde

    subvencionesdelasmismaslibertadesalosdemsyreconozcaalosautoresdelartculode

    ladocumentacinutilizadaYii.

    EllogotipoestbajounalicenciaCreativeCommonsAtribucinNoDerivativeWorks3.0

    Unported.

    CATALYST:

    Catalystesunaestructuradecdigolibreparaaplicacionesweb

    escritoenPerl.SoportalaarquitecturaMVC,ascomosoporta

    algunospatroneswebexperimentales.Estaltamenteinspiradoen

    RubyonRails,MaypoleySpring.

    CatalystpromueveelreutilizamientodelosmdulosdePerlqueyasoportanbienloque

    requierenlaspginasWeb.

    LaformaenqueCatalystsoportalaarquitecturaMVCeslasiguiente:

    LapartedeModelo(Model)esmanejadapormediodeDBIx:Class,Plucene,Net::LDAPuotrasclasesmodelo.

    LapartedeVista(View)esusualmentemanejadaporTemplateToolkit,MasonoHTML::Template.

  • LapartedeControl(Controller)esescritaporelautor,porsupuesto.Grandespedazosdefuncionalidadusualmentesepuedenconseguirconlospluginsde

    Catalyst(ejemplo:Catalyst::Plugin::FormValidator,Catalyst::Plugin::Prototype,

    Catalyst::Plugin::Account::AutoDiscovery,etc.).

    CatalystproveeayudasparasimplificarelcontroldeflujoymapeodeURLsparalosmtodos

    deControl.UnadelascaractersticasadestacaresqueCatalysttieneunagranvariedadde

    pluginslocualfacilitasuutilizacin.

    PERLesunlenguajedeprogramacindiseadoporLarryWallen1987.Perltoma

    caractersticasdellenguajeC,dellenguajeinterpretadobourneshell(sh),AWK,sed,Lispy,

    enungradoinferior,demuchosotroslenguajesdeprogramacin.

    FRAMEWORKPHPMSUSADOSENEL2015

  • Bibliografia

    1. Wikipediaparalainformacindelosframework.

    2. http://elbauldelprogramador.com