SlideShare uma empresa Scribd logo
1 de 55
Gabriel Guilherme
03/2010
Microsoft .NET Framework Foundation
Programming
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 Log
Encrypt and Decrypt
 Interoperabilidade (Unmanaged code)
 COM e COM+ (Importação de tipos)
Reflection
AGENDA
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 ?
 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 ?
O .NET Framework
 IDE de desenvolvimento
 Compilador
Linker
 Visual Debugger
Visual Studio
Aula 1
 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
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
To
9223372036854775807
Números inteiros (Muito grandes)
System.Single
(Single/float)
4
–3.402823E+38
To
3.402823E+38
Números de ponto flutuante
System.Double
(Double/double)
8
–1.79769313486232E+308
To
1.79769313486232E+308
Números de ponto flutuante com
precisão
System.Decimal
(Decimal/decimal) 16
-79228162514264337593543950335
To
79228162514264337593543950335
Calculos cientificos e financeiros que
requerem muita precisão
Value Types
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/0001
12:00:00 AM
to
12/31/9999
11: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.
Value Types
Declarando Value Types
Nullable
Definindo uma Enumeração
Value Types
Definindo uma Struct
Utilizando a Struct
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.
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.Array
Coleçõ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.
Reference Types
 Strings e String Builders.
 Arrays.
 Streams.
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.
Exceptions
 Trabalhando com exceções.
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.
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).
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
IComparable
Comumente implementado por classes que possuem membros que
podem ser ordenados.
IDisposable
Define um metodo que será executado quando um objeto for
destruido.
IConvertiable
Permite 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.
Interface
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.
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
Generics
Boxing / Unboxing
 Boxing é processo de transformar um value type em um reference type. E unboxing é o processo contrário.
 Implícito
Explícito.
Casting
Aula 2
I/O Stream
 I/O streams são streams para acesso a arquivos e diretórios do sistema operacinal ou da rede.
Classe File / Classe Directory
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.
File Watcher
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.
Isolated Storage
 Isolated storage é uma mecanismo que permite que uma aplicação seja executada com privilégios
reduzidos e ainda assim acesse o disco para leitura e gravação. A escrita e leitura ocorrem em regiões seguras
gerenciadas pelo .NET Framework, assim impedindo que sejam feitos acessos há arquivos ou diretórios do
sistema 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 o
usuário que solicitou a operação.
Isolated Storage
Serialização
 Serialização é o processo de transferir os dados que estão em memória para o disco, para a rede ou para ou
outros 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 no
armazenamento.
Aula 3
Threads
 Thread podem ser interpretadas com filas de processamento de instruções. Um programa normalmente
alinha 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 tornam
idenpendentes. 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.
Sharing data
 Como cada nova thread ganha um novo contexto de execução não é possível que uma thread acesse dados
do contexto de outra thread. Mas é possível que duas thread acessem dados de uma região comum de
memória.
Lock / Mutex
 É necessário garantir que cada apenas um thread acesse os dados compartilhados por vez.
ThreadPool
 Agiliza o inicio de novas thread.
 Facilita a alocação de thread.
 Facilita a utilização de funções de callback.
Delegates Asynchronous
 Abrem novas thread através do threadPool.
 Blocos de código curtos e eficazes.
Aula 4
1
2
3
Configurando
 Utilizar a opção de resources ou settings evita que seja necessário recompilar sua aplicação, caso haja a
necessidade de alterar um valor default.
Configurando
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
Publicando
4
5 6
7
8
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.
Event Log
Crypt and Decrypt Data
 Manter dados seguros.
 O .NET Framework possue infra estrutura para trabalhar com criptografias de chave publica e criptografia de
chave 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 -
Crypt and Decrypt Data
COM Objects
COM Objects
Interoperabilidade
 Execução de código não gerenciado.
 Atividades de necessitem de processamento muito veloz.
 Manter sistemas legados
Reflection
 Descubrir informações em tempo de execução.
 Criar código em tempo em execução.
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 que
podemos fazer para melhorá-lo.
Por favor, deixem seu email para contato!
Contato: gabriel@cppcoder.com

Mais conteúdo relacionado

Mais procurados (20)

O modelo osi
O modelo osiO modelo osi
O modelo osi
 
Modelo osi visão geral
Modelo osi   visão geralModelo osi   visão geral
Modelo osi visão geral
 
Modelo de Referência OSI
Modelo de Referência OSIModelo de Referência OSI
Modelo de Referência OSI
 
Icc: primeiro trabalho do modelo OSI
Icc: primeiro trabalho do modelo OSIIcc: primeiro trabalho do modelo OSI
Icc: primeiro trabalho do modelo OSI
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
As camadas do modelo OSI
As camadas do modelo OSIAs camadas do modelo OSI
As camadas do modelo OSI
 
Pilha de protocolos
Pilha de protocolosPilha de protocolos
Pilha de protocolos
 
Camadas osi redes
Camadas osi   redesCamadas osi   redes
Camadas osi redes
 
O que é um protocolo de rede
O que é um protocolo de redeO que é um protocolo de rede
O que é um protocolo de rede
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Camada OSI e TCP/IP Resumo
Camada OSI e TCP/IP ResumoCamada OSI e TCP/IP Resumo
Camada OSI e TCP/IP Resumo
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Apostilaredes
ApostilaredesApostilaredes
Apostilaredes
 
Protocolos Osi Tcp Ip 2009 10 09
Protocolos Osi   Tcp Ip 2009 10 09 Protocolos Osi   Tcp Ip 2009 10 09
Protocolos Osi Tcp Ip 2009 10 09
 
Modelo osi ficha de leitura
Modelo osi   ficha de leituraModelo osi   ficha de leitura
Modelo osi ficha de leitura
 
ICC : modelo OSI
ICC : modelo OSIICC : modelo OSI
ICC : modelo OSI
 
Modelo OSI - Camada 6
Modelo OSI - Camada 6Modelo OSI - Camada 6
Modelo OSI - Camada 6
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Icc modelos de osi claudio e mika 8ºh
Icc modelos de osi claudio e mika 8ºhIcc modelos de osi claudio e mika 8ºh
Icc modelos de osi claudio e mika 8ºh
 
Redes de Computadores - Modelo de Referência OSI/ISO
Redes de Computadores - Modelo de Referência OSI/ISORedes de Computadores - Modelo de Referência OSI/ISO
Redes de Computadores - Modelo de Referência OSI/ISO
 

Semelhante a dotNet framework foundation

Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...veruzkavaz
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...veruzkavaz
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Windows Vista - Arthur Duarte Rosa - Henrique Bueno
Windows Vista - Arthur Duarte Rosa - Henrique BuenoWindows Vista - Arthur Duarte Rosa - Henrique Bueno
Windows Vista - Arthur Duarte Rosa - Henrique BuenoAnderson Favaro
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 
Fundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiFundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiMario Alex
 
26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osiJobert Abrahão
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realRogério Cardoso
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
Mini curso redes_computadores
Mini curso redes_computadoresMini curso redes_computadores
Mini curso redes_computadoreselgi.elgi
 

Semelhante a dotNet framework foundation (20)

Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Windows Vista - Arthur Duarte Rosa - Henrique Bueno
Windows Vista - Arthur Duarte Rosa - Henrique BuenoWindows Vista - Arthur Duarte Rosa - Henrique Bueno
Windows Vista - Arthur Duarte Rosa - Henrique Bueno
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Fundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiFundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osi
 
26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi
 
Portifolio
PortifolioPortifolio
Portifolio
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Resumo c#
Resumo c#Resumo c#
Resumo c#
 
Apostila de-vb-net
Apostila de-vb-netApostila de-vb-net
Apostila de-vb-net
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo real
 
Aula1
Aula1Aula1
Aula1
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Windows Vista , Seven , Server 2008 r2
Windows Vista , Seven , Server 2008 r2Windows Vista , Seven , Server 2008 r2
Windows Vista , Seven , Server 2008 r2
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Mini curso redes_computadores
Mini curso redes_computadoresMini curso redes_computadores
Mini curso redes_computadores
 

dotNet framework foundation

  • 1. Gabriel Guilherme 03/2010 Microsoft .NET Framework Foundation Programming
  • 2. 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 Log Encrypt and Decrypt  Interoperabilidade (Unmanaged code)  COM e COM+ (Importação de tipos) Reflection AGENDA
  • 3. 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 ?
  • 4.  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 ?
  • 6.  IDE de desenvolvimento  Compilador Linker  Visual Debugger Visual Studio
  • 8.  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
  • 9. 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 To 9223372036854775807 Números inteiros (Muito grandes) System.Single (Single/float) 4 –3.402823E+38 To 3.402823E+38 Números de ponto flutuante System.Double (Double/double) 8 –1.79769313486232E+308 To 1.79769313486232E+308 Números de ponto flutuante com precisão System.Decimal (Decimal/decimal) 16 -79228162514264337593543950335 To 79228162514264337593543950335 Calculos cientificos e financeiros que requerem muita precisão Value Types
  • 10. 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/0001 12:00:00 AM to 12/31/9999 11: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.
  • 11. Value Types Declarando Value Types Nullable Definindo uma Enumeração
  • 12. Value Types Definindo uma Struct Utilizando a Struct
  • 13. 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.
  • 14. 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.Array Coleçõ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.
  • 15. Reference Types  Strings e String Builders.  Arrays.  Streams.
  • 16. 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.
  • 18. 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.
  • 19. 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).
  • 20. 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 IComparable Comumente implementado por classes que possuem membros que podem ser ordenados. IDisposable Define um metodo que será executado quando um objeto for destruido. IConvertiable Permite 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.
  • 22. 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.
  • 23. 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
  • 25. Boxing / Unboxing  Boxing é processo de transformar um value type em um reference type. E unboxing é o processo contrário.
  • 28. I/O Stream  I/O streams são streams para acesso a arquivos e diretórios do sistema operacinal ou da rede.
  • 29. Classe File / Classe Directory
  • 30. 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.
  • 32. 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.
  • 33. Isolated Storage  Isolated storage é uma mecanismo que permite que uma aplicação seja executada com privilégios reduzidos e ainda assim acesse o disco para leitura e gravação. A escrita e leitura ocorrem em regiões seguras gerenciadas pelo .NET Framework, assim impedindo que sejam feitos acessos há arquivos ou diretórios do sistema 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 o usuário que solicitou a operação.
  • 35. Serialização  Serialização é o processo de transferir os dados que estão em memória para o disco, para a rede ou para ou outros 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 no armazenamento.
  • 37. Threads  Thread podem ser interpretadas com filas de processamento de instruções. Um programa normalmente alinha 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 tornam idenpendentes. 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.
  • 38. Sharing data  Como cada nova thread ganha um novo contexto de execução não é possível que uma thread acesse dados do contexto de outra thread. Mas é possível que duas thread acessem dados de uma região comum de memória.
  • 39. Lock / Mutex  É necessário garantir que cada apenas um thread acesse os dados compartilhados por vez.
  • 40. ThreadPool  Agiliza o inicio de novas thread.  Facilita a alocação de thread.  Facilita a utilização de funções de callback.
  • 41. Delegates Asynchronous  Abrem novas thread através do threadPool.  Blocos de código curtos e eficazes.
  • 43. 1 2 3 Configurando  Utilizar a opção de resources ou settings evita que seja necessário recompilar sua aplicação, caso haja a necessidade de alterar um valor default.
  • 45. 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
  • 47. 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.
  • 49. Crypt and Decrypt Data  Manter dados seguros.  O .NET Framework possue infra estrutura para trabalhar com criptografias de chave publica e criptografia de chave 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 -
  • 53. Interoperabilidade  Execução de código não gerenciado.  Atividades de necessitem de processamento muito veloz.  Manter sistemas legados
  • 54. Reflection  Descubrir informações em tempo de execução.  Criar código em tempo em execução.
  • 55. 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 que podemos fazer para melhorá-lo. Por favor, deixem seu email para contato! Contato: gabriel@cppcoder.com