Linguagem de Programação II



Documentos relacionados
Validando dados de páginas WEB

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

Fundament n os s da platafo f rm r a. NE N T André Menegassi

O Primeiro Programa em Visual Studio.net

Desenvolvendo Websites com PHP

1- ASP.NET - HTML Server Controls

19/05/2009. Módulo 1

Validação de formulário : CEP, e CPF

Manual do Painel Administrativo

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Noções de. Microsoft SQL Server. Microsoft SQL Server

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Manual das funcionalidades Webmail AASP

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ASP.NET

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Criando um projeto ASP.Net no Visual Studio 2008

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

Manual de Utilização do Zimbra

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

02 - Usando o SiteMaster - Informações importantes

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Scriptlets e Formulários

Instalando o Internet Information Services no Windows XP

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

Microsoft Office Outlook Web Access ABYARAIMOVEIS.COM.BR

Manual de utilização do Zimbra

MANUAL DO ANIMAIL Terti Software

Configurando o IIS no Server 2003

Manual SAGe Versão 1.2 (a partir da versão )

CONSTRUÇÃO DE BLOG COM O BLOGGER

Parte I. Demoiselle Mail

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

1. Tela de Acesso pg Cadastro pg Abas de navegação pg Abas dados cadastrais pg Aba grupo de usuários pg.

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Criando um script simples

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Sistema de Gerenciamento Remoto

Programando em PHP. Conceitos Básicos

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Delphi 7 Aula 01 Área do Triângulo

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Manual de Utilização do Sistema GRServer Cam on-line (Gerenciamento de Câmeras On-line)

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Manual de criação de envios no BTG360

Procedimentos para Reinstalação do Sisloc

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Sumário INTRODUÇÃO Acesso ao Ambiente do Aluno Ferramentas e Configurações Ver Perfil Modificar Perfil...

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Trecho retirando do Manual do esocial Versão 1.1

Guia de Início Rápido

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

CONFIGURAÇÃO MINIMA EXIGIDA:

MySQL Query Browser. Professor Victor Sotero SGD

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Sistema de Chamados Protega

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Conhecendo o Visual FoxPro 8.0 Parte 1

Como acessar o novo webmail da Educação? Manual do Usuário. 15/9/2009 Gerencia de Suporte, Redes e Novas Tecnologias Claudia M.S.

OneDrive: saiba como usar a nuvem da Microsoft

CAPÍTULO 35 Como utilizar os componentes ColdFusion

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Manual de configuração do sistema

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Sistemas Operacionais

Repeater no GASweb. Regiões

MANUAL DE INSTALAÇÃO DO ODONTO TECHNOLOGY

LAB12: Componentes ASP.NET

Introdução ao C# . Visão geral do.net Framework

SCPIWeb. SCPIWebDespRec Aplicação Web para Consulta de Despesas e Receitas ( Lei Complementar nº 131 de 27 Maio de 2009 )

Logo abaixo temos a Barra de Menus que é onde podemos acessar todos os recursos do PHP Editor.

DESENVOLVIMENTO DE SOFTWARE AULA 1

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues UNIVEM - Prof. Elvis Fusco

Sistema de Gerenciamento Missionário SENAMI. Secretaria Nacional de Missões

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

Manual de Integração

Serviço Seguro de Mensagens Instantâneas

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

4 O Workflow e a Máquina de Regras

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

Curso Básico de Visual FoxPro 8.0

Iniciando o MySQL Query Brower

PHP Material de aula prof. Toninho (8º Ano)

IMPORTANTE: O sistema Off-line Dr.Micro é compatível com os navegadores Mozilla Firefox e Internet Explorer.

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Manual do Usuário Android Neocontrol

Office 365 Manual Outlook 365 Web Application

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

MANUAL DO USUÁRIO. AssetView FDT. AssetView FDT

Transcrição:

Linguagem de Programação II

Conteúdo Unidade 1: Introdução A PLATAFORMA.NET... 5 Introdução... 5 Dificuldades encontradas no desenvolvimento de sistemas para Windows antes do.net... 7 A abordagem.net... 10 Unidade 2 A Arquitetura.NET... 11 CLR (Commom Language Runtime)... 11 CTS (Common Type System)... 11 CLS (Common Language Specification)... 12 BCL (Base Classe Library)... 12 Unidade 3 Visão Geral do ASP.NET... 15 Interação Cliente Servidor... 15 O que é o ASP.NET... 16 Componentes de uma aplicação ASP.NET... 18 Modelo de Compilação e Execução Dinâmica... 19 Primeira Execução... 19 Segunda Execução... 20 Precompilação... 20 ASP.NET AJAX... 20 Unidade 4 Criando uma Aplicação Web com o.net... 21 O Visual Studio... 21 Principais Características do Visual Studio... 21 Templates de Projetos... 21 Soluções e Projetos... 21 Tela inicial do Visual Studio 2008... 22 Criando uma Aplicação Web o Visual Studio... 22 Unidade 5 Criando um Formulário ASP.NET... 25 Adicionando um novo Web Form ASP.NET... 25 Unidade 6 Adicionando Código a um Formulário ASP.NET... 32 Trabalhando com arquivos Code-Behind... 32 Manipuladores de Eventos... 32 Adicionando Código a um Formulário... 32 Unidade 7 Depurando Aplicações ASP.NET... 37 2

Erros de Sintaxe (Syntax Errors)... 37 Erros em tempo de execução (runtime)... 37 Erros de Semântica... 37 A Classe Debug... 38 Habilitando a Depuração... 38 Adicionando BreakPoints... 38 Executando a Aplicação em Modo de Depuração... 39 Execução Passo a Passo... 39 Usando a Janela de Depuração... 40 Exibindo a Janela Window... 40 Depuração Remota... 40 Tracing... 40 Classe TraceContext... 41 Habilitando o Tracing em uma Aplicação Web... 42 Dados do Trace... 42 Categorias do Trace... 42 Unidade 8 Validando Entrada de Usuários... 44 Controles de Validação... 44 Caracteres para Expressões Regulares... 45 Adicionando Controles de Validação a um Formulário... 46 Unidade 9 Master Page e User Controls... 49 Características da Master Page... 49 Criando uma Master Page... 50 Content Page... 50 Características da Content Page... 50 Criando uma Content Page... 52 User Controls... 53 Características de um User Control... 53 User Controls e seus Arquivos Associados Code-Behind... 54 Vantagens dos User Controls... 54 Desvantagens dos User Controls... 54 Adicionando um User Control a um Web Form... 55 Unidade 10 Acessando Dados com ADO... 56 Camada Desconectada... 56 Camada Conectada... 56 3

ADO Object Model... 56 Camada Desconectada... 56 Camada Conectada... 57 Contectando a um Banco de Dados... 58 Criando um Banco de Dados... 58 Criando um Formulário de Inserção de Dados... 60 Criando uma Listagem de Dados... 62 Unidade 11 Lendo e Escrevendo Dados XML... 65 Criando um Arquivo XML... 66 Lendo um Arquivo XML... 66 Unidade 12 Criando um Aplicativo ASP.NET AJAX... 68 Namespaces... 68 Controles ASP.NET AJAX... 69 Utilizando ASP.NET AJAX... 69 Unidade 13 Segurança em Aplicações ASP.NET... 72 Autenticação... 72 Autorização... 72 Métodos de Autenticação ASP.NET... 72 Autenticação Windows... 72 Autenticação Baseada em Formulário... 72 SQL Injection... 75 4

Unidade 1: Introdução A PLATAFORMA.NET Introdução O.NET Framework é um componente integral do Windows que oferece suporte à criação e execução da próxima geração de aplicativos e Serviços WEB XML. O.NET Framework foi criado para atender os seguintes objetivos: Fornecer um ambiente de programação orientada a objetos consistente, seja o código objeto armazenado e executado localmente, seja ele executado localmente mas distribuído pela Internet ou seja ele executado remotamente; Fornecer um ambiente da execução de código que minimiza conflitos de implantação e versionamento de software, muito comum no modelo antigo de componentização COM/COM+ (conhecido como DLL hell ); Fornecer um ambiente da execução que promova a execução segura do código, incluindo o código criado por terceiros: desconhecidos ou semiconfiáveis; Fornecer um ambiente de execução que elimina os problemas de desempenho dos ambientes interpretados ou com scripts; Tornar a experiência do desenvolvedor consistente, através dos diversos tipos de aplicativos, como aplicativos baseados no Windows e aplicativos baseados na Web. O desenvolvedor pode usar qualquer uma linguagem suportadas pelo.net para escrever os programas e notará muitas semelhanças ao escrever código para dois ambientes bastante distintos como o desktop e o web, devido à camada de abstração provida pelo.net; Criar todas as comunicações nas indústrias padrão, para garantir que códigos baseados no.net Framework possam se integrar a qualquer outro código. O programador pode reutilizar facilmente código já existente ainda que esteja em outra linguagem, sem que ele precise abrir mão da sua linguagem de preferência (e.g. o programador pode escrever um programa em C# e utilizar componentes escritos em C#, VB para.net sem problemas de integração destes códigos); Um serviço Web XML, ou simplesmente Web Service como o chamaremos de aqui em diante por simplicidade e coerência com a linguagem da indústria de software, transcende ao que nós conhecemos como páginas dinâmicas, as quais podem ser acessadas a partir de um browser. A idéia central de um Web Service consiste em permitir que as aplicações, sejam elas da Web ou Desktop, ou ainda middleware, se

comuniquem e troquem dados de forma simples e transparente, independente do sistema operacional ou da linguagem de programação. Para tal fim, não é preciso apenas uma plataforma para desenvolvimento Web como o é ASP ou CGI, ou então, um modelo de objetos (COM/COM+) para criar componentes de software reusáveis. A idéia de um Web Service é oferecer uma solução uniforme, independente do cliente que estiver solicitando um serviço qualquer: uma página dinâmica (ASP, CGI, JSP), um cliente gordo no desktop, ou simplesmente um programa qualquer de terceiros que requeira o serviço, um celular, um handheld, não importa. O que interessa é que todos os clientes possam usufruir do mesmo serviço. Vamos tentar entender o que descrevemos aqui através da Figura 1.1. Por tudo exposto acima, uma plataforma de desenvolvimento completa, que envolve linguagens de programação, compiladores, modelo de objetos etc., se torna necessária para que se consiga englobar de uma forma completamente integrada todos esses requisitos. E é essa a proposta de.net. A linguagem C# (pronuncia-se C Sharp) faz parte desse conjunto de ferramentas oferecidas na plataforma.net e surge como uma linguagem simples, robusta, orientada a objetos, fortemente tipada e altamente escalável a fim de permitir que uma mesma aplicação possa ser executada em diversos dispositivos de hardware, independentemente destes serem PCs, handhelds ou qualquer outro dispositivo móvel. Além do mais, a linguagem C# também tem como objetivo permitir o desenvolvimento de qualquer tipo de aplicação: Web service, aplicação Windows convencional, aplicações para serem executadas num palmtop ou handheld, aplicações para Internet etc. 6

Junto à linguagem C# encontramos outras linguagens paralelas da própria Microsoft e que têm também a finalidade de dar suporte ao desenvolvimento de sistemas para a plataforma.net; dentre elas podemos citar: VB e C++. Neste módulo, apresentaremos a arquitetura da plataforma.net a fim de que possa entender onde C# se encaixa nesta plataforma e por que, a despeito da existência de outras linguagens, inclusive aquelas que também dão suporte a.net, C# é tão importante. Dificuldades encontradas no desenvolvimento de sistemas para Windows antes do.net Algumas das dificuldades encontradas no desenvolvimento de sistemas Windows antes do.net são: Complexidade associada a linguagens de programação de difícil sintaxe, e ainda as dores de cabeça provocadas pelo gerenciamento da memória heap por parte do programador. Pouca integração e reaproveitamento de código entre linguagens de programação diferentes; ausência de implementação de mecanismo de herança entre linguagens diferentes. Diversidade com pouca integração na resolução de problemas complexos, dificultando a compreensão e o desenvolvimento dos sistemas. Falta de portabilidade de código executável entre plataformas diferentes. Vejamos a evolução histórica das ferramentas da Microsoft: 7

Apenas para ilustrar um pouco a situação atual, vamos apresentar um pequeno estudo de caso. Para simplificar o nosso problema, vamos considerar apenas as soluções Microsoft. Imaginemos uma situação hipotética na qual é solicitada uma solução de home banking que aceite requisições de um browser da Internet ou qualquer outro dispositivo como handheld, telefone celular etc.; vejamos qual seria a resposta imediata dos recursos de software que eu iria precisar: 1. Uma linguagem de programação para desenvolver as páginas dinâmicas: de cara, VBScript ou JScript. 2. Precisamos desenvolver alguns objetos COM ou COM+ no servidor, mas por questões de performance e poder de linguagem, escolhemos a linguagem C++, e claro, o compilador C++ do MS Visual Studio. 3. Vamos precisar de alguns componentes para executar no MS Queue server ou então no MS transaction server, e escolhemos a linguagem Visual Basic porque temos pessoal que já fez esse tipo de trabalho usando VB. 4. Bem, vamos falar o óbvio, mas precisamos também de Web designers com domínio de HTML, Flash, ferramentas de editoração gráfica etc. 5. Ainda temos um problema para resolver, que é o fato de termos clientes heterogêneos que não conseguem ler um formato padrão como uma Web page em HTML. 8

Ok, agora é o momento de correr atrás do pessoal com todas essas competências, tentar gerenciar essa salada de tecnologias e linguagens de programação e, de quebra, fazer funcionar tudo direitinho. E esta era uma situação bem comum no desenvolvimento de software até pouco tempo atrás: ter de costurar uma série de linguagens + ferramentas + tecnologias + modelos de objetos + linguagens de script vs. linguagens de programação completas + linguagens de marcação. Usando o.net podemos proporcionar uma solução alternativa, de menor complexidade de implementação, mais integrada: 1. Uma linguagem de programação para desenvolver as páginas dinâmicas no servidor Web: C# usando o Visual Studio. 2. Uma linguagem de programação para desenvolver objetos reusáveis, armazenados em uma DLL no servidor: C# usando o Visual Studio. 3. Uma linguagem de marcação maleável o suficiente de sorte que permita mostrar o conteúdo em diversos dispositivos: XML, gerado pelo C# ou pré-montado para alguns casos. 4. Todo o trabalho de formatação e transformação dos documentos XML gerados pela solução de homebank será feito usando XSL para gerar a linguagem de marcação suportada no lado cliente. Ah! Com que linguagem vamos fazer estas transformações? Com C# é claro! Mas os nossos desenvolvedores têm um background muito forte em VB, de forma que nós descartamos o C# como alternativa. Não tem problema, tudo o que foi dito acima continua válido, vamos mudar apenas a linguagem de C# para VB. A plataforma.net permite que usemos a linguagem de programação da qual mais temos domínio e mesmo assim continuamos a usufruir todo o seu potencial. O exemplo anterior foi apenas para ilustrar o contexto atual de desenvolvimento de sistemas complexos, onde temos de realmente fazer uma ginástica muito grande integrar todas as partes constituintes da nossa solução. A boa notícia é que, como mostramos no exemplo, com.net esta situação está, digamos assim, findando esse problema, porque, como você pode ter percebido, a sua solução caiu de três linguagens de programação para apenas uma, e o resto das tecnologias que usamos (COM+, por exemplo) se integra perfeitamente com o restante da solução. Apenas falando no quesito da clareza e reutilização de código, algumas bibliotecas de classes, como MFC (Microsoft Foundation Class), surgem nesse ínterim, mas têm como foco a linguagem C/C++ e não podem ser usadas a partir do Power Builder, por 9

exemplo, ou então Delphi, que tem a sua própria biblioteca de componentes reutilizáveis. O que equivale a dizer que essas bibliotecas não podem ser usadas a partir de qualquer linguagem de programação, o que torna o reaproveitamento de código ainda mais difícil. Mesmo tecnologias como COM e CORBA sempre apresentam os mesmos problemas de dificuldade de aprendizado por causa de sua complexidade; ou então, mesmo quando oferecem um modelo de objetos comum a ser usado por outras linguagens que não VB ou C++,acabam esbarrando no fato de que cada linguagem de programação implementa os tipos de uma forma diferente. E finalmente, quando achamos que conseguimos resolver os problemas dos tipos, somos barrados porque não conseguimos programar relações de herança entre linguagens diferentes. Paralelamente às iniciativas da Microsoft, em 1995 surge a linguagem JAVA (na verdade, mais que uma linguagem, é uma plataforma de desenvolvimento) e, apesar de oferecer há mais de dez anos a proposta de portabilidade de código executável, (leia-se, compile uma vez e rode em qualquer plataforma ), é JAVA-cêntrica, o que obriga o programador a aprender uma nova linguagem se realmente quiser usufruir os recursos que ela oferece. Mas você pode perguntar: e.net não nos obriga a aprender C#? A resposta é não e saberemos mais adiante como isso é feito. A abordagem.net Citaremos a seguir algumas das características de.net que visam a resolver os problemas citados acima: Independência de linguagem de programação: o que permite a implementação do mecanismo de herança, controle de exceções e depuração entre linguagens de programação diferentes. Reutilização de código legado: o que implica em reaproveitamento de código escrito usando outras tecnologias como COM, COM+,ATL, DLLs e outras bibliotecas existentes. Tempo de execução compartilhado: o runtime de.net é compartilhado entre as diversas linguagens que a suportam, o que quer dizer que não existe um runtime diferente para cada linguagem que implementa.net. Sistemas auto-explicativos e controle de versões: cada peça de código.net contém em si mesma a informação necessária e suficiente de forma que o runtime não precise procurar no registro do Windows mais informações sobre o programa que está sendo executado. O runtime encontra essas informações no próprio sistema em questão e sabe qual a versão a ser executada, sem acusar aqueles velhos conflitos de incompatibilidade ao registrar DLLs no Windows. Simplicidade na resolução de problemas complexos. 10

Unidade 2 A Arquitetura.NET Para melhor entendermos tudo o que temos dito até aqui, vamos falar um pouco da arquitetura de.net e os seus principais componentes. CLR (Commom Language Runtime) O CLR, ou tempo de execução compartilhado, é o ambiente de execução das aplicações.net. Como o leitor já deve ter atentado, as aplicações.net não são aplicações Win32 propriamente ditas (apesar de executarem no ambiente Windows),razão pela qual o runtime Win32 não sabe como executá-las. O Win32, ao identificar uma aplicação.net, dispara o runtime.net que, a partir desse momento, assume o controle da aplicação no sentido mais amplo da palavra, porque, dentre outras coisas, é ele quem vai cuidar do gerenciamento da memória via um mecanismo de gerenciamento de memória chamado Garbage Collector (GC) ou coletor de lixo, acerca do qual falaremos mais tarde. Esse gerenciamento da memória torna os programas menos susceptíveis a erros. Mais ainda, o CLR como seu próprio nome o diz, é compartilhado e, portanto, não temos um runtime para VB.NET, outro para C# etc. É o mesmo para todo mundo. CTS (Common Type System) O CTS, ou Sistema Comum de Tipos, que também faz parte do CLR, define os tipos suportados por.net e as suas características. Cada linguagem que suporta.net tem de, necessariamente, suportar esses tipos. Apesar de que a especificação não demanda que todos os tipos definidos no CTS sejam suportados pela linguagem, esses tipos podem ser um subconjunto do CTS, ou ainda um superconjunto. No módulo dois falaremos mais a respeito dos diferentes tipos especificados no CTS. Um conjunto de classes básicas que define todos os tipos é implementado na CTS. Por exemplo: um tipo Enum deve derivar da classe System. Enum e todas as linguagens devem implementar o tipo Enum dessa forma. Todo tipo deriva da classe Object, porque em.net tudo é um objeto e, portanto, todos os tipos devem ter como raiz essa classe. E é dessa forma que os diversos tipos nas diversas linguagens são implementados, obedecendo às regras definidas no CTS. Na.NET, e em C# conseqüentemente, todos os tipos derivam de uma raiz comum: a classe Object, o que equivale a dizer que todos os tipos são objetos, por definição. 11

CLS (Common Language Specification) O CLS, ou Especificação Comum da Linguagem, é um subconjunto do CTS, e define um conjunto de regras que qualquer linguagem que implemente a.net deve seguir a fim de que o código gerado resultante da compilação de qualquer peça de software escrita na referida linguagem seja perfeitamente entendido pelo runtime.net. Seguir essas regras é um imperativo porque, caso contrário, um dos grandes ganhos do.net, que é a independência da linguagem de programação e a sua interoperabilidade, fica comprometido. A grosso modo, dizer que uma linguagem é compatível com o CLS significa dizer que mesmo quando esta é sintaticamente diferente de qualquer outra que implemente.net, semanticamente ela é igual, porque na hora da compilação será gerado um código intermediário (e não código assembly dependente da arquitetura do processador) equivalente para duas peças de código iguais, porém escritas em linguagens diferentes. É importante entender esse conceito para não pensar que o código desenvolvido em C# não pode interagir com código desenvolvido em VB ou outras linguagens, porque mesmo estas sendo diferentes, todas são compatíveis com o CLS. BCL (Base Classe Library) Como era de se esperar, uma plataforma que promete facilitar o desenvolvimento de sistemas precisa ter uma biblioteca de classes básica que alavanque a simplicidade e a rapidez no desenvolvimento de sistemas. É este o objetivo da BCL (Biblioteca de Classes Base), oferecer ao desenvolvedor uma biblioteca consistente de componentes de software reutilizáveis que não apenas facilitem, mas também que acelerem o desenvolvimento de sistemas. Na BCL encontramos classes que contemplam desde um novo sistema de janelas a bibliotecas de entrada/saída, gráficos, sockets, gerenciamento da memória etc. Esta biblioteca de classes é organizada hierarquicamente em uma estrutura conhecida como namespace. Ao desenvolver um componente de software reusável, este precisa ser estruturado em um namespace para que possa ser usado a partir de um outro programa externo. A seguir mostramos uma tabela com alguns dos principais namespaces que fazem parte da BCL: 12

13

14

Unidade 3 Visão Geral do ASP.NET O ASP.NET é um framework que possibilita aos programadores a construção de Web sites dinâmicos, aplicações Web, e serviços XML. O componente principal do ASP.NET é o ASP.NET Web Form, que fornece uma maneira fácil e rápida de construir web sites e aplicações web. O ASP.NET também inclui tecnologia para construção de XML Web Services, que são a base da construção de aplicações Web distribuídas. Interação Cliente Servidor Desenvolver aplicações para serem usadas sobre HTTP é muito diferente de criar aplicações Desktop do tipo Windows Forms pelo fato de o cliente estar dissociado do servidor. Quando o usuário solicita uma página, digitando um endereço (URL), em um navegador, o servidor Web responde enviando um documento HTML e muito provavelmente algum código JavaScript a ser executado pelo navegador. A conexão é aberta, a solicitação é feita pelo navegador, o servidor responde enviando o documento HTML, e a conexão encerrada tão logo esse envio seja terminado. Isto dificulta o trabalho de fazer com que uma aplicação Web se comporte como uma aplicação conectada, desktop. O ASP.NET fornece um gerenciador de estados (VIEWSTATE) que a cada nova requisição reconhece o usuário e informação que ele está trabalhando. 15

No lado do cliente, após carregar a página, você pode submeter a página de volta ao servidor, disparando o que chamamos de postback. Isso acontece utilizando funcionalidades do protocolo HTTP, tipicamente os métodos POST e GET. Em um HTML normal, a submissão de formulários pode ser acionada a partir de um botão do tipo submit na página, e utilizar código client-side para trabalhar a informação antes de ser enviada ao servidor ou mesmo para acionar um evento de postback. No ASP.NET a interação cliente-servidor é transparente por usar programação orientada a eventos sobre o protocolo HTTP. O que é o ASP.NET O ASP.NET é um conjunto de tecnologias para desenvolvimento WEB que possibilita as programadores, construir Web Site, Aplicações Web e Web Services XML. Pelo fato de o ASP.NET ser parte do Framework.NET, você pode desenvolver aplicações web em qualquer uma das linguagens.net. O principal componente do ASP.NET é o Web Form. Uma aplicação ASP.NET típica, consiste de um ou mais Web Form. Um Web Form é uma página que o usuário visualiza em seu browser, e também uma página dinâmica que é processada no servidor e pode acessar recursos do mesmo. Mas também pode ser utilizada para interagir com o usuário no navegador utilizando código JavaScript, VBScript ou AJAX. Em outras palavras, uma página HTML tradicional pode executar scripts no cliente para executar tarefas básicas. Já uma página ASP.NET Web Form pode também executar código no lado do servidor para acessar banco de dados, gerar outros Web Forms, ou fazer uso de dispositivos de segurança do servidor. 16

O ASP.NET é independente do dispositivo que for usado para acessá-lo. Permitindo ao programado desenvolver Web Forms que poderão ser vistos em quaisquer dispositivos que tenham um navegador Web. O ASP.NET também faz uso do Visual Studio para construir e executar as aplicações ASP.NET. Isso resulta em um processo de desenvolvimento simplificado que permite a você testar a aplicação sem precisar criar um ambiente de hospedagem externo. Também está embutido no ASP.NET, métodos de autenticação do tipo Windows ou Forms que auxiliam o programador a manter sua aplicação e dados seguros. Cada aplicação ou site disponibilizado em um servidor Web, roda como um processo dentro do Internet Information Services (IIS). O ASP.NET é também um ambiente de desenvolvimento Web que inclui funcionalidades para você desenvolver aplicações Web com o mínimo de codificação, em qualquer linguagem compatível com a CLR, incluindo Microsoft Visual Basic, C#, Microsoft JScript.NET, e J#. A seguinte tabela descreve as diversas características do ASP.NET: Características Page e Control Framework Compilador ASP.NET Segurança Forms Authentication Provider Descrição O ASP.NET permite você encapsular funcionalidades comuns da interface em controles reusáveis de fácil utilização. Também fornece a possibilidade de controle de aparência do seu web site utilizando temas. Adicionalmente ao temas, você pode fazer uso de Master Pages, para a criação de layout consistente de páginas em sua aplicação. Todo código ASP.NET é compilado, e fornece tipagem forte de dados, otimização de performance, entre outros benefícios. Depois que o código é compilado, o componente CLR compila o código ASP.NET para código nativo, aumentando ainda mais sua performance. O ASP.NET fornece uma infra estrutura avançada de segurança de autenticação de usuários, além de outras tarefas relacionadas a segurança. Você pode autorizar usuários utilizando autenticação Windows, que é fornecida pelo IIS, e alternativamente você mesmo pode gerenciar a autenticação usando seu próprio banco de dados através de formulários de autenticação ASP.NET. O ASP.NET sempre é executado utilizando uma identidade do Windows, portanto, você pode deixar sua aplicação segura utilizando as características do próprio Windows, como listas de controle de acesso NTFS (ACLs) e permissões de banco de 17

State-Management Facilities ASP.NET Configuration Health Monitoring and Performance Debugging Suport XML Web Services Framework Extensible Hosting Environment and Application Live-Cycle Management Extensible Designer Environment dados. O ASP.NET fornece um gerenciador de estado que permite você armazenar informações entre as requisições de página, como dados do cliente ou conteúdo de um carrinho de compras. Aplicações ASP.NET usam um sistema de configuração que permite você definir parâmetros para seu servidor Web, site, ou aplicações individuais. Você pode fazer ajustes de configuração no momento em que suas aplicações são disponibilizadas no servidor ou a qualquer momento com um mínimo de impacto operacional em sua aplicação e servidores. O ASP.NET incluí funcionalidades que permitem você monitorar o estado e performance da sua aplicação. Permite a você monitorar eventos chave que fornece a você dados sobre erros e condições da sua aplicação. O ASP.NET tema vantagem de uma estrutura de depuração em tempo de execução que dá suporte a depuração cross-language e cross-computer. Você pode depurar tanto objetos gerenciados como não gerenciados, e todas as linguagens suportadas pela CLR. E o ASP.NET também fornece um modo de rastreamento (trace mode) que permite a você adicionar informações operacionais a cada página da sua aplicação. O ASP.NET da suporte a XML Web Services. Um XML Web Service é um componente que contém dados e permite as aplicações trocar informação através de firewalls utilizando padrões web como HTTP e mensagens XML. O ASP.NET inclui um ambiente extensível de gerenciamento do ciclo de vida de uma aplicação do momento em que o usuário acessa pela primeira vez um determinado recurso, como uma página, até o momento em que o aplicativo é fechado. ASP.NET incluí suporte para designers de criação de Web Server controls para uso com as ferramentas visuais como o Visual Studio. Componentes de uma aplicação ASP.NET Os Componentes de uma aplicação ASP.NET incluem: 18

Web Forms e páginas.aspx. Os Web Forms fornecem a Interface do Usuário para as aplicações Web. User Controls, ou controles.ascx. Os User Controls fornecem a UI para funcionalidades específicas a serem reutilizadas em Web Forms diferentes. Arquivos Code-behind. O arquivo code-behind é um arquivo associado ao Web Form que contém o código Server-side para o mesmo. Você também pode optar por criar uma página ASP.NET em único arquivo que contenha o HTML e o código fonte.net no mesmo arquivo. Arquivos de configuração. São arquivos XML que definem a configuração da aplicação Web no servidor. Cada aplicação Web pode ter um ou mais arquivos. Já cada servidor Web, pode ter somente um arquivo machine.config. Global.asax. O arquivo Global.asax contém código para responder eventos a nível de aplicação que são acionados pelo ASP.NET, como erros não tratados na aplicação. XML Web Service. Permitem a aplicação enviar e receber dados de um XML Web Service. Conexões a Banco de Dados. Permitem a aplicação Web transferir dados de fontes de dados. Itens Adicionais. Arquivos adicionais que você inclui na aplicação Web como arquivos HTML para conteúdo estático, arquivos texto, arquivos XML, arquivos XSLT. CSS. Arquivos que contém folhas de estilo utilizadas no design da aplicação. Modelo de Compilação e Execução Dinâmica Primeira Execução 1. O Cliente realiza uma requisição HTTP Get para o servidor 19

2. O parser do ASP.NET interpreta o código fonte 3. Se o código não estiver compilado em uma DLL, o ASP.NET invoca o compilador. 4. O Runtime carrega e executa o código MSIL que é executado pelo run time. Nota: o código MSIL é o código em linguagem assembly executado em tempo de execução. Os vários compiladores das linguagens.net como Visual Basic e C#, compilam seus códigos em MSIL, que é então executado pelo runtime. Segunda Execução Quando o usuário solicita a mesma página pela segunda vez, os seguintes eventos acontecem: 1. O cliente faz uma requisição GET HTTP para o servidor. 2. O runtime imediatamente carrega e executa o código MSIL que já está compilado pela primeira requisição da página. Nota: a recompilação da página.aspx pode ocorrer, principalmente se o conteúdo da mesma foi alterado. Precompilação Você pode escolher pré compilar o seu site antes de disponibilizá-lo aos seus usuários. As vantagens da precompilação incluem: Resposta otimizada aos usuários, pois as páginas não precisam se compiladas na primeira execução das mesmas. Identifica erros de compilação antes de os usuários acessarem o site pela primeira vez. Possibilidade de disponibilizar o site na Web em um servidor de produção sem o código fonte. ASP.NET AJAX O ASP.NET também disponibiliza um framework livre Microsoft AJAX para ser utilizado em aplicações interativas. O ASP.NET AJAX permite enviar de forma assíncrona uma seção ou parte de uma página web ao servidor, e receber uma resposta de forma a não distrair o usuário ou mesmo interromper o que ele estava fazendo na página. O ASP.NET AJAX pode ser usado em conjunto com código serverside que automaticamente geram código client-side JavaScript. O ASP.NET AJAX também disponibiliza o AJAX Control Toolkit, que é uma coleção de controles clientside interativos, juntamente com a biblioteca jquery. 20

Unidade 4 Criando uma Aplicação Web com o.net O Visual Studio O Visual Studio é o núcleo do desenvolvimento do Microsoft.NET. É um ambiente completo de desenvolvimento em que você pode desenhar, desenvolver, depurar aplicações.net e Web Services XML. Principais Características do Visual Studio O Visual Studio provê: Suporte para desenvolvimento de diversas linguagens Ferramentas para a construção de aplicações Web, aplicações Windows, e Web Services XML. Ferramentas para criação de aplicações.net Framework 3.0 como WCF, WPF e WF. Ferramentas para criação de Cascading Style Sheets (CSS. Data Acess Controls, incluindo suporte para LINQ Suporte a desenvolvimento para versões diferentes do Framework.NET. Suporte a ASP.NET AJAX e JavaScript. Suporte a Microsoft Silverlight Suporte a Dynamic Data Gerenciamento de erros incluindo depuração local e remota, além de tracing. Ajuda e documentação em formato fácil e acessível. Templates de Projetos O Visual Studio fornece templates para a criação de um grande número de tipos projetos. Esses templates contem todos os arquivos necessários e lhe garantem que a IDE está corretamente configurada para o projeto selecionado. Quando você utiliza esses templates, você não tem que configurar a infraestrutura necessária de pastas e arquivos que um determinado tipo de projeto necessitem. Isso lhe permite o manter foco no seu projeto e na inclusão de funções ao mesmo. Soluções e Projetos Alguns Templates que o Visual Studio disponibiliza: 21