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


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.

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.

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?

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.

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.

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.

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.

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.


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 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.

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.

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.

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.

Isso significa que eu vou abordar esses temas em artigos ou vídeos agora no segundo semestre de 2017. Obrigado pela participação!