Introducao ao .Net
Upcoming SlideShare
Loading in...5
×
 

Introducao ao .Net

on

  • 1,608 views

 

Statistics

Views

Total Views
1,608
Views on SlideShare
1,608
Embed Views
0

Actions

Likes
1
Downloads
55
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introducao ao .Net Introducao ao .Net Presentation Transcript

  • (sc)2 Introdução ao1º Simpósio de .NET FrameworkComputação doSul 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 FrameworkOque é  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 ServidoresMicrosoft .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 FrameworkO .NET aceita váriaslinguagens de progra- Linguagens de Programaçãomação (C#, VB, C++,Delphi, entre outras) . Asbibliotecas ( o framework Framework Framework Frameworkem si ) possuem uma 1.1 2.0 3.5grande coleção de classesque podem ser usadas eimplementadas em sua Bibliotecas .NETaplicação. O CLR é quemgerencia a execução docódigo, juntamente com o Common Language RuntimeGarbage Collector. Sistema Operacional andre.lopes@studentpartners.com.br
  • Introdução ao .NET Framework.NET Framework1 Compilador MSIL Código Fonte C#, VB, C++ MSIL Code2 JIT Compiler Código de MSIL Code Máquina3 CLR Código de Máquina Aplicação andre.lopes@studentpartners.com.br
  • Introdução ao .NET Framework.NET FrameworkO .NET Framework está organizado em namespaces, demodo 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 FrameworkMicrosoft 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 FrameworkDemo: Conhecendo o VisualStudio Console Application Windows Application Class Library Project Solution Debug Code Snipeet Documentação andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkDemo: Programando com oVisual Studio Console Application  Classe Console  Delegates e Métodos Anônimos  Unsafe Code  Extension Methods andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkDemo: Programando com oVisual Studio Windows Application  Formulários  MDI  SDI  Design  Controles  Tratamento de erros  Membros estáticos andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkTarefa: Programando com oVisual 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 FrameworkTarefa: Programando com oVisual 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óriaStringBuilder sb = new StringBuilder(); Memóriasb.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 FrameworkDemo: Trabalhando comcoleções Collections Collections.Generics List Dictionary Linq andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkNamespaces  System.Data  System.IO  System.Diagnostics  System.Drawing  System.Threading andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkAcesso 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 FrameworkBanco 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 FrameworkBanco de Dados Coluna ID Nome CPF Cidade1 Andre 12345678921 Alegre2 Paulo 12469487670 Cachoeiro3 Carlos 10457672930 Vitória4 João 10394874820 Belo Horizonte5 Maria 05937375958 Guaçui6 José 30495782845 São Paulo Registro Tabela de Pessoas andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkBanco de Dados Conceitos Importantes  Chave primária  Chave estrangeira  Views andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkSQL  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 FrameworkSQL  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 FrameworkTafera: 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 FrameworkTabelas  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 FrameworkTabelas  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 FrameworkADO.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 IDbConnectionBancoDe IDbCommandDados IDataReader Aplicação andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkADO.NET  IDbConnection  Open()  Close()  ConnectionString  State andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkADO.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 FrameworkADO.NET  IDbCommand  CommandText  CommandType  Connection  ExecuteNonQuery  ExecuteReader  ExecuteScalar andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkADO.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 FrameworkADO.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 FrameworkADO.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 FrameworkADO.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 FrameworkADO.NET  DataSet  DataTable  DataRow  DataColumn  PrimaryKey  DataRelation andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkADO.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 FrameworkADO.NET  Controles para manipulação de dados  DataGridView DataGridView dgvCidades = new DataGridView(); dgvCidade.DataSource = dtCidade; andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkADO.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 FrameworkADO.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 FrameworkADO.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 FrameworkADO.NETDemo: Usando XML para acesso adados XML DataSet DataTable DataGridView andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkADO.NETDemo: Aplicação multi cama-da para acesso a dados SQLServer ADO.NET Camadas Generics OO andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivos Manipulação de Arquivos Escrita / Leitura Encriptação Compactação Serialização andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivos  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 FrameworkArquivos  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 FrameworkArquivos  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 FrameworkArquivos  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 FrameworkArquivosDemo: Aplicação para cópiade arquivos File FileStream Byte[] Cópia de arquivos andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivosDemo: Leitura e escrita dearquivos texto StreamReader StreamWriter andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivos  Compactação  Formato zip  System.IO. Compression  DeflateStream CompressionMode.Compress  GZipStream CompressionMode.Decompress andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivos  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 FrameworkArquivos  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 FrameworkArquivos  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 Serializableusing 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 FrameworkArquivosDemo: Aplicação paracompactação de arquivos Compactar Descompactar andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivosDemo: Aplicação paraserialização de arquivos Serializar Deserializar Formato Binário andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivosManipulando arquivos e pastas  DriverInfo  DirectoryInfo  FileInfo  Path  Directory  FileSystemWatcher  TreeView  TreeNode andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivosDriverInfo  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 FrameworkArquivosDriverInfo //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 FrameworkArquivosDirectoryInfo  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 DirectoryInfopublic 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 FrameworkArquivosFileInfo  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 FrameworkArquivosFileInfo 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 FrameworkArquivos  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 FrameworkArquivos  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 FrameworkArquivos  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 FrameworkArquivos  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.3TreeView +Info1.3.1 TreeNode +Info1.4 + Info2 + Info3 +Info3.1 andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivos  TreeView  Nodes  Nodes  Nodes  ... andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkArquivosDemo: Aplicação paragerenciamento de arquivos DirectoryInfo FileInfo TreeView FileSystemWatcher DriveInfo TreeNode andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkGráficos Desenhando Gráficos Trabalhando com imagens Formatando textos Customizando controles andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkGrá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 FrameworkGrá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 FrameworkGrá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 FrameworkGrá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 FrameworkGrá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 FrameworkGrá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 FrameworkGrá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 FrameworkGráficos  System.Drawing  grafico.FillElipse(Brush, Rectangle);  grafico.FillPolygon(Brush, Rectangle);  grafico.DrawPolygon(Pen, Rectangle); andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkGráficosDemo: Trabalhando comlinhas e formas Pen SolidBrush LinearGradientBrush Graphics UserControl andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkGrá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 FrameworkGrá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 FrameworkGrá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 FrameworkGrá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 FrameworkGráficosDemo: Trabalhando imagense textos Pen SolidBrush Graphics andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkGrá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çãopublic 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 FrameworkGráficosDemo: Customização decontroles Pen SolidBrush LinearGradientBrush Graphics UserControl andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkThreads BackgroundWorker Processosassíncronos ThreadStart Customizando controles andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkThreads  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 FrameworkThreads  Multi Thread 10 min 10 min 10 min 10 minTarefa 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 FrameworkThreads  BackgroundWorker  Não manipular a interface do usuário  ProgressChanged  RunWorkerCompleted  System.ComponentModelBackgroundWorker bWorker = new BackgroundWorker();bWorker.DoWork += new DoWorkEventHandler(CalcFatorial);bWorker.RunWorkerCompleted += newRunWorkerCompletedEventHandler(Fatorial_Completo);bWorker.RunWorkerAsync(10); andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkThreads  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 FrameworkThreads  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 FrameworkThreads  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 FrameworkThreads  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 FrameworkThreadsDemo: Usando Theads paracálculos complexos Thread ParameterizedThreadStart Delegate Invoke andre.lopes@studentpartners.com.br
  • Introdução ao .NET FrameworkThe End andre.lopes@studentpartners.com.br