Investigación Framework

12
Documento de investigación (framework español marco de trabajo). Equipo de facturación (Cesar Dubiel grajales,Carlos Andres Martinez,Anderson Diaz, Daniel Cardona) FRAMEWORKS ¿QUE ES UN FRAMEWORK? La palabra inglesa "framework" (marco de trabajo) define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar. En el desarrollo de software, un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto. Un framework es, básicamente, un conjunto de clases que interactúan en forma cooperativa para dar solución a una determinada necesidad. Las principales características de un Framework son: El estar enfocado en un tema específico y ser altamente reutilizable. https://www.youtube.com/watch?v=vuaxrIUae60 ver video HISTORIA DE LOS FRAMEWORKS PRIMERA GENERACIÓN Integrar aplicaciones era muy difícil (procesos batch,importaciónexportación,etc). Programacion en lenguajes de primera generacion: COBOL, FORTRAN,PASCAL,C,ETC. No cualquiera podía escribir aplicaciones. No todos tenían acceso a una computadora.

description

Frameworks orientados a la arquitectura

Transcript of Investigación Framework

  • 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