Top Banner
Gabriel Guilherme 03/2010 Microsoft .NET Framework Foundation Programming
55
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: dotNet framework foundation

Gabriel Guilherme03/2010

Microsoft .NET Framework Foundation Programming

Page 2: dotNet framework foundation

Quem sou.

Introdução.O que é .Net framework.Visual Studio.

Aula 01 Value types e Reference types. Streams. Exceptions. Collections. Classes, Herança e Interface. Partial classes. Generics. Delegates.

Aula 2. I/O Streams Directory and File Class FileWatcher Compressing Streams Isolated Storage Serialização (Binary / XML )

Aula 03 Threads Lock, mutex, sharing data Thread Pool Delegates assincronos

Aula 04 Configurando aplicações .NET Publicando aplicações .NET Event LogEncrypt and Decrypt Interoperabilidade (Unmanaged code) COM e COM+ (Importação de tipos)Reflection

AGENDA

Page 3: dotNet framework foundation

Gabriel Guilherme

Formação acadêmica. Pós graduação em Arquitetura de TI, FIAP. Graduado em ciência da computação, Anhembi Morumbi. Técnico em Telecomunicações, Colégio técnico Oswaldo Cruz.

Experiência profissional. Coordenador de Pesquisa & Desenvolvimento, Wittel Comunicações. 7 anos trabalhando com desenvolvimento e integração de softwares / sistemas de telecomunicações (IVR, WFM, CTI, Softphones e PBX).

Certificações (MCP ID: 6711820).Microsoft Certified Professional Developer - Web Developer.Microsoft Certified Technology Specialist - .NET Framework 2.0: Distributed Applications.Microsoft Certified Technology Specialist - .NET Framework 2.0: Web Applications.Microsoft Certified Professional - .NET Framework 2.0: Foundations.

QUEM SOU ?

Page 4: dotNet framework foundation

Ambiente de execução de software para plataforma Microsoft Windows

Runtime Environment (Common Language Runtime / Common Language Infrastructure)

JIT (Just-In-Time)

Gerenciamento de Memória (Garbage Collector) , Tratamento de exceções, Gerenciamento de Threads e Bibliotecas básicas.

O que é o .NET Framework ?

Page 5: dotNet framework foundation

O .NET Framework

Page 6: dotNet framework foundation

IDE de desenvolvimento

Compilador

Linker

Visual Debugger

Visual Studio

Page 7: dotNet framework foundation

Aula 1

Page 8: dotNet framework foundation

Tipos de dados nativos (Built-in types)

Tipos definidos pelo programador (User defined types)

Enumerations

Value Types

Todos os tipos tem como base System.Object

Todos os Value Types são allocados em uma área de memória chamada Heap

Page 9: dotNet framework foundation

Tipo(Visual Basic/C# )

Bytes Alcance Uso

System.SByte(SByte/sbyte)

1 –128 to 127 Bytes com sinal

System.Byte(Byte/byte)

1 0 to 255 Bytes sem sinal (apenas positivos)

System.Int16(Short/short)

2 –32768 To 32767 Interoperabilidade

System.Int32(Integer/int)

4 –2147483648 to 2147483647 Números interiros e contadores

System.Int64(Long/long)

8–9223372036854775808

To9223372036854775807

Números inteiros (Muito grandes)

System.Single(Single/float)

4–3.402823E+38

To3.402823E+38

Números de ponto flutuante

System.Double(Double/double)

8–1.79769313486232E+308

To1.79769313486232E+308

Números de ponto flutuante com precisão

System.Decimal(Decimal/decimal) 16

-79228162514264337593543950335 To

79228162514264337593543950335

Calculos cientificos e financeiros querequerem muita precisão

Value Types

Page 10: dotNet framework foundation

Tipo(Visual Basic/C# )

Bytes Alcance Uso

System.Char(Char/char)

2 N/A Um caracter unicode

System.Boolean(Boolean/bool)

4 N/A True / Falso

System.IntPtr (none)Depende da plataforma

N/A Endereço de memória

System.DateTime(Date/date)

8

1/1/000112:00:00 AM

to12/31/999911:59:59 PM

Tempo (horas, dias, minutos e etc)

Value Types

Dica para desempenho.

Para contadores e valores númericos comum, utilize o System.Int32 ou System.UInt32

Para números de ponto flutuante utilize o System.Double.

Page 11: dotNet framework foundation

Value Types

Declarando Value Types

Nullable

Definindo uma Enumeração

Page 12: dotNet framework foundation

Value Types

Definindo uma Struct

Utilizando a Struct

Page 13: dotNet framework foundation

Reference Types

Tudo que não deriva de System.ValueType é um Reference Type.

Reference Types armazenam os endereços de memória (ponteiros) de onde estão seus repectivos valores na área de memória chamada stack. E os valores propriamente ditos em uma área de memória chamada heap.

Page 14: dotNet framework foundation

Reference Types

Tipo(Visual Basic/C# )

Uso

System.Object(Object/object)

É o tipo mais genérico do framework, ou seja, é possível converter qualquer tipo Object. Também é o detentor dos metódos ToString(),

GetType() e Equals().

System.String(String/string)

Texto

System.Text.StringBuilder(StringBuilder)

Textos dinâmicos

System.ArrayColeções básicas de dados. Cada linguaguem possuei seu modelo de

declaração arrays.

System.IO.Stream Buffers de I/O para arquivos, dispositivos, e rede. (Classe abstrata)

System.Exception Identificador de exceções (erros) do aplicações / framework.

Page 15: dotNet framework foundation

Reference Types

Strings e String Builders.

Arrays.

Streams.

Page 16: dotNet framework foundation

Tipos de Strems (System.IO) Uso

FileStream Meio de acesso para arquivos. Criação, leitura, escrita e etc.

MemoryStream Cria um buffer de memória para escrita e leitura.

StreamReader Lê dados de um stream qualquer.

StreamWriter Escreve dados em um stream qualquer.

Streams

Streams podem ser definidos como regiões de memória para armazenamento temporário (Buffers).

Os tipos mais comuns de streams estão listados na tabela a seguir.

Page 17: dotNet framework foundation

Exceptions

Trabalhando com exceções.

Page 18: dotNet framework foundation

Class e Partial Class

Classes são representações lógicas de entidades (coisas dos mundo real).

O C# por ser uma linguagem de programação orientada a objeto preve que quase todas as ações devem ser feitas através objetos. E objetos não são nada mais do que variáveis (instâncias) do tipo de uma classe.

Partial class é uma classe que foi dividida em mais um arquivo de código.

Page 19: dotNet framework foundation

Herança

Herança consiste na reutilização de código.

O processo para utilizar herança tem como princípio a definição de tipo base comum para uma ou mais entidades (classes).

Page 20: dotNet framework foundation

Interface

Interfaces definem contratos de implementação.

Comumente são utilizados para implementação de componentes ou serviços, para garantir comunicação entre aplicações.

Interface Uso

IComparableComumente implementado por classes que possuem membros que

podem ser ordenados.

IDisposableDefine um metodo que será executado quando um objeto for

destruido.

IConvertiablePermite que classes sejam convertidos para primitivo, como por

exemplo: bool, byte, double e etc.

IEquatable Permite que classe de tipos diferentes.

IFormattable Converte valores de object.

Page 21: dotNet framework foundation

Interface

Page 22: dotNet framework foundation

Delegates

Não é possível falar de delegates sem falar de events. Events são messagens enviadas por um objeto a fim de sinalizar (avisar) um acontencimento.

Delegates são referencias para metódos. Uma boa definição para delegates é a de ponteiros type-safe para funções ou callbacks.

Page 23: dotNet framework foundation

Generics

Generics são indefinições de tipos. (Sim, sei que parece estranho)

Generics permitem que sejam construidas classes que implemente lógicas de manipulação de dados que não estejam presas aos tipos dos dados. Como por exemplo na implementação de uma lista ligada ou de uma Btree.

É interessante utilizar generics para melhorar o desempenho da aplicação, pois com generics não é necessário trabalhar com boxing e unboxing.

Outro ponto positivo para utilização de generics é fato de reduzir os erros em tempo de execução (casting).

List

LinkedList

Queue

Generics são comumente utilizados em coleções como por exemplo:

SortedList

Dictionary

SortedDictoionary

Page 24: dotNet framework foundation

Generics

Page 25: dotNet framework foundation

Boxing / Unboxing

Boxing é processo de transformar um value type em um reference type. E unboxing é o processo contrário.

Page 26: dotNet framework foundation

Implícito

Explícito.

Casting

Page 27: dotNet framework foundation

Aula 2

Page 28: dotNet framework foundation

I/O Stream

I/O streams são streams para acesso a arquivos e diretórios do sistema operacinal ou da rede.

Page 29: dotNet framework foundation

Classe File / Classe Directory

Page 30: dotNet framework foundation

FileInfo / DirectoryInfo e DeviceInfo

As classses FileInfo, DirectoryInfo e DeviceInfo provêm informações sobre arquivos, diretórios e devices respectivamente.

A classe de devices contempla unidades de cd, discos rigidos e unidades de rede.

Page 31: dotNet framework foundation

File Watcher

Page 32: dotNet framework foundation

Compressing Streams

Compressing streams são streams que possuem dados compactados.

Existem dois tipos de compressão disponíveis no .NET Framework:

GZIP: Possuem um pequeno overhead que é util para distribuição de arquivos entre sistemas diferentes. GZIP não é equivalente ao formato ZIP, para trabalhar com arquivos ZIP é recomendado a lib open source DotNetZipLib-DevKit-v1.8.

DEFLATE: Possue uma taxa de compressão maior e é recomendado para utilização em sistemas baseados no .NET Framework.

Page 33: dotNet framework foundation

Isolated Storage

Isolated storage é uma mecanismo que permite que uma aplicação seja executada com privilégiosreduzidos e ainda assim acesse o disco para leitura e gravação. A escrita e leitura ocorrem em regiões segurasgerenciadas pelo .NET Framework, assim impedindo que sejam feitos acessos há arquivos ou diretórios dosistema operacional.

Isolated Storege é dividido em dois grupos: Assembly / Machine: Este gurpo armazena a informação, permitindo acesso para o assembly (DLL /EXE) que solicitou a operação.

Assembly / User: Este grupo armazena a informação, permitindo acesso para o assembly ou para ousuário que solicitou a operação.

Page 34: dotNet framework foundation

Isolated Storage

Page 35: dotNet framework foundation

Serialização

Serialização é o processo de transferir os dados que estão em memória para o disco, para a rede ou para ououtros dispositivos.

Existem três tipos de serialização disponíveis:

Binário: armazena os dados em formato binário.

XML: armazena os dados em formato XML. As tags são definidas conforme a definição da classe.

Personalizado (Custom): permite a definição de quais itens e qual os nomes a serem utilizados noarmazenamento.

Page 36: dotNet framework foundation

Aula 3

Page 37: dotNet framework foundation

Threads

Thread podem ser interpretadas com filas de processamento de instruções. Um programa normalmentealinha todas as instruções em uma única fila, ou seja, por padrão programas são mono-threads.

Iniciar novas threads ajuda no desempenho do software, pois assim tarefas a serem executadas se tornamidenpendentes. Idenpedentes em tudo em tempo de execução, alocação de memória e contexto de execução.

O .NET Framework permite a execução de threads através de novas instâncias da Classe Thread(System.Threading) ou através do ThreadPool.

Page 38: dotNet framework foundation

Sharing data

Como cada nova thread ganha um novo contexto de execução não é possível que uma thread acesse dadosdo contexto de outra thread. Mas é possível que duas thread acessem dados de uma região comum dememória.

Page 39: dotNet framework foundation

Lock / Mutex

É necessário garantir que cada apenas um thread acesse os dados compartilhados por vez.

Page 40: dotNet framework foundation

ThreadPool

Agiliza o inicio de novas thread.

Facilita a alocação de thread.

Facilita a utilização de funções de callback.

Page 41: dotNet framework foundation

Delegates Asynchronous

Abrem novas thread através do threadPool.

Blocos de código curtos e eficazes.

Page 42: dotNet framework foundation

Aula 4

Page 43: dotNet framework foundation

1

2

3

Configurando

Utilizar a opção de resources ou settings evita que seja necessário recompilar sua aplicação, caso haja anecessidade de alterar um valor default.

Page 44: dotNet framework foundation

Configurando

Page 45: dotNet framework foundation

Publicando

Para aplicações simples basta copiar o conteúdo da parta release e executar o programa.

Para aplicações mais complexa é possível criar um instalador.

1

2

3

Page 46: dotNet framework foundation

Publicando

45 6

7

8

Page 47: dotNet framework foundation

Event Log

Utilizado para debug em produção;

Debug rápido e utiliza infra estrutura do sistema operacional;

Não deve ser utilizado como sistema de histórico, apenas para casos pontuais.

Page 48: dotNet framework foundation

Event Log

Page 49: dotNet framework foundation

Crypt and Decrypt Data

Manter dados seguros.

O .NET Framework possue infra estrutura para trabalhar com criptografias de chave publica e criptografia dechave privada.

Criptografia Simetrica Tamanho da chave

RijndaelManaged 128, 256 bits, 32-bit

RC2 Variavel

DES 56 Bits

TripleDES 156 bits

Criptografia Assimetrica Tamanho da chave

RSACryptoServiceProvider -

DSACryptoServiceProvider -

Page 50: dotNet framework foundation

Crypt and Decrypt Data

Page 51: dotNet framework foundation

COM Objects

Page 52: dotNet framework foundation

COM Objects

Page 53: dotNet framework foundation

Interoperabilidade

Execução de código não gerenciado.

Atividades de necessitem de processamento muito veloz.

Manter sistemas legados

Page 54: dotNet framework foundation

Reflection

Descubrir informações em tempo de execução.

Criar código em tempo em execução.

Page 55: dotNet framework foundation

Obrigado!

Avaliação

Por favor, acessem a URL: www.ironlynxpro.com.br/avaliacao

Preencham o formulário de avaliação, isso irá nos ajudar a definir como foi a aceitação do curso e o quepodemos fazer para melhorá-lo.

Por favor, deixem seu email para contato!

Contato: [email protected]