Baixe o app para aproveitar ainda mais
Prévia do material em texto
Ambiente para Desenvolvimento Web Unidade 4 Visão geral das linguagens de programação web Diretor Executivo DAVID LIRA STEPHEN BARROS Gerente Editorial CRISTIANE SILVEIRA CESAR DE OLIVEIRA Projeto Gráfico TIAGO DA ROCHA Autoria HENRIQUE SENA LEANDRO C. CARDOSO AUTORIA Henrique Sena Sou formado em Desenvolvimento de Software e em Sistemas para internet. Iniciei minha carreira profissional utilizando e desenvolvendo aplicações em plataformas open-source voltadas para educação a distância. Não demorou muito para ter minhas primeiras experiências como professor em cursos presenciais, atividade na qual fiquei muito satisfeito com os resultados obtidos. Sou analista de websites e consultor de EAD, com mais de 12 anos de carreira, administro sistemas educacionais para ensino a distância e sou professor de cursos técnicos presenciais. Passei por empresas como a UNINASSAU, Faculdade Joaquim Nabuco, Porto Digital, Ogilvy & Mather, Lunes Comunicação e Ricardo Alexandre Cursos On-line. Sou apaixonado pelo que faço e adoro transmitir minha experiência de vida àqueles que estão iniciando em suas profissões. Por isso fui convidado pela Editora Telesapiens a integrar seu elenco de autores independentes. Conte comigo! Leandro C. Cardoso Possuo graduação em Comunicação Social com habilitação em Design Digital e mestrado em Tecnologias da Inteligência e Design Digital pela PUC-SP, com experiência em direção de arte e criação na área com mais de 20 anos. Passei por empresas como a Laureate International Universities – FMU, FIAM-FAAM, Universidade Anhembi Morumbi e o Centro Paula Souza (FATEC-ETEC). Na Laureate EAD atuei como analista de Desenvolvimento Pedagógico Sênior e como coordenador de Curso Técnico de Comunicação Visual no Centro Paula Souza. Fui revisor técnico e validador de Curso EAD para Clientes Laureate International Universities, DeVry Brasil, UNEF, FAESF, Faculdade Positivo, Uninter, Platos Soluções Educacionais S.A. (Kroton – Universidade Anhaguera). Sou autor de mais de 10 livros didáticos e um dos organizadores da Maratona de Criação e Design do Curso de Comunicação Visual da ETEC Albert Einstein. Sou apaixonado pelo que faço e adoro transmitir minha experiência de vida àqueles que estão iniciando em suas profissões. Por isso fui convidado pela Editora Telesapiens a integrar seu elenco de autores independentes. Estou muito feliz em poder ajudar você nesta fase de muito estudo e trabalho. Conte comigo! ICONOGRÁFICOS Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: OBJETIVO: para o início do desenvolvimento de uma nova compe- tência; DEFINIÇÃO: houver necessidade de se apresentar um novo conceito; NOTA: quando forem necessários obser- vações ou comple- mentações para o seu conhecimento; IMPORTANTE: as observações escritas tiveram que ser priorizadas para você; EXPLICANDO ME- LHOR:algo precisa ser melhor explicado ou detalhado; VOCÊ SABIA? curiosidades e indagações lúdicas sobre o tema em estudo, se forem necessárias; SAIBA MAIS:textos, referências biblio- gráficas e links para aprofundamento do seu conhecimento; REFLITA: se houver a neces- sidade de chamar a atenção sobre algo a ser refletido ou dis- cutido sobre; ACESSE:se for pre- ciso acessar um ou mais sites para fazer download, assistir vídeos, ler textos, ouvir podcast; RESUMINDO: quando for preciso se fazer um resumo acumulativo das últi- mas abordagens; ATIVIDADES:quando alguma atividade de autoaprendizagem for aplicada; TESTANDO: quando o desen- volvimento de uma competência for concluído e questões forem explicadas; SUMÁRIO PHP .................................................................................................................... 12 Hypertext Preprocessor .............................................................................................................. 12 Como exibir o código PHP ........................................................................................................ 18 Noções de máquinas virtuais .................................................................26 Máquinas virtuais .............................................................................................................................26 Utilidades das máquinas virtuais .........................................................................................28 Noções de Java ............................................................................................34 Primeiros passos em JAVA .......................................................................................................34 A arquitetura de aplicação ...................................................................................................... 39 O API da Java ..................................................................................................................................... 40 C#.net ............................................................................................................... 47 Sobre a linguagem .........................................................................................................................47 Características da linguagem ................................................................................................ 49 9 UNIDADE 04 Ambiente para Desenvolvimento Web 10 INTRODUÇÃO Você sabia que, com o conhecimento nas linguagens PHP, JAVA, C# e máquinas virtuais, habilita um profissional para criar os primeiros projetos no ambiente de desenvolvimento para web? Isso mesmo. Por ser as linguagens mais usadas entre os desenvolvedores web PHP (Hypertext Preprocesso), Java e C#, além também do uso de máquinas virtuais durante o desenvolvimento de um sistema para a web. Dessa forma, é importante conhecer como exibir o código PHP (Hypertext Preprocesso), noções dos primeiros passos em Java, sua arquitetura de aplicação e o API da Java. Entendeu? Ao longo desta unidade letiva você vai mergulhar neste universo! Ambiente para Desenvolvimento Web 11 OBJETIVOS Olá. Seja muito bem-vindo à Unidade 4. Nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Interpretar os conceitos básicos sobre a linguagem de programação para Internet PHP (Hypertext Preprocessor) e suas diversas aplicações, aspectos e bibliotecas. 2. Comprender o funcionamento das máquinas virtuais, suas principais funcionalidades e utilidades para programadores e usuários. 3. Reconhecer os principais fundamentos da linguagem Java, entendendo as regras de sintaxe e o paradigma de programação orientada a objetos (OOP). 4. Discernir sobre a potencialidade e características da linguagem de programação C#. Ambiente para Desenvolvimento Web 12 PHP OBJETIVO: Ao término deste capítulo, você será capaz de compreender os conceitos básicos sobre a linguagem de programação para Internet PHP ou Hypertext Preprocessor, e as diversas aplicações, conhecendo seus principais aspectos e bibliotecas. Isto será fundamental para o exercício de sua profissão. E então? Motivado para desenvolver esta competência? Então vamos lá. Avante! Hypertext Preprocessor Para iniciarmos o aprendizado nessa linguagem de programação, precisamos primeiro entender o que é o PHP, um acrônimo que significa Hypertext Preprocessor. Corresponde a uma linguagem de script de código aberto ou open source, como é bastante comum entre os programadores, é muito utilizada especialmente para o desenvolvimento na internet (MILETTO; BERTAGNOLLI, 2014). • Acrônimo: palavra formada pela inicial ou por mais de uma letra de cada um dos segmentos sucessivos de uma locução, ou pela maioria dessas partes. • Preprocessor: pré-processador. • Hypertext: significa hipertexto, um termo que remete a um texto, no qual são agregados outros conjuntos de informação naforma de blocos de textos, palavras, imagens ou sons, cujo acesso se dá por meio de referências específicas, no meio digital, denominadas hiperligacões (SENA, 2017). Ambiente para Desenvolvimento Web 13 Figura 1 – PHP é uma linguagem de script de código aberto ou open source, utilizada especialmente para o desenvolvimento na internet Fonte: Freeeeeepik Vamos começar com um exemplo de código escrito, utilizando a linguagem de PHP: <!DOCTYPE HTML> <html> <head> <title>Exemplo</title> </head> <body> <?php echo “Olá, eu sou um script PHP!”; ?> </body> /html> Ambiente para Desenvolvimento Web 14 Como o PHP apenas funciona no lado do servidor, você só poderá ver os resultados do seu script se estiver em um ambiente de host, para uma melhor compreensão de nossos exemplos é recomendado que você realize o download de algum aplicativo de host. Um aplicativo que pode ser utilizado é o Xampp, mas você pode escolher qualquer outro que seja semelhante e tenha a mesma finalidade, para isso você basta pesquisar programas open source. ACESSE: Você pode encontrar o link para download do Xampp no endereço clicando aqui. Utilizando o Xampp como exemplo, depois de baixar e instalar, ative-o em seu diretório principal de execução, você pode inserir o arquivo com o script que você criou na pasta “HTDOCS”. Em geral, para acessar o serviço iniciado, você precisa abrir o navegador e digitar http://localhost, podendo seguir as instruções do próprio aplicativo instalado. Figura 2 – O PHP apenas funciona no lado do servidor e só poderá ver os resultados do seu script se estiver em um ambiente de host Fonte: Freepik Ambiente para Desenvolvimento Web https://www.apachefriends.org/pt_br/index.html 15 Como devemos escrever o código PHP, a linguagem é delimitada pelas instruções de processamento (tags) de início e fim <?php ?>. Exemplo: <?php echo “Olá mundo!”; ?> FIM Vamos aprender como declarando uma variável em PHP, que começa com o sinal $, seguido do nome da variável: Exemplo: <?php $txt = “Olá Mundo!”; $x = 5; $y = 10.5; ?> Logo após a execução das afirmações acima, a variável $txt irá internalizar o valor “Olá Mundo!”. A variável $x vai conter o valor 5, e a variável $y vai conter o valor de 10,5. IMPORTANTE: Quando você atribui um valor de texto a uma variável, colocar aspas em torno do valor, ao contrário de outras linguagens de programação, PHP não tem comando para declarar uma variável, ele é criado o primeiro momento que você atribuir um valor a ela. Uma variável pode ter um nome curto (como x e y) ou um nome mais descritivo (idade, nome, total, volume), veja a seguir regras para variáveis PHP: • Uma variável começa com o sinal $, seguido do nome da variável. • Um nome de variável deve começar com uma letra ou o caractere sublinhado. Ambiente para Desenvolvimento Web 16 • Um nome de variável não pode começar com um número. • Um nome da variável pode conter apenas caracteres e sublinhados alfanuméricos (AZ, 0-9, e _). • Os nomes das variáveis são case-sensitive ($ idade e $ AGE são duas variáveis diferentes). Agora, vamos conhecer as variáveis de saída, a declaração echo do PHP é frequentemente usado para dados de saída para a tela. Figura 3 – Uma variável PHP pode ter um nome curto ou um nome mais descritivo Fonte: Freepik O exemplo a seguir mostrará como texto de saída e uma variável: Exemplo: <?php $txt = “google.com”; echo “Eu uso o $txt!”; ?> Agora, vamos falar um pouco sobre os detalhes da linguagem PHP, no qual é fracamente tipada, ou seja, o PHP não se importa com o tipo de dados contido em uma variável, permite que o programador não tenha de executar conversões de tipos (cast). O PHP converte automaticamente a variável para o tipo de dados corretos, dependendo do seu valor, já em outras linguagens como C, C++ e Java, o programador deve declarar o nome e o tipo da variável antes de usá-lo. Ambiente para Desenvolvimento Web 17 Figura 4 – Em outras linguagens, que não seja PHP como C, C++ e Java, o programador deve declarar o nome e o tipo da variável antes de usá-lo Fonte: Freepik Tipos de variáveis em PHP: • boolean. • integer. • float (número de ponto flutuante, ou também double). • string. Três tipos compostos: • array. • object. • callable. E, finalmente, dois tipos especiais: • resource. • NULL. As variáveis PHP Âmbito podem ser declaradas em qualquer lugar do script, o âmbito de uma variável é a parte do script em que a variável pode ser referenciada/usada, sendo que PHP tem três escopos de variáveis diferentes, Local, Global e Estático. Ambiente para Desenvolvimento Web 18 Como exibir o código PHP No PHP existem duas maneiras básicas para obter uma saída: echo e print. Iniciaremos utilizando o echo em quase todos os exemplos para visualizarmos o que estamos criando em nossos códigos PHP. O echo simplesmente imprime declarações PHP, sendo echo e print similares, ambos são usados para dados de saída para a tela. As diferenças são pequenas: echo não tem valor de retorno, enquanto print tem um valor de retorno de 1 para que ele possa ser usado em expressões, e echo pode levar vários parâmetros (embora tal uso é raro). Enquanto print pode levar um argumento, echo é ligeiramente mais rápido do que de print, a declaração echo pode ser usada com ou sem parênteses: echo ou echo () exibição de texto. O exemplo a seguir mostra como saída de texto com o comando echo, nesse comando podemos incluir marcação HTML (LAWSON, 2012). Exemplo: <?php echo “<h2>PHP é diversão!</h2>”; echo “Olá, Mundo!<br>”; echo “Estou prestes a aprender PHP!<br>”; echo “Este “,” string “,” was “,” made “,” com vários parâmetros.”; ?> A declaração de print pode ser usado com ou sem parênteses: print ou print (). Assim, no exemplo a seguir podemos ver como texto de saída com o comando de print, note que ele também pode conter marcações em HTML. Exemplo: <?php print “<h2>PHP é bom!</h2>”; print “Olá, Mundo!<br>”; print “Estou prestes a aprender PHP!”; ?> Vejamos mais um exemplo. Ambiente para Desenvolvimento Web 19 <?php $txt1 = “Aprender PHP”; $txt2 = “google.com”; $x = 5; $y = 4; print “<h2>” . $txt1 . “</h2>”; print “Estude PHP em “ . $txt2 . “<br>”; Vamos aprender um pouco mais sobre os diversos tipos de variáveis que podem armazenar dados de diferentes tipos, pois podem fazer coisas variadas. PHP suporta os seguintes tipos de dados: • String. • Integer. • Float (números de ponto flutuante - também chamado duplo). • Boolean. • Array. • Object. • NULL. • Resource. Uma string é uma sequência de caracteres, como “Olá, mundo!”. A cadeia pode ser qualquer texto dentro de aspas. Você pode usar aspas simples ou duplas: <?php $x = “Hello world!”; $y = ‘Hello world!’; echo $x; echo “<br>”; echo $y; ?> Ambiente para Desenvolvimento Web 20 Regras para números inteiros: • Um inteiro deve ter pelo menos um dígito. • Um inteiro não deve ter um ponto decimal. • Um inteiro pode ser positivo ou negativo. • Inteiros podem ser especificados em três formatos: decimal (10 baseado-), hexadecimal (16-base - prefixado com 0x) ou octal (8- base - o prefixo 0). No seguinte exemplo, $ x é um número inteiro, a função PHP var_ dump () retorna o tipo de dados e o valor. Exemplo: <?php $x = 5985; var_dump($x); Um float ou flutuador (número de ponto flutuante) é um número com um ponto decimal ou um número na forma exponencial. No exemplo a seguir, $ x é um float. A função PHP var_dump () retorna o tipo de dados e o valor: Exemplo: <?php $x = 10.365; var_dump($x); ?> Um valor booleano representa dois estados possíveis: verdadeiro ou falso. $x = true; $y = false; Ambiente para Desenvolvimento Web 21 Booleans são muitas vezes utilizados em testes de condicional, uma matriz armazena vários valores em uma única variável, no exemplo a seguir $ carros é umamatriz. A função PHP var_dump () retorna o tipo de dados e o valor: Exemplo: <?php $cars = array(“Volvo”,”BMW”,”Toyota”); var_dump($cars); ?> Um objeto é um tipo de dados que armazena os dados e informações sobre como processar os dados, em PHP, um objeto deve ser declarado explicitamente. Primeiro, devemos declarar uma classe de objeto, para isso usamos a palavra-chave classe, uma estrutura que pode conter propriedades e métodos: Exemplo: <?php class Car { function Car() { $this->model = “VW”; } } // Criando objeto $herbie = new Car(); // Vendo as propriedades do objeto echo $herbie->model; ?> Null é um tipo de dados especial que pode ter apenas um valor, uma variável do tipo de dados NULL não tem nenhum valor atribuído a ele. Ambiente para Desenvolvimento Web 22 Exemplo: <?php $x = “Olá, mundo”; $x = null; var_dump($x); ?> O tipo de recurso especial não é um tipo de dados real, é o armazenamento de uma referência às funções e aos recursos externos para PHP, um exemplo comum de usar o tipo de dados de recursos é uma chamada de banco de dados. Agora, aprofundaremos um pouco mais nosso conhecimento sobre os principais tipos de compostos, conheceremos o Array. DEFINIÇÃO: Array é uma matriz, ou simplesmente uma variável especial, que pode conter mais de um valor de cada vez. Por exemplo, caso tenha uma lista de itens (a lista de nomes de carro, por exemplo), armazenando os carros em variáveis individuais da seguinte forma: • $cars1 = “Volvo”. • $cars2 = “BMW”. • $cars3 = “Toyota”. No entanto, o que se quer é percorrer os carros e encontrar um específico, correto? E se você não tiver 3 carros, mas sim 300? A solução é criar uma matriz! Ela pode conter muitos valores sob um único nome, e você pode acessar os valores por referência a um número de índice. Para criar uma matriz em PHP, a função de matriz () é usada para criar uma matriz: array(), em PHP, existem três tipos de matrizes: • Matrizes indexadas - Arrays com um índice numérico. Ambiente para Desenvolvimento Web 23 • Arrays associativos - Arrays com chaves nomeadas. • As matrizes multidimensionais – matrizes contendo uma ou mais matrizes. Existem duas maneiras de criar as matrizes indexadas, o índice pode ser atribuído automaticamente (índice sempre começa em 0), como este: $cars = array(“Volvo”, “BMW”, “Toyota”). Com o nosso próximo exemplo, você será capaz de criar uma matriz indexada chamada $ carros, atribuindo três elementos a ele, e em seguida, imprimir um texto contendo os valores da seguinte matriz. Exemplo: <?php $cars = array(“Volvo”, “BMW”, “Toyota”); echo “I like “ . $cars[0] . “, “ . $cars[1] . “ and “ . $cars[2] . “.”; ?> Esses são os exemplos iniciais que você deve aprender para criar aplicações básicas em PHP, conheceremos um pouco mais sobre funções em PHP, o verdadeiro poder dele vem de suas funções, pois podemos ter mais de 1000 funções embutidas. Como por exemplo PHP User Defined Functions ou funções definidas pelo usuário, além das funções PHP, podemos criar nossas próprias funções, uma função é um bloco de instruções que podem ser usados repetidamente em um programa. A função não será executada imediatamente quando uma página é carregada, mas por uma chamada para a função, cuja sintaxe é: • Sintaxe function functionName() { code to be executed; } O nome que você deve definir para uma função pode começar com uma letra ou sublinhado (não um número), geralmente, se dá a uma função, um nome que reflete o que ela irá realizar. No exemplo a seguir, criamos Ambiente para Desenvolvimento Web 24 uma função chamada “writeMsg ()”, a chave de abertura encaracolado ({) indica o início do código de função e a chave de fechamento (}) indica o fim da função. A função de saídas “Olá, mundo!” para chamar a função, basta escrever o nome declarado. Exemplo: <?php function writeMsg() { echo “Olá, mundo!”; } writeMsg(); // call the function ?> Informações podem ser passadas para funções por meio de argumentos, que são como uma variável, são especificados após o nome da função, dentro dos parênteses. Você pode adicionar quantos argumentos quiser, basta separá-los com uma vírgula. Exemplo: <?php function familyName($fname) { echo “$fname Refsnes.<br>”; } familyName(“Jani”); familyName(“Hege”); familyName(“Stale”); familyName(“Kai Jim”); familyName(“Borge”); ?> O exemplo tem uma função com um argumento ($ fname). A função familyName () é chamada, também pode passar ao longo de um nome (por exemplo, Jani), e o nome é usado dentro da função, que geram vários diferentes nomes, mas um sobrenome igual. Ambiente para Desenvolvimento Web 25 RESUMINDO: E, então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que realizando um comparativo rápido com outras linguagens de programação, o código PHP é executado no servidor, sendo enviado para o cliente apenas o HTML (HyperText Markup Language) ou Linguagem de Marcação de Hipertexto) limpo, puro de PHP. Dessa maneira, é possível interagir com bancos de dados e aplicações existentes no servidor com a vantagem de não expor o código fonte (a lógica) para o cliente. Com o PHP, é possível coletar dados, criar páginas dinamicamente, enviar e receber cookies com informações, gerar relatórios e mais uma infinidade de aplicações. Ambiente para Desenvolvimento Web 26 Noções de máquinas virtuais OBJETIVO: Ao término deste capítulo, você será capaz de entender o que são máquinas virtuais, por meio das suas principais funcionalidades e por que que são úteis para a profissão de programador e, até como elas são utilizadas por pessoas que não desejam programar e só querem uma segunda opção. Isto será fundamental para o exercício de sua profissão. E então? Motivado para desenvolver esta competência? Então, vamos lá. Avante! Máquinas virtuais Ao contrário das máquinas que estamos habituados a ver em nossas casas, nos cafés, em instituições de ensino, as máquinas virtuais não possuem uma representação física. Na verdade, para uma máquina virtual existir, será necessário que uma máquina física, a “hóspede”, mas não é como se essa máquina virtual fosse se materializar. DEFINIÇÃO: Uma máquina virtual é um software programado para representar todas as funcionalidades de uma máquina física. Uma máquina virtual é uma “duplicata” de uma máquina real, ela possui um sistema operacional a parte, assim como suas próprias funcionalidades. É como se existe um computador dentro de outro computador. Para facilitar o entendimento, imagine que você tem um computador real, um desktop que possui um sistema operacional Windows, e você deseja testar o Linux sem utilizar o dual boot para isso, como você irá fazer? Simples, basta instalar uma máquina virtual que tenha como sistema operacional o Linux, essa máquina estará inserida dentro da máquina real, mas será independente desta. Ambiente para Desenvolvimento Web 27 SAIBA MAIS: Mais informações e esclarecimento de dúvidas sobre o que é uma máquina virtual? Acesse essa definição dada pela Microsoft clicando aqui. Quando está rodando, a máquina virtual demanda uma quantidade X de memória RAM, o que deve ser levado em consideração no momento de emular, você deverá observar se seu computador possui uma boa memória. Também é importante que o computador tenha suporte para dois sistemas distintos rodando ao mesmo tempo, caso ele não suporte, você poderá perder dados e ocasionar diversas falhas em ambos os sistemas. Figura 5 – Na execução da máquina virtual, a demanda de memória RAM deve ser levada em consideração Fonte: Freepik Não compreendeu o seu funcionamento? Vamos explicar melhor. Imagine que você possui um computador antigo com 16 GB de memória RAM, e o sistema operacional de sua máquinaseja Windows, esse sistema ocupa 1 GB de sua memória ao ser rodado, mas, digamos que você deseja rodar o Linux nesta mesma máquina, como você irá fazer? Você deve baixar um programa de emular, e esse programa irá rodar o Linux, enganando o sistema, achando que é o principal, mas na verdade funciona apenas virtualmente, pegando apenas 500 MB da memória RAM. Ambiente para Desenvolvimento Web https://azure.microsoft.com/pt-br/overview/what-is-a-virtual-machine/ 28 Utilidades das máquinas virtuais As máquinas virtuais são consideradas excelentes aliadas dos programadores e interessados, sendo quase que indispensáveis para um resultado bom e ágil de seu trabalho. Figura 6 – As máquinas virtuais são ótimas ferramentas para programadores sendo praticamente indispensáveis para um resultado bom e ágil de seu trabalho Fonte: Freepik As máquinas podem servir para: • Para uso educacional, as máquinas são boas ferramentas para ensinar o básico do sistema sem que corrompa o sistema principal, garantindo assim a segurança. • Ainda para uso educacional, essa ferramenta pode ser utilizada para dar exemplos de screenshots mais reais e precisos. • O programador pode utilizar a máquina para testar uma nova distribuição de um sistema livre, por exemplo, sem que comprometa o sistema operacional principal. • A máquina virtual possibilita a facilidade de programação em diferentes sistemas operacionais, criando assim uma gama maior de possibilidades para o profissional da programação. • Essas máquinas oferecem um reset mais rápido e com menos perca de arquivos, caso seja inesperado, já que os arquivos em regra estarão alocados na máquina principal. Ambiente para Desenvolvimento Web 29 • Testar o mesmo programa em diferentes sistemas operacionais a fim de avaliar o seu desempenho e possíveis aparecimentos de bugs. • Máquinas virtuais são muito mais compactas que máquinas físicas, já que não possuem, de fato, forma física, elas podem ser transferidas e copiadas de acordo com a vontade e necessidade de quem esteja usando. • Sendo uma ferramenta bem mais simples que particionar o disco, essas máquinas permitem criar diversas funcionalidades dentro de um mesmo computador. Observou alguns dos pontos falados acima? Viu que as máquinas são grandes aliadas da segurança de seu computador? A máquina virtual, em diferentes possibilidades, pode salvaguardar o seu computador e seus dados, não compreendeu? Entenderemos melhor a seguir: imagine que você trabalhe com testes de segurança e precisa testar um vírus que possui pouca informação, você preferiria fazer esse teste em uma máquina real ou em uma virtual? Por meio de certos aplicativos, é possível “isolar” a máquina virtual, tornando-a “segura” para testar vírus, mas lembre-se existem vírus que conseguem vasculhar toda uma rede de computadores, por isso, fique atento antes de realizar qualquer teste! Figura 7 – A máquina virtual possibilita a facilidade de programação em diferentes sistemas operacionais Fonte: Freepik Ambiente para Desenvolvimento Web 30 Vimos que essas máquinas são criadas para que possamos rodar diferentes aplicativos ao mesmo tempo, e um grande benefício desta máquina é a otimização de segurança desses aplicativos em cada sistema operacional. SAIBA MAIS: Para saber mais sobre máquinas e segurança, acesse a matéria do G1 clicando aqui. A segurança pode ser, para você, um fator decisivo na escolha de que máquina virtual e ainda, se vai usar uma máquina virtual, por isso, pesquise mais sobre o assunto, e lembre-se, qualquer ambiente é seguro se usado com cautela, lembre-se de sempre observar o que está instalando em ambas as máquinas assim como sua procedência. SAIBA MAIS: Para saber mais sobre a segurança nas máquinas virtuais, acesse o artigo Hypervisor: Segurança em ambientes virtualizados clicando aqui. Agora que já compreendemos um pouco sobre as máquinas virtuais, conheceremos alguns exemplos também chamados de emuladores, lembre-se, não existe a melhor máquina virtual, existe o programa o ideal para cada projeto e também o que você tem mais familiaridade no uso. Figura 8 – As máquinas virtuais também são chamadas de emuladores Fonte: Freepik Ambiente para Desenvolvimento Web http://g1.globo.com/Noticias/Tecnologia/0,,MUL1252543-6174,00-SAIBA+O+QUE+SAO+MAQUINAS+VIRTUAIS+E+COMO+ELAS+AJUDAM+NA+SEGURANCA+DO+PC.html http://www.devmedia.com.br/hypervisor-seguranca-em-ambientes-virtualizados/30993 31 Na computação, um emulador é um software que reproduz as funções de um determinado ambiente, a fim de permitir a execução de outros softwares sobre ele. Pode ser pela transcrição de instruções de um processador alvo para o processador no qual ele está rodando, ou pela interpretação de chamadas para simular o comportamento de um hardware específico. Um exemplo é a VirtualBox, rodando em Windows, Linux e no sistema operacional da Apple, é um software completamente grátis e roda em máquinas mais simples, sem que precise de uma configuração específica para isso. Criado pela Oracle, esse programa permite que você baixe e rode diferentes tipos de sistemas operacionais dentro de outros sistemas, por exemplo, é possível que você instale o Android em sua máquina virtual e ele rode normalmente, mesmo sendo um sistema operacional para smartphone, esse sistema não irá afetar em nada o sistema operacional que está instalado em sua máquina. ACESSE: Para fazer o download desse programa e começar a descobrir suas facilidades, clique aqui. É um programa de fácil download e instalação, sendo intuitivo para o usuário e podendo ser instalado por meio do instalador padrão do seu sistema operacional. Após a instalação, é possível fazer o download de extensões, basta saber qual é a sua necessidade. SAIBA MAIS: Para entender melhor como se instala esse programa, acesse o tutorial criado pelo site Techtudo, clicando aqui. Já a Windows Virtual PC, e atualmente Azure Virtual Machines, limitado apenas ao sistema operacional Windows, o Windows Virtual PC é um software desenvolvido pela Microsoft e gratuito, mas, como visto, é limitado, ele é leve e bem intuitivo e roda diversos PCS virtuais ao mesmo tempo, sendo possível rodar diversas aplicações em cada um, o que é um atrativo para quem usa essa ferramenta. Ambiente para Desenvolvimento Web https://www.virtualbox.org/ http://www.techtudo.com.br/dicas-e-tutoriais/noticia/2013/03/descubra-como-instalar-o-virtualbox-e-seu-pacote-de-extensoes-e-facil.html 32 Nas suas versões anteriores, denominada como Windows Virtual PC, os requisitos básicos para que o programa rode são: • Processador: para que o Virtual PC rode corretamente os processadores básicos são: Intel®, AMD® e VIA® que têm capacidade de rodar a virtualização assistida por hardware, tendo a necessidade de a configuração ser ativada no BIOS. • Memória: o mínimo recomendável para rodar a máquina virtual é 2 GB de memória. • Requisito do disco rígido: o espaço mínimo recomendado para o Virtual PC é de 20 MB no disco rígido para a instalação do mesmo. SAIBA MAIS: Para mais informações sobre o funcionamento das versões atuais, acesse aqui. QEMU como o Virtual PC é limitado apenas para Windows, o QEMU tem a mesma limitação para Linux, e possui todos os benefícios que esse sistema operacional livre oferece, sendo uma ferramenta que funciona conforme o sistema e dá uma certa liberdade de acesso para o usuário que a utiliza. Por ser um software livre e gratuito, ele pode ser considerado um dos “queridinhos” dos programadores, tendo opções de emular todo um sistema operacional diferente, quanto apenas um usuário. Para mais informações desse programa, basta acessar aqui. É importante salientar que os sistemas operacionais se atualizam constantemente, desta maneira, é essencial sempre estar atualizados das opções das máquinas virtuais. Nos quais, apenas foram exemplificadas,os recursos podem ser descontinuados ou mesmo otimizados nas atualizações, é importante sempre buscar informações nos sites dos desenvolvedores. Por fim, é importante considerar que o hipervisor é o assistente que cuida de todas as máquinas virtuais, também considerado como monitor de máquinas virtuais. Além de que, os projetos de sistemas operacionais admitem várias e diferentes organizações de estrutura internas, nos quais encontram-se monolíticas, modelo cliente-servidor e máquinas virtuais. Ambiente para Desenvolvimento Web https://azure.microsoft.com/pt-br/free/virtual-machines/ https://www.qemu.org/ https://www.qemu.org/ 33 RESUMINDO: E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que máquinas virtuais são grandes aliadas dos programadores e as pessoas que desejam ter uma segunda opção de sistema operacional e de configuração. As máquinas conseguem auxiliar os projetos dos programadores, desta maneira, é importante conhecer quais são as suas principais características, observando assim suas principais funcionalidades no ambiente web. Esses arquivos se comportam como um segundo computador, independente da configuração do “computador principal”, são ferramentas que são utilizadas, em sua maioria, por programadores, o que não é impeditivo de pessoas que desejam por inúmeros motivos, instalarem e configurarem uma. Ambiente para Desenvolvimento Web 34 Noções de Java OBJETIVO: Ao término deste capítulo, você será capaz de compreender os principais fundamentos de linguagem Java. Você entenderá regras de sintaxe e paradigma de programação que se baseia no conceito de OOP, recursos que a linguagem Java suporta. Isto será fundamental para o exercício de sua profissão. E, então? Motivado para desenvolver esta competência? Vamos lá. Avante! Primeiros passos em JAVA A tecnologia Java se destaca por ser um verdadeiro “canivete suíço”, permitindo o desenvolvimento de aplicações web, mobile e desktop. O Java também incorpora tecnologias para permitir processamento distribuído e integração com outros sistemas Java ou de outras tecnologias. Para acompanhar este conteúdo, primeiro é importante que você instale e configure um ambiente de desenvolvimento que pode ser efetuado o download no site oficial da Oracle. Normalmente, consiste na versão atual do JDK em Oracle e o Eclipse IDE for Java Developers, no site também está disponível as instruções para instalação da versão sempre atualizada. Figura 9 – A tecnologia Java permite o desenvolvimento de aplicações web, mobile e desktop Fonte: Freepik Ambiente para Desenvolvimento Web 35 De acordo com as atualizações, existe uma configuração do sistema recomendada, para exemplificar em versões anteriores era necessário: • Um sistema que suporte Java SE 8 com pelo menos 2 GB de memória, Java 8 é suportado em Linux®, Windows®, Solaris® e Mac OS X. • Pelo menos 200MB de espaço em disco para instalar os componentes de software e exemplos. A linguagem Java é usada para desenvolver aplicativos para uma ampla variedade de ambientes, de dispositivos consumidores a sistemas corporativos heterogêneos. Figura 10 – A linguagem Java é usada para desenvolver aplicativos para uma ampla variedade de ambiente Fonte: Freepik Quando você programa na plataforma Java, escreve seu código- fonte em arquivos .Java e depois os compila. O compilador verifica seu código nas regras de sintaxe da linguagem e depois grava bytecodeem arquivos .class. Bytecode é um conjunto de instruções destinadas a executar em uma Java virtual machine (JVM). Ao incluir esse nível de abstração, o compilador Java difere-se de outros compiladores de linguagem, que escrevem instruções adequadas para o chipset de CPU no qual o programa é executado. Ambiente para Desenvolvimento Web 36 Figura 11 – Na programação na plataforma Java, é escrito o código-fonte em arquivos Java e depois os compila Fonte: Freepik No tempo de execução, a JVM lê e interpreta arquivos .class e executa as instruções do programa na plataforma de hardware nativa para qual a JVM foi escrita, a JVM interpreta o bytecode como uma CPU interpretaria instruções de linguagem assembly. A diferença é que a JVM é uma parte do software escrita especificamente para uma determinada plataforma. A JVM é o núcleo do princípio “gravação única, execução em qualquer local” da linguagem Java. Seu código pode executar em qualquer chipset para o qual a implementação da JVM adequada está disponível. JVMs estão disponíveis para principais plataformas, como Linux e Windows, e subconjuntos de linguagem Java foram implementados nas JVMs para telefones celulares e chips hobbyist. Ao fazer o download de um Java Development Kit (JDK), você obtém, além do compilador e de outras ferramentas, uma biblioteca de classe completa de utilitários de pré-construção que o ajuda a realizar tarefas de desenvolvimento de aplicativo mais comuns. O Java Runtime Environment (JRE), também conhecido como o tempo de execução Java inclui a JVM, bibliotecas de códigos e componentes necessários para executar programas que são escritos na linguagem Java. O JRE está Ambiente para Desenvolvimento Web 37 disponível para diversas plataformas. É possível redistribuir livremente o JRE com seus aplicativos, de acordo com os termos da licença do JRE, para fornecer aos usuários do aplicativo uma plataforma na qual possam executar seu software. O JRE está incluído no JDK. O Java possui como principais características: • Flexibilidade, o Java é multiplataforma, isto é, os aplicativos desenvolvidos nela, uma vez compilados, podem executar sem alterações em um grande número de sistemas operacionais (write once, run anywere). Outro ponto importante é a adoção do padrão Unicode para mapeamento de caracteres, unificando e aumentando a tabela de caracteres disponíveis e evitando distorções exibidos em diferentes plataformas. • Linguagem Tipada, possui uma estrutura bem definida, com declarações claras de tipos dos dados manipulados. Essa característica, por mais que pareça à primeira vista avessa à flexibilidade, na verdade vem para garantir uma melhor legibilidade e segurança de código implementado. Tipos podem ser primitivos: • Numéricos. • byte, short, char, int, long, float, double. • Representação independentes da plataforma. • boleano (true / false). • boolean. • Representação da plataforma é irrelevante. • Tipos podem ser referência. • Referência a objetos. • Orientação a objetos. A orientação a objetos (ou simplesmente OO) contribui para a organização, ela é capaz de representar os problemas complexos dos sistemas, sendo melhor do que abordagens puramente procedurais. Para Ambiente para Desenvolvimento Web 38 muitos profissionais, a OO é a vilã na curva de aprendizagem do Java. No entanto, uma vez absorvidos, os conceitos básicos de objetos, a criação e manutenção de softwares OO se tornam uma tarefa simples e produtiva. O Java também tem como característica a simplicidade, que talvez a característica mais polêmica em Java. Para adeptos de linguagens script como PHP, ASP, Ruby ou JavaScript, ou programadores experientes em linguagens nos quais o forte são seus ambientes visuais, como Delphi ou Visual Basic, a programação em Java pode não parecer tão simples. Contudo, para programadores vindos de linguagens como C/C++, certamente o Java se mostra uma ferramenta simples, sem deixar muito em poder e flexibilidade. Por exemplo, não há manipulação direta de ponteiros em Java, mas todos os objetos em Java são, no fundo, ponteiros para estruturas em memória. O Java é adequado para projetos com equipes de médio e grande porte, devido ao seu foco na simplificação da manutenção. Figura 12 – O Java é indicado para projetosde médio e grande porte, justamente pelo foco na simplificação da manutenção Fonte: Freepik Vale ressaltar que a flexibilidade é, na maioria dos casos, antagônica à simplicidade. Por exemplo, aplicativos com vários requisitos como suporte a diferentes interfaces de usuário, recursos de internacionalização de interfaces, capazes de rodar em diferentes plataformas. Devendo se comunicar com sistemas legados em outras tecnologias etc., certamente são mais complexos do que softwares sem nenhuma preocupação com requisitos como esses. Ambiente para Desenvolvimento Web 39 A arquitetura de aplicação Ao contrário de plataformas como C, C++ ou Delphi, os programas Java não são compilados para o sistema operacional destino. Ao invés disso, os programas Java são compilados para um formato intermediário chamado bytecode, que são lidos por uma máquina virtual (Java Virtual Machine, ou simplesmente JVM). Em Java, o sistema operacional não interpreta diretamente o código binário gerado pelo compilador, mas chama a JVM para que o faça. É desta maneira que o Java alcança uma de suas mais importantes características: a execução multiplataforma. O lado ruim dessa abordagem é a necessidade da preexistência da JVM para poder rodar qualquer programa Java. No entanto, diversos SOs – Sistemas Operacionais hoje em dia (a maioria das distribuições Linux, por exemplo) já oferecem e sugerem automaticamente a instalação da JVM em seus próprios processos de instalação. A própria Microsoft chegou a participar da implementação de uma máquina virtual para o Windows, no entanto iniciativas para trazer recursos extras, voltados apenas a ambientes Windows foram encarados negativamente. Devido a não padronização com as regras sugeridas pela Sun, o que acabaria com a premissa básica da multiplicidade de plataforma de Java. Após diversas tentativas de fazer a Microsoft voltar atrás em seus interesses, a Sun conseguiu processá-la em tribunais americanos. A polêmica JVM da Microsoft foi então descontinuada e não mais disponibilizada em versões mais recentes do Windows, credita- se a este fato as origens da tecnologia .NET. A presença de uma máquina virtual Java (JVM) instalada na plataforma destino é essencial para a execução de programas. O primeiro passo é chamar o lançador “Java” (ou “Java.exe”, no caso do Windows) passando como parâmetro o bytecode da classe que contém o método principal (main). A partir daí, uma instância da máquina virtual é criada para a execução do programa, entre as várias atribuições da máquina virtual durante a execução de um programa, destacam-se: • Carga de classes em memória, a máquina virtual é responsável por procurar e carregar as classes necessárias em tempo de execução. Caso uma classe necessária não possa ser localizada, um erro é levantado (NoClassDefinitionFound). Ambiente para Desenvolvimento Web 40 • Verificação da integridade do bytecode das classes, eventualmente a máquina virtual efetua verificações de integridade no bytecode encontrado. • Interpretador de comandos, a VM extrai do bytecode comandos que serão traduzidos em tempo de execução para a comandos nativos da plataforma. Por isso, Java é considerada uma linguagem interpretada. • Gerenciamento de memória, a máquina virtual atende às solicitações de alocação de memória na criação de objetos e variáveis de tipos primitivos. A remoção desses elementos em memória também é efetuada pela VM. • Gerenciamento de threads (processos light), aplicativos Java suportam processamento paralelo, ou multithreaded. Também é atribuição da VM a gerência desses processos internos e agendamento de execução pela CPU. Em relação ao hotspot, ou seja a máquina virtual da Sun, o Java é distribuído com uma máquina virtual da própria Sun, chamada de hotspot. O nome deve-se por esta máquina otimizar a execução de programas (identificando códigos muito executados e fazendo uma espécie de cache deles). Existem várias outras máquinas virtuais disponíveis no mercado, cada máquina virtual utiliza recursos internos específicos buscando a execução de programas mais eficiente possível. Também é importante considerar que a notação @Path é usada para indicar que uma classe é um Web Service JAX-RS. O API da Java O aprendizado da API do Java é muito importante, pois o Java possui uma API extensa. São encontradas tecnologias para criação de interface de usuário, realização de cálculos matemáticos, integrações com outros sistemas, entrada e saída de dados para arquivos ou por rede, gerenciamento de coleções de dados, utilidades gerais, entre outras. Além da API do Java, o desenvolvedor pode recorrer a bibliotecas (APIs e framewors) elaboradas por terceiros para incorporar outros recursos ao programa. Ambiente para Desenvolvimento Web 41 Na base da imagem, você pode ver exemplos de sistemas operacionais onde aplicações Java deverão rodar. Acima deles há a máquina virtual, a JVM da Sun, disponível em qualquer download do Java SE é patenteada sob a marca hostpot. Apesar de uso gratuito, sua licença sempre foi motivo de muita polêmica com o mundo open source, free soft. Há outras JVMs disponíveis no mercado, mas provavelmente todo programador Java aprendeu utilizando a JVM. Ela possui duas maneiras de executar o seu programa, essas maneiras diferem no mecanismo de compilação just-in-time. Não trataremos deste assunto. Acima da camada da JVM, há várias camadas da API (bibliotecas) disponibilizada no download, a camada marrom trata das bibliotecas em geral disponíveis. As bibliotecas em roxo são chamadas de integração (Integration libraries) porque dão suporte a programas Java que precisarão de implementações de terceiros. Por exemplo, a biblioteca JDBC (Java Database Conectivity) provê acesso homogêneo a diversos bancos de dados, no qual ela requer a API particular do banco (driver) para poder trabalhar. A última camada de API é responsável pelas diversas maneiras de interagir com o usuário, componentes gráficos (Swing), manipulação de eventos relatados pelo sistema operacional (AWT), execução de sons (Sound) são exemplos dessas interações. Acima das bibliotecas, em verde, há as ferramentas úteis para distribuir e executar programas Java, por exemplo, o Java Plug-in trata da instalação da JVM em diversos browsers como IE (Edige) e Firefox. A JVM, as bibliotecas e as ferramentas de distribuição Java fazem parte do ambiente de execução Java (JRE – Java Runtime Environment), plataforma mínima necessária para rodar qualquer programa Java. Em outras palavras, para executar seu programa Java, a máquina do cliente precisa ter pelo menos a JRE instalada. As outras ferramentas, dispostas na faixa amarela, são úteis exclusivamente ao desenvolvedor, entre elas, temos: • O compilador (Javac). • O executável que irá carregar a JVM (Java). • Uma ferramenta de geração de documentação baseada em comentários nos códigos (Javadoc), empacotador útil para criar “executáveis” (jar). Ambiente para Desenvolvimento Web 42 Tudo isso com as regras de sintaxe da linguagem (seguidas pelo compilador e máquina virtual) compõem o Java Development Kit (JDK), é o kit de ferramentas disponíveis para se desenvolver em Java. As ferramentas são o compilador, uma implementação da especificação mais atual da JVM, além de bibliotecas (classes), códigos-fontes dessas bibliotecas, exemplos, documentações e uma série de outras ferramentas. A primeira versão disponibilizada do JDK, em 1996, trazia apenas 211 classes em suas bibliotecas, e logo foi percebido que ela ainda estava imatura para suprir as necessidades do programador. Para se ter uma ideia, não havia suporte, nem sequer as rotinas básicas de impressão, ela foi logo substituída pela versão 1.1, com mais do dobro da quantidade de classes. Em 1998, foi lançada a versão 1.2 do JDK, com inúmeras melhorias e novas funcionalidades, trêsdias após o lançamento, o departamento de marketing da Sun mudou o nome do JDK para Java 2 Standard Edition Software. Development Toolkit Version 1.2, o que deu início a confusão de siglas e versões em Java, a partir daí, surgiram siglas como J2SDK, J2SE SDK, entre outras não oficiais. A ideia de chamar a linguagem de Java 2, dizem alguns, foi devida à vontade de diferenciar Java da JavaScript da Netscape (confusão que até hoje muita gente ainda faz). A outra explicação se dá à divisão do JDK em três grandes projetos com o número dois soando com um “to” (para): • Micro Edition: especificações da edição voltada a dispositivos com poucos recursos de memória. Ficou claro que enquanto o JDK evolui, sua API foi se tornando maior, mais elaborada e, consequentemente, menos aplicável a esse mundo. A ideia da Micro Edition é definir especificações e criar tecnologias e APIs mais preocupadas com ambientes pequenos e recursos escassos. • Standard Edition: Foi onde o JDK anterior, revisto, melhorado e ampliado se encaixou. Novos recursos como a API de componentes desktop gráficos Swing (disponível em download extra no JDK 1.1) foram incorporados. A plataforma Standard foi focada em desenvolvimento de sistemas desktop, standalone ou mesmo capazes de se comunicar com outros recursos na rede e Ambiente para Desenvolvimento Web 43 até mesmo outras aplicações Java remotas, por meio de sockets ou das chamadas Java RMI (Remote Method Invocation), uma versão simplificada, Java nas pontas, de componentes distribuídos ao estilo CORBA. • Enterprise Edition: edição voltada a servidores de aplicações corporativas. Consiste na definição de serviços, ou seja, aplicações rodando em background em uma ou mais máquinas, aguardando para responder a conexões em portas específicas e fornecer serviços determinados, como por exemplo, o serviço web (HTTP). Como a imagem sugere, o ambiente Enterprise requer as bibliotecas Standard para funcionar. A versão 1.3 apesar de aumentar consideravelmente o volume de classes da API Standard, não trouxe nada de significativo a ponto de chamar a linguagem de Java 3. Apenas o número da versão da edição Standard passou para 1.3 e a linguagem ainda ficou como Java 2. Com a versão 1.4 não foi diferente. Houve avanços não só na API, mas na sintaxe da linguagem como a possibilidade de criação de classes no corpo de outras classes (classes internas ou aninhadas), mas a linguagem continuou Java 2, JDK 1.4. A versão 5.0 foi a primeira versão desde o JDK 1.1 que atualizou a linguagem Java de maneira significativa. Até mesmo a versão 1.2, que originou o termo Java 2 e subdividiu os rumos da API em Micro, Standard e Enterprise, não trouxe mudanças fortes de sintaxe. Com o seu lançamento, acabou a era Java 2. A comunidade Java percebeu que os dois complicaram mais do que ajudaram. A partir de então, a linguagem é apenas Java, vai evoluir no primeiro dígito (5.0, 6.0, 7.0, etc.) e contar com updates, ex: Java SE 6.0 Update 1. O codinome do projeto Java Standard Edition 5.0 (JSE 5.0) foi Tiger para mostrar o foco na força da comunidade Java e na tecnologia em geral. Apesar da mudança, a versão técnica do JDK ainda ficou em 1.5, 1.6, etc. Algo ainda confuso, mas entenda apenas que JSE 1.5 e 5.0 falam da mesma coisa. A versão 6.0 veio focada na velocidade de aplicações Java, tema em que ela conquistou certa má fama, daí seu codinome Mustang, não Ambiente para Desenvolvimento Web 44 trouxe mudanças significativas na linguagem, nem mesmo na API. Desde o lançamento da versão 5.0, que a comunidade Java vem trabalhando na especificação da JSE 7.0 (Dolphin), algo ainda vago para podermos tecer alguma opinião. Vale frisar que em Java, as tecnologias são definidas em especificações, diversas empresas participam do JCP (Java Community Process – www.jcp.org), definindo e debatendo os rumos dos inúmeros subprojetos sobre a tecnologia Java. Antes que você procure baixar a Java Enterprise Edition, por acreditar que ela é uma versão mais elaborada do que a Standard, entenda que são coisas totalmente distintas. A Enterprise define temas como Servlets (que são ferramentas utilizadas para fornecer aos desenvolvedores uma solução Java permitindo criar aplicações web), JSP, EJBs e diversas outras tecnologias que não devem ser seu foco, no momento, dessa maneira é sempre importante estar atento às versões e às documentações no site oficial. É importante salientar que em alguns casos a descompilação é algo não desejável pelo desenvolvedor, por expor detalhes internos do programa e abrir margem para alterações maliciosas. Evitar a descompilação não é possível, mas pode-se utilizar ferramentas chamadas ofuscadores de códigos, que “embaralham” o código original antes da compilação, resultando num código praticamente incompreensível quando descompilado. É importante testar a instalação e configuração, vamos ressaltar mais uma vez que é recomendado verificar as versões mais recentes e a indicação do fornecedor de procedimentos de testes e configuração, iremos exemplificar o “Java version”, que trará a versão da máquina virtual encontrada ou uma mensagem de erro caso o executável Java não tenha sido encontrado. O executável Javac chama o compilador, como não informamos que código compilar, ele descarregou as opções de chamada para nos ajudar. Caso eles não forem encontrados, volte à etapa anterior para verificar o que foi configurado errado. No Windows, encerre o prompt e inicie outro após efetuar qualquer ajuste nas variáveis de ambiente. No Linux, isso vai depender de que local você escreveu as linhas que configuram o ambiente. Experimente executar as configurações diretamente no prompt e testar se tudo funcionou corretamente, só depois de funcionar, adicione essas linhas. Ambiente para Desenvolvimento Web 45 Na situação de ambientes de desenvolvimento integrado, apesar de ser possível desenvolver qualquer programa Java apenas com o JDK, na prática, é altamente recomendado o uso de IDEs apropriadas para ganho de produtividade. Existem várias IDEs compatíveis com o Java no mercado, muitas delas gratuitas e de código aberto, e praticamente todas elas trazem recursos como geração automática de código, interface amigável, assistentes para configuração de projetos e recursos, recursos de “autocompletar”, macros de comandos, ferramentas de arrastar e soltar etc. Um programa Java desenvolvido numa IDE pode ser opcionalmente compilado e executado diretamente pelo JDK, por se tratar de código 100% Java. É possível também mesclar diferentes IDEs no desenvolvimento de um mesmo projeto. Praticamente todas as IDEs são orientadas a projeto, ou seja, o primeiro elemento a ser criado é o projeto, ou a coleção de recursos (códigos-fonte, bytecode, imagens, arquivos de configurações, bibliotecas etc.) relativos a um projeto específico. É o conceito de projeto que facilita a compilação e execução do programa como um todo. Em Java, não há vida fora das classes, as instruções devem ser agrupadas em métodos (operações), ao chamar um método todas estas instruções serão executadas em sequência. Métodos são operações agrupadas para serem executadas no momento de chamada, o método main será chamado pela VM ao executar o programa. Sua declaração (assinatura) será detalhada adiante, a assinatura de qualquer método deve ser sucedida por parênteses, mesmo que não venham com nada dentro. O corpo do método é tudo o que vier entre suas chaves. Chaves delimitam blocos de código. No interior de métodos, é possível inserir comentários em linha (linhas iniciadas por //) e comentários em bloco (uma ou mais linhas entre os sinais /* e */). Ainda no corpo dos métodos, normalmente, escrevemos chamadas a outros métodos que serão executadas na ordem linear em que forem escritas. O println é um método do objeto out, atributo de System, uma classefornecida na JRE que representa a própria VM, por meio dela é possível interagir com o console de onde o programa foi chamado (out é o objeto de saída, println, escrever uma linha na saída), ou mesmo interromper a execução do programa (System.exit(0)). Ao final de tudo, é chamado o Ambiente para Desenvolvimento Web 46 método em Java, deve-se escrever o ponto-e-vírgula, sob pena do código nem ser compilado. Acima de algumas declarações, é possível inserir comentários de blocos, neste caso, com mais um asterisco no sinal de abertura (/**) e um novo asterisco por linha. Esses blocos especiais serão lidos por um programa fornecido no JDK (Javadoc) a fim de gerar manuais HTML. É importante revisar que o HTML e XML, identificam elementos em uma página e utilizam sintaxes similares, mas o HTML descreve a aparência e as ações em uma página na rede e XML descreve o que cada trecho de dados é ou representa, descrevendo assim o conteúdo do documento. RESUMINDO: E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que a tecnologia Java foi desenvolvida pela empresa Sun Microsystems em 1995, como um recurso a ser incorporado no Netscape Navigator, navegador de internet líder de mercado naquela época. O Java procurava endereçar um problema complexo: permitir que aplicações, uma vez compiladas, pudessem executar em diferentes plataformas em todo mundo. Em 2008, a tecnologia Java já estava presente em uma grande variedade de dispositivos, de smartcards a servidores, passando por telefones celulares e computadores pessoais (e não se limitando a estes). Contando com o suporte de uma comunidade de mais de 6 milhões de desenvolvedores, na época e atualmente continuado sendo uma ferramenta bastante importante e utilizada. Ambiente para Desenvolvimento Web 47 C#.net OBJETIVO: Ao término deste capítulo, você será capaz de compreender os principais conceitos relativos à linguagem de programação C#, bem como suas principais utilidades e funcionalidades, vendo um passo-a-passo básico introdutório a essa linguagem. Observando como essa linguagem pode ser utilizada no dia a dia do programador web. Isto será fundamental para o exercício de sua profissão. E então? Motivado para desenvolver esta competência? Vamos lá. Avante! Sobre a linguagem A C# é uma das linguagens de programação voltadas para objetos, que busca conectar diversos códigos as funções do hardware, servindo de ponte do software e da parte física. Essa linguagem foi criada para funcionar e ser um mecanismo utilizado pela plataforma criada também pela Microsoft chamada .NET, não sabe o que é essa plataforma? Vamos conhecer mais sobre ela. Considerado um framework parecido com o Java, a plataforma .NET funciona como um enorme encontro de ferramentas, segundo a própria Microsoft ela funciona como um integrador de blocos de programação, oferecendo assim diversas aplicações para o desenvolvimento completo. O framework .NET vem para unir diversas linguagens, incluindo a C#, e podemos citar como alguns de seus diferenciais e características: • Sendo um framework considerado amplo, o .NET dispõe de compatibilidade para diversos tipos de programação diferentes e integra muito bem as linguagens criadas pela Microsoft. • Ele funciona como um excelente gerenciador de tarefas e aplicações diversas, basta ser programado para tal. • Ele é ótimo em executar aplicações. Ambiente para Desenvolvimento Web 48 • Possui uma aplicação voltada para o desenvolvimento para web, a chamada ASP.NET, o que auxilia muito o desenvolvedor que deseja ser mais preciso em suas aplicações ou trabalhar com uma ferramenta própria. • A ferramenta voltada para web oferece uma compatibilidade para as maiores linguagens de programação, como o HTML e o CSS. • Ele funciona em qualquer dispositivo desde que este esteja previamente configurado para receber esse framework (DUCKETT, 2016). Entendeu agora como funciona o framework .NET? Então, podemos partir para a linguagem que foi escrita em conjunto e para funcionar neste framework, a C#. VOCÊ SABIA? Ficou curioso ou teve dificuldades para pronunciar o nome desta linguagem? Ela não é chamada de “C jogo da velha”, sua pronúncia sairá como um “C Xarpe”, agora você poderá pronunciar esse nome com segurança e confiança. Já vimos que essa linguagem foi criada pela Microsoft, e funciona orientada a objetos, mas, você sabe por que ela é considerada uma linguagem ampla? A empresa que a desenvolveu, afim de dar uma maior credibilidade e torná-la mais segura, pleito para que ela passasse pela padronização formal. Padronização criada por uma associação voltada à padronização de sistemas, a chamada ECMA, e, além dessa padronização ela conta com o certificado de qualidade ISO, que já abordamos em outro módulo de conhecimento. E quais foram as versões que o C#? Em resumo, são as identificadas nas figuras a seguir, lembrando que já pode existir versões atuais. Ambiente para Desenvolvimento Web 49 Figura 13 – A linguagem C# foi escrita em conjunto para funcionar no framework .NET Fonte: Freepik Figura 14 – As versões que o C# lembrando que já pode existir versões atuais C# 1.0 C# 2.0 C# 3.0 C# 4.0 C# 5.0 C# 6.0 C# 7.0 C# 8.0 Fonte: Sena (2017, p. 15) Em cada versão liberada pela Microsoft, os bugs de sistema eram resolvidos e novas funcionalidades eram inseridas, além da eficiência ser cada vez mais ampliada, graças ao constante trabalho da empresa. Características da linguagem Em cada versão liberada pela Microsoft, os bugs de sistema eram resolvidos e novas funcionalidades eram inseridas, além da eficiência ser cada vez mais ampliada, graças ao constante trabalho da empresa. Já vimos o processo de criação da linguagem, vamos ver agora um pouco mais sobre suas características e outras informações que podem ser relevantes para aqueles que desejam seguir na programação para web. A linguagem C# foi criada se baseando em diversas linguagens, Ambiente para Desenvolvimento Web 50 como Java e C++, essa inspiração veio desde a maneira de sua criação até pelo fato dela ser feita com a junção dos principais pontos positivos dessas mesmas linguagens, assim se tornando uma linguagem atrativa para os desenvolvedores que desejam migrar para .NET. Criando um tipo de Frankenstein moderno, a Microsoft conseguiu chamar atenção dos programadores graças ao poder dessa linguagem de unir todos os pontos positivos das outras. Sua forma de construção é bem simples, tendo semelhanças com as linguagens C e, mais uma vez, a linguagem básica Java, ela procurou simplificar a complexidade da linguagem C++, assim tendo uma vasta gama de recursos disponíveis para a utilização do desenvolvedor. C# é uma linguagem orientada a objetos (outro exemplo é a Smalltalk), sendo assim ela tem suporte a conceitos como polimorfismo, herança encapsulamento (por exemplo HttpSessionState), suas variáveis e métodos são encapsulados dentro de uma classe, além disso C# é bastante utilizado na codificação do .NET e foi a primeira linguagem da família C/C++ orientada a componentes. As principais características da sua sintaxe são o suporte, a DLL’s, é case sensitiva, é fortemente tipada, assim como o Java, suas classes implementar várias interfaces. Fica de responsabilidade do .NET Framework fazer a gerência de memória Figura 15 – A construção do C# é similar com as linguagens C e a linguagem básica Java procurando simplificar a complexidade da linguagem C++ Fonte: Freepik Ambiente para Desenvolvimento Web 51 Viu algumas de suas características? Para melhor visualizar vamos tipifica-las: • Linguagem simples e de fácil manuseio de profissionais ou estudantes que estejam criando por essa linguagem. • Melhoria de bugs de outras linguagens.• Tem características positivas de diversas linguagens, sendo a melhor em diversos pontos quanto a programação. • Por ser orientada a objetos, ela consegue cumprir com diversos objetivos comuns, sem precisa utilizar diferentes linguagens. • É considerada completa e robusta, com poucos bugs e “fechada”, isto quer dizer, é fluída e não possui uma confusão de informações. • É padronizada. • É considerada uma linguagem durável, que permite ao programador ter uma “paz” por maior tempo quando o assunto é durabilidade da página ou da aplicação criada. Agora que já vimos os conceitos e as características básicas, veremos como criar nosso primeiro código. SAIBA MAIS: Para conhecer mais sobre essa linguagem, o site da Microsoft dispõe de diversas informações sobre ela, acesse clicando aqui. Por ser uma linguagem criada pela Microsoft, é aconselhado que utilizemos um editor de texto como o Visual Studio, mas se você não se sentir confortável com esse, poderá criar em outro. Como em toda programação, é preciso que sejam cumpridos alguns passos básicos para criarmos o primeiro código, veremos esses passos abaixo, utilizando Visual Studio, como exemplo: • Escolha e se familiarize minimamente com algum editor de texto, essa linguagem exige um conhecimento mínimo de editores. Ambiente para Desenvolvimento Web https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/index 52 • Após familiarizado, crie um novo arquivo, no Visual Studio o caminho é: Arquivo > Novo > Projeto. • Para organizar melhor o seu código, nomeie-o. • No Visual Studio irá aparecer uma nova página chamada Program. cs, essa é uma página básica, criada automaticamente. • Após abrir essa página, você deverá trocar o código que aparecer, a própria página da Microsoft aconselha a substituir pelo seguinte código: // A Hello World! program in C#. using System; namespace HelloWorld { class Hello { static void Main() { Console.WriteLine(“Hello World!”); // Keep the console window open in debug mode. Console.WriteLine(“Press any key to exit.”); Console.ReadKey(); } } } Após mudar o código, para que ele seja executado pela máquina, basta clicar em F5, lembrando que é apenas um exemplo, de acordo com a atualização do programa Visual Studio, ou da própria linguagem, podem acontecer alterações. Para melhor aprendizado, é importante verificar alguns exemplos de códigos, com a linguagem C#, você consegue criar grupos de interação, veremos um exemplo de como é essa programação. Ambiente para Desenvolvimento Web 53 // Bind to the domain that this user is currently connected to. DirectoryEntry dom = new DirectoryEntry(); // Find the container (in this case, the Consulting organizational unit) that you // wish to add the new group to. DirectoryEntry ou = dom.Children.Find(“OU=Consulting”); // Add the new group Practice Managers. DirectoryEntry group = ou.Children.Add(“CN=Practice Managers”, “group”); // Set the samAccountName for the new group. group.Properties[“samAccountName”].Value = “pracmans”; // Commit the new group to the directory. group.CommitChanges(); Percebeu como essa linguagem pode ser simples em alguns aspectos e complicada em outros, tenha bastante atenção quando for manuseá-la. Ela oferece diversas maneiras de programação para um mesmo fim, por exemplo, o comando anterior pode ser executado, também, dessa maneira: // Bind to the domain that this user is currently connected to. DirectoryEntry dom = new DirectoryEntry(); // Find the container (in this case, the Consulting organizational unit) that you // wish to add the Full Time Employees distribution list to. DirectoryEntry ou = dom.Children.Find(“OU=Consulting”); // Add the Full Time Employees distribution list. DirectoryEntry dl = ou.Children.Add(“CN=Full Time Employees”, “group”); // Set the group type to global. dl.Properties[“groupType”].Value = ActiveDs.ADS_GROUP_TYPE_ENUM. ADS_GROUP_TYPE_GLOBAL_GROUP; // Commit the new group to the directory. dl.CommitChanges(); Ambiente para Desenvolvimento Web 54 É importante conhecer os elementos de um programa C#, vimos que para programarmos, cada linguagem possui seus próprios termos e significados, na C# não é diferente. Figura 16 – A linguagem C# também possui seus próprios termos e significados Fonte: Wikimedia Commons No C# também existem parâmetros que devem ser seguidos, elementos básicos que a programação deve conter, no caso do C# esses elementos são: • Namespace: considerada o arquivo que se recorre para buscar algo, como uma biblioteca, o Namespace é fundamental para a criação de qualquer código em C#, essa biblioteca delimita alguns fatores que serão usados em sua programação. • Classe: sendo um dos fatores limitados pela Namespace, a classe funciona como um depósito de informações, em que os dados são inseridos. • Main: considerada como um espelho de outras linguagens de programação, esse arquivo é considerado básico para a programação. • Declaração: a declaração funciona como, em geral, toda a programação, e é por onde as informações são anexadas ao arquivo. Ambiente para Desenvolvimento Web 55 Pontos que devem ser observados, nesta linguagem, são as chamadas palavras-chave, que funcionam como um link, veja a seguir algumas palavras. ADD, usada para acessar um arquivo personalizado; GROUP, corresponde a um valor atribuído ao grupo, essa palavra significa uma cláusula; SELECT, utilizada, basicamente, para realizar consultas no código; VALUE, é utilizado como referência e deve ser atribuído a uma propriedade, e pode conter diversos números e ASYNC, é um modificador, que funciona como assíncrono. Também é importante considerar que a classe DefaultModelBinder é responsável por converter os dados provenientes de requisições HTTP em objetos “.Net” requeridos como parâmetros de Actions Methods. E os três modelos de desenvolvimento suportados pela ASP.Net são Web Pages, MVC e Web Forms. RESUMINDO: E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido que no Ambiente para Desenvolvimento Web é importante o conhecimento sobre a linguagem de programação C#.net. Isso pode ser útil para o programador, dessa maneira, é importante saber como podemos utilizá-la para a programação voltada à internet. Tendo sido criada pela Microsoft, essa linguagem vem para ser eficiente e simples, de maneira a facilitar ainda mais o trabalho do desenvolvedor web. Ambiente para Desenvolvimento Web 56 REFERÊNCIAS DUCKETT, J. HTML e CSS Projete e Construa Websites. Rio de Janeiro: Alta Books, 2016. LAWSON, B.; SHARP, R. Introdução ao HTML 5. Rio de Janeiro: Alta Books, 2012. MILETTO, M.; BERTAGNOLLI, C. Desenvolvimento de Software II: Introdução ao Desenvolvimento Web com HTML, CSS, JavaScript e PHP. Porto Alegre: Bookman, 2014. SENA, H. Ambiente para Desenvolvimento Web: Arquitetura Web. Recife: Uninassau, 2017. Ambiente para Desenvolvimento Web _x5ng43pd8kjl _dssb8ovzblej _as6luqfigxk8 _hdvhsq58kudg _GoBack PHP Hypertext Preprocessor Como exibir o código PHP Noções de máquinas virtuais Máquinas virtuais Utilidades das máquinas virtuais Noções de Java Primeiros passos em JAVA A arquitetura de aplicação O API da Java C#.net Sobre a linguagem Características da linguagem
Compartilhar