Mar
04

Dez podcasts em português – Tecnologia da Informação

  1. podcast iconAnndroidCasts
  2. Bluesoft
  3. Conexao Windows
  4. DatabaseCast
  5. Dotnetarchitects
  6. Grok Podcast
  7. Guanacast
  8. MestreCast
  9. Tecnoretorica
  10. Void Podcast

Permanent link to this article: http://fernandovezzali.com/2012/03/04/dez-podcasts-em-portugues-tecnologia-da-informacao/

Mar
02

O papel da ViewModel no ASP.NET MVC

Quando começamos aprender ASP.NET MVC, é comum vermos o controller passando o modelo para a view e este encaixe acontecendo com perfeição. Mas no mundo real, o cenário muda e este encaixe entre modelo e view pode não acontecer com tanta facilidade.

 

Os templates do Visual Studio são ótimos, eu os utilizo diariamante, apenas me preocupo quando vejo pessoas encarando o código gerado pelos templates como se fossem a única/melhor implementação a ser seguida. Definitivamente este não é o propósito dos templates.

 

 

 

Vamos entender algumas coisas sobre geração de código:

  • Os templates nos fornecem apenas um “starter code”, um esqueleto, uma estrutura.
  • Poupa o programador da digitação repetitiva que acontece, por exemplo, quando adicionamos novos elementos ao projeto, tais como: uma classe, uma view, um teste unitário, etc.
  • Os templates podem e devem ser modificados. A Microsoft estimula isto de diversas formas, só para citar uma delas: MVCScaffolding (open source)

Voltando ao tema, o nosso modelo raramente atenderá a todas as necessidades da view, na realidade não é responsabilidade dele atender à estas necessidades. O modelo deve representar o domínio da aplicação, e só. Elementos relacionados à camada de apresentação, ex.: paginação, inputs e grid, não podem estar no modelo.

Vamos resolver este problema usando uma ViewModel:

A ViewModel é um modelo. Sim, um modelo, porém é projetada especificamente para atender às necessidade da view. Esta é a sua função, simples assim. Abaixo mostro a comparação entre um “modelo de domínio” e uma ViewModel. Neste exemplo a ViewModel foi projetada para uma view de consulta, com um filtro por palavra-chave e uma listagem de produtos, as diferenças são evidentes:

O código do modelo de domínio:

    public class Produto
    {
        public int Id { get; set; }
        public string Nome { get; set; }
        public decimal Preco { get; set; }
    }

O código da ViewModel:

    public class ProdutoViewModel
    {
        public ProdutoViewModel()
        {
            Produtos = new List();
        }
 
        public string Nome { get; set; }
        public List Produtos { get; set; }
    }

O código da View:

@model PetApplication.Models.ProdutoViewModel
@{
    ViewBag.Title = "ListaProdutos";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Lista de Produtos</h2>
@using (Html.BeginForm())
{
    @Html.LabelFor(model => model.Nome)
    @Html.TextBoxFor(model => model.Nome)
    foreach (var produto in Model.Produtos)
    {
        <ul>
            <li>@Html.DisplayFor(modelItem => produto.Id)</li>
            <li>@Html.DisplayFor(modelItem => produto.Nome)</li>
            <li>@Html.DisplayFor(modelItem => produto.Preco)</li>
        </ul>
    }
    <input id="Submit1" type="submit" value="Buscar" />
}

Permanent link to this article: http://fernandovezzali.com/2012/03/02/o-papel-da-viewmodel-no-asp-net-mvc/

Feb
25

Como contribuir com projetos open source sem codificar

microsoft open sourceContribuir com projetos Open Source é uma ótima maneira de ampliar seu networking e ganhar muito conhecimento. Dentro do Github existem milhares de projetos interessantes, usando as mais diferentes tecnologias e plataformas.

Projetos famosos como o jQuery, Linux, Rails, Modernizr e o Git estão lá. Até a Microsoft usa o GitHub para alguns de seus projetos, vide o exemplo do KnockOut: https://github.com/SteveSanderson/knockout.

 

Você pode colaborar com estes projetos, sem necessariamente codificar.

Exemplos de como você pode ajudar:

  • Encontrar e avisar sobre existência de um bug
  • Sugerir uma nova funcionalidade (new feature)
  • Escrever uma boa documentação
  • Traduzir uma documentação existente
  • Atualizar uma documentação obsoleta
  • Enviar uma melhoria gráfica (ícone, logo ou um css)
  • Corrigir um erro ortográfico
  • Propor compatibilidade com outra plataforma (mobile por exemplo)
  • Aprimorar a documentação com diagramas e screen-shots
  • Criar um glossário com os principais termos
  • Responder perguntas de usuários
  • Escrever um post sobre o projeto

Aconteceu comigo:

Eu já trabalho desenvolvendo software à 12 anos e notei um crescente interesse por parte das empresas (inclusive durante entrevistas) sobre o assunto “Open Source”.  As empresas de fora valorizam isto, em uma ocasião me fizeram a seguinte pergunta:

- Fernando, você possui contribuições no GitHub ? Posso dar uma olhada ?

Infelizmente eu não tinha, mas já corrigi isto !

Permanent link to this article: http://fernandovezzali.com/2012/02/25/como-contribuir-com-projetos-open-source-sem-codificar/

Older posts «