André Alves de Lima

Talking about Software Development and more…

Possíveis temas para próximos artigos

Não sei se você percebeu, mas na barra lateral do meu site (ou na parte inferior depois do artigo se você estiver visualizando o site em um dispositivo móvel com tela reduzida) eu disponibilizei uma ferramenta de votação onde você pode me ajudar a escolher o tema para os próximos artigos. A ideia é a seguinte: dos 8 temas sugeridos na pesquisa, os 4 temas que tiverem a maior votação serão abordados no próximo trimestre. Já os 4 temas que tiverem o menor número de votos continuam na lista para a votação do próximo trimestre.

O objetivo desta página é explicar com mais detalhes os temas que estão em votação neste trimestre. Então, vamos lá:


Aplicação com plugins

Com o mundo extremamente dinâmico que temos hoje em dia, não é surpresa que os usuários também demandem aplicações cada vez mais dinâmicas. Entretanto, nós programadores dificilmente pensamos em construir uma aplicação que suporte extensibilidade dinâmica, principalmente pelo esforço necessário. Através do MEF (Managed Extensibility Framework) da Microsoft, nós podemos facilmente abrir pontos de extensibilidade na nossa aplicação. Dessa forma, nós podemos implementar um suporte a plugins de maneira bem descomplicada. O plano é publicar um artigo ou vídeo que mostre a criação de uma aplicação simples que suporte plugins.

Controles dinâmicos no Form

Na maioria das vezes os nossos formulários são estáticos. Ou seja, nós definimos o layout em tempo de design e ele permanece o mesmo em tempo de execução. Porém, em algumas situações pode ser que surja a necessidade de criarmos os controles dinamicamente, através de informações do banco de dados. Por exemplo, se quisermos criar “N” botões dinamicamente, cada um correspondendo a uma categoria de produto do banco de dados, como é que poderíamos fazer? A minha intenção é criar um artigo ou vídeo mostrando como fazer isso no Windows Forms e WPF.

E-mail com IMAP

Eu já escrevi artigos mostrando como enviar e receber e-mails utilizando o protocolo POP. Porém, muita gente acaba precisando fazer o mesmo com o protocolo IMAP. A ideia é escrever uma nova versão desses artigos utilizando esse outro protocolo.

SignalR

O SignalR é uma biblioteca que facilita a troca de mensagens em tempo real entre aplicações dos mais diversos tipos. Você pode ter uma aplicação rodando no desktop escrita em Windows Forms ou WPF enviando dados em tempo real para uma aplicação web ou até mesmo uma aplicação móvel. Eu não tenho experiência com o SignalR, mas, se esse tema for escolhido, vou montar um cenário bem bacana para mostrar as suas funcionalidades.

Padrão Repository

O padrão Repository é amplamente implementado nas camadas de acesso a dados em projetos de software. Em uma descrição extremamente simplificada, ele abstrai o acesso a dados do projeto, de forma que a camada de apresentação não tenha a mínima ideia de como os dados estão sendo persistidos. Com ele, fica muito fácil trocarmos o tipo de armazenamento (modelo de banco de dados, ferramenta ORM, etc) sem que o resto da aplicação quebre por conta dessa alteração. Se esse tema for escolhido, pretendo escrever um artigo detalhando a utilização desse design pattern.

LocalDB

Muita gente confunde LocalDB com SQL Server Express ou até mesmo com SQL CE. Por conta disso, se esse tema for escolhido, eu quero escrever um artigo explicando exatamente o que é o LocalDB, quais as diferenças dele com o SQL Server Express, como fazer para distribuir aplicações que o utilizam, etc.

Gráficos WinForms / WPF

Tem vezes que nós precisamos apresentar informações estatísticas nas nossas aplicações em forma de gráfico. E aí, como fazemos isso em projetos Windows Forms e WPF? Existem controles de gráfico já prontos no .NET? Como utilizá-los? É isso que eu quero apresentar nesse artigo ou vídeo, caso esse tema seja escolhido.

Log de informações

Logar informações é uma atividade essencial para qualquer tipo de aplicação, desde as mais pequenas até as aplicações de nível industrial. Sem um log decente, a manutenção da aplicação fica muito difícil, uma vez que nós não teremos nem ideia de onde começar a investigação quando um erro acontecer na aplicação em produção. A ideia desse artigo ou vídeo é mostrar algumas bibliotecas que temos à nossa disposição para logarmos informações no .NET.


Vote na sua opção preferida!

Agora que você já conseguiu entender melhor o que está por trás de cada uma das opções, vote no tema que você gostaria que eu abordasse no próximo trimestre. A ferramenta de votação se encontra na barra lateral do site (desktop) ou logo mais abaixo (mobile).


Resultados Q3/2017

A pesquisa de temas do terceiro trimestre de 2017 está encerrada!

Os temas mais votados desse trimestre foram:

Entity Framework: No mundo do desenvolvimento de aplicações .NET, sem sombra de dúvidas o Entity Framework é o ORM mais utilizado. Com esse tipo de ferramenta nós conseguimos mapear as entidades da nossa aplicação com as tabelas do nosso banco de dados, evitando a escrita de sentenças SQL de forma manual na hora de interagirmos com o banco de dados. Ferramentas ORM trazem muitos benefícios, porém, elas vêm com algumas desvantagens também. A ideia é iniciar uma série de artigos ou vídeos mostrando o básico do Entity Framework, bem como as suas vantagens e desvantagens.

Código de barras no Report Viewer: Muita gente tem a necessidade de adicionar códigos de barra em relatórios do Report Viewer. Existem algumas alternativas para resolver esse problema, que vão desde o envio da imagem do código de barras para o relatório até a utilização de fontes de códigos de barra. A ideia é mostrar as principais opções, bem como as suas vantagens e desvantagens.

WPF + MVVM: O padrão arquitetural MVVM casa perfeitamente com o WPF, ou melhor, com as tecnologias de UI baseadas em XAML (WPF, UWP, Xamarin Forms). O MVVM é uma quebra de paradigma muito grande para quem está acostumado a desenvolver orientado a eventos no Windows Forms. Não é à toa que a curva de aprendizado do WPF acaba sendo tão grande. A ideia é escrever um artigo com os conceitos básicos do padrão MVVM no WPF.

Impressão direta no Crystal Reports: A ideia desse artigo é responder uma dúvida que recebo com alguma frequência: como imprimir relatórios do Crystal Reports sem utilizar o controle visual? Ou seja, como mandar o relatório diretamente para a impressora?


Resultados Q2/2017

A pesquisa de temas do segundo trimestre de 2017 está encerrada!

Os temas mais votados desse trimestre foram:

Data binding no Windows Forms: Como eu já comentei neste artigo comparando o Windows Forms com o WPF, o Windows Forms continua sendo muito utilizado em projetos de aplicações desktop com o .NET (e isso não tem problema nenhum, na minha opinião). O grande problema dessa realidade é que uma grande quantidade de desenvolvedores não conhece o conceito de data binding, que nada mais é que a possibilidade de conectarmos uma propriedade de um objeto (ou componente) com outra propriedade de outro objeto (ou componente). Dessa forma, quando o valor da propriedade é alterado em um objeto, esse novo valor é automaticamente refletido no outro objeto. Por exemplo, se tivermos um TextBox “Nome” no nosso formulário e uma propriedade “Nome” na nossa classe de domínio (ou na nossa ViewModel), podemos linkar o “Text” do nosso TextBox com a propriedade “Nome” da nossa classe. Dessa forma, sempre que o usuário alterar o texto no TextBox, o valor será refletido na nossa classe automaticamente. ARTIGO PUBLICADO AQUI!

Report Viewer sem DataSet: Uns tempos atrás eu escrevi um artigo mostrando como imprimir dados de um DataGridView no Crystal Reports. Em seguida, eu evolui ainda mais esse artigo e mostrei como definir a estrutura de dados do relatório no Crystal Reports sem utilizar DataSets ou classes de dados. A ideia desse tema seria mostrar como fazer a mesma coisa com o Report Viewer. ARTIGO PUBLICADO AQUI!

Dapper: Não sei se você conhece, mas o Dapper é um conjunto de métodos de extensão para as classes do ADO.NET (DbConnection, DbCommand, etc). O intuito desses métodos de extensão é facilitar a nossa vida no que diz respeito ao mapeamento objeto-relacional. É tipo um Entity Framework só que muito mais simples e leve, por isso ele é denominado um “Micro ORM”. A ideia desse artigo é fazer um tutorial da instalação e utilização básica do Dapper. ARTIGO PUBLICADO AQUI!

Envio de SMS: O envio de SMS diretamente pela aplicação pode ser útil em alguns cenários. Algumas pessoas já entraram em contato comigo sugerindo esse tema, que eu não tenho a menor ideia de como pode ser implementado. Pelo que pesquisei rapidamente, é possível enviar SMS através de serviços específicos (web services que você contrata com um plano mensal) ou, se o dispositivo tiver entrada para cartão SIM, existe a possibilidade de enviar através do próprio dispositivo. A ideia aqui é fazer uma pesquisa mais extensa sobre esse tema e apresentar o resultado em forma de artigo ou vídeo. ARTIGO PUBLICADO AQUI!


Resultados Q1/2017

A pesquisa de temas do primeiro trimestre de 2017 está encerrada!

Os temas mais votados desse trimestre foram:

Trial / proteção contra pirataria: várias pessoas já me perguntaram como criar um trial da aplicação delas. Ou, quem sabe como proteger a aplicação contra pirataria através de um serial ou através de algum sistema de ativação. Nesse caso temos diversas opções disponíveis para implementarmos esse tipo de lógica, que vão desde simples implementações de checagem de seriais (como demonstrado nesse exemplo do CodeProject) até bibliotecas comerciais mais robustas, como a XHEO, Ellipter ou wDay. A ideia do artigo seria analisar essas opções e mostrar as vantagens e desvantagens de cada abordagem. ARTIGO PUBLICADO AQUI!

Aplicação que atualiza sozinha: outra dúvida que recebo frequentemente é a questão da atualização das nossas aplicações. Como podemos fazer para distribuir automaticamente para o usuário as versões mais recentes dos nossos aplicativos desktop? Nesse caso nós poderíamos utilizar o ClickOnce (da própria Microsoft) ou bibliotecas open source como a NAppUpdate ou AutoUpdater.NET. Mais uma vez, a ideia desse artigo é analisar as opções e mostrar as vantagens e desvantagens de cada uma delas. ARTIGO PUBLICADO AQUI!

Xamarin: o desenvolvimento de aplicações mobile está em alta já faz um bom tempo, juntamente com desenvolvimento web. Depois da Microsoft ter comprado a Xamarin e ter disponibilizado as suas ferramentas sem custo algum para todos os desenvolvedores, esse é um tópico que tem ganhado cada vez mais a atenção dos desenvolvedores .NET. Eu não tenho nenhuma experiência com desenvolvimento Xamarin, então a ideia desse tema seria escolher alguma aplicação para desenvolver do zero com Xamarin, mostrando os aprendizados passo a passo para vocês. SÉRIE INICIADA AQUI!

Parâmetros no Report Viewer: a funcionalidade de parâmetros das ferramentas de relatórios pode ser utilizada para implementarmos diversas customizações nos nossos relatórios. Podemos definir, por exemplo, o texto para uma caixa de texto através de parâmetros. Podemos também filtrar os dados do relatório através de parâmetros, ou até mesmo configurarmos a visibilidade de controles ou colunas. A ideia desse artigo é demonstrar todas essas customaizações que podemos fazer com parâmetros no Report Viewer. VÍDEO PUBLICADO AQUI!