Você está na página 1de 23

22/10/2009

TREINAMENTO

SEGUNDA FASE

rea de Desenvolvimento de Sistemas

Professor: Julio Oliveira Consultor e Analista de Sistemas

22/10/2009

Julio Cezar Oliveira E-mail: julioliveira79@gmail.com Assunto: S2B 2-09

Tpicos

abordados:
Introduo ao .NET Framework e CLR Plataforma Visual Studio 2008 Lgica de Programao

22/10/2009

O .NET Framework um modelo de programao de cdigo gerenciado da Microsoft para criar aplicativos em clientes, servidores e dispositivos mveis ou incorporados ao Windows.
Conjunto rico de bibliotecas com os mais variados usos; Controle de verso: fim do DLL Hell; Facilidade de desenvolvimento de aplicaes desde as mais simples at as mais complexas; Facilidade na instalao e na distribuio de aplicaes; Alta escalabilidade para ambientes de misso crtica; Interoperabilidade entre plataformas e componentes desenvolvidos em outras linguagens .NET; Sintonizado com as ltimas tecnologias; Orientado a objetos; Tecnologia baseada em mquina virtual;

22/10/2009

.NET permite desenvolver solues como:

Aplicativos Web Aplicativos para Servidores Aplicativos Smart Client Aplicativos de Console Aplicativos de Banco de Dados Servios Windows Web Services e muito mais

.NET Framework 3.5 incrementa as .NET Frameworks 2.0 e 3.0 com novos recursos tecnolgicos. Entre eles, esto:

Profunda integrao entre LINQ (consulta integrada linguagem) e reconhecimento de dados (data awareness). Novas implementaes ao ASP.NET AJAX. Suporte completo para:

Windows Workflow Foundation (WF) Windows Communication Foundation (WCF) Windows Presentation Foundation (WPF) Windows CardSpace

Novas classes na BCL (biblioteca de classes bsicas) que vm atender solicitaes comuns entre os desenvolvedores.

22/10/2009

.NET Framework VB C++ C# JScript ...

Common Type System (CTS) Visual Studio .NET ASP .NET: Web Services e Web Forms ADO .NET: Data e XML

Windows Forms

.NET Framework Base Class

Common Language Runtime (CLR)

Common Language Runtime (CLR) o componente encarregado de gerenciar aplicaes desenvolvidas em .NET. O compilador de cada linguagem segue uma srie de especificaes, conhecidas como Common Language Infrastructure (CLI). Estas especificaes so abertas (ECMA-335, ISO/IEC 23271), assim permitem a interoperabilidade entre outras linguagens e plataformas.
Ex. A Novell

desenvolveu o Mono, um CLR que opera em Linux, BSD, UNIX, Mac OS X e Solaris.

22/10/2009

Gerenciamento

de memria Tratamento de excees Compilao Segurana Outros

Compilao
Source Code Language Compiler Code MSIL Metadata

Execuo
Native Code JIT Compiler

Antes da instalao ou a primeira vez que cada mtodo chamado

22/10/2009

Cdigo Fonte

VB

C#

C++ Componente No Gerenciadol

Compilador

Compilador

Compilador

Cdigo Gerenciado

Assembly - Cdigo IL

Common Language Runtime (CLR) Compilador JIT

Cdigo Nativo Servios do Sistema Operacional

Managed

Cdigo Fonte Compilador Cdigo Intermedirio (IL): .DLL ou .EXE Requer o ambiente CLR para executar Cdigo de Mquina (Binrio)

Unmanaged

Cdigo Fonte Compilador Cdigo de Mquina (Binrio) NO requer o ambiente CLR para executar

22/10/2009

Microsoft

Visual Basic.NET Microsoft C# Microsoft C++ (Gerenciado/No-Gerenciado) Microsoft J# Outras: http://www.dotnetlanguages.net http://www.dotnetpowered.com

22/10/2009

Um

conjunto de ferramentas de desenvolvimento que permite aos desenvolvedores de software resolver problemas complexos e criar solues inovadoras. Baseia-se em trs pilares principais:
Desenvolvimento rpido de aplicativos Colaborao eficaz em equipe Experincias de usurio inovadoras

Desenvolver

Web Sites e Aplicaes Web com ASP.NET, AJAX.NET e Silverlight. Impressionar com mdia e grficos desenvolvidos com o Windows Presentation Foundation. Desenvolver aplicativos que estendem funes do Office 2003 e 2007. Desenvolver aplicaes para Windows Mobile. Desenvolver solues de integrao coorporativa com Windows Communication Foundation e o Windows Workflow Foundation e muito mais...

22/10/2009

Demonstrao

File

> New > Project...

10

22/10/2009

11

22/10/2009

Inteiro de 8 bits sem sinal byte Inteiro com sinal de 8 bits sbyte Inteiro de 32 bits com sinal int Inteiro de 32 bits sem sinal uint Inteiro com sinal de 64 bits long Inteiro sem sinal de 64 bits ulong Inteiro com sinal de 16 bits short Inteiro sem sinal de 16 bits ushort Ponto flutuante decimal. Este tipo tem uma preciso de 28 casas decimais. decimal Ponto flutuante binrio. Este tipo tem uma preciso de 15 casas decimais. double Ponto flutuante binrio. Este tipo tem uma preciso de 7 casas decimais. float Tipo de dados booleano. Pode ser apenas true ou false. bool Um nico caractere unicode de 16 bits. char Texto em Unicode com at 1 gigabyte. string

12

22/10/2009

Armazenado

na memria Stack. Trabalha com dados diretamente. No pode ser nulo. Exemplo:
Inteiros Decimais Booleanos Estruturas Enumeraes

... idade

STACK

19
salrio

500.00
brasileiro

Contm

uma referncia a um ponteiro na memria Heap. Pode ser nulo STACK Exemplo:
Vetores Textos Instncias de Classes Classes

...

#XXXX

Nome ...

HEAP

Nome

Texto

13

22/10/2009

int i = 123; object O; O = i; string S; S = O.ToString() int x; x = (int) O;

// Tipo por valor // Tipo por referncia // Causa boxing // Chama via O // Faz unboxing

Stack
123

Heap i O x
123 123

int i = 123; object O; O = i; string S; S = O.ToString(); int x; x = (int) O;


STACK
123

// Tipo por valor // Causa boxing // Tipo por referncia // Chama via O // Faz unboxing
HEAP

...

x
123

S
...

O
123

O
123

i
...

...

14

22/10/2009

Aritmticos

+, -, *, /, %

Atribuio

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

Concatenao

Criao de Objetos

new

Igualdade e Diferena

==, !=

Incremento e Decremento

++, --

Lgicos e Bit a bit

&&, ||, !, &, |, ^, ~

Primrios

typeof, sizeof, checked, unchecked

Relacionais

<, >, <=, >=, is

if

... else

Comando condicional: executa um bloco de comandos se uma condio for verdadeira. A clusula else (condio falsa) opcional.
if (idade >= 18) { Response.Write("Autorizado."); Response.Write("Sua idade : " + idade); } else if (idade > 15 && idade < 18) { Response.Write("Somente com os pais."); Response.Write("Menor de 18 anos."); } else { Response.Write("No autorizado."); Response.Write("Menor de 15 anos."); }

15

22/10/2009

switch

case
Estrutura de deciso que seleciona um comando com base no valor de uma varivel. A clusula default opcional.

switch (sexo) { case "masculino": Response.Write("Homem"); break; case "feminino": Response.Write("Mulher"); break; default: Response.Write("No informado"); break; }

for

Estrutura de repetio composta por trs expresses:


Inicializao. Condio de parada. Atualizao.

for (int i = 0; i < 10; i++) { Response.Write(i); Response.Write("<br />"); }

16

22/10/2009

while

Estrutura de repetio que realiza as operaes indicadas enquanto a condio especificada for verdadeira.

int i = 0; while(i < 10) { Response.Write(i); Response.Write("<br />"); i++; }

do

... while

Estrutura de repetio semelhante anterior, porm as condies so verificadas ao final da execuo. As operaes especificadas so executadas pelo menos uma vez. Necessita do caractere ; ao final da estrutura.

int i = 0; do { Response.Write(i); Response.Write("<br />"); i++; } while (i < 10);

17

22/10/2009

// Exemplo I string s = "123"; int i = s; Response.Write(i);

// Exemplo IV string s = "valor"; int i = Convert.ToInt32(s); Response.Write(i);

// Exemplo II string s = "123"; int i = Convert.ToInt32(s); Response.Write(i);

// Exemplo III string s = "123"; int i = int.Parse(s); Response.Write(i);

// Exemplo V string s = "valor"; int i = 0; if (int.TryParse(s, out i)) { Response.Write(i); } else { Response.Write("invlido"); }

18

22/10/2009

Array

um tipo que permite o armazenamento de uma coleo de valores de um mesmo tipo. Arrays so indexados a partir de zero (0). No podem ter seu tamanho alterado depois de instanciados.

Para

declarar um Array, basta adicionar um par de colchetes logo aps a declarao do tipo dos elementos individuais
int[] meuVetorDeInteiros; string[] meuVetorDeStrings;

Instanciando

arrays

int[] codigos = new int[5]; string[] nomes = new string[100]; object[] produtos = new object[50]; int[] pedidos = {1, 4, 6, 8, 10, 68, 90, 98, 182, 500};

Preenchendo

um array

nomes[0] = "Jos"; nomes[1] = "Joo";

19

22/10/2009

Podem

ser:
int[] codigos = {1,3,6,7,8};

Unidimensionais:
int[] codigos = new int[5]; codigos[0] = 1;

Multidimensionais:

Retangular ou matriz:
int[,] codigos = {{11,42},{35,44}};

int[,] codigos = new int[2,2]; codigos[0,0] = 11;

Jagged: array de arrays.

int[][] codigos = new int[2][]; codigos[0] = new int[2]; codigos[0][0] = 11; int[][] codigos = { new int[]{11,42}, new int[]{35,44} };

foreach

Esta estrutura de repetio uma variao do for. Especifica uma varivel auxiliar e a coleo ou array cujos elementos sero percorridos.

int[] i = { 1, 3, 5, 7, 9 }; foreach (int j in i) { Response.Write(j); Response.Write("<br />"); }

20

22/10/2009

Definindo

Tipos Enumerados

// Declarando enum DiasUteis { Segunda, Terca, Quarta, Quinta, Sexta }

... // Instanciando DiasUteis du = DiasUteis.Sexta;

// Imprime "Sexta" Response.Write(du);

Declarando

um namespace

namespace Cadastro { public class Cliente {} }

Namespaces

em cadeia

namespace Cadastro.Telas { public class TelaCliente {} }

Instruo

Using
using using using using System; System.Data; Cadastro.Telas; Pessoa = Cadastro.Cliente;

21

22/10/2009

Criando

comentrios e regies:

// Comentrio de uma linha

/* Comentrio com mais de uma linha */

/// <summary> /// Documentao XML /// </summary> private int Atributo;

#region Regio private int Atributo1; private int Atributo2; #endregion

22

22/10/2009

23