Comunidade Open Source em .NET

É visível a preocupação de Scott Hanselman em difundir a cultura open source na comunidade de desenvolvedores .NET, incluindo seu recente anúncio sobre a importância da manutenção de projetos open source para o programa MVP. Ontem, Hanselman postou falando sobre o quanto é difícil o envolvimento e a manutenção de projetos open source na comunidade .NET e o trabalho que está realizando junto a Microsoft para mudar esse cenário. Resolvi traduzir a última parte do seu post no intuito de reforçar sua visão em como podemos nos envolver mais com a comunidade open source.

(…)

SE ENVOLVER É DIFÍCIL

Eu recebo dezenas de e-mails toda semana que perguntam “como posso me envolver em projetos open source?” Todos assumem que minha resposta será “escreva código” ou “envie um pull request,” ou algumas vezes, “ajude a documentar.”

Na verdade, isso não é tudo que você pode fazer. O que você pode fazer é ler. Absorver.  Entender. Ser receptivo, inclusive, e gentil. Oferecer análises ponderadas e fazer perguntas. Evitar hipérboles e linguajar inflamável/incitável. Apresente exemplos de código quando comentar em issues. Seja útil.

Seu posts em blogs são o motor da comunidade, seus commits em projetos open source, documentação, promoções, exemplos, palestras, gists são importantes. Mas se envolver em projetos open source nem sempre quer dizer “faça um fork de um projeto e envie um pull request gigantesco com a sua visão do mundo.” Algumas vezes é importante, mas sem glória, trabalhar escrevendo documentação de regulamentação, organizar uma conferência, ou ler minuciosamente uma thread gigantesca no Github antes de fazer uma pergunta.

Porque fazemos isso? Não é pela glória ou pelo dinheiro. É porque somos Construtores. Eu encorajo você a se envolver. Existe muito a ser feito.

Scott Hanselman, aqui.

O que é o projeto Roslyn

O projeto Roslyn é uma forma de repensar o compilador do C# e VB de forma modularizada. Dessa forma, o compilador deixa de ser uma caixa preta e passa a transparecer todos os processos de compilação. Desenvolvedores passam a ter acesso a todas as bibliotecas utilizadas pelo compilador. Literalmente, esses compiladores estão sendo reescritos. Por exemplo, o código fonte do projeto csc.exe que está sendo reescrito no projeto Roslyn (rcsc.exe) pode ser encontrado aqui. É o compilador de C# escrito em C#.

Indiretamente, podemos esperar novas ferramentas surgindo para análise de código e refatoração; talvez um Visual Studio mais inteligentes, quem sabe? Você poderia citar mais exemplos?

O código fonte está sendo distribuído através da licença Apache License 2.0 e está disponível no codeplex.

Roslyn é apenas um codinome para o projeto, já deu para perceber que a Microsoft chamará esse conjunto de bibliotecas e ferramentas de .NET Compiler Platform.

Exemplo

Como exemplo, criei um projeto Console em C# e adicionei o pacote NuGet para o Roslyn da seguinte forma:

PM> Install-Package Microsoft.CodeAnalysis -Pre

Depois adicionei o seguinte trecho de código:

using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;

namespace RoslynConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            SyntaxTree tree = CSharpSyntaxTree.ParseText(@"
using System;
using System.Collections.Generic;
using System.Text; 

namespace HelloWorld  {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine(""Hello, World!"");
        }
    }
}");

            var root = tree.GetRoot() as CompilationUnitSyntax;

            var compilation = CSharpCompilation.Create("HelloWorld")
                .AddReferences(new MetadataFileReference(typeof(object).Assembly.Location))
                .AddSyntaxTrees(tree);

            var semanticModel = compilation.GetSemanticModel(tree);
        }
    }
}

Note que foi necessário adicionar uma referência ao assembly mscorelib.dll através da expressão:

typeof(object).Assembly.Location

O objeto root (CompilationUnitSyntax) representa a árvore sintática do código. Você pode usar para navegar pelo código: quais os namespaces, quais classes estão dentro desse namespace, quais métodos da classe, etc.

O objeto compilation (CSharpCompilation) representa uma compilação do código e através dele é possível ter acesso a análise semântica do código (semanticModel). Segundo a documentação, é possível responder perguntas tais como: quais membros são acessíveis a partir de algum método?

Uma observação interessante é que o objeto compilation é imutável, e funciona sob demanda. A partir do momento que você vai acessando suas propriedades ele vai compilando o que for necessário. Não é possível alterar o compilation, apenas criar um novo a partir de um existente, o que possibilita reutilizar o que for possível.

Esse exemplo que coloquei é apenas um pedaço do exemplo citado no artigo Getting Started: Semantic Analysis. Leia lá para mais detalhes.

StyleCop no Visual Studio 2013

Update – 25.11.2013

andyr liberou, nesse final de semana, mais uma versão do StyleCop. Agora, com suporte oficial ao Visual Studio 2013.

Update – 30.10.2013

O usuário csdahlberg criou uma branch do StyleCop que da suporte ao Visual Studio 2013. Ele disponibiliza uma versão compilada nesse link.

StyleCop

StyleCop é uma ferramenta desenvolvida por um funcionário da Microsoft chamado Jason Allor com o intuito de ajudar a padronizar o estilo de escrita de código C#.  Hoje a Microsoft não responde mais pela ferramenta e essa responsabilidade foi delegada para a comunidade. As regras do StyleCop incluem documentação de código, nomenclaturas, espaçamento, entre outras. A lista completa com todas as regras podem ser encontradas aqui.

Manter o código organizado e padronizado quando você trabalha sozinho pode ser possível, com um time de duas ou três pessoas pode ser viável, mas com qualquer número maior que esse, fatalmente você vai acabar precisando de uma ferramenta como o StyleCop. Com ela, a validação da qualidade do código pode ser feita de forma automática.

StyleCop no Visual Studio 2013

Infelizmente, ainda não está disponível uma extensão do StyleCop para Visual Studio 2013 Preview. Mas, felizmente, você pode integrar ao projeto utilizando um pacote do NuGet chamado StyleCop.MSBuild. Basta adicionar ao projeto como você faria com qualquer outro pacote e na próxima vez que você tentar compilar o projeto o Visual Studio apresentará todos os warnings referentes ao StyleCop.

stylecop2

O StyleCop acompanha um arquivo de settings que contém todas as regras que você deseja utilizar no seu projeto, você pode facilmente editar esse arquivo utilizando uma ferramenta chamada StyleCop Settings Editor. Quando você baixar o pacote a ferramenta ficará instalada em “.\packages\StyleCop.MSBuild.4.7.45.0\tools\”. Basta executar a ferramenta passando o arquivo de configuração como parâmetro da seguinte forma:

> StyleCopSettingsEditor.exe Settings.StyleCop

stylecopPara mim, a melhor forma é copiar o arquivo de configuração da pasta packages para o mesmo nível do arquivo da solução. Dessa forma você pode subi-lo para o controle de versão, uma vez que o pacote do NuGet não precisa ficar versionado. Se você precisar de regras específicas para cada projeto, basta copiar o arquivo para dentro da pasta do projeto, assim você terá um arquivo de settings diferente para cada projeto.

Visual Studio 2013 IDE

Programa Visual Studio Toolbox do Channel 9 mostrando o que está vindo de novidade na IDE do Visual Studio.

visual studio ide video preview

Vale salientar que já é possível baixar a versão 2013 Preview. Por ser um preview, você pode baixar qualquer edição (Professional, Premium, etc) mesmo sem ter a assinatura MSDN, mas também já está disponível a versão Express que continuará sendo gratuita.

Flickr SDK para Windows 8

Acabo de publicar no GitHub um SDK que comecei a fazer para integração do Flickr com aplicações Windows Store no Windows 8.1. Até o momento implementei a parte de autenticação e upload de fotos. Os próximos passos são:

  • Persistir o AccessToken
  • Propriedades de compartilhamento da foto

ClassDiagram

Sugestões são sempre bem vindas!

Be many people

“… and you, Marcus, you have given me many things; now I shall give you this good advice. Be many people. Give up the game of being always Marcus Cocoza. You have worried too much about Marcus Cocoza, so that you have been really his slave and prisoner. You have not done anything without first considering how it would affect Marcus Cocoza’s happiness and prestige. You were always much afraid that Marcus might do a stupid thing, or be bored. What would it really have mattered? All over the world people are doing stupid things … I should like you to be easy, your little heart to be light again. You must from now, be more than one, many people, as many as you can think of …”

– Karen Blixen, The Dreamers from Seven Gothic Tales (1934)

Que tal desenvolver para Windows 8?

 Acabei de encontrar meu primeiro post falando sobre o desenvolvimento para Windows 8. Ele data de 28 de janeiro de 2012, mais de um ano atrás. Penso que pelo tempo que faz não tivemos um aumento tão significativo na quantidade de desenvolvedores, qual será o motivo? Ainda temos poucos usuários de Windows 8 no Brasil, acredito que grande parte se deve aos valores absurdos dos impostos que pagamos para adquirir um computador com touch screen. Afinal de contas, a grande magia do Windows 8 está nos computadores híbridos.

Mas se você não encontrou uma razão para começar a desenvolver para Windows Store vendo da perspectiva de um usuário, que tal começar a olhar para as razões como desenvolvedor e como oportunidade profissional:

  • A Store permite que você distribua facilmente sua aplicação e você ainda pode bastante dinheiro.
  • O mercado está com uma demanda alta de profissionais com experiência em Windows Store.
  • Se você é um desenvolvedor .NET, pode aproveitar tudo que você já aprendeu até hoje.
  • Se você é um desenvolvedor JavaScript para Web, também pode aproveitar tudo que aprendeu.
  • Se você é um desenvolvedor C++ / DirectX está com dois pés a frente.

Para mim, essas são as principais motivações, quais as suas?


Windows Logo


COMO DESENVOLVER APLICATIVOS PARA WINDOWS STORE

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 201 outros seguidores

%d blogueiros gostam disto: