Fujiy

Blog sobre .NET, C#, ASP.NET entre outras tecnologias de desenvolvimento de software

TypeScript 1.0

20/04/2014 18:48:00 Por Fujiy

Durante o Build 2014, foi anunciado a versão 1.0 RTM do TypeScript. Tenho usado ele faz algum tempo e com certeza foi continuar usando em todo projeto que tenha qualquer código em JavaScript. É incrivel poder usar JavaScript com classes, argumentos opcionais, tipos, e um this confiável, sem ter que se preocupar com as diversas ciladas do JavaScript, é o JavaScript como deveria ser.

A versão final será integrada ao Visual Studio 2013 Update 2, e disponivel via extensão pro 2012.

A partir de agora ele é uma linguagem "oficial"do Visual Studio e também vai receber contribuições via Pull Requests, pra isso você precisa seguir as diretrizes de contirbuidores.

Windows Azure Brasil São Paulo

19/04/2014 19:57:02 Por Fujiy

O Windows Azure chegou ao Brasil publicamente. Desde o ano passado a Região Brasil São Paulo (Brazil South) estava em Preview privado para garantir que tudo funcionaria.

Agora em Preview público todos podem fazer testes e tirar proveito da latência menor para os brasileiros. Nem todos os serviços estão disponiveis, mas os principais já estão, como WebSites, Virtual Machine e SQL Azure. Nesta página é possível verificar quais estão disponíveis: http://azure.microsoft.com/en-us/regions/#services.

Já aproveitei e migrei o FujiyBlog pra um Azure WebSite + SQL Azure no Brasil, as páginas que antes tinham um tempo de resposta de no mínimo 180ms, agora estão em 50ms. O processo de migração foi muito simples, usei o deploy automático a partir do fonte no Codeplex, e funcionou muito bem e rápido, bastou ativar o deploy e funcionou de primeira, sem ajustes.

Com a migração pro Azure WebSites agora posso usar facilmente os Add-Ons da Store, para o envio de e-mails usei o SendGrid, que permite enviar 25 mil email por mês sem custo e o New Relic para monitorar a performance.

Por que o C# usa UTF-16 para strings?

11/04/2014 19:23:52 Por Fujiy

Perguntei para o Eric Lippert por que o C# usa UTF-16, já que não é compacto como o UTF-8 nem com comprimento fixo como o UTF-32.

Em resumo, por compatibilidade com o VB e COM. Você pode ler a resposta completa no blog da Coverity

Fujiy Util 1.0.0

01/04/2014 11:02:35 Por Fujiy

Publiquei no NuGet.org uma pequena biblioteca que uso há muito tempo para ajudar no uso de cache e evitar a mesma repetição de código sempre que se usa cache. Esta é a primeira versão pública.

O Package se chama Fujiy.Util e contém também algumas extensões para Collections.

Um exemplo de como essa biblioteca pode ajudar.

Em vez de escrever todo esse bloco de código:

decimal price;

var returnFromCache = Cache"CarClassGetPrice" + carId;

if(returnFromCache is decimal)

{

    price = (decimal)returnFromCache;

}

else

{

    price = GetPrice(carId);

    Cache["CarClassGetPrice" + carId] = price;

}

 

Você escreve apenas:

decimal price = CacheHelper.FromCacheOrExecute(() => myObj.GetPrice(carId));

 

O código fonte está disponível no CodePlex e conta com muitos testes unitários

MiniProfiler + EF6

26/03/2014 23:14:07 Por Fujiy

Há algum tempo tive problemas com o MiniProfiler e o Entity Framework 6, até que lançaram uma nova versão beta que suporta o EF6.

Porém o MiniProfiler continuava usando o método antigo de interceptação que criava uma wrapper nos providers, conexões, comandos, etc. Que não é mais necessário, além de estar no limite da gambiarra.

Além disso tinha um grande problema, não funcionava com outras ferramentas que também usavam o método antigo, por exemplo o EFProf.

Criei um tópico no forum de suporte e acabei desenvolvendo uma nova implementação do MiniProfiler.EF6, dessa vez usando um Interceptor, evitando gambiarras e com o código muito mais simples, além de agora também mostrar o valor e informaçoes sobre os parametros das queries. E agora funciona com o EFProf.

 

 

Seguem os links das discussões e o pull request no GitHub:

http://community.miniprofiler.com/t/miniprofiler-efprof-doesnt-work/239

http://community.miniprofiler.com/t/will-mini-profiler-support-ef6/19/9

https://github.com/MiniProfiler/dotnet/pull/44