Um pouco sobre Scrum

Olá pessoal, o quanto vocês conhecem de Scrum? Para quem conhece muito pouco ou nada, sugiro que adentre neste universo, acredito que uma hora vai ser muito útil.

Já ouvi diversos colegas de trabalho dizendo, “onde eu trabalhava, utilizávamos Scrum, fazíamos Sprints, reuniões diárias mas não adotamos a Retrospectiva da Sprint…” 

Há de convir que atualmente existe uma certa moda em adotar Scrum, e isso não é ruim, significa que a metodologia tradicional de desenvolvimento de sistemas é falha e muitas empresas estão caindo na real sobre isso.

Mas um detalhe, adotar boas práticas de Scrum não é usar Scrum!
O Scrum é fechado, é necessário seguir todas cerimônias, papéis, recomendações e regras. Do contrário estaríamos usando “Scrum-But” ou seja “Scrum-Mas”, esse é o nome dado para quando não usamos o Scrum conforme todas as suas recomendações.

É uma prática muito comum em empresas que estão adotando uma metodologia ágil iniciar pelo Scrum-But, e até ai tudo bem, o importante é seguir no caminho até que seja alcançada a plenitude do uso do Scrum. O guia oficial diz o seguinte sobre Scrum:

  • Leve
  • Simples de entender
  • Extremamente difícil de dominar

Neste post não vou explicar tudo que é recomendado para utilizar o Scrum, mas o guia oficial dará uma visão, procure gradativamente adotar todas as práticas e aplicá-las da forma correta.

Depois de dominar o Scrum concordo que ele pode ser modificado para atender melhor a dinâmica da empresa, mas veja, depois de adquirir maturidade, não antes.

Para quem quer se tornar um profissional Scrum existem diversas certificações, e o mercado está em busca de profissionais certificados, uma boa oportunidade de melhorar o currículo.

Como disse, era apenas um pouco sobre Scrum, voltarei em breve com mais assuntos deste tema. Espero que aproveitem e no caso de dúvidas utilizem os comentários.

Até mais.

E que venha 2013!

Olá pessoal,

Espero que tenham tido uma ótima virada para 2013, este ano promete muito para o setor de tecnologia e desenvolvimento de sistemas.
Sintam e abusem desta oportunidade, o ano passado foi um ano recheado de lançamentos para plataforma de desenvolvimento, o Brasil foi apontado na posição número 1 na produção de Apps, entre outros fatos que marcaram o 2012.

E foi em 2012 que iniciei este blog, em 7 meses desde que lancei o primeiro artigo o blog alcançou o número de 9.000 visitas únicas, 3.000 só no último mês, muito obrigado a todos que fizeram parte deste número.

Em 2012 foi um ano um pouco difícil para mim no aspecto pessoal, mas mesmo assim estou muito satisfeito, iniciei como palestrante onde através do DevBrasil pude colaborar entregando 5 palestras, aprendi muito, foi um verdadeiro UP de conhecimento, fiz muitos contatos com pessoas que considero mestres no que fazem, e quase no final do ano tornei-me MSP (Microsoft Student Partner).

E agora em 2013 os objetivos são ainda maiores:

  • Espero poder entregar 50 artigos (ou mais);
  • Realizar 10 palestras;
  • Assistir 15 palestras;
  • Gravar 10 vídeo-aulas;
  • Conquistar no mínimo 2 novas certificações;
  • Alcançar a média de 5.000 visitas mensais do Blog.

Podem cobrar 😉

Mais uma vez obrigado a todos que colaboraram com o ano que passou, e fiquem a vontade para escreverem sugestões, feedbacks e etc…

Abraços!

C# – Para Iniciantes – Parte 7 – Generics C#

Olá Pessoal, Vamos falar sobre Generics C#.

Atendendo a um pedido de um leitor que segue a série C# para iniciantes, faremos aqui uma abordagem simples para entender sobre o tal Generics 🙂

Os Generics (Genéricos) foram incluídos no .Net Framework na versão 2.0 (isso foi em 2005), portanto é novidade apenas para quem está começando agora, hoje em dia os Generics são fundamentais, então sugiro que entendam bem o conceito.

Os Generics foram criados para eliminar o “casting“, facilitar a criação de classes e métodos e diminuir a quantidade de boxing (entenda o que é boxing).
Genérics representa uma coleção (lista, array, como preferir…) de objetos fortemente tipados. Uma collection de generics fornece métodos para pesquisar, ordenar e manipular através de um índice.

Fortemente tipados, pois é uma coleção de um tipo, (int, string, etc… ou T), sendo “T” nesse caso um tipo definido pelo próprio programador.

Para utilizar o generics é necessário fazer uso do namespace System.Collections.Generic

Exemplo, uma lista de int:

    List<int> listaInteiros = new List<int>();

Certo?
Agora dada a classe:

    public class Pessoa
    {
        public string Nome { get; set; }
        public int Idade { get; set; }
        public string Sexo { get; set; }

        // Construtor para facilitar a criação de uma nova pessoa.
        public Pessoa(string nome, int idade, string sexo)
        {
            Nome = nome;
            Idade = idade;
            Sexo = sexo;
        }

        // Construtor vazio para permitir uma instância vazia da classe Pessoa
        public Pessoa()
        {
        }
    }

A classe Pessoa foi escrita pelo programador, não é um tipo do .Net, nesse caso para montar uma lista de N pessoas, seria assim:

    // Criando uma lista do tipo pessoa.
    List<Pessoa> listaPessoas = new List<Pessoa>();

    // Adicionando novas pessoas na lista.
    listaPessoas.Add(new Pessoa("Eduardo",30,"M"));

    listaPessoas.Add(new Pessoa("Enzo", 7, "M"));

    listaPessoas.Add(new Pessoa("Juliana", 21, "F"));

    // Obtendo o total de pessoas na lista
    int totalPessoas = listaPessoas.Count(); // totalPessoas = 3 pessoas

Fazendo a mesma coisa, só que de forma diferente:

    // Criando uma lista do tipo pessoa.
    List<Pessoa> listaPessoas = new List<Pessoa>();

    // Criando um objeto pessoa vazio.
    Pessoa pessoaTeste = new Pessoa();

    // Preenchendo um objeto pessoa.
    pessoaTeste.Nome = "Eduardo";
    pessoaTeste.Idade = 30;
    pessoaTeste.Sexo = "M";

    // Adicionando a pessoa na lista.
    listaPessoas.Add(pessoaTeste);

Escrevendo um método que recebe uma lista genérica de Pessoas e trabalha os dados da lista:

    public static void MetodoAumentaIdade(List<Pessoa> listaPessoas)
    {
        foreach(Pessoa pessoa in listaPessoas)
        {
            // Aumenta 1 ano de idade.
            pessoa.Idade++;
        }
    }

Estes exemplos mostraram como criar uma lista genérica.
Agora que sabemos como criar e popular uma lista genérica, vou dar alguns exemplos de como trabalhar dados em listas:

    // Criando uma nova lista e ordenando por nome decrescente
    List<Pessoa> novaListaPessoas;
    novaListaPessoas = listaPessoas.OrderByDescending(x => x.Nome).ToList();

    // Varrendo e exibindo nomes ordenados
    novaListaPessoas.ForEach(n => Console.Write(n.Nome));

    // Criando uma nova lista baseada em pessoas selecionadas por um critério
    List<Pessoa> listaPessoaSelecionada =
                (from Pessoa p in novaListaPessoas where p.Nome == "Eduardo"
                select p).ToList();

    // Somando todas as idades das pessoas da lista
    int totalIdades = novaListaPessoas.Sum(x => x.Idade);

Notem que estou fazendo bastante uso de Expressões Lambdas.
Existem várias abordagens possíveis para trabalhar uma lista genérica, nesta documentação da Microsoft é possível estudar todas e aprender quando e de que forma podemos facilitar nosso trabalho utilizando Generics.

É isto pessoal, utilizem os comentários para participar ou tirar dúvidas.

Até mais 😉

O que é POCO?

Olá pessoal, O que é POCO? O que seria uma classe POCO?

Hoje em dia utilizar um ORM como Entity Framework ou NHibernate é bem comum, aplicar conceitos do DDD também vem sido bem abordados e discutidos e em todas essas abordagens acaba surgindo o uso de POCO. Afinal o que é POCO?

Tentar decifrar esse nome vai ser bem difícil, POCO significa Plain OLD CLR Object, tentando traduzir isso eu gosto de chamar POCO de “Bom e velho objeto do CLR”.
POCO é um acrônimo de POJO Plain OLD Java Object, criado por Martin Fowler (um expert em OOP) como ele vem de Java acabou dando esse nome, então os especialistas em .Net fizeram uma pequena mudança para trazer esse conceito ao nosso mundo e surgiu o POCO (mas é o mesmo conceito, não muda nada).

Legal, mas ainda não entendi o que é POCO?

É fácil de entender, POCO é uma classe que segue o ideal do OOP, pois tem estado e comportamento, porém não depende e não conhece nenhum recurso externo além do Framework .Net.

Uma classe POCO é utilizada como classe de domínio (negócio) da sua aplicação, o que chamo de Modelo de Domínio. Um Modelo de Domínio é formado pelas classes que compõem a estrutura de negócio do mundo real.

Nós não desenvolvemos sistemas apenas baseados no Framework .Net, quase sempre necessitamos de uma ferramenta externa, por exemplo um ORM, que por sua vez impõe o uso de referências como classes, interfaces, decorações nos métodos etc…

Construir uma classe POCO é escrever uma classe que contenha atributos, construtores e métodos mas que não dependam de nada mais do que o próprio .Net Framework forneça.

Quem já utilizou o Entity Framework na forma Database First já viu como que fica a bagunça de uma classe? Acabamos gerando um único arquivo EDMX com muitas dependências, herdando de um objeto ObjectContext. Geralmente esse código é bastante poluído e dificíl de estender.

    [EdmEntityTypeAttribute(NamespaceName="SistemaOS.Model", Name="Pessoas")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Pessoas : EntityObject
    {
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 id_pessoa
        {
            get
            {
                return _id_pessoa;
            }
            set
            {
                if (_id_pessoa != value)
                {
                    Onid_pessoaChanging(value);
                    ReportPropertyChanging("id_pessoa");
                    _id_pessoa = StructuralObject.SetValidValue(value, "id_pessoa");
                    ReportPropertyChanged("id_pessoa");
                    Onid_pessoaChanged();
                }
            }
        }
    }

Ou seja, estamos amarrados ao Entity Framework se deixarmos ele criar nossas classes de entidades.

Um exemplo simples de classe POCO:

    public class Pessoa
    {
        public string Nome { get; set; }
        public string Sobrenome { get; set; }
        public int Cpf { get; set; }

        public string NomeCompleto()
        {
            return Nome + " " + Sobrenome;
        }
    }

Veja que neste exemplo não dependemos de nada, é apenas uma classe, tratando de DDD o nosso domínio não pode depender de tecnologia, afinal a minha camada de domínio pode ser adaptada a um outro sistema que não utilizará o Entity Framework e tudo bem! Afinal minha classe POCO não depende disso.

Acredito que a vantagem de usar POCO é exatamente essa, podemos modelar nossas classes de domínio e portá-las para onde quiser, sem a dependência de nenhuma ferramenta externa.

Por isso recomendo que utilizem ferramentas que dê suporte a POCO, e isso não é difícil, por exemplo Entity Framework, NHibernate, WCF permitem trabalhar com POCO.

No Entity Framework, por exemplo, podemos trabalhar da forma Code First, ou seja, escrevemos primeiro classes POCO e no final a modelagem da base de dados é criada conforme a modelagem do nosso domínio.

Então uma classe POCO é uma classe anêmica?
– Não! Uma classe anêmica pode até ser uma classe POCO, mas nada diz que uma classe POCO deve ser anêmica, afinal ela pode possuir atributos e métodos.
Uma classe anêmica não possui métodos, e por alguns é considerada um anti-pattern, pois fere o conceito de orientação a objeto, mas isso é assunto para um outro artigo. 🙂

Uma classe POCO é como se fosse uma DTO então?
– Não! Uma DTO “Data Transfer Object” é outra coisa, pense em DTO como uma “sacola de dados”, ou seja, em um objeto DTO podemos ter dados das classes Pessoa, Endereço, Empresa.
DTO é um outro pattern desenhado justamente para reduzir o número de chamadas e a quantidade de dados necessários para trafegar entre camadas de sistemas, por exemplo, entre uma aplicação web e um serviço.
Uma classe POCO é sua classe de domínio e um DTO é o objeto para transitar dados apenas, podem possuir dados de mais de uma entidade e não possuem métodos, portanto não é POCO.

Se minha classe herda de uma classe base então não tenho uma classe POCO?
– Depende, desde que a classe base não tenha nenhuma dependência com outras camadas da aplicação e ferramentas externas, ainda é uma classe POCO.

Referências:

Espero que tenham aproveitado, se você gostou compartilhe esse artigo, se tiver dúvidas ou quiser contribuir com algo faça um comentário.

Até a próxima!

TypeScript – O superset de JavaScript

Olá pessoal, já ouviram / leram algo sobre TypeScript?

Sim, é uma novidade, estou escrevendo apenas 9 dia depois da Microsoft ter anunciado a release do preview do TypeScript.

O TypeScript é um superconjunto “superset” do JavaScript, logo escreve-se TypeScript da mesma forma que se escreve JavaScript, todo código JavaScript também é um código TypeScript.

  • O TypeScript não é um Dart, a Microsoft não está tentando substituir o JavaScript.
  • O TypeScript também não é uma resposta da Microsoft ao CoffeeScript, são propostas diferentes, o CoffeeScript é uma linguagem diferente e possui uma sintaxe própria.

Escrever grandes códigos JavaScript é complicado principalmente quando o assunto é ferramental “tooling”, a proposta do TypeScript é facilitar o desenvolvimento em JavaScript já que o TypeScript traz grandes benefícios, tais como:

  • Classes (chega de prototypes)
  • Módulos (ficou mais fácil exportar código)
  • Tipos definidos (são opcionais)
  • Navegação no código fonte (é possível renomear, encontrar referências e definições)
  • Interfaces
  • Refatoração.

Let’s try!
Veja nesse exemplo básico algumas coisas que nunca viu em JavaScript:

Código TypeScript

// Veja uma classe.
class Greeter {
	greeting: string; // Tipo estático
	constructor (message: string) { // Construtor
		this.greeting = message;
	}
	greet() {
		return "Hello, " + this.greeting;
	}
}

var greeter = new Greeter("world");

var button = document.createElement('button')
button.innerText = "Say Hello"
button.onclick = function() {
	alert(greeter.greet())
}

document.body.appendChild(button)

Código JavaScript gerado:

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();
var greeter = new Greeter("world");
var button = document.createElement('button');
button.innerText = "Say Hello";
button.onclick = function () {
    alert(greeter.greet());
};
document.body.appendChild(button);

Resumindo

TypeScript ao meu ver é escrever JavaScript de uma forma melhorada e organizada, em conjunto com o Visual Studio ficou mais fácil navegar e refatorar o código, o resultado é maior produtividade.

O código TypeScript é escrito em um arquivo *.TS, porém ao publicar ou debugar uma aplicação com TypeScript o código TS será transformado em JS.
O ganho é produtividade mesmo, pois todo código produzido ao virar JavaScript não carrega com ele as melhorias citadas (classes, tipagem estática, etc), mas não tem problema, afinal o código a ser trabalhado vai ser sempre o TypeScript e esse permanece da forma que escrevermos.

Todo código TypeScript é JavaScript, podemos então copiar um código JS e colar num arquivo TS e funcionará normalmente, sem necessidade de migração, para projetos existentes esse comportamento é muito bacana, uma vez que ao colar o código JS num TS podemos fazer as melhorias que quisermos (ou nenhuma) e a vida segue normalmente.

O TypeScript é open source, no site oficial é possível brincar em um playground que transforma online TypeScript em JavaScript, podemos até rodar o código gerado (ótimo teste inicial).

Utilizando o TypeScript

A maioria dos desenvolvedores Microsoft tem como IDE de desenvolvimento o Visual Studio e para isso é necessário baixar e instalar um plugin.

O TypeScript funciona em outras plataformas em sistemas operacionais diversos, é suportado pelo Vim, Emacs e Sublime

Outro ponto importante, o Source Mapping, ao debugar um código JS ele é diretamente mapeado para o código TS, isso facilita muito a vida, outros geradores de JavaScript como o próprio CoffeeScript ainda não possuem esse recurso.

No Visual Studio podemos trabalhar com TypeScript criando um projeto HTML Application ou com MVC3 (não entendi por que não MVC4, logo abaixo demonstro como resolver isso).

Suporte para  HTML Application with TypeScript:

Suporte para um template MVC3:

O template “Typescript Internet Application” é apenas um template ASP.NET MVC 3 que permite compilar códigos TypeScript para JavaScript no processo de Build.
Esta configuração de build é feita no arquivo de projeto:

<None Include="Scriptsjquery.d.ts" />
    <TypeScriptCompile Include="Scriptssite.ts" />
    <Content Include="Scriptssite.js">
      <DependentUpon>site.ts</DependentUpon>
    </Content>
 <Target Name="BeforeBuild">
 <Exec
     Command="&amp;quot;$(PROGRAMFILES)
     Microsoft SDKsTypeScript\0.8.0.0tsc&amp;quot;
     @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
 </Target>

O TypeScript não fornece um template para MVC4, mas como mencionei acima, existe uma forma de resolver este problema. Basta criar um template MVC4 padrão e adicionar no arquivo de projeto “.csproject” o seguinte código:

<ItemGroup>
    <TypeScriptCompile Include="$(ProjectDir)***.ts" />
</ItemGroup>
  <Target Name="BeforeBuild">
   <Exec Command="&amp;quot;$(PROGRAMFILES)
   Microsoft SDKsTypeScript\0.8.0.0tsc&amp;quot;
  @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
  </Target>

Assim quando fizer o build do projeto o TypeScript vai ser compilado e o código JavaScript será gerado em arquivos JS automaticamente.

Primeiras impressões

Passei 4 dias aprendendo e utilizando TypeScript, eu gostei, consigo escrever um código mais bonito e organizado, de forma mais rápida e não precisei aprender uma outra linguagem ou sintaxe como seria no caso de utilizar o CoffeeScript.

Atenção ao versionar o código JS gerado, pois em um novo build ele será sobrescrito e ocasionará um erro, já que após versionar o arquivo se torna “read-only”.

Não é de hoje que diversas abordagens tentam esconder o JavaScript, o Google fez isso em 2011, o CoffeeScript faz, o WebForms do ASP.Net, todos geram JavaScript sem que nós nos preocupemos com isso, porém com TypeScript é a forma mais fácil que senti de trabalhar com JavaScript, afinal consigo debugar meu código original com o Source Mapping, mantenho atualizado meus conhecimentos em JavaScript e tenho uma visão mais clara do código que vai ser gerado, afinal JavaScript também é TypeScript.

Espero que tenham gostado, caso queira participar, dar um feedback ou tirar alguma dúvida faça um comentário 🙂

Links úteis

Referências

Bons estudos e até mais pessoal.

 

WebCasts sobre Windows 8

WebCasts sobre Windows 8 – Vamos aprender e desenvolver Windows Store Apps.

Windows 8

Titulo Data Horário Descrição Inscreva-se
Apps 4 Win: Você pode e deve fazer uma App! 09/10/2012 12:00 Veja neste webcast uma breve explicação sobre Windows Store Apps. Inscrever
Apps 4 Win: Você pode e deve fazer uma App! 09/10/2012 22:00 Veja neste webcast uma breve explicação sobre Windows Store Apps. Inscrever
Apps 4 Win: Prepare seu ambiente! Instalar o Windows 8 é o primeiro passo! 11/10/2012 12:00 Veja neste webcast como preparar o seu ambiente de TI para começar o desenvolvimento de uma Windows Store App. Inscrever
Apps 4 Win: Prepare seu ambiente! Instalar o Windows 8 é o primeiro passo! 11/10/2012 22:00 Veja neste webcast como preparar o seu ambiente de TI para começar o desenvolvimento de uma Windows Store App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 1! Descubra como é fácil! 15/10/2012 12:00 Veja neste webcast como começar o desenvolvimento de sua App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 1! Descubra como é fácil! 15/10/2012 22:00 Veja neste webcast como começar o desenvolvimento de sua App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 2! Continue seu trabalho! 16/10/2012 12:00 Veja neste webcast como desenvolver sua Windows Store App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 2! Continue seu trabalho! 16/10/2012 22:00 Veja neste webcast como desenvolver sua Windows Store App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 3! Concluindo sua App! 18/10/2012 12:00 Veja neste webcast como terminar sua App e deixá-la pronta para submissão na Windows Store. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 3! Concluindo sua App! 18/10/2012 22:00 Veja neste webcast como terminar sua App e deixá-la pronta para submissão na Windows Store. Inscrever
Apps 4 Win: Você na Windows Store! 22/10/2012 12:00 Veja neste webcast como funciona o processo de submissão de Apps na Windows Store. Inscrever
Apps 4 Win: Você na Windows Store! 22/10/2012 22:00 Veja neste webcast como funciona o processo de submissão de Apps na Windows Store. Inscrever
Apps 4 Win: Sua App, finalmente, disponível para o mundo! 23/10/2012 12:00 Veja neste webcast como finalizar a submissão da sua App na Windows Store. Inscrever
Apps 4 Win: Sua App, finalmente, disponível para o mundo! 23/10/2012 22:00 Veja neste webcast como finalizar a submissão da sua App na Windows Store. Inscrever

Bons estudos pessoal 🙂

Desenvolvendo aplicativos para Windows 8, Windows Phone e Windows Azure.

Desenvolvendo aplicativos para Windows 8, Windows Phone e Windows Azure.

Olá Pessoal, a Microsoft lançou a versão brasileira de um portal que auxilia no desenvolvimento para Windows 8, Windows Phone e Windows Azure.

O site concentra informações para que você possa aprender, desenvolver e publicar suas aplicações para essas novas plataformas.

Dê uma olhada e boa programação a todos 🙂
http://www.microsoft.com/brasil/apps/ 

Fonte:

Até a próxima!

Palestra LightSwitch – Visual Studio Summit 2012

Olá Pessoal,

Como mencionei aqui algumas vezes, apresentei no evento Visual Studio Summit 2012 uma palestra sobre LightSwitch e hoje publico a gravação da palestra e o projeto que desenvolvi durante a apresentação para quem quiser fazer alguns testes.

Não sou especialista em palestras ainda, mas espero que gostem 🙂

O código fonte do projeto está aqui:
ProjetoLightSwitch.zip

A fonte utilizada para consultar o catálogo do Netflix foi:
http://odata.netflix.com/v2/Catalog/ 

Os vídeos de todas as palestras:
http://www.baboo.com.br/2012/10/videos-do-visual-studio-summit-2012/ 

Agradecimentos:

  • Ramon Durães – Pela oportunidade de apresentar a palestra.
  • Baboo – Pela colaboração com fotos e filmagens.
  • Rodrigo Carvalho – Pela realização do Evento na Microsoft

Agradeço a todos também que de alguma forma contribuíram para tornar este evento memorável da forma que ocorreu.

Até a próxima.

MVA – Microsoft Virtual Academy

Olá pessoal, vocês conhecem o MVA – Microsoft Virtual Academy?

Neste último sábado estive presente no VS Summit 2012 onde fiz duas palestras e assisti  mais 7, todas interessantíssimas.

Nesse evento muita gente parou para conversar comigo para pedir dicas, principalmente para quem está começando, não existe exatamente um roteiro, mas vou procurar ajudar com algumas sugestões:

1- Leitura

O caminho é a leitura, leia, leia, leia tudo, leia até sobre o que não conhece, uma hora fará sentido. Faça uma lista de sites e blogs que gostar do conteúdo e visite constantemente. Muito provavelmente irá encontrar novidades interessantes.

2- Dedicação

Missão dada é missão cumprida, se quer aprender, é claro que vai enfrentar desafios, o importante é persistir com a vontade de aprender, é assim que funciona.

3- Comunidade

A comunidade Microsoft é muito grande, são sites, fóruns, blogs, revistas, portais, grupos de discussão, ajuda não irá faltar, é por isso que me motivei a escrever este post.

Vejo que nem todos conhecem ainda, mas a Microsoft tem um programa chamado MVA – Microsoft Virtual Academy.

São vários roteiros (assuntos) a serem estudados, com conteúdos de áudio/vídeo, textos e ao final do roteiro existe uma avaliação para medir o seu aproveitamento.
A cada roteiro finalizado com avaliação positiva são creditados pontos em seu perfil, assim você poderá medir em comparação aos demais seu desempenho no aprendizado.

É de graça, e os conteúdos são ótimos (eu mesmo estudo alguns roteiros).

Espero que a dica seja útil, para você que está começando dê uma olhada nesta página do meu site: https://www.eduardopires.net.br/c-sharp-para-iniciantes/ além do resumo dos artigos tem mais algumas dicas.

O site do MVA é http://www.microsoftvirtualacademy.com/

Bons estudos!

 

e-Books Microsoft Press Grátis!

Olá pessoal, e-Books Microsoft Press Grátis!

Vamos aproveitar a oportunidade e agregar mais conhecimentos para nossa carreira?

Ando ocupado preparando o material de minha palestra no Visual Studio Summit 2012, em breve voltarei com posts mais regulares 🙂

Enquanto isso, divirtam-se com estes downloads:

cover for Introducing Windows Server 2012 RTM Edition    cover for Introducing Windows Server 2008 R2   cover for Introducing Microsoft SQL Server 2012   cover for Introducing Microsoft SQL Server 2008 R2

cover for Understanding Microsoft Virtualization Solutions, 2nd Ed   clip_image007   clip_image008   clip_image009

clip_image010   672611.indd    Moving to Visual Studio 2010  Programming Windows Phone 7

Até a próxima!