SEMINÁRIO 2011/2012
FRAMEWORKS
Arlindo Santos (acsantos@ipb.pt)
Seminário   frameworks
2011/2012
            O que é?

• “Framework é um conjunto de classes que
  colaboram para realizar uma
  responsabilidade para um domínio de um
  subsistema da aplicação.”
                       • Frameworks

•    (Fayad e Schmidt)




                            Arlindo Santos   09-05-2012   2
Seminário   frameworks
2011/2012
            O que é?

• Um framework, em desenvolvimento de
  software, é uma abstração que une
  códigos comuns entre vários projetos de
  software fornecendo uma funcionalidade
  genérica.




                             Arlindo Santos   09-05-2012   3
Seminário   frameworks
2011/2012
            O que é?

• Ao contrário das bibliotecas, é o
  framework quem dita o fluxo de controle
  da aplicação, chamado de Inversão de
  Controle.




                             Arlindo Santos   09-05-2012   4
Seminário   frameworks
2011/2012
            Frameworks

• Framework de software compreende de
  um conjunto de classes implementadas
  em uma linguagem de programação
  específica, usadas para auxiliar o
  desenvolvimento de software.




                           Arlindo Santos   09-05-2012   5
Seminário   frameworks
2011/2012
            O que é?
Framework é uma
arquitectura, um conjunto
de ficheiros organizados,
com uma série de
funções, rotinas e
variáveis, que servem
para nos poupar o tempo
de “REIVENTAR A
RODA” diversas e
diversas vezes, para cada
novo projeto

                            Arlindo Santos   09-05-2012   6
Seminário   frameworks
2011/2012
            Problema vs Solução

• Qual é o problema?
  – Programar é difícil.
• Onde está a maior dificuldade?
  – “O Design de Interface e a sua construção de
    maneira funcional é a chave da propriedade
    intelectual de um software e é bem mais difícil
    de ser criada ou recriada do que o código
    fonte.” - Peter Deutsch.


                                  Arlindo Santos   09-05-2012   7
Seminário   frameworks
2011/2012
            Problema vs Solução

• Ou seja:
  – os requisitos funcionais de um software são
    facilmente copiados por outro, uma boa
    solução de interface não.




                               Arlindo Santos   09-05-2012   8
Seminário   frameworks
2011/2012
            Problema vs Solução

• Solução:
  – Temos que fornecer formas de re-uso que
    vão além de código: re-uso de análise,
    design, código.
  – Framework orientado a objeto.




                               Arlindo Santos   09-05-2012   9
Seminário   frameworks
2011/2012
            Problema vs Solução

• Onde o framework entra…
  – Um framework captura a funcionalidade
    comum a várias aplicações.
  – As aplicações devem ter algo razoavelmente
    grande em comum: pertencer a um mesmo
    domínio de problema.




                               Arlindo Santos   09-05-2012   10
Seminário   frameworks
2011/2012
            Problema vs Solução
• Um framework é uma
  aplicação quase
  completa, mas com
  pedaços que faltam!
• Ao usar um
  framework, o trabalho
  consiste em criar os
  pedaços que são
  específicos para sua
  aplicação.

                            Arlindo Santos   09-05-2012   11
Seminário   frameworks
2011/2012
            Padrões vs frameworks
• Padrões de projeto de software não são
  frameworks, pois padrões possuem um nível
  maior de abstração.
• Um framework inclui código, diferentemente
  de um padrão de projeto.
• Um framework pode ser modelado com
  vários padrões de projeto, e sempre
  possuem um domínio de uma aplicação
  particular, algo que não ocorre nos padrões e
  projeto de software.

                                Arlindo Santos   09-05-2012   12
Seminário   frameworks
2011/2012
            Vantagens

• Redução de custos
• Redução de time-to-market
• Deteção de erros – cada funcionalidade
  está separada por blocos
• Segurança
• Extensibilidade
• Ajuda fácil - comunidade


                           Arlindo Santos   09-05-2012   13
Seminário   frameworks
2011/2012
            Vantagens
• A longo prazo - Despois do período de
  familiarização, as vantagens aparecem
• Produtividade - Como toda a equipa usa um
  determinado framework, então usam as
  mesmas convenções, classes e bibliotecas, a
  manutenção de um programa fica muito mais
  ágil (produtividade);
• Eliminação das tarefas repetitivas
• Facilidade na geração de testes
• Geração de documentação

                              Arlindo Santos   09-05-2012   14
Seminário   frameworks
2011/2012
            Vantagens
• Maximização de re-uso (análise, design, código,
  testes).
• Programadores concentram-se em adicionar valor
  ao invés de reinventar a roda.
• Menos manutenção.
• A herança permite alterar ou adicionar
  funcionalidades.
• Estabilização melhor do código (menos defeitos)
  devido ao seu uso em várias aplicações.
• Uso de tecnologias embutidas

                                 Arlindo Santos   09-05-2012   15
Seminário   frameworks
2011/2012
            Vantagens
• Melhor consistência e compatibilidade entre
  aplicações.
• Framework oferece uma forma de empacotar
  o conhecimento de especialistas sobre
  domínios de problemas.
• Não se perde o conhecimento com a saída
  de especialistas e o conhecimento pode ser
  usado/estudado sem a presença do
  especialista.
• Resultado: criação de patrimônio estratégico
  da empresa (Strategic Asset Building).

                               Arlindo Santos   09-05-2012   16
Seminário   frameworks
2011/2012
            Desvantagens

• Dificuldade de aprendizagem
• Construir um framework é complexo
- Necessita de planeamento
• Quem pode pensar em longo prazo quando
  se está competindo "On Internet time"?
- Necessário modificar o processo de
  desenvolvimento e criar novos incentivos
- Benefícios são realizados em longo prazo

                             Arlindo Santos   09-05-2012   17
Seminário   frameworks
2011/2012
            Características Básicas
•Um framework deve ser reusável:
   – É o propósito final!
•Para ser reusável, deve primeiro ser usável:
   – Bem documentado
   – Fácil de usar
• Deve ser extensível:
   – O framework contém funcionalidade abstrata             (sem
     implementação) que deve ser completada
• Deve ser eficiente:
   – Devido a seu uso em muitas situações, algumas das quais
     poderão necessitar de eficiência
• Deve ser completo:
   – Para endereçar o domínio do problema pretendido

                                        Arlindo Santos   09-05-2012   18
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• MVC
• ActiveRecord
• AJAX (Asynchronous Javascript and XML)
• Internacionalização: É o processo de
  possibilitar que seja facilmente alterada a
  linguagem da interface e de mensagens de
  uma determinada aplicação.
• ORM
• …

                                Arlindo Santos   09-05-2012   19
Seminário   frameworks
2011/2012
            Tecnologias embutidas

• MVC




                             Arlindo Santos   09-05-2012   20
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• MVC
  – View
      • É a interface do utilizador, é a transformação dos
        dados do Model para que o utilizador possa interagir
        com o sistema.
  – Model
      • Model é a camada de lógica do MVC que é usada pela
        camada de apresentação e de acesso ao espaço de
        armazenamento (ex: base de dados).
  – Controler
      • O controller processa e responde a eventos dos
        utilizadores (GET, POST e entre outros), podendo
        alterar o estado do Model.


                                          Arlindo Santos   09-05-2012   21
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• MVC
  – Vantagens
      • Como o modelo MVC gere múltiplas formas de
        visualização usando o mesmo modelo, e é fácil manter,
        testar e atualizar sistemas múltiplos;
      • É muito simples incluir novos clientes. Inclui-se apenas
        novos views e controles;
      • Torna a aplicação escalável;
      • É possível ter um desenvolvimento em paralelo para o
        modelo, visualizador e controle pois são
        independentes;
      • É mais fácil gerir a complexidade da aplicação
        dividindo-a em modelo, visualizador e controlador
        (MVC).

                                           Arlindo Santos   09-05-2012   22
Seminário   frameworks
2011/2012
            Tecnologias embutidas

• MVC
  – Desvantagens
      • Requer uma quantidade maior de tempo para
        analisar e modelar o sistema;
      • Requer pessoal com conhecimento especializado;
      • Não é aconselhável para pequenas aplicações.




                                     Arlindo Santos   09-05-2012   23
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• ORM (Object-relational mapping)
   – O ORM é uma técnica de desenvolvimento utilizada para reduzir
     a impedância da programação orientada a objetos utilizando
     base de dados relacionais. As tabelas do base de dados são
     representadas através de classes e os registos de cada tabela
     são representados como instâncias das classes
     correspondentes.
   – Com esta técnica, o programador não precisa de se preocupar
     com os comandos em linguagem SQL; irá usar uma interface de
     programação simples que faz todo o trabalho de persistência.
   – Não é necessária uma correspondência direta entre as tabelas
     de dados e as classes do programa. A relação entre as tabelas
     onde originam os dados e o objeto que os disponibiliza é
     configurada pelo programador, isolando o código do programa
     das alterações à organização dos dados nas tabelas do banco
     de dados.


                                            Arlindo Santos   09-05-2012   24
Seminário     frameworks
 2011/2012
               Tecnologias embutidas
• Validation
   – Indica se o framework tem alguma estrutura de validação embutida em
     sua estrutura.
• Auth module
   – Indica se a estrutura tem um módulo embutido para assegurar a
     autenticação do utilizador.
• Modules
   – Indica se a estrutura do framework é modularizada por exemplo, possui
     um parser da alimentação de RSS, o módulo de separação de pdf´s ou
     etc;
• Tableless
   – O nome Tableless é um nome mais “publicitário” para se referir a sites
     que seguem os Padrões. Os sites Tableless não são construídos
     usando as tables. Elas usam XHTML para apresentar a informação e
     as Folhas de Estilo (CSS) para formatar essa informação.
     Pelo motivo de as tables não serem usadas para a
     estruturação, essa metodologia se chama Tableless.


                                                   Arlindo Santos   09-05-2012   25
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• ActiveRecord
  – Abstrai o programador de conhecer a fundo uma
    linguagem de manipulação de dados, como a SQL,
    além de manter toda a aplicação desenvolvida no
    paradigma orientado a objetos.
• Db objects
  – Indica se a estrutura inclui outros objetos da base de
    dados, como classes de linguagem de programação
    orientada a objetos
• Templates
  – Os templates, ou modelos, têm por finalidade
    separar o design, a parte HTML, da programação,
    no nosso caso, o PHP.

                                       Arlindo Santos   09-05-2012   26
Seminário        frameworks
    2011/2012
                     Tecnologias embutidas
•    AJAX (Asynchronous Javascript and XML)
      – Toda página AJAX está em um objeto chamado XMLHTTPRequest, o qual permite
        que sejam feitas requisições assíncronas ao servidor web, não precisando de
        atualizações na página ou espera por parte do utilizador.
•    Caching
      – Caching é o melhor recurso para a redução de processamento do servidor
        envolvendo a renderização e lógica da camada de acesso a dados.
      – Podemos dividir o caching em três tipos básicos:
           •   Cache de Respostas (OutputCache)
                 –   O cache de respostas é a forma mais simples de se tirar proveito do sistema de cache, sem
                     necessidade de redesenho ou alterações de código - o conteúdo a ser enviado ao cliente (resposta) é
                     armazenado em memória e disponibilizado para as próximas requisições. De fato, todo o conteúdo
                     dinâmico pode ser armazenado em mecanismos que suportem o HTTP 1.1 (servidor web, navegadores
                     e proxies) de forma que requisições subsequentes sejam servidas diretamente a partir do cache sem
                     execução de código.
           •   Cache de Fragmento
                 –   Existem situações onde o cache de toda uma página de resposta não é adequado. Um caso
                     óbvio, seria àquele no qual o desenho da aplicação requerer que algumas partes/seções de uma
                     página específica tenham versões específicas para um determinado grupo de utilizadores (e.g. menu
                     baseado no perfil do utilizador) e que outras partes sejam comuns à todos (e.g. conteúdo
                     genérico c/ notícias gerais). Este é o cenário ideal para o uso do fragment caching.
           •   Cache de Objetos
                 –   O objeto de Cache é recriado a cada reinício da aplicação, o que nos lembra uma certa similaridade
                     com o objeto Application. A principal diferença entre os dois reside no fato de que o objeto de Cache
                     proporciona funcionalidade específicas, tais como dependências e políticas de expiração.




                                                                                   Arlindo Santos              09-05-2012    27
Seminário    frameworks
 2011/2012
              Tecnologias embutidas
• Integração PEAR
   – Pear é um sistema de repositório e de distribuição para
     componentes reutilizáveis de PHP.
   – Pear é composto por:
       • Repositório organizado e padronizado de código aberto para programadores de
         PHP Sistema para a distribuição e manutenção de pacotes.
       • PFC (PHP Foundation Classes).
       • Estilo padronizado de código.
       • Sites e listas de discussão para a comunidade de colaboradores.
   – O código PEAR é dividido em “pacotes”. Cada pacote é um projeto
     separado com sua própria equipe de desenvolvimento, número de
     versão, ciclo da publicação, documentação e uma relação definida
     a outros pacotes.
• Internacionalização
   – É o processo de possibilitar que seja facilmente alterada a linguagem
     da interface e de mensagens de uma determinada aplicação.




                                                         Arlindo Santos     09-05-2012   28
Seminário   frameworks
2011/2012
            Documentação detalhada
• Uma boa documentação não é somente uma
  descrição do que é a ferramenta e para que
  ela serve.
  – é toda a descrição histórica,
  – todo um apoio para os programadores como
    exemplos práticos de sua aplicação,
  – detalhes da sua criação e implementação,
  – descrição do comportamento e funcionamento da
    mesma,
  – fóruns de discussão,
  – e demais conceitos abordados acima


                                 Arlindo Santos   09-05-2012   29
Seminário   frameworks
2011/2012
            Comparação das Frameworks




                           Arlindo Santos   09-05-2012   30
Seminário   frameworks
2011/2012
            Comparação das Frameworks




                           Arlindo Santos   09-05-2012   31
Seminário   frameworks
2011/2012
            Bibliografia

• Fayad, M. E. and Schmidt, D. C. (1997).
  Object-oriented application frameworks.
  Commun. ACM, 40(10):32–38.




                             Arlindo Santos   09-05-2012   32

Frameworks de desenvolvimento web

  • 1.
  • 2.
    Seminário frameworks 2011/2012 O que é? • “Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.” • Frameworks • (Fayad e Schmidt) Arlindo Santos 09-05-2012 2
  • 3.
    Seminário frameworks 2011/2012 O que é? • Um framework, em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software fornecendo uma funcionalidade genérica. Arlindo Santos 09-05-2012 3
  • 4.
    Seminário frameworks 2011/2012 O que é? • Ao contrário das bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle. Arlindo Santos 09-05-2012 4
  • 5.
    Seminário frameworks 2011/2012 Frameworks • Framework de software compreende de um conjunto de classes implementadas em uma linguagem de programação específica, usadas para auxiliar o desenvolvimento de software. Arlindo Santos 09-05-2012 5
  • 6.
    Seminário frameworks 2011/2012 O que é? Framework é uma arquitectura, um conjunto de ficheiros organizados, com uma série de funções, rotinas e variáveis, que servem para nos poupar o tempo de “REIVENTAR A RODA” diversas e diversas vezes, para cada novo projeto Arlindo Santos 09-05-2012 6
  • 7.
    Seminário frameworks 2011/2012 Problema vs Solução • Qual é o problema? – Programar é difícil. • Onde está a maior dificuldade? – “O Design de Interface e a sua construção de maneira funcional é a chave da propriedade intelectual de um software e é bem mais difícil de ser criada ou recriada do que o código fonte.” - Peter Deutsch. Arlindo Santos 09-05-2012 7
  • 8.
    Seminário frameworks 2011/2012 Problema vs Solução • Ou seja: – os requisitos funcionais de um software são facilmente copiados por outro, uma boa solução de interface não. Arlindo Santos 09-05-2012 8
  • 9.
    Seminário frameworks 2011/2012 Problema vs Solução • Solução: – Temos que fornecer formas de re-uso que vão além de código: re-uso de análise, design, código. – Framework orientado a objeto. Arlindo Santos 09-05-2012 9
  • 10.
    Seminário frameworks 2011/2012 Problema vs Solução • Onde o framework entra… – Um framework captura a funcionalidade comum a várias aplicações. – As aplicações devem ter algo razoavelmente grande em comum: pertencer a um mesmo domínio de problema. Arlindo Santos 09-05-2012 10
  • 11.
    Seminário frameworks 2011/2012 Problema vs Solução • Um framework é uma aplicação quase completa, mas com pedaços que faltam! • Ao usar um framework, o trabalho consiste em criar os pedaços que são específicos para sua aplicação. Arlindo Santos 09-05-2012 11
  • 12.
    Seminário frameworks 2011/2012 Padrões vs frameworks • Padrões de projeto de software não são frameworks, pois padrões possuem um nível maior de abstração. • Um framework inclui código, diferentemente de um padrão de projeto. • Um framework pode ser modelado com vários padrões de projeto, e sempre possuem um domínio de uma aplicação particular, algo que não ocorre nos padrões e projeto de software. Arlindo Santos 09-05-2012 12
  • 13.
    Seminário frameworks 2011/2012 Vantagens • Redução de custos • Redução de time-to-market • Deteção de erros – cada funcionalidade está separada por blocos • Segurança • Extensibilidade • Ajuda fácil - comunidade Arlindo Santos 09-05-2012 13
  • 14.
    Seminário frameworks 2011/2012 Vantagens • A longo prazo - Despois do período de familiarização, as vantagens aparecem • Produtividade - Como toda a equipa usa um determinado framework, então usam as mesmas convenções, classes e bibliotecas, a manutenção de um programa fica muito mais ágil (produtividade); • Eliminação das tarefas repetitivas • Facilidade na geração de testes • Geração de documentação Arlindo Santos 09-05-2012 14
  • 15.
    Seminário frameworks 2011/2012 Vantagens • Maximização de re-uso (análise, design, código, testes). • Programadores concentram-se em adicionar valor ao invés de reinventar a roda. • Menos manutenção. • A herança permite alterar ou adicionar funcionalidades. • Estabilização melhor do código (menos defeitos) devido ao seu uso em várias aplicações. • Uso de tecnologias embutidas Arlindo Santos 09-05-2012 15
  • 16.
    Seminário frameworks 2011/2012 Vantagens • Melhor consistência e compatibilidade entre aplicações. • Framework oferece uma forma de empacotar o conhecimento de especialistas sobre domínios de problemas. • Não se perde o conhecimento com a saída de especialistas e o conhecimento pode ser usado/estudado sem a presença do especialista. • Resultado: criação de patrimônio estratégico da empresa (Strategic Asset Building). Arlindo Santos 09-05-2012 16
  • 17.
    Seminário frameworks 2011/2012 Desvantagens • Dificuldade de aprendizagem • Construir um framework é complexo - Necessita de planeamento • Quem pode pensar em longo prazo quando se está competindo "On Internet time"? - Necessário modificar o processo de desenvolvimento e criar novos incentivos - Benefícios são realizados em longo prazo Arlindo Santos 09-05-2012 17
  • 18.
    Seminário frameworks 2011/2012 Características Básicas •Um framework deve ser reusável: – É o propósito final! •Para ser reusável, deve primeiro ser usável: – Bem documentado – Fácil de usar • Deve ser extensível: – O framework contém funcionalidade abstrata (sem implementação) que deve ser completada • Deve ser eficiente: – Devido a seu uso em muitas situações, algumas das quais poderão necessitar de eficiência • Deve ser completo: – Para endereçar o domínio do problema pretendido Arlindo Santos 09-05-2012 18
  • 19.
    Seminário frameworks 2011/2012 Tecnologias embutidas • MVC • ActiveRecord • AJAX (Asynchronous Javascript and XML) • Internacionalização: É o processo de possibilitar que seja facilmente alterada a linguagem da interface e de mensagens de uma determinada aplicação. • ORM • … Arlindo Santos 09-05-2012 19
  • 20.
    Seminário frameworks 2011/2012 Tecnologias embutidas • MVC Arlindo Santos 09-05-2012 20
  • 21.
    Seminário frameworks 2011/2012 Tecnologias embutidas • MVC – View • É a interface do utilizador, é a transformação dos dados do Model para que o utilizador possa interagir com o sistema. – Model • Model é a camada de lógica do MVC que é usada pela camada de apresentação e de acesso ao espaço de armazenamento (ex: base de dados). – Controler • O controller processa e responde a eventos dos utilizadores (GET, POST e entre outros), podendo alterar o estado do Model. Arlindo Santos 09-05-2012 21
  • 22.
    Seminário frameworks 2011/2012 Tecnologias embutidas • MVC – Vantagens • Como o modelo MVC gere múltiplas formas de visualização usando o mesmo modelo, e é fácil manter, testar e atualizar sistemas múltiplos; • É muito simples incluir novos clientes. Inclui-se apenas novos views e controles; • Torna a aplicação escalável; • É possível ter um desenvolvimento em paralelo para o modelo, visualizador e controle pois são independentes; • É mais fácil gerir a complexidade da aplicação dividindo-a em modelo, visualizador e controlador (MVC). Arlindo Santos 09-05-2012 22
  • 23.
    Seminário frameworks 2011/2012 Tecnologias embutidas • MVC – Desvantagens • Requer uma quantidade maior de tempo para analisar e modelar o sistema; • Requer pessoal com conhecimento especializado; • Não é aconselhável para pequenas aplicações. Arlindo Santos 09-05-2012 23
  • 24.
    Seminário frameworks 2011/2012 Tecnologias embutidas • ORM (Object-relational mapping) – O ORM é uma técnica de desenvolvimento utilizada para reduzir a impedância da programação orientada a objetos utilizando base de dados relacionais. As tabelas do base de dados são representadas através de classes e os registos de cada tabela são representados como instâncias das classes correspondentes. – Com esta técnica, o programador não precisa de se preocupar com os comandos em linguagem SQL; irá usar uma interface de programação simples que faz todo o trabalho de persistência. – Não é necessária uma correspondência direta entre as tabelas de dados e as classes do programa. A relação entre as tabelas onde originam os dados e o objeto que os disponibiliza é configurada pelo programador, isolando o código do programa das alterações à organização dos dados nas tabelas do banco de dados. Arlindo Santos 09-05-2012 24
  • 25.
    Seminário frameworks 2011/2012 Tecnologias embutidas • Validation – Indica se o framework tem alguma estrutura de validação embutida em sua estrutura. • Auth module – Indica se a estrutura tem um módulo embutido para assegurar a autenticação do utilizador. • Modules – Indica se a estrutura do framework é modularizada por exemplo, possui um parser da alimentação de RSS, o módulo de separação de pdf´s ou etc; • Tableless – O nome Tableless é um nome mais “publicitário” para se referir a sites que seguem os Padrões. Os sites Tableless não são construídos usando as tables. Elas usam XHTML para apresentar a informação e as Folhas de Estilo (CSS) para formatar essa informação. Pelo motivo de as tables não serem usadas para a estruturação, essa metodologia se chama Tableless. Arlindo Santos 09-05-2012 25
  • 26.
    Seminário frameworks 2011/2012 Tecnologias embutidas • ActiveRecord – Abstrai o programador de conhecer a fundo uma linguagem de manipulação de dados, como a SQL, além de manter toda a aplicação desenvolvida no paradigma orientado a objetos. • Db objects – Indica se a estrutura inclui outros objetos da base de dados, como classes de linguagem de programação orientada a objetos • Templates – Os templates, ou modelos, têm por finalidade separar o design, a parte HTML, da programação, no nosso caso, o PHP. Arlindo Santos 09-05-2012 26
  • 27.
    Seminário frameworks 2011/2012 Tecnologias embutidas • AJAX (Asynchronous Javascript and XML) – Toda página AJAX está em um objeto chamado XMLHTTPRequest, o qual permite que sejam feitas requisições assíncronas ao servidor web, não precisando de atualizações na página ou espera por parte do utilizador. • Caching – Caching é o melhor recurso para a redução de processamento do servidor envolvendo a renderização e lógica da camada de acesso a dados. – Podemos dividir o caching em três tipos básicos: • Cache de Respostas (OutputCache) – O cache de respostas é a forma mais simples de se tirar proveito do sistema de cache, sem necessidade de redesenho ou alterações de código - o conteúdo a ser enviado ao cliente (resposta) é armazenado em memória e disponibilizado para as próximas requisições. De fato, todo o conteúdo dinâmico pode ser armazenado em mecanismos que suportem o HTTP 1.1 (servidor web, navegadores e proxies) de forma que requisições subsequentes sejam servidas diretamente a partir do cache sem execução de código. • Cache de Fragmento – Existem situações onde o cache de toda uma página de resposta não é adequado. Um caso óbvio, seria àquele no qual o desenho da aplicação requerer que algumas partes/seções de uma página específica tenham versões específicas para um determinado grupo de utilizadores (e.g. menu baseado no perfil do utilizador) e que outras partes sejam comuns à todos (e.g. conteúdo genérico c/ notícias gerais). Este é o cenário ideal para o uso do fragment caching. • Cache de Objetos – O objeto de Cache é recriado a cada reinício da aplicação, o que nos lembra uma certa similaridade com o objeto Application. A principal diferença entre os dois reside no fato de que o objeto de Cache proporciona funcionalidade específicas, tais como dependências e políticas de expiração. Arlindo Santos 09-05-2012 27
  • 28.
    Seminário frameworks 2011/2012 Tecnologias embutidas • Integração PEAR – Pear é um sistema de repositório e de distribuição para componentes reutilizáveis de PHP. – Pear é composto por: • Repositório organizado e padronizado de código aberto para programadores de PHP Sistema para a distribuição e manutenção de pacotes. • PFC (PHP Foundation Classes). • Estilo padronizado de código. • Sites e listas de discussão para a comunidade de colaboradores. – O código PEAR é dividido em “pacotes”. Cada pacote é um projeto separado com sua própria equipe de desenvolvimento, número de versão, ciclo da publicação, documentação e uma relação definida a outros pacotes. • Internacionalização – É o processo de possibilitar que seja facilmente alterada a linguagem da interface e de mensagens de uma determinada aplicação. Arlindo Santos 09-05-2012 28
  • 29.
    Seminário frameworks 2011/2012 Documentação detalhada • Uma boa documentação não é somente uma descrição do que é a ferramenta e para que ela serve. – é toda a descrição histórica, – todo um apoio para os programadores como exemplos práticos de sua aplicação, – detalhes da sua criação e implementação, – descrição do comportamento e funcionamento da mesma, – fóruns de discussão, – e demais conceitos abordados acima Arlindo Santos 09-05-2012 29
  • 30.
    Seminário frameworks 2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 30
  • 31.
    Seminário frameworks 2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 31
  • 32.
    Seminário frameworks 2011/2012 Bibliografia • Fayad, M. E. and Schmidt, D. C. (1997). Object-oriented application frameworks. Commun. ACM, 40(10):32–38. Arlindo Santos 09-05-2012 32

Notas do Editor

  • #21 Model-view-controller (MVC) é um padrão de arquitetura de software. Com o aumento da complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model) e o layout (View). Desta forma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.