Márcio Fábio Althmann

.NET Tips And Tricks

Siga-me no Twitter!RSS Feeds

  • Início
  • Consultoria
  • Contato
wlEmoticonsmile.png

C#– Keyword Partial

02/09/10

Escrito por Márcio Fábio Althmann em C#

1 comentário

Olá pessoal, tudo bem?

Tudo muito agitado por aqui, mas voltei a dar atenção ao blog finalmente!! E além de continuar postando sobre Silverlight, Windows Phone 7, vou continuar mostrando alguns truques que podemos utilizar no C#, como os operadores pouco utilizados que já mostrei aqui e aqui.

Hoje vou falar sobre a keyword partial.

Com a keyword partial conseguimos dividir uma mesma classe, struct ou interface em mais de um arquivo. Mas quando o projeto é compilado e o código gerado, esses arquivos são “mesclados”. Quem trabalha com Windows Forms e ainda não viu, veja que um formulário é dividido em vários arquivos mas utilizando partial.

Dividir as classes em vários arquivos, pode ser útil em projetos ou classes grandes, não preciso abrir aquela classe com 100 métodos (alguém tem algo assim? Smile ), ou como eu mostrei aqui no exemplo onde utilizo validação com DataAnnotations  no LINQ To SQL só consigo fazer esse tipo de “truque” graças as classes parciais.

Bom chega de falar e vamos aos exemplos que é muito melhor.

Uma classe Calculadora com 4 métodos simples.

class Calculadora
{
    public int Somar(int valor1, int valor2)
    {
        return valor1 + valor2;
    }

    public int Diminuir(int valor1, int valor2)
    {
        return valor1 - valor2;
    }

    public int Multiplicar(int valor1, int valor2)
    {
        return valor1 * valor2;
    }

    public int Dividir(int valor1, int valor2)
    {
        return valor1 / valor2;
    }
}

Posso dividir essa classe em duas da seguinte forma.

partial class Calculadora
{
    public int Somar(int valor1, int valor2)
    {
        return valor1 + valor2;
    }

    public int Diminuir(int valor1, int valor2)
    {
        return valor1 - valor2;
    }
}

partial class Calculadora
{
    public int Multiplicar(int valor1, int valor2)
    {
        return valor1 * valor2;
    }

    public int Dividir(int valor1, int valor2)
    {
        return valor1 / valor2;
    }
}

Uma  dúvida frequente, é se as classes precisam estar no mesmo Arquivo.cs, e a resposta é não, posso ter vários arquivos.cs com nomes diferentes contendo cada um, um pedaço da minha classe parcial.

Outro detalhe, é que para ele mesclar as classes, elas devem pertencer ao mesmo namespace.

Só para mostrar o código IL gerado, vemos que só existe uma classe Calculadora com os 4 métodos, mesmo dividindo o código em duas classes parciais.

IL

E não tenho restrições quanto a herança e implementação de interfaces. Veja o código abaixo.

class PessoaFisica : Pessoa, IDisposable
{
    public void Dispose()
    {
        throw new NotImplementedException();
    }
}

Esse código poderia ser dividido da seguinte forma.

partial class PessoaFisica : Pessoa
{

}

partial class PessoaFisica : IDisposable
{
    public void Dispose()
    {
        throw new NotImplementedException();
    }
}

Uma keyword simples, que pode ser muito útil na organização de determinados projetos.

Abraços e até o próximo artigo.

C#
wlEmoticonopenmouthedsmile.png

Partículas–Windows Phone 7

31/08/10

Escrito por Márcio Fábio Althmann em Novidades

2 comentários

E ai pessoal tudo bem?

As últimas semanas foram de muito trabalho, por isso o blog ficou um pouco parado. Mas a partir de hoje, volto com força total aqui no blog, e tenho ótimas novidades para o pessoal que gosta de Silverlight.

A primeira é que estou montando uma comunidade com meu amigo Dorta, específica sobre Silverlight, com lista de discussão, artigos, webcasts e muito mais. Estamos acertando os últimos detalhes, mas em breve todos poderão participar da nova comunidade.

A novidade é uma idéia que pode dar muito certo, mas só para deixar todo mundo curioso, pode ser que saia um livro de Silverlight logo logo, novamente eu e o Dorta estamos montando isso.

Agora, para não passar em branco o post, todo mundo sabe que o lançamento do Windows Phone 7 está próximo. Muitas apliações e jogos estão em desenvolvimento, e é muito divertido “brincar” desenvolvendo para o Windows Phone 7, fiquem com um vídeo de um sistema de particulas que estou criando, quando ficar pronto, ou avançar mais o mesmo, postarei aqui como criar algo assim. Esse vídeo está com 200 partículas, iria mostrar rodando com 1000, mas no emulador não ficou muito legal. Aceito doações de protótipos de aparelhos com o Windows Phone 7 Open-mouthed smile.

Abraços.

Partículas Windows Phone 7 from Márcio Fábio Althmann on Vimeo.

Novidades, Pessoal, Silverlight

Comunidade

20/08/10

Escrito por Márcio Fábio Althmann em Pensamentos

Nenhum comentário

Ontem tive o prazer de conversar como Luciano Palma e com o Fabrício Sanches sobre comunidade, e outros assuntos. Na verdade acho que eu e o Fabrício simplesmente paramos e vimos quem realmente sabe o que Comunidade significa falar :) o Palma é o cara, quem o conhece sabe o que estou falando.

Hoje fui olhar, meus e-mails e vi que ele comentou no meu post sobre um e-mail que recebi agradecendo pelo blog aqui.

Nem pedi autorização dele, mas vou colocar o comentário dele logo abaixo, não preciso falar mais nada, simplesmente perfeito.

Comunidade e Redes. Duas palavras com muita magia por trás delas.

Quando você faz parte delas, é como se suas fronteiras simplesmente deixassem de existir. Numa Comunidade (que é uma Rede), cada um aprende com base e seus interesses, e compartilha de forma genuína com os demais. É como se todos aprendessem juntos. Colaborar para este processo tem seu quê de magia e nos traz um sentimento muito positivo.
Esse retorno subjetivo é o Reconhecimento mais importante. Benefícios materiais? Eles vêm depois, mas são consequência. Não deveriam ser vistos como fim… (mas sim como meios de continuar evoluindo).

Luciano Palma

Abraços

Pensamentos

Meio Bit – Windows Phone 7

19/08/10

Escrito por Márcio Fábio Althmann em Pessoal

Nenhum comentário

E ai pessoal blz?

Bom eu também escrevo para o site Meio Bit, e comecei hoje uma série de posts sobre o Windows Phone 7, claro nada muito avançado, porque o público aqui do blog é diferente do público do Meio Bit.

Então quem quiser conferir o primeiro post é só clicar aqui.

Abraços.

Pessoal, Windows Phone 7

Moderador do Fórum de Silverlight

18/08/10

Escrito por Márcio Fábio Althmann em Pessoal

Nenhum comentário

E ai pessoal blz?

A falta de posts no blog é puramente falta de tempo, muito trabahlo, mas muito mesmo, mas em breve vou recuperar o tempo perdido e postar muitas coisas.

Esse post é só para anunciar que agora também sou moderador do Fórum de Silverlight no MSDN Brasil, vou moderar o Forum junto com meu amigo Ricardo Dorta, e em breve nós dois teremos uma ótima novidade para a comunidade de Silverlight Brasileira, fiquem ligados, o projeto está evoluindo e o resultado vai ser ótimo.

Então fiquem a vontade para tirar dúvidas lá no fórum ou mesmo mandando e-mail aqui pelo site.

Abraços.

Pessoal, Silverlight
Ribbon.png

Ribbon para Silverlight

14/08/10

Escrito por Márcio Fábio Althmann em Silverlight

1 comentário

Depois que mostrei o Ribbon para WPF aqui, recebi muitos e-mails perguntando se teria algo parecido para Silverlight, confesso opção gratuita eu nunca encontrei, mas resolvi procurar hoje e vi um controle em estágio Beta ainda que vale muito dar uma olhada, é da empresa DevElements, e o controle pode ser visto aqui.

Ribbon

Agora caso queiram comprar algo, tenho algumas dicas como os controles da Telerik, Infragistics, ComponentArt ou ComponentOne.

Abraços.

Silverlight

Zoom.it

06/08/10

Escrito por Márcio Fábio Althmann em Dicas

Nenhum comentário

A Microsoft lançou um site chamado Zoom.it nele conseguimos criar um “Screen shot” gigante de um site, e tudo com Silverlight e Deepzoom.

Vou deixar para explicar o Deep Zoom, fica para outro dia, mas o resultado é muito legal, e ainda conseguimos adicionar o Deep Zoom em sites, como fiz abaixo com meu site, e ele também cria uma url curta. Olha o meu site aqui http://zoom.it/hQBR.

Abraços.

Dicas, Silverlight, XAML
wlEmoticonwinkingsmile.png

Ribbon para WPF

03/08/10

Escrito por Márcio Fábio Althmann em C#

3 comentários

Desde que a Microsoft lançou o menu Ribbon no Office, creio que foi amor a primeira vista com a maioria das pessoas, apesar de muito diferente daquele velho e bom menu padrão, utilizando Ribbon, tudo fica mais organizado.

Infelizmente o WPF não possuia o menu Ribbon nativo para utilizarmos em nossos projetos, digo nativamente por que com componentes de terceiros, como por semplo da Telerik, eu já utilizei Ribbon eu vários projetos.

Ontem, dia 02/08 foi liberado o RTM do Ribbon for WPF um menu do estilo Ribbon, para WPF, construído pela própria Microsoft, já utilizei esse menu a algum tempo, mas ainda era Beta e não funcionou bem.

Para começar, podemos fazer download do menu clicando aqui, temos a opção de fazer download do instalador do Ribbon, e também de exemplos de utilização e do código fonte, isso mesmo, podemos olhar o código fonte do projeto, bons estudos Winking smile. Além do link para download, clicando aqui vemos a página de documentação do menu.

A primeira mudança quando instalamos o Ribbon, é que ganhamos um novo tipo de projeto para WPF Ribbon Application.

Ribbon01

Com o projeto criado, por padrão é criado um menu com itens básicos, o que é muito bom para entender o funcionamento do controle. Abaixo imagem do menu padrão criado com o código gerado.

Ribbon02

<ribbon:Ribbon x:Name="Ribbon">
    <ribbon:Ribbon.ApplicationMenu>
        <ribbon:RibbonApplicationMenu SmallImageSource="Images\SmallIcon.png">
            <ribbon:RibbonApplicationMenuItem Header="Hello _Ribbon"
                                              x:Name="MenuItem1"
                                              ImageSource="Images\LargeIcon.png"/>
        </ribbon:RibbonApplicationMenu>
    </ribbon:Ribbon.ApplicationMenu>
    <ribbon:RibbonTab x:Name="HomeTab"
                      Header="Home">
        <ribbon:RibbonGroup x:Name="Group1"
                            Header="Group1">
            <ribbon:RibbonButton x:Name="Button1"
                                 LargeImageSource="Images\LargeIcon.png"
                                 Label="Button1" />

            <ribbon:RibbonButton x:Name="Button2"
                                 SmallImageSource="Images\SmallIcon.png"
                                 Label="Button2" />
            <ribbon:RibbonButton x:Name="Button3"
                                 SmallImageSource="Images\SmallIcon.png"
                                 Label="Button3" />
            <ribbon:RibbonButton x:Name="Button4"
                                 SmallImageSource="Images\SmallIcon.png"
                                 Label="Button4" />

        </ribbon:RibbonGroup>

    </ribbon:RibbonTab>
</ribbon:Ribbon>

Como podem ver, não existe segredo na criação de Tabs, Grupos e Botões. Agora conseguimos utilizar um ótimo menu com Ribbon, sem recorrer a outras empresas.

Um outro detalhe, é que na Toolbox do Visual Studio, uma nova aba é criada, com todos os controles disponíveis para a criação do menu com Ribbon.

Ribbon03

Aproveitem o Ribbon for WPF e é hora de começar a repensar a estrutura dos menus das aplicações Winking smile.

Abraços.

C#, WPF, XAML
LayoutMacarrao.png

Melhorando WinApps seguindo WebApps

01/08/10

Escrito por Márcio Fábio Althmann em C#

5 comentários

Nossa Márcio que título maluco!!

Pois é, foi o melhor que encontrei :) mas logo o título fará sentido. Felizmente, sempre trabalhei com Web e Windows, apesar de não ter tanto talento como designer, adoro estudar padrões para UI, o que é certo, errado, o que fazer e o que não fazer.

É claro que não vou falar que todos os sites ou todas aplicações web seguem o que vou mostrar, mas felizmente a maioria das “bem feitas” seguem isso. Vou esquecer sites normais, e vou focar em aplicações web, só para facilitar.

O item que estou falando é tão simples e básico, que todo mundo deveria seguir, que é alinhar corretamente os itens de um formulário, é tão comum quando vamos desenvolver um layout de site, utilizar grids para definir o espaçamento entre os itens, assim temos um layout organizado e agradável.

Quem liga para isso Márcio? Ahhh ninguém, é só mais uma prática boba que o pessoal segue. Todo mundo liga, e liga muito. Mesmo que mesmo sem perceber, um formulário bem organizado ajuda qualquer usuário a encontrar o que ele quer.

Quem nunca viu algum profissional falar algo do tipo, “meu cliente não acha nada, meu cliente não procura nada direito”, é tão fácil culpar o cliente, afinal “eu” fiz tal coisa, então essa coisa está “perfeita”.

Mas eu acho que isso é meio cultural, já cansei de passar estudos de como criar um layout agradável para formulários para programadores, o que eles fazem? Apertam delete no e-mail, afinal isso é trabalho do “designer”, eu acho isso um absurdo, não estou pedindo para algum programador de WinApps aprender como combinar cores, como utilizar o Photoshop, nada disso, mas só para prestar atenção em como organizar um formulário.

Chega de falar, e vamos ver dois exemplos, com Windows Forms mesmo, que é o que a maioria do pessoal utiliza :) .

Padrão macarronada, nem sei se alguém já deu esse nome, mas falei ontem em um curso e gostei :) .

LayoutMacarrao

Ok, a tela feita, funciona, mas eu acho horrível olhar telas dessa forma, podemos facilmente organizar da seguinte forma.

LayoutOrganizado

Olhando a imagem acima, sei onde tudo começa e acaba, tenho padrão de espaçamento entre os campos do formulário, joguei o Label acima dos campos só para facilitar a visualização, e prefiro assim, mas com o Label a esquerda funciona da mesma forma.

Quando eu trabalhava com o Heitor Althmann, é família de geek =D, ele é designer, nós criamos alguns padrões para formulários, na época definidos por CSS automaticamente, mas ainda utilizo o padrão com sucesso em aplicações para Windows. Segue abaixo a lista de possibilidades com o padrão.

Opções

Espero que gostem, e que utilizem o padrão, e que UI seja uma preocupação também de quem desenvolve aplicações para Windows, afinal, aquela tela com 100 campos, totalmente desorganizados, deixa qualquer usuário confuso.

Abraços.

C#, Dicas, Silverlight, WPF

C# – Operador ?:

25/07/10

Escrito por Márcio Fábio Althmann em C#

3 comentários

Continuando a série onde falei sobre o operador ?? hoje vou mostrar o operador ?: que também gosto e utilizo muito.

A regra para esse operador é simples.

condição ? primeira expressão : segunda expressão;

Mas espera um pouco Márcio, isso parece um if/else feito em uma linha só. É isso mesmo :) . Galera do VB vai lembra da função IIf.

Então vamos ver um código simples, onde escrevemos na tela se uma pessoa pode votar ou não dependendo da idade. Primeiro com if/else.

static void Main(string[] args)
{
    var idade = 26;

    if(idade >= 16)
        Console.WriteLine("Pode votar!");
    else
        Console.WriteLine("Não pode votar!");
}

Um código simples, mas eu prefiro escrever esse código utilizando o operador ?: que fica seguinte forma.

static void Main(string[] args)
{
    var idade = 26;

    Console.WriteLine(idade >= 16 ? "Pode votar!" : "Não pode votar!");
}

Esse é um operador um pouco polemico, algumas pessoas não gostam, acham que o código fica mais complexo, eu não concordo, mas é tema para uma boa discussão.

Abraços.

C#, Dicas
12345»...Último »
    • Comentários recentes
    • Artigos populares
    • Arquivos
    • Marcadores
    • Categorias
    • .NET Framework (4)
    • C# (26)
    • Dicas (16)
    • Eventos (7)
    • LINQ (1)
    • LINQ To SQL (1)
    • Novidades (9)
    • Pensamentos (7)
    • Pessoal (9)
    • Ruby (1)
    • Silverlight (28)
    • Sketchflow (3)
    • Team Foundation Server (3)
    • Testes Unitários (1)
    • Visual Studio .NET (12)
    • Visual Studio Team System (1)
    • WebCasts (2)
    • Windows Phone 7 (1)
    • WPF (11)
    • XAML (9)
    .net .NET Framework C# Dicas Eventos LINQ LINQ To SQL Novidades Pensamentos Pessoal ruby Silverlight Sketchflow Team Foundation Server Testes Unitários Visual Studio .NET Visual Studio Team System WebCasts Windows Phone 7 WPF XAML
    • setembro 2010 (1)
    • agosto 2010 (8)
    • julho 2010 (4)
    • junho 2010 (11)
    • maio 2010 (9)
    • abril 2010 (7)
    • março 2010 (2)
    • fevereiro 2010 (7)
    • janeiro 2010 (7)
    • novembro 2009 (8)
    • outubro 2009 (11)
    • setembro 2009 (11)
    • Comunidade Read Only?!?!?!? (9)
    • C#–Operador ?? (9)
    • Causas da Insatisfação dos Funcionários: 15 erros fatais (7)
    • WPF é Difícil?! (7)
    • Integração C# + Ruby (5)
    • Biblioteca de IO para Silverlight 4 e COM+ (5)
    • Melhorando WinApps seguindo WebApps (5)
    • TFS 2008 com SQL Server 2008 (4)
    • Cobol + Team Foundation Server (4)
    • Biblioteca de Métodos de Extensão (4)
    • Rafael Amorim: Show! Como sempre dicas úteis pra galera! []'s @faelAmorim
    • IronPyton, IronRuby, DLR e o que isso influencia na minha vida:??: « Felipe Pedroti Raymundo: [...] de algum tempo sem um conteúdo que me despertasse interesse, lendo um post antigo do blog do ...
    • Márcio Fábio Althmann: Opa o código vou liberar sim, só finalizar tudo que quero fazer, ai eu coloco no blog. E claro que t...
    • Djonatas Tenfen: Muito legal o esquema de particulas no Windows Phone, pode disponibilizar o código para a gente dar ...
    • Fabio Rodrigues: Agradecido pela explicação, estava a muito tempo querendo saber como trabalhar com este o...
    • Márcio Fábio Althmann: Olá Tércio tudo bem? Infelizmente não possuo mais o que eu montei na época, não trabalho mais na mes...
    • Tércio Lemos Padilha: Olá Márcio, A um tempo atrás me reuni com o cliente e ele reclamou justamente sobre o layout "m...
    • Luciano Palma: Comunidade e Redes. Duas palavras com muita magia por trás delas. Quando você faz parte delas, é co...
  • Meu Twitter

    Carregando tweets...
    Siga-me no Twitter!
  • Siga-me

     Facebook Twitter LinkedIn Vimeo RSS
  • Blogroll

    • André Nobre
    • Carlos dos Santos
    • Eduardo Spaki
    • Evilázaro Alves
    • Fernanda Sallai
    • Gesilene Martins
    • Israel Aece
    • Michel Banagouro
    • Ramon Durães
    • Ricardo Dorta
    • SQL From Hell
    • Thiago Zavaschi
  • Meta

    • Login
    • Posts RSS
    • RSS dos comentários
    • WordPress.org
Tema Mystique por digitalnature | Movido a WordPress
RSS Feeds XHTML 1.1 Topo