Intodução a C# Tecnologias Web

55

description

Intodução a C# Tecnologias Web. Enrique Pimentel Leite de Oliveira [email protected]. Agenda. Introdução a plataforma .Net Processo de compilação O que é o C#? Sintaxe do C# Variáveis Constantes Tipos de Dados Simples e Complexos Operadores Estruturas de Decisão e Laços - PowerPoint PPT Presentation

Transcript of Intodução a C# Tecnologias Web

Page 1: Intodução a C# Tecnologias Web
Page 2: Intodução a C# Tecnologias Web

Intodução a C#Tecnologias Web

Enrique Pimentel Leite de Oliveira

[email protected]

Page 3: Intodução a C# Tecnologias Web

Agenda• Introdução a plataforma .Net• Processo de compilação• O que é o C#?• Sintaxe do C#• Variáveis• Constantes• Tipos de Dados Simples e Complexos• Operadores• Estruturas de Decisão e Laços• POO no C#

Page 4: Intodução a C# Tecnologias Web

Visão Geral da plataforma .NET• Desafios

– Integração entre aplicações;– Comunicação entre diferentes plataformas, dispositivos de

hardware, sistemas operacionais e linguagens de programação.• Características

– Plataforma de desenvolvimento de aplicações (Windows e Web) que possui um ambiente único de execução e gerenciamento (CLR);

– Permite a interoperabilidade entre as linguagens;– Definida sobre os padrões e protocolos como: XML, WSDL,

SOAP e HTTP;

Page 5: Intodução a C# Tecnologias Web

Visão Geral da plataforma .NET• Características

– Plataforma de desenvolvimento de aplicações (GUI e Web) que possui um ambiente único de execução e gerenciamento de código (CLR);

– Independência de sistema operacional e linguagens de programação;

– Capacidade de interoperabilidade entre as linguagens;

– Definida sobre os padrões e protocolos como: XML, WSDL, SOAP e HTTP;

Page 6: Intodução a C# Tecnologias Web

.NET Framework• Coração da plataforma

– Suporta o desenvolvimento de aplicações orientado à objetos e Internet;

– Modelo unificado de programação;– Formada por uma grande biblioteca de códigos

reutilizáveis;– Responsável pela execução, gerenciamento e

segurança do código;• Principais módulos

– Common Language Runtime (CLR);– .Net Base Class Library

Page 7: Intodução a C# Tecnologias Web

.NET Framework• Arquitetura da .NET Framework

Page 8: Intodução a C# Tecnologias Web

Introdução a plataforma .NET

Base Class Library

Common Language Specification

Common Language Runtime

Data and XML

VB C++ C#

Visu

al S

tud

io.N

ET

ASP.NET

JScript …

Windows Forms

Page 9: Intodução a C# Tecnologias Web

Utilizando Classes da Framework

System

System.Data System.Xml

System.Web

GlobalizationDiagnosticsConfigurationCollections

ResourcesReflectionNetIO

ThreadingTextServiceProcessSecurity

DesignADO

SQLTypesSQL

XPathXSLT

RuntimeInteropServicesRemotingSerialization

Serialization

Configuration SessionStateCaching Security

ServicesDescriptionDiscoveryProtocols

UIHtmlControlsWebControls

System.Drawing

ImagingDrawing2D

TextPrinting

System.Windows.Forms

Design ComponentModel

Page 10: Intodução a C# Tecnologias Web

CLR• Ambiente de execução das aplicações responsável

pelo gerenciamento do código .NET• Características

– Compilação do código fonte para IL (Intermediate Language);

– Utilização de compilador JIT (Just-in-Time) para converte código IL em código nativo;

– Suporte e Integração entre as múltiplas linguagens;– Segurança de código;– Gerenciamento do ciclo de vida dos objetos (Garbage

Collector);– Componentes audescritivos (assembly);

Page 11: Intodução a C# Tecnologias Web

Compilação na plataformaCompilação na plataforma• Processo de compilação e execução

Assembly

Page 12: Intodução a C# Tecnologias Web

Compilação na plataforma• Processo de compilação e execução

Assembly

Page 13: Intodução a C# Tecnologias Web

O que é o C#?• Uma das linguagens que podem ser usadas para

criar aplicativos executados no .NET CLR• É uma evolução das linguagens C e C++• Criada especificamente para a plataforma .NET• Projetada para utilizar os melhores recursos de

outras linguagens e resolver problemas dessas linguagens

• É a pioneira das linguagens projetadas para o .NET Framework

Page 14: Intodução a C# Tecnologias Web

Características do C#• Completamente orientada a objetos

– Suporta interfaces, sobrecarga, herança, atributos, propriedades, coleções, etc.

– Tudo é um objeto (System.Object)• Fortemente Tipada• Gera código gerenciado• Suporte a código legado (COM e DLL’s)• Permite desenvolver código não gerenciado

Page 15: Intodução a C# Tecnologias Web

Sintaxe C# Básica• Semelhante ao C++ e Java• Compilador ignora espaços, quebra de linha e

caracteres de tabulação• C# é uma linguagem estruturada em blocos. Esses

blocos são delimitados por chaves (“{” e “}”)• C# diferencia maiúsculas e minúsculas• Comentários:

– Linha: iniciar a linha com “//”– Bloco: iniciar o bloco com “/*” e finalizar com “*/”

Page 16: Intodução a C# Tecnologias Web

Variáveis• Regras de Nomenclatura

– O primeiro caractere deve ser uma letra ou um sublinhado (“_”) ou “@”

– Os caracteres subseqüentes podem ser letras, sublinhados ou números

• Declaração– <tipo> <nome>;int idade;

• Atribuição– Utiliza-se o operador de atribuição (=)idade = 26;

Page 17: Intodução a C# Tecnologias Web

Constantes• Nativas

– null– true– false

• Definidas pelo programador– const <tipo> <nome> = <valor>;const string myString = “.NET”;

Page 18: Intodução a C# Tecnologias Web

Tipos SimplesTipo Apelido de Valores Permitidos

sbyte System.SByte -128 a 127

byte System.Byte 0 a 255

short System.Int16 -32768 a 32767

ushort System.UInt16 0 a 65535

int System.Int32 -2147483648 a 2147483647

uint System.UInt32 0 a 4294967295

long System.Int64-9223372036854775808 a 9223372036854775807

ulong System.UInt64 0 a 18446744073709551615

Page 19: Intodução a C# Tecnologias Web

Tipos SimplesTipo Apelido de Valores Permitidos

float System.Single 1,5x10-45 a 3,4x1038

double System.Double 5,0x10-324 a 1,7x10308

decimal System.Decimal 1,0x10-28 a 7,9x1028

char System.Char Caracteres Single Unicode (0 a 65535)

bool System.Boolean true ou false

string System.String Uma seqüência de caracteres

Page 20: Intodução a C# Tecnologias Web

Tipos Complexos• Enumerações

– Permite criar um tipo de dado que aceita apenas um valor dentre um conjunto fixo de possibilidades

enum orientacao : byte{

norte = 1,sul = 2,leste = 3,oeste = 4

}orientacao minhaDirecao = orientacao.norte;

Page 21: Intodução a C# Tecnologias Web

Tipos Complexos• Estruturas

– Permite criar um tipo de dado através da combinação de outros tipos de dados simples e complexos

struct rota{

public orientacao direcao;public double distancia;

}rota minhaRota;minhaRota.direcao = orientacao.norte;minhaRota.distancia = 2.5;

Page 22: Intodução a C# Tecnologias Web

Tipos Complexos• Arrays

– São listas indexadas de variáveis– Os membros individuais de um array são

chamados de elementos– Todos os elementos de um array são do mesmo

tipo (tipo-base)– Podemos acessar cada elemento de um array

através de seu índice– Os índices de um array iniciam em 0

Page 23: Intodução a C# Tecnologias Web

Tipos Complexos• Declaração de Arrays

int[] myArray;

• Declaração e Inicialização de Arraysint[] myArray = {1,2,3,4,5};

int[] myArray = new int[5];

int[] myArray = new int[3] {1,2,3};

Page 24: Intodução a C# Tecnologias Web

Modificadores de acesso• O membros das classes podem ser definidos utilizando um dos

seguintes modificadores de acesso:

Palavra-chave Significado

public Membro acessível de qualquer código

privateMembro acessível apenas para o código da classe em que ele é definido

internalMembro acessível apenas para o código do projeto (assembly) em que ele é definido

protectedMembro acessível apenas para o código da classe em que ele é definido ou uma classe derivada

Page 25: Intodução a C# Tecnologias Web

Operadores Aritméticos• Unários – atuam sobre apenas um operando

– Menos unário (-): multiplica o operando por -1• A expressão -x equivale a x = x * (-1)

– Decremento (--): decrementa o operando em uma unidade• A expressão x-- equivale a x = x – 1

– Incremento (++): incrementa o operando em uma unidade• A expressão x++ equivale a x = x + 1

Page 26: Intodução a C# Tecnologias Web

Operadores Aritméticos• Binários – atuam sobre dois operandos

– Adição (+)– Subtração (-)– Multiplicação (*)– Divisão (/)– Modulus (%)

Exemplos:• x = 10 + 5; x igual a 15• x = 10 - 5; x igual a 5• x = 10 * 5; x igual a 50• x = 10 / 5; x igual a 2• x = 11 % 5; x igual a 1

Page 27: Intodução a C# Tecnologias Web

Operadores Relacionais• São usados para comparar expressões e

resultam em falso ou verdadeiro– Igual a (==)– Maior que (>)– Menor que (<)– Maior ou igual a (>=)– Menor ou igual a (<=)– Diferente de (!=)

Exemplos:• 1 == 1 retorna verdadeiro• 2 > 1 retorna

verdadeiro• 2 < 1 retorna falso• 2 >= 1 retorna verdadeiro• 2 <= 2 retorna verdadeiro• 2 != 2 retorna falso

Page 28: Intodução a C# Tecnologias Web

Operadores Lógicos• Binários

– Operador AND (&&)• Resulta em verdadeiro se ambas expressões forem verdadeiras

– Operador OR (||)• Resulta em verdadeiro se pelo menos uma expressão for

verdadeira

• Unários– Operador NOT (!)

• Resulta em verdadeiro se a expressão for falsa

Page 29: Intodução a C# Tecnologias Web

A instrução if

if(var1 < var2)

Console.WriteLine(“var1 < var2”);

else

if(var1 == var2)

Console.WriteLine(“var1 == var2”);

else

Console.WriteLine(“var1 > var2”);

Page 30: Intodução a C# Tecnologias Web

A instrução switchswitch(x){

case 1:Console.WriteLine(“x igual a 1”);break;

case 2:Console.WriteLine(“x igual a 2”);break;

default:Console.WriteLine(“x diferente de 1 e

2”);break;

}

Page 31: Intodução a C# Tecnologias Web

Laço forint i;

for(i=0; i <= 10; i++)

{

Console.WriteLine(“{0}\n”, i);

}

Page 32: Intodução a C# Tecnologias Web

Laço whileint i = 0;

while(i <= 10)

{

Console.WriteLine(“{0}\n”, i++);

}

Page 33: Intodução a C# Tecnologias Web

Laço foreachstring Amigos[] = {“Pedro”, “Antonio”};

foreach(string Amigo in Amigos)

{

Console.WriteLine(Amigo);

}

Page 34: Intodução a C# Tecnologias Web

Classes• Classes organizadas dentro de namespaces

namespace Demo{

class MyClass{

//membros da classe}

}

Page 35: Intodução a C# Tecnologias Web

Modificadores de AcessoModificador Significado

none ou internal A classe é acessível apenas dentro do projeto atual

public A classe é acessível de qualquer lugar

abstractA classe é acessível apenas do projeto atual, não podendo ser instanciada, apenas derivada

public abstractA classe é acessível de qualquer lugar, não podendo ser instanciada, apenas derivada

sealedA classe é acessível apenas do projeto atual, não podendo ser derivada, apenas instanciada

public sealedA classe é acessível de qualquer lugar, não podendo ser derivada, apenas instanciada

Page 36: Intodução a C# Tecnologias Web

Construtores• Mesmo nome da classe• Sem tipo de retorno• Podem ter ou não ter argumentos

class MyClass{

public MyClass() { ... }public MyClass(string Title) { ... }

}

Page 37: Intodução a C# Tecnologias Web

Destrutores• Não é invocado assim que paramos de usar

o objeto

class MyClass{

~MyClass(){

//corpo do destrutor}

}

Page 38: Intodução a C# Tecnologias Web

Criação de Objetos

public class MyClass{//membros da classe

}

MyClass obj;obj = new MyClass();

MyClass obj = new MyClass(“Título”);

Page 39: Intodução a C# Tecnologias Web

Declaração de métodosDeclaração de métodos• Sempre devem estar dentro de uma classe.

• Sintaxe semelhante ao C/C++

• Suportam sobrecarga (overloading)

• Sintaxe:modificador tipo Nome_Método(parâmetros)modificador tipo Nome_Método(parâmetros){{

// Processamento do método// Processamento do método}}

Page 40: Intodução a C# Tecnologias Web

Métodos - Exemplopublic class MyHelloWorld {

...public virtual void SayHello(){ ... }private void SetTitle(String Title){ ... }

}

Page 41: Intodução a C# Tecnologias Web

Modificadores - Métodos• Principais modificadores utilizados para métodos em C#

são:Palavra-chave Significado

virtual Método pode ser sobrescrito

abstractMétodo deve ser sobrescrito (permitido apenas em classes abstratas)

overrideMétodo se sobrepõe a um método da classe-base (deve ser utilizado se um método estiver sendo sobrescrito)

externUtilizado para indicar que a implementação do método é externa. Normalmente utilizada quando métodos de DLL’s são importados

Maiores detalhes, procure no Help do VS.NET por methods [C#]

Page 42: Intodução a C# Tecnologias Web

Parâmetros de Métodos• São valores que são passados para o método, para que o

mesmo faça algum processamento.

• Sintaxe:

public int Soma(int Num1, int Num2)public int Soma(int Num1, int Num2){{

return (Num1 + Num2);return (Num1 + Num2);}}

modificador tipo método(tipo parametro1, tipo modificador tipo método(tipo parametro1, tipo parametro2, ...tipo parametroN)parametro2, ...tipo parametroN)

• Exemplo de declaração de método

Page 43: Intodução a C# Tecnologias Web

Chamada de MétodosChamada de Métodos• Exemplo:

......int num1 = 10;int num1 = 10;int num2 = 20;int num2 = 20;Operacoes s = new Operacoes();Operacoes s = new Operacoes();// Chamada do método soma// Chamada do método soma// Dentro da chamada de Console.WriteLine()// Dentro da chamada de Console.WriteLine()Console.WriteLine(s.Soma(num1,num2));Console.WriteLine(s.Soma(num1,num2));......

Page 44: Intodução a C# Tecnologias Web

Tipos de Parâmetros• Por valor• Por referência

– ref: parâmetro de entrada e saída. Parâmetro deve ser inicializado antes de ser passado.

– out: parâmetro de saída. Similiar ao ref, porém não precisa ser inicializado.

public void func1(int x){ ... }public void func2(out int x){ ... }public void func3(ref int x){ ... }

Page 45: Intodução a C# Tecnologias Web

Propriedades• Sintaxe alternativa para acesso aos membros de

dados da classe

public class Veiculo{

private string modelo;

public string Modelo{

get { return modelo; }set { modelo = value; }

}}

Page 46: Intodução a C# Tecnologias Web

Herança• Existe apenas herança simples

public class MyClassBase{

public virtual void Func(){

//Implementação base}

}

public class MyClassDeriv : MyClassBase{

public override sealed void Func(){

//Sobrescreve a implementação base}

}

Page 47: Intodução a C# Tecnologias Web

Herança – cont.• Métodos não são virtuais por padrão

public class MyClassBase {...public virtual void Func() { ... }

}

public class MyClassDeriv : MyClassBase {...public override void Func(){

base.Func();}

}

Page 48: Intodução a C# Tecnologias Web

Exercícios C#1. Criar uma calculadora com as 4 operações

básicas;

2. Incrementar o exercício anterior incluindo raiz quadrada;

3. Separar a calculadora em 2 classes de modo que o código possa ser reutilizado em outros projetos.

Page 49: Intodução a C# Tecnologias Web

Exercícios C#4. Criar uma aplicação que receba uma string do

usuário e exiba na tela a string invertida; 5. Criar uma classe chamada SwapClass, a qual

possui um método estático chamado Swap que recebe dois parâmetros inteiros, passados por referência e executa a troca dos valores. No clique de uma botão, invoque o método estático e exiba o resultado na tela.

Page 50: Intodução a C# Tecnologias Web

Exercício C#6. Escreva um programa que defina a classe-

base, MyClass, com o método virtual GetString(). Este método deverá retornar a string armazenada no atributo protegido myString, acessível através da propriedade pública de somente escrita ConteinedString.

Page 51: Intodução a C# Tecnologias Web

Exercício C#7. Criar uma classe derivada de MyClass,

MyDerivedClass, sobrescrever o método GetString(), utilizando a implementação base do método, porém com a adição do texto: "(saída da classe derivada)". Criar um construtor para a classe derivada que permita atribuir uma string inicial ao atributo myString.

– Criar uma classe para testar a implementação da classe derivada.

Page 52: Intodução a C# Tecnologias Web

Conversão de tiposComando Resultado

Convert.ToBoolean(val) val é convertido para bool.

Convert.ToByte(val) val é convertido para byte.

Convert.ToChar(val) val é convertido para char.

Convert.ToDecimal(val) val é convertido para decimal.

Convert.ToDouble(val) val é convertido para double.

Convert.ToInt16(val) val é convertido para short.

Convert.ToInt32(val) val é convertido para int.

Convert.ToInt64(val) val é convertido para long.

Convert.ToSByte(val) val é convertido para sbyte.

Convert.ToSingle(val) val é convertido para float.

Convert.ToString(val) val é convertido para string.

Convert.ToUInt16(val) val é convertido para ushort.

Convert.ToUInt32(val) val é convertido para uint.

Convert.ToUInt64(val) val é convertido para ulong.

Page 53: Intodução a C# Tecnologias Web

BibliografiasBibliografias• MSDN Library

– http://msdn.microsoft.com/library• .NET framework center

– http://msdn.microsoft.com/netframework/• C#

– http://msdn.microsoft.com/vcsharp/• ASP.NET

– http://www.asp.net• Laboratório .NET do ISEP/IPP

– http://www.dei.isep.ipp.pt/labdotnet/

Page 54: Intodução a C# Tecnologias Web

BibliografiasBibliografias• ECMA

– http://www.ecma-international.org/• Introduction to C# @ ECMA

– http://www.ecma-international.org/activities/Languages/Introduction%20to%20Csharp.pdf

• Common Language Infrastructure @ ECMA– http://www.ecma-international.org/activities/

Languages/ECMA%20CLI%20Presentation.pdf

Page 55: Intodução a C# Tecnologias Web