SlideShare uma empresa Scribd logo
1 de 32
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

Mais conteúdo relacionado

Mais procurados

Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoInstituto CENTEC
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitosMailson Queiroz
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss DanielChristofolli
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 
Gerenciamento de Projetos de TI
Gerenciamento de Projetos de TIGerenciamento de Projetos de TI
Gerenciamento de Projetos de TIEliseu Castelo
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais okMarcos Morais de Sousa
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 

Mais procurados (20)

Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Gerenciamento de Projetos de TI
Gerenciamento de Projetos de TIGerenciamento de Projetos de TI
Gerenciamento de Projetos de TI
 
Scrum
ScrumScrum
Scrum
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais ok
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 

Semelhante a Seminário sobre frameworks

Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvcJhordam Siqueira
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreRodrigo Kono
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Fernando Henrique
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven DesignÍtalo Bandeira
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoAlexandre Andrade
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 

Semelhante a Seminário sobre frameworks (20)

Reutilização
ReutilizaçãoReutilização
Reutilização
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
 
DDD
DDDDDD
DDD
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
RAD
RADRAD
RAD
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
Desenvolvimento baseado em componentes
Desenvolvimento baseado em componentesDesenvolvimento baseado em componentes
Desenvolvimento baseado em componentes
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 

Mais de Arlindo Santos

Marketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégiasMarketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégiasArlindo Santos
 
Temas dos trabalhos práticos
Temas dos trabalhos práticosTemas dos trabalhos práticos
Temas dos trabalhos práticosArlindo Santos
 
Documento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação DigitalDocumento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação DigitalArlindo Santos
 
Conhecer os clientes e influenciadores
Conhecer os clientes e influenciadoresConhecer os clientes e influenciadores
Conhecer os clientes e influenciadoresArlindo Santos
 
Workshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de ValpaçosWorkshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de ValpaçosArlindo Santos
 
Gestão web sites - visão para além das questões técnicas
Gestão web sites  - visão para além das questões técnicasGestão web sites  - visão para além das questões técnicas
Gestão web sites - visão para além das questões técnicasArlindo Santos
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Motivação para a multimédia
Motivação para a multimédiaMotivação para a multimédia
Motivação para a multimédiaArlindo Santos
 
Guia da Gestão de Projectos Web
Guia da Gestão de Projectos WebGuia da Gestão de Projectos Web
Guia da Gestão de Projectos WebArlindo Santos
 

Mais de Arlindo Santos (12)

Marketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégiasMarketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégias
 
Mobile marketing
Mobile marketingMobile marketing
Mobile marketing
 
Temas dos trabalhos práticos
Temas dos trabalhos práticosTemas dos trabalhos práticos
Temas dos trabalhos práticos
 
Documento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação DigitalDocumento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação Digital
 
Conhecer os clientes e influenciadores
Conhecer os clientes e influenciadoresConhecer os clientes e influenciadores
Conhecer os clientes e influenciadores
 
Workshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de ValpaçosWorkshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de Valpaços
 
Dtd
DtdDtd
Dtd
 
Gestão web sites - visão para além das questões técnicas
Gestão web sites  - visão para além das questões técnicasGestão web sites  - visão para além das questões técnicas
Gestão web sites - visão para além das questões técnicas
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Motivação para a multimédia
Motivação para a multimédiaMotivação para a multimédia
Motivação para a multimédia
 
Arduino
ArduinoArduino
Arduino
 
Guia da Gestão de Projectos Web
Guia da Gestão de Projectos WebGuia da Gestão de Projectos Web
Guia da Gestão de Projectos Web
 

Último

PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 

Último (20)

PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 

Seminário sobre frameworks

  • 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

  1. 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.