Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual .NET Base PDF
Manual .NET Base PDF
NET
Autor:
Davi Rodrigues Pinto
Manual .NET do
Desenvolvedor
Pgina 2 de 63
Sumrio
I.
b.
Servios de Negcio............................................................ 6
c.
d.
e.
Excludo: 5
Excludo: 5
Excludo: 5
Excludo: 6
Excludo: 6
Excludo: 7
Excludo: 8
Excludo: 10
Excludo: 10
Excludo: 12
Excludo: 13
f.
Servios de Dados............................................................. 14
Excludo: 13
g.
Excludo: 14
II.
Utilizando XML.............................................................15
III.
a.
b.
c.
d.
e.
Comentrios em VB .......................................................... 21
IV.
a.
b.
c.
d.
Constantes........................................................................ 24
e.
Indentao ....................................................................... 24
f.
V.
Dicas de Performance..................................................26
Excludo: 14
Excludo: 15
Excludo: 15
Excludo: 16
Excludo: 18
Excludo: 19
Excludo: 19
Excludo: 20
Excludo: 21
Excludo: 21
Excludo: 22
Excludo: 22
Excludo: 23
Excludo: 23
Excludo: 24
Excludo: 25
Excludo: 25
a.
VI.
VII.
Pgina 3 de 63
Excludo: 25
Excludo: 30
Excludo: 32
Excludo: Manual .NET
Base.doc
a.
Procedimento ................................................................... 33
Excludo: 32
b.
Exemplo............................................................................ 34
Excludo: 33
VIII.
IX.
.NET Remoting...........................................................37
Interagindo com componentes COM (Unmanaged Code)37
a.
Procedimento ................................................................... 38
b.
c.
d.
X.
XI.
a.
Excludo: 36
Excludo: 36
Excludo: 37
Excludo: 38
Excludo: 40
Excludo: 41
Excludo: 43
Excludo: 45
Excludo: 45
Excludo: 45
Excludo: 46
Excludo: 46
Excludo: 46
b.
Excludo: 46
c.
Excludo: 46
d.
e.
f.
Excludo: 47
Excludo: 48
Excludo: 48
Excludo: 48
Excludo: 48
Excludo: 49
Excludo: 50
Excludo: 50
Excludo: 51
XII.
Documentao de Projeto..........................................54
Excludo: 53
XIII.
Excludo: 54
XIV.
XV.
XVI.
a.
Escalabilidade................................................................... 58
b.
Disponibilidade ................................................................. 58
c.
Facilidade de Manuteno................................................. 59
d.
Segurana......................................................................... 59
e.
XVII.
ndices......................................................................61
XVIII.
Referncias .............................................................62
Pgina 4 de 63
Excludo: 55
Excludo: 56
Excludo: 57
Excludo: 57
Excludo: 57
Excludo: 58
Excludo: 58
Excludo: 59
Excludo: 60
Excludo: 61
Excludo: Manual .NET
Base.doc
Pgina 5 de 63
I. Desenvolvendo em N Camadas
O desenvolvimento em N Camadas continua sendo o cerne da arquitetura de
aplicaes distribudas.
Porm, agora com o advento dos Web Services o
desenvolvimento em camadas rompe fronteiras ampliando as possibilidades de uso de
componentes distribudos separados pela Internet.
Note que nos referimos a N camadas e no simplesmente a trs camadas, pois
seguindo-se a orientao de diversas boas prticas de programao, chega-se a uma
estrutura de camadas ainda mais refinada.
Diversas interpretaes podem dar espao quando falamos em camadas:
podemos pensar em camadas fsicas definidas por mquinas, camadas definidas por
aplicaes que conversam entre si, camadas funcionais, e assim por diante. Como
forma de padronizar a abordagem e permitir um melhor entendimento dos aspectos
comuns aos projetos e tirar o mximo proveito do desenvolvimento de software em
componentes, partimos para uma abordagem conceitual e lgica que identifica e
separa as funcionalidades do software em servios. Esses servios so, ento,
classificados logicamente em trs categorias, a saber:
Servios de Apresentao: incluem as interfaces grficas bem como a
lgica de apresentao;
Servios de Negcio: incluem todas as regras de negcio assim como a
lgica necessria para a aplicao das mesmas;
Servios de Dados: incluem os sistemas de bancos de dados bem como as
interfaces utilizadas para acess-los.
a. Servios de Apresentao
Win Forms;
Web Forms;
Namespaces e Classes com funes de fazer a validao dos dados inseridos
pelo usurio
No mundo .Net, temos a misso de atingir qualquer tipo de cliente, seja ele um
PC (Personal Computer), WebTV, telefone celular, PDA, tablet PC, etc... Neste
contexto aparece um novo conceito: SMART CLIENT (cliente inteligente). Por
definio, o cliente inteligente um dispositivo que tem poder de processamento.
Logo, teremos clientes inteligentes com maior ou menor poder de processamento (o
telefone celular tem baixo poder de processamento e o PC tem um enorme poder de
processamento). A tecnologia .NET permite, atravs do uso de Win Forms ou atravs
do Mobile Internet Toolkit, aproveitar as vantagens de um smart client.
b. Servios de Negcio
As classes dessas camadas podem agora ser implementadas atravs de trs
tecnologias distintas:
Classes organizadas em namespaces e compiladas como DLLs
Web Services disponibilizados como arquivos .ASMX para acesso via WEB
(http://soap)
Excludo: Manual .NET
Base.doc
Pgina 6 de 63
c. Camada de Gerenciamento
As classes escritas na Camada de Gerenciamento esto diretamente
relacionadas aos servios de usurio. Eles faro a devida interao com as classes de
validao de entrada de dados pelo usurio e eventuais dependncias com regras de
negcio, servios de log, servios de auditoria, controle transacional e outros.
Na sua implementao, geralmente as classes gerentes delegam seus servios
s classes de regras de negcio depois de j terem agregado seu trabalho.
Pgina 7 de 63
ou
Conjuntos modulares de lgicas independentes
Para a primeira situao, utilize fluxos de trabalho de negcio implementados
com orquestraes BizTalk para gerenciar um processo que envolva vrios passos
(steps) e transaes muito demoradas (long running transactions).
Integre o sistema com outros sistemas ou servios atravs de troca de
mensagens.
Construa servios que precisam ser expostos atravs de vrias tecnologias
(COM, MSMQ, HTTP, SOAP, E-MAIL) e serem integrados junto a diversos sistemas.
Aproveite os diversos adapters e conectores disponveis para o uso com BizTalk
Server.
Para a segunda situao voc dever implementar o negcio utilizando-se
apenas de componentes quando:
No tiver necessidade de utilizar-se de interfaces baseadas em mensagens ou
negcios assncronos;
Recomendaes
Quando usar mensagens, garanta estado nas interfaces que evitem que uma
mesma mensagem recebida duas vezes seja tratada novamente.
Pgina 8 de 63
Ao identificar que algo est inadequado, geram uma exceo (erro) de forma a
garantir transaes atmicas.
tanto
Use funcionalidades do Enterprise Services tanto para iniciar como para votar
(participar de forma ativa) em transaes heterogneas.
Para fazer isso, necessrio herdar da classe ServicedComponent e utilizar o
objeto ContextUtil.
Pgina 9 de 63
Pgina 10 de 63
e. Camada de Dados
As classes deste grupo isolam o resto da aplicao de tudo que esteja
relacionado manipulao dos bancos de dados. Elas fornecem dados para as regras
de negcio de forma mais simplificada e modificam o contedo do banco de dados sob
a orientao dessas regras, isolando as funcionalidades e os detalhes da
implementao fsica. Em .NET, temos muitas possibilidades de uso do ADO.NET;
assim, importante identificar padres que resolvam os tipos de problemas mais
comuns no dia a dia de forma a garantir produtividade e facilidade em futuras
manutenes de cdigo.
importante notar que o que sugerido como boa prtica em termos de
arquitetura de aplicao .NET coloca a aplicao dividida em camadas funcionais. A
utilizao de uma camada de dados entre a camada de regra de negcios
encapsulando o ADO.NET garante a padronizao do mesmo para as funcionalidades
mais comuns do dia a dia, promovendo facilidades de manuteno, extenso e
produtividade.
Servios de
Usurio
Web Forms
Win Forms
Classes
(Validaes)
Servios de
Negcio
Classes
Gerenciamento
Servios de
Dados
SQL, Oracle,
DB2
Classes Regras
de Negcio
Classes Acesso
a Dados
ADO.NET
Pgina 11 de 63
Evite a situao em que uma Stored Procedure chama outra Stored Procedure,
e assim por diante. Isso um sintoma de excesso de Stored Procedures;
Utilize DataReaders sempre que houver operaes de leitura de dados (readonly, forward only) apenas. Nesse caso, faa a sua camada de dados retornar
DataReaders objects;
Quando h a necessidade de uso prolongado do objeto DataReader, aconselhase considerar a opo de se utilizar Datasets, que so sempre desconectados
(isso aumenta a escalabilidade)
Sempre que for necessrio guardar dados criptografados, ser esta camada que
dever criptografar e descriptografar os dados;
Pgina 12 de 63
[Transaction (TransactionOption.Supported)]
Pgina 13 de 63
f. Servios de Dados
Correspondem ao software de armazenamento e gerenciamento dos dados
assim como as classes que conhecem o repositrio de dados, a disposio lgica e
Excludo: Manual .NET
Base.doc
Pgina 14 de 63
aplicao
tambm
sero
numa
estrutura
hierrquica
em
memria
Pgina 15 de 63
5. Etc.
tag
<%@
Page
Exemplo:
<%@Page Language="C#" %>
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E)
{
Message.Text = "Ola " + Name.Text + ", bem vindo ao ASP.NET!";
}
</script>
<body>
Pgina 16 de 63
Todo controle HTML ("HTML Control") deve ser declarado atravs de uma tag
bem formada. A tag deve ser fechada com uma barra de terminao dentro
dela prpria ou ter uma tag de terminao da mesma forma que a sintaxe XML.
Set x = Form1.text1
x = Form1.text1
Pgina 17 de 63
O Visual Basic .NET 7.0 oferece uma maior segurana quanto aos tipos. Erros
sero gerados quando uma converso puder falhar em run-time.
Pgina 18 de 63
b. Nomenclatura de Variveis
Utilize sempre nomes bem significativos e relacionados funo da varivel.
No use nomes muito extensos nem muito curtos. Use o bom senso de forma a
balancear a representatividade do nome e a praticidade em ter que se escrever tal
nome vrias vezes durante o desenvolvimento do cdigo.
Recomenda-se como boa prtica utilizar uma regra de nomenclatura com
prefixos de 3 letras associados a cada um dos tipos desejados (Tabela 1), lembrandose sempre das restries impostas aos nomes de variveis:
Pgina 19 de 63
Descrio
Classe bsica para todos os tipos (CTS)
String
8-bit byte com sinal
8-bit byte sem sinal
16-bit value com sinal
16-bit value sem sinal
32-bit value com sinal
32-bit value sem sinal
64-bit value com sinal
64-bit value sem sinal
16-bit caracter tipo Unicode
IEEE 32-bit float
IEEE 64-bit float
Valor Booleano (true/false)
128-bit armazena at 28 ou 29 digitosusado em
aplicaes financeiras.
Nome do Tipo
em .NET (CTS)
System.Object
System.String
System.SByte
System.Byte
System.Int16
System.UInt16
System.Int32
System.UInt32
System.Int64
System.UInt64
System.Char
System.Single
System.Double
System.Boolean
Alias em
VB
Object
String
SByte
Byte
Short
UInt16
Integer
Uint32
Long
UInt64
Char
Single
Double
Boolean
Alias em
C#
object
string
sbyte
byte
short
ushort
int
uint
long
ulong
char
float
double
bool
System.Decimal
Decimal
decimal
c. Escopo de Variveis
O escopo de uma varivel determinado pelo local em que feita sua
declarao. Quando a declarao for realizada dentro de um mtodo de uma classe,
apenas o cdigo interno a esse mtodo do procedure poder acessar ou modificar tal
varivel.
Quando uma varivel for declarada externamente a um mtodo especfico,
porm internamente a uma classe, essa varivel poder ser acessada por todo cdigo
de qualquer mtodo interno classe.
importante que se tenha ateno redobrada para com os antigos usos de
variveis globais como elemento de comunicao entre procedimentos e funes.
Esta prtica deve ser substituda por chamadas de mtodos com passagens de
parmetros.
d. Nome de Mtodos
O nome de um mtodo (procedure/function, sub, etc.) deve ser formado por
um identificador que seja representativo sua funcionalidade. Use notao hngara
para concatenar palavras at que seu significado esteja ilustrado. Lembre-se que a
letra inicial de cada palavra deve ser maiscula e as demais, minsculas.
Pgina 20 de 63
e. Comentrios em VB
O caractere apstrofo (') deve ser utilizado para indicar incio de comentrios.
Exemplo:
Dim intCounter As Integer = 1
O incio de toda pgina ASPX deve conter um cabealho em que deve ser feita
uma descrio das funes que essa pgina exerce na aplicao.
Julga-se muito importante que toda classe e todo mtodo tenham um cabealho
de comentrio precedendo seu prototype descrevendo seu propsito, descrio dos
parmetros e/ou constructor, Data de criao, nome do programador e dados de
alterao, caso tenha sofrido algum.
Essa descrio no deve detalhar a
implementao e, sim, seu objetivo.
Seo do
Cabealho
Objetivo
Parmetros
Data
Autor
Alterao
Contedo
O que o mtodo (classe) faz
Lista descritiva dos parmetros recebidos pelo mtodo ou
pelo constructor no caso de uma classe
Data da Criao
Autor do cdigo
Data e Autor de eventuais manutenes feitas ao cdigo
Numero da verso
Tabela 2 - Regras de documentao de Procedures
Sugere-se tambm:
Seguir toda declarao de varivel de comentrios que explicam a finalidade de
tal varivel.
Indentar blocos aninhados usando 4 espaos.
Pgina 21 de 63
Pgina 22 de 63
elementos que representem dados que se alteram com pouca freqncia e que
no so utilizados em contextos transacionais.
c. Escopo de Variveis
Excludo: Manual .NET
Base.doc
Pgina 23 de 63
d. Constantes
Declare constantes usando o identificador em letras maisculas.
esquea de comentar a constante dizendo qual a sua finalidade.
No se
e. Indentao
Configure o Visual Studio de todos os desenvolvedores da equipe para usar a
mesma quantidade de espaos quando for pressionada a tecla de tabulao.
Sugere-se como padro o valor de 4 espaos.
Isso aumentar a produtividade e a facilidade de manipulao de cdigos em
manuteno, alm de contribuir com a identidade da padronizao dos cdigos.
Toda estrutura criada dever ter seu cdigo interno indentado. Assim sendo,
tudo o que estiver interno a uma estrutura condicional if dever estar deslocado de
quatro espaos.
Exemplo de indentao para estrutura condicional:
If (r.x = x And r.y = y And r.width = w And r.height = h) Then
Equals = True
Else
Equals = False
End If
Pgina 24 de 63
f. Componentes e Classes
Todas as classes devem ter seu nome iniciado pela letra C maiscula, podendo
esse nome ser composto por mais de uma palavra concatenada, desde que a primeira
letra de cada palavra seja maiscula e as demais, minsculas (Notao Hngara).
Tente manter os nomes curtos e significativos, pois sero referenciados
constantemente ao longo do cdigo.
Modificador Modificador
Descrio
VB
C#
O contedo da classe pode ser acessado de fora
public
Public
da definio da classe e das classes derivadas.
O contedo da classe no acessado de fora da
Protected
protected definio da classe, mas pode ser acessado por
classes derivadas.
O contedo da classe no acessado de fora da
private
Private
definio da classe e nem acessado por classes
derivadas.
O contedo da classe visvel apenas de dentro
internal
Friend
da unidade de compilao da unidade.
Protected
Une as caractersticas de uma classe
Friend
protected e uma classe Friend.
Shadows
Indica que a classe reflete um elemento de
nome idntico na classe base.
MustInherit
Indica que o contedo desta classe s poder
ser acessado em classes derivadas. A classe
com o modificador Must Inherit no pode ser
instanciada.
NotInheritable
Indica que esta classe no permitir mais ser
derivada.
Tabela 3 - Resumo dos Modificadores
Pgina 25 de 63
V. Dicas de Performance
a. Turbinando cdigo VB.NET
Seguem algumas regras de otimizao para cdigo .NET.
1. Certifique-se que o cdigo que ser colocado em produo seja compilado com
a opo de suporte a debug desabilitada.
2. Habilite a opo Enable Optimizations (menu Configuration Properties |
Optimizations page da caixa de dilogo Project Properties.
3. Sempre que possvel, crie mtodos que no possam ser reescritos
(overridable).
Ou seja, no use indiscriminadamente o modificador
Overridable. Um mtodo selado (aquele que no pode ser reescrito , em
mdia, 35% mais rpido) deve ser sempre preferido quando a questo for
performance.
Exemplo:
Class Teste
' Este mtodo pode ser reescrito
Overridable Sub Procedimento()
'Cdigo
End Sub
' Mtodo que no pode ser reescrito Interno
Private Sub Interno()
'Cdigo
End Sub
' Mtodo que no pode ser reescrito
Public Sub Externo()
'Cdigo
End Sub
End Class
Pgina 26 de 63
Exemplo:
' The private member
Dim m_ConnString As String
Property ConnectionString() As String
Get
Return m_ConnString
End Get
Set(ByVal Value As String)
m_ConnString = String.Intern(Value)
End Set
End Property
Exemplo:
Class TestObject
' put the garbage collector under pressure
Dim dummyArr(1000) As Byte
Sub New()
OpenClipboard(0)
End Sub
Protected Overrides Sub Finalize()
' close the clipboard when finalized
CloseClipboard()
MyBase.Finalize()
End Sub
End Class
Outra soluo que aumenta ainda mais o desempenho, mas que acarreta um
pouco mais de disciplina implementar o mtodo Dispose atravs da interface
Idisposable. Esse mtodo conter o mesmo tipo de cdigo que o mtodo Finalize teria
e dever ser chamado diretamente por clients antes de atribuir nothing ao objeto.
Exemplo:
Class TestObject
Implements IDisposable
Public Sub Dispose() _
Implements IDisposable.Dispose
Manual .NET Base
Pgina 27 de 63
Pgina 28 de 63
Exemplo:
' Pode ser usada a declarao New com WithEvents
Dim WithEvents obj As New TestObject
Sub obj_TestEvent() Handles obj.TestEvent
' ..Trata o evento aqui
End Sub
A rotina acima pode disparar uma exceo e isso dever ser tratado na camada
cliente da seguinte forma:
Dim i As Integer
Dim prob As Double = 0.01
For i = 1 To 1000000
Try
CanThrowException(prob)
Catch
' No faz nada neste caso
End Try
Next
Function DoesntThrowException( _
ByVal prob As Double) As Boolean
If rand.NextDouble <= prob Then
Return False
' notifica a falha
Else
Return True
' notifica o sucesso
End If
End Function
Pgina 29 de 63
Observao:
No a incluso dos operadores Try Catch que onera o
desempenho do cdigo e, sim, o disparar de uma exceo.
9. Ao concatenar strings repetidas vezes, use o objeto StringBuilder
(System.Text.StringBuilder). Isso evitar que a cada alterao da string seja
alocada um novo bloco de memria.
Exemplo:
Criando uma lista de 500 numeros separados por virgula
Dim sb As New System.Text.StringBuilder(2000)
Dim i As Integer
For i = 1 To 500
sb.Append(CStr(i))
sb.Append(", ")
Next
Dim s As String = sb.ToString armazena o resultado em s
Pgina 30 de 63
Pgina 31 de 63
Pgina 32 de 63
a. Procedimento
1. Abra um novo projeto no Visual Studio .NET.
2. Selecione a linguagem de sua preferncia (Exemplo: Visual Basic
Projects).
3. Selecione o template ASP.NET Web Services.
4. Altere o nome do projeto de forma a identificar o nome de seu Web
Service.
5. Pressione Enter.
6. Um Web Service bsico criado e disponibilizado. Clique no link click
here to switch to code view para visualizar o cdigo que o Visual Studio
pr-escreveu (veja figura abaixo).
Pgina 33 de 63
b. Exemplo
Pgina 34 de 63
Clique no boto Start ou no menu Debug. Escolha Start para obter a seguinte
tela de navegador:
Pgina 35 de 63
Pgina 36 de 63
Objeto
Aplicativo Cliente
Aplicativo Host
(server)
Remoting
Remoting
Arquivo
Config
Arquivo
Config
Canal
Pgina 37 de 63
a. Procedimento
Usando
Faa
Pgina 38 de 63
Controle transacional
Pool de objetos
E as restries:
Pgina 39 de 63
Pgina 40 de 63
[Transaction(TransactionOption.NotSupported)]
[Transaction(TransactionOption.Supported)]
Exemplo :
[Visual Basic]
Pgina 41 de 63
'
sn -k TestApp.snk
' compile o cdigo:
'
vbc /target:exe /r:System.EnterpriseServices.dll TestApp.vb
' Rode o cdigo TestApp:
'
inicie o aplicativo TestApp.exe
' ----------------------------------------------------------------Option Explicit
Option Strict
Imports
Imports
Imports
Imports
System
System.Runtime.CompilerServices
System.EnterpriseServices
System.Reflection
'Detalhes do registro.
'Nome da aplicao COM+ como aparece no catalogo do COM+.
<assembly: ApplicationName("TestApp")>
' O Strong name criado.
<assembly: AssemblyKeyFileAttribute("TestApp.snk")>
<Transaction(TransactionOption.Required)> Public Class Account
Inherits ServicedComponent
'Prove comportamento de SetComplete na ausncia de uma exceo.
<AutoComplete()> Public Sub Debit(amount As Integer)
' Faa alguma atividade em base de dados.
' Alguma exceo que ocorra aqui ir abortar a
' transao; caso contrrio, a transao aborta .
End Sub
End Class
Public Class client
Public Shared Sub Main()
Dim accountX As New Account()
accountX.Debit(100)
Environment.Exit(0)
End Sub
End Class
Pgina 42 de 63
Mensagens MSMQ;
BizTalk Messaging;
Componentes COM;
Scripts.
Figura 6 O processo de negcio interage com servios de interfaces, agentes e componentes de negcio
Pgina 43 de 63
Pgina 44 de 63
Pgina 45 de 63
Auditoria
Chamamos de auditoria a necessidade de negcio de se registrar o rastro das
atividades dos usurios e do negcio. Principalmente, por motivos de segurana.
Assim sendo o log de auditoria deve ser tratado com alguns cuidados
adicionais:
Pgina 46 de 63
Log-on;
Log-off;
Mudana de senha;
b. Rotinas em lotes
Pgina 47 de 63
Exemplo:
Nmero seqencial 5
algarismos
Arq00002.dat
Radical 3
algarismos
extenso
Pgina 48 de 63
Escalabilidade e disponibilidade;
Isolamento;
Pgina 49 de 63
Funcionalidade
Escreve mensagem na fila especificada
L uma mensagem da fila (retira a mensagem da
fila)
ReceiveById
Exemplo C#
public static void Main()
{
// Abre conexo com uma Fila .\MyQueue
MessageQueue myNewQueue = new MessageQueue(.\\MyQueue);
//Instancia classe mensagem
Message oMensagem = new Message():
// Envia uma mensagem a Fila
myNewQueue.Send (oMensagem);
// Recebe uma mensagem da fila
Message myMessage =
myQueue.Receive();
return;
}
Pgina 50 de 63
Custo:
Vantagens:
para
validar
existncia
as
Excludo: Manual .NET
Base.doc
Pgina 51 de 63
Desvantagens:
Custo:
Vantagens:
Desvantagens:
Custo:
Vantagens:
Desvantagens:
Controle de Timeouts
Os Timeouts defaults do MSMQ so infinitos.
indesejveis. Estes Timeouts incluem:
Time-to-reach-queue
MaxTimeToReachQueue = 3000
Pgina 52 de 63
Time-to-be-received
MaxTimeToReceive = 3000
Pgina 53 de 63
diagrama de seqncia;
diagrama de componentes;
diagrama de classes;
Pgina 54 de 63
Pgina 55 de 63
Pgina 56 de 63
Pgina 57 de 63
a. Escalabilidade
Quando falamos de escalabilidade de uma aplicao, estamos preocupados com
a habilidade de a aplicao prover uma boa performance para um nmero crescente
de usurios simultneos e o aumento da carga de dados que so manipulados.
Basicamente, pensamos em vazo (throughput) e tempo de resposta (response time).
Entre algumas das variveis que influenciam a escalabilidade de uma aplicao,
podemos citar:
desempenho do hardware;
latncia da rede;
projeto da aplicao.
Use cache de dados onde este for requerido (isso evita idas e vindas em
operaes simples);
b. Disponibilidade
Disponibilidade a medida da porcentagem do tempo em que a aplicao
capaz de responder a uma requisio, conforme a expectativa de seu usurio.
Em aplicaes de misso critica, comum se falar em "five nines" (cinco noves)
ou 99,999% de disponibilidade
Ao projetar aplicaes com alta disponibilidade, tenha em mente:
Evite pontos nicos de falha. Evite ter um nico componente que,
quando tirado do sistema, deixa a aplicao sem condies de uso. Use
Pgina 58 de 63
c. Facilidade de Manuteno
Dependendo de como a aplicao projetada, implementada e, posteriormente,
instalada, existiro maiores facilidades ou dificuldades para sua administrao,
configurao, reparo e alterao. Considere as seguintes recomendaes quando
projetar uma aplicao que deve ter facilidade de manuteno:
d. Segurana
Segurana sempre ser uma das maiores preocupaes em todas as aplicaes.
As decises quanto segurana devero sempre se basear na poltica de segurana
da empresa ou organizao em questo; porm, independentemente dos detalhes
especficos que so recomendados em cada poltica de segurana, veja algumas
recomendaes que devem ser sempre consideradas:
Avalie os riscos: lembre-se de que sempre existiro os riscos externos e
os riscos internos;
Pgina 59 de 63
Instrumentao;
Ferramentas e processos;
Pgina 60 de 63
XVII.ndices
Figuras
Figura 1 - Exemplo de cdigo utilizando Component Services ................................10
Figura 2 - As diversas camadas funcionais no modelo de programao .NET............11
Figura 3 - Esquema de construo de componentes de dados................................13
Figura 4 Exemplo de comentrios nas pginas ASP............................................22
Figura 5 - Esquema de integrao do ADO.NET....................................................32
Figura 6 O processo de negcio interage com servios de interfaces, agentes e
componentes de negcio .............................................................................43
Figura 7 - Esquema de nomenclatura de arquivos gerados pelo sistema .................48
Figura 8 - Diagrama UML de classes ...................................................................54
Excludo: 9
Excludo: 10
Excludo: 12
Excludo: 21
Excludo: 31
Excludo: 42
Excludo: 47
Excludo: 53
Tabelas
Tabela 1 - Tipos de dados bsicos do Framework .NET .........................................20
Tabela 2 - Regras de documentao de Procedures ..............................................21
Tabela 3 - Resumo dos Modificadores .................................................................25
Excludo: 19
Excludo: 20
Excludo: 24
Pgina 61 de 63
XVIII. Referncias
Veja abaixo uma lista de endereos contendo informaes importantes para o
desenvolvimento:
Acesso a dados:
http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnbda/html/daag.asp
http://www.microsoft.com/BizTalk
http://www.BizTalk.org/home/default.asp
http://msdn.microsoft.com/default.asp
http://www.w3.org/
http://msdn.microsoft.com/library/backgrnd/html/msmqbest.htm
MSDN: Architectural Options for Asynchronous Workflow
www.uddi.org
Manual .NET Base
Pgina 62 de 63
Pgina 63 de 63