quinta-feira, 3 de agosto de 2017

C#/Entity Framework: Bug ao atualizar o modelo => Duplicação de Código

Um bug que aconteceu comigo: estava tentando adicionar uma tabela do banco para o modelo, entretanto, quando a tabela é adicionada, ao atualizar os códigos internos do framework, acontecia um bug: basicamente o código gerado ficava duplicado, triplicado, n-plicado.

Descobri que o problema era causado porque a tabela em questão possuía um campo do tipo "TEXT". Alterei a tabela para VARCHAR(4000) e funcionou de boa.

Moral da história: Não use campo do tipo TEXT se for usar Entity Framework.

segunda-feira, 19 de junho de 2017

C#: Desenvolvendo Serviços Windows

Olá, hoje vamos ver como desenvolver serviço para Windows usando o C# no Visual Studio e entender o seu ciclo de vida.

quarta-feira, 14 de junho de 2017

ASP.NET: ThreadAbortException

Olá. Vamos ao caso de hoje: em um projeto que trabalhei de um site em ASP.NET, existe uma página que é basicamente um relatório, contendo uns resumos dos dados de um mês, colocado em um monte de gráficos. Então, em um desses relatórios em que se tinha acumulado muito dados, começou a dar um erro estranho, um “Time Out [Internal Error]”. A princípio achei que era o banco de dados, que deveria ter muitos dados e deu Time Out, mas quando executei, tinha apenas um pouco menos de mil registros, logo não poderia acontecer.


terça-feira, 6 de junho de 2017

Uilidades: Web APIs gratuitos, mas que podem vir a calhar

Você está montando um aplicativo, site, qualquer outra coisa, e você quer testar a funcionalidade deste elemento que você está desenvolvendo, ou até mesmo, incluir dados interessantes. O problema é que as vezes, esses dados são numerosos, ou voláteis demais para manter no aplicativo, ou você só quer para testar, e acaba não valendo o esforço.
Mas não se preocupe, temos algumas soluções para você: vamos listar algumas Web API que podem ser bem úteis:

segunda-feira, 5 de junho de 2017

Utilidades: Ferramenta para Diagramas e Fluxogramas

Para quem precisa de uma ferramenta para criar diagramas e fluxogramas, mas não tem paciência para baixar, instalar, etc, recomendo a ferramenta Draw.io. Ele possui tudo o que um bom editor de diagramas precisa ter, com uma interface fácil de utilizar.

terça-feira, 4 de abril de 2017

Android: Como fazer um Toast

Toast são aquelas mensagens rápidas que o programa emite para notificar algo, mas que não precisa de confirmação ou interação, como por exemplo, uma conexão perdida. Para fazer um toast, segue o método estático makeText da classe Toast:

Toast t = Toast.makeText(context, message, duracao );

onde:

  • context: é o Contexto do aplicativo;
  • message: é a mensagem que deseja ser exibida;
  • duracao: é o tempo que deseja que seja exibida, podendo ser as constante: Toast.LENGTH_SHORT ou Toast.LENGTH_LONG;
Para exibir o Toast, invoque o método show(), e ele aparecerá na tela:

t.show();

segunda-feira, 3 de abril de 2017

Android: Usando o Log

Log provavelmente é uma das coisas mais importante a fazer em um programa, ao mesmo tempo que é um dos mais negligenciados. Um sistema de Log bem feito permite você saber o que aconteceu, onde aconteceu e até como aconteceu. No Android, já existe a classe Log, onde você pode utilizar e o melhor, ainda poderá analisar nas próprias ferramentas de desenvolvimento.

No Android, temos os seguintes níveis de log:

  • WTF: significa "What a Terrible Failure", serve para criar um log com informação de erros que nunca deveria ocorrer durante a execução. Executando esse tipo de log, o programa será encerrado. Pode ser executado pelo método estático Log.wtf(string tag, string message)
  • Error: Indica um erro. Pode ser executado pelo método estático Log.e(string tag, string message);
  • Warn: Indica um aviso. Pode ser executado pelo método estático Log.w(string tag, string message);
  • Info: Indica uma informação. Pode ser executado pelo método estático Log.i(string tag, string message);
  • Debug: Indica uma informação de depuração. Pode ser executado pelo método estático Log.d(string tag, string message);
  • Verbose: Usado quando precisa de dados muito pontuais. Pode ser executado pelo método estático Log.v(string tag, string message);
Mais informações, ver a documentação.