SlideShare uma empresa Scribd logo
(sc)2                            Introdução ao
1º Simpósio de                        .NET
                                  Framework
Computação do

Sul Capixaba                 System, Console, Drawing,
                             Math, OleDB, Form,
                             Control, DialogResult,
                             DllImport, FileStream,
                             Security, References,
    “Todas as áreas
                             Microsoft, Type,
computando novas idéias”     ComboBox, Main, List,
                             HashTable, Activator,
                             DataSet, DataReader,
                             DateTime.Now, Exception,
                             MessageBox, Application,
                             WebService . . .


                           andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Oque é
   Framework de desenvolvimento

      Windows Forms
      Web Forms
      Web Services
      Console Application
      Class Library
      Windows Service




                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
 .NET Framework consiste em um conjunto de componentes que
  modularizam e simplificam o desenvolvimento de aplicações.




                                      Clientes




                        Desenvolvedores          Servidores
Microsoft
  .NET


                                    Web Services




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   Multiplataforma

      Microsoft .NET Framework
      Mono

   Suporte a várias linguagens de programação

   Encapsulamento o SO através da CLR




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

    .NET Framework

O .NET aceita várias
linguagens de progra-               Linguagens de Programação
mação (C#, VB, C++,
Delphi, entre outras) . As
bibliotecas ( o framework    Framework        Framework         Framework
em si ) possuem uma              1.1              2.0               3.5
grande coleção de classes
que podem ser usadas e
implementadas em sua                        Bibliotecas .NET
aplicação. O CLR é quem
gerencia a execução do
código, juntamente com o            Common Language Runtime
Garbage Collector.

                                          Sistema Operacional


                                         andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
1                  Compilador MSIL
    Código Fonte
     C#, VB, C++                             MSIL Code



2
                     JIT Compiler
                                             Código de
    MSIL Code
                                             Máquina



3
                         CLR
     Código de
     Máquina                                  Aplicação



                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
O .NET Framework está organizado em namespaces, de
modo que cada ferramenta tem sua localização específica

      Microsoft.CSharp
          Ferramentas para compilação e geração de código com o uso da
          linguagem C#
      System
          Tipos fundamentais, interfaces, eventos exceções. É o namespace
          principal
      System.Collections
          Contém interfaces e classes que definem várias coleções de objetos
          tais com Array, Lista, Pilha, dicionários. Também contém
          ferramentas para gerenciamento de listas genéricas
      System.Data
          Prove ferramentas para manipulação de dados de diferentes
          fontes. Constitui a arquitetura do ADO.NET



                                        andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
    System.Drawing
       Classes para trabalhar com gráficos e imagens
    System.IO
       Contém tipos que permitem a manipulação de arquivos de pastas.
       Escrita e leitura;
    System.Net
       Oferece interface de programação para muitos dos protocolos de
       rede hoje disponíveis. Programação de Sockets e requisições Web
       por exemplo
    System.Windows.Forms
       Classes voltadas a criação de aplicações baseadas em windows
    System.Threading
       Prove ferramentas para a programação multi thread. Processos
       simultâneos




                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
    System.Globalization
       Fornece ferramentas para trabalhar com a cultura de onde o
       programa está sendo executado. Informações como língua, moeda,
       calendário e formatações.
    System.Web.Services
       Contém classes que permitem ao desenvolvedor construir e
       desenvolver WebServices.
    System.Timers
       Prove componentes que possibilitam o acionamento de eventos em
       intervalor regulares de tempo




                                    andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
Microsoft Visual Studio

         IDE
         Suporte a várias liguagens
         Criação de instaladores (somente na versão paga)
         Tipos de Aplicações
             Console Application
             Windows Application
             Web Site
             Web Service (somente na versão paga)
             Windows Service (somente na versão paga)
             Class Library


                                       andre.lopes@studentpartners.com.br
Introdução ao .NET Framework



Demo: Conhecendo o Visual
Studio
 Console  Application
 Windows Application
 Class Library
 Project
 Solution
 Debug
 Code Snipeet
   Documentação


                         andre.lopes@studentpartners.com.br
Introdução ao .NET Framework



Demo: Programando com o
Visual Studio
 Console   Application
    Classe Console
    Delegates e Métodos Anônimos
    Unsafe Code
    Extension Methods




                          andre.lopes@studentpartners.com.br
Introdução ao .NET Framework



Demo: Programando com o
Visual Studio
 Windows       Application
    Formulários
      MDI
      SDI
      Design

    Controles
    Tratamento de erros
    Membros estáticos




                              andre.lopes@studentpartners.com.br
Introdução ao .NET Framework



Tarefa: Programando com o
Visual Studio
    Crie uma bibliteca (Class Library) com duas
     entidades Pessoa e Carro. Contendo
      Carro:Marca, Modelo, Ano, Placa
      Pessoa: Nome, CPF, e uma lista de carros

    Ambas as classes tem de ser públicas
    Uma pessoa pode conter até 3 carros
    Nenhuma das classes podem ser herdadas
    Tempo Estimado: 5min




                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework



Tarefa: Programando com o
Visual Studio
   Crie uma aplicação Windows Forms que
    referencie as entidade criadas. E faça seu
    cadastro.
       A Aplicação deve ser MDI
       Os carros já cadastrados devem estar
        disponíveis em uma ComboBox no cadastro de
        pessoas.
       Faça uso de uma classe estática para guardar
        as informações cadastradas
       Ao fechar a aplicação os dados não devem
        ser salvos.
       Tempo Estimado: 25min



                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
     System.Text.StringBuilder
        Resolve o problema da imutabilidade do tipo string,
          gerenciando melhor a memória

StringBuilder sb = new StringBuilder();                 Memória
sb.AppendText(‚Microsoft‛);                          ‚Microsoft‛
sb.AppendText(‚ .Net ‛);                                ‚.Net ‛
sb.AppendText(‚Framework‛);                          ‚Framework‛
                                                   ‚Microsoft .Net Fr‛
string s = sb.ToString();




                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Text.RegularExpressions
      Um método formal de se especificar um padrão de texto.

         Somente números
         Email
         Data/Hora
         IP

      Método complexo, porém rápido de validar valores. Ao invés
       de usar try...cath
                                         Somente Números

            ^d{5}$                      Fim da expressão

                                         5 dígitos
                                     Início da expressão

                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Text.RegularExpressions


          using System;
          using System.Text.RegularExpressions;

          class VarificaPadroes
          {
                 bool ENumero(string texto)
                 {
                         return (new Regex(‚^[0-9]*$‛)
                         ).IsMatch(texto);
                 }
          }


   http://regexlib.com



                                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.DateTime

  DateTime dt = DateTime.Now;

  int dia = dt.Day; int mes = dt.Month; int ano = dt.Year;

  int hora = dt.Hour; int min = dt.Minute;
  int sec = dt.Second;

  dt.ToString(‚dd/MM/yyyy‛)               //19/02/2010

  dt.ToString(‚dd/MM/yyyy HH:mm:ss‛) //19/02/2010 14:30:00




                              andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   GarbageColletor
      Não determinístico

      Retira da memória somente os espaços não utilizados, que
       já estão desvinculados do programa

      GC.Collect();




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   Coleções

      .Net 1.0

        System.Collections

        System.Collections.Specialized

      .Net 2.0

        System.Collections.Generic

      Listas

      Dicionários




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   Interfaces de Coleções


                             IEnumerable




                             ICollection




        IList                                   IDictionary




                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Collections

      ArrayList

         É uma coleção ordenada

         Podemos acessar os elementos usando seu index,
           baseado em zero

         Expande automaticamente quando adicionamos itens

         Sort();

            IComparable

            QuickSort


                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Collections

     //Cria um ArrayList e adiciona objetos
     ArrayList arr = new ArrayList();
     arr.Add(‚Cachoeiro‛);
     arr.Add(‚Alegre‛);
     arr.AddRange(new string[]{‚Vitória‛, ‚Rive‛});

     //Obtem Cachoeiro, Alegre e Vitória
     ArrayList tresPrimeiros = arr.GetRange(0, 3);

     arr.Remove(‚Rive‛);

     object primeiro = arr[0];

     arr.Insert(0, ‚Rio de Janeiro‛);

     arr.Sort();
     arr.Reverse();
     foreach(object item in arrr) { Console.WriteLine(item); }


                                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Collections

      Fila (Queue)
         //Cria uma fila e adiciona objetos
         Queue fila = new Queue();
         fila.Enqueue(‚Item 1‛);
         fila.Enqueue(‚Item 2‛);
         fila.Enqueue(‚Item 3‛);
         fila.Enqueue(‚Item 4‛);

         //Obtém o primeiro item mas não o remove
         object item = fila.Peek();

         //Desenfileira todos os objetos
         while(fila.Count > 0)
         {
                Console.WriteLine(fila.Dequeue());
         }

                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Collections

      Pilha (Stack)
         //Cria uma pilha e adiciona objetos
         Stack pilha = new Stack();
         pilha.Push(‚Item 1‛);
         pilha.Push(‚Item 2‛);
         pilha.Push(‚Item 3‛);
         pilha.Push(‚Item 4‛);

         //Obtém o primeiro item mas não o remove
         object item = pilha.Peek();

         //Desenpilha todos os objetos
         while(fila.Count > 0)
         {
                Console.WriteLine(pilha.Pop());
         }

                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Collections
      Hashtable
         Dicionário de chave/Valor
  //Cria um hashtable e adiciona entradas de chave/valor
  Hashtable Produtos = new Hashtable();
  Produtos.Add(‚Macaxera‛,5.9);
  Produtos.Add(‚Cane de Sol‛, 7.5);
  Produtos.Add(‚Ipioca, 1 Litro‛, 10.0);

  Console.WriteLine(‚Porção do cheff‛)

  foreach(DictionaryEntry entry in Produtos)
  {
         Console.WriteLine(string.Format(‚{0} preço {0:C}‛,
         entry.Key, entry.Value));
  }

                                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Collections.Generics
     Todos as listas (ArrayList, Queue, Stack, Hashtable, etc) têm
        seu tipo genérico implementado

        List<T>

             List<string>

             List<int>

             List<object> = ArrayList

     Não existe a necessidade de convertermos o tipo para objeto
        e na hora de recuperar fazer o unboxing




                                    andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

.NET Framework
   System.Collections.Generics

   //Cria a lista de decimais e adiciona os valores
   List<decimal> listValores = new List<decimal>();
   listValores.Add(1.5M);
   listValores.Add(4.8M);
   listValores.Add(0.4M);
   listValores.Add(3.9M);


   //Não precisamos converter o valor para decimal
   decimal vlr = listValores[3];




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework



Demo: Trabalhando com
coleções
 Collections
 Collections.Generics
 List
 Dictionary
 Linq




                         andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Namespaces
   System.Data

   System.IO

   System.Diagnostics

   System.Drawing

   System.Threading




                         andre.lopes@studentpartners.com.br
Introdução ao .NET Framework




Acesso a dados
 Banco de dados
 Componentes
 Acesso a banco de dados (SQL Server)
 Acesso a arquivos XML
 Desenvolvimento em camadas




                       andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Banco de Dados
   Conjunto de registros (informações de mesma natureza)
  disposto em um estrutura que possibilita a modificação,
  inserção, atualização e organização dessas informações.



   Está organizado em:

                 Tabelas
                    Colunas
                    Registros




                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Banco de Dados                              Coluna

       ID        Nome              CPF                 Cidade
1              Andre         12345678921         Alegre
2              Paulo         12469487670         Cachoeiro
3              Carlos        10457672930         Vitória
4              João          10394874820         Belo Horizonte
5              Maria         05937375958         Guaçui
6              José          30495782845         São Paulo


    Registro




                        Tabela de Pessoas
                                    andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Banco de Dados
 Conceitos Importantes
    Chave primária
    Chave estrangeira
    Views




                          andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

SQL
   Structured Query Language
       DDL
         CREATE
                 CREATE TABLE UF(
                 ID int,
                 Nome varchar(100))

         DROP
                 DROP TABLE UF

       DML

         INSERT
                 INSERT INTO UF (ID, Nome)
                 VALUES (1, ‘Alegre’)

        UPDATE
                 UPDATE UF
                 SET Nome = ‘Guaçui’
                 WHERE ID = 1

                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

SQL
   Structured Query Language
       DML
          DELETE
                 DELETE FROM UF
                 WHERE ID = 1

          SELECT
                 SELECT * FROM UF

  DCL
       GRANT
              GRANT SELET OF UF TO ‘user1’

       REVOKE
              REVOKE SELET OF UF TO ‘user1’




                                    andre.lopes@studentpartners.com.br
Introdução ao .NET Framework




Tafera: usando o SQL Server
 Vamos  agora criar um banco de dados
  para o SC2, que será usado posterior-
  mente para a prática de acesso a dados
  usando o .NET Framework
 Tempo Estimado: 20 min




                       andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Tabelas
  Participante
     ID               int             Chave Primária
     Nome             varchar(120)
     CPF              numeric(11,0)
     IDCidade         int
  Cidade
      ID              int             Chave Primária
      Nome            varchar(120)
      UF              varchar(2)
  Minicurso
     ID               int             Chave Primária
     Nome             varchar(120)
     IDParticipante   int
  Palestra
     ID               int             Chave Primária
     Nome             varchar(120)
     IDParticipante   int

                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Tabelas
  Participante_Minicurso
     IDMinicurso         int              Chave Primária
     IDParticipante      int              Chave Primária
  Participante_Palestra
     IDPalestra int               Chave Primária
     IDParticipante       int              Chave Primária



   Criar diagramas de relacionamento




                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   Microsoft ADO.NET

      .NET Framework Data Provider for SQL Server

      .NET Framework Data Provider for OLE DB

      .NET Framework Data Provider for ODBC

      .NET Framework Data Provider for Oracle

   .NET Framewor Data Provider

      IDbConnection
      IDbCommand                 Banco de Dados
      IDataReader
      IDataAdapter               DataSet

                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

  ADO.NET

            IDbConnection




Banco
De            IDbCommand
Dados
              IDataReader
                                       Aplicação




                            andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   IDbConnection
          Open()
          Close()
          ConnectionString
          State




                              andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   SqlConnection
           Provedor de acesso ao Sql Server (versão 7.0
             ou superior)
    Como abrir uma conexão com o banco de dados:

    SqlConnection conn = new SqlConnetion();
    Conn.ConnectionString = minhaStringDeConexao;
    conn.Open();
    Conn.Close();


    String de Conexão do SQL Server
    Data Source=Endereço do SQLServer;
    Initial Catalog =Nome do Banco de dados;
    Integrated Security=SSPI;

    http://www.connectionstrings.com/

                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   IDbCommand
     CommandText
     CommandType
     Connection
     ExecuteNonQuery

     ExecuteReader
     ExecuteScalar




                        andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   SqlCommand
     Objeto para conversação com banco de dados SQL Server
      7.0 ou superior


       SqlCommand command = new SqlCommand();
       command.Connection = conn;
       command.CommandText = ‚INSERT INTO UF ‚ +
                             ‚(Descricao) VALUES ‛ +
                             ‚(‘es’)‛;
       command.ExecuteNonQuery();




                                andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   ExecuteScalar

       SqlCommand command = new SqlCommand();
       command.Connection = conn;
       command.CommandText = ‚SELECT Descricao ‚ +
                             ‚FROM UF WHERE ID = 1‛;
       object obj = command.ExecuteScalar();
       otring strDescr = obj.ToString();




                            andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   ExecuteReader
         Só existe enquanto a conexão com o banco está
          aberta

    SqlConnection CriaConexao()
    {
            SqlConnectionStringBuilder sqlStrBld = new
            SqlConnectionStringBuilder();
            sqlStrBld.DataSource = ‚localhost‛;
            sqlStrBld.InitialCatalog = ‚SC2‛;
            sqlStrBld.IntegratedSecurity = true;

             return new SqlConnection(sqlStrBld.ConnectionString);
    }




                                andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   ExecuteReader

    SqlCommand sqlCmd = new SqlCommand();
    sqlCmd.Connection = CriaConexao();
    sqlCmd.CommandText = ‚SELECT * FROM CIDADE‛;
    sqlCmd.Connection.Open();
    SqlDataReader sqlDr = sqlCmd.ExecuteReader();

    List<string> Cidades = new List<string>();
    while(sqlDr.Read())
    {
             Cidades.Add(string.Format("{0} - {1}",
                    sqlDr["Nome"],
                    sqlDr["UF"]));
    }

    sqlCmd.Connection.Close();




                                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   DataSet
      DataTable
          DataRow
          DataColumn
          PrimaryKey
      DataRelation




                        andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
  SqlCommand sqlCmd = new SqlCommand();
  sqlCmd.Connection = CriaConexao();
  sqlCmd.CommandText = ‚SELECT * FROM CIDADE‛;
  sqlCmd.Connection.Open();
  SqlDataReader sqlDr = sqlCmd.ExecuteReader();

  DataTable dtCidade = new DataTable(‚Cidade‛);
  dtCidade.Load(sqlDr);

  sqlCmd.Connection.Close();

  string NomeCidade = dtCidade.Rows[0][1].ToString();
  string IDCidade = dtCidade.Rows[0][‚ID‛].ToString();

  int NumeroDeCidades = dtCidade.Rows.Count;




                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   Controles para manipulação de dados

     DataGridView
          DataGridView dgvCidades = new DataGridView();
          dgvCidade.DataSource = dtCidade;




                                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   Controles para manipulação de dados

     ComboBox
          List<Cidade> Cidades = ObtemCidades();
          ComboBox cmbCidades = new ComboBox();
          cmbCidades.DisplayMember = ‚Nome‛;
          cmbCidades.ValueMember = ‚ID‛;
          cmbCidades.SelectedIndex = -1;
          cmbCidades.DataSource = from cidade in Cidades
                                   orderby cidade.Nome
                                   select cidade;




                                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   XML

     Linguagem de marcação de dados

     Provê um sistema de tags para organização de dados
      estruturados

     Baseado em texto


          Tag introdutória do xml, versão e encodificação
     <?xml version="1.0" encoding="UTF-8"?>
     <Pessoa>                      Abre a tag Pessoa
            <Nome>Will</Nome>
            <Idade>27</Idade>
     </Pessoa>                     Fecha a tag Pessoa



                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
   XML
   <?xml version="1.0" standalone="yes"?>
   <BDPessoasCidades>
     <Pessoa>
       <ID>1</ID>
       <Nome>Thiago</Nome>
       <IDCidade>1</IDCidade>
     </Pessoa>
     <Pessoa>
       <ID>2</ID>
       <Nome>Jean</Nome>
       <IDCidade>1</IDCidade>
     </Pessoa>
     <Cidade>
       <ID>1</ID>
       <Nome>Cachoeiro</Nome>
     </Cidade>
   </BDPessoasCidades>
                            andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
Demo: Usando XML para acesso a
dados
 XML
 DataSet
 DataTable
 DataGridView




                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

ADO.NET
Demo: Aplicação multi cama-
da para acesso a dados
 SQLServer
 ADO.NET
 Camadas
 Generics
 OO




               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework




Arquivos
 Manipulação     de Arquivos
 Escrita / Leitura
 Encriptação
 Compactação
 Serialização




                          andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   File
     File.Exists(‚Nome do arquivo‛);
     File.Encrypt(‚Nome do arquivo‛);
     File.Decrypt(‚Nome do arquivo‛);
     File.Delete(‚Nome do arquivo‛);
     File.Move(‚Origem‛,‛Destino‛);
     File.GetCreationTime(‚Nome do arquivo‛);
     File.GetLastAccessTime(‚Nome do arquivo‛);




                            andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   FileStream
     FileStream fs = new FileStream(‚NomeDoArquivo‛,
     FileMode,
     FileAccess);

     FileMode.Append      FileAccess.Read
     FileMode.Create      FileAccess.Write
     FileMode.Open        FileAccess.ReadWrite

     fs.Read(Byte[], offset, count);
     fs.Write(Byte[], offset, count);
     fs.Flush();
     fs.Position
     fs.Close();
     fs.Seek(offset, SeekOrigin);
     SeekOrigin.Begin    SeekOrigin.Current   SeekOrigin.End


                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   StreamWriter
     StreamWriter sw = new StreamWriter(fs);
     StreamWriter sw = new StreamWriter(‚Nome Do Arquivo‛);
     sw.Write(Tipo);           sw.Flush();
     sw.WriteLine(Tipo);       sw.Close();

            char
            bool
            float
            decimal
            string
            etc . . .
            Exeto
              Byte


                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   StreamReader
     StreamReader sr = new StreamWriter(fs);
     StreamReader sr = new StreamWriter(‚Nome Do Arquivo‛);
     int i = sr.Read();
     string s = sr.ReadLine();
     string s = sr.ReadToEnd();
     sr.Close();




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
Demo: Aplicação para cópia
de arquivos
 File
 FileStream
 Byte[]
 Cópia    de arquivos




                         andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
Demo: Leitura e escrita de
arquivos texto
 StreamReader
 StreamWriter




                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   Compactação

     Formato zip
     System.IO. Compression
        DeflateStream
                                   CompressionMode.Compress
        GZipStream                CompressionMode.Decompress




                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   Compactação
        Criar um GZipStream para compactar os dados
        Ler todos os bytes do arquivo original
        Escrever os bytes no destino, objeto GZipStream
    FileStream fsDest = File.Create(‚Memorando.zip‛);

    byte[] bData = File.ReadAllBytes(‚Memorando.txt‛);

    GzipStream ArqCompactado = new GZipStream(fsDest,
    CompressioMode.Compress);

    ArqCompactado.Write(bData, 0, bData.Length);

    ArqCompactado.Flush();
    ArqCompactado.Close();

    fsDest.Close();


                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   Serialização
     Altenativa ao banco de dados      *

     Técnica usada para persistir objetos

         Grava em disco
         Transmissão pela rede
     Formato binário
     Formato texto




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   Serialização
     O objeto e todos os seus membros devem ser marcados
       com o atributo [Serializable]

     Membro não serializados [NonSerializable]

     System.Runtime.Serialization

         System.Runtime.Serialization.Formatters.Binary
         System.Runtime.Serialization.Formatters.Soap
            Texto
            Melhor para tráfego na rede




                                       andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

   Arquivos
         Serialização

            System.Xml.Serialization

               Transitar dados entre sistemas diferentes

               Somente membros públicos

               Não precisa estar marcado como Serializable
using System.Xml.Serialization;
using System.IO;

public class SerializaXML
{
        internal void Serializa(object Objeto)
        {
            XmlSerializer xmlSer = new XmlSerializer(Objeto.GetType());
            xmlSer.Serialize((new StreamWriter("test.xml")), Objeto);
        }
}
                                        andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
Demo: Aplicação para
compactação de arquivos
 Compactar
 Descompactar




                 andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
Demo: Aplicação para
serialização de arquivos
 Serializar
 Deserializar
 Formato      Binário




                         andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
Manipulando arquivos e pastas
       DriverInfo
       DirectoryInfo
       FileInfo
       Path
       Directory
       FileSystemWatcher
       TreeView
         TreeNode




                                andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
DriverInfo
            DriverInfo.GetDrives()
            DriverInfo di = new DriverInfo(@‚C:‛);
            di.DriverType
                DriveType.CDRom
                DriveType.Fixed
                DriveType.Removable
            di.TotalSize
            di.TotalFreeSpace




                                      andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
DriverInfo


    //Obtém todos os drives do computador
    DriveInfo[] Drives = DriveInfo.GetDrives();

    //Percorre cada Drive e mostra suas informações na tela
    foreach (DriveInfo di in Drives)
    {
           Console.WriteLine(di.Name);
           Console.WriteLine(di.AvailableFreeSpace);
           Console.WriteLine(di.TotalFreeSpace);
           Console.WriteLine(di.Totalpace);
    }




                               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
DirectoryInfo
         DirectoryInfo Dir = new DirectoryInfo(@"C:Program Files");

         Dir.Create()            Dir.CreateSubdirectory(‚Microsoft‛)

         Dir.Delete()            Dir.Delete(true)

         Dir.CreationTime        Dir.LastAccessTime

         Dir.GetDirectories()    Dir.GetFiles()

         Dir.Root                Dir.Parent




                                    andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

    Arquivos
    DirectoryInfo
public void MontaDiretorio(string Dir)
{
        Console.WriteLine(Dir);
        DirectoryInfo di = new DiretoryInfo(Dir);

        foreach(FileSystemInfo item in di.GetFileSystemInfos())
        {
                if(item is FileInfo)
                {
                        Console.WriteLine(string.Format(‚{0}-{1}‛,
                        (item as FileInfo).Name,
                        (item as FileInfo).Length));
                }
                else if(item is DirectoryInfo)
                {
                        Console.WriteLine((item as DirectoryInfo).Name);
                }
        }
}

                                       andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
FileInfo
          FileInfo fi = new
                FileInfo(@"C:Program FilesMessengermsnmsgr.exe");

          fi.Create()             fi.Delete()

          fi.Encrypt()            fi.Decrypt()

          fi.CreationTime         fi.LastAccessTime

          fi.Directory            fi.DirectoryName

          fi.FullName             Dir.Extension

          fi.Length




                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
FileInfo
      public void PropriedadesArquivo(string FileName)
      {
              Console.WriteLine(FileName);

              //Cria o objeto com base no nome do
              FileInfo fi = new FileInfo(FileName);

              //Como o arquivo é medido em bytes, dividimos por
              //1024 para encontrar seu tamanho em KBytes
              Console.WriteLine(string.Format(‚Tamanho: {0} KB‛,
                                               fi.Length/1024));

              Console.WriteLine(string.Format(‚Criação: {0}‛.
              fi.CreationTime.ToString(‚dd/MM/yyyy HH:mm:ss‛));

              Console.WriteLine(string.Format(‚Caminho: {0}‛,
                                               fi.FullName));

      }

                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   Directory
      Expõe métodos estáticos para criação movimentação e
     enumeração de diretórios e subdiretórios.
        Directory.CreateDirectory(‚Nome‛);
        Directory.GetCurrentDirectory();
        Directory.Move(‚Origem‛,‛Destino‛);
        Directory.GetDirectories(@‚C:", "p*‚,
                            SearchOption.TopDirectoryOnly);

                 SearchOption.TopDirectoryOnly
                 SearchOption.AllDirectories




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   Path
      Executa operações em instâncias de String que contêm
     arquivo ou diretório. Multi-plataforma

          Path.GetTempFileName();

          Path.GetTempPath();
          Path.DirectorySeparatorChar;
          Path.GetInvalidPathChars();
          Path.GetInvalidFileNameChars();




                                  andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   FileSystemWatcher
      Sinaliza qualquer modificação na estrutura de arquivo informada

    FileSystemWatcher fs = new FileSystemWatcher();
    fs.Path = @"C:";
    fs.IncludeSubdirectories = true;
    fs.EnableRaisingEvents = true;

    fs.Changed   +=   new   FileSystemEventHandler(Modificado);
    fs.Created   +=   new   FileSystemEventHandler(Modificado);
    fs.Deleted   +=   new   FileSystemEventHandler(Modificado);
    fs.Renamed   +=   new   RenamedEventHandler(Renomeado);




                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   FileSystemWatcher
     private static void Modificado(object source,
                     FileSystemEventArgs e)
     {
             // Especifica o arquivo e se foi modificado,
             //criado, ou deletado.
             Console.WriteLine(‚Arquivo: " + e.FullPath +
             " " + e.ChangeType);
     }

    private static void Renomeado(object source,
                    RenamedEventArgs e)
    {
            // Especifica o nome original e o novo do arquivo
            Console.WriteLine(‚Arquivo: {0} renomeado para {1}",
                    e.OldFullPath, e.FullPath);
    }




                                andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

  Arquivos
       TreeView
            Controle usado para mostrar informações hierárquicas, estrutura
           de arquivos, em uma estrutura de árvore

            System.Windows.Forms


                   - Info1         TreeNode
                       +Info1.1       TreeNode
                       +Info1.2
                       - Info1.3
TreeView                     +Info1.3.1    TreeNode
                       +Info1.4
                   + Info2
                   + Info3
                      +Info3.1



                                         andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
   TreeView
     Nodes
         Nodes

             Nodes



               ...




                      andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Arquivos
Demo: Aplicação para
gerenciamento de arquivos
 DirectoryInfo
 FileInfo
 TreeView
 FileSystemWatcher
 DriveInfo
 TreeNode




                      andre.lopes@studentpartners.com.br
Introdução ao .NET Framework




Gráficos
 Desenhando  Gráficos
 Trabalhando com imagens
 Formatando textos
 Customizando controles




                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing
      Criar gráficos a partir do zero

      Adicionar circulos, linhas e outras formas a interface do usuário
     dinamicamente.

      Editar e redimensionar figuras

      Mudar taxa de compressão de imagens salvas no disco

      Adicionar logomarcas copyright ou texto a imagens




                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing
     Graphics
         Região onde todo desenho é feito
            Form
            Button
            Panel
            etc

         Control.CreateGraphics()




                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing

     Brush

        SolidBrush

             SolidBrush solido = new SolidBrush(Color.Green);

        LinearGradientBrush

     Pen

           Pen p = new Pen(Color.Red, 5);

           Pen p = new Pen(solido,5);




                                andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing

     Estilos de lápis
     Pen p = new Pen(Color.Red, 5);

     P.DashStyle = DashStyle.Dot


     P.DashStyle = DashStyle.Dash


     P.DashStyle = DashStyle.DashDot


     P.DashStyle = DashStyle.Solid



                            andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing

     Estilos de lápis
     Pen p = new Pen(Color.Red, 5);

          p.StartCap = LineCap.ArrowAnchor;
          p.EndCap = LineCap.ArrowAnchor;



          p.StartCap = LineCap.DiamondAnchor;




                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing

     Graphics grafico = this.CreateGraphics();

          grafico.DrawEllipse(Pen, Rectangle);

          grafico.FillEllipse(Pen, Rectangle);

          Image imagem = Image.FromFile(‚C:Foto.jpg‛);

          grafico.DrawImage(imagem, Point);

          grafico.DrawLine(Pen, Point, Point);

             grafico.DrawLines(Pen, Point[]);




                              andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing
          grafico.DrawPie(Pen, Rectangle,fAnguloIni,
                                      fAnguloFim);
          grafico.DrawPie(new Pen(Color.Black),
                new Rectangle(50,50,250,250),0,90);




          grafico.DrawPie(new Pen(Color.Black),
                new Rectangle(50,50,250,250),0,270);




                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   System.Drawing
          grafico.FillElipse(Brush, Rectangle);




          grafico.FillPolygon(Brush, Rectangle);
          grafico.DrawPolygon(Pen, Rectangle);




                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
Demo: Trabalhando com
linhas e formas
 Pen
 SolidBrush
 LinearGradientBrush
 Graphics
 UserControl




                        andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   Imagens

     PictureBox

     PictureBox img = new PictureBox();

        img.BackgroundImage = Image.FromFile(‚foto.jpg‛);

        img.BackgroundImage = new Bitmap(‚foto.jpg‛);

        img.SizeMode = PictureBoxSizeMode.AutoSize;
                      PictureBoxSizeMode.StretchImage

                      PictureBoxSizeMode.Normal
Introdução ao .NET Framework

Gráficos
   Imagens

     Bitmap

     Bitmap bmp = new Bitmap(1920, 1080);

        Graphics AreaGrafica = Graphics.FromImage(bmp);

        Brush b = new LinearGradientBrush(new Point(1,
         1),new Point(1920, 1080),Color.White,Color.Red);

        AreaGrafica.FillRectangle(b, 1, 1, 1920, 1080);

        Bmp.Save(‚imagem.jpg‛, ImageFormat.Jpeg);




                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   Imagens

     Bitmap

     private static Image RecortaImagem(this Image imagem,
                           Rectangle AreaCorte)
     {
        Bitmap bmpImage = new Bitmap(img);

         Bitmap bmpRecorte = bmpImage.Clone(AreaCorte,
         bmpImage.PixelFormat);

         return (Image)(bmpRecorte);
     }




                              andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   Textos

     FontFamily

        FontFamily ff = new FontFamily(‚Consolas‛);

     Font

       Font font = new Font(ff,16);
        font.Bold = true;
        font.Italic = false;
       FontConverter conversor = new FontConverter();
        font = (Font)conversor.ConvertFromString(‚Arial,12‛);
       grafico.DrawString(‚.Net Framework‛, font,
                                Brushes.Black, Point);




                              andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
Demo: Trabalhando imagens
e textos
 Pen
 SolidBrush
 Graphics




               andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
   Customização
     A grande maioria dos tipos em .Net são classes
        Os controles gráficos (botões, formulários, etc) são classes
        Podem ser herdados
        Métodos podem ser sobrecarredaos
     Todo tipo gráfico tem um evento chamado OnPaint


   protected void OnPaint(PaintEventArgs e)
   {
          e.Grapics.DrawLine(Pen, Point, Point);
          base.OnPaint(e);
   }




                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

    Gráficos
        Customização



public sealed class ButtonComLinhas : System.Windows.Forms.Button
{
       public ButtonComLinhas(){}

       protected override void OnPaint(PaintEventArgs e)
       {

              e.Graphics.DrawRectangle(new Pen(Brushes.Black),
              e.ClipRectangle);
              base.OnPaint
       }
}



                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Gráficos
Demo: Customização de
controles
 Pen
 SolidBrush
 LinearGradientBrush
 Graphics
 UserControl




                        andre.lopes@studentpartners.com.br
Introdução ao .NET Framework




Threads
 BackgroundWorker
 Processosassíncronos
 ThreadStart
 Customizando controles




                       andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads
   Multi Thread

      Tarefas que demoram para serem concluídas travam a interface
     do usuário durante todo seu processamento

          Impressão de relatórios

          Download de arquivos

          Consultas ao banco de dados

          Cálculo complexos

     Taferas assíncronas

        BackgroundWorker

      Várias tarefas ao mesmo tempo

        Thread
                                     andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads
   Multi Thread
 10 min          10 min            10 min         10 min



Tarefa 1       Tarefa 2        Tarefa 3         Tarefa 4         40 min


   Se, e somente se, as tarefas forem independentes

  Tarefa 1

  Tarefa 2
                          10 min
  Tarefa 3

  Tarefa 4

                                      andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads
    BackgroundWorker

      Não manipular a interface do usuário

        ProgressChanged

        RunWorkerCompleted

    System.ComponentModel

BackgroundWorker bWorker = new BackgroundWorker();
bWorker.DoWork += new DoWorkEventHandler(CalcFatorial);

bWorker.RunWorkerCompleted += new
RunWorkerCompletedEventHandler(Fatorial_Completo);

bWorker.RunWorkerAsync(10);



                                    andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads
   BackgroundWorker
        private void CalcFatorial(object sender,
                              DoWorkEventArgs e)
        {
               BackgroundWorker worker = sender as
                              BackgroundWorker;
               e.Result = Fatorial((int)e.Argument);
        }

         public ulong Fatorial(uint Numero)
         {
                if(Numero <= 1)
                        return 1;
                else
                        return Numero *
                               Fatorial(Numero - 1);
         }

                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads
   BackgroundWorker

        private void Fatorial_Completo(object sender,
                       RunWorkerCompletedEventArgs e)
        {
               MessageBox.Show(‚O Fatorial é ‛+
               e.Result.ToString());
        }




                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads

   Thread

     Para acessar a UI devemos “invocar” a Thread principal

   ThreadStart

   ParameterizedThreadStart

   Thread thr = new Thread(new ParameterizedThreadStart(
   CalcFatorial));

   thr.Star(10);




                                   andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads

   Thread
  public delegate void EscreveMsgDelegate(string Mensagem);
  public void EscreveMsg(string Mensagem)
  {
         MessageBox.Show(Mensagem);
  }

  private void CalcFatorial(objetc valor)
  {
         ulong fat = Fatorial((int)valor);
         EscreveMsgDelegate MsgDelegate = new
                 EscreveMsgDelegate(EscreveMsg);
         this.Invoke(MsgDelegate, new object[]
         {‚O valor do fatorial de ‛ + valor.ToString +
         ‚ é igual a ‛ + fat.ToString() }
         );
  }

                             andre.lopes@studentpartners.com.br
Introdução ao .NET Framework

Threads
Demo: Usando Theads para
cálculos complexos
 Thread
 ParameterizedThreadStart
 Delegate
 Invoke




                       andre.lopes@studentpartners.com.br
Introdução ao .NET Framework




The End




          andre.lopes@studentpartners.com.br

Mais conteúdo relacionado

PPTX
DotNet Framework e Orientação a Objetos 1 - Introdução
PPTX
Linguagem de programação C# 4 e 5
PPTX
Fundamentos do .NET Framework - Parte 1
PPTX
Evolução do .NET Framework e do Visual Basic
PDF
Educação e certificação na Plataforma .NET
PPTX
Linguagem de programação Java 6, 7 e 8
PDF
Apostila de C# & Asp.Net
PPT
Introdução ao JAVA (linguagem de programação WEB)
DotNet Framework e Orientação a Objetos 1 - Introdução
Linguagem de programação C# 4 e 5
Fundamentos do .NET Framework - Parte 1
Evolução do .NET Framework e do Visual Basic
Educação e certificação na Plataforma .NET
Linguagem de programação Java 6, 7 e 8
Apostila de C# & Asp.Net
Introdução ao JAVA (linguagem de programação WEB)

Mais procurados (20)

PPTX
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
PDF
PDF
Curso Java Basico
PPTX
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
PDF
Aula de Introdução - JAVA
PPTX
Introdução C#
PDF
Linguagem de Programação Java para Iniciantes
PPTX
Introdução ao C#
ODP
Apresentação java
PPT
Introdução ao Java
PDF
Introdução à Programação em Java - Aula 1 (PT-PT)
PPT
Java modulo 01 - Introdução
PDF
Apostila desenvolvimento aplicações comerciais com C#
PDF
Aula de Introdução - JAVA
PDF
Introdução a Linguagem Java
PPTX
Domain-Driven Design
PDF
Cebraspe 2016: .NET Core e ASP.NET Core
PPTX
Programação Orientada a Objetos com Java
PDF
Manual
PPT
Conhecendo Java
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Curso Java Basico
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
Aula de Introdução - JAVA
Introdução C#
Linguagem de Programação Java para Iniciantes
Introdução ao C#
Apresentação java
Introdução ao Java
Introdução à Programação em Java - Aula 1 (PT-PT)
Java modulo 01 - Introdução
Apostila desenvolvimento aplicações comerciais com C#
Aula de Introdução - JAVA
Introdução a Linguagem Java
Domain-Driven Design
Cebraspe 2016: .NET Core e ASP.NET Core
Programação Orientada a Objetos com Java
Manual
Conhecendo Java
Anúncio

Semelhante a Introducao ao .Net (20)

PDF
Arquitetura[.net]
PDF
PPT
Palestra Plataforma .NET na ETEC Marília
ODP
ASP.NET e Visual Studio 2010
PPT
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
PPTX
Sessao1a
ODP
Entendendo Frameworks web com Python
ODP
Entendendo Framework Web com Python
PPT
Novidades do .NET 3.5
DOC
C sharp lesson1
PPT
.NET Open Source
PPTX
1º FasS2B 2010
PDF
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
PDF
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
PDF
01 - Introdução a programação para internet v1.1
PPT
Plataforma .Net
PPTX
Treinamento ASP.NET 2014
PDF
Aula 1 -_ambiente_visual_studio_2012
PDF
Curso C sharp plus Framework NET (DIURNO)
Arquitetura[.net]
Palestra Plataforma .NET na ETEC Marília
ASP.NET e Visual Studio 2010
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Sessao1a
Entendendo Frameworks web com Python
Entendendo Framework Web com Python
Novidades do .NET 3.5
C sharp lesson1
.NET Open Source
1º FasS2B 2010
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
01 - Introdução a programação para internet v1.1
Plataforma .Net
Treinamento ASP.NET 2014
Aula 1 -_ambiente_visual_studio_2012
Curso C sharp plus Framework NET (DIURNO)
Anúncio

Último (19)

PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Processos na gestão de transportes, TM100 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula 18 - Manipulacao De Arquivos python
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Apple Pippin Uma breve introdução. - David Glotz
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
COBITxITIL-Entenda as diferença em uso governança TI
Processos na gestão de transportes, TM100 Col18

Introducao ao .Net

  • 1. (sc)2 Introdução ao 1º Simpósio de .NET Framework Computação do Sul Capixaba System, Console, Drawing, Math, OleDB, Form, Control, DialogResult, DllImport, FileStream, Security, References, “Todas as áreas Microsoft, Type, computando novas idéias” ComboBox, Main, List, HashTable, Activator, DataSet, DataReader, DateTime.Now, Exception, MessageBox, Application, WebService . . . andre.lopes@studentpartners.com.br
  • 2. Introdução ao .NET Framework Oque é  Framework de desenvolvimento  Windows Forms  Web Forms  Web Services  Console Application  Class Library  Windows Service andre.lopes@studentpartners.com.br
  • 3. Introdução ao .NET Framework .NET Framework  .NET Framework consiste em um conjunto de componentes que modularizam e simplificam o desenvolvimento de aplicações. Clientes Desenvolvedores Servidores Microsoft .NET Web Services andre.lopes@studentpartners.com.br
  • 4. Introdução ao .NET Framework .NET Framework  Multiplataforma  Microsoft .NET Framework  Mono  Suporte a várias linguagens de programação  Encapsulamento o SO através da CLR andre.lopes@studentpartners.com.br
  • 5. Introdução ao .NET Framework .NET Framework O .NET aceita várias linguagens de progra- Linguagens de Programação mação (C#, VB, C++, Delphi, entre outras) . As bibliotecas ( o framework Framework Framework Framework em si ) possuem uma 1.1 2.0 3.5 grande coleção de classes que podem ser usadas e implementadas em sua Bibliotecas .NET aplicação. O CLR é quem gerencia a execução do código, juntamente com o Common Language Runtime Garbage Collector. Sistema Operacional andre.lopes@studentpartners.com.br
  • 6. Introdução ao .NET Framework .NET Framework 1 Compilador MSIL Código Fonte C#, VB, C++ MSIL Code 2 JIT Compiler Código de MSIL Code Máquina 3 CLR Código de Máquina Aplicação andre.lopes@studentpartners.com.br
  • 7. Introdução ao .NET Framework .NET Framework O .NET Framework está organizado em namespaces, de modo que cada ferramenta tem sua localização específica  Microsoft.CSharp Ferramentas para compilação e geração de código com o uso da linguagem C#  System Tipos fundamentais, interfaces, eventos exceções. É o namespace principal  System.Collections Contém interfaces e classes que definem várias coleções de objetos tais com Array, Lista, Pilha, dicionários. Também contém ferramentas para gerenciamento de listas genéricas  System.Data Prove ferramentas para manipulação de dados de diferentes fontes. Constitui a arquitetura do ADO.NET andre.lopes@studentpartners.com.br
  • 8. Introdução ao .NET Framework .NET Framework  System.Drawing Classes para trabalhar com gráficos e imagens  System.IO Contém tipos que permitem a manipulação de arquivos de pastas. Escrita e leitura;  System.Net Oferece interface de programação para muitos dos protocolos de rede hoje disponíveis. Programação de Sockets e requisições Web por exemplo  System.Windows.Forms Classes voltadas a criação de aplicações baseadas em windows  System.Threading Prove ferramentas para a programação multi thread. Processos simultâneos andre.lopes@studentpartners.com.br
  • 9. Introdução ao .NET Framework .NET Framework  System.Globalization Fornece ferramentas para trabalhar com a cultura de onde o programa está sendo executado. Informações como língua, moeda, calendário e formatações.  System.Web.Services Contém classes que permitem ao desenvolvedor construir e desenvolver WebServices.  System.Timers Prove componentes que possibilitam o acionamento de eventos em intervalor regulares de tempo andre.lopes@studentpartners.com.br
  • 10. Introdução ao .NET Framework .NET Framework Microsoft Visual Studio  IDE  Suporte a várias liguagens  Criação de instaladores (somente na versão paga)  Tipos de Aplicações  Console Application  Windows Application  Web Site  Web Service (somente na versão paga)  Windows Service (somente na versão paga)  Class Library andre.lopes@studentpartners.com.br
  • 11. Introdução ao .NET Framework Demo: Conhecendo o Visual Studio  Console Application  Windows Application  Class Library  Project  Solution  Debug  Code Snipeet  Documentação andre.lopes@studentpartners.com.br
  • 12. Introdução ao .NET Framework Demo: Programando com o Visual Studio  Console Application  Classe Console  Delegates e Métodos Anônimos  Unsafe Code  Extension Methods andre.lopes@studentpartners.com.br
  • 13. Introdução ao .NET Framework Demo: Programando com o Visual Studio  Windows Application  Formulários  MDI  SDI  Design  Controles  Tratamento de erros  Membros estáticos andre.lopes@studentpartners.com.br
  • 14. Introdução ao .NET Framework Tarefa: Programando com o Visual Studio  Crie uma bibliteca (Class Library) com duas entidades Pessoa e Carro. Contendo  Carro:Marca, Modelo, Ano, Placa  Pessoa: Nome, CPF, e uma lista de carros  Ambas as classes tem de ser públicas  Uma pessoa pode conter até 3 carros  Nenhuma das classes podem ser herdadas  Tempo Estimado: 5min andre.lopes@studentpartners.com.br
  • 15. Introdução ao .NET Framework Tarefa: Programando com o Visual Studio  Crie uma aplicação Windows Forms que referencie as entidade criadas. E faça seu cadastro.  A Aplicação deve ser MDI  Os carros já cadastrados devem estar disponíveis em uma ComboBox no cadastro de pessoas.  Faça uso de uma classe estática para guardar as informações cadastradas  Ao fechar a aplicação os dados não devem ser salvos.  Tempo Estimado: 25min andre.lopes@studentpartners.com.br
  • 16. Introdução ao .NET Framework .NET Framework  System.Text.StringBuilder  Resolve o problema da imutabilidade do tipo string, gerenciando melhor a memória StringBuilder sb = new StringBuilder(); Memória sb.AppendText(‚Microsoft‛); ‚Microsoft‛ sb.AppendText(‚ .Net ‛); ‚.Net ‛ sb.AppendText(‚Framework‛); ‚Framework‛ ‚Microsoft .Net Fr‛ string s = sb.ToString(); andre.lopes@studentpartners.com.br
  • 17. Introdução ao .NET Framework .NET Framework  System.Text.RegularExpressions  Um método formal de se especificar um padrão de texto.  Somente números  Email  Data/Hora  IP  Método complexo, porém rápido de validar valores. Ao invés de usar try...cath Somente Números ^d{5}$ Fim da expressão 5 dígitos Início da expressão andre.lopes@studentpartners.com.br
  • 18. Introdução ao .NET Framework .NET Framework  System.Text.RegularExpressions using System; using System.Text.RegularExpressions; class VarificaPadroes { bool ENumero(string texto) { return (new Regex(‚^[0-9]*$‛) ).IsMatch(texto); } }  http://regexlib.com andre.lopes@studentpartners.com.br
  • 19. Introdução ao .NET Framework .NET Framework  System.DateTime DateTime dt = DateTime.Now; int dia = dt.Day; int mes = dt.Month; int ano = dt.Year; int hora = dt.Hour; int min = dt.Minute; int sec = dt.Second; dt.ToString(‚dd/MM/yyyy‛) //19/02/2010 dt.ToString(‚dd/MM/yyyy HH:mm:ss‛) //19/02/2010 14:30:00 andre.lopes@studentpartners.com.br
  • 20. Introdução ao .NET Framework .NET Framework  GarbageColletor  Não determinístico  Retira da memória somente os espaços não utilizados, que já estão desvinculados do programa  GC.Collect(); andre.lopes@studentpartners.com.br
  • 21. Introdução ao .NET Framework .NET Framework  Coleções  .Net 1.0  System.Collections  System.Collections.Specialized  .Net 2.0  System.Collections.Generic  Listas  Dicionários andre.lopes@studentpartners.com.br
  • 22. Introdução ao .NET Framework .NET Framework  Interfaces de Coleções IEnumerable ICollection IList IDictionary andre.lopes@studentpartners.com.br
  • 23. Introdução ao .NET Framework .NET Framework  System.Collections  ArrayList  É uma coleção ordenada  Podemos acessar os elementos usando seu index, baseado em zero  Expande automaticamente quando adicionamos itens  Sort();  IComparable  QuickSort andre.lopes@studentpartners.com.br
  • 24. Introdução ao .NET Framework .NET Framework  System.Collections //Cria um ArrayList e adiciona objetos ArrayList arr = new ArrayList(); arr.Add(‚Cachoeiro‛); arr.Add(‚Alegre‛); arr.AddRange(new string[]{‚Vitória‛, ‚Rive‛}); //Obtem Cachoeiro, Alegre e Vitória ArrayList tresPrimeiros = arr.GetRange(0, 3); arr.Remove(‚Rive‛); object primeiro = arr[0]; arr.Insert(0, ‚Rio de Janeiro‛); arr.Sort(); arr.Reverse(); foreach(object item in arrr) { Console.WriteLine(item); } andre.lopes@studentpartners.com.br
  • 25. Introdução ao .NET Framework .NET Framework  System.Collections  Fila (Queue) //Cria uma fila e adiciona objetos Queue fila = new Queue(); fila.Enqueue(‚Item 1‛); fila.Enqueue(‚Item 2‛); fila.Enqueue(‚Item 3‛); fila.Enqueue(‚Item 4‛); //Obtém o primeiro item mas não o remove object item = fila.Peek(); //Desenfileira todos os objetos while(fila.Count > 0) { Console.WriteLine(fila.Dequeue()); } andre.lopes@studentpartners.com.br
  • 26. Introdução ao .NET Framework .NET Framework  System.Collections  Pilha (Stack) //Cria uma pilha e adiciona objetos Stack pilha = new Stack(); pilha.Push(‚Item 1‛); pilha.Push(‚Item 2‛); pilha.Push(‚Item 3‛); pilha.Push(‚Item 4‛); //Obtém o primeiro item mas não o remove object item = pilha.Peek(); //Desenpilha todos os objetos while(fila.Count > 0) { Console.WriteLine(pilha.Pop()); } andre.lopes@studentpartners.com.br
  • 27. Introdução ao .NET Framework .NET Framework  System.Collections  Hashtable  Dicionário de chave/Valor //Cria um hashtable e adiciona entradas de chave/valor Hashtable Produtos = new Hashtable(); Produtos.Add(‚Macaxera‛,5.9); Produtos.Add(‚Cane de Sol‛, 7.5); Produtos.Add(‚Ipioca, 1 Litro‛, 10.0); Console.WriteLine(‚Porção do cheff‛) foreach(DictionaryEntry entry in Produtos) { Console.WriteLine(string.Format(‚{0} preço {0:C}‛, entry.Key, entry.Value)); } andre.lopes@studentpartners.com.br
  • 28. Introdução ao .NET Framework .NET Framework  System.Collections.Generics  Todos as listas (ArrayList, Queue, Stack, Hashtable, etc) têm seu tipo genérico implementado  List<T>  List<string>  List<int>  List<object> = ArrayList  Não existe a necessidade de convertermos o tipo para objeto e na hora de recuperar fazer o unboxing andre.lopes@studentpartners.com.br
  • 29. Introdução ao .NET Framework .NET Framework  System.Collections.Generics //Cria a lista de decimais e adiciona os valores List<decimal> listValores = new List<decimal>(); listValores.Add(1.5M); listValores.Add(4.8M); listValores.Add(0.4M); listValores.Add(3.9M); //Não precisamos converter o valor para decimal decimal vlr = listValores[3]; andre.lopes@studentpartners.com.br
  • 30. Introdução ao .NET Framework Demo: Trabalhando com coleções  Collections  Collections.Generics  List  Dictionary  Linq andre.lopes@studentpartners.com.br
  • 31. Introdução ao .NET Framework Namespaces  System.Data  System.IO  System.Diagnostics  System.Drawing  System.Threading andre.lopes@studentpartners.com.br
  • 32. Introdução ao .NET Framework Acesso a dados  Banco de dados  Componentes  Acesso a banco de dados (SQL Server)  Acesso a arquivos XML  Desenvolvimento em camadas andre.lopes@studentpartners.com.br
  • 33. Introdução ao .NET Framework Banco de Dados  Conjunto de registros (informações de mesma natureza) disposto em um estrutura que possibilita a modificação, inserção, atualização e organização dessas informações. Está organizado em:  Tabelas  Colunas  Registros andre.lopes@studentpartners.com.br
  • 34. Introdução ao .NET Framework Banco de Dados Coluna ID Nome CPF Cidade 1 Andre 12345678921 Alegre 2 Paulo 12469487670 Cachoeiro 3 Carlos 10457672930 Vitória 4 João 10394874820 Belo Horizonte 5 Maria 05937375958 Guaçui 6 José 30495782845 São Paulo Registro Tabela de Pessoas andre.lopes@studentpartners.com.br
  • 35. Introdução ao .NET Framework Banco de Dados  Conceitos Importantes  Chave primária  Chave estrangeira  Views andre.lopes@studentpartners.com.br
  • 36. Introdução ao .NET Framework SQL  Structured Query Language  DDL  CREATE CREATE TABLE UF( ID int, Nome varchar(100))  DROP DROP TABLE UF  DML  INSERT INSERT INTO UF (ID, Nome) VALUES (1, ‘Alegre’) UPDATE UPDATE UF SET Nome = ‘Guaçui’ WHERE ID = 1 andre.lopes@studentpartners.com.br
  • 37. Introdução ao .NET Framework SQL  Structured Query Language  DML  DELETE DELETE FROM UF WHERE ID = 1  SELECT SELECT * FROM UF  DCL  GRANT GRANT SELET OF UF TO ‘user1’  REVOKE REVOKE SELET OF UF TO ‘user1’ andre.lopes@studentpartners.com.br
  • 38. Introdução ao .NET Framework Tafera: usando o SQL Server  Vamos agora criar um banco de dados para o SC2, que será usado posterior- mente para a prática de acesso a dados usando o .NET Framework  Tempo Estimado: 20 min andre.lopes@studentpartners.com.br
  • 39. Introdução ao .NET Framework Tabelas  Participante  ID int Chave Primária  Nome varchar(120)  CPF numeric(11,0)  IDCidade int  Cidade  ID int Chave Primária  Nome varchar(120)  UF varchar(2)  Minicurso  ID int Chave Primária  Nome varchar(120)  IDParticipante int  Palestra  ID int Chave Primária  Nome varchar(120)  IDParticipante int andre.lopes@studentpartners.com.br
  • 40. Introdução ao .NET Framework Tabelas  Participante_Minicurso  IDMinicurso int Chave Primária  IDParticipante int Chave Primária  Participante_Palestra  IDPalestra int Chave Primária  IDParticipante int Chave Primária  Criar diagramas de relacionamento andre.lopes@studentpartners.com.br
  • 41. Introdução ao .NET Framework ADO.NET  Microsoft ADO.NET  .NET Framework Data Provider for SQL Server  .NET Framework Data Provider for OLE DB  .NET Framework Data Provider for ODBC  .NET Framework Data Provider for Oracle  .NET Framewor Data Provider  IDbConnection  IDbCommand Banco de Dados  IDataReader  IDataAdapter DataSet andre.lopes@studentpartners.com.br
  • 42. Introdução ao .NET Framework ADO.NET IDbConnection Banco De IDbCommand Dados IDataReader Aplicação andre.lopes@studentpartners.com.br
  • 43. Introdução ao .NET Framework ADO.NET  IDbConnection  Open()  Close()  ConnectionString  State andre.lopes@studentpartners.com.br
  • 44. Introdução ao .NET Framework ADO.NET  SqlConnection  Provedor de acesso ao Sql Server (versão 7.0 ou superior) Como abrir uma conexão com o banco de dados: SqlConnection conn = new SqlConnetion(); Conn.ConnectionString = minhaStringDeConexao; conn.Open(); Conn.Close(); String de Conexão do SQL Server Data Source=Endereço do SQLServer; Initial Catalog =Nome do Banco de dados; Integrated Security=SSPI; http://www.connectionstrings.com/ andre.lopes@studentpartners.com.br
  • 45. Introdução ao .NET Framework ADO.NET  IDbCommand  CommandText  CommandType  Connection  ExecuteNonQuery  ExecuteReader  ExecuteScalar andre.lopes@studentpartners.com.br
  • 46. Introdução ao .NET Framework ADO.NET  SqlCommand  Objeto para conversação com banco de dados SQL Server 7.0 ou superior SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = ‚INSERT INTO UF ‚ + ‚(Descricao) VALUES ‛ + ‚(‘es’)‛; command.ExecuteNonQuery(); andre.lopes@studentpartners.com.br
  • 47. Introdução ao .NET Framework ADO.NET  ExecuteScalar SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = ‚SELECT Descricao ‚ + ‚FROM UF WHERE ID = 1‛; object obj = command.ExecuteScalar(); otring strDescr = obj.ToString(); andre.lopes@studentpartners.com.br
  • 48. Introdução ao .NET Framework ADO.NET  ExecuteReader  Só existe enquanto a conexão com o banco está aberta SqlConnection CriaConexao() { SqlConnectionStringBuilder sqlStrBld = new SqlConnectionStringBuilder(); sqlStrBld.DataSource = ‚localhost‛; sqlStrBld.InitialCatalog = ‚SC2‛; sqlStrBld.IntegratedSecurity = true; return new SqlConnection(sqlStrBld.ConnectionString); } andre.lopes@studentpartners.com.br
  • 49. Introdução ao .NET Framework ADO.NET  ExecuteReader SqlCommand sqlCmd = new SqlCommand(); sqlCmd.Connection = CriaConexao(); sqlCmd.CommandText = ‚SELECT * FROM CIDADE‛; sqlCmd.Connection.Open(); SqlDataReader sqlDr = sqlCmd.ExecuteReader(); List<string> Cidades = new List<string>(); while(sqlDr.Read()) { Cidades.Add(string.Format("{0} - {1}", sqlDr["Nome"], sqlDr["UF"])); } sqlCmd.Connection.Close(); andre.lopes@studentpartners.com.br
  • 50. Introdução ao .NET Framework ADO.NET  DataSet  DataTable  DataRow  DataColumn  PrimaryKey  DataRelation andre.lopes@studentpartners.com.br
  • 51. Introdução ao .NET Framework ADO.NET SqlCommand sqlCmd = new SqlCommand(); sqlCmd.Connection = CriaConexao(); sqlCmd.CommandText = ‚SELECT * FROM CIDADE‛; sqlCmd.Connection.Open(); SqlDataReader sqlDr = sqlCmd.ExecuteReader(); DataTable dtCidade = new DataTable(‚Cidade‛); dtCidade.Load(sqlDr); sqlCmd.Connection.Close(); string NomeCidade = dtCidade.Rows[0][1].ToString(); string IDCidade = dtCidade.Rows[0][‚ID‛].ToString(); int NumeroDeCidades = dtCidade.Rows.Count; andre.lopes@studentpartners.com.br
  • 52. Introdução ao .NET Framework ADO.NET  Controles para manipulação de dados  DataGridView DataGridView dgvCidades = new DataGridView(); dgvCidade.DataSource = dtCidade; andre.lopes@studentpartners.com.br
  • 53. Introdução ao .NET Framework ADO.NET  Controles para manipulação de dados  ComboBox List<Cidade> Cidades = ObtemCidades(); ComboBox cmbCidades = new ComboBox(); cmbCidades.DisplayMember = ‚Nome‛; cmbCidades.ValueMember = ‚ID‛; cmbCidades.SelectedIndex = -1; cmbCidades.DataSource = from cidade in Cidades orderby cidade.Nome select cidade; andre.lopes@studentpartners.com.br
  • 54. Introdução ao .NET Framework ADO.NET  XML  Linguagem de marcação de dados  Provê um sistema de tags para organização de dados estruturados  Baseado em texto Tag introdutória do xml, versão e encodificação <?xml version="1.0" encoding="UTF-8"?> <Pessoa> Abre a tag Pessoa <Nome>Will</Nome> <Idade>27</Idade> </Pessoa> Fecha a tag Pessoa andre.lopes@studentpartners.com.br
  • 55. Introdução ao .NET Framework ADO.NET  XML <?xml version="1.0" standalone="yes"?> <BDPessoasCidades> <Pessoa> <ID>1</ID> <Nome>Thiago</Nome> <IDCidade>1</IDCidade> </Pessoa> <Pessoa> <ID>2</ID> <Nome>Jean</Nome> <IDCidade>1</IDCidade> </Pessoa> <Cidade> <ID>1</ID> <Nome>Cachoeiro</Nome> </Cidade> </BDPessoasCidades> andre.lopes@studentpartners.com.br
  • 56. Introdução ao .NET Framework ADO.NET Demo: Usando XML para acesso a dados  XML  DataSet  DataTable  DataGridView andre.lopes@studentpartners.com.br
  • 57. Introdução ao .NET Framework ADO.NET Demo: Aplicação multi cama- da para acesso a dados  SQLServer  ADO.NET  Camadas  Generics  OO andre.lopes@studentpartners.com.br
  • 58. Introdução ao .NET Framework Arquivos  Manipulação de Arquivos  Escrita / Leitura  Encriptação  Compactação  Serialização andre.lopes@studentpartners.com.br
  • 59. Introdução ao .NET Framework Arquivos  File File.Exists(‚Nome do arquivo‛); File.Encrypt(‚Nome do arquivo‛); File.Decrypt(‚Nome do arquivo‛); File.Delete(‚Nome do arquivo‛); File.Move(‚Origem‛,‛Destino‛); File.GetCreationTime(‚Nome do arquivo‛); File.GetLastAccessTime(‚Nome do arquivo‛); andre.lopes@studentpartners.com.br
  • 60. Introdução ao .NET Framework Arquivos  FileStream FileStream fs = new FileStream(‚NomeDoArquivo‛, FileMode, FileAccess); FileMode.Append FileAccess.Read FileMode.Create FileAccess.Write FileMode.Open FileAccess.ReadWrite fs.Read(Byte[], offset, count); fs.Write(Byte[], offset, count); fs.Flush(); fs.Position fs.Close(); fs.Seek(offset, SeekOrigin); SeekOrigin.Begin SeekOrigin.Current SeekOrigin.End andre.lopes@studentpartners.com.br
  • 61. Introdução ao .NET Framework Arquivos  StreamWriter StreamWriter sw = new StreamWriter(fs); StreamWriter sw = new StreamWriter(‚Nome Do Arquivo‛); sw.Write(Tipo); sw.Flush(); sw.WriteLine(Tipo); sw.Close();  char  bool  float  decimal  string  etc . . .  Exeto  Byte andre.lopes@studentpartners.com.br
  • 62. Introdução ao .NET Framework Arquivos  StreamReader StreamReader sr = new StreamWriter(fs); StreamReader sr = new StreamWriter(‚Nome Do Arquivo‛); int i = sr.Read(); string s = sr.ReadLine(); string s = sr.ReadToEnd(); sr.Close(); andre.lopes@studentpartners.com.br
  • 63. Introdução ao .NET Framework Arquivos Demo: Aplicação para cópia de arquivos  File  FileStream  Byte[]  Cópia de arquivos andre.lopes@studentpartners.com.br
  • 64. Introdução ao .NET Framework Arquivos Demo: Leitura e escrita de arquivos texto  StreamReader  StreamWriter andre.lopes@studentpartners.com.br
  • 65. Introdução ao .NET Framework Arquivos  Compactação  Formato zip  System.IO. Compression  DeflateStream CompressionMode.Compress  GZipStream CompressionMode.Decompress andre.lopes@studentpartners.com.br
  • 66. Introdução ao .NET Framework Arquivos  Compactação  Criar um GZipStream para compactar os dados  Ler todos os bytes do arquivo original  Escrever os bytes no destino, objeto GZipStream FileStream fsDest = File.Create(‚Memorando.zip‛); byte[] bData = File.ReadAllBytes(‚Memorando.txt‛); GzipStream ArqCompactado = new GZipStream(fsDest, CompressioMode.Compress); ArqCompactado.Write(bData, 0, bData.Length); ArqCompactado.Flush(); ArqCompactado.Close(); fsDest.Close(); andre.lopes@studentpartners.com.br
  • 67. Introdução ao .NET Framework Arquivos  Serialização  Altenativa ao banco de dados *  Técnica usada para persistir objetos  Grava em disco  Transmissão pela rede  Formato binário  Formato texto andre.lopes@studentpartners.com.br
  • 68. Introdução ao .NET Framework Arquivos  Serialização  O objeto e todos os seus membros devem ser marcados com o atributo [Serializable]  Membro não serializados [NonSerializable]  System.Runtime.Serialization  System.Runtime.Serialization.Formatters.Binary  System.Runtime.Serialization.Formatters.Soap  Texto  Melhor para tráfego na rede andre.lopes@studentpartners.com.br
  • 69. Introdução ao .NET Framework Arquivos  Serialização  System.Xml.Serialization  Transitar dados entre sistemas diferentes  Somente membros públicos  Não precisa estar marcado como Serializable using System.Xml.Serialization; using System.IO; public class SerializaXML { internal void Serializa(object Objeto) { XmlSerializer xmlSer = new XmlSerializer(Objeto.GetType()); xmlSer.Serialize((new StreamWriter("test.xml")), Objeto); } } andre.lopes@studentpartners.com.br
  • 70. Introdução ao .NET Framework Arquivos Demo: Aplicação para compactação de arquivos  Compactar  Descompactar andre.lopes@studentpartners.com.br
  • 71. Introdução ao .NET Framework Arquivos Demo: Aplicação para serialização de arquivos  Serializar  Deserializar  Formato Binário andre.lopes@studentpartners.com.br
  • 72. Introdução ao .NET Framework Arquivos Manipulando arquivos e pastas  DriverInfo  DirectoryInfo  FileInfo  Path  Directory  FileSystemWatcher  TreeView  TreeNode andre.lopes@studentpartners.com.br
  • 73. Introdução ao .NET Framework Arquivos DriverInfo  DriverInfo.GetDrives()  DriverInfo di = new DriverInfo(@‚C:‛);  di.DriverType DriveType.CDRom DriveType.Fixed DriveType.Removable  di.TotalSize  di.TotalFreeSpace andre.lopes@studentpartners.com.br
  • 74. Introdução ao .NET Framework Arquivos DriverInfo //Obtém todos os drives do computador DriveInfo[] Drives = DriveInfo.GetDrives(); //Percorre cada Drive e mostra suas informações na tela foreach (DriveInfo di in Drives) { Console.WriteLine(di.Name); Console.WriteLine(di.AvailableFreeSpace); Console.WriteLine(di.TotalFreeSpace); Console.WriteLine(di.Totalpace); } andre.lopes@studentpartners.com.br
  • 75. Introdução ao .NET Framework Arquivos DirectoryInfo  DirectoryInfo Dir = new DirectoryInfo(@"C:Program Files");  Dir.Create()  Dir.CreateSubdirectory(‚Microsoft‛)  Dir.Delete()  Dir.Delete(true)  Dir.CreationTime  Dir.LastAccessTime  Dir.GetDirectories()  Dir.GetFiles()  Dir.Root  Dir.Parent andre.lopes@studentpartners.com.br
  • 76. Introdução ao .NET Framework Arquivos DirectoryInfo public void MontaDiretorio(string Dir) { Console.WriteLine(Dir); DirectoryInfo di = new DiretoryInfo(Dir); foreach(FileSystemInfo item in di.GetFileSystemInfos()) { if(item is FileInfo) { Console.WriteLine(string.Format(‚{0}-{1}‛, (item as FileInfo).Name, (item as FileInfo).Length)); } else if(item is DirectoryInfo) { Console.WriteLine((item as DirectoryInfo).Name); } } } andre.lopes@studentpartners.com.br
  • 77. Introdução ao .NET Framework Arquivos FileInfo  FileInfo fi = new FileInfo(@"C:Program FilesMessengermsnmsgr.exe");  fi.Create()  fi.Delete()  fi.Encrypt()  fi.Decrypt()  fi.CreationTime  fi.LastAccessTime  fi.Directory  fi.DirectoryName  fi.FullName  Dir.Extension  fi.Length andre.lopes@studentpartners.com.br
  • 78. Introdução ao .NET Framework Arquivos FileInfo public void PropriedadesArquivo(string FileName) { Console.WriteLine(FileName); //Cria o objeto com base no nome do FileInfo fi = new FileInfo(FileName); //Como o arquivo é medido em bytes, dividimos por //1024 para encontrar seu tamanho em KBytes Console.WriteLine(string.Format(‚Tamanho: {0} KB‛, fi.Length/1024)); Console.WriteLine(string.Format(‚Criação: {0}‛. fi.CreationTime.ToString(‚dd/MM/yyyy HH:mm:ss‛)); Console.WriteLine(string.Format(‚Caminho: {0}‛, fi.FullName)); } andre.lopes@studentpartners.com.br
  • 79. Introdução ao .NET Framework Arquivos  Directory  Expõe métodos estáticos para criação movimentação e enumeração de diretórios e subdiretórios.  Directory.CreateDirectory(‚Nome‛);  Directory.GetCurrentDirectory();  Directory.Move(‚Origem‛,‛Destino‛);  Directory.GetDirectories(@‚C:", "p*‚, SearchOption.TopDirectoryOnly);  SearchOption.TopDirectoryOnly  SearchOption.AllDirectories andre.lopes@studentpartners.com.br
  • 80. Introdução ao .NET Framework Arquivos  Path  Executa operações em instâncias de String que contêm arquivo ou diretório. Multi-plataforma  Path.GetTempFileName();  Path.GetTempPath();  Path.DirectorySeparatorChar;  Path.GetInvalidPathChars();  Path.GetInvalidFileNameChars(); andre.lopes@studentpartners.com.br
  • 81. Introdução ao .NET Framework Arquivos  FileSystemWatcher  Sinaliza qualquer modificação na estrutura de arquivo informada FileSystemWatcher fs = new FileSystemWatcher(); fs.Path = @"C:"; fs.IncludeSubdirectories = true; fs.EnableRaisingEvents = true; fs.Changed += new FileSystemEventHandler(Modificado); fs.Created += new FileSystemEventHandler(Modificado); fs.Deleted += new FileSystemEventHandler(Modificado); fs.Renamed += new RenamedEventHandler(Renomeado); andre.lopes@studentpartners.com.br
  • 82. Introdução ao .NET Framework Arquivos  FileSystemWatcher private static void Modificado(object source, FileSystemEventArgs e) { // Especifica o arquivo e se foi modificado, //criado, ou deletado. Console.WriteLine(‚Arquivo: " + e.FullPath + " " + e.ChangeType); } private static void Renomeado(object source, RenamedEventArgs e) { // Especifica o nome original e o novo do arquivo Console.WriteLine(‚Arquivo: {0} renomeado para {1}", e.OldFullPath, e.FullPath); } andre.lopes@studentpartners.com.br
  • 83. Introdução ao .NET Framework Arquivos  TreeView  Controle usado para mostrar informações hierárquicas, estrutura de arquivos, em uma estrutura de árvore  System.Windows.Forms - Info1 TreeNode +Info1.1 TreeNode +Info1.2 - Info1.3 TreeView +Info1.3.1 TreeNode +Info1.4 + Info2 + Info3 +Info3.1 andre.lopes@studentpartners.com.br
  • 84. Introdução ao .NET Framework Arquivos  TreeView  Nodes  Nodes  Nodes  ... andre.lopes@studentpartners.com.br
  • 85. Introdução ao .NET Framework Arquivos Demo: Aplicação para gerenciamento de arquivos  DirectoryInfo  FileInfo  TreeView  FileSystemWatcher  DriveInfo  TreeNode andre.lopes@studentpartners.com.br
  • 86. Introdução ao .NET Framework Gráficos  Desenhando Gráficos  Trabalhando com imagens  Formatando textos  Customizando controles andre.lopes@studentpartners.com.br
  • 87. Introdução ao .NET Framework Gráficos  System.Drawing  Criar gráficos a partir do zero  Adicionar circulos, linhas e outras formas a interface do usuário dinamicamente.  Editar e redimensionar figuras  Mudar taxa de compressão de imagens salvas no disco  Adicionar logomarcas copyright ou texto a imagens andre.lopes@studentpartners.com.br
  • 88. Introdução ao .NET Framework Gráficos  System.Drawing  Graphics  Região onde todo desenho é feito  Form  Button  Panel  etc  Control.CreateGraphics() andre.lopes@studentpartners.com.br
  • 89. Introdução ao .NET Framework Gráficos  System.Drawing  Brush  SolidBrush  SolidBrush solido = new SolidBrush(Color.Green);  LinearGradientBrush  Pen  Pen p = new Pen(Color.Red, 5);  Pen p = new Pen(solido,5); andre.lopes@studentpartners.com.br
  • 90. Introdução ao .NET Framework Gráficos  System.Drawing  Estilos de lápis  Pen p = new Pen(Color.Red, 5);  P.DashStyle = DashStyle.Dot  P.DashStyle = DashStyle.Dash  P.DashStyle = DashStyle.DashDot  P.DashStyle = DashStyle.Solid andre.lopes@studentpartners.com.br
  • 91. Introdução ao .NET Framework Gráficos  System.Drawing  Estilos de lápis  Pen p = new Pen(Color.Red, 5);  p.StartCap = LineCap.ArrowAnchor;  p.EndCap = LineCap.ArrowAnchor;  p.StartCap = LineCap.DiamondAnchor; andre.lopes@studentpartners.com.br
  • 92. Introdução ao .NET Framework Gráficos  System.Drawing  Graphics grafico = this.CreateGraphics();  grafico.DrawEllipse(Pen, Rectangle);  grafico.FillEllipse(Pen, Rectangle);  Image imagem = Image.FromFile(‚C:Foto.jpg‛);  grafico.DrawImage(imagem, Point);  grafico.DrawLine(Pen, Point, Point);  grafico.DrawLines(Pen, Point[]); andre.lopes@studentpartners.com.br
  • 93. Introdução ao .NET Framework Gráficos  System.Drawing  grafico.DrawPie(Pen, Rectangle,fAnguloIni, fAnguloFim);  grafico.DrawPie(new Pen(Color.Black), new Rectangle(50,50,250,250),0,90);  grafico.DrawPie(new Pen(Color.Black), new Rectangle(50,50,250,250),0,270); andre.lopes@studentpartners.com.br
  • 94. Introdução ao .NET Framework Gráficos  System.Drawing  grafico.FillElipse(Brush, Rectangle);  grafico.FillPolygon(Brush, Rectangle);  grafico.DrawPolygon(Pen, Rectangle); andre.lopes@studentpartners.com.br
  • 95. Introdução ao .NET Framework Gráficos Demo: Trabalhando com linhas e formas  Pen  SolidBrush  LinearGradientBrush  Graphics  UserControl andre.lopes@studentpartners.com.br
  • 96. Introdução ao .NET Framework Gráficos  Imagens  PictureBox  PictureBox img = new PictureBox();  img.BackgroundImage = Image.FromFile(‚foto.jpg‛);  img.BackgroundImage = new Bitmap(‚foto.jpg‛);  img.SizeMode = PictureBoxSizeMode.AutoSize;  PictureBoxSizeMode.StretchImage  PictureBoxSizeMode.Normal
  • 97. Introdução ao .NET Framework Gráficos  Imagens  Bitmap  Bitmap bmp = new Bitmap(1920, 1080);  Graphics AreaGrafica = Graphics.FromImage(bmp);  Brush b = new LinearGradientBrush(new Point(1, 1),new Point(1920, 1080),Color.White,Color.Red);  AreaGrafica.FillRectangle(b, 1, 1, 1920, 1080);  Bmp.Save(‚imagem.jpg‛, ImageFormat.Jpeg); andre.lopes@studentpartners.com.br
  • 98. Introdução ao .NET Framework Gráficos  Imagens  Bitmap private static Image RecortaImagem(this Image imagem, Rectangle AreaCorte) { Bitmap bmpImage = new Bitmap(img); Bitmap bmpRecorte = bmpImage.Clone(AreaCorte, bmpImage.PixelFormat); return (Image)(bmpRecorte); } andre.lopes@studentpartners.com.br
  • 99. Introdução ao .NET Framework Gráficos  Textos  FontFamily  FontFamily ff = new FontFamily(‚Consolas‛);  Font  Font font = new Font(ff,16); font.Bold = true; font.Italic = false;  FontConverter conversor = new FontConverter(); font = (Font)conversor.ConvertFromString(‚Arial,12‛);  grafico.DrawString(‚.Net Framework‛, font, Brushes.Black, Point); andre.lopes@studentpartners.com.br
  • 100. Introdução ao .NET Framework Gráficos Demo: Trabalhando imagens e textos  Pen  SolidBrush  Graphics andre.lopes@studentpartners.com.br
  • 101. Introdução ao .NET Framework Gráficos  Customização  A grande maioria dos tipos em .Net são classes  Os controles gráficos (botões, formulários, etc) são classes  Podem ser herdados  Métodos podem ser sobrecarredaos  Todo tipo gráfico tem um evento chamado OnPaint protected void OnPaint(PaintEventArgs e) { e.Grapics.DrawLine(Pen, Point, Point); base.OnPaint(e); } andre.lopes@studentpartners.com.br
  • 102. Introdução ao .NET Framework Gráficos  Customização public sealed class ButtonComLinhas : System.Windows.Forms.Button { public ButtonComLinhas(){} protected override void OnPaint(PaintEventArgs e) { e.Graphics.DrawRectangle(new Pen(Brushes.Black), e.ClipRectangle); base.OnPaint } } andre.lopes@studentpartners.com.br
  • 103. Introdução ao .NET Framework Gráficos Demo: Customização de controles  Pen  SolidBrush  LinearGradientBrush  Graphics  UserControl andre.lopes@studentpartners.com.br
  • 104. Introdução ao .NET Framework Threads  BackgroundWorker  Processosassíncronos  ThreadStart  Customizando controles andre.lopes@studentpartners.com.br
  • 105. Introdução ao .NET Framework Threads  Multi Thread  Tarefas que demoram para serem concluídas travam a interface do usuário durante todo seu processamento  Impressão de relatórios  Download de arquivos  Consultas ao banco de dados  Cálculo complexos  Taferas assíncronas  BackgroundWorker  Várias tarefas ao mesmo tempo  Thread andre.lopes@studentpartners.com.br
  • 106. Introdução ao .NET Framework Threads  Multi Thread 10 min 10 min 10 min 10 min Tarefa 1 Tarefa 2 Tarefa 3 Tarefa 4 40 min  Se, e somente se, as tarefas forem independentes Tarefa 1 Tarefa 2 10 min Tarefa 3 Tarefa 4 andre.lopes@studentpartners.com.br
  • 107. Introdução ao .NET Framework Threads  BackgroundWorker  Não manipular a interface do usuário  ProgressChanged  RunWorkerCompleted  System.ComponentModel BackgroundWorker bWorker = new BackgroundWorker(); bWorker.DoWork += new DoWorkEventHandler(CalcFatorial); bWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Fatorial_Completo); bWorker.RunWorkerAsync(10); andre.lopes@studentpartners.com.br
  • 108. Introdução ao .NET Framework Threads  BackgroundWorker private void CalcFatorial(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; e.Result = Fatorial((int)e.Argument); } public ulong Fatorial(uint Numero) { if(Numero <= 1) return 1; else return Numero * Fatorial(Numero - 1); } andre.lopes@studentpartners.com.br
  • 109. Introdução ao .NET Framework Threads  BackgroundWorker private void Fatorial_Completo(object sender, RunWorkerCompletedEventArgs e) { MessageBox.Show(‚O Fatorial é ‛+ e.Result.ToString()); } andre.lopes@studentpartners.com.br
  • 110. Introdução ao .NET Framework Threads  Thread  Para acessar a UI devemos “invocar” a Thread principal  ThreadStart  ParameterizedThreadStart Thread thr = new Thread(new ParameterizedThreadStart( CalcFatorial)); thr.Star(10); andre.lopes@studentpartners.com.br
  • 111. Introdução ao .NET Framework Threads  Thread public delegate void EscreveMsgDelegate(string Mensagem); public void EscreveMsg(string Mensagem) { MessageBox.Show(Mensagem); } private void CalcFatorial(objetc valor) { ulong fat = Fatorial((int)valor); EscreveMsgDelegate MsgDelegate = new EscreveMsgDelegate(EscreveMsg); this.Invoke(MsgDelegate, new object[] {‚O valor do fatorial de ‛ + valor.ToString + ‚ é igual a ‛ + fat.ToString() } ); } andre.lopes@studentpartners.com.br
  • 112. Introdução ao .NET Framework Threads Demo: Usando Theads para cálculos complexos  Thread  ParameterizedThreadStart  Delegate  Invoke andre.lopes@studentpartners.com.br
  • 113. Introdução ao .NET Framework The End andre.lopes@studentpartners.com.br