Introdução à Programação “para Web”

  • 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