HTML, JavaScript, PHP, ASP, .Net, C#, MySQL, Ms. SQL ...
Com a ascenção e o crescimento no mercado de TI, o webdesigner e o programador são profissionais que lidam diariamente com ferramentas distintas: o Webdesigner cuida do layout e da usabilidade da página, enquanto o programador cuida das funcionalidades e impressão de resultados.
Em muitos lugares, é de costume encontrar estes 3 tipos de profissionais:
E como fazer para um profissional fornecer o que o outro precisa? Devido ao crescimento deste mercado, foi necessário conceder na estrutura de desenvolvimento vários parâmetros, em que o principal deles é a camada de apresentação (onde o usuário final tem acesso às informações).
Nas linguagens de Programação voltadas p/ a Web, já é possível trabalhar em situações na qual o código-fonte fica separado da codificação de algoritmos.
Este é um exemplo para quem tem o costume de trabalhar com o ASP, misturando a programação com o código HTML, tipicamente conhecido como "algoritmo spaghetti".
Cito então um exemplo de um datagrid em ASP, na qual conecto a um banco de dados, e faço imprimir a relação de estados brasileiros:
1. Conexão SQL
sub abreconexao()
Set objConexao = CreateObject("ADODB.Connection")
objConexao.commandTimeout=20
'MySQL Localhost
objConexao.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=localhost; Database=leobredacom; User=root;Password=root;Option=3;"
objConexao.Open
end sub
sub fechaconexao()
objConexao.Close : Set objconexao = Nothing
end sub
2. Montando o datagrid utilizando o "algoritmo spaghetti".
<head>...</head>
<body>
<table>
<tr>
<td>Código</td>
<td>Nome</td>
</tr>
<% strSQL = "SELECT ESTADO_COD, ESTADO_DESC FROM ESTADOS WHERE PAIS='BRASIL' ORDER BY ESTADO_DESC"
call abreConexao : set objRecordset=CreateObject("ADODB.Recordset") : objRecordset.Open strSQL, objConexao
while NOT objRecordset.EOF%>
<tr>
<td><%=objRecordset("ESTADO_COD")%></td>
<td><%=objRecordset("ESTADO_DESC")%></td>
</tr>
<%objRecordset.MoveNext : wend : objRecordset.Close : set objRecordset=nothing : call fechaConexao%>
</table>
</body>
</html>
Pelo código, a programação se misturou com o HTML, onde não é critério do Programador lidar com HTML, e nem o WebDesigner se interessar o que está no algoritmo. Com a popularidade de editores WYSIWYG, a página será editada, e a consulta poderá ir para o final da página, ou mesmo ser apagada, ocorrendo complicações futuras, brigas entre os dois profissionais (a mais provável), etc.
3. Montando o datagrid SEM utilizar o "algoritmo spaghetti".
<% strSQL = "SELECT ESTADO_COD, ESTADO_DESC FROM ESTADOS WHERE PAIS='BRASIL' ORDER BY ESTADO_DESC"
call abreConexao : set objRecordset=CreateObject("ADODB.Recordset") : objRecordset.cursorLocation=3 : objRecordset.Open strSQL, objConexao
i=0
redim ESTADO(objRecordset.RecordCount-1,1)
while NOT objRecordset.EOF
ESTADO(i,0) = int(objRecordset("ESTADO_COD")) 'Código do Estado
ESTADO(i,1) = objRecordset("ESTADO_DESC") 'Nome do Estado
i=i+1
objRecordset.MoveNext : wend : objRecordset.Close : set objRecordset=Nothing : call fechaConexao%>
<html>
<head>...</head>
<body>
<table>
<tr>
<td>Código</td>
<td>Nome</td>
</tr>
<%for i=0 to uBound(ESTADO)%>
<tr>
<td><%=ESTADO(i,0)%></td>
<td><%=ESTADO(i,1)%></td>
</tr>
<%next%>
</table>
</body>
</html>
Por este código, foi possível separar a programação da página em sí. Costumo adotar este padrão, inserindo TODAS as programações possíveis antes do código HTML. Se for preciso alterar o layout da página, basta o Webdesigner manipular dentro do HTML os valores do vetor ESTADO. Se apagar, basta consultar onde o vetor foi montado linha-a-linha, dizendo o que é cada informação do vetor através do "dicionário de informações" nos comentários...