Anda di halaman 1dari 147

PROGRAMAO APLICADA

MICROSOFT .NET USANDO C#


EDIO N 1 - 2007

LARCIO DA CRUZ LOUREIRO


___________________________________________________________________
Apoio

Gesto e Execuo

Contedo e Tecnologia

Programao Aplicada Microsoft .NET usando C#

Apresentao

Este livro didtico contm a disciplina de Programao Aplicada com


Microsoft .NET.
O contedo apresentado oferece um amplo conjunto de informaes sobre os
mtodos de programao, que foram apresentados nos cursos anteriores, e agora
sero aplicados a uma tecnologia particular.
A programao para o sistema operacional Windows favorecida com o uso
do Microsoft .NET (fala-se dt net ou ponto net) e o objetivo deste curso
apresentar os conceitos disponveis nesta plataforma de desenvolvimento,
permitindo ao aluno construir sistemas usando uma das principais linguagens
utilizadas em .NET: a C# (fala-se c charp).
um assunto extremamente atual, principalmente diante do grande volume
de empresas desenvolvedoras de software, que esto aderindo plataforma .NET.
Por isso, procuramos manter um contedo alinhado com as necessidades do
mercado, seguindo informaes que foram coletadas com empresas de mercado.
Alm disso, o contedo segue as orientaes e prticas que so sugeridas pela
Microsoft, atravs de seus sites, livros e artigos.
Diante disso, estamos apresentando uma abordagem adequada para os
desafios que o programador precisa superar, utilizando-se como apoio as
tecnologias envolvidas com a plataforma .NET, e tambm buscamos manter uma
linguagem acessvel para programadores iniciantes e que precisam entender com
segurana os tpicos que compem os assuntos tratados.
importante ressaltar que o livro foi desenvolvido com o objetivo de oferecer
um aprendizado independente, inerente aos estudos do EAD, e o contedo foi
revisado com o intuito de oferecer uma linguagem simples, objetiva e estimulante.
Lembre-se de que a sua passagem por esta disciplina ser tambm
acompanhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax,
telefone, e-mail ou Ambiente Virtual de Aprendizagem.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Sempre entre em contato conosco quando surgir alguma dvida ou


dificuldade.
Toda a equipe ter a maior alegria em atend-lo, pois a sua aquisio de
conhecimento nessa jornada o nosso maior objetivo.
Acredite no seu sucesso e bons momentos de estudo!
Equipe Tupy Virtual.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

SUMRIO

CARTA DO PROFESSOR......................................................................................... 5
CRONOGRAMA DE ESTUDOS ............................................................................... 7
PLANO DE ESTUDOS ............................................................................................. 8
AULA 1 - INTRODUO PLATAFORMA .NET.. 9
AULA 2 - VISUAL STUDIO EXPRESS 26
AULA 3 - TRABALHANDO COM VARIVEIS EM C#............................................. 47
AULA 4 - CONTROLE DE FLUXO EM C#............................................................... 65
AULA 5 - PROGRAMAO ORIENTADA A OBJETOS EM C#............................. 76
AULA 6 - TCNICAS DE OOP USANDO C#........................................................... 88
AULA 7 - APLICAES WINDOWS FORMS.. 104
AULA 8 - BANCO DE DADOS COM C# ... 132

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Carta do Professor

A transio para a .NET to dramtica quanto o movimento


de transio do MS-DOS para Windows. Os programadores so
fundamentais para este esforo, porque eles iro construir as
solues que iro guiar os usurios para uma nova era da
verdadeira computao distribuda na Internet.
(Bill Gates no lanamento da Plataforma .NET, 2000).
Prezado aluno,
Em 2000, a Microsoft lanou uma iniciativa para a criao de uma nova
gerao de sistemas, a qual iria unificar a computao com a comunicao de dados
atravs de um caminho revolucionrio. Foi a divulgao de uma viso, como a
fabricante procura reforar.
Na verdade, a Microsoft demorou para aderir onda que a Internet na poca
estava gerando, principalmente no impacto cultural que os usurios

de

computadores estavam percebendo. Quando a Microsoft lanou o Windows 95 e o


Internet Explorer, sistema operacional e navegador respectivamente, foi o primeiro
passo no sentido de uma resposta direcionada para as empresas que, na poca,
estavam liderando a onda da Internet. Naquele perodo, a Netscape era a grande
alavanca para uma nova experincia dos usurios no uso da Internet, e ela at hoje
reconhecida como a precursora das tecnologias que usamos na atualidade.
Aps esse perodo, a Internet nunca mais deixou de ser uma arena de
constantes inovaes e grandes competies, onde os fabricantes de software
buscam cada vez mais determinar e conduzir as oportunidades de negcios que a
grande rede oferece.
O mundo atual um lugar diferente do que h 10 anos atrs. Segundo
Friedman (2005), a partir do ano 2000, os fabricantes de software engendraram
plataformas com base nas quais o trabalho e o capital intelectuais poderiam ser
realizados de qualquer parte do globo. Tornou-se possvel fragmentar projetos e
transmitir, distribuir, produzir e juntar de novo as suas peas, usando a mesma
SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

abordagem da componentizao de processos industriais baseados nos modelos de


Ford e da Toyota.
neste contexto que a plataforma .NET nasce. a proposta da Microsoft
para suportar a dinmica que os complexos processos de negcios estavam
empregando e exigindo um nvel de componentizao dos sistemas, completamente
baseados na Internet.
Nesta apostila, procuro apresentar-lhe os fundamentos desta iniciativa, com
nfase no desenvolvimento de sistemas baseados em .NET usando a linguagem C#,
que tambm foi lanada pela Microsoft, em 2002, junto com a nova verso do
software para desenvolvedores, chamada Visual Studio .NET.
Cabe ressaltar que a linguagem C# tambm foi um movimento de resposta da
Microsoft que, utilizando-se de todas as propostas tecnolgicas da plataforma .NET,
baseou-se na sintaxe da Linguagem C, da C++ e do Java, para competir com o
prprio Java, diante de sua ampla adeso pelos desenvolvedores. Ela tambm
oferece suporte completo programao orientada a objetos e recursos para a
construo de sistemas para a Internet, de forma segura, rpida e poderosa.
Observe que um assunto extenso. Este mdulo tem por finalidade lhe
oferecer fundamentos para construir sistemas, sem contudo esgotar o assunto.
Leia. Pratique. Exercite. Reflita. Discuta com seus colegas. Corrija. E renove.
Mantenha estas atividades como parte de seus trabalhos neste curso. Permanece
aqui a recomendao de que a programao de computadores uma tarefa que
exije dedicao e muita prtica.
Finalmente, reitero minha expectativa em apoiar voc em mais um passo de
seu conhecimento no desenvolvimento de software. Mantenha-se motivado a
continuar seus estudos, pois, medida que os tpicos so revelados, um mundo
novo de oportunidades abre-se para voc.
Desejo-lhe bons estudos e aproveite esta oportunidade.
Professor Larcio da Cruz Loureiro

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Cronograma de Estudos

Acompanhe no cronograma abaixo os contedos das aulas, e atualize as


possveis datas de realizao de aprendizagem e avaliaes.
Semana

Carga horria

Aula

Data / Avaliao

20

Introduo Plataforma

_/_ a _/_

Microsoft .NET

14

Visual Studio Express

_/_ a _/_

14

Trabalhando com Variveis

_/_ a _/_

em C#

10

Controle de Fluxo em C#

_/_ a _/_

12

Introduo OOP usando C#

_/_ a _/_

12

Tcnicas de OOP usando

_/_ a _/_

C#
4

22

Aplicaes Windows Forms

_/_ a _/_

16

Banco de Dados com C#

_/_ a _/_

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Plano de Estudos
Ementa

Introduo plataforma Microsoft .NET. Visual Studio Express. Orientao a


objetos usando C#. Sintaxe da linguagem C#. Desenvolvimento de sistemas usando
banco de dados. Solues usando ASP.NET
Objetivo Geral

Entender as vantagens do uso da plataforma Microsoft .NET e desenvolver


sistemas usando a linguagem C#.

Especficos

Descrever os componentes da plataforma .NET;

Construir programas orientados a objetos usando a linguagem C#;

Conhecer e desenvolver programas usando a sintaxe de comandos da


linguagem C#;

Utilizar recursos de banco de dados em sistemas .NET;

Conhecer os elementos bsicos para a construo de sistemas para a


Internet usando a plataforma .NET.
Carga Horria: 120 horas/aula.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Aula 1

INTRODUO PLATAFORMA .NET


Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Identificar os objetivos da plataforma .NET;
 Enumerar as vantagens na utilizao da plataforma .NET;
 Descrever os componentes da plataforma .NET;
 Utilizar linguagens disponveis baseadas em .NET.
Contedos da aula
Acompanhe os assuntos desta aula, se preferir, aps o
seu trmino, assinale o contedo j estudado.
 A Internet e as aplicaes distribudas;
 A evoluo tecnolgica;
 Ilhas de informaes;
 Reuso, OOP e Web Services;
 O que a plataforma .NET?
 Componentes da plataforma;
 .NET Framework;
 As linguagens para .NET

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

10

Prezado(a) aluno(a)!
Muitos fatores influenciaram a criao da plataforma .NET. O mais
relevante, com certeza, foi a Internet. O uso cada vez maior da Internet
para realizar novas formas de negcios, bem como, a transformao de mtodos
atuais de negcios, em outros mtodos atravs da Internet, impulsionam inovaes
no segmento de desenvolvimento de software.
Alm disso, como segundo elemento forte que influenciou o surgimento do
.NET foi a convergncia digital. Basicamente, esse tema refere-se unio do
telefone, do computador, da TV, do rdio, da msica, do celular e outras tecnologias,
um nico dispositivo. A convergncia digital exige dos sistemas atuais recursos
como multiplataforma, escalabilidade, suporte a mltiplos idiomas, alta capacidade
de processamento de dados, etc., ou seja, as tecnologias devem suportar novas
formas para construir sistemas.
Nesta aula, voc conhecer os vrios aspectos que envolvem a plataforma
.NET, incluindo seus componentes, aspectos de negcios que a influenciaram e
suas aplicaes, alm de compreender as vrias alternativas disponveis para seu
uso.
Boa Aula!

1 A INTERNET E AS APLICAES DISTRIBUDAS


Fatores como a globalizao e as constantes mudanas nas regras de
negcios obrigaram as empresas modernas a se tornarem altamente distribudas.
Como conseqncia, crescente o nmero de escritrios remotos espalhados no
pas ou no mundo. Por isso, proporcionalmente a novos modelos de negcios e
gesto, as empresas necessitam de informaes e tecnologias que estejam
disponibilizadas aos seus funcionrios em escritrios remotos, hotis e residncias,
e que s vezes esto conectados ou no, trabalhando em condies off-line.
As aplicaes distribudas oferecem os recursos necessrios para atender s
demandas atuais das empresas, aderindo aos movimentos de descentralizao e
reduzindo as possveis dificuldades de comunicao que naturalmente podem
ocorrer.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

11

Quando falamos em aplicaes distribudas, precisamos considerar trs


elementos essenciais: comunicao de dados, interface com o usurio e regras de
negcios flexveis.
A comunicao de dados uniforme foi resolvida

com a Internet,

considerando que, por um meio comum de comunicao, o protocolo TCP/IP,


usurios e empresas podem comunicar-se independente das particularidades de
seus dispositivos de hardware ou software (figura 1). Atualmente, a independncia
de equipamentos fsicos ainda mais favorecida por padres que esto suportando
a convergncia digital, permitindo que um celular possua recursos para a execuo
de um sistema, enquanto mantm seus princpios bsicos.

Figura 1 Exemplo de Comunicao de Dados baseada na Internet


A interface com o usurio tambm foi resolvida com a Internet, pois todo
usurio utiliza um mesmo software, o navegador. Alm disso, o navegador possui
padres de apresentao de dados que so aceitos mundialmente, o que tambm
permite uma mesma pgina ser visualizada independente de dispositivo fsico ou
software. A HTML, as linguagens scripts, as imagens, etc. compem a apresentao
de dados,e tambm permitem a interao com o usurio, atravs de formulrios,
com possibilidade de preenchimento de dados. Confira na figura 2 o que acabamos
de explanar.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

12

Figura 2 Exemplo de formulrio em HTML para a Internet


O que faltava na Internet era um modelo de programao de sistemas,
utilizando-se das tecnologias mais atuais disponveis, com o objetivo de construir
sistemas flexveis e robustos baseados na Internet, explorando os padres que j
foram estabelecidos pela grande rede. Assim, surgiram os conceitos de Aplicaes
Distribudas baseadas na Internet, fazendo com que os sistemas sejam
particionados em vrias camadas e cada camada seja processada de forma
distribuda entre vrios elementos da soluo. Alm disso, a adoo de efetivas
tcnicas de programao orientada a objetos (OOP), permitiu a construo de
sistemas flexveis, com capacidade de adaptao dinmica das regras de negcios
(figura 3).

Figura 3 Exemplo de uma aplicao distribuda na Web

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

13

2 A EVOLUO TECNOLGICA
Um outro conjunto de elementos deve ser considerado como parte da
necessidade que a plataforma .NET desejava atender em seu lanamento e
atualmente fornece as capacidades para sua realizao.
Por exemplo, a evoluo tecnolgica dos microprocessadores e dos circuitos
de memria RAM, que esto cada vez mais poderosos e baratos, permitiram que
poderosas funcionalidades fossem construdas. Alm disso, sua capacidade de
atendimento a grande volume de transaes e dados, ao contrrio do que podia se
esperar, no houve a necessidade de um alto investimento em hardware.
O aumento na disponibilidade da largura de banda nas conexes para a
Internet, com preos baixos, tambm viabilizou uma infra-estrutura que permite
maior riqueza nas aplicaes distribudas e mantm um nvel de performance
necessrio para os usurios. Como exemplo, podemos citar a popularizao das
conexes com a Internet usando a tecnologia ADSL.
Os sistemas operacionais tambm fornecem recursos importantes para as
aplicaes distribudas, j que novos aplicativos transacionais, com recursos de
segurana integrados e otimizaes para atender determinadas funcionalidades,
favorecem a uma performance e construo dos sistemas.
Finalmente, padres tecnolgicos como a linguagem XML, protocolos que
constituem os Web Services e novas verses da linguagem HTML, permitiram
aplicaes distribudas flexveis, ricas e padronizadas.
3 ILHAS DE INFORMAES
A Microsoft percebeu que um grande volume de informaes e usurios vive
de forma independente em uma empresa, criando ilhas de informaes
corporativas e no interagem entre si, perdendo oportunidades para aumentar a
velocidade das transaes do negcio ou para auxiliar na formao de uma
inteligncia competitiva.
Diante disso, atravs da plataforma .NET e utilizando-se de padres de
mercado, abordam-se os conceitos de integrao de dados e interoperabilidade
de aplicaes, ou seja, disponibilizam-se componentes programados que permitam
a sua integrao e forneam meios fceis para um relacionamento interdependente.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

14

Podemos considerar nesse contexto, um exemplo clssico nas


aplicaes em geral: o uso de listagem e verificao de CEP, para um
determinado cadastro. Na grande maioria dos sistemas administrativos,
temos um cadastro de clientes e, por padro, temos um campo de armazenamento
de dados do CEP. A questo que o usurio apresenta: como posso validar a
existcia do CEP digitado, para garantir que os envios de correspondncias de
cobrana cheguem com sucesso ao seu destino?
No passado, a grande maioria dos programadores criava (ou ainda cria, por falta de
conhecimento, ou limite da tecnologia envolvida) um cadastro de CEP na sua
aplicao, para o usurio armazenar os endereamentos de CEP disponveis em
uma lista pblica dos Correios Brasileiros. Problemas com esse tipo de soluo:

O usurio precisa realizar um grande esforo para armazenar todos os


endereos de CEP na aplicao;

A dificuldade em manter o cadastro atualizado, devido a possveis mudanas que


os Correios Brasileiros aplicam no Cdigo de Endereamento Postal.

Imagine, uma agncia dos Correios possui a lista completa de endereos de CEP de
todo o Brasil e os recursos necessrios para mant-la 100% atualizada.
Temos ento, nesse cenrio, as ilhas de informaes, onde uma empresa precisa
duplicar os dados de CEP para que se consiga atingir os requisitos de seu negcio.
Enquanto isso, as agncias do Correios possuem todas as informaes atualizadas.
Hoje, esse problema est resolvido, pois os Correios Brasileiros publicaram um
servio que permite uma aplicao baseada em componentes distribudos,
podendo coletar informaes de CEP, de acordo com parmetros documentados.
Esse servio publicado na Internet, na forma de componente de aplicao, chama-se
Web Service.

4 OOP, REUSO E WEB SERVICES

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

15

O uso da programao orientada a objetos, conforme voc j aprendeu,


permite a reutilizao de procedimentos e rotinas de um determinado sistema, de
forma elegante e segura, ou seja, podemos reutilizar cdigo de programao como
parte de nosso esforo de construo do programa. Nesse conceito de reuso, surgiu
a tecnologia chamada de Web Service.
Um Web Service uma soluo para a integrao de solues de software,
utilizando-se de padres estabelecidos mundialmente, cuja finalidade sua
publicao na Internet para reuso. O formato dos dados que so trafegados entre os
Web Services, esto em XML (eXtensible Markup Language) e o protocolo de
comunicao entre os componentes de uma soluo o SOAP. Podemos ento
resumir que um Web Service um componente programvel que pode ser acessado
atravs de protocolos padres na Internet.
A plataforma .NET utiliza largamente os recursos de Web Services, como
base de sua arquitetura para suportar aplicaes distribudas.
Com base na tecnologia da Web Services, surgiu uma nova abordagem na
construo de software: o software orientado a servios. Essa orientao uma
forma de construo de sistemas, cujo principal objetivo o reuso atravs de Web
Services internos e externos na empresa, mantendo padres abertos para permitir a
integrao de diferentes plataformas e tecnologias. A esse novo mtodo de
engenharia de software aplicou-se o termo SOA (Service Oriented Architecture), em
portugus, Arquitetura Orientada a Servios (figura 4).

Figura 4 Exemplo da comunicao usando SOA


Conforme definiu Earl (2005), a orientao a servios fornece uma viso ideal
do mundo, no qual os recursos so claramente particionados e consistentemente
representados. Quando aplicada em software, a orientao a servios estabelece
um modelo universal no qual a automao da lgica e as regras de negcios esto
de acordo com essa viso.
SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

16

Para que voc possa entender melhor esse conceito, vamos considerar
a construo de um sistema que possui um conjunto de sub-rotinas.
Como voc j aprendeu, a modularizao do cdigo na programao
estruturada e o uso de classes na programao orientada a objetos fornecem o
meio para um programa particionado, com isso, permite um reuso de
funcionalidades. Cada funo, sub-rotina ou classe, pode ser traduzida em um
Web Service e pode ser publicada para uso nas diversas aplicaes que a utilizam.
A grande diferena que voc retira o cdigo de programao do seu sistema e o
Web Service pode ter vida prpria, com manutenes e melhorias independentes do
programa que a utiliza. Observe a figura 5.

Figura 5 Possibilidades de converso de rotinas orientadas a servios


FONTE: adaptado de Earl, 2005

5 O QUE A PLATAFORMA .NET?

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

17

Os tpicos apresentados at o momento nos fornecem os elementos que


influenciaram a Microsoft na construo da plataforma .NET. Ento, o que a
plataforma .NET?
A .NET uma iniciativa da Microsoft para suportar uma estratgia no uso de
Web Services usando um conjunto integrado de tecnologias e solues, com o
objetivo de fornecer uma abordagem completa e coesa de disponibilizao de
solues para as empresas.
Segundo Platt (2003), a .NET uma infra-estrutura pr-construda para
resolver problemas das aplicaes para a Internet. O autor defende que somente
um grande conjunto de tecnologias e nada mais. Porm, a Microsoft procura afirmar
que a .NET oferece um grande avano na forma como as pessoas trabalham e por
isso, a fabricante de software acredita que h uma proposta de mudana no
paradigma de como os negcios so conduzidos usando .NET.
6 COMPONENTES DA PLATAFORMA
A Microsoft distribuiu as vrias funcionalidades da plataforma .NET em
componentes. Cada componente possui caractersticas particulares, finalidades
especficas e total integrao entre eles. Vamos conhecer cada um deles:

Ambiente de execuo de aplicaes, .NET Framework: um conjunto


de recursos instalados no computador, com o objetivo de permitir a
execuo de programas construdos para .NET. Seu principal objetivo
fornecer ao programador bibliotecas de classes para reuso, a execuo
controlada

disponibilizao

administrada
da

soluo

de

programas

construda.

e
Os

facilidades

para

programas

seus

componentes so executados sobre o .NET Framework;

Conjunto de servios utilizando uma infra-estrutura de software


servidores: a Microsoft reuniu todos os seus produtos utilizados como
software servidores e estabeleceu total compatibilidade dos servios de
cada um desses produtos, com a plataforma .NET. A esse conjunto de
produtos batizou-se Windows Server System;

.NET Building Blocks: so representados por um conjunto de servios


pr-construdos para acelerar o processo de construo de sistemas. O
exemplo mais comum o Microsoft Passport (agora tambm conhecido

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

18

como Windows Live ID - figura 6), que fornece servios de autenticao


de usurios e que pode ser utilizado na construo de sistemas, liberando
o programador do trabalho de construir uma rotina especfica para a
autenticao de usurios;

Figura 6 Pgina do Windows Live ID

Visual Studio .NET: a ferramenta fornecida pela Microsoft para a


construo de sistemas para a plataforma .NET. Com esse produto, o
programador cria seus programas e se utiliza de todas as potencialidades
do .NET.

Cada um dos componentes da plataforma .NET possui um grande conjunto


de tecnologias e subcomponentes e a cada um esto sendo aprimorados e
agregados novos recursos e funcionalidades. O componente principal da plataforma
o .NET Framework, j que por ele que todos os demais componentes interagem
e funcionam.
Outro aspecto relevante da plataforma que todos os seus componentes
esto construdos para oferecer e consumir padres de tecnologia baseados na
Internet, ou seja, todos os elementos influenciadores que vimos nos tpicos

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

19

anteriores, foram implementados logicamente pela Microsoft. a resposta da


Microsoft para o desenvolvimento de sistemas distribudos baseados na Internet.
Para que voc tenha uma viso mais clara dos componentes da plataforma,
observe a figura 7.

Figura 7 Componentes da Plataforma .NET


FONTE: adaptado da Microsoft - MOC, 2001

7 .NET FRAMEWORK
Considerando sua importncia na plataforma, o .NET Framework merece um
tpico particular para seu melhor entendimento. Ele, na verdade, um software
acoplado ao sistema operacional, com o objetivo de executar aplicaes para a
plataforma .NET.
Cabe aqui uma observao importante e polmica: a compatibilidade do
.NET Framework com sistemas operacionais. Na prtica, a Microsoft
criou o produto para ser acoplado apenas em seus sistemas
operacionais e suas verses (Windows XP, Windows 2000, Windows 2003 e etc.).
Dessa forma, os aplicativos construdos para .NET somente podem ser executados
em equipamentos que tenham instalado um sistema operacional da Microsoft. Esse
assunto polmico, porque a plataforma concorrente o Java da Sun, que oferece
um completo suporte a vrios sistemas operacionais de mercado, incluindo

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

20

logicamente o Linux. Perceba ento que temos aqui um aspecto de competio de


mercado entre os fabricantes de software: de um lado a Microsoft, procurando
fortalecer ainda mais sua base Windows instalada, do outro a Sun, oferecendo um
nvel de flexilidade que permite ao programador escolher ou adaptar-se ao sistema
operacional de destino, sem amarras.
Mas existem iniciativas no patrocinadas oficialmente pela Microsoft, para a
execuo de programas .NET em outros sistemas operacionais. O projeto MONO
uma iniciativa da comunidade de desenvolvedores para a construo de uma verso
baseada em GNU/Linux, como software livre, da plataforma .NET.
Para maiores informaes sobre o projeto, acesse o seguinte endereo na Internet:
http://www.mono-project.com/Main_Page.
O .NET Framework organizado em subcomponentes (figura 8) que, juntos,
oferecem ampla camada de desenvolvimento e reuso de aplicaes, utilizando-se de
conceitos de integrao e interdepependncia.

Figura 8 Componentes da Plataforma .NET


FONTE: adaptado da Microsoft - MOC, 2001

7.1 Cdigo Gerenciado


O principal subcomponente do .NET Framework o conceito de cdigo
gerenciado, construdo pelo programador e executado em um ambiente chamado
Common Language Runtime (CLR) (figura 9). Esse ambiente interfere na

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

21

execuo dos programas, permitindo que o .NET Framework garanta uma srie de
aspectos vlidos para o perfeito e seguro funcionamento tanto da aplicao como
tambm do sistema operacional.

Figura 9 Common Language Runtime


neste momento que percebemos uma das primeiras vantagens da
plataforma .NET, que oferece ao programador a capacidade de utilizar qualquer
linguagem de programao que suporte .NET, fazendo com que essa escolha
atenda seu conhecimento pr-existente em determinada linguagem (Java, Cobol,
Visual Basic, C# e etc.), aumentando, dessa forma, a produtividade na construo
de sistemas. Quando um programa compilado para .NET, o compilador converte
a linguagem de programao utilizada para uma linguagem padro da plataforma
.NET chamada Microsoft Intermediate Language (MSIL) (figura 10). Toda
linguagem gera o mesmo MSIL, cuja capacidade permite ao programador possuir
particularidades em determinada linguagem, mas o seu resultado ser sempre o
mesmo.

Figura 10 O processo de compilao e execuo do MSIL

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

22

O programa gerado em MSIL no pode ser executado diretamente pelo


sistema operacional. necessrio um programa para sua execuo. nesse
momento que um outro subcomponente do .NET Framework atua: o compilador
Just-in-time. Esse software basicamente l o programa compilado em MSIL e
executa-o de acordo com a lgica empregada pelo programador, conforme
mostramos na figura 8.
7.2 Biblioteca de classes do .NET Framework
um conjunto de programas, organizados em bibliotecas de cdigo j
compilado, que fornece o conjunto de recursos que a plataforma .NET possui, para
que o programador construa o sistema utilizando-se das funcionalidades disponveis.
Se o programador precisa abrir um arquivo, por exemplo, deve se utilizar das rotinas
de abertura de arquivos j disponveis na plataforma, para que o seu programa seja
considerado cdigo gerenciado.
As bibliotecas de classes ficam facilmente disponveis atravs de ferramentas
de desenvolvimento, como o caso do Visual Studio .NET, que permite ao
programador inserir uma determinada funcionalidade rapidamente.
As bibliotecas so organizadas de tal modo que o programador encontre
facilidade para uma funcionalidade especfica e tambm organize as classes em
categorias e hierarquia, permitindo ainda o reuso entre as prprias classes. Cada
elemento ou funcionalidade dessa hierarquia de bibliotecas de classe, chamado de
namespace. Na verso atual do .NET Framework, a bibloteca fornece centenas de
classes, para atender s mais diversas finalidades.
7.3 Acesso a dados na plataforma .NET
Quando falamos em acesso a dados, estamos nos referindo funcionalidade
da aplicao que permite obter ou armazenar informaes em um banco de dados.
Com o objetivo de facilitar o trabalho de construo de programas com acesso a
banco de dados, a platalaforma .NET oferece um conjunto de classes chamada
ADO.NET contendo recursos e funcionalidades para atender grande maioria das
demandas para o desenvolvimento de sistemas com banco de dados.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

23

7.4 Desenvolvimento de Sistemas para a Web


O desenvolvimento de aplicaes para Web facilitado, tambm, por um
conjunto de classes chamado ASP.NET. Na verdade, o ASP.NET a evoluo de
um ambiente de execuo de aplicaes para a Web que a Microsoft lanou em
1997, chamado Active Server Pages (ASP). Basicamente, o ASP permite ao
programador trabalhar com o conceito de pginas dinmicas no desenvolvimento de
aplicaes para Web, recursos fundamentais para seu sucesso.
7.5 Formulrios Windows
O termo formulrio refere-se s janelas apresentadas do seu sistema. A
plataforma .NET oferece tambm um conjunto de classes e componentes para a
construo rpida de telas para a interface com o usurio do sistema. A esse
conjunto chamamos Windows Forms.
8 AS LINGUAGENS PARA .NET
Como vimos no tpico anterior, o .NET Framework permite que o
programador escolha a linguagem que deseja utilizar na construo de seu sistema.
Para isso, a linguagem tambm precisa suportar as regras da plataforma .NET.
Chamamos de linguagem para .NET a linguagem que gerar cdigo gerenciado com
base nos padres estabelecidos pela plataforma. Nem todas as linguagens
oferecem esse suporte.
Em particular, a linguagem C# foi lanada em conjunto com a plataforma
.NET. Seu principal objetivo permitir ao programador o completo uso dos
benefcios da plataforma, mas utilizando-se de padres de construo j
conhecidos. a linguagem preferencial no desenvolvimento para .NET, j que est
estruturada com todos os aspectos que a Microsoft espera que um progamador
utilize em .NET.
Outras linguagens foram transportadas pela Microsoft para suportar a
plataforma .NET como o Visual Basic e o Visual J# (verso Java da Microsoft).
Linguagens de outros fabricantes tambm foram adequadas.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

COBOL,

SmallTalk,

Delphi,

Perl.

24

Sntese
Nesta aula voc tomou conhecimento da plataforma .NET, sua importncia e
seus componentes. Pudemos perceber que um assunto extenso, mas
extremamente atual, considerando as tecnologias que a Microsoft empregou na
construo da plataforma. importante concluirmos que, usando a .NET, o
programador trabalha em um outro nvel de desenvolvimento de sistemas, com um
grande aumento de produtividade e no uso adequado de tecnologias necessrias
para o dinmico mundo dos negcios de hoje.
Na prxima aula, vamos conhecer uma ferramenta para o desenvolvimento de
sistemas para a plataforma .NET, e estaremos iniciando nossos primeiros
programas.
At l.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

25

Exerccios Propostos
1) Cite dois motivos que favoreceram criao da plataforma .NET. Explique
com as suas prprias palavras cada motivo.
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) O que a plataforma .NET?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
3) Quais so os componentes da plataforma .NET?
______________________________________________________________
______________________________________________________________
_____________________________________________________________
4) Associe a coluna da direita com a coluna da esquerda.
( ) Intermediate Language

1. Nome dado ao conjunto de classes fornecidas


pela plataforma .NET, com o objetivo de fornecer
uma

estrutura

hierrquica

organizada

de

funes.

( ) Compilador Just-in-Time

2. Linguagem gerada aps a compilao de um


programa desenvolvido para a plataforma .NET.

( ) Namespace

3. Biblioteca de classes que oferece suporte a banco


de dados na plataforma .NET.

( ) ADO.NET

4. Software

utilizado

para

(Intermediate Language).

SOCIESC Sociedade Educacional de Santa Catarina

gerar

cdigo

.NET

Programao Aplicada Microsoft .NET usando C#

Aula 2

VISUAL STUDIO EXPRESS


Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Descrever a ferramenta de desenvolvimento de sistemas
para .NET;
 Identificar os primeiros elementos de programao em
linguagem C#;
 Utilizar o compilador e executar um programa;
 Entender como distribuir um programa para o usurio.
Contedos da aula
Acompanhe os assuntos desta aula, se preferir, ao
terminar, assinale o contedo j estudado.
 necessrio um produto para desenvolvimento em .NET?
 O que o Visual Studio .NET?
 As verses do Visual Studio
 Instalado a verso Express
 Conhecendo o ambiente
 Criando um simples programa em C#

SOCIESC Sociedade Educacional de Santa Catarina

26

Programao Aplicada Microsoft .NET usando C#

27

Prezado(a) aluno(a),
Bem-vindo(a) nossa segunda aula. Voc ver nesta aula como utilizar
uma ferramenta de desenvolvimento de sistemas para a plataforma
.NET. Essa ferramenta ser utilizada durante todo o mdulo, por isso, vamos entrar
em detalhes operacionais para que voc tenha um excelente desempenho nas
atividades em aula. Tambm faremos uma provocao sobre a necessidade de
utilizarmos ou no uma ferramenta de desenvolvimento, para construir programas
.NET.
Boa aula!

1 NECESSRIO UM PRODUTO PARA DESENVOLVIMENTO EM .NET?


Essa a principal pergunta que o programador precisa responder quando
falamos do Visual Studio. Muitos profissionais de informtica questionam a
obrigatoriedade no uso de determinada ferramenta, por sentirem um certo
direcionamento ou amarrao dos fabricantes de software. Na verdade, quando
falamos em desenvolvimento de sistemas, nas condies atuais, estamos sempre
buscando meios de atingir maior produtividade e preciso na construo de
algoritmos.
Historicamente, as linguagens compiladas no exigem uma ferramenta para
construir programas, mas a sua adoo facilita o trabalho do programador e
aumenta a sua produtividade.
Essa afirmativa tambm se aplica plataforma .NET. No necessrio (ou
obrigatrio) o uso do Visual Studio .NET para desenvolver sistemas para .NET, na
verdade, os programadores e as empresas desenvolvedores de software percebem
que o Visual Studio .NET acaba sendo a ferramenta ideal, considerando sua natural
aplicao dos conceitos e tecnologias envolvidas na .NET. Isso ainda mais forte se
a opo de linguagem for da Microsoft, como o caso do C#.
Outras ferramentas de desenvolvimento, tambm conhecidas como IDE
(Integrated Development Environment, ou Ambiente de Desenvolvimento Integrado),
existem no mercado, como o SharpDevelop e o Borland IDE, que possuem suas
caractersticas especficas e podem acabar atendendo a um pblico particular de
desenvolvedores.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

28

A Microsoft acabou inserindo no Visual Studio .NET um aspecto relevante: a


capacidade de se utilizar qualquer linguagem que suporte .NET e possua recursos
de integrao com o ambiente do produto. Por exemplo, atualmente j possvel
desenvolver em COBOL para .NET, usando o Visual Studio da Microsoft (figura 11).
A ferramenta da Microsoft oferece um excelente suporte extenso de suas
capacidades internas, permitindo a personalizao, construo de recursos
especficos para determinada linguagem, o que est sendo explorado por
determinados fabricantes, que se sentem liberados para focar no potencial da
linguagem e no na ferramenta de desenvolvimento.

Figura 11 Cobol no Visual Studio


Apesar de todos os argumentos vantajosos no uso do Visual Studio .NET ou
de ferramenta equivalente no influenciarem o programador mais resistente, h o
meio convencional de desenvolvimento de sistemas .NET sem uma IDE. Para isso,
basta que o progamador realize:

O download do programa de instalao do .NET Framework para


desenvolvimento, que pode ser obtido no site da Microsoft;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

29

Utilizar um editor de textos de sua escolha, como o Bloco de Notas, para


digitar o algoritmo de acordo com a sintaxe da linguagem desejada, por
exemplo C#;

Abrir uma sesso do Prompt do MS-DOS e efetuar a compilao do


programa construdo, usando o compilador fornecido pelo pacote de
instalao do .NET Framework;

Executar o programa gerado pelo compilador.

A questo que fica aqui : qual a produtividade do programador usando esse


mtodo? O uso de uma ferramenta IDE exatamente automatizar o processo acima
descrito, favorecendo outros recursos importantes como:

a validao em tempo real;

a conformidade entre a linha digitada e a sintaxe da linguagem;

o uso de recursos de depurao do cdigo para localizar um erro de


lgica;

a execuo do programa diretamente do ambiente da ferramenta, sem a


necessidade de digitar algum comando.

2 O QUE O VISUAL STUDIO .NET?


a nova gerao das ferramentas de desenvolvimento de sistemas da
Microsoft, com o total suporte s tecnologias e recursos disponveis na plataforma
.NET. Ela oferece ao programador o que h de mais atual nas prticas de
engenharia de software e fornece um conjunto de verses para atender s
particularidades de cada perfil de programador e da envergadura do projeto de
software a ser construdo.
A prxima pergunta que o programador precisa responder : com o Visual
Studio .NET, quais os tipos de aplicaes que podemos construir? A verso atual,
2005, permite que o programador construa os seguintes tipos de aplicaes:

Windows Applications: este o nome dado s aplicaes .NET


desenvolvidas com Interface Grfica e so utilizadas pelos usurios

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

30

localmente nos computadores, ou por uma rede interna. Esse tipo de


aplicao usada para solues cliente-servidor e no se utiliza
primariamente dos recursos da Internet;

Console Applications: so as aplicaes que no possuem interface


grfica, tambm conhecidas como aplicaes de modo caractere
baseadas em MS-DOS e executadas em uma janela de comando do MSDOS em um sistema operacional Windows;

Componentes reutilizveis ou bibliotecas de classes: permitem a


construo de componentes a serem reutilizados por outras aplicaes,
seguindo padres de mercado para sistemas distribudos;

Web Applications: solues baseadas em tecnologias da Internet, que


utilizam primariamente as tecnologias da Web, como HTML, Javascript,
http, etc. Alm disso, tambm podem ser construdos Web Services, como
componentes a serem acessados pela Internet, tambm usando padres
de mercado.

De acordo com a aplicao desejada, precisamos utilizar uma verso


especfica do Visual Studio.
Algumas vantagens no uso do Visual Studio .NET:

O Visual Studio automatiza os passos necessrios para compilar um


cdigo-fonte, mas fornece um controle completo sobre os parmetros que
podem ser alterados para mudar o comportamento do processo de
compilao;

O editor de textos foi desenvolvimento especificamente para as linguagens


suportadas pelo Visual Studio, principalmente o C#, permitindo que a
ferramenta possa, de forma simples e intuitiva, detectar erros e sugerir
cdigos onde for adequado;

Fornece um conjunto de modelos prontos para a construo de aplicaes


especficas, acelerando o processo de construo do projeto;

O Visual Studio (figura 12) fornece vrios assistentes para guiar o


programador em tarefas mais complexas ou que exigem um nvel de
cuidado, liberando o programador de detalhes necessrios para a
construo de determinada funcionalidade.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

31

Figura 12 Ambiente do Visual Studio .NET Express

3 AS VERSES DO VISUAL STUDIO


O Visual Studio .NET, verso 2005, apresenta cinco opes para uso do
produto e cada uma direcionada para um perfil especfico de profissional de TI, bem
como, de acordo com a finalidade do projeto de software.
A opo gratuita do produto chamada linha Express, dividida nas
seguintes subverses:

Web Developer: direcionada para a construo de aplicaes para a Web


(chamadas Web Applications);

Visual Basic: voltada para o desenvolvimento de solues baseadas em


formulrios, usando a linguagem Visual Basic;

Visual C#: voltada para o desenvolvimento de solues baseadas em


formulrios, usando a linguagem C#;

Visual C++: voltada para o desenvolvimento de solues baseadas em


formulrios, usando a linguagem C++;

Visual J#: voltada para o desenvolvimento de solues baseadas em


formulrios, usando a linguagem Java;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

32

SQL Express: para o desenvolvimento e gerenciamento de solues a


serem armazenadas e executadas no banco de dados da Microsoft.
Tambm serve como base de dados para as demais verses da linha
Express.

Alm das verses gratuitas do Visual Studio, tambm existem trs verses
pagas do produto:

Standard: das verses pagas, a opo mais barata. Tem por objetivo o
desenvolvimento de pequenas solues e apenas um programador
interage com o projeto;

Professional: essa verso possui as mesmas caractersticas da Standard,


adicionando recursos mais robustos para projetos de mdio tamanho e
com suporte amplicado a banco de dados SQL Server 2005;

Tools for Office: para o desenvolvimento de componentes que sero


utilizados por produtos da plataforma Office System (Excel, Word e etc.).
Possui

recursos

limitados

suas

capacidades

esto

totalmente

direcionadas para o uso apenas com os produtos Office;

Visual Studio Team Sytem: possui todos os recursos das verses j


mencionadas, mas amplia sobremaneira a capacidade de recursos do
Visual Studio para trabalhar em equipes de projeto. O Team System
prope-se a fornecer um conjunto completo de ferramentas para todo o
ciclo de desenvolvimento de solues, incluindo documentaes e a
gesto de testes do produto. excelente para projetos de grande porte,
que envolvem um grande nmero de programadores.

Nesse mdulo utilizaemos o produto Visual C# 2005 Express Edition.

2.4 Instalando a verso Express


Para realizar a instalao da verso Express do Visual Studio, para o
desenvolvimento com C#, voc precisa acessar o site da Microsoft no seguinte
endereo (infelizmente ainda no h verso em portugus do produto):
http://msdn2.microsoft.com/pt-br/vstudio/default.aspx

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

33

H duas formas para realizar a instalao dessa verso: on-line ou off-line. Na


verso on-line, voc far o download de um pequeno programa que, ao ser
inicializado, far a conexo com o site da Microsoft e realizar a instalao aps o
download dos componentes necessrios. Para a verso off-line, voc dever efetuar
o download de um grande arquivo que, na verdade, uma imagem de CD, grav-lo
com o contedo da imagem e depois realizar a instalao a partir do CD gravado.
O mtodo mais simples (mas a velocidade depender de sua conexo com a
Internet), a instalao on-line. importante ressaltar que a Microsoft exige o
registro do produto, apesar de no cobrar nenhum licenciamento.
Nesse cenrio de instalao on-line, aps o download do arquivo para
instalao, execute o programa e siga os passos do assistente de instalao,
habilitando ou desabilitando opes de acordo com a sua finalidade de
desenvolvimento. Para esse mdulo, vamos considerar os passos a sequir descritos
e demonstrados na figura 13:
1. Efetue o download do arquivo vccsetup.exe;
2. Execute o programa. Ser apresentada a tela de boas vindas do programa
de instalao;
3. Clique no boto Next;
4. Na janela de aceite da licena de uso (End-user License Agreement),
marque a frase I accept the terms of the License Agreement e depois,
clique no boto Next;

Figura 13 Opo de aceite da Licena de Uso


5. Na prxima janela do assistente de instalao, no selecione nenhuma
opo e clique no boto Next. As duas opes apresentadas referem-se :
Microsoft MSDN - a documentao do produto; e Microsoft SQL

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

34

Server 2005 Express - o banco de dados que pode ser integrado ao


ambiente (figura 14). Escolha a opo do banco de dados (Microsoft SQL
Server), j que estaremos preparando o ambiente para o assunto de
banco de dados com C#;

Figura 14 Opes para produtos adicionais ao C# Express


6. A prxima janela solicita o local de armazenamento do software, para a
instalao. Essa opo importante, caso voc no possua espao
suficiente no disco rgido para a instalao do programa. Caso possua
espao, mantenha a informao sugerida e clique no boto Next (figura
15).

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

35

Observe o espao
necessrio para instalao
e o espao disponvel no
disco rgido de destino.

Figura 15 Informaes sobre a pasta de destino do programa de instalao


7. O programa de instalao iniciar a cpia e a configurao do sistema
operacional para a execuo do programa. Aguarde o trmino da
instalao (figura 16);

Figura 16 Acompanhamento do processo de instalao

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

36

8. Quando o programa de instalao terminar o passo anterior, a janela de


concluso ser apresentada, fornecendo um resumo da instalao e
instrues para registro do produto (figura 17);

Figura 17 Tela final da instalao


9. Clique na frase sublinhada em azul Register Now, para que o programa
de instalao o (a) encaminhe diretamente para a pgina de registro do
produto na Internet;
10. Para efetuar o registro, voc precisa de um Microsoft Passport. Na janela
apresentada, efetue o seu login;
11. Na prxima pgina do site de registro da Microsoft, informe os dados
solicitados no formulrio (figura 18);
12. Finalmente, o site de registro apresentar uma janela contendo o nmero
de srie para registro do produto;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

37

Figura 18 Janela de Registro


13. Copie o nmero de registro e execute o Visual C# 2005 Express (figura
19). Aguarde at que o programa de preparao da primeira execuo
termine;

Figura 19 Janela de preparao da primeira execuo


14. No ambiente do programa, execute o comando Register product do
menu Help (figura 20);

Figura 20 Menu Help

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

38

15. Na janela apresentada, cole o nmero de registro no campo Registration


Key e clique no boto Complete Registration (que somente ser
habilitado se houver um nmero digitado no campo) (figura 21);

Figura 21 Janela de registro


16. O seu programa est pronto para ser utilizado.
5 CONHECENDO O AMBIENTE DO VISUAL C# 2005 EXPRESS
Quando voc executa o programa pela primeira vez, ele apresenta um
conjunto de painis vazios e um contedo central da janela, contendo informaes
sobre novidades e informaes atualizadas da Microsoft (que podero estar
atualizadas se a conexo com a Internet existir). Para que os demais painis
apresentem suas funcionalidades e informaes, necessrio que um projeto seja
aberto ou criado.
Ao clicar na opo Create: Project... ser apresentada uma nova janela,
contendo os modelos de aplicaes que voc poder utilizar para construir o seu

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

39

programa (figura 22). O modelo a ser selecionado, dever ser correspondente


finalidade da sua aplicao.

Figura 22 Janela de modelos de aplicaes


Em nosso mdulo, os projetos que criaremos sero sempre Windows
Applications. Mas vamos conhecer os demais modelos disponveis:
Modelo
Windows Application

Descrio
Voltado para o desenvolvimento de sistemas baseados
em Janelas/Formulrios

Class Library

Permite a construo de uma biblioteca de classes, para


reuso em outras aplicaes

Console Application

Para

desenvolvimento

de

solues

em

modo

caractere, para o uso em janelas de Prompt do MS-DOS


Empty Project

Modelo vazio, sem a insero automtica de qualquer


recurso. til quando desejamos construir um projeto do
zero, sem qualquer parmetro j inicializado, como nos
outros modelos.

Starter Kits

A Microsoft fornece vrios Starter Kits para acelerar o


desenvolvimento de uma determinada aplicao. Por
padro, o produto j vem instalado com dois kits: Screen
Saver e Movie Collection.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

40

Usando o cone Search online templates...voc pode procurar no site da


Microsoft outros modelos ou Starter kits. Aps escolher o modelo desejado, informe
o nome do projeto no campo Name da janela.
Ao escolher a opo mais comum, Windows Application, a janela do
ambiente de desenvolvimento do Visual C# tal qual a que mostramos na figura 23:

Figura 23 Janela principal com um projeto aberto


Na janela principal, voc pode verificar que existem vrias janelas e
elementos visuais. Vamos conhecer rapidamente cada um deles. Na parte superior
da janela esto o menu e a barra de ferramentas, que seguem as mesmas regras de
qualquer programa para Windows. No lado esquerdo est o painel Toolbox (caixa
de ferramentas), que permite a insero de objetos diretamente no formulrio. No
lado direito da janela, dois painis so apresentados: o painel superior o Solution
Explorer e o painel inferior a janela de Propriedades. Na parte central da janela
est um formulrio vazio, pronto para ser personalizado, de acordo com as
necessidades de sua aplicao (figura 24).

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

41

Figura 24 Janela principal e seus componentes


O desenvolvimento de solues, usando essa ferramenta, segue as mesmas
orientaes para as aplicaes RAD (Rapid Application Development), ou seja, voc
desenha a interface que deseja construir, altera as propriedades, insere objetos
interface atravs do Toolbox e depois associa cdigo de programao aos eventos
associados aos objetos. Alm disso, tambm voc poder criar classes e subrotinas
para reuso dentro e fora da aplicao.
Se voc efetuar um duplo clique no formulrio vazio, no centro da janela, o
editor de cdigo do Visual Studio ser apresentado. H, no editor de cdigo, vrias
particularidades importantes para o programador, exemplo: navegao no cdigo,
Intellisense e marcas de reviso. De todos os detalhes do editor, o mais interessante
o Intellisense, que fornece informaes ao programador, de acordo com os
comandos digitados no ambiente do editor (figura 25). O ambiente do Visual Studio
apresenta opes de acordo com o comando envolvido.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

42

Figura 25 Janela do editor de cdigo


O Intellisense fornece ao editor de cdigo a capacidade de sugerir vrias
opes no contexto do programa, medida que voc digita, uma cortina flutuante
apresentada com os itens possveis a serem utilizados na digitao, acelerando o
processo de construo do cdigo.
H tambm o Hot Compiler, que destaca no cdigo as instrues que
apresentam erros de sintaxe, enquanto voc digita o seu programa. Quando h um
erro, o texto sublinhado e, ao passar com o mouse sobre o texto destacado, ser
apresentada uma pequena janela com informaes sobre o erro.
O Visual C# 2005 Express tambm fornece um compilador integrado e a
capacidade de executar o seu cdigo diretamente do ambiente de programao. Ele
permite compilar um arquivo particular ou toda a soluo (um grupo de arquivos que,
juntos, forma a aplicao). Uma vez compilada sua aplicao, voc pode se utilizar
dos recursos de depurao de cdigo (debug) do ambiente, para localizar possveis
erros de lgica. Finalmente, aps ter estabilizado todos os possveis problemas de

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

43

seu programa, voc poder gerar uma aplicao a ser distribuda em forma de
pacote de aplicao.
6 CRIANDO UM SIMPLES PROGRAMA EM C#
Nesse tpico vamos realizar os passos do ciclo de desenvolvimento de um
sistema simples, usando o Visual C# 2005 Express (figura 26). Basicamente, os
passos so mesmos j mencionados anteriormente:

Desenhar a interface que deseja apresentar para o usurio, utilizando as


opes de objetos do Toolbox;

Alterar as propriedades da janela e dos objetos para atender a uma


funcionalidade especfica;

Associar cdigo de programao aos eventos dos objetos, com o objetivo


de fornecer funcionalidades ao usurio, de acordo com o evento envolvido
no progama;

Testar o programa;

Compilar e distribuir o programa.

Figura 26 Ciclo de desenvolvimento RAD


1. Se voc no executou o Visual C# 2005 Express, execute-o agora;
2. Na janela principal, clique no comando Create: Project...;
3. Na janela New project, selecione o modelo Windows Application, informe o
nome do projeto de AulaPrtica1 e clique no boto OK;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

44

4. Atravs do Toolbox, insira um boto ao formulrio. Sua tela dever se


apresentar conforme a figura 27;

Figura 27 Boto inserido no formulrio


5. Selecione o boto inserido no formulrio e no painel de Propriedades, altere
a propriedade Text para Mensagem, conforme a figura 28;

Figura 28 Painel de propriedades


6. Agora efetue um duplo clique sobre o boto. O painel de cdigo ser
apresentado (figura 29). Ento digite o seguinte comando entre as chaves
abaixo do comando private void button1_Click;
MessageBox.Show (Exemplo de primeiro programa em C#);

Figura 29 Janela de cdigo com o comando inserido


7. O cdigo de seu programa fica assim:
namespace AulaPrtica1
{
public partial class Form1 : Form
{

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

45

public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Exemplo de primeiro programa em c#");
}
}
}

8. Para testar o programa, clique no boto Start Debugging, ou pressione a


tecla F5;
9. A janela do programa ser apresentada. Clique no boto e veja o resultado;
10. Clique no boto Fechar da janela, com o objetivo de parar o programa;
11. Agora vamos compilar o programa para a distribuio. Execute o comando
Build Solution do menu Build, ou pressione a tecla F6;
12. Execute o comando Publish do menu Build. Na janela apresentada,
referente ao Assitente de Publicao, informe a pasta de destino para que o
programa seja disponibilizado. Essa janela permite que voc envie o
programa gerado para o computador local, para um computador da rede, ou
um local de armazenamento na Internet. Informe o local ou utilize o boto
Browse para localizar uma pasta local em seu computador e clique no boto
Finish;
13. Localize a pasta de destino informada no passo 12 e verifique que sero
criados dois arquivos (um referente ao programa de instalao e outro que o
prprio programa desenvolvido). Esse o pacote de instalao de seu
programa, que poder ser disponibilizado para os usurios do sistema.

Sntese
Nesta aula voc estudou sobre a importncia do uso de ferramentas IDE para o
desenvolvimento .NET e tambm conheceu as verses do Visual Studio,
entendendo qual a verso mais adequada para o tipo de projeto envolvido. Alm
disso, voc aprendeu como instalar o Visual Studio para iniciar os seus trabalhos,

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

46

bem como obteve as informaes bsicas sobre o ambiente do produto. Finalmente,


como primeiro passo na incurso do desenvolvimento em C#, voc executou o ciclo
de desenvolvimento RAD, usando um exemplo simples na linguagem C#.
Na prxima aula vamos iniciar nossa primeira incurso efetiva na linguagem
de programao C#. Vamos adiante, pois agora os assuntos vo comear a
apresentar resultados prticos.
At a prxima aula.

Exerccios Propostos
1) Diante do que voc aprendeu nesta aula, obrigatrio o uso do Visual Studio
para o desenvolvimento de aplicaes .NET? Por qu?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) possvel utilizar outras linguagens de desenvolvimento, dentro do Visual
Studio, alm do C#? Se positivo, cite alguns exemplos de linguagem.
______________________________________________________________
______________________________________________________________
______________________________________________________________
3) O seu projeto tem por finalidade o desenvolvimento de uma aplicao mdia
para a Web. Qual a verso do Visual Studio que voc dever utilizar?
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Aula 3

TRABALHANDO COM VARIVEIS


EM C#
Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Identificar a reconhecer a sintaxe da linguagem C#;
 Utilizar os comandos no uso de variveis e expresses.
Contedos da aula
Acompanhe os assuntos desta aula, se preferir, ao
terminar, assinale o contedo j estudado.
 Conhecendo os elementos de um programa;
 Regras de sintaxe da linguagem C#;
 Trabalhando com variveis;
 Recursos especiais com variveis strings;
 Enumeraes, estruturas e Arrays;
 Construindo expresses.

SOCIESC Sociedade Educacional de Santa Catarina

47

Programao Aplicada Microsoft .NET usando C#

48

Prezado(a) aluno(a),
Bem-vindo(a) nossa terceira aula. Conforme tratamos nas aulas
anteriores, a linguagem C# foi desenvolvida especificamente para a
plataforma .NET. Projetada por Anders Hejlsberg (criador do Delphi) e Scott
Wiltamuth, um de seus principais apelos facilitar o processo de migrao de
programadores para a nova plataforma, bem como, a adoo de novos
programadores. De fato o projeto do C# buscou os melhores recursos das
linguagens C, C++ e Java, mas com as facilidades do Visual Basic e do Delphi.
orientada a eventos, completamente orientada a objetos, com uma abordagem de
construo visual que permite construir programas usando um IDE (conforme vimos
na aula anterior). O objetivo desta aula lhe apresentar os recursos iniciais da
linguagem C#, fornecendo-lhe a incurso nos elementos da linguagem, porque que
cada elemento tem seu lugar, entender o objetivo de cada comando e conhecer as
regras sintticas que a linguagem implementa.
Boa aula.

1 CONHECENDO OS ELEMENTOS DE UM PROGRAMA C#


Antes de voc conhecer as regras sintticas do C# importante que tenha a
oportunidade de analisar um cdigo existente na linguagem. A estrutura da
linguagem de programao precisa ser seguida para que o compilador interprete
corretamente o programa. O Visual Studio refora as regras atravs de seus
recursos de validao de sintaxe, o que no permite a compilao de um programa
contendo erros. Vamos entender o cdigo C# observando a figura 30:

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

49

Figura 30 Anlise de cdigo C#


De forma geral, todo programa em C# possui 5 elementos principais: rea de
declaraes das classes, declarao da criao de namespace, bloco de declarao
da classe, ponto de inicializao e a rea de comandos/instrues da linguagem.
1.1 rea de declaraes das classes
As primeiras linhas do programa possuem a instruo sobre a(s) classe(s)
que est(o) em uso na aplicao, atravs da palavra reservada using. De acordo
com o que voc deseja fazer no programa, pode utilizar uma classe j existente no
.NET Framework e acelerar o processo de construo de seu programa. As palavras
que se referem uma classe existente, seguem a documentao do .NET
Framework.
Voc poder ter um excelente desempenho no desenvolvimento de
sistemas .NET, se conhecer as principais blbiotecas de classes
existentes na plataforma. Alm disso, se voc estudar ainda mais as
potencialidades disponveis na plataforma, estar preparando-se para outros

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

50

desafios. A biblioteca de classes fornecida no .NET Framework extremamente


grande, mas com experincia e lgica, facilmente poder localizar e utilizar uma
classe especfica para um determinada finalidade.

1.2 Declarao de criao da Namespace


Para evitar que ocorram colises entre as classes do usurio e as classes do
.NET Framework, possvel a criao de um namespace diretamente no cdigo de
programao. O principal objetivo dessa declarao garantir a exclusividade do
nome da classe dentro da hierarquia de namespaces que o .NET oferece. Toda
aplicao e classe construda, por padro, armazenada no namespace global,
dessa forma, todo cdigo criado pode ser acessado por outro cdigo que esteja
nesse mesmo namespace, apenas utilizando-se o nome da classe. Ento, o uso de
namespace garante que o cdigo ser qualificado, permitindo que o cdigo possa
ser acessado fora do namespace global.
Essa declarao o uso da palavra reservada namespace, acompanhada do
nome da namespace a ser criada, baseada no nome informado pelo programador,
que segue as mesmas regras de declarao de variveis na linguagem. Alm disso,
o bloco de declarao da namespace acompanhado das chaves de abertura e
fechamento e todo o conjunto de instrues deve ficar entre essas chaves.
1.3 Bloco de declarao da classe
A declarao class Program o incio da construo da classe. A palavra
reservada classe acompanhada pelo nome da classe, informada pelo
programador e que segue as regras de nomes da linguagem. Nesse caso, como um
namespace est sendo criado, j utilizando o nome informado pelo programador, a
palavra Program o nome atribudo para a classe. Via de regra, o nome das classes
sempre comea com letra maiscula.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

51

1.3 Ponto de inicializao da classe


Essa declarao a criao de um mtodo da classe Program. Nesse caso, o
mtodo nomeado com a palavra Main tem um significado especial, determinando ao
compilador que o programa comea a partir desse ponto. O parnteses, aps a
palavra Main, determina para o compilador que a declarao um mtodo. Toda
aplicao .NET deve possuir um mtodo Main, seno a aplicao no ser
executada.
A linha de instruo Main fundamental para a construo de um
programa em C#. Recebe restries importantes que precisam ser
seguidas para que o progama inicialize corretamente. A palavra
reservada Main precisa sempre ser iniciada com a letra maiscula M. Alm disso,
precisa ser declarada da seguinte forma: public static void Main. Em uma
aplicao C#, mltiplas classes podem existir, mas apenas uma deve conter o
mtodo Main. Finalmente, quando o mtodo Main finalizado, a aplicao termina.

1.4 rea de instrues/Comandos da linguagem


Nesse bloco, o programador insere as instrues e a lgica do programa, que
devero ser seguidos durante a execuo do programa.
Nesse ponto, importante voc conhecer a lista de palavras reservadas
que no podem ser utilizadas para nomear uma varivel ou para se
utilizar como parte de um programa, exceto para implementar o
comando, de acordo com as regras da linguagem C#.

1.5 Palavras reservadas da linguagem C#


As palavras abaixo so utilizadas pela linguagem C# e sempre so
apresentadas em letras minsculas.
abstract

as

base

bool

break

byte

case

catch

char

checked

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

52

class

const

continue

decimal

default

delegate

do

double

else

enum

event

explicit

extern

false

finally

fixed

float

for

foreach

goto

if

implicit

in

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out

override

params private

protected public

readonly

ref

return

sbyte

short

sizeof

stackalloc static

string

struct

switch

this

throw

true

try

typeof

uint

ulong

unchecked

unsafe

ushort

using

virtual

void

volatile

while

sealed

2 REGRAS DE SINTAXE DA LINGUAGEM C#


Conforme voc verificou no tpico anterior, a programao C# segue regras
especficas. Considere as seguintes regras essenciais para que voc possa construir
programas:

O C# sensvel a letras maisculas e minsculas, dessa forma, uma


varivel declarada como Exemplo diferente de exemplo;

O uso de espaos em branco pode ser abundante, pois o compilador os


ignora para a gerao do programa;

Mantenha a distribuio do cdigo implementada pelo ambiente do Visual


2005 C# Express. A indentao fundamental para que o cdigo seja de
fcil leitura e entendimento;

Utilize comentrios, sempre que necessrio, usando barras comuns (//)


precedendo o texto que ser o comentrio. Em caso de comentrios que

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

53

ocupem mais de uma linha, utilize a combinao /* e */, veja exemplo na


figura 31.

Figura 31 Exemplo de instrues de comentrios em C#

3 TRABALHANDO COM VARIVEIS


Agora que voc obteve conhecimentos sobre os elementos de programao
da linguagem C#, o armazenamento de dados a primeira atividade que um
programador realiza para construir um algoritmo. H, na linguagem C#, uma extensa
capacidade para o armazenamento de dados, usando variveis. A sintaxe padro
para a declarao de uma varivel em C# a que mostra a figura 32.

Figura 32 Exemplos de declarao de variveis


Ento, a sintaxe para declarao de variveis no C# :
[modificadores] tipo declaraes;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

54

Modificadores (opcional): informao que determina a forma de


funcionamento da encapsulao da varivel, por exemplo, public, que
permite o acesso pblico ou static que mantm o valor da varivel;

Tipo: nome de um dos tipos de dados suportados pela linguagem C#;

Identificadores:

lista

de

declaraes

de

nomes

de

variveis

(identificadores), separados por vrgula. Uma declarao pode tambm


conter a atribuio de valor varivel. Lembre-se de que o C# exige que
toda varivel precisa ser inicializada antes de ser utilizada.
Para criar e utilizar uma varivel, voc precisa escolher um significado e um
nome apropriado para ela. Cada varivel possui um nome que tambm pode ser
referenciado como identificador de varivel.
3.1 Tipos de dados
A linguagem C# fortemente baseada em tipos, ento podemos dizer que
uma linguagem tipada. Isso significa que todo objeto criado ou utilizado precisa,
obrigatoriamente, ser um tipo especfico de dado, exemplo: um inteiro, ou uma
string.
Esse

recurso

um

aspecto

importante

dentro

do

processo

de

desenvolvimento de sistemas, por impactar diretamente na performance do


programa e no grau de planejamento da aplicao. De acordo com o tipo de dados
aplicados em determinada situao, haver perda ou ganho de performance durante
a operao, pois poder gerar uma exceo no sistema, se o tipo de dado escolhido
armazenar uma informao que originalmente no havia sido planejada. A
linguagem C# possui duas grandes categorias de tipos de dados: intrnsecos e os
tipos definidos pelo usurio.
Os tipos intrnsecos so os tipos de dados pr-construdos na linguagem. No
caso do .NET, esto baseados na especificao CTS (Common Type System) da
plataforma. Alguns autores tambm se referem aos tipos intrnsecos como tipos
primitivos, considerando que o C# acessa diretamente as classes bsicas do .NET e
os tipos de dados; por exemplo, o tipo de dados int do C# um sinnimo para
System.Int32, um tipo de dado primitivo que define um nmero inteiro de 32-bits com
sinal.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

55

3.1.1 Tipos de dados intrnsecos- Inteiros


So oito tipos de dados inteiros, cuja variedade permite que voc selecione o
tipo de dado com suporte suficiente para o intervalo de dados que ser armazenado.
Tipo

Byte

Implementao
Inteiro de 1 byte sem sinal
(0 a 255)

Tipo Primitivo

System.Byte

Valor default: 0

Sbyte

Inteiro com sinal de 1 byte


(-127 a 128)

System.SByte

Valor default: 0

Short

Inteiro com sinal de 16 bits


(-32.768 a 32.767)

System.Int16

Valor default: 0

Ushort

Inteiro sem sinal de 16 bits


(0 a 65.535)

System.Uint16

Valor default: 0

Int

Inteiro de 32 bits com sinal


(-2.147.483.648 a 2.147.483.647)

System.Int32

Valor default: 0

Uint

Inteiro de 32 bits sem sinal


(0 a 4.294.967.295)

System.Uint32

Valor default: 0
Inteiro com sinal de 64 bits
Long

(-9.223.372.036.854.775.808 a

System.Int64

9.223.372.036.854.775.807)
Valor default: 0

Ulong

Inteiro sem sinal de 64 bits


(0 a 18.446.744.073.709.551.615)
Valor default: 0

SOCIESC Sociedade Educacional de Santa Catarina

System.Uint64

Programao Aplicada Microsoft .NET usando C#

56

3.1.2 Tipos de dados intrnsecos Lgicos


H um tipo de dado booleano utilizado para o trabalho com expresses que
precisa representar dado FALSO ou VERDADEIRO.
Tipo

Implementao

Tipo Primitivo

Pode ter os valores true e false. No compatvel


Bool

com inteiro.

System.Boolean

Valor default: false

3.1.3 Tipos de dados intrnsecos Caractere


Em C#, todos os caracteres (e strings) so armazenados no padro Unicode
e usam 16 bits por caractere. O Unicode um padro mundial para representao
de caracteres e permite armazenar os caracteres de todas as lnguas vivas (como
grego, japons, chins e coreano) e algumas mortas (como snscrito).
Tipo

Implementao

Tipo Primitivo

Um nico caractere Unicode de 16 bits. No


compatvel com inteiro.

Char

Ou na terminologia do Unicode: U+0000 at U+ffff


Por exemplo, a letra A no Unicode representada

System.Char

como /U0041
Valor default: Caracter Unicode com o valor 0

3.1.4 Tipos de dados intrnsecos Ponto flutuante


A linguagem C# suporta dois tipos de variveis para armazenar ponto
flutuante.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Tipo

Implementao

57

Tipo Primitivo

Ponto flutuante binrio IEEE de 8 bytes


-324

(5,0 x 10
Double

308

at 1,7 x 10

15 a 16 dgitos decimais de preciso

System.Double

Valor default: 0.0

Ponto flutuante binrio IEEE de 4 bytes


(5,0 x 10-45 at 3,4 x 1038)
7 dgitos decimais de preciso
Float

System.Single
Valor default: 0.0

As operaes de ponto flutuante no geram erros:

Uma operao que gera um resultado muito pequeno para ser


representado torna-se zero;

Uma diviso por zero com nmeros de ponto flutuante no gera erro,
produz resultado infinito. Voc pode verificar se o valor infinito positivo
ou negativo com o mtodo Double.IsInfinity();

Uma operao invlida gera como resultado NaN (no um nmero);

Se um dos operadores for NaN, o resultado NaN.

3.1.4 Tipos de dados intrnsecos Decimal


Esse tipo est bem menos sujeito a erros de arredondamento que ocorrem
com os formatos binrios. As contas so feitas na base 10.
Tipo

Implementao

Tipo Primitivo

Ponto flutuante decimal de 128 bits


-28

(1,0 x 10
decimal

28

at 7,9 x 10 ), 28 a 29 dgitos decimais

de preciso
Valor default: 0.0

SOCIESC Sociedade Educacional de Santa Catarina

System.Decimal

Programao Aplicada Microsoft .NET usando C#

58

3.1.5 Tipos de dados intrnsecos String


Um dos tipos mais comuns em C# o string, que tambm inclui algumas
caractersticas especiais, no comuns nas outras linguagens. As variveis string so
alocadas dinamicamente e podem ter de zero a 1 Giga de caracteres.
Tipo

Implementao

Tipo Primitivo

String

String Unicode com at 1 giga de caracteres

System.String

3.1.6 Tipos de dados - Definidos pelo usurio


Como vimos, o .NET Framework fornece um grande conjunto de tipos de
dados pr-construdos, mas tambm h possibilidade de criar os prprios tipos de
dados. Os novos tipos so usados em qualquer situao onde normalmente voc
usaria um tipo primitivo.
Tipo

Enum

Descrio
Permite declarar uma seqncia de identificadores
associados, mas incompatveis com inteiros e com outras
enumeraes.

Struct

Permite declarar tipos que contm vrios valores, identificados


por um nome.

class

Permite declarar classes.

interface

Declara uma espcie de classe abstrata, que pode ser


implementada por outra classe.

Delegate

Declara um ponteiro para um mtodo de uma classe.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

59

4 RECURSOS ESPECIAIS COM VARIVEIS STRINGS


O tipo de dados String possui algumas potencialidades. O primeiro aspecto
a capacidade de inserir literais nas strings, para que sejam interpretadas. Na
verdade, so caracteres especiais, interpretados ou no, de acordo com sua
finalidade.
Finalmente, podemos utilizar operaes pr-definidas e mtodos para a
manipulao de dados, disponveis na linguagem.
4.1 Literais (caracteres especiais)
Os caracteres especiais que podem ser implementados em strings, esto
listados abaixo. Para que desabilite a interpretao dos caracteres na string, o valor
de atribuio para a varivel deve ser precedido do smbolo arroba (@).
Caracteres

Propsito

\t

Tabulao horizontal

\r

Retorno de carro (carriage return)

\v

Tabulao vertical

\f

Avano de pgina

\n

Salto de linha
Especifica um caractere especial padro ASCII

\x

usando dois dgitos hexadecimais (inserido


imediatamente ao lado do literal)
Especifica um caractere especial padro

\u

Unicode usando quatro dgitos hexadecimais


(inserido imediatamente ao lado do literal)

\\

Barra invertida

Apstrofo

Aspas

\0

Zero binrio ou nulo

\a

Toca um alarme

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

60

4.2 Operaes com variveis string


Existem diversas operaes definidas para strings. As principais so:
Operao
==

Propsito
Para comparar valores
Para concatenar

4.3 Mtodos
A classe String que se refere ao tipo de dados, fornece um grande conjunto
de mtodos para a manipulao de string.

Mtodo
Compare
Concat
Copy

Propsito
Comparar dois objetos string
Concatena uma ou mais strings
Copia a string corrente

5 ENUMERAES, ESTRUTURAS E ARRAYS


Enumeraes so alternativas s constantes e fornecem um caminho para
agrupar constantes de forma lgica. O uso de enumeraes muito til quando uma
varivel pode conter apenas um conjunto especfico de valores.
Para declarar uma enumerao, use a palavra-chave enum, acompanhada
do nome da varivel e dos valores iniciais.
Enum Nome : TipodeDados

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

61

{
varEnumerador1 = valor,
varEnumerador2 = valor
}
Estruturas em C# permitem a implementao de variveis compostas
heterogneas. So conhecidas tambm como structures, em ingls. A palavra
reservada struct utilizada para a declarao de uma estrutura. A sintaxe de uma
estrutura :
Struct nomedaestrutura
{
// Declaraes das variveis membro. Por exemplo
public TipodeDados NomeVariavel;
}
Assim como as enumeraes representam um agrupamento lgico de
constantes, arrays so agrupamentos lgicos de variveis. Basicamente, o uso de
arrays aplicado para o armazenamento de valores a partir de um ndice. Em C#,
um array um tipo de dado por referncia, desta forma, voc pode criar um array
usando o operador new. A sintaxe para declarao de um array :
TipodeDados[] identificador declarao;

6 CONSTRUINDO EXPRESSES
As expresses so construdas de operadores e operandos. Os operadores
de uma expresso indicam quais as operaes aplicadas nos operandos. Exemplos
de operadores incluem adies e concatenaes, subtrao, multiplicao e diviso.
O C# tem mais ou menos os mesmos operadores da linguagem C. Observe a lista
abaixo, ordenada por precedncia (do maior para o menor).
Tipo

Operador

Primrios

(x) x.y f(x) a[x] x++ x-- new typeof


sizeof

checked unchecked

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Tipo

Operador

Unrios

+ - ! ~ ++x --x (T)x

Multiplicativos

* / %

Aditivos

+ -

Deslocamento

<<

Relacional

< > <= >= is

Igualdade

== !=

E Lgico

&

Ou exclusivo lgico

Ou Lgico

E Condicional

&&

Ou Condicional

||

Condicional

?:

Atribuio

= *= /= %= += -= <<= >>= &= ^= |=

>>

SOCIESC Sociedade Educacional de Santa Catarina

62

Programao Aplicada Microsoft .NET usando C#

63

Sntese
Nesta aula fizemos nossa primeira incurso ao cdigo de programao da
linguagem C#. Analisamos um cdigo de programao bsico, para que voc tenha
o entendimento fundamental das regras de construo de programas na linguagem.
A mensagem principal desta aula foi lhe apresentar as regras e orientaes
para trabalhar com variveis e tipos de dados na linguagem.
A linguagem C# completamente tipada, ou seja, voc precisa determinar o
tipo de dados que deseja trabalhar, para obter otimizao e resultados adequados
s suas solues.
Vimos tambm um recurso relevante principalmente para a construo de
solues Console (baseadas em caractere): o uso dos recursos de manipulao de
Strings. O tipo de dados String permite que voc manipule o contedo da cadeia de
caracteres armazenada na varivel, usando um grande nmero de mtodos e
literais.
Na prxima aula daremos mais um passo na incurso da linguagem,
conhecendo as regras e orientaes para a implementao de lgica, atravs dos
fluxos de controle.
At l.

Exerccios Propostos
1) Qual a palavra reservada do C# utilizada para informar ao compilador as
classes que devero ser utilizadas na aplicao?
a.(

) System

b.(

) Namespace

c.(

) Using

d.(

) Class

2) Defina e apresente um exemplo de Modificador.


______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

64

3) Para que servem os tipos de dados definidos pelos usurios? Apresente um


exemplo.
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
4) Avalie o cdigo abaixo e marque as afirmativas corretas.
Console.WriteLine( "{0}\n{1}\n{2}", "Curso", "Microsoft", "C#" );

a.(

) A instruo apresenta um erro;

b.(

) Apresenta o texto em uma nica linha Curso Microsoft C#

c.(

) Apresenta o texto em duas linhas da seguinte forma:


Curso
Microsoft C#

d.(

) Apresenta o texto em trs linhas da seguinte forma:


Curso
Microsoft
C#

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Aula 4

CONTROLE DE FLUXO EM C#

Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Implementar lgica de programao em algoritmos
usando declaraes de controle de fluxo dos dados.

Contedos da aula
Acompanhe os assuntos desta aula, se preferir, ao
terminar, assinale o contedo j estudado.
 Blocos de Cdigo;
 Operadores;
 Instrues de controle de fluxo;
 Instrues IF, IF...ELSE e Switch;
 Instrues While e Do/While;
 Instruo For.

SOCIESC Sociedade Educacional de Santa Catarina

65

Programao Aplicada Microsoft .NET usando C#

66

Prezado(a) aluno(a),
Bem-vindo(a) quarta aula do mdulo de programao aplicada com C#.
At o momento nos inteiramos das regras de sintaxe da linguagem e
implementamo o cdigo convencional em algoritmos. Nesta aula, voc ir aprender
como construir lgica condicional em seus programas, usando instrues de fluxo de
dados.
Boa aula!

1 BLOCOS DE CDIGO
Antes de iniciar a construo de um programa para resolver um problema,
fundamental que se obtenha um entendimento claro do problema e se planeje a
forma como ser resolvido. Os algoritmos criados para atender um plano de soluo,
normalmente se utilizam de blocos de cdigo para conduzir as informaes dentro
das condies impostas pelo problema. Por isso, muito comum o uso de lgica
booleana nos algoritmos, pois, usando instrues de controle de fluxo de dados,
podemos determinar as condies que sero avaliadas durante o processamento do
progama e qual o procedimento que dever ser realizado, de acordo com o
resultado do teste lgico aplicado.
Cada conjunto de instrues para atender uma determinada condio da
lgica implementada no algoritmo chamado de bloco de cdigo. Normalmente,
para cada resultado esperado do teste lgico, h um conjunto de instrues que
sero executadas pelo programa.
2 OPERADORES
As expresses utilizadas em lgica condicional so construdas de
operadores e operandos. Os operadores de uma expresso indicam quais as
operaes aplicadas nos operandos. Exemplos de operadores incluem adies e
concatenaes, subtrao, multiplicao e diviso. O C# tem mais ou menos os
mesmos operadores da linguagem C. Observe a tabela abaixo, ordenada por
precedncia (do maior para o menor).

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Tipo

Operador

Primrios
(x) x.y f(x) a[x] x++ x-- new typeof
sizeof

checked unchecked

Unrios

+ - ! ~ ++x --x (T)x

Multiplicativos

* / %

Aditivos

+ -

Deslocamento

<<

Relacional

< > <= >= is

Igualdade

== !=

E Lgico

&

Ou exclusivo lgico

Ou Lgico

E Condicional

&&

Ou Condicional

||

Condicional

?:

Atribuio

= *= /= %= += -= <<= >>= &=

>>

^= |=

SOCIESC Sociedade Educacional de Santa Catarina

67

Programao Aplicada Microsoft .NET usando C#

68

3 INSTRUES DE CONTROLE DE FLUXO


A linguagem C# oferece suporte s instrues convencionais para o controle
de fluxo de dados e os blocos de cdigo a serem construdos.
3.1 Estruturas de seleo
As estruturas de seleo permitem determinar qual o bloco de cdigo que
dever ser executado, de acordo com o resultado de um teste o lgico. A linguagem
C# oferece trs tipos de estruturas de seleo:

a instruo IF: executa um determinado bloco de cdigo, se uma


condio for verdadeira, caso contrrio no executa o cdigo;

a declarao IF...ELSE: uma extenso da instruo IF, pois permite que


um outro bloco de cdigo possa ser executado, caso a condio seja falsa;

a instruo SWITCH: permite que vrios blocos de cdigo estejam em


condio de execuo, de acordo com o valor de uma expresso. Essa
instruo permite que voc tenha vrias condies lgicas e, de acordo
com o seu resultado, dispara a execuo de um bloco especfico para o
resultado obtido.

3.2 Instrues de repetio


A linguagem C# oferece quatro tipos de estruturas de repetio. O tipo de
instruo utilizada quando o programador deseja executar determinado bloco de
cdigo, de acordo com uma condio lgica e mant-lo em execuo at que a
condio lgica mude ou deixe de atender condio estabelecida.

While: executa o bloco de cdigo enquanto uma condio for verdadeira.


O teste executado ao INCIO;

Do/While: executa o bloco de cdigo enquanto uma condio for


verdadeira. O teste executado ao FINAL;

For: o bloco de cdigo executado determinado nmero de vezes,


especificado na condio da instruo e baseado em um contador interno.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

69

4 INSTRUES IF, IF...ELSE E SWITCH


A instruo if de uso comum nas linguagens de desenvolvimento de
sistemas. Seu objetivo executar condicionalmente algum cdigo. Seguindo a teoria
de Estrutura de Dados, a declarao if muda a execuo do programa de acordo
com um valor baseado em uma condio booleana. Sua sintaxe em C# :
if (expresso)
comando1;
[else
Comando2;]

Detalhando a estrutura do comando:

Expresso: uma expresso pode ser implicitamente convertida para um


valor do tipo bool. Se verdadeiro, o comando1 executado, seno o
comando2 (caso esteja presente) ser executado;

Comando1: A declarao que deve ser executada caso a expresso


retornar verdadeira;

Comando2: A declarao que deve ser executada caso a expresso


retornar falsa.
Observaes:

A expresso deve retornar um valor booleano. Os nmeros inteiros

no podem ser utilizados como se fosse booleano, como no C/C++;

A clusula else opcional e indica o que deve ser feito caso a


expresso seja falsa;

Caso seja necessrio utilizar vrios comandos, use um bloco com


chaves { };

Existe a sintaxe else if para encadear vrias decises. Observe que


o comando switch, descrito adiante, pode ser utilizado com strings e
pode ser uma alternativa quando os encadeamentos de IF so
muito complexos. A sintaxe do else if :
if (condicao1)
comando1;
else if (condicao2)
comando2;
else if (condicao3)

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

70

comando3;
...
Else
comandoN;

A instruo switch usada para comparar uma expresso a uma srie de


constantes. basicamente uma extenso da declarao if, considerando que pode:
controlar mltiplos testes em uma simples declarao, verificar uma expreso de
teste baseada em vrios valores e executar cdigo quando uma expresso de teste
atende a um dos valores que voc deseja testar.
importante observar que a sintaxe do switch em C# diferente da sintaxe
no C++. Caso voc deseje controlar o salto entre a validao do CASE1 para o
CASE2 no C#, o CASE1 no pode conter qualquer cdigo executvel no seu corpo.
O C++ no possui a capacidade de saltar entre um case e outro (por exemplo, uma
declarao goto). Sua sintaxe em C# :
switch (expresso)
{
constante1;
comando1;
break;
constante2;
comando2;
break;
constanteN;
comandoN;
break;
[default:
comandoX;]
}

Observaes:

Voc pode associar mais de uma constante a cada bloco de cdigo;


Os blocos de cdigo devem ser mutuamente exclusivos, garantido pela
presena de uma clusula break (ou goto);

O bloco default chamado caso nenhuma das opes seja tomada;

Voc pode usar qualquer tipo por valor ou string na expresso.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Abaixo, um exemplo de cdigo usando a declarao switch:


using System;

class ExemploSwitch
{
static void Main()
{

Console.Write("Adivinhe meu nmero (1-5): ");


int input = Convert.ToInt32(Console.ReadLine());

switch (input)
{
case 1:
Console.WriteLine("Errado!.\n");
break;
case 2:
case 3:
Console.WriteLine("Nem 2 nem 3 est correto.\n");
break;
case 4:
goto case 1;
case 5:
Console.WriteLine("CERTO!\n");
break;
default:
Console.WriteLine("No um valor vlido!\n");
break;
}
}
}

SOCIESC Sociedade Educacional de Santa Catarina

71

Programao Aplicada Microsoft .NET usando C#

72

5 INSTRUES WHILE E DO/WHILE


Um tipo de loop em C# o while, responsvel por executar uma declarao
(ou um conjunto de declaraes) at que uma especificada expresso retorne um
valor falso.
while (expresso) declarao

class ExemploWhile
{
static void Main()
{
System.Console.Write("Digite quit para sair: ");
string text = System.Console.ReadLine();

while (text != "quit")


{
System.Console.Write("Digite quit para sair: ");
text = System.Console.ReadLine();
}
}
}

A instruo do...while executa uma declarao (ou um conjunto de


declaraes) repetidamente at que uma especificada expresso retorne um valor
false. Diferente do loop while, esse loop efetua o teste aps a execuo do corpo do
loop.
do declarao while (expresso)

class ExemploDoWhile
{
static void Main()
{
string text;

do

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

73

{
System.Console.Write("Digite quit para sair: ");
text = System.Console.ReadLine();
} while (text != "quit");
}
}

6 INSTRUO FOR
o loop mais bsico e o favorito dos programadores. Simplesmente executa
uma declarao (ou um bloco de declaraes) repetidamente at que a expresso
de teste retorne o resultado false.
for ([inicializadores]; [expresso]; [iteraes]) declaraes

class ExemploFor
{
static void Main()
{
System.Console.Write("Quantas tentativas voc deseja?");
int Max = int.Parse(System.Console.ReadLine());

for (int loopIndex = 1; loopIndex <= Max; loopIndex++)


{
System.Console.WriteLine("Bom trabalho!");
}
}
}

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

74

Sntese
Nesta aula voc aprendeu como construir programas em C# usando lgica
condicional, aplicando o seu conhecimento sobre estruturas de programao. Saber
utilizar a condio corretamente e o lao ou repetio adequado para o problema,
um dos grandes diferenciais de um programador.
Vimos como os blocos de cdigo so separaes lgicas importantes que
implementamos em um programa. Tambm foi apresentado o elemento chave no
trabalho com lgica condicional: os operadores. Este outro aspecto relevante que
o progamador precisa conhecer, para que sua lgica apresente a performance e o
resultado esperado.
Finalmente, conhecemos cada uma das opes para lgica condicional, como
tambm as regras e orientaes para a sua implementao na linguagem C#.
O assunto visto o passo definitivo para que voc possa construir algoritmos
usando C#. Na prxima aula, vamos iniciar um novo e fundamental assunto para o
desenvolvimento na plataforma .NET: a programao orientada a objetos.
Te vejo na prxima aula.

Exerccios Propostos
1) Cite os trs tipos de instrues de repetio suportadas pela linguagem C#
______________________________________________________________
______________________________________________________________
______________________________________________________________

2) Qual a diferena entre a instruo IF e SWITCH?


______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

75

3) Qual a diferena entre as instrues DO e DO/WHILE?


______________________________________________________________
______________________________________________________________
______________________________________________________________
4) Dado dois inteiros armazenados nas variveis Valor1 e Valor2, que teste
lgico podemos realizar para verificar se um ou outro (mas no ambos)
menor que 10?
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Aula 5

PROGRAMAO ORIENTADA A
OBJETOS EM C#
Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Aplicar conceitos de programao orientada a objetos
(OOP), utilizando a plataforma .NET e a linguagem C#;
 Conhecer o .NET Framework Class Library;
 Entender como as tcnicas de OOP so implementadas na
linguagem C#.
Contedo da aula
Acompanhe os assuntos desta aula, se preferir, ao
terminar, assinale o contedo j estudado.
 Classes e objetos;
 Tudo em .NET baseado em objetos;
 Campos e Propriedades;
 Mtodos;
 Construtores e Destrutores;
 Construindo uma classe na prtica.

SOCIESC Sociedade Educacional de Santa Catarina

76

Programao Aplicada Microsoft .NET usando C#

77

Prezado(a) aluno(a),
Bem-vindo(a) aula mais importante deste mdulo. A programao
orientada a objetos foi, definitivamente, adotada pelos programadores e
tecnologias da atualidade. A plataforma Microsoft .NET possui internamente todo o
suporte a objetos e oferece amplo conjunto de recursos, para que o programador
possa explorar o que h de mais poderoso na plataforma, usando metodologia de
desenvolvimento orientada a objetos. Por isso considero esta aula importante.
O objetivo principal desta aula faz-lo (a) aplicar os conceitos da OOP na
plataforma .NET usando a linguagem C#. Vamos revisitar alguns conceitos, sob a
tica da plataforma .NET e da linguagem C#. Veremos como o uso da OOP permite
o mais alto nvel de construo no uso da .NET. Tambm pretendo desenvolver em
voc a percepo de que a linguagem C# a MELHOR opo para o
desenvolvimento .NET, j que ela nasceu com total orientao para o uso dos
recursos da plataforma, sem contudo, deixar de se utilizar das tcnicas de
programao orientada a objetos.
uma excelente oportunidade para que voc veja, na prtica, como a OOP
realmente uma abordagem adequada para os desafios atuais de programao e
perceber como a plataforma .NET absorveu essas prticas.
Boa aula!

1 OBJETOS E CLASSES
Voc j aprendeu que um objeto um bloco de construo de um aplicativo
orientado a objetos. Reforo aqui a comparao entre o conceito de objetos da OOP
e os objetos da vida real. Na vida real, quando nos referimos a um objeto vrias
abstraes podem vir a nossa mente:
Quando conversamos com algum sobre o computador que temos em
casa, esse algum, de imediato, recebe em sua mente a imagem de um computador
que conhece. Isto abstrao.
Voc no especificou as caractersticas de seu computador,por isso, seu
interlocutor poder imaginar um computador muito diferente daquele a que voc est
se referindo. A experincia e o conhecimento foi usando um computador Macintosh

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

78

em uma aula da faculdade e voc possui um computador PC em casa, o que pode


gerar certas diferenas entre o que voc fala e o que a outra pessoa est
entendendo.
A abstrao um ato natural do ser humano, conseqncia de informaes
recebidas pelo contato com o mundo exterior. medida que uma pessoa vive,
observa, ouve e experimenta coisas

durante sua vida, cria mapas mentais,

enriquecendo seu conhecimento e capacidade de interagir com o meio em que vive.


Apesar desse assunto ser um tanto filosfico para o contexto, fundamental
que voc compreender a abstrao, por ser ela a atividade fundamental para a
construo de programas orientados a objetos.
Podemos afirmar, diante do acima exposto, que a abstrao no apenas
atribuir um nome, um conceito. A abstrao tambm inclui a noo de
comportamento associado ao conceito, sua aplicao e uso.
1.1 Objetos em C#
A criao de objetos, na linguagem C#, comparada s estruturas de dados
que vimos na aula 3, j que um objeto contm membros de variveis e tipos de
funo especficos para o armazenamento e manipulao do objeto. As variveis do
objeto armazenam as informaes sobre suas propriedades e as funes contidas
no objeto fornecem funcionalidades e formas de como utiliz-lo, o que pode ser
chamado de mtodo de uso do objeto.
Os objetos, na linguagem C#, so criados a partir de tipos de dados, da
mesma forma como trabalhos com variveis. O tipo de um objeto conhecido por
um nome especial na OOP, a sua classe. Uma classe o bloco principal de
construo de sistemas orientados a objetos, desta forma, podemos consider-la
como uma expresso da programao para a abstrao de um conceito. Uma
classe serve para encapsular um conceito, mais especificamente define o estado
(propriedades) e o comportamento (mtodos) relacionados ao conceito (figura 33).

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

79

Figura 33 Diagrama UML de uma classe


As classes so modelos de objetos com o objetivo de servir como base para a
criao de objetos que, a partir de uma classe, em OOP chama-se instanciao, ou
seja, o objeto gerado uma instncia da classe que o originou (figura 34). Instncia
de uma classe e objeto so a mesma coisa.

Figura 34 Diagrama UML de um objeto


Um sistema orientado a objetos pode possuir dezenas de classes, por isso,
extremamente comum o relacionamento entre uma classe e outra, dentro do
sistema. Devemos definir qual o papel (ou responsabilidade) de cada objeto em seus
relacionamentos, garantindo que a execuo do programa se mantenha dentro do
esperado.
2

TUDO NA PLATAFORMA .NET BASEADO EM OBJETOS


Apesar de j termos tratado bastante sobre a plataforma .NET na primeira

aula deste mdulo, agora vamos dar maior nfase a um elemento importante da
plataforma neste momento: a biblioteca de classes.
A plataforma .NET funciona completamente orientada a objetos e como uma
de suas grandes propostas aumentar a produtividade na construo de sistemas,
a Microsoft inseriu uma biblioteca de classes, ampla e poderosa, para fornecer ao

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

80

programador recursos reutilizveis que no apenas facilitem, mas tambm acelerem


o desenvolvimento de sistemas.
A biblioteca foi batizada de Biblioteca de Classes Base, ou, em ingls,
Base Class Library (BCL). Esta biblioteca oferece um grande conjunto de classes
que contemplam desde um sistema de janelas at classes para entrada e sada de
dados, permitindo trabalhar com elementos grficos, sockets para a comunicao de
dados, gerenciamento de memria, acesso a banco de dados, etc. Faz parte da
arquitetura do Common Language Runtime da plataforma .NET, que fornece os
componentes fundamentais para a execuo de aplicaes .NET (figura 35).
A BCL foi organizada em namespaces e, por sua vez, possui um amplo
conjunto de classes.

Figura 35 Organizao dos componentes da BCL


Ento, de acordo com a sua necessidade na construo de determinada
funcionalidade em seu sistema, a BCL pode oferecer uma classe especfica para
suprir a necessidade. Na verdade, a expectativa que oferea tudo o que o
programador precisa na grande maioria das solues:

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

81

Recursos para suporte aos tipos, converso e formatao de dados;

Facilidades para a manipulao de grande quantidade de dados na


memria, fazendo uso de colees;

Globalizao:

capacidades

para

suporte

mltiplos

idiomas

particularidades locais em sistemas globais;

Entrada/Sada: suporte para a manipulao de arquivos armazenados no


sistema operacional, como arquivos do tipo texto e binrio;

Capacidades para suporte comunicao usando redes de computadores


e, na Internet, protocolos comuns como o HTTP, TCP/IP Sockets, etc.;

Vrias funcionalidades de apoio para a implementao de segurana em


suas aplicaes.

3 CAMPOS E PROPRIEDADES
O estado de um objeto descrito por suas propriedades. Quando falamos
estado, uma referncias s condies em que se apresentam o objeto, como por
exemplo, sua cor, forma e aparncia. Dessa forma, o conjunto dos atributos (ou
propriedades) do objeto determinam como o seu estado.
Na linguagem C#, estas informaes so armazenadas em variveis dentro
da classe, tambm chamadas de campos. Quando um objeto instancia uma classe
que possui campos, o objeto recebe uma cpia de toda a estrutura da classe, mas
com reas de armazenamento privativas do objeto que est instanciando a classe.
H aqui uma diferena importante: os campos permitem que o usurio
armazene ou acesse o valor contido na classe, por isso fornece seu campo para
todo objeto que instanci-la. J as propriedades permitem que o programador defina
se deseja ou no que seja utilizado, escondendo algumas particularidades da
classe. As propriedades permitem ao programador interferir na forma como elas
sero utilizadas e mantm maior controle sobre as atividades do objeto.
Alguns autores afirmam que, embora essa forma de implementao de
campos, quando pblicos, esteja disponvel, no uma boa prtica de programao,

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

82

por estar permitindo o acesso direto aos dados da classe. Ao invs disso, sugerem o
uso de mtodos ou propriedades.
4 MTODOS
Os mtodos so funes construdas na classe e esto expostas para uso
pelo programador. Seu comportamento o mesmo da implementao de uma
funo convencional, permitindo o uso de parmetros e retornando valores a partir
do processamento do mtodo.
5 CONSTRUTORES E DESTRUTORES
Quando realizamos a instanciao de uma classe, um objeto criado na
memria, a este processo chamamos de inicializao, pois no precisamos nos
preocupar em reservar memria para armazenar o objeto.
Em determinados momentos, precisamos interferir na inicializao de um
objeto, para que possamos manipular os membros de uma classe antes de
efetivamente o objeto ser inicializado. Para essa tarefa, usamos construtores, que
so chamados pela palavra reservada em C#, new. Quando definimos nenhum
construtor, o compilador C# define um construtor padro. Uma classe pode conter
mais de um construtor, dessa forma, possvel realizar vrias formas para inicializla, alm do padro.
J os destrutores so utilizados para realizar a liberao de memria e dos
recursos do sistema operacional, aps a finalizao dos trabalhos com determinado
objeto. A plataforma .NET fornece meios automticos para a limpeza de memria,
isto significa que no precisamos nos preocupar em realizar essa tarefa. Assim
como os construtores, tambm podemos encontrar situaes onde precisamos
interferir no momento que o objeto est sendo destrudo, para que possamos realizar
alguma tarefa particular antes de o objetivo ser efetivamente destrudo.
5.1 Garbage Collection
Existem vrias formas de um objeto ficar na memria desnecessariamente,
seja pela manuteno do programa que o chamou e no destruiu a instncia

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

83

explicitamente,seja por causa de uma referncia que o tenha deixado rfo. A esse
tipo de situao, na plataforma .NET chamado de Lixo (Garbage).
A plataforma .NET possui um recurso interno chamado Garbage Collection,
responsvel por realizar periodicamente uma avaliao nos objetos armazenados na
memria do computador. Os casos em que no h mais referncias (fos), so
destrudos automaticamente, liberando a memria correspondente.
O principal objetivo da Microsoft na insero desse recurso facilitar o
trabalho do programador, desobrigando-o de algumas tarefas triviais na OOP, cujo
esquecimento comum. A condio de risco mais comum para os programas que
armazenam dados na memria, de forma indefinida e sem a limpeza de dados
desnecessrios, chamada de memory leak (a traduo pode ser transbordo de
memria).
6 CONSTRUINDO UMA CLASSE NA PRTICA
Avalie o cdigo seguinte:
// Classe utilizada para demonstrar os conceitos bsicos de OOP
using System;

public class Computador


{
private string categoria; // varivel interna da classe

// Propriedade para armazenar a categoria do computador


public string Categoria
{
get
{
return Categoria;
}
set
{
Categoria = value;
}
} // fim da definio da propriedade

public void ApresentaDados()

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

84

{
Console.WriteLine( "A descrio para o computador \n{0}!",
this.Categoria ); // Apresenta a descrio do computador
}
}

6.1 Construindo a classe usando o Visual C# 2005 Express


1. Execute o Visual C# 2005 Express, se j no estiver aberto;
2. Clique no comando Create: Project...;
3. Na janela New Project, selecione o item Console Application e, na caixa de
texto Name, digite Exercicio3 e clique no boto OK;
4. No menu Project, execute o comando Add Class...;
5. Na janela Add New Item (figura 36), digite no campo Name Computador e
clique no boto OK;

Figura 36 Janela para a insero de uma classe


6. Abaixo do primeiro sinal de chaves dentro da classe, declare uma varivel
String com o nome descricao (d minsculo). Essa a varivel que far o
armazenamento da categoria dentro da classe;
private string categoria;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

85

7. Abaixo desta declarao, vamos criar uma propriedade na classe com o nome
Categoria;
public string Categoria
{
get
{
return Categoria;
}
set
{
Categoria = value;
}
}

8. Abaixo do cdigo da propriedade, vamos criar um mtodo para a classe:


public void ApresentaDados()
{
Console.WriteLine( "A categoria do computador \n{0}!",
this.Categoria ); // Apresenta a descrio do computador
}

9. Salve a soluo.
6.2 Instanciando a classe e usando a propriedade e mtodo
1. Abra a classe Program.cs;
2. Digite o seguinte contedo:
Computador meuComp = new Computador();
meuComp.Categoria = "PC";
meuComp.ApresentaDados();

3. Para ver o resultado da aplicao, execute o comando Start without


Debugging do menu Debug. O resultado dever ser o mesmo que
mostramos na figura 37:

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

86

Figura 37 Janela do console do Windows, resultado da aplicao

Sntese
Agora sim estamos vendo os conceitos da programao orientada a objetos
na prtica. Estamos ainda no incio dessa incurso prtica, mas agora voc est em
condies de entendimento do porqu de algumas definies conceituais e agora j
possvel concluir sobre as vantagens do mtodo da OOP.
No incio desta aula, fizemos uma leve associao entre os conceitos da OOP
e a plataforma .NET. Alm disso, discutimos um pouco sobre como os elementos da
plataforma esto organizados e como podem ser utilizados. Na prxima aula
falaremos mais sobre isso.
Criamos uma classe que contm propriedades e mtodos e entendemos
quando devemos utilizar cada uma das peas que compem uma classe. Como
exerccio prtico, criamos uma classe e a instanciamos em um programa
desenvolvido em Visual C# 2005 Express.
Na prxima aula, vamos adiante sobre os conceitos da OOP e seu uso na
linguagem C#. As peas de seu conhecimento estaro encaixando-se a cada nova
aula.
Vamos em frente!

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

87

Exerccios Propostos
1) Descreva a funo da Base Class Library da plataforma .NET.
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) Uma instncia de uma classe a mesma definio de um objeto? Caso
afirmativo, por qu?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
3) obrigatrio o uso de destrutores para a programao de classes? Explique
por que.
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Aula 6

TCNICAS DE OOP USANDO C#


Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Implementar os blocos de tratamento de erros em tempo de
execuo;
 Ampliar os conhecimentos sobre mtodos e parmetros;
 Utilizar parmetros para identificar sobrecarga de mtodos;
 Implementar programas que se utilizem de Interfaces,
Herana e Polimorfismo.
Contedo da aula
Acompanhe os assuntos desta aula, se preferir, ao
terminar, assinale o contedo j estudado.
 Trabalhando com excees;
 Mtodos e parmetros;
 Sobrecarga de Mtodos;
 Interfaces, Herana e Polimorfismo.

SOCIESC Sociedade Educacional de Santa Catarina

88

Programao Aplicada Microsoft .NET usando C#

89

Prezado(a) aluno(a),
Como vimos at agora, voc pode utilizar a linguagem C# para construir
programas muito similares aos de 1970, usando uma simples abordagem
de programao estruturada. Isso ainda possvel.
Mas a linguagem C# libera todo o seu potencial quando voc utiliza as
tcnicas de OOP e constri programas que venham a se beneficiar desse mtodo de
programao.
Nesta aula voc construir programas em C# usando os principais recursos
da OOP. Um assunto extremamente relevante e muito comum em seu uso o
tratamento de erros em tempo de execuo, pois permite ao programador controlar
melhor a previsibilidade do seu programa. Depois vamos tratar sobre mtodos e
suas aplicaes, conhecendo algumas particularidades e conceitos associados
OOP. Finalmente, vamos conhecer e implementar cdigo de programao com as
principais tcnicas de OOP.
Veja que estamos em pleno perodo de conhecimento sobre a OOP e sua
implementao usando C#.
Boa aula!

1 TRABALHANDO COM EXCEES


Uma exceo ocorre quando um programa encontra qualquer problema no
esperado, por exemplo: tentativa de execuo do programa fora de um bloco de
memria previamente utilizado, ou tentativa de ler um arquivo que no existe mais
no local de origem. Estes problemas no so necessariamente causados por erro de
programao, ocorrem com a violao de certas expectativas que voc construiu
para o ambiente de execuo do programa.
Quando seu programa capaz de controlar as situaes excepcionais e, se
possvel, de forma elegante recuperar-se do problema sem gerar qualquer
desconforto ao usurio, este recurso chama-se tratamento de erros em tempo de
execuo (termo em ingls exception handling). Na maioria das linguagens atuais
h esse recurso e no poderia ser diferente no C#.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

90

Na verdade, a plataforma .NET oferece um conjunto de classes pr-definidas


para lhe ajudar a trabalhar com situaes excepcionais em seus programas,
permitindo que voc crie sua prpria classe de tratamento de erro e e que
especifique mensagens de erros especficas para sua aplicao. Voc pode fazer
isso derivando a classe ApplicationException do .NET.
A linguagem C# ajuda a disparar e controlar as excees de seu programa
atravs das declaraes try, catch, finally e throw.
1.1 A estrutura do bloco para tratamento de erros
A estrutura de um bloco de cdigo, para realizar o controle de excees,
implementada por um bloco de cdigo composto de trs palavras reservadas do C#:
try, catch e finally. Dentro desse bloco, voc pode colocar qualquer declarao de
comando do C#, que pode inclusive conter outros blocos try, ou chamar um mtodo,
acionado dentro do bloco de tratamento de erros.
Em resumo, em tempo de execuo voc ter uma hierarquia de blocos try
que estaro um dentro de outro. Quando uma exceo ocorrer em qualquer um dos
pontos, ao invs de executar a linha de cdigo corrente (que est com o erro), em
tempo de execuo ser procurado o primeiro bloco try mais prximo do cdigo
dentro da hierarquia de blocos. Ento o controle passar para o cdigo que est
dentro do bloco catch (se houver algum) e o comando finally, associado ao bloco try
ser executado. Um comando try no pode viver sozinho, precisa ser acompanhado
de um ou mais blocos catch e, se necessrio, terminado com o bloco finally.
try
{
// Cdigo a ser executado aqui. Pode ser qualquer comando C#
}
catch (System.Exception ex)
{
// Cdigo para controlar a exceo aqui
}
finally
{
// Cdigo a ser executado aps a tentativa de execuo
}

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

91

Voc pode ter vrios blocos catch, imediatamente aps o bloco try, e cada
bloco catch controla uma exceo de um tipo particular. Quando uma exceo
ocorre em uma declarao dentro do bloco try, em tempo de execuo, o programa
procurar o bloco catch que controla aquele tipo de exceo.
O bloco finally contm o cdigo que SEMPRE ser executado, mesmo que
ocorra ou no uma exceo. Normalmente, nesse bloco, colocamos um cdigo de
progarmao para realizar uma atividade aps os trabalhos de exceo, como
limpeza da memria ou excluso de um arquivo temporrio. Essa uma boa prtica
de programao, pois mantm o ambiente de execuo do sistema operacional
adequado para uso.
No obrigatrio para um bloco try ter um bloco finally, porm, se voc
o implementar, haver somente um bloco finally e sempre dever ser
declarado ao final do bloco try.

1.2 A declarao throw


A declarao throw gera explicitamente uma exceo em seu cdigo. Voc
poder utiliz-la quando seu programa precisar forar uma situao de exceo
para atender a uma necessidade especfica do problema.
Para utilizar a declarao throw, necessrio ter a instncia de uma exceo.
Para isso, utilize a palavra reservada new, conforme j vimos anteriormente sobre
instanciao de classes.
O Visual C# 2005 Express oferece uma janela para a visualizao dos tipos
de exceo, que so listas por categoria e o namespace da biblioteca, e esto
disponveis no .NET Framework. As excees mais comuns esto na categoria
Common Language Runtime Exceptions (figura 38).
Para acessar a janela, execute o comando Exceptions, do menu Debug, ou
a combinao de teclas CTRL+ALT+E.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

92

Figura 38 Janela de de visualizao das excees disponveis no .NET

2 MTODOS E PARMETROS
Na construo de aplicaes, voc j aprendeu que a diviso da aplicao em
unidades funcionais uma prtica comum. Esse o princpio fundamental que a
modelagem de uma aplicao precisa compor: a distribuio lgica das
funcionalidades do sistema, atravs de blocos de cdigo interdependentes. Essa
prtica, como voc tambm j viu, permite capacidade para reuso de cdigo de
programao, aumentando-lhe a facilidade para manuteno.
Na linguagem C#, considerando que orientada a objetos, voc pode
organizar sua aplicao em classes que contm blocos de cdigo, cuja
funcionalidade especfica na classe chamada mtodo. Um mtodo considerado
membro da classe e executa uma determinada ao de acordo com sua utilizao.
A figura 39 exemplifica uma classe com mtodo.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

93

Figura 39 Exemplo de classe com mtodos


Na prtica, um mtodo um grupo de comandos em C# que trabalha em
conjunto para realizar determinada tarefa, assim como uma funo na programao
estruturada. Todo mtodo possui um identificador, nome que ser utilizado para
executar o mtodo. Como falamos anteriormente, a declarao Main, o mtodo
principal da aplicao C# e o ponto de entrada do programa quando o usurio o
executa. Em C# todo mtodo est associado a uma classe.
Sintaxe para criar um mtodo na classe:
Static void NomedoMtodo()
{
Comandos do C# que compem o mtodo
}

Para utilizar um mtodo contido em uma classe, que significa chamar um


mtodo, utilizamos o comando em C#:
Objeto.Mtodo()

using System;

class Exemplo
{
public static void TesteMetodo( )

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

94

{
Console.WriteLine("Este o mtodo da classe exemplo");
}
}

class OutroExemplo
{
static void Main( )
{
Exemplo.TesteMedodo( );
}
}

Quando voc utiliza um mtodo dentro da prpria classe que o contm, no


precisa especificar o nome da classe, basta informar o nome do mtodo a ser
chamado (figura 40).

Figura 40 Exemplo de declaraes chamando mtodos


O comando return pode ser utilizado dentro dos mtodos, com o objetivo de
enviar o retorno do resultado do mtodo, imediatamente, para o ponto de onde foi
chamado.

static void ExampleMethod( )


{

Console.WriteLine("Exemplo de Mensagem usando um mtodo");

return;

Console.WriteLine("Mas este texto nunca ser apresentado");

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

95

No exemplo acima, o comando return pra o processamento do mtodo e


retorna imediatamente para o ponto de cdigo que o chamou, significando que o
segundo comando, WriteLine, nunca ser executado.
2.1 Parmetros
Parmetros permitem que uma informao seja enviada para um mtodo e
tambm permitem que uma informao do mtodo seja enviada como retorno para o
ponto de cdigo que o chamou. Quando criamos um mtodo, podemos incluir em
nossa declarao os parmetros que devero ser informados quando o mtodo for
utilizado. Esses parmetros so informados dentro dos parentses da declarao do
mtodo.
Cada parmetro possui um nome e um tipo, que dever representar e atender
aos requisitos da informao, alm de ser passada para o mtodo.

public static void TesteMetodo(string Mensagem)


{
Console.WriteLine(Mensagem);
}

Quando o programador chamar o mtodo, poder enviar o contedo desejado


para o mtodo a partir de seus parmetros. veja o exemplo e a figura 41.

TesteMetodo(Este um exemplo de mensagem);

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

96

Figura 41 Processamento de um mtodo


importante observar que um mtodo pode conter vrios parmetros. Por
isso, mantenha a mesma correlao entre os parmetros enviados pela chamada do
mtodo e a mesma ordem da declarao dos parmetros no mtodo.
Existem trs fomas para a passagem de parmetros:
1. Por valor: os dados so transferidos para o mtodo e no podero ser
encaminhados para fora do mtodo. Na verdade, o contedo dos
parmetros uma cpia do argumento e no poder ser modificado pelo
mtodo;
2. Por referncia: o argumento enviado para o mtodo, atravs de seus
parmetros, podero ser alterados, permitindo que o contedo de entrada
no mtodo possa ser diferente no contedo de sada. O parmetro pode
ser considerado, nesse caso, apenas um apelido para o argumento;
3. Parmetro do tipo out: existe a forma de passar um parmetro usando a
palavra reservada out. Essa forma de passagem til quando desejamos
utilizar um parmetro que necessariamente no corresponde ao tipo de
dado enviado pelo cdigo que chamou o mtodo.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

97

3 SOBRECARGA DE MTODOS
A sobrecarga de mtodos ocorre quando h dois mtodos em uma mesma
classe com o mesmo nome. O compilador do C# distingue os mtodos
sobrecarregados comparando os parmetros de cada um. Quando isso acontece, o
compilador C# seleciona o mtodo apropriado, avaliando a quantidade, o tipo e a
ordem dos argumentos, entre os mtodos envolvidos (figura 42).
Esse tipo de abordagem muito til quando se desejamos implementar
mtodos que realizem a mesma tarefa, mas que ligeiramente permitem ter um
comportamento diferente, de acordo com certas condies.

Figura 42 Chamada de um mtodo que possui sobrecarga

4 INTERFACES, HERANA E POLIMORFISMO


4.1 Interfaces
Voc define uma interface da mesma forma que constri uma classe, apenas
substituindo a palavra reservada class para a palavra reservada interface (figura
43).

Figura 43 Definio de Interface

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

98

As interfaces so tambm conhecidas como contrato, que determinam regras


a serem aplicadas quando houver a instanciao de uma classe. De maneira geral,
quando uma classe instanciada, a validao, se a implementao est correta,
pode ser realizada de duas formas:
1. Atravs do compilador, que far a validao e no permitir a compilao
se algo estiver errado;
2. Usando interfaces, que descrevem as regras para o uso de uma classe.
Na prtica, uma classe pode conter vrias interfaces, determinando a forma
como os membros sero validados em sua implementao. Os mtodos das
interfaces so implicitamente pblicos, ou seja, voc no precisa (na verdade no
pode) utilizar a palavra reservada public, para permitir que determinado membro
esteja acessvel fora da classe (figura 44).

Figura 44 Exemplo de componentes de uma interface


Uma classe em .NET j recebe naturalmente algumas interfaces advindas da
prpria plataforma, por exemplo: a IClonable, IDisposable e IList. Perceba tambm
que, por uma questo de documentao e orientao, todas as interfaces so
implementadas com o identificador, iniciando com a letra I maiscula.
Para implementar uma interface usando uma classe (figura 45), os passos
so:

Declare a interface usando a sintaxe class : interface;

Defina o contedo da classe considerando as regras da interface.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

99

Figura 45 Exemplo de implementao de uma classe baseada em uma


interface
4.2 Herana
Herana o termo utilizado para definirmos as condies de relacionamento
que os objetos possuem, determinando como uma classe pode referenciar outra,
incluindo seus campos e propriedades. atravs da herana que podemos
especializar objetos. Exemplo:, quando desejamos que um campo receba apenas
nmeros. Para realizar essa atividade, voc poder criar uma caixa de texto a partir
de uma classe existente na plataforma e, automaticamente, essa nova instncia
herdar todas as funcionalidades da classe padro da caixa de texto, mas permitir
que algumas propriedades possam ser manipuladas.

1. Inicie o Visual C# 2005 Express;


2. Clique no comando Project: Create;
3. Selecione o template Console Application;
4. Digite no campo Name: ExemploHeranca e clique no boto OK;
5. Execute o comando AddClass... do menu Project;
6. Na janela que ser apresentada (figura 46), verifique se o item Class est
selecionado (caso contrrio, selecione-o) e digite no campo Name: Carro.cs;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

100

Figura 46 Janela para criao de uma classe


7. Clique no boto Add;
8. Dentro da classe, digite o seguinte conjunto de comandos:
public void Dirigir()
{
Console.WriteLine("Dirigindo na estrada");
}
public void Parar()
{
Console.WriteLine("Parando o carro na estrada");
}

9. Salve a soluo executando a combinao de teclas CTRL+SHIFT+S ou, no


menu File, o comando Save All;
10. Vamos agora adicionar uma nova classe. Execute o comando AddClass... do
menu Project;
11. Na janela que ser apresentada (figura 47), verifique se o item Class est
selecionado (caso contrrio, selecione-o) e digite no campo Name:
Caminhonete.cs;
12. Ao lado da declarao class Caminhonete, adicione o sinal de : (dois pontos)
e ao lado digite o nome da classe Carro;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

101

Figura 47 Exemplo da Classe Caminhonete


13. Volte para a classe principal, com o nome program.cs e digite o seguinte
cdigo:
Caminhonete meuCaminhao = new Caminhonete();
meuCaminhao.Dirigir();
meuCaminhao.Parar();

Console.ReadLine();

14. Salve a soluo usando a combinao de teclas CTRL+SHIFT+S ou, no


menu File, o comando Save All;
15. Execute o projeto atravs do comando Start Without Debugging e veja o
resultado. Perceba que a classe Caminhonete executou mtodos Dirigir e
Parar, mas ela no possui tais classes. Na verdade, ela herdou a partir da
classe que suportou a instanciao (carro).
Avaliando o cdigo criado no exemplo acima, perceba alguns pontos
importantes:

A instanciao da classe carro ocorreu com a linha abaixo:


Caminhonete meuCaminhao = new Caminhonete();

O relacionamento entre a classe Caminhonete e a classe Carro foi


estabelecida pela seguinte linha de comando:
Class Caminhonete : Carro

Lembre-se de que, a partir desse relacionamento e da instanciao, a


classe Caminhonete herdar os mtodos da classe Carro.

4.3 Polimorfismo
Embora a palavra polimorfismo nos leve a imaginar que estamos falando
sobre mutaes genticas, na OOP esse conceito muito simples. Basicamente a

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

102

habilidade de uma referncia varivel de uma classe derivada, pode ser tratada
como se fosse uma referncia para a classe base.
uma conseqncia natural da herana, j que nessa modalidade as classes
esto em condies de derivao de uma classe base, e cada uma pode conter
mtodos e propriedades parecidos.
Essa abordagem permite obtermos dois benefcios:

possvel agrupar vrios objetos diferentes que possuam a mesma


classe base e trat-los da mesma forma;

O comportamento polimrfico permite que, em tempo de execuo, o


compilador verifique o tipo de cada objeto e execute o mtodo em seu
cdigo especfico (chamado de overridden).

Sntese
A programao orientada a objetos um assunto extremamente rico e
poderoso. Nesta aula voc estudou os elementos essenciais da OOP usando a
linguagem C# e pde perceber as vantagens de seu uso na programao atual.
Agora voc est pronto para realizar mais um passo no sentido da
programao em .NET: na prxima aula voc estudar como criar aplicaes
Windows ou, como a Microsoft procura divulgar, construo de Windows
Applications.
At a prxima aula!
Exerccios Propostos
1) Como podemos definir o tratamento de erros em tempo de execuo e qual a
sua importncia para a programao na plataforma .NET?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

103

2) Qual a finalidade da declarao throw?


______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
3) Qual a vantagem em utilizarmos herana em nossos programas?
______________________________________________________________
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Aula 7

APLICAES WINDOWS FORMS


Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Construir aplicaes usando recursos baseados em
interfaces grficas;
 Utilizar o Visual C# Express para a construo de programas
Windows Application;
 identificar o componente que deve ser utilizado para
determinada finalidade;
 Implementar programao orientada a eventos.
Contedos da aula
Acompanhe os assuntos desta aula, se preferir, ao
terminar, assinale o contedo j estudado.
 Introduo
 Delegates
 Formulrios e Tratamento de Eventos
 Controles, Propriedades e Layout

SOCIESC Sociedade Educacional de Santa Catarina

104

Programao Aplicada Microsoft .NET usando C#

105

Prezado(a) aluno(a),
O desenvolvimento de sistemas usando a plataforma .NET e a linguagem
C# permite que voc considere naturalmente a construo de solues
baseadas em interfaces grficas. Na verdade, a Microsoft fez um grande esforo
para que a plataforma .NET oferecesse uma grande riqueza de recursos visuais,
permitindo que o programador para Windows construa software rico e com muita
produtividade. At o momento, nesse mdulo, voc programou aplicaes chamadas
Console, que significa a criao de programas baseados em caracteres.
Dificilmente voc utilizar esse tipo de projeto para atender necessidades de um
usurio final. Na atualidade, a grande demanda est em solues visualmente ricas,
seja para Windows ou para a Internet e a plataforma .NET d um bom recado neste
sentido.
O objetivo desta aula permitir que voc aprenda a trabalhar com recursos
visuais em seus programas .NET e entenda como utilizar os principais componentes
para elaborar as telas de seus programas. Voc tambm ver um mtodo comum
para essa abordagem: a programao orientada a eventos, tcnica aplicada em
todas as ferramentas utilizadas para o desenvolvimento de sistemas com interfaces
grficas, tambm conhecidas como IDEs (Interface Development Environment).
Esse tipo de software utilizado para acelerar o processo de desenvolvimento visual
de interfaces (GUI Graphic User Interface), e existem vrias opes no mercado
que atendem a diversas finalidades.
Nesta aula continuaremos usando o Visual C# 2005 Developer , para suportar
todas as atividades dos assuntos que sero tratados.
Desejo-lhe boa aula.

1 INTRODUO
Uma interface grfica com o usurio (GUI) permite que o usurio realize uma
interao com o programa atravs de recursos visuais. uma forma de construo
de sistemas, j que o programador primeiro desenha a interface com o usurio e
depois

constri

os

programas,

associando-os

componentes visuais utilizados.

SOCIESC Sociedade Educacional de Santa Catarina

eventos

disponveis

nos

Programao Aplicada Microsoft .NET usando C#

106

Um conhecimento fundamental para ter bom aproveitamento nesse tipo de


trabalho o amplo domnio que o programador precisa ter sobre as orientaes que
a Microsoft apresenta para a construo de aplicaes Windows, chamadas de
User Interface Design ou, em portugus, Desenho de Interfaces com o Usurio.
O guia, disponvel na Internet pela Microsoft, fornece um conjunto de informaes e
orientaes permeando as prticas que a fabricante espera que os programadores
Windows mantenham.
Segundo Cooper (2003), a interao com o usurio comea um pouco abaixo
da superfcie dos sistemas, aplicaes e hardware. Na verdade, quase todos os
problemas de desenho de interfaces grficas vm de pessoas bem intencionadas,
inteligentes e competentes, mas que mantinham o foco nas coisas erradas. O autor
recomenda que, ao invs de manter o foco em tecnologias e tarefas, uma boa
elaborao visual necessita que o foco se mantenha nas metas, para que os
usurios mantenham sua ateno e tenham motivos para executar determinada
tarefa.
O designer industrial Victor Papanek, descreve design como o esforo
consciente e intuitivo para impor uma ordem com significado.
Alguns autores apresentam definies com maiores detalhes:

Entendimento das necessidades dos usurios, necessidades, motivaes


e contextos;

Entendimento dos requisitos e restries de negcios, de tcnicas e de


domnio;

Traduo do conhecimento em planos para artefatos com suas formas,


contedo e comportamento que transmite utilidade, usabilidade e desejo,
desde que seja economicamente vivel e tecnicamente adequado
(considerando limitaes culturais e pessoais).

No centro dessas atividades de programao de sistemas com interfaces


grficas, existe uma ferramenta chamada IDE. Neste mdulo, estamos utilizando o
Microsoft Visual C# 2005 Express, verso mais simples de um produto mais
completo da Microsoft, chamado Visual Studio .NET.
Como voc j teve oportunidade de ver neste curso, o Visual Studio faz parte
da estratgia da plataforma .NET da Microsoft e a verso Express dos produtos so
gratuitos e servem como uma opo para iniciantes que pretendem um dia migrar
para verses superiores. Alm disso, tambm como j tratamos, a linguagem C# e o

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

107

Visual Studio so as opes mais adequadas para o desenvolvimento na plataforma


.NET, pois foram criados ou adequados para usufruir toda a capacidade da
plataforma.
Veja algumas caractersticas comuns das interfaces grficas no quadro
abaixo e analise-as depois, na figura 48.
Caracterstica

Descrio

Janelas

Mltiplas janelas permitem que informaes


diferentes sejam mostradas simultaneamente
na tela do usurio.

cones

Representam tipos diferentes de informao.


Em alguns sistemas, cones representam
arquivos.

Menus

Comandos so selecionados de uma janela


especial conhecida como Menu, ao invs de
utilizar comandos digitados.

Apontador

Um apontador, como o mouse, usado para


seleo de opes de um menu ou para indicar
os itens de interesse em uma janela.

Grficos

Elementos grficos podem ser misturados com


textos na mesma tela.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

108

Figura 48 Janela e seus compoentes grficos


importante voc observar que a construo de interfaces grficas segue as
bases caractersticas que vimos anteriormente e uma terminologia particular
associada aos elementos grficos, tambm chamados de componentes.

Componente

Descrio

Caixa de texto (TextBox)

Permite que o usurio entre com informaes


usando o teclado. Ele tambm pode
apresentar texto que pode ser editado ou no.

Etiqueta de Texto (Label)

Apresenta imagem ou texto no editvel (fixo).

Boto (Button)

Dispara eventos quando h um clique do


mouse sobre ele.

Caixa de verificao

Especifica uma opo que pode ser

(CheckBox)

selecionada ou no selecionada. Muito til


quando h um conjunto de opes para
selecionar uma ou mais opes ao mesmo

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

109

tempo.
Caixa de combinao

Fornece uma lista associada a uma caixa de

(ComboBox)

texto, onde o usurio poder selecionar um, e


apenas um, item da lista apresentada. O item
selecionado apresentado na caixa de texto.

Caixa de lista (ListBox)

Fornece uma lista de itens que o usurio pode


selecionar clicando sobre o item. possvel a
seleo de um ou mais itens ao mesmo
tempo.

As aplicaes Windows em .NET so chamadas de Windows Applications.


A linguagem C# e a plataforma .NET fornecem suporte extensivo para a construo
de Windows Applications. Como falamos anteriormente, o ponto mais importante
sobre as aplicaes Windows a chamada orientao a eventos, que veremos
mais adiante nesta aula. Todas as aplicaes dessa categoria apresentam uma
interface grfica, para os usurios interagirem com a aplicao e tambm a forma
como a aplicao responde s interaes com o usurio. Esta interface grfica com
o usurio chamada de Windows Form, ou WinForm. Um Windows Form pode
conter componentes visuais como caixas de texto, etiquetas e botes. Como tudo
que est construdo sobre a plataforma .NET resumido a objetos, no seria
diferente com os Windows Forms. Todos os objetos visuais inseridos em um
formulrio so representados por uma classe base do objeto, que estar
armazenada no namespace Windows.Forms.
Na verdade o namespace Windows.Forms um conjunto de classes e
mtodos para a criao de programas com interface grfica.
2 DELEGATES
Para que voc aprenda a trabalhar com Windows Forms, necessrio que
voc aprenda primeiro a trabalhar com um recurso poderoso da linguagem C#:
Delegates.
Delegates um tipo de referncia utilizado para encapsular um mtodo com
uma assinatura especfica (j vimos este conceito anteriormente, em sobrecarga de
mtodos) e um tipo de retorno. Voc pode encapsular qualquer mtodo em um

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

110

delegate. Na verdade, atravs deles que os eventos so controlados dentro de um


formulrio C#, apesar de tambm serem utilizados para implementar recursos de
programao como callbacks e chamadas assncronas.
Em resumo, um delegate nada mais que um ponteiro de funo. Ponteiros
so variveis que, ao invs de armazenar um valor, armazenam o endereo de
memria em que o valor se encontra, permitindo que uma classe chame mtodos de
outras classes, sem exigir que as outras classes sejam derivadas dentro da
hierarquia da classe atual.
Quando voc est construindo formulrios visuais em .NET, os eventos so
cdigos de programao que se utilizam de delegates para realizar o seu trabalho.
Cada componente inserido no formulrio possui seu conjunto de eventos, e cada
evento implementa recursos de delegates.
Os Delegates so muito utilizados em Windows.Forms, mas tambm podem
ser aplicados em qualquer caso onde o comportamento das variveis mais
importante que o valor delas. Se fssemos utilizar uma implementao convencional
de herana, usaramos interfaces (figura 49).

Figura 49 Diagrama UML de Implementao sem Delegates

Com o uso de Delegates, possvel realizar um caminho alternativo (figura


50).

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

111

Figura 50 Diagrama UML usando Delegates

3 FORMULRIOS E TRATAMENTO DE EVENTOS


Toda Windows Application deve possuir uma janela. O termo janela, cujo
termo substitudo para Formulrio. Na verdade, um formulrio nada mais do que
uma janela de uma aplicao. um elemento grfico que aparece na rea de
Trabalho do usurio no Windows, mas um formulrio pode ser uma caixa de dilogo
ou um tipo de formulrio especial, chamado MDI Form. O MDI vem do acronismo de
Multiple Document Interface, que significa a capacidade de um formulrio ser
apresentado dentro de outro formulrio, criando um conceito simples de pai-filho. A
abordagem usando formulrios MDI est caindo em desuso, j que o .NET e as
verses mais atuais do Windows permitem maior controle e navegao para a sua
aplicao.
Um formulrio pode conter grande variedade de objetos e componentes em
seu contedo, por isso a importncia do User Interface Design, pois no momento
da criao de um formulrio para aplicao, que o programador ir demonstrar sua
viso para apresentao do contedo.
Quando inserimos um formulrio para ser apresentado em uma aplicao, na
verdade, a classe responsvel pela apresentao do formulrio, ter referncia
atravs do comando using para o namespace Windows.Forms. Os componentes
inseridos no formulrio, na verdade, so considerados instncia de uma determinada
classe que implementa a interface IComponent, definindo o comportamento dos
componentes, por exemplo: a forma como deve ser usado para carreg-lo na
memria.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

112

O principal componente do Visual C# 2005 Express para os trabalhos de


construo de uma aplicao o Form Editor, ponto central do produto. Usando a
caixa de ferramentas (ToolBox), apresentada ao lado esquerdo do Form Editor,
voc poder ver a lista de controles que podem ser inseridos no formulrio.
O Visual C# 2005 Express, por ser uma ferramenta IDE, possui um amplo
conjunto de recursos para facilitar ao programador a tarefa de construo de
Windows Applications, conforme voc aprendeu na segunda aula deste mdulo.
Os controles e componentes so organizados por categorias no Toolbox e as
categorias representam uma funcionalidade em particular: banco de dados e menus,
por exemplo (figura 51).
Para utilizar um componente em particular que est disponvel no Toolbox,
clique sobre o componente e, mantendo o boto do mouse pressionando, arraste-o
para dentro do formulrio. Clicando apenas uma vez no componente e depois,
clicando direto no local de destino, tambm possvel inserir um componente no
formulrio.

Figura 51 Form Editor e Toolbox


Para cada componente inserido no formulrio, h mtodos, eventos e
propriedades que podem ser manipulados pelo programador. Para visualizar os

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

113

mtodos e os eventos de um objeto em particular, arraste-o para o formulrio e


efetue um duplo clique sobre ele. Voc acessar uma janela que representa a rea
de cdigo do formulrio.
A lista de mtodos e eventos composta dos membros que fazem parte da
classe editada no momento. No caso de um formulrio, voc encontrar na lista, por
padro, Form1( ) e InitializeComponent( ) (figura 52). Um formulrio um container
para os controles e componentes. Ao arrastar o controle para o formulrio, o Visual
C# gera o cdigo que instancia o objeto e define as propriedades bsicas. O cdigo
gerado atualizado de acordo com os elementos visuais alterados, bem como, as
propriedades do objeto em questo.

Figura 52 Janela de Editor de Cdigo


J a lista de propriedades do objeto que est selecionado, voc pode ver que
apresentada na caixa de propriedades. Normalmente aparece no canto inferior
direito do ambiente do Visual C# (figura 53). Perceba que, naturalmente, cada objeto
possui um conjunto particular de propriedades, apesar de algumas serem comuns a
todos os objetos, como a propriedade NAME do objeto, por exemplo.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

114

Figura 53 Propriedades do Objeto

4 CONTROLES, PROPRIEDADES E LAYOUT


J que anteriormente falamos sobre controles, vamos partir da anlise de
uma aplicao. Considere o seguinte formulrio (figura 54), construdo no Form
Editor:

Figura 54 Formulrio de Exemplo da Aplicao

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

115

Observe que o formulrio apresenta um ttulo: Exemplo de Formulrio (figura


55), texto apresentado a partir da alterao da propriedade Text do Formulrio.

Figura 55 Propriedade Text do formulrio


Alm disso, no formulrio existem dois controles: um Button e um TextBox,
para que ao usurio, ao clicar sobre o boto, veja apresentada uma mensagem na
caixa de texto.
Para apresentar o texto dentro do controle Button, tambm foi alterada a
propriedade Text, na janela de Propriedades. Para implementar o evento clique do
boto, foi realizado um duplo clique sobre o boto e digitado a seguinte instruo em
C#:
textBox1.Text = "Boto pressionado!";

O cdigo completo gerado pelo programa o seguinte:


namespace FormControlEvent
{
partial class FrmControlEvent
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should
be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

116

if (disposing && (components != null))


{
components.Dispose();
}
base.Dispose(disposing);
}

#region Windows Form Designer generated code

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(15, 38);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "Clique";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new 
System.EventHandler(this.button1_Click);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(115,
41);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(145, 20);
this.textBox1.TabIndex = 1;
//
// FrmControlEvent
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F,

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

117

13F);
this.AutoScaleMode = 
System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(286, 273);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Name = "FrmControlEvent";
this.Text = "Exemplo Formulrio";
this.ResumeLayout(false);
this.PerformLayout();

#endregion

private System.Windows.Forms.Button button1;


private System.Windows.Forms.TextBox textBox1;
}
}

Para que voc possa implementar um visual equilibrado, considerando que


comum o uso de vrios componentes no visual de sua aplicao, utilize o menu
Format do Visual C# (figura 56), para executar os ajustes necessrios.

Figura 56 Menu Format


Observe que existem vrias opes nesse menu, oferecendo-lhe mecanismos
rpidos para um ajuste fino do visual do formulrio. So eles:
Componente

Descrio

Align

Alinha os componentes selecionados de acordo com uma


definio de caminho padro.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

118

Componente

Descrio

Make same size

Aplica o mesmo tamanho para os objetos selecionados.

Horizontal Spacing

Define o espaamento Horizontal entre os objetos selecionados,


com o objetivo de manter um padro de distncia entre os
objetos.

Vertical Spacing

Define o espaamento Vertical entre os objetos selecionados,


com o objetivo de manter um padro de distncia entre os
objetos.

Center in Form

Centraliza o objeto ou o conjunto de objetos selecionados, no


centro do formulrio.

Order

Quando ocorrer sobreposio de objetos no formulrio, com esse


comando voc pode determinar qual objeto ser apresentado
superposto e sobreposto.

Lock controls

Comando importante para garantir que, aps voc ter realizado a


distribuio desejada, ao habilit-lo, os controles ficaro
bloqueados e voc no correr o risco de acidentalmente alterar
o layout do formulrio.

4.1 Aplicao Prtica em Windows Forms


Vamos agora construir uma aplicao com vrios controles e a manipulao
de vrias propriedades e eventos.
1. Execute o Visual C# 2005 Express, se ainda no est em execuo;
2. Clique em Create Project;
3. Na janela que ser apresentada, escolha o modelo Windows Application,
digite na caixa Name, ComprarLivro e clique no boto OK;
4. Desenhe os componentes no formulrio conforme mostra a figura 57;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

119

Figura 57 Formulrio de Exemplo


5. Defina as propriedades do formulrio para:
a. Size: 500,414
b. StartPosition: CenterScreen
c. Name: MeuExemplo
d. Text: Compra de Livros
6. Adicione um Label par ao formulrio e defina as seguintes propriedades para
o componente:
a. Name: lblTitulo
b. Text: Comprar livro
c. Font: Negrito, Tamanho 16
7. Adicione um GroupBox ao formulrio (figura 58). Caso o controle no esteja
aparecendo em seu Toolbox, verifique se o grupo Containers est expandido
na caixa de ferramentas;

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

120

Figura 58 Controle GroupBox


8. Redimensione o tamanho dele para que acomode trs caixas de verificao.
Defina as seguintes propriedades para o controle:
a. Text: Livros Disponveis
b. Name: gpbLivrosDisponiveis
9. Adicione trs CheckBox para dentro do GroupBox inserido no item 7. Altere
as propriedades de cada CheckBox, como segue:
Componente

Propriedades
Name

Text

checkBox1

chkItem1

Introduo ao C#

checkBox2

chkItem2

C# para Iniciantes

checkBox3

chkItem3

Guia do Programador C#

10. Adicione mais um Label para o formulrio e altere a propriedade Text para
Selecione o(s) livro(s) para compra e a propriedade Name para lblLivros.
Posicione o TextBox dentro do GroupBox;
11. Adicione mais um GroupBox para o formulrio e defina as seguintes
propriedades:
a. Text: Opes de Pagamento
b. Name: gpbOpcoesCompra
c. Enabled: FALSE

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

121

12. Adicione dois RadioButton para o formulrio, dentro do GroupBox, inserido no


item 11. Defina as seguintes propriedades:
Componente

Propriedades
Name

Text

Checked

radioButton1

optCC

Carto de Crdito

TRUE

radioButton2

oprDeposito

Depsito Bancrio

FALSE

13. Adicione mais um Label para o formulrio e altere a propriedade Text para
Escolha o modo de pagamento e a propriedade Name para lblPagto.
Posicione o TextBox dentro do GroupBox;
14. Adicione dois controles Button ao formulrio, alterando as seguintes
propriedades:
Componente

Propriedades
Name

Text

Enabled

Button1

btnComprar

Comprar

FALSE

Button2

btnSair

Sair

TRUE

15. Adicione mais um Label para o formulrio e altere a propriedade Text para
Observaes e a propriedade Name para lblOBS;
16. Adicione um TextBox para o formulrio e altere as propriedades:
Componente
textBox1

Propriedades
Name

Text

Multiline

txtObservacoes

Deixe em branco

TRUE

17. Salve o seu trabalho;


18. Vamos agora adicionar os cdigos de programao aos eventos. Adicione o
seguinte cdigo ao evento Click do boto btnSair:
private void btnSair_Click(object sender, EventArgs e)
{
Application.Exit();
}

19. Quando o usurio selecionar qualquer livro, o GroopBox Opes de


Pagamento e o boto Comprar, devero ser habilitados, j que, inicialmente,
ficaro desativados. Eles tambm ficaro indisponveis em caso de nenhum

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

122

livro ter sido selecionado. Para realizar essa atividade, vamos adicionar
cdigo para o evento CheckedChanged do checkbox chkItem1. Digite o
seguinte cdigo para o evento:

if (chkItem1.Checked == false && chkItem2.Checked == false && 


chkItem3.Checked == false)
{
gpbOpcoesCompra.Enabled = false;
btnComprar.Enabled = false;
}
else
{
gpbOpcoesCompra.Enabled = true;
btnComprar.Enabled = true;
}

20. Copie o cdigo para os outros CheckBox (chkItem2 e chkItem3);


21. Salve o programa e execute-o. Veja os resultados at o momento,
selecionando os livros para compra;
22. Agora vamos inserir um cdigo para o boto Comprar, que dever apresentar
um resumo de compra, a partir dos livros selecionados. Digite o seguinte
cdigo para o evento Click do boto;
private void btnComprar_Click(object sender, EventArgs e)
{
string message = "Voc comprou:\r\n\t";
int Pedido = 0;

if(chkItem1.Checked)
{
Pedido+=20;
message+=chkItem1.Text + "\r\n\t";
}

if(chkItem2.Checked)
{
Pedido+=40;
message+=chkItem2.Text + "\r\n\t";
}

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

123

if(chkItem3.Checked)
{
Pedido+=60;
message+=chkItem3.Text + "\r\n\t";
}

string ModoPagamento = "";

if (optCC.Checked)
{
ModoPagamento = optCC.Text;
}
else
{
ModoPagamento = optDeposito.Text;
}

message +="\r\nO pagamento ser de R$ " + Pedido.ToString();


message +="\r\nO modo de pagamento selecionado foi " + ModoPagamento;

if (txtObservacoes.Text != "")
{
message+="\r\nSuas observaes foram : " + txtObservacoes.Text;
}
MessageBox.Show(message, "Resumo");
}

23. Execute a sua aplicao (figura 59) e veja os resultados.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

124

Figura 59 Resultado do sistema


Algumas dicas importantes na construo de Windows Forms:

Crie o layout de seu formulrio para que se apresente de forma simples e


fcil de entender. importante que o usurio de sua aplicao sinta-se
familiar com o ambiente do produto. O uso deve ser conforme o esperado,
sem surpresas;

No esquea de utilizar o menu Format para obter um resultado melhor


sobre a distribuio dos componentes;

Quase todos os controles possuem propriedades comuns como Location,


Size, Enabled, Visible e etc. Uma das propriedades mais importantes, a
TabIndex, descreve a seqncia que o foco do Windows dever seguir,
quando o usurio pressionar a tecla TAB;

Os controles devem possuir nomes de acordo com sua finalidade, para


que sejam fceis de reconhecer quando o programador for realizar alguma
manuteno;

Embora seja apenas uma prtica de programao, adicionar trs


caracteres iniciais ao nome do controle, representando o tipo de controle a
que o nome se refere, pode ser muito til.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

125

4.2 Estabelecendo o formulrio de inicializao


comum voc inserir vrios formulrios em uma aplicao Windows Forms.
Nessa condio, necessrio determinar qual o formulrio de incio que a aplicao
ir apresentar quando for executada.
Existem duas formas para determinar o objeto a ser inicializado e informar o
formulrio que ser disparado quando a aplicao for inicializada. A primeira forma
pelas propriedades do projeto (figura 60), no campo Startup Object.

Figura 60 Janela de propriedades do projeto


Uma outra forma acessar o mtodo Main( ) da aplicao e alterar o cdigo
C# (figura 61), referente inicializao do projeto.

Figura 61 Cdigo C# de inicializao

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

126

4.4 Menus
Menu um recurso visual que fornece um grupo de comandos relacionados
nas aplicaes Windows. Os itens que compem os menus (figura 62) variam
conforme a aplicao, mas seu uso parte integral da implementao visual em C#
e muito comum na navegao das funcionalidades disponveis em um sistema.

Figura 62 Terminologia no uso de menus


A letra sublinhada no ttulo do item de menu a chamada Letra de Atalho,
acionada no menu principal pela combinao de teclas ALT+Letra. J nos submenus
e itens de menus, simplesmente digitando a letra associada ao comando.
Para criar um menu em Windows Forms, abra a caixa de ferramentas e
arraste o controle MenuStrip no formulrio. Essa ao criar uma barra na parte
superior do formulrio, abaixo da barra de ttulo, e apresentar um cone na rea de
componentes do Visual C# (figura 63).
A rea de insero de menus no formulrio muito simples para operao.
Voc pode digitar diretamente o menu que deseja apresentar ao usurio, medida
que os itens so inseridos, as opes de menu e submenus so apresentados.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

127

Figura 63 Ambiente de edio de menus no Visual C#


A insero dos itens de menus realizada com a digitao nos campos
disponveis pelo Editor de Menu e as propriedades de cada menu tambm devem
ser manipuladas na janela de propriedades do Visual C# (figura 64). pelas
propriedades que voc pode determinar as teclas de atalho para execuo do item.

Figura 64 Criao de menu


Para inserir uma barra separadora no menu, simplesmente digite o hfen na
caixa de texto referente ao item de menu. A propriedade Enabled do item de menu
determina se o item est disponvel para execuo ou no.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

128

Depois que voc criou o seu menu, o prximo passo a insero de cdigo
C# aos itens que desejamos que realize determinada tarefa. Na verdade, o editor de
menus facilita o processo de construo visual do menu, mas somente aps a
insero do cdigo associado que o menu recebe a capacidade de execuo. O
cdigo criado em um evento associado ao item de menu (figura 65).
Para criar um evento, efetue duplo clique no item de menu desejado. Essa
operao apresentar o editor de cdigo do Visual C#, com a estrutura mnima para
a composio do evento.

Figura 65 Cdigo associado ao evento


Viso completa do cdigo gerado em C#:
namespace Menu
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources
/// should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new 
System.Windows.Forms.ToolStripMenuItem();
this.abrirToolStripMenuItem = new 
System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new 
System.Windows.Forms.ToolStripItem[] { 
this.fileToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(292, 24);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new 
System.Windows.Forms.ToolStripItem[] {
this.abrirToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new 
System.Drawing.Size(56, 20);
this.fileToolStripMenuItem.Text = "&Arquivo";
//
// abrirToolStripMenuItem
//
this.abrirToolStripMenuItem.Name = "abrirToolStripMenuItem";
this.abrirToolStripMenuItem.Size = new 
System.Drawing.Size(152, 22);
this.abrirToolStripMenuItem.Text = "&Abrir";

SOCIESC Sociedade Educacional de Santa Catarina

129

Programao Aplicada Microsoft .NET usando C#

130

this.abrirToolStripMenuItem.Click += 
new System.EventHandler 
(this.abrirToolStripMenuItem_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.menuStrip1);
this.MainMenuStrip = this.menuStrip1;
this.Name = "Form1";
this.Text = "Form1";
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.MenuStrip menuStrip1;
private
System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; 
private System.Windows.Forms.ToolStripMenuItem 
abrirToolStripMenuItem;
}
}

Sntese
Nesta aula voc se envolveu com uma das atividades mais ricas em termos
visuais, na programao .NET: a construo de Windows Forms. um trabalho
simples de ser realizado, exigindo apenas a aplicao de boas prticas de User
Interface Design, assunto que tambm abordamos nesta aula.
Finalmente, voc estudou como a abordagem da programao orientada a
eventos, o que um evento e seu uso na construo de programas usando um

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

131

ambiente IDE. Espero que voc tenha percebido as vantagens deste mtodo de
trabalho para programao.
Na prxima aula, vamos aprender como trabalhar com banco de dados no
C#.
At l!

EXERCCIOS PROPOSTOS
1) Qual a namespace responsvel pela construo de janelas na plataforma
.NET?
______________________________________________________________
______________________________________________________________
2) Descreva trs recursos importantes do Editor de Cdigo do ambiente do
Visual C# 2005 Express.
______________________________________________________________
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Aula 8

BANCO DE DADOS COM C#


Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
 Identificar os elementos bsicos de banco de dados
relacionais;
 Entender como a linguagem SQL colabora no processo de
construo de programas com bancos de dados;
 Utilizar as ferramentas do Visual C# e do SQL Express para
manter um banco de dados para a aplicao;
 Definir as opes de uso de banco de dados em uma
aplicao C#.
Contedos da aula
Acompanhe os assuntos desta aula, se preferir, ao
terminar, assinale o contedo j estudado.
 Introduo banco de dados relacionais?
 Linguagem SQL
 Microsoft SQL Express
 Data Controls e ADO.NET

SOCIESC Sociedade Educacional de Santa Catarina

132

Programao Aplicada Microsoft .NET usando C#

133

Prezado(a) aluno(a),
No desenvolvimento atual de aplicaes, o banco de dados uma
tecnologia muito comum. A grande maioria das aplicaes utiliza alguma
forma de armazenamento de dados persistentes, nesse caso, a tecnologia de banco
de dados mais adequada para as mais diversas finalidades. Nesta aula voc
aprender os conceitos principais sobre a tecnologia de banco de dados e como
implementar projetos em C# que se utiliza de banco de dados.
Voc j teve uma leve abordagem sobre os conceitos de banco de dados e
aqui estaremos revisitando algumas das informaes essenciais para integrar a
tecnologia com o desenvolvimento de uma aplicao em C#.
Boa aula.

1 INTRODUO A BANCO DE DADOS RELACIONAIS


Um banco de dados uma coleo organizada de dados e os sistemas
gerenciadores de banco de dados (SGBD) fornecem os mecanismos para organizar,
armazenar, recuperar e modificar os dados pelo usurio.
Em um Banco de Dados relacional temos uma srie de tabelas que tm um
conjunto de linhas e colunas. As colunas representam as informaes pertinentes a
uma linha. Dessa forma, as linhas devem ser identificadas univocamente por uma
chave primria, para que as informaes possam ser recuperadas posteriormente.
A chave primria pode ser uma coluna que nunca ter seus dados repetidos ou um
conjunto de colunas que, juntas, nunca sero repetidas.

Coluna 1

Coluna 2

Coluna 3

CPF

Nome

DataNascimento

4594545

Jnior da Silva

24-08-2005

9454001

Armort de Souza

31-05-2005

9345400

Tianak da Costa

12-02-2004

Vrios autores apresentam as vantagens no uso de um SGBD:

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

Vantagem

Descrio

Eliminao da

Nos sistemas de arquivos, os dados ficavam

inconsistncia dos dados

armazenados em locais isolados e s acessados pela

134

linguagem que lhes deu origem, com isso tnhamos a


mesma informao repetida em locais diferentes. Com a
chegada dos SGDBs, os dados puderam ser
centralizados, evitando a duplicao e,
conseqentemente, a inconsistncia.

Facilidade de acesso aos

Devido centralizao dos dados, facilmente puderam ser

dados

acessados por qualquer ponto da rede.

Prov eficiente segurana

Usando critrios de permisses definidos pelo

aos dados

administrador, podemos informar ao servidor quem pode


acessar o que e quais operaes pode realizar.

Prov restries de

Nos SGDBs voc pode definir regras de integridade sobre

integridade

os campos de uma tabela, com isso, qualquer valor


inserido na coluna dever respeitar essa regra.

Prov ferramentas

Um dos aspectos importantes no uso de SGBDs a

eficientes para backup e

manuteno dos dados. Utilitrios para cpia de

restore

segurana e restaurao de dados so fundamentais para


a administrao dos dados do SGBD.

Um Sistema Gerenciador de Base de Dados (SGBD) uma coleo de


programas que permite aos usurios criarem e manipularem uma base de dados.
Um SGBD , assim, um sistema de software de propsito geral que facilita o
processo de definir, construir e manipular bases de dados de diversas aplicaes
(figura 66).

Definir uma base de dados envolve a especificao de tipos de dados a


serem armazenados na base de dados;

Construir uma base de dados o processo de armazenar os dados em


algum meio que seja controlado pelo SGBD;

Manipular uma base de dados indica a utilizao de funes como a de


consulta, para recuperar dados especficos, modificao da base de dados
para refletir mudanas no mini-mundo (inseres, atualizaes e
remoes), e gerao de relatrios.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

135

Figura 66 Aplicao acessando banco de dados

2 LINGUAGEM SQL
Na histria do desenvolvimento dos Bancos de Dados Relacionais, h o
momento em que foi necessrio o desenvolvimento de linguagens destinadas sua
manipulao. Ento o Departamento de Pesquisas da IBM desenvolveu a SQL
(Search and Query Language) como forma de interface para o SGBD denominado
SYSTEM R no incio dos anos 70. Somente em 1986 o American National Standard
Institute ( ANSI ), publicou um padro SQL (Structured Query Language), que se
estabeleceu como linguagem padro de Banco de Dados Relacional.
A SQL pode ser dividida em dois tipos de comandos:

A DDL (Data Definition Language) - apresenta uma srie de comandos


que permite a definio dos dados. composta, entre outros, pelos
comandos Create, destinado criao do Banco de Dados, das Tabelas
que o compem, alm das relaes existentes entre as tabelas.

Create, Alter e Drop.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

136

Os comandos da srie DML (Data Manipulation Language) - destinados s


consultas, inseres, excluses e alteraes em um ou mais registros de uma
ou mais tabelas de maneira simultnea.
Select, Insert, Update e Delete.
A linguagem SQL um grande padro de banco de dados, devido
simplicidade e facilidade de uso. Ope-se a outras linguagens, visto que uma
consulta SQL especifica a forma e no o caminho para chegar ao resultado. uma
linguagem declarativa, em oposio a outras linguagens procedurais, reduzindo o
ciclo de aprendizado daqueles que se iniciam na linguagem.
Aps estabelecer a comunicao de sua aplicao C# com um SGBD, a
forma de armazenamento, alterao e excluso dos dados se dar com o uso da
linguagem SQL. Esse modelo de aplicao conhecido, hoje, como arquitetura
cliente/servidor, pois as atividades de interface com o usurio (camada de aplicao)
e SGBD (camada de dados) esto fisicamente separados em uma rede de
computadores. medida que o modelo evoluiu, novas camadas foram inseridas,
com o objetivo de aumentar a capacidade de processamento simultneo que a
aplicao pode atender. Dessa forma, as arquiteturas 3-Camadas e N-Camadas,
foram batizadas com uma camada adicional chamada aplicao, ou seja, as
classes, mtodos e funes de uma aplicao, responsveis pela lgica do sistema,
podem ficar armazenadas tambm em um servidor separado. O conceito de NCamadas surgiu com o objetivo de representar a capacidade dos sistemas
corporativos poderem escalar horizontalmente, ou seja, para cada camada
podemos ter um ou vrios computadores.
O processamento de consulta de dados de uma aplicao at o banco de
dados, envolve uma srie de passos, os quais envolvem software, tecnologia e
informaes. Veja os detalhes na figura 67.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

137

Figura 67 O processo de consulta ao banco de dados usando SQL


Comandos DDL:
Comando

Descrio

CREATE

Permite a criao de tabelas no banco de dados


ou mesmo de sua criao.

DROP

Elimina a definio da tabela, seus dados e


referncias.

ALTER

Permite inserir/eliminar atributos nas tabelas j


existentes

Comandos DML:
Comando

Descrio

SELECT

Realiza a consulta em um banco de dados

INSERT

Insere dados em uma tabela especfica

DELETE

Exclui dados de uma tabela segundo um critrio

UPDATE

Atualiza os dados em uma tabela

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

138

3 MICROSOFT SQL EXPRESS


O SQL Server Express um conjunto de ferramentas para ajudar voc no
gerenciamento de bancos de dados, envolvidos no desenvolvimento de pequenos
projetos. Alm disso, o prprio Visual C# oferece ferramentas para acessar dados a
partir do ambiente de desenvolvimento, permitindo maior produtividade na
construo de programas que acessam banco de dados.
H alguns anos o produto SQL Server j existe com a marca da Microsoft.
Vem de uma longa histria e, originalmente, foi baseado em um produto chamado
Sybase. Seu principal mercado atender projetos de grande volume de dados
principal diferencial do SQL Server para o Access dentro do portfolio da Microsoft.
Se havia pouca necessidade um ou poucos usurios com um volume
transacional simples e baixo, era recomendado o Access, se o projeto exigia alto
volume de dados com grande nmero de usurios simultneos incluindo
segurana,

e com nvel mdio de complexidade dos dados, o SQL Server era

recomendado. Havia, contudo, um detalhe: o conhecimento prtico e operacional


adquiridos com o Access era, na sua maioria, perdido quando ocorria a migrao
para o SQL Server, exigindo do profissional aprender mais sobre as ferramentas de
gerenciamento do segundo produto.
Desde as primeiras verses do Access, existem ferramentas e meios para a
migrao de um banco de dados Access para um SQL Server, as chamadas
upsizing. Nas ltimas verses do Access, j era possvel a criao nativa de bancos
de dados em formato SQL Server, permitindo que as ferramentas dos dois produtos
pudessem compartilhar da mesma base de dados. Mas, quando ocorria a migrao
de uma base para a outra, a aplicao que utilizava o banco de dados migrado
(chamada front-end) precisava receber uma srie de alteraes, para absorver as
novas funcionalidades da plataforma superior e tambm adequar-se a certas regras
que na plataforma anterior eram mais leves.
A criao de um banco de dados usando SQL Server Express muito simples
e sua migrao para as demais verses superiores do produto tambm
extremamente simples. Alm disso, na verso mais simples, as regras e condies
das verses superiores, so mantidas e NADA precisa ser corrigido em uma
aplicao para adequar-se migrao para uma verso superior.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

139

Uma das ferramentas do produto o SQL Server Configuration Manager


(figura 68), que oferece todas as aes necessrias para o gerenciamento de
bancos de dados, bem como determina as condies e parmetros do produto.

Figura 68 Gerenciador de Configuraes do SQL Express


Com essa ferramenta, voc configura as condies como a sua aplicao
pode comunicar-se com o servidor de banco de dados. Detalhes como protocolos
ativos, portas de comunicao e servios disponveis so elementos de
parametrizao usando a ferramenta.
Para acessar a ferramenta:
1. Clique no boto Iniciar;
2. Aponte para Todos os Programas;
3. Aponte para o item de menu Microsoft SQL Server 2005;
4. Aponte para o subitem Configuration Tools;
5. Clique no cone SQL Server Configuration Manager.
Conforme j tratamos neste tpico, a construo de aplicaes usando C# e
SQL Server facilitada com as ferramentas visuais disponibilizadas pela Microsoft.
O Visual C# 2005 Express inclui vrias ferramentas para apoiar o processo de
desenvolvimento de aplicaes usando banco de dados. O principal objetivo dessa
integrao fazer com que o programador no precise alternar de uma aplicao
para outra, provocando qualquer perda de produtividade.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

140

O Database Explorer o elemento essencial para trabalhar com bancos de


dados atravs do Visual C#. A ferramenta permite estabelecer conexo do projeto
atual com um banco de dados a ser criado ou existente. Para acessar a janela do
Database Explorer, clique no menu View e execute o comando Database Explorer
(caso esse item no se apresente, aponte para o item de menu Other Views e no
submenu apresentado, clique sobre o Database Explorer).

3.1 Datasources
Datasources so os parmetros necessrios para realizar a conexo com um
banco de dados. Em uma aplicao desenvolvida em C#, voc pode estabelecer um
Datasource para manter conexo da aplicao com um banco de dados em
particular.
Para configurar um Datasource, voc pode utilizar o Data Explorer e seguir as
orientaes fornecidas pela ferramenta para parametrizar uma conexo (figura 69).
Clique com o boto direito do mouse sobre o item Data Connections, do Data
Explorer e, no menu suspenso que ser apresentado, clique sobre o item Add
Connection.

Figura 69 Menu para adicionar uma conexo com banco de dados


No ambiente do Visual C#

2005 Express, tambm h uma alternativa, o

Assistente de configurao de um Datasource. O objetivo desse assistente facilitar


o processo de parametrizao de uma conexo com banco de dados, apresentando
um conjunto de janelas orientativas e que lhe solicitam informaes para a
composio final da conexo.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

141

Para acessar o Assistente, clique no menu Data (figura 70) e execute o item
de menu Add New Data Source...

Figura 70 Data Source Configuration Wizard


Aps estabelecer conexo com o banco de dados, voc poder utilizar-se das
ferramentas integradas de banco de dados, no Visual C# (figura 71), para trabalhar
com os objetos contidos no banco de dados, como: efetuar consultas s tabelas e
alterar algum atributo de uma tabela.

Figura 71 Visualizando dados do banco de dados

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

142

Atravs do Visual C# e do DataSource, voc pode realizar as seguintes


operaes no banco de dados conectado (aqui as principais listadas);

Realizar manutenes nas tabelas existentes;

Criar e excluir uma tabela;

Efetuar consultas em SQL para visualizar os dados contidos nas tabelas;

Criar Views com o objetivo de acelerar o uso de dados/consultas e criar


Stored Procedures para elaborar programas que ficaro associados a
determinados eventos ou pr-programados a serem executados a partir de
cdigo C#.

4 DATA CONTROLS E ADO.NET


Existem vrias formas para trabalhar com banco de dados nas aplicaes em
C#. Cada mtodo atende a uma determinada finalidade e fornece ao programador
meios mais rpidos ou mais difceis para completar sua operao. Voc pode
trabalhar com dois mtodos para acessar dados em sua aplicao:

Usando componentes visuais/controles que aceleram o processo de


composio da aplicao;

Usando a biblioteca de classes da plataforma .NET para as operaes de


banco de dados.

O meio mais simples para implementar um programa com banco de dados em


Visual C# usando o Asssitente de Datasources (figura 72). Aps estabelecer
conexo pela ferramenta, voc pode arrastar o objeto que possua dados, como uma
tabela ou uma viso, e soltar para um formulrio existente na sua aplicao.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

143

Figura 72 Formulrio com uma tabela inserida


Executado o procedimento, todos os componentes necessrios para realizar a
operao, foram inseridos no formulrio, alm disso, todo cdigo de programao
necessrio foi gerado automaticamente no seu projeto.
4.1 Data Controls
O processo de composio de um formulrio com banco de dados, pde ser
avaliado no tpico anterior. O principal componente gerado no formulrio foi um
DataGridView, mas, alm dele, outros foram inseridos. Vejamos a descrio de
cada um deles no quadro abaixo e na figura 73:
Controle

Descrio

Dataset

Utilizado para representar os dados na memria

DataGridView

Apresenta os dados em formato de planilha

BindingSource

Realiza a conexo dos controles inseridos no formulrio e o


Datasource

BindingNavigator

Insere uma barra de navegao padro no formulrio,

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

144

contendo as operaes bsicas de banco de dados

Figura 73 Componentes inseridos no formulrio

4.2 O que ADO.NET?


O ADO.NET um conjunto de bibliotecas de classes da plataforma .NET que
o programador pode utilizar para construir programas com acesso a banco de dados.
Na prtica, a forma alternativa de construo de uma aplicao, em que o
programador precisa realizar praticamente toda atividade de conexo com banco de
dados e manipulao das informaes recuperadas. Vantagem desse mtodo de
trabalho: o programador possui total controle do que est acontecendo entre a
aplicao e o banco de dados; em contrapartida exige maior volume de trabalho e
verificao do cdigo gerado, aes que so superadas usando as ferramentas
visuais do Visual C#.
A histria de modelos de programao para banco de dados em produtos
Microsoft longa. Existem grandes variaes e verses de tecnologias para atender
necessidades especficas de uma determinada aplicao.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

145

O ADO.NET traz o que h de melhor nas experincias anteriores da Microsoft


com o acesso a banco de dados, alm de agregar funcionalidades importantes como
suporte nativo e otimizado Internet para trabalhar de forma off-line.
O modelo de objetos do ADO.NET est baseado em trs componentes
principais:

DataSet: o componente principal da arquitetura do ADO.NET,


principalmente para arquiteturas desconectadas, j que realiza um cache
local na estao do usurio. destinado para acesso a dados a partir de
origens de dados independentes. Um DataSet possui um ou mais objetos
DataTable, onde esto os dados armazenados;

DataView: a classe responsvel pela comunicao entre os


componentes visuais da aplicao e o DataSet;

DataProvider: o componente responsvel em manter a comunicao


dos demais componentes e o banco de dados. Seus objetos so
connection, command, dataadaptor e datareader.

Sntese
Nesta aula voc aprendeu como trabalhar com banco de dados em suas
aplicaes .NET, entender como a implementao pode ser realizada e quais as
opes utilizadas para executar comandos e estabelecer as conexes de banco de
dados e seus formulrios.
Voc tambm aprendeu como trabalhar com o SQL 2005 Express, que o
produto mais simples da famlia de servidores de bancos de dados da Microsoft. Viu
que, com este produto, pode realizar praticamente todas as funes essenciais para
construir solues usando banco de dados.
Com esta aula, terminamos o mdulo de Elementos de Programao
usando C#. Espero que voc tenha obtido resultados satisfatrios com o contedo
apresentado e que possa realizar os seus trabalhos de forma rpida e rica,
elementos que fazem parte da filosofia da Microsoft para a construo de
aplicaes.

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

146

Desejo-lhe boa sorte e no pare seus estudos em .NET, pois um mundo de


oportunidades que est em constante crescimento e hoje, est permitindo aos
profissionais realizar cada vez melhor o seu trabalho.
Um grande abrao!

Exerccios Propostos
1) Qual a biblioteca da plataforma .NET que fornece a capacidade de
implementao de banco de dados nas aplicaes em C#?
______________________________________________________________
______________________________________________________________
2) Descreva qual o papel do Datasource na implementao de banco de dados
com C#?
______________________________________________________________
______________________________________________________________
______________________________________________________________

SOCIESC Sociedade Educacional de Santa Catarina

Programao Aplicada Microsoft .NET usando C#

147

REFERNCIAS
GUNNERSON, E.; Introduo Programao em C#. Cincia Moderna, 2001.
LIBERTY J.; Programando C#. Alta Books, 2006.
MSDN Academic Alliance. http://msdn.microsoft.com/academic/. Acessado em 14
de abril de 2007.
ROBINSON et al.; Profissional C#: Programando. Makron Books, 2004.
TURTSCHI , A. , WERRY, J. , HACK G.; C# .NET: Guia do Desenvolvedor:
Curso Completo. Alta Books, 2005.

SOCIESC Sociedade Educacional de Santa Catarina

Anda mungkin juga menyukai