Esta semana foi disponibilizada para download a Beta do Visual Studio 2010, bem como a .NET Framework 4, também a versão Beta 1, representando um conjunto relevante de novos valores para o desenvolvimento.
Poderá ver as principais alterações do Visual Studio 2010 através da datasheet em formato PDF ou formato XPS.
Existem ainda um série de recursos que mostram as principais novidades, desde vídeos, entrevistas, artigos, etc, em MSDN - Visual Basic 2010 Resources.
A utilização de operadores lógicos é tão comum que um pouco por todo o código se usam operadores como o And ou o Or . No entanto o VB.NET tem novos operadores, já disponíveis nas primeiras versões .NET, que muitos não usam por desconhecimento da sua real funcionalidade.
Os operadores AndAlso e OrElse, são designados short-circuiting operators, ou seja, são operadores de rápida validação ou de circuito reduzido.
Vejamos o funcionamento de uma validação:
| CONDIÇÃO 1 | CONDIÇÃO 2 | RESULTADO |
| True | True | True |
| False | True | False |
| True | False | False |
| False | False | False |
Ou seja, qualquer condição a False irá produzir um resultado False.
O que o AndAlso faz é quando encontrar uma condição a False, decide logo e não executa a condição seguinte. Isto pode reduzir bastante, dependendo das condições, o tempo de execução da aplicação.
A seguinte função leva algum tempo a executar e retorna o resultado (True ou False) indicado no parâmetro. Serve apenas para mostrar os diferentes resultados, na utilização de diferentes operadores, nos exemplos seguintes.
''' <summary>
''' Efectua um ciclo retornando o resultado indicado no parâmetro
''' </summary>
Private Function doTestLoop(ByVal result As Boolean) As Boolean
For x As Byte = 0 To 200
Threading.Thread.Sleep(5)
Application.DoEvents()
Next
Debug.WriteLine("Executado às " & Now.ToString)
Return result
End Function
Este exemplo executa duas vezes a função doTestLoop() e irá depois parar na condição falsa
If doTestLoop(False) And doTestLoop(False) Then
Stop' Condição verdadeira
Else
Stop' Condição falsa
End If
Usando o operador AndAlso, e no mesmo exemplo, irá ser executado apenas a primeira condição e salta para a condição falsa, reduzindo o tempo de ciclo.
If doTestLoop(False) AndAlso doTestLoop(False) Then
Stop ' Condição verdadeira
Else
Stop ' Condição falsa
End If
Isto permite que se criem validações, apenas em uma linha, sem erros indesejados.
Por exemplo, o seguinte código tenta encontrar um Form na aplicação que não existe, ficando a variável frm a Nothing. Neste caso é verificada a primeira condição, que é falsa, e sai da validação, mas se utilizássemos o operador And, iria ser feita a primeira condição e depois a segunda, originando um erro "Object reference not set to an instance of an object".
Dim frm As Form = My.Application.OpenForms("Nome não Existente")
If frm IsNot Nothing AndAlso frm.Text = "Nome Pretendido" Then
Stop ' Condição verdadeira
End If
O mesmo acontece com o operador OrElse. Se encontrar uma condição verdadeira ele decide, sem ter de executar a próxima.
A validação de uma condição Or funciona desta forma, ou seja, qualquer condição verdadeira irá ter um resultado verdadeiro:
| CONDIÇÃO 1 | CONDIÇÃO 2 | RESULTADO |
| True | True | True |
| False | True | True |
| True | False | True |
| False | False | False |
Neste exemplo simples será executado apenas a primeira condição, saltando logo para a condição verdadeira:
If doTestLoop(True) OrElse doTestLoop(True) Then
Stop ' Condição verdadeira
End If
Resumindo: são dois operadores que podem e devem ser utilizados, especialmente se as condições/validações podem levar algum tempo a executar. Podem ainda simplificar o código, evitando-se utilizar If’s dentro de If’s para se conseguir o mesmo resultado.
O bloco Using é uma novidade da Visual Studio 2005/.NET Framework 2.0 e permite criar um bloco, onde no final, os recursos utilizados são libertados. Isto é muito útil e prático, especialmente quando se utilizam unmanaged resources, como ligações a base de dados, ligações a ficheiros de texto, objectos COM, etc.
Os unmanaged resources, são recursos que o CLR (Common Language Runtime) não liberta e que ficam a consumir desnecessariamente recursos do sistema. Os managed resources, por sua vez, são geridos pelo CLR através do .NET Framework Garbage Collector (GC).
No seguinte exemplo, mesmo que aconteça um erro, a ligação à base de dados é fechada e limpa, porque o Using faz o .Disposal() automaticamente sem código adicional.
Dim myConnectionString As String = String.Empty
Using conn As New SqlConnection(myConnectionString)
conn.Open()
Using command As New SqlCommand("SELEC * FROM myTable", conn)
command.ExecuteNonQuery()
End Using
End Using
Como se pode ver neste exemplo simples, é declarada a variável, usada dentro do bloco e finalmente faz o Disposal da variável.
PS: Como sempre, qualquer dúvida, comentário ou correcção ao artigo é sempre bem vinda!
Recentemente escrevi o meu primeiro artigo internacional sobre uma Merged DataGridView que mostra, além de algumas personalizações, manipulações e animações, como simular/criar uma nova linha contínua e com isso poder mostrar mais informação para cada registo. Este artigo, que também está disponível neste blog em Português, foi escrito originalmente para o site www.codeproject.com, que é uma comunidade com mais de 6.000.000 de utilizadores e com um concurso mensal de artigos de programação em diversas áreas.
Numa visita recente ao site, verifiquei que está entre os 10 melhores do mês de Abril, na categoria de VB.NET, e encontra-se em votação para o melhor artigo do mês de Abril de 2009.
Foi sem dúvida um excelente início!
Nesta altura encontra-se em primeiro lugar na votação, mas se quiserem participar/contribuir (apenas para utilizadores registados) é só utilizarem o seguinte endereço: Best VB.NET article of April 2009
Terminou o TechEd North America 2009 que decorreu de 11 a 15 de Maio em Los Angeles. Muitas sessões estão
disponíveis online para quem se inscreveu no evento, mas muitas estão também disponíveis para todos.
Algumas das sessões são realmente interessantes e mostram, em várias áreas, algumas das novidades dos produtos Microsoft ou de fornecedores.
Este é um dos vídeos disponíveis muito interessantes e que mostra o futuro do Visual Basic e as principais alterações na versão 2010.
http://www.msteched.com/online/view.aspx?tid=1d3d650b-a6b3-4c98-9240-571866969b89
Podem também
descarregar o vídeo e visualizar depois.