intodução a c# tecnologias web
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 PresentationTRANSCRIPT
![Page 1: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/1.jpg)
![Page 3: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/6.jpg)
.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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/7.jpg)
.NET Framework• Arquitetura da .NET Framework
![Page 8: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/11.jpg)
Compilação na plataformaCompilação na plataforma• Processo de compilação e execução
Assembly
![Page 12: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/12.jpg)
Compilação na plataforma• Processo de compilação e execução
Assembly
![Page 13: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/17.jpg)
Constantes• Nativas
– null– true– false
• Definidas pelo programador– const <tipo> <nome> = <valor>;const string myString = “.NET”;
![Page 18: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/31.jpg)
Laço forint i;
for(i=0; i <= 10; i++)
{
Console.WriteLine(“{0}\n”, i);
}
![Page 32: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/32.jpg)
Laço whileint i = 0;
while(i <= 10)
{
Console.WriteLine(“{0}\n”, i++);
}
![Page 33: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/33.jpg)
Laço foreachstring Amigos[] = {“Pedro”, “Antonio”};
foreach(string Amigo in Amigos)
{
Console.WriteLine(Amigo);
}
![Page 34: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/34.jpg)
Classes• Classes organizadas dentro de namespaces
namespace Demo{
class MyClass{
//membros da classe}
}
![Page 35: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/35.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/37.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/38.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/39.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/40.jpg)
Métodos - Exemplopublic class MyHelloWorld {
...public virtual void SayHello(){ ... }private void SetTitle(String Title){ ... }
}
![Page 41: Intodução a C# Tecnologias Web](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/42.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/43.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/44.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/45.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/46.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/47.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/48.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/49.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/50.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/51.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/52.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/53.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/54.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022032607/568130e9550346895d97068f/html5/thumbnails/55.jpg)