Buscar

Desenvolvimento de Software Aulas de 01 a 05 EAD

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

AULA 01
O Mercado De Software
Braun apresenta (2010) que:
Os Estados Unidos da América (EUA) lideram o mercado mundial de software e serviços, com faturamento de US$ 349,7 bilhões em 2009.
O Japão está na segunda posição, com faturamento de US$ 71,7 bilhões.
O Brasil manteve a 12ª posição no mercado mundial de software, com faturamento de US$ 15,36 bilhões em 2009, com crescimento de 2,4% em relação a 2008, segundo o estudo realizado pelo IDC para a Associação Brasileira das Empresas de Software (ABES), superando a média global de 0,89% em relação a 2008.
Plataforma .NET Framework 4.0
A plataforma .NET Framework 4.0 (.NET 4.0) é uma plataforma de softwares que fornece integração com um conjunto variado de linguagens de programação, produtividade em desenvolvimento de aplicações, implantação e execução de aplicações em um ambiente gerenciado (MSDN, 2010). O .NET 4.0 é também definido como tecnologia porque é composto de bibliotecas e ferramentas executáveis integradas com o sistema operacional como, por exemplo, o vbc.exe que é o compilador do Visual Basic (VB).
Arquitetura do .NET 4.0
O .NET 4.0 é uma camada de softwares que fica entre o sistema operacional e as aplicações. Esta camada é subdividida em duas camadas:
 1. A camada inferior, chamada de Common Language Runtime (CLR), executa a maior parte das tarefas.
 2. A camada superior, chamada de Base Class Library (BCL), contém os tipos, as interfaces e as bibliotecas de classes como, por exemplo, Windows Forms, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), ASP.NET, ADO.NET, Windows Workflow Foundation, LINQ, Parallel FX etc., utilizadas para a criação de uma aplicação (DEL SOLE, 2010).
Desta forma, um dos grandes benefícios proporcionados pelo .NET 4.0 é o aumento da produtividade no desenvolvimento de software, uma vez que o .NET 4.0 fornece muitas das classes geralmente necessárias para o desenvolvimento de uma aplicação, dispensando o esforço e o consumo de tempo para que estas sejam codificadas pelo programador da aplicação.
O .NET 4.0 é standalone, ou seja, todo o CLR e toda a BCL estão contidos na versão da plataforma e, desta forma, não necessita que as versões anteriores estejam instaladas. Esta é uma grande diferença em relação às versões anteriores do .NET, que eram plataformas incrementais que necessitavam das versões prévias instaladas como, por exemplo, o .NET 3.5 que contém o LINQ, o .NET 3.0 porque este contém o WPF e também o .NET 2.0 que contém o Windows Forms.
Common Language Runtime (CLR): O Common Language Runtime (CLR) provê uma camada comum a todas as linguagens .NET. O CLR permite que a aplicação seja executada em um ambiente gerenciado onde a aplicação se comunica com o .NET, ao invés de se comunicar diretamente com o sistema operacional. Desta forma, o CLR é responsável pelo controle da execução das aplicações, pelo gerenciamento da memória, pelo gerenciamento dos recursos, pelo acesso aos recursos do sistema, pelos serviços de segurança etc. O código da aplicação escrito em alguma linguagem .NET para este ambiente gerenciado é conhecido como managed code (código gerenciado).
Base Class Library (BCL): A Base Class Library (BCL) fornece milhares de tipos, interfaces e classes para serem utilizados nas aplicações. Os namespaces são pacotes ou contêineres que agrupam os tipos, as interfaces e as classes relacionadas a uma tecnologia como, por exemplo, o namespace System.Windows.Forms para Windows Forms e o namespace System.Web para aplicações para web.
A BCL é composta de diversos assemblies. Um dos mais importantes é o MsCorlib.dll (Microsoft Core Library). Alguns são para tecnologias especificas como, por exemplo, o System.ServiceModel.dll que integra a BCL ao Windows Communication Foundation (WCF).
.NET ASSEMBLIES: Os compiladores das linguagens .NET, ao compilarem os códigos das aplicações, geram pacotes chamados de .NET assemblies (montagens). Um .NET assembly (montagem) é um arquivo que contém códigos em Microsoft Intermediate Language (MSIL) e metadados (metadata). A MSIL é uma linguagem assembly de alto nível, orientada a objetos, com conjunto de instruções independentes de CPU. A MSIL é dita uma linguagem comum, considerando que códigos implementados em diferentes linguagens .NET, quando compilados, são convertidos em MSIL. Os metadados contêm informações sobre o código como, por exemplo, os tipos implementados, as funções, os procedimentos, as assinaturas etc.
EXECUÇÃO DO CÓDIGO: Quando um .NET assembly é chamado, o compilador just-in-time (JIT) traduz o código em MSIL do .NET assembly para o código executável equivalente e nativo para o sistema operacional no qual o .NET assembly está instalado. O código executável nativo é chamado de jitted code.  Uma outra opção, chamada prejitting, é pré-compilar o código MSIL com a ferramenta ngen.exe. Todos os assemblies do BCL são pré-compilados (prejitted).
Linguagens de programação para .NET Framework 4.0
A Microsoft oferece uma família de linguagens de programação para o .NET 4.0. As aplicações para .NET 4.0 podem ser desenvolvidas em linguagem Visual Basic 2010 (VB 10.0), Visual C# 4.0, Visual F# 2010 e Visual C++ 2010. Estas linguagens de programação permitem o desenvolvimento de aplicações usando ferramentas visuais disponíveis na interface gráfica para usuário (graphical user interface - GUI) do Visual Studio 2010. Além destas linguagens, podem ser utilizadas também as linguagens dinâmicas IronRuby e IronPython. A linguagem J# não faz parte da família de linguagens para .NET 4.0.
Edições do Visual Studio 2010
O Visual Studio 2010 é um poderoso ambiente de desenvolvimento integrado (integrated development environment - IDE), com recursos novos e aprimorados que simplificam e aumentam a produtividade de desenvolvimento, desde o design (projeto) até a implantação. 
A Microsoft fornece várias edições do Visual Studio 2010 com diferentes recursos e preços para que o profissional de software tenha flexibilidade para escolher a edição mais adequada ao seu trabalho.
As edições atualmente disponíveis são (VISUAL STUDIO, 2010):
Visual Studio 2010 Professional: é indicado para profissionais que executam tarefas básicas de desenvolvimento. Ele simplifica a criação, depuração e implantação de aplicações em várias plataformas que incluem Windows, Web SharePoint e Azure.
Visual Studio 2010 Premium: é indicado para profissionais e equipes que necessitem de teste automatizado da interface para usuário, de identificação do impacto de testes ao mudar os códigos, de geração de dados para testes e de simplificação no desenvolvimento de bancos de dados.
Visual Studio Test Professional 2010: é um conjunto de ferramentas especializado para equipes de controle de qualidade, que simplifica o planejamento de testes e a execução de testes manuais. Funciona em conjunto com as outras edições do Visual Studio para desenvolvedores, permitindo a colaboração efetiva entre os desenvolvedores e os testadores durante todo o ciclo de desenvolvimento da aplicação.
Visual Studio 2010 Ultimate: é indicado para profissionais e equipes que necessitem de um conjunto completo de ferramentas de gerenciamento de ciclo de vida da aplicação (Application Life Management - ALM). Permite a elaboração de diagramas em UML e o gerenciamento de projetos com metodologias iterativas e ágeis.
AULA 02
Palavras-chave
A linguagem de programação VB 2010 possui palavras-chave que são reservadas e não devem ser usadas como identificadores de variáveis, constantes, procedimentos, módulos, sub-rotinas, funções, objetos etc.
Você deve evitar também algumas palavras-chave não reservadas da linguagem VB 2010 para manter a legibilidade dos seus códigos.
Comentários
Os comentários de códigos são utilizados para descrever o código com objetivo de documentar e facilitar o entendimento do programa.
Os comentários de códigos em linguagem VB 2010 são prefixados com apóstrofe. O editor de código marca os comentários na cor verde. 
O compilador VBignora todos os caracteres após a apóstrofe até o final da linha de código.
O exemplo a seguir mostra um comentário de código em VB.
'Este é um comentário de código em VB'
Variável
Variável é um espaço alocado na memória para armazenamento de valores. Uma variável tem um nome identificador, um endereço inicial de alocação na memória, um tamanho do espaço de alocação na memória e um tipo.
Constante
Constante é um espaço alocado na memória para armazenamento de um valor, que após a atribuição não pode ser alterado. Uma constante, assim como uma variável, também tem um nome identificador, um endereço inicial de alocação na memória, um tamanho do espaço de alocação na memória e um tipo.
Tipos
Um tipo define os tipos de valores a serem armazenados na memória, o espaço a ser alocado na memória para armazenar valores deste tipo e a faixa de valores. 
Os tipos facilitam o trabalho do programador, que simplesmente declara uma variável ou constante de um determinado tipo, evitando que defina explicitamente as características de cada variável ou constante declarada no programa.
Todas as linguagens de programação .NET são baseadas no Common Type System (Sistema de Tipo Comum) do .NET Framework. O Common Type System fornece tipos unificados para todas as linguagens .NET (DEL SOLE, 2010).
Segundo Balena (2010), os milhares de tipos suportados pelo .NET Framework podem ser agrupados em duas amplas categorias:
Tipos de valor (value types)
Tipos de referência (reference types)
Os tipos de valor definem variáveis ou constantes que armazenam os valores. Os valores destes tipos são armazenados em uma área de memória chamada Stack (pilha). 
Os tipos de valor da linguagem VB 2010 são: booleano, numéricos, Char, Date, Structure e Enum.
Os tipos de referência definem variáveis ou constantes, conhecidas como ponteiros, que armazenam os endereços iniciais de memória onde estão armazenados os valores, ou seja, armazenam endereços iniciais de memória que fazem referência aos valores (apontam para os valores). Desta forma, os ponteiros são variáveis que armazenam endereços de memória. 
De acordo com Balena (2010), os ponteiros são armazenados na Stack, enquanto que os valores referenciados pelos ponteiros são armazenados em uma área de memória chamada Heap gerenciado. Esta área é gerenciada pelo CLR, que determina quando deve realizar o processo conhecido como coleta de lixo que libera as posições de memória ocupadas por valores que deixaram de ser referenciadas pelos ponteiros após a destruição destes. 
Os tipos de referência da linguagem VB 2010 são: String, arrays e classes.
Tipo Booleano
A tabela mostra as características do tipo booleano.
	TIPO
	TAMANHO
	FAIXA DE VALORES
	Boolean
	Depende da Plataforma
	True ou False
Permite definir variáveis ou constantes do tipo booleano (lógico) que podem assumir dois valores: True ou False, que representam dados que podem ter dois estados possíveis como, por exemplo, verdadeiro ou falso, ligado ou desligado, aberto ou fechado etc. O valor default, isto é, o valor padrão após a declaração da variável sem atribuição de um valor pelo programador de uma variável do tipo Boolean é False.
Tipos de Números
	TIPO
	TAMANHO
	FAIXA DE VALORES
	Byte
	1 byte
	0 a 255
	SByte
	1 byte
	-128 a 127
	Short
	2 bytes
	-32.768 a 32.767
	UShort
	2 bytes
	0 a 65.535
	Integer
	4 bytes
	-2.147.483.648 a 2.147.483.647
	UInteger
	4 bytes
	0 a 4.294.967.295
	Long
	8 bytes
	-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
	ULong
	8 bytes
	0 a 18.446.744.073.709.551.615
	Sigle
(PONTO FLUTUANTE DE PRECISÃO SIMPLES)
	
4 BYTES
	-3,4028235E+38 a -1,401298E-45 para valores negativos
1,401298E-45 a 3,4028235E+38 para valores positivos
	
Double
(PONTO FLUTUANTE DE PRECISÃO DUPLA)
	
8 bytes
	-1.79769313486231570E+308 a -4,94065645841246544E-324
(para valores negativos)
4,94065645841246544E-324 a 1.79769313486231570E+308
(para valores positivos)
	
Decimal
	
16 bytes
	0 a +/-79.228.162.514.264.337.593.543.950.335 (sem casa decimal)
0 a +/-7,9228162514264337593543950335 (com 28 casas decimais)
Cada tipo de números inteiros permite declarar variáveis ou constantes que ocupam um determinado espaço de memória e armazenam números inteiros de uma determinada faixa de valores. O programador deve escolher o tipo que ocupe a menor quantidade de memória em bytes e seja capaz de armazenar a faixa de valores possíveis de um determinado dado a ser armazenado em uma variável ou constante. Esta abordagem permite otimizar o programa, tendo em vista que as variáveis ocupam somente os espaços de memória necessários e suficientes e consumem menos tempo e recursos, como pilha e registradores, para processamento. Por exemplo, vamos supor a necessidade de se declarar uma variável para armazenar a quantidade de filhos de uma pessoa. Neste caso, basta declarar uma variável do tipo Byte que ocupa apenas um byte e permite armazenar valores de 0 a 255. Uma variável do tipo Byte seria suficiente para armazenar a idade de uma pessoa em anos, a quantidade de dias em um mês, a quantidade de meses em um ano etc.
O tipo Single define números de ponto flutuante com precisão até a sexta casa decimal. 
O tipo Double define números de ponto flutuante com o dobro de dígitos significativos em relação ao tipo Single ou com precisão até a décima casa decimal, que evita os erros de arredondamento que podem acontecer com números do tipo Single. Desta forma, o tipo Double é indicado para números utilizados em aplicações científicas, financeiras ou de engenharia.
O tipo Decimal define números inteiros de 12 bytes ou números com 0 a 28 casas decimais.
O valor default das variáveis de tipos de números é zero.
Tipos de Caracteres
A tabela mostra as características dos tipos de caracteres definidos na linguagem VB 2010.
	TIPO
	TAMANHO
	FAIXA DE VALORES
	Char (caracter simples)
	2 bytes
	0 a 65.535
	
String (Cadeia de caracteres)
	
Depende da plataforma
	0 a aproximadamente 2 bilhões de caracteres codificados em Unicode
Tipos Diversos
A tabela mostra as características dos outros tipos definidos na linguagem VB 2010.
	TIPO
	TAMANHO
	FAIXA DE VALORES
	
Date
	 
8 bytes
	 00:00:00 (meia noite) de 1 de janeiro de 0001 a 11:59:50(PM) de 31 de dezembro de 9999.
	
Object
	 4 bytes em plataformas de 32 bits.
8 bytes em plataforma de 64 bits.
	
Valores do tipo objeto
	
Structure (definido pelo programador)
	
Dependencia de plataforma
	Cada membro da estrutura tem valores definidos pelo respectivo tipo e independente dos demais membros.
O tipo Date define variáveis ou constantes que armazenam data, horário ou data e horário. O formato padrão é m/d/aaaa delimitado pelo caracter # como, por exemplo, #3/4/1998# que representa a data 4 de março de 1998. O valor default de uma variável ou constante deste tipo é 00:00:00 (meia noite) de 1 de janeiro de 0001.
O tipo Object define um ponteiro que armazena o endereço de referência a qualquer valor ou objeto. O valor default do ponteiro deste tipo é Nothing, isto é, sem endereço.
O tipo Structure permite que o programador defina estruturas com membros de diferentes tipos.
Declaração de Variável
A declaração de uma variável é feita através da palavra – chave reservada Dim, conforme a seguinte sintaxe:
Dim Nome As Tipo
Os nomes identificadores não devem começar com letra ou sublinha (“_”), conhecido como underscore, e não devem conter espaço ou símbolos.
É usual evitar o uso de acentuações em códigos de programas de computador.
O exemplo a seguir declara uma variável de nome Idade do tipo Byte e uma variável de nome Endereco do tipo String.
Dim Idade As Byte
Dim Endereco As String
Você pode declarar, na mesma sentença, variáveis do mesmo tipo, separando os nomes por vírgula.
O exemplo a seguir declara, na mesma sentença, duas variáveis do tipo Byte de nomes Dia e Mês.
Dim Dia, Mês As Byte
Você pode declarar, na mesma sentença,variáveis de tipos diferentes, separando os nomes e os tipos por vírgula.
O exemplo a seguir declara, na mesma sentença, uma variável de nome Numero do tipo Ushort e uma variável de nome Complemento do tipo String.
Dim Numero As Ushort, Complemento As String
Declaração De Variável
Atribuição de valor
A atribuição de um valor é feita através do sinal de igual, conforme a sintaxe a seguir:
 Nome = valor
 O exemplo a seguir atribui o valor 5 à variável Idade.
 Idade = 5
 O exemplo a seguir atribui o literal "Av. Presidente Vargas" à variável Endereço.
 Endereço = "Av. Presidente Vargas"
Declaração de variável e atribuição de valor
A atribuição de um valor a uma variável pode ser feita na mesma sentença da declaração da variável, conforme a sintaxe a seguir:
Dim Nome As Tipo = valor
O exemplo a seguir declara uma variável de nome Dependentes do tipo Byte e atribui o valor 1.
Dim Dependentes As Byte = 1
Declaração De Constante E Atribuição De Valor
A declaração de uma constante é feita através da palavra-chave reservada Const e a atribuição de um valor é feita com sinal de igual, conforme a seguinte sintaxe:
Const Nome As Tipo = valor
Uma constante deve ter o seu valor atribuído na sentença de declaração.
O exemplo a seguir declara uma constante de nome Versão do tipo Decimal com valor igual a 1.0 e outra constante de nome PI do tipo Double com valor igual a 3.1415.
Const Versao As Decimal = 1.0 Const PI As Double = 3.1415
Caracteres De Tipo De Literal
Alguns valores literais podem ser compatíveis com diferentes tipos como, por exemplo, "A" pode ser do tipo Char ou String e o valor literal 1 pode ser do tipo Byte, SByte, Short, UShort, Integer, UInteger, Long ou ULong. 
Os caracteres do tipo de literal (literal type characters) permitem que você especifique explicitamente os tipos de literais para o compilador, conforme mostra a tabela.
	CARACTER
	TIPO
	EXEMPLO
	C
	Char
	“A”C
	D
	Decimal
	98.2D
	F
	Single
	1F
	I
	Integer
	1I
	L
	Long
	1L
	R
	Double
	1R
	S
	Short
	1S
	UI
	UInteger
	1UI
	UL
	ULong
	1UL
	US
	UShort
	1US
Operadores Básicos
Os operadores básicos da linguagem VB 2010 podem ser agrupados nas seguintes categorias:
Operadores aritméticos
	OPERADOR
	DESCRIÇÃO
	+
	Adição
	-
	Subtração
	*
	Multiplicação
	/
	Divisão
	\
	Parte inteira do resultado da divisão
	Mod
	Resto do resultado da divisão
	^
	Eleva a potência de um valor
Operadores de concatenação
A tabela mostra os operadores de concatenação da linguagem VB 2010.
	OPERADOR
	DESCRIÇÃO
	&
	Concatena duas Strings
	+
	Concatena duas Strings (equivale ao operador &)
A tabela mostra os operadores de deslocamento da linguagem VB 2010.
	OPERADOR
	DESCRIÇÃO
	<<
	Desloca uma quantidade de bits a esquerda de um valor em bits e acrescenta zeros a esquerda
	>>
	Desloca uma quantidade de bits a direita de um valor em bits e acrescenta zeros a direita
O código a seguir apresenta exemplos do uso de operadores de deslocamento.
Dim Numero As Short = 192
‘O conteúdo de Numero em bits é 0000 0000 1100 0000
Dim Res1, Res2, Res3 As Short
Res1 = Numero << 0
Res2 = Numero << 4
Res3 = Numero << 17
O conteúdo de Res1 é 192 (0000 0000 1100 0000)
O conteúdo de Res2 é 3072 (0000 1100 0000 0000)
O conteúdo de Res3 é 384 (0000 0001 1000 0000)
Operadores de atribuição
A tabela mostra os operadores de atribuição da linguagem VB 2010.
	OPERADOR
	DESCRIÇÃO
	EXEMPLO
	=
	Atribui um valor a uma variável ou constante
	X = Y
	+=
	Adiciona e atribui o valor
	X += Y equivale a X = X + Y
	-=
	Subtrai e atribui o valor
	X -= Y equivale a X = X – Y
	*=
	Multiplica e atribui o valor
	X *= Y equivale a X = X * Y
	/=
	Divide e atribui o valor
	X /= Y equivale a X = X / Y
	\=
	Divide e atribui a parte inteira do resultado da divisão
	X \= Y equivale a X = X \ Y
	^=
	Eleva a potência de um valor e atribui o resultado
	X ^= Y equivale a X = X ^ Y
	
<<=
	Desloca uma quantidade de bits a esquerda de um valor em bits e acrescenta zeros a esquerda e atribui o valor
	X <<= Y equivale a X = X << Y
	
>>=
	Desloca uma quantidade de bits a direita de um valor em bits e acrescenta zeros a direita e atribui o valor
	X >>= Y equivale a X = X >> Y
	&=
	Concatena e atribui o resultado
	X &= Y equivale a X = X & Y
Operadores de comparação
A tabela mostra os operadores de comparação da linguagem VB 2010.
	OPERADORES
	DESCRIÇÃO
	<
	Menor que
	<=
	Menor ou igual
	>
	Maior que
	>=
	Maior ou igual
	=
	Igual
	<>
	Diferente
	Is
	Retorna True caso os dois nomes de objetos (ponteiros) apontem para o mesmo objeto. Retorna False caso contrário.
	IsNot
	Retorna True caso os dois nomes de objetos (ponteiros) não apontem para o mesmo objeto. Retorna False caso contrário.
	Like
	Retorna True caso um padrão de string esteja contido em uma string. Retorna False caso contrário
Operadores lógicos
A tabela mostra os operadores lógicos da linguagem VB 2010. 
	OPERADOR
	DESCRIÇÃO
	And
	Executa a operação AND (E) em duas expressões booleanas, binárias ou numéricas.
	Not
	Executa a operação NOT (NÃO) em duas expressões booleanas, binárias ou numéricas.
	Or
	Executa a operação OR (OU) em duas expressões booleanas, binárias ou numéricas.
	XOR
	Executa a operação XOR (Exclusive-OR) em duas expressões booleanas, binárias ou numéricas.
	
AndAlso
	Executa a operação AND (E) em duas expressões booleanas, binárias ou numéricas, ignorando a avaliação da segunda expressão caso a primeira expressão seja False.
	
OrElse
	Executa a operação OR (OU) em duas expressões booleanas, binárias ou numéricas, ignorando a avaliação da segunda expressão caso a primeira expressão seja True.
Aula 3: Programação Modular
Módulo
Um módulo é um contêiner que contém membros, ou seja, declarações de variáveis, constantes e métodos (BALENA, 2006).Module Module1
Sub Main()
End Sub
End Module
Os módulos são delimitados pelas palavras-chave 
Um módulo tem um nome que o identifica.
O VB 2010 Express, ao criar um projeto, define automaticamente um módulo chamado Module1 com uma sub-rotina chamada Main(), que é o método principal, conforme o código ao lado.
Módulos Predefinidos
A linguagem de programação VB 2010 possui módulos predefinidos que agrupam declarações com finalidades afins para serem usadas pelo seu código. Abaixo vamos conhecer os módulos da linguagem VB 2010 (MSDN, 2010).
Constants: Contém diversos membros constantes que podem ser usados pelo seu código.
ControlChars: Contém membros constantes de controle de caracteres para impressão e apresentação de texto.
Conversion: Contém membros que convertem números decimais para outras bases, números para strings, strings para números e um tipo de dado para outro.
DateAndTime: Contém membros para obter a data e o horário corrente, realizar cálculos com datas e horários e atribuir a data ou o horário.
ErroObject: Contém membros para obter informações sobre erros gerados em tempo de execução, para gerar erro ou para inicializar (limpar) as propriedades do objeto Err, que representa o erro.
FileSystem: Contém métodos para realizar operações sobre arquivos, diretórios ou pastas.
Financial: Contém métodos para realizar cálculos financeiros.
Globals: Contém membros para obter informações sobre a versão do interpretador de script.
Information: Contém métodos que retornam resultados dos testes de verificação de tipo ou retornam as informações sobre erros em tempo de execução, o nome do tipo, o valor da cor em RGB etc.
Interaction: Contém métodos usados para interagir com objetos, aplicações e sistemas.
Strings: Contém métodos para tratamento e manipulação de strings como, por exemplo, para formatar, buscar um caracter ou sub-string na string, obter o códigoASC do caracter, obter o comprimento da string,  etc.
VBMath: Contém métodos para realizar operações matemáticas.
Método
Um método, conhecido também como procedimento, é um bloco de códigos identificado por um nome. Um método é chamado pelo nome para que execute o bloco de códigos.
Um módulo tem um ou mais métodos. Dica: Um método pode ser uma sub-rotina (sub) ou uma função (Function).
As vantagens obtidas com o uso de métodos são:
A eliminação de redundância de códigos que precisam ser executados mais de uma vez na aplicação, bastando que os códigos sejam definidos em um método e a aplicação faça chamadas ao método; 
A possibilidade de reaproveitamento dos métodos entre diferentes aplicações. Para aumentar a possibilidade de reaproveitamento é importante que os métodos sejam coesos, isto é, realizem finalidades específicas;
A possibilidade de modularização do código da aplicação, tornando-o mais legível e desta forma menos suscetível a erros de codificação;
A possibilidade de que partes do código de uma aplicação sejam desenvolvidas em paralelo por mais de um programador, ou seja, enquanto um programador codifica a parte da aplicação que chama um método, um outro programador pode codificar em paralelo o código do método. Para que esta forma de trabalho seja produtiva é importante que as assinaturas dos métodos sejam previamente definidas para que os programadores utilizem as mesmas assinaturas dos respectivos métodos.
Sub-rotina (Sub)
A sintaxe de uma sub-rotina é:
Sub Nome (ByVal NomeParametro1 As Tipo ..., ByVal NomeParametroN As Tipo)
End Sub
O exemplo ConsoleApplication3-1.sln, apresentado a seguir, define três linhas que acrescentam o prefixo "Olá " e o sufixo ", conheça a TI Verde." em cada nome apresentado na console.
O exemplo ConsoleApplication3-2.sln apresentado a seguir, realiza a mesma tarefa do exemplo anterior utilizando a sub-rotina ExibirMensagem.
Observe que este exemplo não apresenta redundância de código comum para acrescentar o prefixo e o sufixo. E, se você quiser, por exemplo, mudar o prefixo para "Oi ", basta substituir uma única vez o prefixo "Olá " por "Oi " na  linha 3 do código.
Função (Function)
Uma função é um método que executa um bloco de código e retorna um valor.
As funções são delimitadas pelas palavras-chave Function e End Function.
Uma função tem um nome que a identifica para que seja chamada.
A sintaxe de uma função é:
Encadeamento de Métodos:
Um método pode chamar outro método permitindo que métodos mais especializados sejam criados para aumentar a coesão.
Este mecanismo é conhecido como encadeamento de métodos.
O exemplo ConsoleApplication3-4.sln, apresentado a seguir, define uma função chamada VolumeCubo que recebe como argumento o comprimento, chama a função AreaQuadrado para obter a área e retorna o valor do volume do cubo. A sub-rotina Main() chama a função VolumeCubo passando o valor 3.0.
Module Module1
    Function AreaQuadrado(ByVal Comprimento As Double)
        ' calcula a área do quadrado
        Return Comprimento * Comprimento
    End Function
    
Function VolumeCubo(ByVal Comprimento As Double)
        ' chama a função AreaQuadrado
        Return AreaQuadrado(Comprimento) * Comprimento
    End Function
    Sub Main()
        Console.WriteLine(VolumeCubo(3.0))
        Console.ReadKey()
    End Sub
End Module
Escopo
O escopo define a acessibilidade de uma variável ou método.
Escopo de uma variável: Em geral, as variáveis são declaradas com a palavra-chave Dim e, desta forma, são acessíveis apenas dentro do método em que foram declaradas.
As variáveis podem ser declaradas fora do método, usando-se a palavra-chave Private ou Public para que sejam acessadas (compartilhadas) por mais de um método.
As variáveis Public são acessíveis por todos os métodos da aplicação. Elas são conhecidas como variáveis globais.
As variáveis Private são acessíveis apenas pelos métodos situados dentro do mesmo módulo ou da mesma classe onde foram declaradas.
 O exemplo ConsoleApplication3-5.sln, apresentado a seguir, define uma variável Private chamada Numero do tipo Double, a sub-rotina Main() atribui o valor 1 a esta variavel, depois ela é acessada pela sub-rotina Duplicar() para duplicar o valor dela, depois ela é acessada pela pela sub-rotina Triplicar() para triplicar o valor dela e no final ela é acessada pela Main() para exibir o valor dela. 
Exemplo: 
Escopo de um método: Um método Public pode ser chamado de qualquer parte da aplicação. Este é o default se você não definir a acessibilidade.
Um método Private pode ser chamado apenas pelos métodos situados dentro do mesmo módulo ou da mesma classe onde foram definidos.
Funções Internas 
A linguagem VB 2010 tem várias funções internas predefinidas que podem ser usadas pela sua aplicação. As funções internas são classificadas em:
Funções de conversão de tipos;
Funções de manipulação de string;
Funções matemáticas;
AULA 04
Programação Estruturada
A linguagem VB 2010 possui estruturas de controle de fluxo que permitem o desenvolvimento de programas estruturados, que são programas e que não fazem uso da instrução GoTo. E desta forma, são mais fáceis de codificar, compreender e manter (BALENA, 2006).
Estruturas de Controle de Fluxo
As estruturas de controle de fluxo suportadas pela linguagem VB 2010 são (MSDN, 2010):
1. Estrutura de controle de decisão simples
2. Estrutura de controle de decisão estendida
3. Estrutura de controle de decisão aninhada
4. Estrutura de controle de decisão em seqüência na mesma linha.
5. Estrutura de controle de múltiplas decisões (escolha)
6. Estrutura de controle de repetição controlada por contador (para)
7. Estrutura de controle de repetição While (enquanto)
8. Estrutura de controle de repetição Do (faça)
Estruturas de Controle de Decisão Simples
A estrutura de controle de decisão simples (se-então-fim_se) permite executar um bloco de código em função da avaliação de uma expressão lógica, chamada também de condição, condição booleana, condição lógica ou expressão booleana.
 A sintaxe da estrutura de controle de decisão simples em linguagem VB 2010 é:
If (condição) Then
 Bloco de código
End if
Onde o bloco de código somente será executado se a condição for verdadeira (True).
O exemplo ConsoleApplication4-1.sln, apresentado a seguir, exibe a pergunta "É sustentável (s/n)? ", obtém a entrada de dados que é atribuída na variável Sustentável. Se o valor da variável Sustentável for igual a "s", exibe "Parabéns!".
Module Module1
 Dim Sustentavel As String
 Console.Write (“É sustentável (s/n)?”)
 Sustentavel = Console.ReadLine()
 if (Sustentavel = “s”) Then
 Console.WriteLine (“Parabéns!”)
 End If
 Console.ReadKey()
 End Sub
 End Module
Estruturas de Controle de Decisão Estendida
A sintaxe da estrutura de controle de decisão estendida (se-então-senão-fim_se) em linguagem VB 2010 é:
If (condição)Then
 Bloco de código
Else
 Bloco de código 2
End If
Onde o bloco de código 1 será executado se a condição for verdadeira (True) e o programa continuará depois do End If, senão o bloco de código 2 será executado. Desta forma, um dos blocos será executado em função do valor (True ou False) da condição. 
O exemplo ConsoleApplication4-2.sln, apresentado a seguir, exibe "Digite a sua média final: ", obtém a entrada de dados que é atribuída na variável MediaFinal. Se o valor da variável MediaFinal for maior ou igual a 6.0, exibe "Aprovado", senão exibe "Reprovado".
Module Module1
Sub Main()
 Dim MediaFinal As Single
Console.Write(“Digite a sua média final: “)
MediaFinal = Console.ReadLine()
If (MediaFinal >= 6.0) Then
 Console.WriteLine(“Aprovado”)
Else
 Console.WriteLine(“Reprovado”)
End If
 Console.ReadKey()
End Sub
End Module
Estruturas de Controle de Decisão Aninhada
A sintaxe de uma estrutura de controlede decisão aninhada em outra em linguagem VB 2010 é:
If (condição 1) Then
 Bloco de código 1
Else
 If (condição 2)
 Bloco de código 2
End If
 End If
No entanto, a linguagem VB 2010 suporta uma sintaxe condensada, apresentada a seguir, que melhora a legibilidade do código.
If (condição 1) Then
 Bloco de código 1
Else If (condição 2) 
 Bloco de código 2
End If
A linguagem VB 2010 suporta várias estruturas de decisão aninhadas na sintaxe condensada, que equivale à estrutura de controle de múltiplas decisões (escolha), conforme apresentada a seguir:
If (condição 1) Then
 Bloco de código 1
ElseIf (condição 2)
 Bloco de código 2
ElseIf (condição 3)
 Bloco de código 3
...
End If
O exemplo ConsoleApplication4-3.sln, apresentado a seguir, exibe "Digite um número de 0 a 99: ", obtém a entrada de dados que é atribuída na variável Numero. Se o valor da variável Numero estiver entre 0 a 9, exibe " O número está no intervalo de 0 a 9 inclusive.", senão testa se o valor da variável Numero está entre 10 e 99 e, se estiver, exibe " O número está no intervalo de 10 a 99 inclusive.", senão exibe "O número não está no intervalo de 0 a 99 inclusive.".
A linguagem VB 2010 permite expressar uma instrução de controle de decisão em uma única linha, conforme a sintaxe a seguir:
If (condição 1) Then instrução 1 Else instrução 2
O ramo verdadeiro (Then) ou falso (Else) pode ser composto de mais de uma instrução, separadas por dois pontos, conforme a sintaxe a seguir:
If (condição 1) Then instrução 1 : instrução 2 Else instrução 3 : instrução 4
O exemplo ConsoleApplication4-4.sln, apresentado a seguir, é o exemplo ConsoleApplication4-2.sln modificado para fazer uso da estrutura de controle de decisão em uma única linha.
Estrutura de Controle de Múltiplas Decisões (escolha)
A linguagem VB 2010 tem a instrução Select Case, que permite definir uma estrutura de controle de múltiplas decisões (escolha) de forma mais otimizada do que com o uso de estruturas de decisão aninhadas, apresentadas anteriormente. A sintaxe da instrução Select Case é:
Select Case (condição)
    Case valor ou intervalo de valores ou lista de valores 1
        Bloco de código 1
    Case valor ou intervalo de valores ou lista de valores 2
        Bloco de código 2
    ...
    Case Else
        Bloco de código N
End Select
Onde o intervalo de valores é definido usando-se a palavra To na forma valor inicial To valor final e a lista de valores é definida com os valores separados por vírgula na forma valor1, valor2,.., valor n.
O exemplo ConsoleApplication4-5.sln, apresentado a seguir, é o exemplo ConsoleApplication4-3.sln que usa estrutura de decisão aninhadas, modificado para fazer uso da instrução Select Case.
Module Module1
Sub Main()
Dim Numero As Byte
Console.Write(“Digite um número de 0 a99: “)
Numero = Console.ReadLine
Select Case (Numero)
 Case 0 To 9
 Console.WriteLine(“O número está no intervalo de 0 a 9 inclusive.”)
 Case 10 To 99
 Console.WriteLine(“O número está no intervalo de 10 a 99 inclusive.”)
 Case Else
 Console.WriteLine(“O número não está no intervalo de 0 a 99 inclusive.”)
End Select
Console.ReadKey()
End Sub
End Module
Estrutura de Controle de Repetição Controlada por Contador (para)
A estrutura de controle de repetição While (enquanto) executa o bloco de código enquanto a condição for verdadeira (True). Esta estrutura necessita que uma instrução de inicialização da variável da condição seja definida antes do laço e uma instrução de alteração da variável da condição seja definida dentro do laço para que o laço (loop) não seja repetido infinitamente. A sintaxe da estrutura de controle de repetição While é:
Instrução de inicialização da variável da condição
While (condição)
 Bloco de código com instrução de alteração da variável da condição
End While
O exemplo ConsoleApplication4-8.sln, apresentado a seguir, é o exemplo ConsoleApplication4-6.sln modificado para fazer uso da estrutura de controle de repetição While ao invés do For.
Module Module1
 Sub Main()
 Dim Contador As Byte = 1 ‘instrução de inicialização
 While (Contador <= 10)
 Console.WriteLine(Contador)
 Contador = Contador + 1 ‘Instrução de alteração da variável
 End While
 Console.ReadKey()
 End Sub
End Module
Estrutura de Controle de Repetição Do (faça)
A linguagem VB 2010 suporta duas opções de sintaxe para definir a estrutura de controle de repetição Do (faça). Ambas as sintaxes necessitam que uma instrução de inicialização da variável da condição seja definida antes do laço e uma instrução de alteração da variável da condição seja definida dentro do laço para que o laço (loop) não seja repetido infinitamente.
Opção 1:
Instrução de inicialização da variável da condição
Do While ou Until (condição)
 Bloco de código com instrução de alteração da variável da condição
Loop
Opção 2:
Instrução de inicialização da variável da condição
Do
 Bloco de código com instrução de alteração da variável da condição
Loop While ou Until (condição)
Quando o While é utilizado, o laço será repetido enquanto a condição for verdadeira (True).
Quando o Until é utilizado, o laço será repetido até que a condição seja falsa (False).
A sintaxe da opção 1 define um laço (loop) que poderá não ser executado ou repetido
várias vezes (0 a n vezes). Enquanto a sintaxe da opção 2 define um laço (loop) que será
repetido uma (pelo menos) ou várias vezes (1 a n vezes).
O exemplo ConsoleApplication4-9.sln, apresentado a seguir, é o exemplo ConsoleApplication4-6.sln modificado para fazer uso da estrutura de controle de repetição Do While ao invés do For, e equivalente ao exemplo ConsoleApplication4-8.sln.
Module Module1
Sub Main()
 Dim Contador As Byte = 1 ' instrução de incialização
 Do While (Contador <= 10)
 Console.WriteLine(Contador)
 Contador = Contador + 1 ' instrução de alteração da variável da condição
 Loop
 Console.ReadKey()
 End Sub
End Module
O exemplo ConsoleApplication4-10.sln, apresentado a seguir, é o exemplo ConsoleApplication4-6.sln modificado para fazer uso da estrutura de controle de repetição Do Until ao invés do For, e equivalente ao exemplo ConsoleApplication4-8.sln.
Module Module1
 Sub Main()
 Dim Contador As Byte = 1 ' instrução de incialização
 Do Until Not (Contador <= 10)
 Console.WriteLine(Contador)
 Contador = Contador + 1 ' instrução de alteração da variável da condição
 Loop
 Console.ReadKey()
 End Sub
End Module
AULA 05
Tratamento de Exceções
Exceção
Exceção é um erro no fluxo normal de execução do código de um programa de uma aplicação. O.NET framework oferece uma forma unificada de identificar e tratar exceções entre todas as linguagens de programação .NET (BALENA, 2006). Há dois tipos de exceções: exceções de hardware e exceções de software. As exceções de hardware são causadas por erros do programa no que se refere a hardware como, por exemplo, violação de acesso a endereços de memória. Enquanto as exceções de software são causadas por erros do programa no que se refere a software como, por exemplo, atribuir um valor incompatível a uma variável ou divisão por zero (MACKENZIE e SHARKEY, 2003).
Tratamento de Exceções Estruturadas
O tratamento de exceções estruturadas (Structured Exception Handling - SEH) é uma estratégia para codificar o programa de uma aplicação para tratar tanto as exceções de hardware quanto as exceções de software.
Dessa forma, o código para tratamento de exceções se torna unificado e mais consistente por tratar tanto as exceções de hardware quanto as exceções de software.
Seções do código que estiverem propensas a gerarem exceções como, por exemplo, cálculos, acesso a banco de dados, operações com arquivos etc. (MACKENZIE e SHARKEY, 2003).
Tipos de Exceções
Os tipos de exceções derivam da classe System.Exception que é definida no .NET framework.
Os principaistipos de exceções são:
- ArgumentException
- ArgumentNullException
- ArgumentOutOfRangeException
 - IndexOutOfRangeException
 - NotImplementedException
 - OutOfMemoryException
 - OverflowException
 - FileNotFondException
O Bloco Try...End Try
As palavras-chave Try... End Try delimitam o bloco de códigos protegidos para tratar as exceções que ocorrerem, onde Try delimita o início do bloco e End Try delimita o final do bloco.
A sintaxe é:
Try
 ...
Catch ex As Exception
End Try
A seção Catch
A palavra-chave Catch marca a seção do bloco que captura e trata as exceções que podem eventualmente ocorrer.  Em geral, usa-se uma seção Catch para capturar cada tipo de exceção e uma seção Catch, chamada genérica, no final para capturar todos os demais tipos de exceções que não foram capturados pelas seções Catch anteriores. 
A sintaxe é:
Try
 …
Catch ex1 As Exception1
 ‘Código para tratamento da Exception1
 …
Catch exN As ExceptionN
 ‘Código para tratamento da ExceptionN
 …
 ‘Captura Genérica
Catch ex As Exception
 ‘Código para tratamento das demais exceções
 …
End Try
O exemplo ConsoleApplication5-1.sln, apresentado a seguir, declara a variável i do tipo Decimal e atribui o valor 10, declara a variável j do Decimal e atribui o valor zero, define a divisão de i por j sem captura e tratamento de exceção, que ao ser executado é abortado por gerar uma exceção de divisão por zero (DivideByZeroException).
Module Module1
 Sub Main()
 Dim i As Decimal = 10
 Dim j As Decimal = 0
 Dim Resultado As Decimal
 Resultado = i / j
 Console.ReadKey() 
 End Sub
End Module
A imagem mostra a janela de exceção de divisão por zero sem tratamento, apresentada ao se executar o programa pelo IDE do Visual Basic 2010 Express.
O exemplo ConsoleApplication5-2.sln, apresentado a seguir, é o exemplo ConsoleApplication5-1.sln modificado para realizar a captura e o tratamento da exceção genérica, ou seja, de qualquer tipo de exceção.
Module Module1
 Sub Main()
 Dim i As Decimal = 10
 Dim j As Decimal = 0
 Dim Resultado As Decimal
 Try 
 Resultado = i / j
 Catch ex As Exception
 ‘Captura Genérica 
 Console.WriteLine (“Houve um erro de exceção de divisão por zero”) 
 End Try 
 Console.ReadKey() 
 End Sub
End Module
A imagem mostra a mensagem exibida pela seção de tratamento de exceção genérica do programa.
O exemplo ConsoleApplication5-3.sln, apresentado na próxima peça, é o exemplo ConsoleApplication5-1.sln modificado para na primeira seção Catch capturar e  tratar a execeção DivideByZeroException e na segunda seção Catch capturar e  tratar uma exceção genérica, ou seja, qualquer tipo de exceção.
Module Module1
 Sub Main()
 Dim i As Decimal = 10
 Dim j As Decimal = 0
 Dim Resultado As Decimal
 Try 
 Resultado = i / j
 Catch exDivideByZero As DivideByZeroException
 ‘Captura da DivideByZero 
 Console.WriteLine (“Houve um erro de exceção de divisão por zero”) 
 Catch ex As Exception
 ‘Captura da DivideByZero 
 Console.WriteLine (“Houve um erro de exceção genérica”) 
 End Try 
 Console.ReadKey() 
 End Sub
End Module
Ao executar o programa, a primeira seção Catch captura a exceção DivideByZeroException e exibe a mensagem mostrada na imagem.
Blocos Try...End Try Aninhados
Os blocos Try...End Try podem ser aninhados.
 O exemplo ConsoleApplication5-4.sln, apresentado a seguir, define um bloco Try...End Try externo que contém um outro bloco Try...End Try interno. Se ocorrer uma exceção na abertura do arquivo, o programa exibe a mensagem "Exceção na abertura do arquivo." e se após a abertura do arquivo sem exceção, ocorrer uma exceção na leitura do arquivo, o programa exibe a mensagem "Exceção na leitura do arquivo."
A seção Finally
A seção Finally define o código que deverá ser sempre executado, sem ou com a ocorrência de uma exceção, antes de terminar o bloco Try...End Try. Em geral, contém o código para liberar recursos alocados no bloco Try...End Try ou o código comum a ser executado antes de terminar o bloco Try...End Try.
O exemplo ConsoleApplication5-5.sln, apresentado a seguir, é o exemplo ConsoleApplication5-3.sln modificado para conter a seção Finally que sempre emite um sinal sonoro, Beep(), antes de terminar o bloco Try...End Try.
Lançamento de Exceções
Em algumas situações você pode deseja lançar uma exceção para esta seja tratada por uma rotina de tratamento de exceção ou para gerar uma exceção.
 A sintaxe da declaração do lançamento da exceção é:
 Throw [ expressão ]
 O exemplo ConsoleApplication5-2.sln, apresentado a seguir, é o exemplo ConsoleApplication5-1.sln modificado para lançar uma exceção genérica com a mensagem "Divisor j igual a zero" se o valor da variável j for igual a zero. Como a variável j é declarada e inicializada com valor igual a zero, o programa lança a exceção, que é capturada pela seção Catch, a qual exibe a mensagem "Ocorreu uma exceção: Divisor j igual a zero.", conforme mostra a imagem.
Mensagem exibida com o lançamento da exceção genérica.

Outros materiais