terça-feira, 6 de dezembro de 2016

C#: Invocar Métodos Asíncronos sem estar dentro de um async

Pesquisando sobre como usar o Microsoft Speech, um framework para sintetizador de voz e comando de voz, aconteceu de que não conseguia uma instância da engine porque o construtor era um método assíncrono, e por eu não estar invocando dentro de um método assíncrono, ocorria uma Exception.

sexta-feira, 25 de novembro de 2016

Javascript: Substituir todas ocorrências de uma expressão numa string

Para substituir todas as ocorrências de uma expressão dentro de uma string, você pode utilizar a função replace da seguinte forma:

var str = "Gato rato gato rato gato rato gato rato";
str.replace(/gato/g, "rato");

No exemplo acima, usamos uma expressão regular para reconhecer a palavra gato, e o "g" após o fechamento da "/" vai indicar que vai ser aplicado todas as palavras "gato". Entretanto, a expressão é case-sensitive, portanto não irá se aplicar a palavra "Gato", por causa do caractere "G" ser maiúsculo. Se quiser ser indiferente para maiúsculo ou minusculo, use o exemplo abaixo:

str.replace(/gato/gi, "rato");

Aí vai pegar todas as palavras "gato" indiferente da letra ser maiúscula ou minúscula.

sexta-feira, 18 de novembro de 2016

C# - Entity Framework: System.TypeLoadException

Estava eu precisando fazer o deploy de um site num servidor e eis que o site veio com este erro: "System.TypeLoadException: Could not load type 'System.Data.Entity.Infrastructure.TableExistenceChecker'".

Foi difícil entender o que aconteceu, mas esse é um erro que ocorre muito comum quando se usa a Entity Framework de diversas versões. No meu caso, aconteceu que o framework instalado no servidor era de uma versão diferente das que eram usados no projeto, e isso causava este erro.

quinta-feira, 10 de novembro de 2016

MySQL: Limite dos 838:59:59 nas Operações de Tempo

Um caso que aconteceu é que eu precisava fazer uma operação em que precisava ver a duração de tempo entre dois tempos, e não pensei duas vezes em usar a função TIMESTAMPDIFF() no MySQL. Só que percebi que algumas linhas me apresentava este valor específico: 838:59:59. Achei muita coincidência ter várias linhas com a mesma duração e descobri o que temia: a função tem esse limite de quase 35 dias. 

terça-feira, 25 de outubro de 2016

MySQL: Introdução aos Stored Procedure

Stored Procedure são procedimentos/rotinas que são pré-compilados e podem ser usado para manipulação de dados e que podem retornar ou não algum valor. Pense como se fosse uma função/método de alguma linguagem de programação, mas neste caso, seria para o banco de dados. No caso do MySQL, o Stored Procedure está disponível desde a sua versão 5.0.


segunda-feira, 24 de outubro de 2016

JQuery + ASP.NET: Chamando um WebMethod usando JQuery.ajax

Hoje vamos ver uma coisa simples, mas que pode confundir alguns desprevinidos ao tentar usá-lo: chamar um WebMethod com Ajax. Um WebMehtod é um método que é disponibilizado como um XML Web Service (mas que não necessáriamente retorna um XML) e é muito utilizado no ASP.Net para fazer requisições no banco de dados, entre outros tipos de requisições sem ter que recarregar a página totalmente.


terça-feira, 18 de outubro de 2016

Javascript: Transformando em String um Objeto

Por questões de debug, as vezes você deseja visualizar o conteúdo de um objeto, seja num Alert ou alguma inserção num quadro de mensagem. Para fazer isso, você pode usar o método stringify do JSON. 

JSON.stringify(varObjeto);