Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SEGUNDA FASE
rea de Desenvolvimento
de Sistemas
Tpicos
abordados:
Aula 1
Aplicativos Web
Aplicativos para Servidores
Aplicativos Smart Client
Aplicativos de Console
Aplicativos de Banco de Dados
Servios Windows
Web Services e muito mais
.NET Framework
VB
C++
C#
JScript
...
Windows Forms
Common
Servios
de gerenciamento de memria
Servios de tratamento de excees
Servios de compilao
Servios de segurana, etc.
Compilao
Source
Code
Language
Compiler
Execuo
Native
Code
JIT Compiler
Code
MSIL
Metadata
Antes da
instalao ou a
primeira vez que
cada mtodo
chamado
Cdigo
Fonte
Cdigo
Gerencivel
VB
C#
C++
Compilador
Compilador
Compilador
Assembly - Cdigo IL
Cdigo Nativo
Componente
No Gerencivel
Managed
Cdigo Fonte
Compilador
Cdigo Intermedirio (IL): .DLL ou .EXE
Requer o ambiente CLR para executar
Cdigo de Mquina (Binrio)
Unmanaged
Cdigo Fonte
Compilador
Cdigo de Mquina (Binrio)
NO requer o ambiente CLR para executar
Microsoft
Visual Basic.NET
Microsoft C#
Microsoft C++ (Gerenciado/No-Gerenciado)
Microsoft J#
Outras:
http://www.dotnetlanguages.net
http://www.dotnetpowered.com
Aula 1
Um
Desenvolver
Demonstrao
File
Aula 1
byte
sbyte
int
uint
long
ulong
short
ushort
decimal Ponto flutuante decimal. Este tipo tem uma preciso de 28 casas decimais.
double
Ponto flutuante binrio. Este tipo tem uma preciso de 15 casas decimais.
float
Ponto flutuante binrio. Este tipo tem uma preciso de 7 casas decimais.
bool
char
string
Armazenado
na memria Stack.
Trabalha com dados diretamente.
No pode ser nulo.
Exemplo:
Inteiros
Decimais
Booleanos
Estruturas
Enumeradores
STACK
...
idade
19
salrio
500.00
brasileiro
Contm
Nome
...
HEAP
...
Nome
Texto
#XXXX
int i = 123;
object O;
O = i;
string S;
S = O.ToString()
int x;
x = (int) O;
Stack
i
O
x
Heap
123
123
123
int i = 123;
object O;
O = i;
string S;
S = O.ToString();
int x;
x = (int) O;
STACK
123
HEAP
...
...
i
...
123
O
...
123
123
Aritmticos
+, -, *, /, %
Atribuio
Concatenao
Criao de Objetos
New
Igualdade e Diferena
==, !=
Incremento e Decremento
++, --
Lgicos
Primrios
Relacionais
if
switch
case
for
Valor inicial
Condio para parada das iteraes
Quantidade de incrementos/decrementos a cada iterao
while
do
... while
// Exemplo I
string S = 123;
int i = S;
Response.Write(i);
// Exemplo IV
string S = valor;
int i = Convert.ToInt32(S);
Response.Write(i);
// Exemplo II
string S = "123";
int i = Convert.ToInt32(S);
Response.Write(i);
// Exemplo V
string S = "valor";
int i = 0;
if (int.TryParse(S, out i))
{
Response.Write(i);
}
else
{
Response.Write(valor
invlido.);
}
// Exemplo III
string S = 123;
int i = int.Parse(S);
Response.Write(i);
try
// Sintaxe
try {
// cdigo factvel de erro
} catch (NullReferenceException ex){
// excees de referncia nula
} catch {
// trata outras excees
} finally {
// executa sempre
}
// Exemplo II
try
{
// Exemplo I
throw new Exception("Erro");
try
}
{
catch (Exception ex)
int i = int.Parse(2mm);
{
} catch {
Response.Write(ex.Message);
Response.Write(Invlido);
}
}
Fase 2 - Aula 1
Tpicos abordados:
Arrays
Enumeradores
Namespaces
Comentrios
Estruturas
Tratamento de Excees
Classes e Objetos
Atributos
Mtodos
Construtores
Herana e Polimorfismo
Encapsulamento
Modificadores de Acesso
Aula 2
Array
Para
Instanciando
arrays
Preenchendo
array
nomes[0] = Jos;
nomes[1] = Joo;
Podem
ser:
Multidimensionais:
int[,] codigos =
{{11,42},{35,44}};
Definindo
Tipos Enumeradores
enum TipoDiretor
{
Marketing,
RH,
Comercial,
Financeiro
}
... Dentro do evento Page_Load
// Instanciando
TipoDiretor tpDiretor = TipoDiretor.Comercial;
// Imprime Comercial
Response.Write(tpDiretor);
Declarando
um namespace
namespace NomeEmpresa {
public class Cliente {}
}
Namespaces
em cadeia
namespace NomeEmpresa.Vendas {
public class Cliente {}
}
Instruo
using
using
using
using
Using
System;
System.Data;
NomeEmpresa.Vendas;
Pessoa = ClassLibrary.Person;
Criando
comentrios e regies:
Fase 2 - Aula 2
Aula 2
Estruturada
Orientao a Objetos
Aplicao
Aplicao
Funo
Objeto
Funo
Dados
Objeto
Dados
Dados
Mtodos
Mtodos
Funo
Funo
Programao
Estruturada
Orientao a
Objeto
Processo
Objeto
Revela Dados
Oculta Dados
Projeto Monoltico
Projeto Modular
Uso nico
Reutilizao
Algoritmo Ordenado
Algoritmo Desordenado
Contm
Uma
Tem
Carros
Braslia
Fusca
Declarando
uma Classe:
class Pessoa
{
string nome;
void Andar() { }
}
Declarando
um Objeto:
Atributo Vidro
Atributo Placa
Atributo Aro
Mtodos
Atributo
Cor Parachoque
-Placa
-Cor Lataria
-Cor Parachoque
-Aro
-Tipo Vidro
+Trocar marcha()
+Ligar()
+Acelerar()
+Brecar()
Atributos
Classe
Fusca
Atributos
Atributos
de Classe
de Objeto
As
class Cliente {
private int produtosAdquiridos;
public bool EClienteEspecial() {
if (produtosAdquiridos < 250)
return false;
return true;
}
public void ComprarEspecial() { /* AO */ }
}
...
Cliente proximoCliente = new Cliente();
bool clienteEspecial = proximoCliente.EClienteEspecial();
if (clienteEspecial)
proximoCliente.ComprarEspecial();
class Cliente {
private int produtosAdquiridos;
public void DefineProdutosAdquiridos(int quantidade)
{
produtosAdquiridos = quantidade;
}
}
...
Cliente novoCliente = new Cliente();
int produtos = 255;
novoCliente.DefineProdutosAdquiridos(produtos);
//OR
novoCliente.DefineProdutosAdquiridos(200);
int numeroLocal = 0;
string ruaLocal = ;
novoCliente.RetornaEndereco(ref numeroLocal, ref ruaLocal);
int numeroLocal;
string ruaLocal;
novoCliente.RetornaEndereco(out numeroLocal, out ruaLocal);
Fase 2 - Aula 2
Simples
Mltipla
ABSTRACT
OVERRIDE
VIRTUAL
THIS
BASE
SEALED
Polimorfismo
Partimos
Objetos
Pessoa
Mtodo
Invocado
Comportamento
Diretor
Viajar ()
Parcerias
Viajar ()
Vendas
Viajar ()
Frias
Vendedor
Funcionario
Encapsulamento
Public:
Fase 2 - Aula 2
Tpicos
abordados:
Membros de Classe
Classes Abstratas
Interfaces
Html e Javascript
ASP.NET e Ciclo de vida de uma pgina
Aula 3
Construtores
globais
Construtores de Classe
static Cliente()
{
numeroRandomico = new Random();
}
public void CarregarSenha()
{
senhaCliente = numeroRandomico.Next();
}
}
Pode
Pode
Nestes
Estas
As
Uma
Uma
Como
Uma
Uma
Implementando
a interface
IS
e AS
if (computador is IProduto)
{
// aes
}
IProduto produto = computador as IProduto;
if (produto != null)
{
Fornecedor fornecedor = produto.RecuperarFornecedor();
}
Pode
ICollection
IComparer
IDictionary
IEnumerable
foreach
Estruturas
Um construtor
Constantes
Atributos
Mtodos
Propriedades
Uso
Exemplo
de uma estrutura:
struct Circulo {
private int _raio;
// Atributo
Exemplo
de overload de mtodos:
Fase 2 - Aula 3
Aula 3
Servidor Web
Browser Cliente
Internet
Nasceu
Comentrios
em HTML
As
Definindo
<html>
<head>
<title>Meu Ttulo</title>
</head>
</html>
Formatando
um texto
<html>
<head></head>
<body>
<b>Texto em negrito</b><br />
<i>Texto em itlico</i>
</body>
</html>
Maiores
Exemplo:
<html>
<head>
<script language="javascript>
function Carregar()
{
document.getElementById(texto").innerHTML =
"Pronto...";
}
</script>
</head>
<body>
<a href="#" onclick=Carregar()">Prxima pgina</a>
<div id=texto"></div>
</body>
</html>
Maiores
Artigo
Tecnologia
Componente
Visual
Viso de Design
Viso de HTML
Lgica
de interface de usurio
MeuWebForm.aspx.cs
MeuWebForm.aspx
Class MeuWebForm
Bem-vindo!
Nome:
Senha:
Bem-Vindo!
Nome:
Senha:
Componente
Visual
OK
MeuWebForm
Lgica de
interface
OK
Trs
Code-behind
Studio .NET
Page_Unload
Event
Handling
Page_Load
Validation
Cliente recebe
pgina em HTML
Envia
Resposta
Armazena
Dados de
Sesso
Cliente inicia
comunicao
com o servidor
Processa
Requisies
do Cliente
Executa
Server-Side
Code (ASP.NET)
Conjunto
Diretrio
Virtual
Utilizado
Fase 2 - Aula 3
Tpicos
abordados:
Eventos e Controles
Master Page
Manuteno de Estados
ASP.NET e C#
User Controls
Eventos e Delegates
Aula 4
Para
Para
Button:
Boto
CheckBox: Caixa para selecionar ou no um item
Label: Texto que no pode ser editado diretamente
LinkButton: Um boto com aparncia de link
ListBox: Lista para escolha de uma ou mais
opes
RadioButton: Caixa para selecionar ou no um
item.
Gridview
DataList:
Wizard
passo.
SiteMap
Menu
Uma
Por
Uma
Isto
Presentes no Global.asax
protected void Session_Start(Object sender, EventArgs e)
{
//Evento disparado quando a uma sesso iniciada.
}
protected void Session_End(Object sender, EventArgs e)
{
//Evento disparado quando a sesso finalizada.
}
Chat
Contador de Acessos
Exemplo:
Application[ContadorAcessos] = 0;
Presentes
no Global.asax
Mantm
Internamente
Ao
<input type="hidden"
name="__VIEWSTATE"
id="__VIEWSTATE"
value="/wEPDwUJNzgzNDMwNTMzZGS8mO25pQR00V4slvgSxG3dEvK+hA==
Note
/>
Pode-se
Trata-se
Escrevendo
um Cookie
Lendo
um Cookie
Fase 2 - Aula 4
Aula 4
Controle
Exemplo
de User Control
Conceitos:
Cinco
Fase 2 - Aula 4
Tpicos
abordados:
Partial Types
Nullable Types
Collections e Generics
Aula 5
Recurso
da verso 2.0
Permite dividir a implementao de um
determinado tipo em diversos arquivos.
Disponvel para classes, estruturas e interfaces.
Definidos pela palavra-chave partial.
Quando
ClienteP2.cs
public partial class Cliente
{
int produtosAdquiridos;
public int ProdutosAdquiridos {
get { }
set { }
}
}
ClienteP2.cs
public partial class Cliente {
public partial class ClientesEspeciais {
public void Adiciona(Cliente c) {
if (c.EClienteEspecial)
ClientesEspeciais.lista.Add(c);
}
}
}
As
Classes Acumulativas
public partial
public partial
public void
public void
}
Classes No-Acumulativas
Todas
Recurso
da verso 2.0.
Variveis continuam a representar todos os valores
do seu tipo, e mais um valor adicional null.
Permite uma integrao melhor com bancos de
dados, que podem conter valores null em seus
campos.
Declaradas atravs da classe Nullable, ou atravs
do operador ? adicionado ao tipo ser utilizado.
Qualquer tipo por valor pode ser usado como Nullable Type
int? i = 10;
double? x = 3.14;
bool? flag = null;
char? letra = 'a';
int?[] MeuArray = new int?[10];
Converses explcitas
Um tipo anulvel pode ser convertido para um tipo regular
usando casts ou usando a propriedade Value.
Se o tipo anulvel contm o valor null, ser gerada uma
exception.
Converses explcitas
// Exemplos
int? clienteId = null;
// No compila
int x = clienteId;
// Compila, mas ser gerada uma exception se x for null
int x = (int)clienteId;
// Compila, mas ser gerada uma exception se x for null
int x = clienteId.Value;
Converses implcitas
Operadores
Quaisquer operadores existentes para tipos por valor podem
ser utilizados com Nullable Types.
O operador produzir null se os operandos forem nulos, caso
contrrio, usar o valor contido para calcular o resultado.
int? x = 10;
x++;
// x agora 11
x = x * 10;
// x agora 110
int? y = null;
x = x + y;
// x agora null
Operadores
int? x = 250;
int? produtosAdquiridos = null;
if (x >= produtosAdquiridos)
Console.WriteLine(Adquiriu mais de {0} produtos.,x);
else
// No vlido
Console.WriteLine(Adquiriu menos de {0} produtos.,x);
operador ??
Namespace
ArrayList
Queue
Stack
...
Namespace
System.Collections
System.Collections.Generic
List<T>
Dictionary<K, V>
...
ArrayList
//Remove um elemento
//Insere um novo elemento
//Imprime seu tamanho atual
//Passa o valor 32
//para a varivel i
listagem.Sort();
listagem.CopyTo(codigos);
//Ordena os elementos
//Preenche um array
listagem.Clear();
Semelhante
Response.Write(pilha.Pop());
// imprime o ltimo elemento inserido
// no caso o primeiro da coleo camisas
Semelhante
Semelhante
listagem.Sort();
//Ordena os elementos
listagem.Clear();
Semelhante
Response.Write(dic[Name]);
Fase 2 - Aula 5
Tpicos
abordados:
AJAX.NET
Web Services
Aula 6
SilverLight (WPF/e)
WPF
A Media Web
ASP.NET AJAX
HTML + JavaScript
Melhora Navegao
Facilita a Personalizao
HTML
Grande Alcance
renda/usurio
Aplicao
Desktop
Interativa
Rpida
Difcil Implantao
Desatualizada
Roda no Cliente
Aplicao
Web
Esttica
Lenta
Fcil Implementao
Sempre Atualizada
Roda no Servidor
Java Applets
SilverLight
Macromedia Flash
Post-backs
AJAX
AJAX
AJAX
AJAX
Objeto
http://www.w3.org/TR/XMLHttpRequest/
(05/04/06)
Framework
Desenvolvimento
Produtividade incrementada
Controle
Porque
usar o ScriptManager?
Controle
Usando
Adicionando
Control
Extenders
Prove
Um
Toolkit Controls
Accordion
NoBot
AlwaysVisibleControl
NumericUpDown
Animation
PagingBulletedList
CascadingDropDown
PasswordStrength
CollapsiblePanel
PopupControl
ConfirmButton
Rating
DragPanel
ReorderList
DropDown
ResizableControl
DropShadow
RoundedCorners
DynamicPopulate
Slider
FilteredTextBox
TextBoxWatermark
HoverMenu
ToggleButton
ModalPopup
UpdatePanelAnimation
MutuallyExlcusiveCheckBox
ValidatorCallout
Fase 2 - Aula 6
Aula 6
So
Necessidade
Disquete,
Redes
Comunicao Aplicativo X Aplicativo
Banco de Dados
Arquivos (Ex: Texto, como CSV; ou em Protocolo
Especfico)
Invocao de Objetos Remotos (Ex: CORBA, DCOM, IIOP,
ORB)
Tecnologias
dependentes de plataforma
Difcil integrao (necessidade de bridge)
Criava-se um pequeno protocolo de
comunicao
Necessidade de Transformao de Dados
Pouco segura, complexas, caras, baixa
produtividade e pouco robustas
Deve
Plataforma Integrada
Microsoft
Web Services
Integration
Unix
AS400
Linux
OS390
Simple
Independente
de plataforma
Fcil de traduzir. (decodificar)
Pode ser veiculado pela porta 80, sem a
necessidade de abrir portas no firewall
HTTP
Message
HTTP
Request
GET- POST
HTML
SOAP
Message
HTTP
Message
HTML
SOAP
Request
XML
SOAP
Message
XML
XML
Web Service
Rede
SOAP
Message
XML
SOAP
Message
SOAP
Response
Servidor Web
XML
HTTP
Message
HTTP
Request
GET- POST
HTML
HTTP
Message
HTTP
Request
HTML
HTTP
Message
HTML
HTTP
Message
HTML
SOAP
Message
SOAP
Request
XML
SOAP
Message
XML
Servidor
Web
Browser
Cliente do
Web Service
Rede
Rede
XML
Web Service
Web App
HTTP
Message
HTML
HTTP
Message
HTTP
Response
HTML
SOAP
Message
XML
SOAP
Message
SOAP
Response
XML
DISCO
(Discovery of WS)
& UDDI (Universal Description, Discovery and
Integration)
Engine de Busca por Web Services
Pginas Amarelas
http://www.uddi.org
http://uddi.microsoft.com
http://uddi.ibm.com
http://uddi.sap.com
Pesquisa o Servio
http://www.uddi.org
URL de um documento DISCO ou WSDL
UDDI
Acha o Servio
Cliente
Do
Web
Service
http://yourservice.com
HTML ou XML com URL para WSDL
Web
Service
Conversando (SOAP)
http://yourservice.com/svc1
XML/SOAP
Tempo de Desenvolvimento
Tempo de Execuo
Mquina de
Desenvolvimento
Cdigo
Aplicao
IIS
ASP.Net
.NET Framework
Servidor da
Aplicao
Cliente
Aplicao
asmx
SOAP (xml)
Aplicao
IIS
ASP.Net
.NET Framework
Servidor da
Aplicao
Fase 2 - Aula 6
Tpicos
abordados:
Aula 7
Banco
de Dados
Sistema
Dado
Elementos
de Dados
Tabelas
Registros
Campos
Chave
Chave
Primria
Estrangeira
ndices
ndice nico
ndice de Performance
CLIENTE
PK
CLI_COD
I1
CLI_NOME
CLI_END
CLI_CNPJ
NOTA_FISCAL
PK
NF_NRO
FK1
NF_DATA
NF_CLI
NF_CFOP
CLI_COD
PRODUTO
PK
PROD_COD
PROD_DESC
PROD_IPI
PROD_UNIT
PROD_QTD
ITEM_NF
PK,FK2
PK
NF_NRO
ITEM_COD
FK1
ITEM_VALOR
ITEM_QTD
PROD_COD
Vises
Viso Idntica:
Aula 7
IDENTITY(1,1),
VALUES
('Bill Gates','Quinta Avenida','12345678900')
UPDATE [cliente]
Todas
cliente.
Todos
INNER JOIN
SELECT *
FROM cliente
INNER JOIN nota_fiscal
ON cliente.cli_cod = nota_fiscal.cli_cod
LEFT JOIN
Fase 2 - Aula 7
TREINAMENTO
SEGUNDA FASE