Video – Uma Visão do Futuro da Produtividade by Microsoft

Não faz muito tempo, o pessoal da Microsoft Office Labs, atendendo a uma série de pedidos, lançou um vídeo sobre o Futuro da Produtividade na Tecnologia. O Vídeo foi chamado de A Walk Through the Productivity Future Vision e retrata de maneira simples e impressionante o que nos espera no futuro da tecnologia, segundo a visão da maior empresa de software do mundo.

Productivity Future Vision Video Talk Track
Duvida que alguém que assista o vídeo não gostaria de dar um pulinho no futuro só para ver se vai ser mesmo por aí.

C# – static readonly vs. const

C#
O pessoal do grupo em que participo colocou essa pergunta e achei bacana comentar aqui.

Qual a diferença entre utilizar static readonly ou const ? Tem algum
que é mais performatico?

const é avaliado em tempo de compilação, enquanto static readonly em tempo de execução. Isso permite que no static readonly você inicialize uma classe ou struct, enquanto no const você só pode usar tipos primários (porque são compilados).

O readonly pode ser inicializado dentro do construtor. Ou seja, dependendo do construtor que você usar, o readonly pode ter valores diferentes. Já o const não. Mas isso só vale pra readonly non-static, pq só existe um construtor static pra classe.

Tem mais um fator, muito importante aliás, principalmente na utilização de componentes.

Em quase todas as linguagens, const é apenas um facilitador para substituição de valores. Quando você declara um const e atribui um valor a ele, por exemplo, um inteiro de valor 5, ao compilar, todos os lugares que referenciam sua const vão ter o valor substituído pelo inteiro 5. Por isso a performance.

No caso do static reanonly, isso não acontece pois, apesar da variável ser somente leitura, ela ainda é uma “variável” e sempre será referenciada.

Um caso típico de onde não se deve usar const é em bibliotecas. Por exemplo, você criar uma lib que vai conter a string de conexão. Você a coloca em uma const. Na compilação, todos os valores que refenciam a
string de conexão terão seus valores substituídos pelo valor da const. Ok, era o que você queria. Mas, caso você preciso alterar a string de conexão, você obviamente vai recompilar e publicar somente a lib com a
informação. O fato é, ao fazê-lo, todo o resto do código só conhece o valor anterior da const.

Para ver um exemplo bem simples, crie o seguinte programa no notepad mesmo:

1
2
3
4
5
6
7
8
9
10
11
using System;
 
public class TestConst
{
        public static void Main(string[] args)
        {
                const string MinhaString = "bla";
                Console.WriteLine(MinhaString);
        }
 
}

Compile com o csc.exe. Em seguida, abra o assembly com o ILDASM ou mesmo o Reflector. Veja o resultado.

Modelos – Planilha de Cálculo de Financiamento

Mais um modelo bacana encontrado num dos cantos da Internet. A Planilha de Cálculo de Financiamento possibilita ter uma visão completa de como será o histórico da dívida a ser assumida, o total de juros a ser pago, o pagamento mensal, permitindo informar a quantidade de parcelas e o valor dos juros.

Planilha de Cálculo de Financiamento

O mais bacana da Planilha de Cálculo de Financiamento é a simplicidade. Utilizando-a em conjunto com o Atingir Meta, praticamente não há limites para as simulações.

O grande pecado foi não ter funcionado bem em aparelhos móveis. Pelo menos no QuickOffice do Symbian, as funções não funcionaram.

Download do arquivo

http://www.tutomania.com.br/extra/planilha-de-calculo-de-financiamento

VBA – Como Filtrar dados no ListBox

VBA - Como Filtrar dados no ListBox

Este é um código de exemplo que tenho a muito tempo, mas como o pessoal tem pedido muito, vou deixá-lo em uma forma mais visível.

Como o VBA carece de controles de apresentação de dados mais avançados, como Grids e Listas complexas, acabamos apelando para o controle ListBox para apresentação de dados vindos de ResultSets (particularmente, prefiro apresentar os dados em uma planilha). Bom, como os dados já estão na LisBox, porque não aplicar o filtro nele mesmo?

Para ver um exemplo, proceda da seguinte forma:

  • Em um novo arquivo, crie uma lista de dados na Plan1, na coluna A a partir da célula A1
  • Abra o VBA (Alt+F11)
  • Adicione um UserForm ao projeto
  • No UserForm, adicione um controle TextBox e um ListBox (mantenha os nomes padrão dos controles)
  • Cliquem em F7 para exibir o código e adicione o seguinte:
  • Option Explicit
    'Autor: Tomás Vásquez.
    '       www.tomasvasquez.com.br/blog
    '       www.tomasvasquez.com.br/forum
    '       www.tomasvasquez.com.br/cursocsharp
    'Data:  15 de Janeiro de 2007.
    'Versão: 1.00 - Em VBA Microsoft Excel 2003 e 2007
    Private TextoDigitado As String
     
    Private Sub TextBox1_Change()
        TextoDigitado = TextBox1.Text
        Call PreencheLista
    End Sub
     
    Private Sub UserForm_Initialize()
        Call PreencheLista
    End Sub
     
    Private Sub PreencheLista()
        Dim ws As Worksheet
        Dim i As Integer
        Dim TextoCelula As String
        Set ws = ThisWorkbook.Worksheets(1)
        i = 1
        ListBox1.Clear
        With ws
            While .Cells(i, 1).Value <> Empty
                TextoCelula = .Cells(i, 1).Value
                If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
                    ListBox1.AddItem .Cells(i, 1)
                End If
                i = i + 1
            Wend
        End With
    End Sub

Execute o UserForm e digite valores válidos de filtro no TextBox e veja o efeito.

Trocando em miúdos, primeiro o UserForm carrega os dados da Plan1 no ListBox. Depois, o evento TextChange é mapeado para que toda digitação provoque a refiltragem dos dados. A forma de comparação é simples, mas poderia ter sido feita também com o operador Like.

Download do arquivo

http://www.tomasvasquez.com.br/forum/download/file.php?id=2142