A Microsoft disponibilizou mais um conjunto de recursos de aprendizagem gratuitos e com o objectivo em ajudar na evolução/transição de tecnologia. Este programa, designado por Ramp Up, tem diversos percursos, sendo estes alguns exemplos do que está disponível:
Move from ASP to ASP.NET
Level 1: Developing Web Applications – Tooling
Level 2: ASP.NET Syntax for ASP Developers
Level 3: Programming WebForms
Level 4: Web Configuration
Level 5: Programming Web Events
Level 6: State Management
For the Visual Studio 2002/2003 Developer: Learn Visual Studio 2005
Level 1: Introduction to .NET Framework 2.0
Level 2: Introduction to Data and Security
Level 3: Windows Application Development Concepts
Level 4: Web Application Development Basics
For the Visual Basic 6.0 Developer: Learn Visual Basic 2005
Level 1: Introduction to Visual Basic 2005
Level 2: .NET Framework 2.0, an Introduction
Level 3: Introduction to Data and Security
Level 4: Windows Application Development Concepts
Level 5: Web Application Development Basics
Develop Windows Mobile 6 Applications
Level 1: Mobile Development Introduction
Level 2: Device Emulators
Level 3: Mobile Windows Forms Development
Level 4: Advanced Mobile Windows Forms Development
Level 5: SQL Server CE Introduction
Level 6: Security and Deployment
Level 7: Mobile Web Development
Visual Studio 2008
Designed to help you concentrate on what is new in Microsoft Visual Studio 2008, this learning track helps you to upgrade your skills.
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