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á:


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.

Controle de acesso WinForms

Como fazer quando somente determinados usuários devem ter acesso a algumas telas da nossa aplicação? Nesse caso, temos que implementar um controle de acesso no nosso sistema. A ideia desse artigo é pesquisar quais tipos de controle de acesso já existem “prontos” para aplicações Windows Forms e, caso não encontre algum, construiremos juntos um exemplo.

Tradução WinForms e WPF

Se a sua aplicação precisa rodar em diversos países, muito provavelmente você terá que traduzi-la para diferentes idiomas. Se esse tema for escolhido, eu vou mostrar para você algumas estratégias que podemos utilizar para traduzirmos aplicações Windows Forms e WPF.

Programação paralela

Existem diversas maneiras de executarmos código paralelo atualmente no .NET. Threads, BackgroundWorker, Tasks, async/await. A ideia desse artigo é abordar todas essas opções que temos à nossa disposição para traçarmos um comparativo entre elas.

Biblioteca Boleto.Net

Geração de boletos é algo muito comum em aplicações desenvolvidas para o mercado brasileiro. Para aplicações .NET, existe uma biblioteca open-source chamada “Boleto.Net” que facilita a nossa vida quando precisamos gerar algum boleto. A ideia desse artigo é explorar essa biblioteca para gerarmos alguns boletos fictícios.

Bancos NoSQL

Você provavelmente já está acostumado com bancos de dados relacionais, como SQL Server, MySQL, Oracle, PostgreSQL, etc. Porém, saiba que existe também um outro mundo completamente diferente em se tratando de bancos de dados. Eles são os chamados bancos “NoSQL” (ou seja, que não utilizam a linguagem SQL para interagir com o banco). Nesse tipo de banco, os registros não são relacionais, mas sim, são vistos como documentos. A ideia desse artigo é explorar as principais opções de bancos NoSQL que temos à nossa disposição na plataforma .NET.

Windows Services

Você já precisou implementar alguma funcionalidade que precisava ser executada de tempos em tempos, independente se o usuário estava logado no computador ou não? Ou talvez alguma rotina que precisasse ser executada em segundo plano todo dia? Os Windows Services são ideais para esse tipo de situação. Se esse tema for escolhido, eu vou mostrar para você como podemos gerar Windows Services com o .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 Q4/2017

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

Os temas mais votados desse trimestre foram:

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.


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. ARTIGO PUBLICADO AQUI!

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. VÍDEO PUBLICADO AQUI!

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. ARTIGO PUBLICADO AQUI!

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? VÍDEO PUBLICADO AQUI!


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!