Value Types, Stack, Heap e confusões

09/30/2010 19:49:00 By Felipe Pessoto

Um dos blogs que leio e com certeza é o que considero mais importante é o do Eric Lippert, inclusive traduzi uma série de artigos sobre variância e postei aqui no blog. Ele faz parte do time que desenvolve o compilador do C# e no post mais recente ele voltou a falar sobre Value Types e a confusão que normalmente ocorre, inclusive em muitos livros. Achei importe falar sobre o assunto também para o público brasileiro.

Primeiramente vamos recapitular, o que são Value Types?
...
Não, não são objetos que ficam na Stack(Pilha)! Os dois principais motivos para essa afirmação estar errada são: nem sempre os Value Types ficam na Stack; e não é essa a semântica dos Value Types.
Value Types são copiados por valor e ponto. Essa é a definição, senão ele se chamaria Stack Types certo?

Read more...

C# 4.0 in a Nutshell

09/30/2010 08:32:00 By Felipe Pessoto

Recentemente terminei de ler o C# 4.0 in a Nutshell. O livro é um pouco grande, 1056 páginas e da uma boa visão sobre C# e .NET Framework sem entrar em áreas específicas como ASP.NET, WPF ou Entity Framework.

É ótimo para ter conhecimento de alguns detalhes do .NET, destacando os capítulos sobre Threads e Parallel Framework, onde o autor explica os comportamentos que devemos estar atentos quando programar usando Multi-Threading, que hoje é uma grande tendência e um dos principais focos na nova versão do Framework. Além disso cobre os principais assuntos como XML, LINQ, I/O, Generics, Networking, Reflection, etc e claro Dynamic que é a maior novidade do C# 4.0.

Uma ótima ideia foi os ícones que o autor adicionou para encontrar mais facilmente os pontos importantes sempre que cita alguma dica ou onde devemos tomar cuidado: 

Recomendo o livro pra todos que quiserem se manter atualizados ou estão iniciando. O livro vai desde os fundamentos do .NET até níveis mais avançados e recentes como Parallel Framework.

Para comprar você pode  achar o livro no Amazon: C# in a Nutshell

Forçando o WWW na url com Url Rewriting

09/21/2010 21:21:00 By Felipe Pessoto

Uma dica para padronizar as urls do seu site, que hoje são muito importantes por causa do SEO.

Para forçar sempre o WWW, basta adicionar a rule no system.webServer -> rules:

<rule name="Add WWW prefix" >
<match url="(.*)" ignoreCase="true" />
<conditions>
<add input="{HTTP_HOST}" pattern="^domain\.com" />
</conditions>
<action type="Redirect" url="http://www.domain.com/{R:1}"
redirectType="Permanent" />
</rule>

ou caso prefira sempre remover o WWW

<rule name="Remove WWW prefix" >
<match url="(.*)" ignoreCase="true" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.domain\.com" />
</conditions>
<action type="Redirect" url="http://domain.com/{R:1}"
redirectType="Permanent" />
</rule>

TDC 2010

08/22/2010 18:20:00 By Felipe Pessoto

Este sábado fui ao TDC 2010 que aconteceu em São Paulo. Na trilha de .NET.

Foi uma ótima oportunidade para conhecer novas tecnologias, que as vezes não da tempo de estudar ou mesmo nem conhecemos.

 O AppFabric que é novidade e até hoje nunca tinha visto funcionando foi o assunto da primeira palestra.

Uma tecnologia que sempre deixei de lado para estudar é o Sharepoint, assisti a palestra tendo certeza que ia acabar surpreso com a produtividade e poder da plataforma e foi o que aconteceu.

Em seguida uma palestra do Giovanni Bassi e André Dias sobre testes na plataforma Microsoft, ótima, mostrando as várias ferramentas e recursos para testes como Code Coverage e UI Test.

Após o almoço foi o ponto que achei de maior destaque, pudemos ver um debate sobre diversas linguagens, contando com a presença de alguns membros do Mono Brasil inclusive do Rodrigo Bamboo, criador da linguagem Boo, muito utilizada e que conta inclusive com um livro do (sempre crítico) Ayende, só isso ja faz merecer respeito. Felipe Rodrigues (chamado pelos colegas de excêntrico, rs.) também estava presente, e também escreve suas próprias linguagens.

Uma dica deixada foi, aprenda vários paradigmas de linguagens de programação. E é  algo que sempre levo em consideração, linguagens de Ruby e F# mostram que há outras formas de chegar no resultado desejado, mesmo que você não use essas linguagens. Por exemplo o C# 3 incorporou alguns comportamento de linguagem funcional e a versão 4 aceita dinamismo. Pode não ser o mesmo que usar as linguagens feitas para o proposito, mas ajuda muito.

O momento mais interessante foi após a palestra onde pudemos conversar com alguns palestrantes, tiramos algumas dúvidas sobre o projeto Mono, e sobra criação de linguagens e padrões.

 O próximo evento é o TechEd, com 3 dias de muita novidade e tecnologia!

 

Software, "It’s not what we do".

08/09/2010 09:33:00 By Felipe Pessoto

Um interessante post(Software, "It’s not what we do".) do David Starr . Vou colocar o sumário aqui, mas vale a pena ler, não é um post técnico, mas importante:

"In summary, no matter what type of organization you work for:
Yes, you need to use source control.
Yes, you need to automate the build.
No, you shouldn’t be releasing the assemblies compiled on your machine.
Yes, you need to stop writing long methods and pay attention to code complexity.
Yes, you need to buy your developers the best tools available.
No, you don’t need to write your own logging framework.
Yes, you should be practicing test first development.
No, continuing to ship known defects is not acceptable.
Yes, you should understand who your customer is."