Renato Haddad

MVP, Developer .NET and MS-Office, MCPD, MCTS

Sponsors

October 2008 - Posts

Video sobre como sincronizar dados com o Sync no VS 2008

Se vc quer aprender como sincronizar dados com o VS 2008 SP1 usando o novo tipo de template synchronization, assista o vídeo http://www.renatohaddad.com/aulas.aspx passo a passo. Com isto vc conseguirá usufruir de trabalhar com aplicações ocasionalmente desconectadas e com apenas duas linhas de programação disparar a sincronização.

Bbons estudos e deixe-me saber o que acharam desta idéia de colocar videos free com dicas e truques.
Posted: Oct 31 2008, 11:06 AM by renatohaddad
Filed under:
Como criar um total no rodapé do controle GridView do ASP.NET?

Vc sabia que é possível criar um totalizador de colunas no rodapé do controle GridView do ASP.NET, mesmo que vc tenha paginação? Tenha em mente estas colunas no GridView: ID | Produto | Preco | Qtde

O que vc tem que fazer é criar o seguinte código no evento DataBound do GridView para somar a coluna Qtde e exibir o total no rodapé:

protected void GridView1_DataBound(object sender, EventArgs e)
{
    decimal Total = 0;
    foreach (GridViewRow row in GridView1.Rows)
    {
        // converte o preco e a qtde para multiplicar e somar no total
        decimal preco = decimal.Parse(row.Cells[2].Text);
        int qtde = Int32.Parse(row.Cells[3].Text);
        Total += preco * qtde;
    }
    GridViewRow footer = GridView1.FooterRow;
    footer.Cells[0].ColumnSpan = 3;
    footer.Cells[0].HorizontalAlign = HorizontalAlign.Center;
    footer.Cells.RemoveAt(2);
    footer.Cells.RemoveAt(1);
    footer.Cells[0].Text = string.Format("Stock value: {0:n2}", myStock);
}

Veja este exemplo ao vivo em http://www.renatohaddad.com/GridView/GridTotalRodape.aspx

Mais exemplos do GridView, consute o CD Um Mergulho no controle GridView em http://www.renatohaddad.com/videos.aspx

Bons estudos!!

Como usar o LIKE do SQL com o LINQ to SQL?

Muitos desenvolvedores tem me questionado sobre o uso do Like do SQL no LINQ to SQL. A questão é que ele existe sim, basta vc usar o namespace using System.Data.Linq.SqlClient e o método SqlMethods. Veja um exemplo:

var q = from c in db.Customers
        where SqlMethods.Like(c.CustomerID, txtFiltro.Text.Trim() + "%")
        select c;

Se o usuário digitar a letra A no txtFiltro.Text.Trim(), o T-SQL gerado para este exemplo é:

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]
FROM [dbo].[Customers] AS [t0]
WHERE [t0].[CustomerID] LIKE 'a%'

Ou seja, deixe que o framework gere o T-SQL, pois ele não irá errar.
Este exemplo está contido no CD de treinamento multimídia do LINQ to SQL, de minha autoria (www.renatohaddad.com/videos.aspx).
Bons estudos e aproveitem o LINQ

Posted: Oct 29 2008, 02:15 PM by renatohaddad | with 3 comment(s)
Filed under:
Dica de ASP.NET Databound

Esta dica é para o desenvolvedor não ficar criando código POG (Programação Orientada a Gambiarra) quando for adicionar um novo item a um objeto ListBox ou ComboBox em certa ordem. Dado um array veja nos exemplos 1 e 2 como adicionar um  elemento na última e na primeira posição após ocorrer o DataBind.

// declara o array de dados

string[] dados = { "teste1", "teste2", "teste3", "teste4" };

ListBox1.DataSource = dados;
ListBox1.DataBind();

// 1) adicionar um item a lista (ultimo elemento)

ListBox1.Items.Add(new ListItem("ultimo item", "ultimo"));

// 2) adicionar um item em uma determinada posicao da lista

ListBox1.Items.Insert(0, "novo item");

--------
Agora, se você atribuir a propriedade AppendDataBoundItems = true do controle, você não precisa ficar controlando a posição após o DataBind. Com isto, o item pode ser inserido antes do DataBind que permanecerá na respectiva posição.

DropDownList1.AppendDataBoundItems = true;
DropDownList1.Items.Add("primeiro item");
DropDownList1.DataSource = dados;
DropDownList1.DataBind();

Posted: Oct 21 2008, 10:06 PM by renatohaddad
Filed under:
Entrevista para o site meiobit no TechEd Brasil 2008

Durante o TechEd fui entrevistado pelo site meiobit o qual falo sobre os passos iniciais para ser um profissional de desenvolvimento com as ferramentas da MS. Assista e me dê um feedback. http://meiobit.pop.com.br/meio-bit/destaque/teched-2008-entrevista-exclusiva-com-renato-haddad-mvp

sincronização de dados

Após a minha palestra sobre sincronização de dados no TechEd Brasi 2008, algumas pessoas me pediram o código, então, aqui está o cóigo do botão Sincronizar:

private void btnSync_Click(object sender, EventArgs e)
        {
            DBLocalSyncAgent syncAgent = new DBLocalSyncAgent();
            Microsoft.Synchronization.Data.SyncStatistics syncStats = syncAgent.Synchronize();

            this.Form1_Load(null, null);
            MessageBox.Show(string.Format("Downloaded: {0} - Uploaded: {1}",
                    syncStats.TotalChangesDownloaded.ToString(),
                    syncStats.UploadChangesApplied.ToString()));
        }

Note que são apenas duas linhas necessárias para a sincronização, e com isto, muitas dificuldades existentes anteriormente devem ser solucionadas com este código. Não se esqueça de criar um novo item do tipo .sync. Prometo escrever em breve um artigo sobre isto passo a passo e publicá-lo no msdnbrasil.

Posted: Oct 20 2008, 11:34 AM by renatohaddad
Filed under:
Resumo do TechEd Brasil 2008

Finalizamos o TechEd Brasil 2008 com diversas palestras com excelente nível e novidades. O discurso do presidente mundial da Microsoft Steve Balmer no primeiro dia demonstrou o quanto a empresa tem investido no mercado, em pesquisas e em cada vez mais estar ligado nas necessidades das empresas oferecendo soluções.

Assisti palestras de ASP.NET, AJAX, VSTS, Reporting Services, Testes, WPF, Silverlight, Windows Live, IE8, e o que me chamou a atenção foi em relação o quanto que o público tem usado tal recurso. Por exemplo, na minha palestra de Produtividade com o VS 2008, tinham cerca de 400 pessoas imagino, pois a sala estava entupida, então, quando questionei quantos usam C# ou VB.NET o índice foi de 70% e 30%. Sinceramente, eu não esperava diferente, apesar de amar o VB.NET, mas é uma questão de mercado, localidade e público. Já quando questionei sobre o uso do VS 2008, apenas 20% se manifestaram, mas após eu demonstrar o produto 100% tem idéia de migrar.

Já na palestra do Rogério e do Danielzinho sobre o Windows Live Dev, fiquei assustado pq praticamente ninguém usa os recursos do Live nas aplicações. Isto, na minha opinião, demonstra o quanto que precisa de divulgação, pois é gratuito e dá um efeto fantástico. Imagina ter o messenger, virtual earth, contacts, live search, entre outros dentro da app (veja em http://dev.live.com/ )

Outra palestra que me preocupou e termos de mercado foi sobre o SQL Reporting Services 2008. Apesar de saber dos novos recursos, pois fiz várias sugestões ao time em abril/2008 quando fui na MS/EUA, acho que a adoção será muito lenta, pois vc é obrigado a instalar o SQL 2008, ou seja, uma empresa que tem o SQL 2005 e o VS 2008 NÃO poderá usar o SRS 2008!!!  Ou seja, terá que comprar o SQL 2008.

Finalizando, gostaria de agradecer a todos os participantes, principalmente quem assistiu as minhas palestras, e por favor, me mandem feedbacks para que eu possa melhorar a cada palestra.

Posted: Oct 17 2008, 03:45 PM by renatohaddad
Filed under:
More Posts