Buscar

desenvolvimento de Software III

Prévia do material em texto

56
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
Unidade III
Esta unidade tem como finalidade apresentar conceitos de depuração de código, melhora na 
perfomance de páginas web, desenvolvimento de páginas com qualidade utilizando conceitos de Ajax e 
User Controls, bem como validação de dados.
Melhorar uma página web requer análise e principalmente um completo teste de toda a arquitetura 
web, sendo assim, é necessário ter uma visão de possíveis falhas e melhorias.
5 Uso de Trace e debUg em aplicações .NeT
Nos tempos atuais, aplicações web devem atingir a excelência desde sua análise, construção e, 
principalmente, execução de testes e captura de suas evidências. Para que todo esse ciclo ocorra com 
perfeição, é preciso efetuar principalmente todo o teste em aplicação web com extrema habilidade de 
detectar onde e como poderá surgir um erro.
Para isso o principal objeto do Testing (testando) e do Debugging (depurando) de uma aplicação 
web é garantir todo o ciclo de desenvolvimento para o cliente final, ou seja, testar e depurar toda a 
aplicação de modo que não seja encontrada nenhuma falha. Contudo, esse processo não é uma tarefa 
tão simples, pois depende de uma boa análise e, principalmente, da construção de um bom roteiro 
de testes, que apresente passo a passo a execução de uma funcionalidade contida dentro de uma 
aplicação web.
Tracing se dá por uma execução de processo que consiste em coletar informações de uma aplicação 
web em tempo de execução. Para que esse processo aconteça com excelência, podemos analisar dois 
métodos:
•	 System.Web.TraceContext: a classe possibilita efetuar a captura e verificação de informações 
da execução de uma aplicação web e de mensagens de Trace, na própria página aspx, bem como 
efetuar visualização no Trace Viewer, ou seja, gerar um arquivo do tipo axd (trace.axd) alocado 
em memória.
•	 System.Diagnostics.Trace e System.Diagnostics.Debug: mensagens direcionadas por essa 
classe são apresentadas por definição padrão na janela output do Visual Studio .net, mas pode‑se 
trabalhar com outros recursos de apresentação de mensagens, como usar a classe TraceListerner 
para enviar mensagens para determinados tipos de saída, tais como EventLog, do Windows, 
apresentando como arquivo de texto.
57
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
 observação
A utilização de debug em aplicações web simplifica o 
entendimento para a correção de erros encontrados na aplicação. 
Essa prática é muito comum não somente para identificação de 
erros, como também para entendimento do fluxo de navegação das 
camadas contidas na aplicação.
A classe TraceContext é responsável pela gestão e exibição de todas as informações apresentadas 
com o Trace da execução da aplicação web. Todo o processo é acessado por meio do objeto Trace 
encapsulado na página aspx. A habilitação do Trace pode acontecer por intermédio da página aspx, 
na diretiva Page, ou através do arquivo web.config, acoplado na aplicação web. A classe TraceContex 
disponibiliza alguns métodos de trabalho, como:
•	 IsEnable:	possibilita	informar	que	o	Trace	está	habilitado	na	aplicação	web;
•	 TraceMode:	apresenta	dentro	da	aplicação	em	qual	ordem	as	mensagens	serão	exibidas,	como:	
SortByCategory e SortByTime;
•	 Warn:	apresenta	mensagens	de	maneira	personalizada	em	vermelho;
•	 Write:	apresenta	mensagens,	porém	não	com	o	destaque	em	vermelho.
Trabalhando com definição padrão, o Trace, por sua vez, não vem habilitado nas aplicações web. 
Assim, para que possam ser exibidas as informações de Trace no rodapé da página aspx, deverá ser 
adicionada na página a instrução Trace = “true”, lembrando que esta será inserida na diretiva Page da 
página aspx.
 lembrete
A utilização do Trace na diretiva Page da página aspx sobrescreve todas 
as configurações de Trace realizadas no arquivo web.config.
Efetuando a implementação na página aspx, teremos o seguinte resultado:
58
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
 <%@ Page Language=”C#” .... Trace = “True”%>
Figura 53– Método sprExibirTrace (elaborada pelo autor)
 observação
A nomenclatura utilizada dentro do Trace pode ser de livre escrita 
para o desenvolvedor, porém, por questões de boas práticas, é importante 
sempre conduzir a escrita de maneira que possa sempre remeter ao que a 
funcionalidade deveria fazer e ser identificado na codificação.
Adicionando o método ao evento Load da página aspx, ou, por exemplo, a ação de um botão, tem‑se 
a seguinte saída:
Figura 54 – Painel de saída do Trace (elaborada pelo autor)
59
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
Na codificação do arquivo web.config, pode‑se trabalhar com a tag <trace>, assim possibilitando a 
saída tanto na página aspx como no arquivo apartado, denominado de trace.axd, podendo até mesmo 
ser acessado na raiz da aplicação web.
 lembrete
O arquivo trace.axd não existe fisicamente, ou seja, seu consumo e 
construção são feitos em memória.
Detalhamos a seguir alguns atributos do elemento <trace>, como:
•	 Enabled: identifica dentro da aplicação web que o Trace está ativo, ou seja, todas as informações 
geradas no Trace serão visualizadas no Trace Viewer, também no arquivo trace.axd;
•	 Localonly: identifica que o Trace Viewer poderá ser visualizado somente por clientes locais, ou 
por qualquer outro cliente;
•	 PageOut: identifica que todas as informações geradas pelo Trace serão totalmente visualizadas 
na página aspx.
•	 RequestLimit: identifica e informa a quantidade de requisições que são efetuadas para serem 
alocadas no Trace;
•	 TraceMode: identifica a ordem das mensagens a serem apresentadas no Trace;
 saiba mais
Para um aprofundamento de Trace, acesse:
MÉTODO TraceWrite (String, String). Microsoft Developer 
Network. 2015. Disponível em: <https://msdn.microsoft.com/pt‑br/pt/
library/247w289d%28v=vs.110%29.aspx>. Acesso em: 28 jul. 2015.
É muito importante reforçar que não se pode misturar o Page.Trace com a classe Trace, pois o 
Page.Trace devolve um objeto pertencente à classe TraceContext, enquanto a classe Trace devolve 
a classe System.Diagnostics. Vale ressaltar também a importância das configurações do projeto 
web, tais como Debug e Release, sendo que os dois, Release e Debug, são compilados, ou, caso 
a definição seja o modo Debug, somente são compilados caso a configuração do projeto esteja 
ajustada em modo Release.
60
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
Todas as classes têm utilidade na identificação de falhas e nas suas correções, por exemplo, um 
código que efetua atualização de valores em um banco de dados pode validar quais foram os valores 
que trafegaram no Trace ou no Debug antes de atualizar o banco de dados.
Tratando de definição padrão, a saída dos métodos das classes de Trace são efetuadas por meio da 
janela de output do Visual Studio .NET, mas poderá ser utilizado também a coleção de Listerners para 
obterem‑se termos de outros tipos de saída. Podemos abordar alguns métodos de saída, tais como:
•	 Write: escreve no console uma informação;
•	 WriteLine: escreve no console uma informação, efetuando quebra de linha;
•	 WriteIf: escreve no console uma informação, partindo do pressuposto de que a condição 
apresentada deveráser verdadeira;
•	 WriteIfLine: escreve no console uma informação, partindo do pressuposto de que a condição 
apresentada deverá ser verdadeira, efetuando quebra de linha;
•	 Assert: valida a condição e escreve no console, caso a mesma seja falsa;
•	 Fail: escreve no console a mensagem de erro.
Figura 55 – Exemplo de aplicação de Trace
Trabalhando com a classe TraceListerners, vemos que ela é concebida por três implementações, 
que são:
•	 DefaultTraceListerner: apresenta todas as mensagens de saída na janela de output do Visual 
Studio .NET;
61
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
•	 TextWriterTraceListerner: apresenta e escreve as mensagens encapsuladas em objeto Stream, 
podendo ser gravado, por exemplo, em um arquivo do tipo .txt (texto);
•	 EventLogTraceListerner: apresenta e escreve as mensagens a partir do Event Log do Windows.
5.1 criando User controls
Todos	os	 controles	 construídos	 têm	como	base	 a	 classe	 System.Web.UI.UserControl,	 tendo	 como	
estrutura:
Figura 56	–	Estrutura	da	classe	System.Web.UI.UserControl
Podemos efetuar a codificação do User Control partindo dos seguintes aspectos:
•	 User Controls: componentes aos quais podem ser adicionadas linguagens <tags> e controles 
web servers, podendo, assim, trabalhar individualmente ou até mesmo com a variedade de 
propriedades e métodos encapsulados;
•	 Custom Controls: classes que são derivativas de outras classes (Control ou WebControl).
Para adicionar um User Control, observe os seguintes passos:
1 – Com o projeto Web Form criado na Solution, clicar com o botão direito no nome do projeto, 
selecionar Add →	New	Item:
62
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
Figura 57 – Adicionando Web User Control
2 – Será apresentada a janela com os Templates a serem escolhidos:
Figura 58 – Caixa de novo item
3 – Selecionar o item Web User Control, lembrando sempre de visualizar à esquerda a linguagem 
escolhida. Nesse exemplo, a linguagem escolhida é C#.
63
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
Figura 59 – Selecionado Web User Control
Figura 60	–	Item	Web	User	Control	1	adicionado	na	Solution
4	–	Inserindo	o	código	no	Web	User	Control,	teremos:
64
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
Figura 61 – Modo Código do Web User Control 1
Figura 62 – Modo Design do Web User Control 1
65
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
5 – Dentro do evento “click incluir”, podemos codificar da seguinte maneira:
Figura 63	–	Codificação	do	evento	btnIncluir_Click
6 – Dentro do evento “click Excluir”, podemos codificar da seguinte maneira:
Figura 64	–	Codificação	do	evento	btnExcluir_Click
O Web User Control pode ser utilizado em qualquer página aspx, sendo implementado dentro da 
página aspx, com a seguinte chamada:
Figura 65	–	Implementação	do	Web	User	Control
6 Validação de dados
A validação de dados é um assunto muito interessante, no que se diz respeito à homologação de 
valores em aplicações web, como, por exemplo, a entrada de valores e informações, bem como dados 
que deverão ser consumidos em próximos passos por uma base de dados.
Trabalhar com o ASP.NET com modelos de validações de dados compostos que podem ser agregados em uma 
aplicação web pode, muitas vezes, ocasionar a efetuação do trabalho de maneira automatizada e transparente.
Para validação de dados, podemos utilizar:
•	 RequiredFieldValidator – que, muitas vezes, faz com que o controle associado de preenchimento 
se torne obrigatório e ainda verifica se o cliente informou ou selecionou algo. Exemplo: campos 
com informações obrigatórias;
•	 CompareValidator – efetua a comparação de valores fornecendo informações com outro 
dispositivo de controle ou até mesmo uma constante. Exemplo: validação de senha informada;
66
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
•	 RangeValidator – efetua, muitas vezes, a validação de valores, informando e verificando se eles 
se encontram dentro de um intervalo de valores e condições aceitas pela aplicação web. Exemplo: 
efetuar validação de valores mínimos, máximos ou ambos;
•	 RegularExpressionValidator – efetua a verificação de dados de entrada, na qual se analisa, por meio de 
expressão regular, a sua construção através de máscaras de edição. Exemplo: validações de RG, CEP, CPF etc.;
•	 CustomValidator – possibilita ao programador codificar a sua própria estrutura de validação de dados;
•	 ValidationSummary – possibilita ao programador codificar a exibição de resumo de todas as 
validações efetuadas nas páginas aspx.
Figura 66 – Página indicando campos obrigatórios
Figura 67 – Trecho de código com RequiredFieldValidator
67
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
6.1 aplicação de ajax em aplicações asp.NeT
Ajax nada mais é do que a abreviação de Asynchronous Javascript and XML, que pode ser considerada 
uma técnica relativamente antiga, mas que, de alguns anos para cá, vem se tornando um elemento 
surpresa para os programadores.
O Ajax tem como objetivo utilizar Javascript, XML e XMLHttpRequest de maneira que possam ser 
criadas páginas que executem de maneira rápida e precisa o código desenvolvido, sem precisar que as 
páginas efetuem cargas novamente, os famosos postbacks.
Podemos entender que o Ajax possibilita trabalhar com um comportamento assíncrono, ou 
seja, a aplicação consegue executar o código no servidor sem que a página permaneça “paralisada”, 
possibilitando, assim, que o cliente continue utilizando a aplicação web ao mesmo tempo em que toda 
a execução front é realizada.
http(s) transpot
browser client
server‑side systems
web and/or XML server
user interface
Ajax engine
datastores, backend 
processing, legacy systems
Ajax
web application model
XML data
JavaScript call
HTML+CSS data
http(s) transpot
browser client
server‑side systems
user interface
web server
datastores, backend 
processing, legacy systems
Classic 
web application model
Jesse James Garrett / adaptivepath.com
HTTP request
HTML+CSS data
HTTP request
Figura 68 – Modelo de estrutura Ajax
68
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
<%@ Page Language=”VB”%> 
<!DOCTYPE html PUBLIC “‑//W3C//DTD XHTML 1.0 Transitional//EN” 
“http://www.w3.org/TR/xhtml1/DTD/xhtml1‑transitional.dtd”> 
 
<script runat=”server”> 
 Protected Void GridView1_PageIndexChanging(ByVal sender As Object, 
ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) 
{ 
    ‘Este código inclui um delay de 3 segundos para poder exemplificar 
o controle do Atlas funcionando 
 System.Threading.Thread.Sleep(3000) 
 } 
</script> 
 
<html xmlns=”http://www.w3.org/1999/xhtml” > 
 <head runat=”server”> 
 <title>Exemplo UNIP</title> 
 </head> 
 <body> 
 <form id=”form1” runat=”server”> 
 <div><asp:ScriptManager ID=”ScriptManager1” runat=”server”></
asp:ScriptManager> 
 </div> 
 <asp:UpdatePanel ID=”UpdatePanel1” runat=”server”> 
 
 <ContentTemplate> 
 <asp:GridView ID=”GridView1” runat=”server” 
AllowPaging=”True” AutoGenerateColumns=”False” 
 CellPadding=”4” DataSourceID=”AccessDataSource1” 
ForeColor=”#333333” GridLines=”None” 
 OnPageIndexChanging=”GridView1_PageIndexChanging” 
PageSize=”4”> 
 <FooterStyle BackColor=”#990000” Font‑Bold=”True” 
ForeColor=”White” > 
 
 <Columns> 
 <asp:BoundField DataField=”FirstName” 
HeaderText=”FirstName” SortExpression=”FirstName” /> 
 <asp:BoundField DataField=”LastName” 
HeaderText=”LastName” SortExpression=”LastName” /> 
 </Columns> 
 
 <RowStyle BackColor=”#FFFBD6” ForeColor=”#333333” /> 
 
 <SelectedRowStyle BackColor=”#FFCC66” Font‑Bold=”True” 
ForeColor=”Navy”/> 
 
 <PagerStyle BackColor=”#FFCC66” ForeColor=”#333333” 
HorizontalAlign=”Center” /> 
 
 <HeaderStyle BackColor=”#990000” Font‑Bold=”True” 
ForeColor=”White” /> 
 
 <AlternatingRowStyle BackColor=”White” /> 
69
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
 </asp:GridView> 
 
 <asp:AccessDataSource ID=”AccessDataSource1” runat=”server” 
DataFile=”~/App_Data/Northwind.mdb” 
 SelectCommand=”SELECT FirstName, LastName FROM Employees 
ORDER BY LastName”></asp:AccessDataSource> 
 
 </ContentTemplate> 
 </asp:UpdatePanel> 
 
 <asp:UpdateProgress ID=”UpdateProgress1” runat=”server” Associ
atedUpdatePanelID=”UpdatePanel1”> 
 <ProgressTemplate> 
 Carregando ..... 
 </ProgressTemplate> 
 </asp:UpdateProgress> 
 </form> 
 </body> 
</TML>
Figura 69 – Exemplo Ajax
<?xml version=”1.0”?> 
<configuration>  
<configSections>  
<sectionGroup name=”system.web.extensions” type=”System.Web.
configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, 
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad36
4e35”> 
<sectionGroup name=”scripting” type=”System.Web.configuration.
ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35”> 
<section name=”scriptResourceHandler” 
type=”System.Web.configuration.ScriptingScriptResourceHandlerSection, 
System.Web.Extensions, 
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad36
4e35” requirePermission=”false” 
allowDefinition=”MachineToApplication”/>  
<sectionGroup name=”webServices” type=”System.Web.configuration.
ScriptingWebServicesSectionGroup, 
 System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, Public
KeyToken=31bf3856ad364e35”> 
<section name=”jsonSerialization” type=”System.Web.configuration.
ScriptingJsonSerializationSection, 
 System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, Public
KeyToken=31bf3856ad364e35” 
 requirePermission=”false” allowDefinition=”Everywhere” />  
<section name=”profileService” type=”System.Web.configuration.
ScriptingProfileServiceSection, 
 System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, Public
KeyToken=31bf3856ad364e35” 
 requirePermission=”false” allowDefinition=”MachineToApplication” />  
<section name=”authenticationService” 
 type=”System.Web.configuration.ScriptingAuthenticationServiceSection, 
System.Web.Extensions,
70
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
 Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad36
4e35” requirePermission=”false” 
 allowDefinition=”MachineToApplication” />  
</sectionGroup> 
</sectionGroup> 
</sectionGroup> 
</configSections>  
<system.web> 
<pages> 
<controls> 
<add tagPrefix=”asp” namespace=”System.Web.UI” assembly=”System.Web.
Extensions, Version=1.0.61025.0, 
 Culture=neutral, PublicKeyToken=31bf3856ad364e35”/> 
</controls> 
</pages> 
<compilation debug=”false”> 
<assemblies> 
<add assembly=”System.Web.Extensions, Version=1.0.61025.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35”/> 
</assemblies> 
</compilation> 
<httpHandlers> 
<remove verb=”*” path=”*.asmx”/> 
<add verb=”*” path=”*.asmx” validate=”false” type=”System.Web.Script.
Services.ScriptHandlerFactory, 
 System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, Public
KeyToken=31bf3856ad364e35”/> 
<add verb=”*” path=”*_AppService.axd” validate=”false” 
 type=”System.Web.Script.Services.ScriptHandlerFactory, System.Web.
Extensions, Version=1.0.61025.0, 
 Culture=neutral, PublicKeyToken=31bf3856ad364e35”/> 
<add verb=”GET,HEAD” path=”ScriptResource.axd” type=”System.Web.
Handlers.ScriptResourceHandler, 
 System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, Public
KeyToken=31bf3856ad364e35” 
 validate=”false”/> 
</httpHandlers> 
<httpModules> 
<add name=”ScriptModule” type=”System.Web.Handlers.ScriptModule, 
System.Web.Extensions, 
 Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad36
4e35”/> 
</httpModules> 
</system.web> 
</configuration> 
Figura 70 – Web.config da aplicação com Ajax
Para efetuar a configuração do Ajax dentro web.config deve‑se inserir dentro do laço ou da tag 
system.web:
71
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
Figura 71 – Aplicação de Ajax no web.config
Exemplo de aplicação
Para que o exemplo de Hello Word seja construído com sucesso, devemos dividir o processo entre 
duas etapas:
•	 uma	parte	deverá	residir	no	lado	servidor,	ou	seja,	na	codificação	no	arquivo	.cs,	onde	será	
feita a execução e compilação do código, por exemplo, validar um cliente, localizar dados 
em uma base de dados, ou até mesmo o processamento de uma operação matemática 
mais complexa;
•	 outra	parte	deverá	permanecer	no	lado	cliente,	ou	seja,	codificação	Javascript,	que	irá	apresentar	
na página futuros alertas entre outros itens.
Iniciaremos	no	webform1.aspx.cs,	no	qual	deverá	ser	inserido	o	seguinte	trecho	de	código:
Figura 72 – Código dentro do arquivo .cs
Dentro	do	método	padrão	que	já	vem	incluído	na	classe,	o	Page_Load,	encarregado	de	efetuar	a	
transição de ações para a página, devemos inserir o seguinte código:
Figura 73	–	Método	Page_Load
Efetuando	 análise	 dessa	 estrutura,	 podemos	 considerar	 que	 o	 Page_Load	 adiciona	 de	 maneira	
automática todo o bloco de código Javascript em uma página aspx, para que ela possa identificar 
72
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
possíveis chamadas Ajax. Entretanto, o mais importante é adicionar o parâmetro do typeof, que efetua 
a chamada da classe encapsulada na página solicitada.
No WebForm1 deverá ser adicionado o seguinte trecho de código:
Figura 74 – Codificação efetuada na página WebForm1
Dentro da tag <head></head> deverá ser informado o seguinte trecho de código:
Figura 75 – Codificação Ajax
73
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
Figura 76 – Página em execução
Procure reproduzir esse processo em sua máquina a fim de praticar os conceitos vistos.
6.2 bootstrap
Bootstrap pode ser considerado um framework CSS que possibilita ao programador o desenvolvimento 
de uma aplicação web utilizando um universo de componentese funcionalidades disponibilizados, tais 
como: CSS, jQuery e HTML.
Ele foi desenvolvido pela equipe do Twitter, tomando como premissa padrões de desenvolvimento 
rápido, levando‑se em consideração código limpo, eficiência e eficácia em sua utilização. Ele é responsivo, 
ou seja, utiliza recursos de bootstrap. O cliente consegue visualizar todos os itens de maneira confortável 
em ambiente desktop e em dispositivos móveis.
 saiba mais
Para que o aluno possa conhecer muito mais sobre o bootstrap, 
indicamos:
CC BY. Bootstrap. [s.d.]. Disponível em: <http://twitter.github.com/
bootstrap/index.html>. Acesso em: 29 jul. 2015.
74
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
Podemos ressaltar alguns itens de trabalho muito importantes com o bootstrap, como:
•	 Sistema de grid: ajuda o posicionamento dos elementos na página.
•	 Design responsivo: disponibiliza suporte a tamanhos de tela diversos (mobile, tablets etc.).
•	 Blocos de código: ajudam a inserção de blocos de código.
•	 Tabelas: são melhor modo de trabalhar com tabelas de maneira estilizada e amigável.
•	 Formulários: auxiliam a inserção de formulários com caixas de busca, checkboxes, selects etc. 
com estilos de validação dentre outros.
•	 Botões: existem diversos estilos de botões.
•	 Mini‑ícones: mini‑ícones para que o programador consiga trabalhar de maneira livre dentro de 
uma aplicação web.
•	 Componentes: há uma gama de componentes para dropdowns, labels, badges, tipografia, 
thumbnails, alerts, progress bars, dentre outros.
 lembrete
O bootstrap é compatível com HTML5 e CSS, sendo assim, se integra 
também a componentes atuais, tais como grid e textbox, além de permitir 
a criação de modais, barra de progresso, botões e formulários por meio 
da	 interface	 (UI).	 Trabalha	 também	 com	 as	mais	 avançadas	 técnicas	 de	
desenvolvimento para CSS.
bootstrap/ 
 +‑‑ css/ 
 ¦ +‑‑ bootstrap.css 
 ¦ +‑‑ bootstrap.min.css 
 ¦ +‑‑ bootstrap‑responsive 
 ¦ +‑‑ bootstrap‑responsive.min 
 +‑‑ js/ 
 ¦ +‑‑ bootstrap.js 
 ¦ +‑‑ bootstrap.min.js 
 +‑‑ img/ 
      +‑‑ glyphicons‑halflings.png 
      +‑‑ glyphicons‑halflings‑white.png 
Figura 77 – Estrutura do arquivo boostrap.css
75
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
bootstrap/ 
 +‑‑ css/ 
 ¦ +‑‑ bootstrap.css 
 ¦ +‑‑ bootstrap.min.css 
 ¦ +‑‑ bootstrap‑responsive 
 ¦ +‑‑ bootstrap‑responsive.min 
 +‑‑ js/ 
 ¦ +‑‑ bootstrap.js 
 ¦ +‑‑ bootstrap.js 
 ¦ +‑‑ jquery‑1.9.1 
 ¦ +‑‑ jquery‑1.9.1.min 
 +‑‑ img/ 
      +‑‑ glyphicons‑halflings.png 
      +‑‑ glyphicons‑halflings‑white.png 
Figura 78 – Estrutura do arquivo boostrap
<!DOCTYPE html> 
<html> 
<head> 
<title>Usando Bootstrap – Desenvolvimento de Software para 
Internet</title> 
 
<!‑‑ Incluindo o CSS do Bootstrap ‑‑> 
<link href=”bootstrap/css/bootstrap.min.css” rel=”stylesheet” 
media=”screen” /> 
 
</head> 
<body> 
 
<!‑‑ Incluindo o jQuery que é requisito do JavaScript do Bootstrap 
localmente‑‑> 
<script src=”bootstrap/js/jquery‑1.9.1.min.js”></script> 
 
<!‑‑ Incluindo o JavaScript do Bootstrap ‑‑> 
<script src=”bootstrap/js/bootstrap.min.js”></script> 
 
</body> 
</html>
Figura 79 – Página HTML com aplicação do bootstrap
76
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Unidade III
<!DOCTYPE html> 
<html> 
<head> 
<title> Usando Bootstrap – Desenvolvimento de Software para 
Internet </title> 
<!‑‑ Incluindo o CSS do Bootstrap ‑‑> 
<link href=”bootstrap/css/bootstrap.min.css” rel=”stylesheet” 
media=”screen” /> 
</head> 
<body> 
<!‑‑ Incluindo o jQuery que são requisito do JavaScript no 
Bootstrap ‑‑> 
<script src=”bootstrap/js/jquery‑1.9.1.min.js”></script> 
<!‑‑ Incluindo o JavaScript do Bootstrap ‑‑> 
<script src=”bootstrap/js/bootstrap.min.js”></script> 
</body> 
<form class=”form‑horizontal”> 
 <div class=”control‑group”> 
 <label class=”control‑label” for=”inputEmail”>E‑mail</label> 
 <div class=”controls”> 
 <input id=”inputEmail” type=”text” placeholder=”Digite o 
e‑mail...” /> 
 </div> 
 </div> 
 <div class=”control‑group”> 
 <label class=”control‑label” for=”inputSenha”>Senha</label> 
 <div class=”controls”> 
 <input id=”inputSenha” type=”password” placeholder=”Digite a 
senha...” /> 
 </div> 
 </div> 
 <div class=”control‑group”> 
 <div class=”controls”> 
 <label class=”checkbox”><input type=”checkbox” /> Lembrar a 
minha senha</label> 
 <button class=”btn” type=”submit”>Acessar</button> 
 </div> 
 </div> 
</form> 
</html>
Figura 80 – Página HTML com aplicação do bootstrap
77
Re
vi
sã
o:
 G
io
va
nn
a 
/ R
os
e 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
06
/0
8/
20
15
Desenvolvimento De software para internet
Figura 81 – Página.aspx com aplicação do bootstrap
 resumo
Nessa unidade abordamos conceitos de validação de dados, incluindo 
toda a construção e aplicação de conceitos para validação de componentes, 
tais como textbox, buttons etc.
Também foram apresentados conceitos de Ajax que são de extrema 
importância e atualmente encarados como uma carta na manga dos 
desenvolvedores – um recurso que facilita toda a concepção de tráfego de 
informações e persistência de ações contidas na página .aspx.
Utilizando recursos de User Control, podemos construir persistências 
equivalentes a todas as páginas .aspx, ou seja, trabalhar com conceitos 
de reutilização de código, melhorando, assim, a eficiência do código e 
elevando o entendimento para futuras melhorias que serão efetuadas na 
aplicação web.
Abordamos, além disso, o conceito de Trace e Debug que, muitas 
vezes, para os desenvolvedores, são os remédios que solucionam todos 
os problemas na aplicação. Entender o que acontece em cada passo da 
execução, identificar falhas na aplicação e principalmente definir correções 
partem de ações realizadas por meio de Trace e Debug.
Muitas vezes o desenvolvedor não consegue identificar nem mesmo a 
regra de negócio inserida na aplicação web, porém apenas com a execução de 
Trace e de Debug é como se um teste de mesa fosse realizado, esclarecendo, 
assim, o entendimento de uma funcionalidade, a identificação de falhas e 
até mesmo de possíveis melhorias que deverão ser feitas na aplicação web.

Continue navegando