09/17/2016 21:45:00
By Felipe Pessoto
Nos últimos meses tenho feito algumas atualizações no FujiyBlog, a maior delas foi a conversão, ou melhor reescrita do seu código para funcionar com ASP.NET Core.
A maior parte das funcionalidades já estão funcionando, outras ainda aguardando recursos que ainda não foram implementados no ASP.NET Core, como o OutputCache, porém está bem estável e pronto para o uso.
As tecnologias em uso atualmente são:
- ASP.NET Core 1.0.1
- Entity Framework Core 1.0.1
- Bootstrap 3
- SQL Server/SQL CE
Quem pretende mudar para o ASP.NET Core deve realmente se preperar para reescrever boa parte do código, muitas APIs mudaram e outra não existem, mas vale a pena por tudo que está por vir e as melhorias que o ASP.NET Core traz, como performance, multiplataforma, etc.
A página oficial continua em http://fujiyblog.com/ e o código fonte está no GitHub: https://github.com/fujiy/FujiyBlog.
O blog é compátivel com Azure, eu uso WebApps e Azure SQL para hospeda-lo e planejo publicar um pacote para facilitar o uso e deploy.
09/06/2016 23:11:00
By Felipe Pessoto
Além dos números decimais e hexadecimais, no C# 7.0 é possível escrever usando notação binária:
class BinaryLiteral
{
public static void Example()
{
int myValue = 0b1010;
}
}
Facilitando muito a criação de Flags Enum:
public enum MyFlagsEnumCSharp60
{
None = 0,
Sunday = 1,
Monday = 2,
Tuesday = 4,
Wednesday = 8,
Thursday = 16,
Friday = 32,
Saturday = 64
}
public enum MyFlagsEnum2CSharp60
{
None = 0,
Sunday = 1, // 1
Monday = 1 << 1, // 2
Tuesday = 1 << 2, // 4
Wednesday = 1 << 3, // 8
Thursday = 1 << 4, // 16
Friday = 1 << 5, // 32
Saturday = 1 << 6, // 64
}
public enum MyFlagsEnumCSharp70
{
None = 0b00000000,
Sunday = 0b00000001,
Monday = 0b00000010,
Tuesday = 0b00000100,
Wednesday = 0b00001000,
Thursday = 0b00010000,
Friday = 0b00100000,
Saturday = 0b01000000
}
09/06/2016 23:04:00
By Felipe Pessoto
Uma pequena mas util nova funcionalidade é a possibilidade de utilizar separadores entre os dígitos, facilitando a leitura. Por exemplo:
class DigitSeparator
{
public const int MyValue = 123_456;
public const int MyHexValue = 0xAB_CD_EF;
public static void Example()
{
Console.WriteLine(MyValue);
Console.WriteLine(MyHexValue);
}
}
Não há nenhuma diferença no código compilado com ou sem os separadores.
08/28/2016 13:39:00
By Felipe Pessoto
Até o C# 6.0, chamar um método que utiliza parâmetros out não é tão fluido, pois você precisa declarar as variáveis antes de chamar o método, e nem é possível usar o var já que normalmente não se inicializa variáveis que são argumentos do método out.
Então você precisa verificar quais os tipos das variaveis utilizadas nos parametros out, voltar e declarar antes do método:
public void OutVariablesExample60()
{
int myX;//var myX doesn't work
int myY;
if(MethodOut(out myX, out myY))
{
Console.WriteLine(myX);
}
}
No C# 7.0 esta experiência será melhorada, ao chamar o método você pode declarar as variáveis de forma inline. Com isso o compilador sabe os tipos delas, permitindo inclusive o uso do var:
public void OutVariablesExample70()
{
if (MethodOut(out int myX, out var myY))
{
Console.WriteLine(myX);
}
}
As variáveis declaradas estarão no escopo do bloco onde o método é chamado. No Preview 4 o compilador ainda restinge o escopo para o statement onde a variável foi declarada, por isso só funciona como no exemplo acima, onde temos um bloco IF. Esta restrição será removida até a versão final.
Sempre que novas funcionalidades são acrescentadas acho interessante verificar como o código IL é gerado para saber como foi feita a implementação. Neste caso é bem simples, o novo código gera uma versão identica ao exemplo em C# 6.0.
05/06/2016 19:47:38
By Felipe Pessoto
Com muita alegria que divulgo o lançamento do livro, escrito pelo time de Modern Apps. Todos os dias aprendo algo novo com eles e neste livro é compartilhado a experiência em DevOps, .NET, IIS e Microsoft Azure, após vivenciar diversos casos críticos nas maiores companhias do mundo.
Sumário
Os Engenheiros de Suporte Microsoft em Modern Apps têm a oportunidade de trabalhar com sistemas críticos nas maiores companhias do mundo dos mais diversos segmentos. Ao longo dos anos, estes profissionais qualificaram-se no desenvolvimento e suporte baseando-se nas recomendações dos produtos e em boas práticas vivenciadas nas experiências de campo. Trabalhando lado a lado com os clientes, compartilhando conhecimento com milhares de times de desenvolvimento e auxiliando cada pessoa e cada organização a atingir todo o seu potencial.
Com foco em DevOps, .NET Framework, IIS (Internet Information Services) e Microsoft Azure, desenvolvedores e arquitetos estarão aptos a aperfeiçoar a qualidade e disponibilidade de seu software, aumentar seu nível de maturidade em desenvolvimento, economizar tempo e reduzir custos.
Mais informações: https://www.casadocodigo.com.br/products/livro-plataforma-microsoft