SlideShare uma empresa Scribd logo
Introdução à Programação
Introdução à Programação
“para Web”
“para Web”
Carlos Bazilio
Depto de Ciência e Tecnologia
Pólo Universitário de Rio das Ostras
Universidade Federal Fluminense
Objetivo
Objetivo
• Apresentar aos participantes alguns
conceitos básicos atuais relacionados à
programação e programação para web
• Introduzir algumas tecnologias, suas
vantagens e desvantagens
Lição para um
Lição para um
Profissional de
Profissional de
Computação
Computação
“Prostituam-se! Prostituam-se quando
o assunto for linguagem de
programação, IDE, metodologia,
arquitetura, ou qualquer outro tipo
de escolha!”
Arquitetura
Arquitetura
Execução no Cliente
Execução no Cliente
(Browser)
(Browser)
• HTML
• CSS
• Javascript
• XML
• XSLT
• Tableless
• ...
HTML
HTML
<html>
<head>
<title>Título da Página</title>
</head>
<body>
Esta é minha primeira página.
</body>
</html>
CSS
CSS
<html>
<head>
<link href="pagina.css"
rel="stylesheet" type="text/css" />
<title>Título da Página</title>
</head>
<body>
Esta é minha primeira página.
</body>
</html>
CSS – “pagina.css”
CSS – “pagina.css”
body {
background-color : #ffffff;
color : #000000;
}
• Demonstração:
http://www.csszengarden.com/
Tableless
Tableless
• Padrão que vem sendo adotado na web para
uso massivo de html+css
• Além, não utilizar tabelas html para construção
de conteúdo diferente de tabela (origem do
nome)
• Naturalmente, este uso não deveria ser evitado
se o que se deseja é construir uma tabela
• Exemplo:
http://www.stopdesign.com/present/2004/ddw-
seattle/tables/?no=15
JavaScript
JavaScript
<html>
<body>
<script type="text/javascript">
for (i = 0; i < 5; i++)
{
document.write("Alo você !!!")
document.write("<br />")
}
</script>
</body>
</html>
JavaScript
JavaScript
<html>
<head>
<script type="text/javascript">
function alo(k)
{
var s = "";
for (i = 0; i < k; i++)
{
s = s + "Alo você !!!"
s = s + "<br />"
}
return s
}
</script>
<title>Alouuuuuu</title>
</head>
<body>
<script
type="text/javascript">
document.write(alo(4))
</script>
</body>
</html>
XML
XML
<?xml version="1.0" encoding="UTF-8"?>
<livros>
<livro isbn=“0001”>
<titulo>JavaServer Pages</titulo>
<autor>Nick Todd</autor>
<editora>Campus</editora>
<assunto>JSP</assunto>
</livro>
<livro isbn=“0002”>
<titulo>Meu pé de laranja lima</titulo>
<editora>Vozes</editora>
<autor>Brilhante</autor>
</livro>
</livros>
XSLT
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1"
indent="yes"/>
<xsl:template match="/">
<html><head><title>Meus livros</title></head>
<body>
<table border="1">
<tr><th>Título</th><th>Autor</th></tr>
<xsl:for-each select="//livro">
<tr>
<td><xsl:value-of select="titulo"/></td>
<td><xsl:value-of select="autor"/></td>
</tr>
</xsl:for-each>
</table></body></html>
</xsl:template>
</xsl:stylesheet>
Execução no Cliente
Execução no Cliente
(Browser)
(Browser)
• “Inferno” dos web-designers:
compatibilidade entre browsers!
– Firefox
– Opera
– Internet Explorer (IECA)
– Konqueror
Execução no
Execução no
Servidor
Servidor
• Necessidade dos websites oferecerem
conteúdos dinâmicos e atualizados
• Ciclo de vida da informações trafegadas
entre servidor e cliente (escopo)
• Linguagens de script
– JSP
– ASP
– PHP
– Perl
Execução no
Execução no
Servidor
Servidor
_ PHP ASP JSP
General PHP Hypertext
Preprocessor
Active Server
Pages
Java Server Pages
supported
language(s)
own script
language
JScript, VBScript
or 5 different
Java
specifications runs on almost
any platform
webserver
extension (IIS)
no platform restrictions
functionality functionality by
modules
modularly built of
COM-objects
reusable components and
tags
security complex code ->
complex security;
open source
complex code ->
complex security;
no open source
complex code -> complex
security;
open source
performance interpreted
language
precompiled
code(?)
compiled to Servlets in
bytecode (interpreted)
database
connectivity
MySQL-drivers
included
ActiveX data
objects(ADO)
by "JDBC" (MSQL,
Oracle, Sybase)
Execução no
Execução no
Servidor
Servidor
• Servidores Web
– IIS
– Apache
– Tomcat
IIS
IIS
• Internet Information Server
• Microsoft
• Famoso por apresentar diversos
problemas de segurança no passado
Apache
Apache
• Servidor web mais utilizado no mundo
atualmente (Fonte: Netcraft)
• Software Livre
• Escrito em C
• Executa diversas linguagens script: PhP,
Perl, ASP, etc.
• Possui suporte nativo ao MySQL
• Permite definição de módulos para
extensão do servidor
– Exemplo: suporte para JSP
Tomcat
Tomcat
• Implementação de referência para
JSP/Servlets (Java)
• Escrito em Java
• Devido à sua simplicidade e fácil
instalação, é comumente utilizado em
cursos para desenvolvimento web
Servidores de
Servidores de
Aplicação
Aplicação
• Estes servidores oferecem recursos comuns a
diferentes aplicações (autenticação, conexão à
BDs, suporte a transação, etc)
• Pensando-se numa arquitetura em camadas,
um servidor de aplicação é um servidor que
hospeda e oferece serviços para outras
aplicações
• Com isso, espera-se que os desenvolvedores
poupem tempo para implementação da lógica
do negócio
Servidores de
Servidores de
Aplicação
Aplicação
• Exemplos:
– Java: JBoss (Red Hat), WebLogic (BEA), WebSphere
(IBM), Geronimo (Apache), Sun Application Server
(SUN), Glassfish (baseado no da SUN)
– Microsoft: .NET Framework
Afins
Afins
• RSS
• Web Services
• AJAX
RSS
RSS
• Really Simple Syndication
• Formato padrão, baseado em
XML
• Tem sido adotado por websites que
disponibilizam informações na rede, como
sites de jornais, blogs, sites institucionais,
etc.
• Hoje existem diversos leitores
(agregadores) de RSS: browsers,
programas de e-mail, softwares, etc ..
RSS
RSS
Web Services
Web Services
• Proposta:
– Integração de sistemas através do uso de
XML sobre HTTP
• Tecnologias:
– XML
– WSDL (Web Service Description Language)
– SOAP (Simple Object Access Protocol)
• Vantagens:
– Integração com baixo acoplamento
– Independe das linguagens de implementação
Web Services
Web Services
Web Services
Web Services
AJAX
AJAX
• Asynchronous Javascript And XML
• Construção de páginas mais dinâmicas
através de chamadas assíncronas ao
servidor
• Não é uma tecnologia, mas sim uma
combinação de tecnologias
– XHTML + CSS + XML + XSLT +
XMLHttpRequest e JavaScript
AJAX
AJAX
AJAX
AJAX
AJAX
AJAX
Padrões de Projeto
Padrões de Projeto
• Um padrão de projeto é uma solução
comum para um problema comum
encontrado no desenvolvimento de
software (Sun);
• Sedimentação do conceito com o
lançamento do livro: “Design Patterns:
Elements of Reusable Object-Oriented
Software”;
• Não está amarrado a nenhuma linguagem
OO.
Padrões de Projeto
Padrões de Projeto
(GoF – Gang of Four)
(GoF – Gang of Four)
Padrões de Projeto
Padrões de Projeto
• A utilização desses padrões usualmente implica
em algumas vantagens:
– Facilidade de comunicação: padrões possuem
nomes, os quais resumem uma solução que deve ser
de conhecimento comum entre equipes de
desenvolvimento;
– Credibilidade: sua implementação estará utilizando
soluções amplamente testadas e aprovadas;
– Facilidade de manutenção: padrões tendem a reduzir
o acoplamento entre componentes, o que implica
num sistema de fácil manutenção
Padrões de Projeto –
Padrões de Projeto –
Exemplo: Façade
Exemplo: Façade
import java.util.*;
/** "Façade" */
class UserfriendlyDate {
GregorianCalendar gcal;
public UserfriendlyDate(String isodate_ymd) {
String[] a = isodate_ymd.split("-");
gcal = new GregorianCalendar(Integer.valueOf(a[0]).intValue(),
Integer.valueOf(a[1]).intValue()-1 /* !!! */, Integer.valueOf(a[2]).intValue());
}
public void addDays(int days) { gcal.add(Calendar.DAY_OF_MONTH, days); }
public String toString() {
return new Formatter().format("%1$tY-%1$tm-%1$td", gcal).toString();}
}
/** "Client" */
class FacadePattern
{
public static void main(String[] args)
{
UserfriendlyDate d = new UserfriendlyDate("1980-08-20");
System.out.println("Date: "+d);
d.addDays(20);
System.out.println("20 days after: "+d);
}
}
MVC (
MVC (Model-View-
Model-View-
Controller
Controller)
)
• http://java.sun.com/blueprints/patterns/MVC-detailed.html
Nosso Plano
Nosso Plano
Links Interessantes
Links Interessantes
• http://www.w3schools.com/
– Site com tutoriais on-line rápidos e com muita
qualidade
• http://del.icio.us/carlosbazilio
– Meus links favoritos disponibilizados on-line
• http://en.wikipedia.org/wiki/Design_Patterns
– Wikipedia sobre Design Patterns
• http://www.hideout.com.br/usp/semacomp2005/s
lides/minicurso.html
– Slides de um minicurso sobre programação em web
2.0

Mais conteúdo relacionado

PPT
Introdução à Programação “para Web” de Carlos Bazilio
PPTX
Introdução sobre desenvolvimento web
PPTX
Desenvolvimento web - conceitos, tecnologia e tendências.
PDF
Palestra ror edted
PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
PDF
Plataforma Android: Produtividade Além do SDK
PDF
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
PDF
Desenvolvimento WEB em FrontEnd e TypeScript.pdf
Introdução à Programação “para Web” de Carlos Bazilio
Introdução sobre desenvolvimento web
Desenvolvimento web - conceitos, tecnologia e tendências.
Palestra ror edted
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Plataforma Android: Produtividade Além do SDK
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Desenvolvimento WEB em FrontEnd e TypeScript.pdf

Semelhante a Introdução à Programação “para Web” - Carlos Bazilio (20)

PDF
(A18) LabMM3 - Ajax
PPTX
Ruby on Rails for beginners 2.0
PDF
Desenvolvendo Sistema Cloud e Web Full-stack Developer
PPTX
Introdução ao Front-end no Desenvolvimento Web
PPTX
NodeJS - Tutorial de forma simples e pratica.
PPSX
Web Tools Pt Br
PPTX
Programação web e o front-end
PDF
Técnicas de Programação para a Web
PDF
PPTX
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
PDF
RIA e Flex - Dando formas à Inovação
PPSX
Web tools pt-br
PDF
Aula 05 - Java Script Básico
PDF
Desvendando padrões para desenvolvimento web, base para o sucesso
PDF
TDC2011: Arquitetura de Software Enterprise
PDF
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
PPTX
Treinamento ASP.NET 2014
PDF
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
PPTX
Jsf com hibernate, spring security e maven
(A18) LabMM3 - Ajax
Ruby on Rails for beginners 2.0
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Introdução ao Front-end no Desenvolvimento Web
NodeJS - Tutorial de forma simples e pratica.
Web Tools Pt Br
Programação web e o front-end
Técnicas de Programação para a Web
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
RIA e Flex - Dando formas à Inovação
Web tools pt-br
Aula 05 - Java Script Básico
Desvendando padrões para desenvolvimento web, base para o sucesso
TDC2011: Arquitetura de Software Enterprise
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Treinamento ASP.NET 2014
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Jsf com hibernate, spring security e maven
Anúncio

Mais de RicardoKratz2 (20)

PDF
Aula 10 de Sistemas de Informações Revisão.pdf
PDF
Aula Prática de Ferramenta de BI - Microsoft Power BI
PDF
Introdução à Orientação a Objetos: Aula09_Conceito_OO.pdf
PPT
Aula de Organização de dados em Introdução a Estatística
PPTX
JAVASCRIT – Welcome the web world Arquivo: java-script-basico-unipac-extra-v0...
PDF
A LINGUAGEM DE PROGRAMAÇÃO JAVA II - Programação Oritenada a Objeto
PDF
Aula 04 - Entender as origens e os propósitos da Estatística
PPTX
Trabalho de Sowt do crunchyroll da dsciplina de Jogos empresariais
PPTX
tRABALHO de pesquisa de clima organizacionais.pptx
PPTX
6443d571-bde3-0d83-d76b-65062c9fc97e-1.pptx
PDF
TRABALHO DE JOGOS EMPRESARIAIS: OS MELHORES DO NETFLIX
PPTX
Trabalho de Jogos Empresariais sobre LIBREFLIX
PPTX
Resultado Pesquisa de Clima Organizacional
PPT
Unified Modeling Language
PDF
Aula 06 - Engenharia de Requisitos.pdf
PPT
ALG 10 - Estruturas Condicionais.ppt
PPT
Aula 05- Metodologia de AIA e Analise Tec de Estudos Ambientais.ppt
PPT
Aula 04- Identificacao de Impactos Ambientais.ppt
PPT
QCS-6493_2019-07-18T034241_Sentiment Analysis_PowerBI.ppt
PPT
RegAluMem.ppt
Aula 10 de Sistemas de Informações Revisão.pdf
Aula Prática de Ferramenta de BI - Microsoft Power BI
Introdução à Orientação a Objetos: Aula09_Conceito_OO.pdf
Aula de Organização de dados em Introdução a Estatística
JAVASCRIT – Welcome the web world Arquivo: java-script-basico-unipac-extra-v0...
A LINGUAGEM DE PROGRAMAÇÃO JAVA II - Programação Oritenada a Objeto
Aula 04 - Entender as origens e os propósitos da Estatística
Trabalho de Sowt do crunchyroll da dsciplina de Jogos empresariais
tRABALHO de pesquisa de clima organizacionais.pptx
6443d571-bde3-0d83-d76b-65062c9fc97e-1.pptx
TRABALHO DE JOGOS EMPRESARIAIS: OS MELHORES DO NETFLIX
Trabalho de Jogos Empresariais sobre LIBREFLIX
Resultado Pesquisa de Clima Organizacional
Unified Modeling Language
Aula 06 - Engenharia de Requisitos.pdf
ALG 10 - Estruturas Condicionais.ppt
Aula 05- Metodologia de AIA e Analise Tec de Estudos Ambientais.ppt
Aula 04- Identificacao de Impactos Ambientais.ppt
QCS-6493_2019-07-18T034241_Sentiment Analysis_PowerBI.ppt
RegAluMem.ppt
Anúncio

Último (20)

PPTX
O Romantismo e a identidade brasileira..
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PDF
Organizador Curricular da Educação em Tempo Integral.pdf
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PPT
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
PPTX
Revolução Industrial - Aula Expositiva - 3U4.pptx
PPTX
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
PDF
A Revolução Francesa de 1789 slides história
PPTX
disciplulado curso preparatorio para novos
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PPTX
HISTÓRIA DO BRASIL - anos de Democracia.pptx
PPTX
biossegurança e segurança no trabalho (6).pptx
PDF
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
PDF
O retorno a origem (islã Islamismo)
O Romantismo e a identidade brasileira..
Filosofia Ocidental Antiga 2025 - versão atualizada
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
Organizador Curricular da Educação em Tempo Integral.pdf
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
Revolução Industrial - Aula Expositiva - 3U4.pptx
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
A Revolução Francesa de 1789 slides história
disciplulado curso preparatorio para novos
GUERRAFRIA.pptdddddddddddddddddddddddddx
HISTÓRIA DO BRASIL - anos de Democracia.pptx
biossegurança e segurança no trabalho (6).pptx
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
O retorno a origem (islã Islamismo)

Introdução à Programação “para Web” - Carlos Bazilio

  • 1. Introdução à Programação Introdução à Programação “para Web” “para Web” Carlos Bazilio Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense
  • 2. Objetivo Objetivo • Apresentar aos participantes alguns conceitos básicos atuais relacionados à programação e programação para web • Introduzir algumas tecnologias, suas vantagens e desvantagens
  • 3. Lição para um Lição para um Profissional de Profissional de Computação Computação “Prostituam-se! Prostituam-se quando o assunto for linguagem de programação, IDE, metodologia, arquitetura, ou qualquer outro tipo de escolha!”
  • 5. Execução no Cliente Execução no Cliente (Browser) (Browser) • HTML • CSS • Javascript • XML • XSLT • Tableless • ...
  • 7. CSS CSS <html> <head> <link href="pagina.css" rel="stylesheet" type="text/css" /> <title>Título da Página</title> </head> <body> Esta é minha primeira página. </body> </html>
  • 8. CSS – “pagina.css” CSS – “pagina.css” body { background-color : #ffffff; color : #000000; } • Demonstração: http://www.csszengarden.com/
  • 9. Tableless Tableless • Padrão que vem sendo adotado na web para uso massivo de html+css • Além, não utilizar tabelas html para construção de conteúdo diferente de tabela (origem do nome) • Naturalmente, este uso não deveria ser evitado se o que se deseja é construir uma tabela • Exemplo: http://www.stopdesign.com/present/2004/ddw- seattle/tables/?no=15
  • 10. JavaScript JavaScript <html> <body> <script type="text/javascript"> for (i = 0; i < 5; i++) { document.write("Alo você !!!") document.write("<br />") } </script> </body> </html>
  • 11. JavaScript JavaScript <html> <head> <script type="text/javascript"> function alo(k) { var s = ""; for (i = 0; i < k; i++) { s = s + "Alo você !!!" s = s + "<br />" } return s } </script> <title>Alouuuuuu</title> </head> <body> <script type="text/javascript"> document.write(alo(4)) </script> </body> </html>
  • 12. XML XML <?xml version="1.0" encoding="UTF-8"?> <livros> <livro isbn=“0001”> <titulo>JavaServer Pages</titulo> <autor>Nick Todd</autor> <editora>Campus</editora> <assunto>JSP</assunto> </livro> <livro isbn=“0002”> <titulo>Meu pé de laranja lima</titulo> <editora>Vozes</editora> <autor>Brilhante</autor> </livro> </livros>
  • 13. XSLT XSLT <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"> <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/> <xsl:template match="/"> <html><head><title>Meus livros</title></head> <body> <table border="1"> <tr><th>Título</th><th>Autor</th></tr> <xsl:for-each select="//livro"> <tr> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="autor"/></td> </tr> </xsl:for-each> </table></body></html> </xsl:template> </xsl:stylesheet>
  • 14. Execução no Cliente Execução no Cliente (Browser) (Browser) • “Inferno” dos web-designers: compatibilidade entre browsers! – Firefox – Opera – Internet Explorer (IECA) – Konqueror
  • 15. Execução no Execução no Servidor Servidor • Necessidade dos websites oferecerem conteúdos dinâmicos e atualizados • Ciclo de vida da informações trafegadas entre servidor e cliente (escopo) • Linguagens de script – JSP – ASP – PHP – Perl
  • 16. Execução no Execução no Servidor Servidor _ PHP ASP JSP General PHP Hypertext Preprocessor Active Server Pages Java Server Pages supported language(s) own script language JScript, VBScript or 5 different Java specifications runs on almost any platform webserver extension (IIS) no platform restrictions functionality functionality by modules modularly built of COM-objects reusable components and tags security complex code -> complex security; open source complex code -> complex security; no open source complex code -> complex security; open source performance interpreted language precompiled code(?) compiled to Servlets in bytecode (interpreted) database connectivity MySQL-drivers included ActiveX data objects(ADO) by "JDBC" (MSQL, Oracle, Sybase)
  • 17. Execução no Execução no Servidor Servidor • Servidores Web – IIS – Apache – Tomcat
  • 18. IIS IIS • Internet Information Server • Microsoft • Famoso por apresentar diversos problemas de segurança no passado
  • 19. Apache Apache • Servidor web mais utilizado no mundo atualmente (Fonte: Netcraft) • Software Livre • Escrito em C • Executa diversas linguagens script: PhP, Perl, ASP, etc. • Possui suporte nativo ao MySQL • Permite definição de módulos para extensão do servidor – Exemplo: suporte para JSP
  • 20. Tomcat Tomcat • Implementação de referência para JSP/Servlets (Java) • Escrito em Java • Devido à sua simplicidade e fácil instalação, é comumente utilizado em cursos para desenvolvimento web
  • 21. Servidores de Servidores de Aplicação Aplicação • Estes servidores oferecem recursos comuns a diferentes aplicações (autenticação, conexão à BDs, suporte a transação, etc) • Pensando-se numa arquitetura em camadas, um servidor de aplicação é um servidor que hospeda e oferece serviços para outras aplicações • Com isso, espera-se que os desenvolvedores poupem tempo para implementação da lógica do negócio
  • 22. Servidores de Servidores de Aplicação Aplicação • Exemplos: – Java: JBoss (Red Hat), WebLogic (BEA), WebSphere (IBM), Geronimo (Apache), Sun Application Server (SUN), Glassfish (baseado no da SUN) – Microsoft: .NET Framework
  • 23. Afins Afins • RSS • Web Services • AJAX
  • 24. RSS RSS • Really Simple Syndication • Formato padrão, baseado em XML • Tem sido adotado por websites que disponibilizam informações na rede, como sites de jornais, blogs, sites institucionais, etc. • Hoje existem diversos leitores (agregadores) de RSS: browsers, programas de e-mail, softwares, etc ..
  • 26. Web Services Web Services • Proposta: – Integração de sistemas através do uso de XML sobre HTTP • Tecnologias: – XML – WSDL (Web Service Description Language) – SOAP (Simple Object Access Protocol) • Vantagens: – Integração com baixo acoplamento – Independe das linguagens de implementação
  • 29. AJAX AJAX • Asynchronous Javascript And XML • Construção de páginas mais dinâmicas através de chamadas assíncronas ao servidor • Não é uma tecnologia, mas sim uma combinação de tecnologias – XHTML + CSS + XML + XSLT + XMLHttpRequest e JavaScript
  • 33. Padrões de Projeto Padrões de Projeto • Um padrão de projeto é uma solução comum para um problema comum encontrado no desenvolvimento de software (Sun); • Sedimentação do conceito com o lançamento do livro: “Design Patterns: Elements of Reusable Object-Oriented Software”; • Não está amarrado a nenhuma linguagem OO.
  • 34. Padrões de Projeto Padrões de Projeto (GoF – Gang of Four) (GoF – Gang of Four)
  • 35. Padrões de Projeto Padrões de Projeto • A utilização desses padrões usualmente implica em algumas vantagens: – Facilidade de comunicação: padrões possuem nomes, os quais resumem uma solução que deve ser de conhecimento comum entre equipes de desenvolvimento; – Credibilidade: sua implementação estará utilizando soluções amplamente testadas e aprovadas; – Facilidade de manutenção: padrões tendem a reduzir o acoplamento entre componentes, o que implica num sistema de fácil manutenção
  • 36. Padrões de Projeto – Padrões de Projeto – Exemplo: Façade Exemplo: Façade
  • 37. import java.util.*; /** "Façade" */ class UserfriendlyDate { GregorianCalendar gcal; public UserfriendlyDate(String isodate_ymd) { String[] a = isodate_ymd.split("-"); gcal = new GregorianCalendar(Integer.valueOf(a[0]).intValue(), Integer.valueOf(a[1]).intValue()-1 /* !!! */, Integer.valueOf(a[2]).intValue()); } public void addDays(int days) { gcal.add(Calendar.DAY_OF_MONTH, days); } public String toString() { return new Formatter().format("%1$tY-%1$tm-%1$td", gcal).toString();} } /** "Client" */ class FacadePattern { public static void main(String[] args) { UserfriendlyDate d = new UserfriendlyDate("1980-08-20"); System.out.println("Date: "+d); d.addDays(20); System.out.println("20 days after: "+d); } }
  • 38. MVC ( MVC (Model-View- Model-View- Controller Controller) ) • http://java.sun.com/blueprints/patterns/MVC-detailed.html
  • 40. Links Interessantes Links Interessantes • http://www.w3schools.com/ – Site com tutoriais on-line rápidos e com muita qualidade • http://del.icio.us/carlosbazilio – Meus links favoritos disponibilizados on-line • http://en.wikipedia.org/wiki/Design_Patterns – Wikipedia sobre Design Patterns • http://www.hideout.com.br/usp/semacomp2005/s lides/minicurso.html – Slides de um minicurso sobre programação em web 2.0