If you can't read please download the document
Upload
barb
View
71
Download
5
Embed Size (px)
DESCRIPTION
Introdução à Programação “para Web”. Carlos Bazilio Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense. Objetivo. Apresentar aos participantes alguns conceitos básicos atuais relacionados à programação e programação para web - PowerPoint PPT Presentation
Citation preview
Introduo Programao para WebCarlos Bazilio
Depto de Cincia e TecnologiaPlo Universitrio de Rio das OstrasUniversidade Federal Fluminense
ObjetivoApresentar aos participantes alguns conceitos bsicos atuais relacionados programao e programao para webIntroduzir algumas tecnologias, suas vantagens e desvantagens
Lio para um Profissional de ComputaoProstituam-se! Prostituam-se quando o assunto for linguagem de programao, IDE, metodologia, arquitetura, ou qualquer outro tipo de escolha!
Arquitetura
Execuo no Cliente (Browser)HTMLCSS JavascriptXMLXSLTTableless...
HTML
Ttulo da Pgina Esta minha primeira pgina.
CSS
Ttulo da Pgina Esta minha primeira pgina.
CSS pagina.cssDemonstrao: http://www.csszengarden.com/body { background-color : #ffffff; color : #000000;}
TablelessPadro que vem sendo adotado na web para uso massivo de html+cssAlm, no utilizar tabelas html para construo de contedo diferente de tabela (origem do nome)Naturalmente, este uso no deveria ser evitado se o que se deseja construir uma tabelaExemplo: http://www.stopdesign.com/present/2004/ddw-seattle/tables/?no=15
JavaScript
for (i = 0; i < 5; i++){document.write("Alo voc !!!")document.write("")}
JavaScript
function alo(k) { var s = ""; for (i = 0; i < k; i++) { s = s + "Alo voc !!!" s = s + "" } return s } Alouuuuuu document.write(alo(4))
XML
JavaServer PagesNick ToddCampusJSPMeu p de laranja limaVozesBrilhante
XSLT
Meus livrosTtuloAutor
Execuo no Cliente (Browser)Inferno dos web-designers: compatibilidade entre browsers!FirefoxOperaInternet Explorer (IECA)Konqueror
Execuo no ServidorNecessidade dos websites oferecerem contedos dinmicos e atualizadosCiclo de vida da informaes trafegadas entre servidor e cliente (escopo)Linguagens de scriptJSPASPPHPPerl
Execuo no Servidor
_ PHPASPJSPGeneralPHP Hypertext PreprocessorActive Server PagesJava Server Pagessupported language(s)own script languageJScript, VBScript or 5 differentJavaspecificationsruns on almost any platformwebserver extension (IIS)no platform restrictionsfunctionalityfunctionality by modulesmodularly built of COM-objectsreusable components and tagssecuritycomplex code -> complex security; open sourcecomplex code -> complex security; no open sourcecomplex code -> complex security; open sourceperformanceinterpreted languageprecompiled code(?)compiled to Servlets in bytecode (interpreted)database connectivityMySQL-drivers includedActiveX data objects(ADO)by "JDBC" (MSQL, Oracle, Sybase)
Execuo no ServidorServidores WebIISApacheTomcat
IISInternet Information ServerMicrosoftFamoso por apresentar diversos problemas de segurana no passado
ApacheServidor web mais utilizado no mundo atualmente (Fonte: Netcraft)Software LivreEscrito em CExecuta diversas linguagens script: PhP, Perl, ASP, etc.Possui suporte nativo ao MySQLPermite definio de mdulos para extenso do servidorExemplo: suporte para JSP
TomcatImplementao de referncia para JSP/Servlets (Java)Escrito em JavaDevido sua simplicidade e fcil instalao, comumente utilizado em cursos para desenvolvimento web
Servidores de AplicaoEstes servidores oferecem recursos comuns a diferentes aplicaes (autenticao, conexo BDs, suporte a transao, etc) Pensando-se numa arquitetura em camadas, um servidor de aplicao um servidor que hospeda e oferece servios para outras aplicaesCom isso, espera-se que os desenvolvedores poupem tempo para implementao da lgica do negcio
Servidores de AplicaoExemplos:Java: JBoss (Red Hat), WebLogic (BEA), WebSphere (IBM), Geronimo (Apache), Sun Application Server (SUN), Glassfish (baseado no da SUN)Microsoft: .NET Framework
AfinsRSSWeb ServicesAJAX
RSSReally Simple SyndicationFormato padro, baseado emXMLTem sido adotado por websites que disponibilizam informaes 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
Web ServicesProposta:Integrao de sistemas atravs do uso de XML sobre HTTPTecnologias:XMLWSDL (Web Service Description Language)SOAP (Simple Object Access Protocol)Vantagens:Integrao com baixo acoplamentoIndepende das linguagens de implementao
Web Services
Web Services
AJAXAsynchronous Javascript And XMLConstruo de pginas mais dinmicas atravs de chamadas assncronas ao servidorNo uma tecnologia, mas sim uma combinao de tecnologiasXHTML + CSS + XML + XSLT + XMLHttpRequest e JavaScript
AJAX
AJAX
AJAX
Padres de ProjetoUm padro de projeto uma soluo comum para um problema comum encontrado no desenvolvimento de software (Sun);Sedimentao do conceito com o lanamento do livro: Design Patterns: Elements of Reusable Object-Oriented Software;No est amarrado a nenhuma linguagem OO.
Padres de Projeto (GoF Gang of Four)
Padres de ProjetoA utilizao desses padres usualmente implica em algumas vantagens:Facilidade de comunicao: padres possuem nomes, os quais resumem uma soluo que deve ser de conhecimento comum entre equipes de desenvolvimento;Credibilidade: sua implementao estar utilizando solues amplamente testadas e aprovadas;Facilidade de manuteno: padres tendem a reduzir o acoplamento entre componentes, o que implica num sistema de fcil manuteno
Padres de Projeto Exemplo: Faade
import java.util.*;/** "Faade" */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 (Model-View-Controller)http://java.sun.com/blueprints/patterns/MVC-detailed.html
Nosso Plano
Links Interessanteshttp://www.w3schools.com/Site com tutoriais on-line rpidos e com muita qualidadehttp://del.icio.us/carlosbazilioMeus links favoritos disponibilizados on-linehttp://en.wikipedia.org/wiki/Design_PatternsWikipedia sobre Design Patternshttp://www.hideout.com.br/usp/semacomp2005/slides/minicurso.htmlSlides de um minicurso sobre programao em web 2.0