SlideShare ist ein Scribd-Unternehmen logo
1 von 113
Downloaden Sie, um offline zu lesen
(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

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação java
Apresentação javaApresentação java
Apresentação java
munosai
 

Was ist angesagt? (20)

Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
 
Java RMI
Java RMIJava RMI
Java RMI
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Introdução ao Java
Introdução ao JavaIntrodução ao Java
Introdução ao Java
 
Introdução à Programação em Java - Aula 1 (PT-PT)
Introdução à Programação em Java - Aula 1 (PT-PT)Introdução à Programação em Java - Aula 1 (PT-PT)
Introdução à Programação em Java - Aula 1 (PT-PT)
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Cebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET CoreCebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET Core
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Manual
ManualManual
Manual
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 

Ähnlich wie Introducao ao .Net

Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC Marília
Elvis Fusco
 
Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO)
Grupo Treinar
 

Ähnlich wie Introducao ao .Net (20)

Arquitetura[.net]
Arquitetura[.net]Arquitetura[.net]
Arquitetura[.net]
 
Aula 1
Aula 1Aula 1
Aula 1
 
Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC Marília
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Sessao1a
Sessao1aSessao1a
Sessao1a
 
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
 
Csharp
CsharpCsharp
Csharp
 
Novidades do .NET 3.5
Novidades do .NET 3.5Novidades do .NET 3.5
Novidades do .NET 3.5
 
C sharp lesson1
C sharp lesson1C sharp lesson1
C sharp lesson1
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
1º FasS2B 2010
1º FasS2B 20101º FasS2B 2010
1º FasS2B 2010
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
 
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformaTDC2016POA | Trilha .NET - 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
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Plataforma .Net
Plataforma .NetPlataforma .Net
Plataforma .Net
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012
 
Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO)
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

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