Por que o modelo MVC3 incluído da microsoft não segue modelos gordos, controladores magros?

5

Do modelo incorporado da Microsoft para o MVC3

O modelo é extremamente magro, basicamente sem código.

Modelo

public class RegisterModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.EmailAddress)]
    [Display(Name = "Email address")]
    public string Email { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}

Enquanto o Controlador, por outro lado, parece ser gordo, fazendo mais que simples roteamento ...

Controlador

[HttpPost]
[AllowAnonymous]
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {
        // Attempt to register the user
        MembershipCreateStatus createStatus;
        Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

        if (createStatus == MembershipCreateStatus.Success)
        {
            FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
            return RedirectToAction("Index", "Home");
        }
        else
        {
            ModelState.AddModelError("", ErrorCodeToString(createStatus));
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}
    
por MVCylon 01.06.2011 / 21:30
fonte

2 respostas

6

Tudo o que o controlador está fazendo lá é o seu trabalho, seu material básico. A lógica de negócios não será gerada para você. Modelos engordam quando você encapsula funcionalidade útil neles; você não pode esperar ver isso de um modelo.

    
por 02.06.2011 / 02:07
fonte
0

Estou curioso em saber como você acha que o controle pode ser colocado em uma dieta? Eu sinceramente não consigo ver nada que possa passar para o modelo sem violar o SRP.

    
por 20.09.2011 / 17:07
fonte