introducao ao .net
TRANSCRIPT
![Page 1: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/1.jpg)
Introdução ao .NET
Framework
System, Console, Drawing,
Math, OleDB, Form,
Control, DialogResult,
DllImport, FileStream,
Security, References,
Microsoft, Type,
ComboBox, Main, List,
HashTable, Activator,
DataSet, DataReader,
DateTime.Now, Exception,
MessageBox, Application,
WebService . . .
(sc)2
1º Simpósio de Computação do Sul Capixaba
“Todas as áreas
computando novas idéias”
![Page 2: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/2.jpg)
Introdução ao .NET Framework
Framework de desenvolvimento
Oque é
Windows Forms
Web Forms
Web Services
Console Application
Class Library
Windows Service
![Page 3: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/3.jpg)
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
Servidores
Web Services
Desenvolvedores Microsoft
.NET
![Page 4: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/4.jpg)
Introdução ao .NET Framework
Multiplataforma
.NET Framework
Microsoft .NET Framework
Mono
Suporte a várias linguagens de programação
Encapsulamento o SO através da CLR
![Page 5: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/5.jpg)
O .NET aceita várias linguagens de progra-mação (C#, VB, C++, Delphi, entre outras) . As bibliotecas ( o framework em si ) possuem uma grande coleção de classes que podem ser usadas e implementadas em sua aplicação. O CLR é quem gerencia a execução do código, juntamente com o Garbage Collector.
Linguagens de Programação
Framework 1.1
Framework 2.0
Framework 3.5
Bibliotecas .NET
Common Language Runtime
Sistema Operacional
Introdução ao .NET Framework
.NET Framework
![Page 6: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/6.jpg)
Introdução ao .NET Framework
.NET Framework
1
2
3
Código Fonte C#, VB, C++ MSIL Code
Compilador MSIL
MSIL Code Código de Máquina
JIT Compiler
Código de Máquina Aplicação
CLR
![Page 7: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/7.jpg)
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
![Page 8: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/8.jpg)
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
![Page 9: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/9.jpg)
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
![Page 10: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/10.jpg)
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
![Page 11: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/11.jpg)
Demo: Conhecendo o Visual
Studio
Console Application
Windows Application
Class Library
Project
Solution
Debug
Code Snipeet
Documentação
Introdução ao .NET Framework
![Page 12: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/12.jpg)
Demo: Programando com o
Visual Studio
Console Application
Classe Console
Delegates e Métodos Anônimos
Unsafe Code
Extension Methods
Introdução ao .NET Framework
![Page 13: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/13.jpg)
Windows Application
Formulários
MDI
SDI
Design
Controles
Tratamento de erros
Membros estáticos
Demo: Programando com o
Visual Studio
Introdução ao .NET Framework
![Page 14: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/14.jpg)
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
Introdução ao .NET Framework
![Page 15: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/15.jpg)
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
Tarefa: Programando com o
Visual Studio
Introdução ao .NET Framework
![Page 16: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/16.jpg)
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‛);
string s = sb.ToString();
sb.AppendText(‚ .Net ‛);
sb.AppendText(‚Framework‛);
‚Microsoft‛
‚.Net ‛
‚Framework‛
‚Microsoft .Net Fr‛
![Page 17: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/17.jpg)
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
Data/Hora
IP
Método complexo, porém rápido de validar valores. Ao invés
de usar try...cath
^\d{5}$
Início da expressão
Somente Números
5 dígitos
Fim da expressão
![Page 18: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/18.jpg)
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
![Page 19: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/19.jpg)
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
![Page 20: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/20.jpg)
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();
![Page 21: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/21.jpg)
Introdução ao .NET Framework
.NET Framework
Coleções
.Net 1.0
System.Collections
.Net 2.0
System.Collections.Generic
System.Collections.Specialized
Listas
Dicionários
![Page 22: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/22.jpg)
Introdução ao .NET Framework
.NET Framework
Interfaces de Coleções
IEnumerable
ICollection
IList IDictionary
![Page 23: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/23.jpg)
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
![Page 24: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/24.jpg)
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); }
![Page 25: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/25.jpg)
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()); }
![Page 26: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/26.jpg)
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()); }
![Page 27: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/27.jpg)
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)); }
![Page 28: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/28.jpg)
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
![Page 29: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/29.jpg)
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];
![Page 30: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/30.jpg)
Demo: Trabalhando com
coleções
Collections
Collections.Generics
List
Dictionary
Linq
Introdução ao .NET Framework
![Page 31: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/31.jpg)
Introdução ao .NET Framework
Namespaces
System.Data
System.IO
System.Drawing
System.Threading
System.Diagnostics
![Page 32: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/32.jpg)
Acesso a dados
Banco de dados
Componentes
Acesso a banco de dados (SQL Server)
Acesso a arquivos XML
Desenvolvimento em camadas
Introdução ao .NET Framework
![Page 33: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/33.jpg)
Banco de Dados
Introdução ao .NET Framework
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
![Page 34: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/34.jpg)
Banco de Dados
Introdução ao .NET Framework
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
Coluna
Registro
Tabela de Pessoas
![Page 35: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/35.jpg)
Banco de Dados
Introdução ao .NET Framework
Conceitos Importantes
Chave primária
Chave estrangeira
Views
![Page 36: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/36.jpg)
SQL
Structured Query Language
Introdução ao .NET Framework
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
![Page 37: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/37.jpg)
SQL
Structured Query Language
Introdução ao .NET Framework
DCL
GRANT GRANT SELET OF UF TO ‘user1’
REVOKE REVOKE SELET OF UF TO ‘user1’
DML
DELETE DELETE FROM UF WHERE ID = 1
SELECT SELECT * FROM UF
![Page 38: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/38.jpg)
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
Introdução ao .NET Framework
![Page 39: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/39.jpg)
Tabelas
Introdução ao .NET Framework
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
![Page 40: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/40.jpg)
Tabelas
Introdução ao .NET Framework
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
![Page 41: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/41.jpg)
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
IDataReader
IDataAdapter
Banco de Dados
DataSet
![Page 42: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/42.jpg)
Introdução ao .NET Framework
ADO.NET
IDbConnection
IDbCommand Banco De Dados
Aplicação
IDataReader
![Page 43: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/43.jpg)
Introdução ao .NET Framework
ADO.NET
IDbConnection
Open()
Close()
ConnectionString
State
![Page 44: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/44.jpg)
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();
Data Source=Endereço do SQLServer; Initial Catalog =Nome do Banco de dados; Integrated Security=SSPI;
String de Conexão do SQL Server
http://www.connectionstrings.com/
![Page 45: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/45.jpg)
Introdução ao .NET Framework
ADO.NET
IDbCommand
CommandText
CommandType
Connection
ExecuteNonQuery
ExecuteReader
ExecuteScalar
![Page 46: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/46.jpg)
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();
![Page 47: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/47.jpg)
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();
![Page 48: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/48.jpg)
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); }
![Page 49: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/49.jpg)
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();
![Page 50: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/50.jpg)
Introdução ao .NET Framework
ADO.NET
DataSet
DataTable
DataRow
DataColumn
PrimaryKey
DataRelation
![Page 51: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/51.jpg)
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;
![Page 52: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/52.jpg)
Introdução ao .NET Framework
ADO.NET
Controles para manipulação de dados
DataGridView
DataGridView dgvCidades = new DataGridView(); dgvCidade.DataSource = dtCidade;
![Page 53: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/53.jpg)
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;
![Page 54: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/54.jpg)
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
<?xml version="1.0" encoding="UTF-8"?> <Pessoa> <Nome>Will</Nome> <Idade>27</Idade> </Pessoa>
Tag introdutória do xml, versão e encodificação
Abre a tag Pessoa
Fecha a tag Pessoa
![Page 55: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/55.jpg)
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>
![Page 56: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/56.jpg)
Introdução ao .NET Framework
ADO.NET
Demo: Usando XML para acesso a dados
XML
DataSet
DataTable
DataGridView
![Page 57: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/57.jpg)
Demo: Aplicação multi cama-
da para acesso a dados
SQL Server
ADO.NET
Camadas
Generics
OO
Introdução ao .NET Framework
ADO.NET
![Page 58: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/58.jpg)
Arquivos
Manipulação de Arquivos
Escrita / Leitura
Encriptação
Compactação
Serialização
Introdução ao .NET Framework
![Page 59: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/59.jpg)
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‛);
![Page 60: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/60.jpg)
Introdução ao .NET Framework
Arquivos
FileStream
FileStream fs = new FileStream(‚NomeDoArquivo‛, FileMode, FileAccess);
FileMode.Append
FileMode.Create
FileMode.Open
FileAccess.Read
FileAccess.Write
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
![Page 61: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/61.jpg)
Introdução ao .NET Framework
Arquivos
StreamWriter
StreamWriter sw = new StreamWriter(fs); StreamWriter sw = new StreamWriter(‚Nome Do Arquivo‛);
sw.Write(Tipo);
sw.WriteLine(Tipo);
char
bool
float
decimal
string
etc . . .
Exeto
Byte
sw.Flush();
sw.Close();
![Page 62: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/62.jpg)
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();
![Page 63: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/63.jpg)
Demo: Aplicação para cópia
de arquivos
File
FileStream
Byte[]
Cópia de arquivos
Introdução ao .NET Framework
Arquivos
![Page 64: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/64.jpg)
Demo: Leitura e escrita de
arquivos texto
StreamReader
StreamWriter
Introdução ao .NET Framework
Arquivos
![Page 65: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/65.jpg)
Introdução ao .NET Framework
Arquivos
Compactação
Formato zip
System.IO. Compression
DeflateStream
GZipStream
CompressionMode.Compress CompressionMode.Decompress
![Page 66: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/66.jpg)
Introdução ao .NET Framework
Arquivos
Compactação
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();
Criar um GZipStream para compactar os dados
Ler todos os bytes do arquivo original
Escrever os bytes no destino, objeto GZipStream
![Page 67: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/67.jpg)
Introdução ao .NET Framework
Arquivos
Serialização
Técnica usada para persistir objetos
Grava em disco
Transmissão pela rede
Formato binário
Formato texto
Altenativa ao banco de dados *
![Page 68: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/68.jpg)
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
![Page 69: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/69.jpg)
Introdução ao .NET Framework
Arquivos
Serialização
System.Xml.Serialization
Transitar dados entre sistemas diferentes
Somente membros públicos
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); } }
Não precisa estar marcado como Serializable
![Page 70: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/70.jpg)
Demo: Aplicação para
compactação de arquivos
Compactar
Descompactar
Introdução ao .NET Framework
Arquivos
![Page 71: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/71.jpg)
Demo: Aplicação para
serialização de arquivos
Serializar
Deserializar
Formato Binário
Introdução ao .NET Framework
Arquivos
![Page 72: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/72.jpg)
Introdução ao .NET Framework
Arquivos
Manipulando arquivos e pastas
DriverInfo
DirectoryInfo
FileInfo
Path
Directory
FileSystemWatcher
TreeView
TreeNode
![Page 73: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/73.jpg)
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
![Page 74: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/74.jpg)
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); }
![Page 75: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/75.jpg)
Introdução ao .NET Framework
Arquivos
DirectoryInfo
DirectoryInfo Dir = new DirectoryInfo(@"C:\Program Files");
Dir.Create()
Dir.Delete() Dir.Delete(true)
Dir.CreateSubdirectory(‚Microsoft‛)
Dir.CreationTime
Dir.GetDirectories() Dir.GetFiles()
Dir.Root Dir.Parent
Dir.LastAccessTime
![Page 76: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/76.jpg)
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); } } }
![Page 77: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/77.jpg)
Introdução ao .NET Framework
Arquivos
FileInfo
FileInfo fi = new FileInfo(@"C:\Program Files\Messenger\msnmsgr.exe");
fi.Create()
fi.Encrypt() fi.Decrypt()
fi.Delete()
fi.CreationTime
fi.Directory fi.DirectoryName
fi.FullName Dir.Extension
fi.LastAccessTime
fi.Length
![Page 78: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/78.jpg)
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)); }
![Page 79: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/79.jpg)
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
![Page 80: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/80.jpg)
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();
![Page 81: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/81.jpg)
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);
![Page 82: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/82.jpg)
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); }
![Page 83: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/83.jpg)
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 +Info1.1 +Info1.2 - Info1.3 +Info1.3.1 +Info1.4
+ Info2 + Info3 +Info3.1
TreeNode
TreeNode
TreeNode TreeView
![Page 85: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/85.jpg)
Demo: Aplicação para
gerenciamento de arquivos
DirectoryInfo
FileInfo
TreeView
FileSystemWatcher
DriveInfo
TreeNode
Introdução ao .NET Framework
Arquivos
![Page 86: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/86.jpg)
Gráficos
Desenhando Gráficos
Trabalhando com imagens
Formatando textos
Customizando controles
Introdução ao .NET Framework
![Page 87: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/87.jpg)
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
![Page 88: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/88.jpg)
Introdução ao .NET Framework
Gráficos
System.Drawing
Graphics
Região onde todo desenho é feito
Form
Button
Panel
etc
Control.CreateGraphics()
![Page 89: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/89.jpg)
Introdução ao .NET Framework
Gráficos
System.Drawing
Pen
Pen p = new Pen(Color.Red, 5);
Brush
SolidBrush
SolidBrush solido = new SolidBrush(Color.Green);
LinearGradientBrush
Pen p = new Pen(solido,5);
![Page 90: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/90.jpg)
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
![Page 91: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/91.jpg)
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;
![Page 92: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/92.jpg)
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[]);
![Page 93: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/93.jpg)
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);
![Page 94: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/94.jpg)
Introdução ao .NET Framework
Gráficos
System.Drawing
grafico.FillElipse(Brush, Rectangle);
grafico.FillPolygon(Brush, Rectangle);
grafico.DrawPolygon(Pen, Rectangle);
![Page 95: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/95.jpg)
Demo: Trabalhando com
linhas e formas
Pen
SolidBrush
LinearGradientBrush
Graphics
UserControl
Introdução ao .NET Framework
Gráficos
![Page 96: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/96.jpg)
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
![Page 97: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/97.jpg)
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);
![Page 98: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/98.jpg)
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); }
![Page 99: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/99.jpg)
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);
![Page 100: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/100.jpg)
Introdução ao .NET Framework
Gráficos
Demo: Trabalhando imagens
e textos
Pen
SolidBrush
Graphics
![Page 101: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/101.jpg)
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); }
![Page 102: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/102.jpg)
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 } }
![Page 103: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/103.jpg)
Introdução ao .NET Framework
Gráficos
Demo: Customização de
controles
Pen
SolidBrush
LinearGradientBrush
Graphics
UserControl
![Page 104: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/104.jpg)
Threads
BackgroundWorker
Processos assíncronos
ThreadStart
Customizando controles
Introdução ao .NET Framework
![Page 105: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/105.jpg)
Introdução ao .NET Framework
Threads
Multi Thread
Várias tarefas ao mesmo tempo
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
Thread
Taferas assíncronas
BackgroundWorker
![Page 106: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/106.jpg)
Threads
Multi Thread
Introdução ao .NET Framework
Tarefa 1 Tarefa 2 Tarefa 3 Tarefa 4
10 min 10 min 10 min 10 min
Se, e somente se, as tarefas forem independentes
Tarefa 2
Tarefa 1
Tarefa 4
Tarefa 3
40 min
10 min
![Page 107: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/107.jpg)
Introdução ao .NET Framework
Threads
BackgroundWorker
Não manipular a interface do usuário
RunWorkerCompleted
ProgressChanged
BackgroundWorker bWorker = new BackgroundWorker(); bWorker.DoWork += new DoWorkEventHandler(CalcFatorial); bWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Fatorial_Completo); bWorker.RunWorkerAsync(10);
System.ComponentModel
![Page 108: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/108.jpg)
Introdução ao .NET Framework
Threads
BackgroundWorker
public ulong Fatorial(uint Numero) { if(Numero <= 1) return 1; else return Numero * Fatorial(Numero - 1); }
private void CalcFatorial(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; e.Result = Fatorial((int)e.Argument); }
![Page 109: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/109.jpg)
Introdução ao .NET Framework
Threads
BackgroundWorker
private void Fatorial_Completo(object sender, RunWorkerCompletedEventArgs e) { MessageBox.Show(‚O Fatorial é ‛+ e.Result.ToString()); }
![Page 110: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/110.jpg)
Introdução ao .NET Framework
Threads
ParameterizedThreadStart
Para acessar a UI devemos “invocar” a Thread principal
Thread
ThreadStart
Thread thr = new Thread(new ParameterizedThreadStart( CalcFatorial)); thr.Star(10);
![Page 111: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/111.jpg)
Introdução ao .NET Framework
Threads
Thread
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() } ); }
public delegate void EscreveMsgDelegate(string Mensagem);
public void EscreveMsg(string Mensagem) { MessageBox.Show(Mensagem); }
![Page 112: Introducao ao .Net](https://reader033.vdocuments.us/reader033/viewer/2022052907/559233181a28ab162f8b47a1/html5/thumbnails/112.jpg)
Demo: Usando Theads para
cálculos complexos
Thread
ParameterizedThreadStart
Delegate
Invoke
Threads
Introdução ao .NET Framework