Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
(inclui atualização de ferramentas de abril de 2011)
ASP.NET MVC 3 é uma estrutura para a criação de aplicativos Web escalonáveis baseados em padrões usando padrões de design bem estabelecidos e o poder da ASP.NET e do .NET Framework.
Ele instala lado a lado com ASP.NET MVC 2, então comece a usá-lo hoje!
Baixe o instalador aqui
Novidades no ASP.NET MVC 3
Instalação e ajuda
ASP.NET MVC 3 se baseia em ASP.NET MVC 1 e 2, adicionando ótimos recursos que simplificam seu código e permitem extensibilidade mais profunda. Este tópico fornece uma visão geral de muitos dos novos recursos incluídos nesta versão, organizados nas seguintes seções:
O novo sistema scaffolding facilita a captação e o uso produtivo se você for totalmente novo na estrutura e automatizar tarefas comuns de desenvolvimento se você tiver experiência e já souber o que está fazendo.
Isso é compatível com o novo pacote de scaffolding do NuGet chamado MvcScaffolding. O termo "Scaffolding" é usado por muitas tecnologias de software para significar "gerar rapidamente uma estrutura de tópicos básica do software que você pode editar e personalizar". O pacote de scaffolding que estamos criando para ASP.NET MVC é muito benéfico em vários cenários:
Outros recursos no MvcScaffolding incluem:
A ASP.NET Atualização de Ferramentas do MVC 3 inclui um ótimo suporte do Visual Studio para esse sistema de scaffolding, como:
Para obter mais informações sobre o Scaffolding no ASP.NET MVC 3, consulte os seguintes recursos:
A pós-série de Steve Sanderson, incluindo:
Postagem de Scott Hanselman de sua sessão do PDC 2010 Criando um blog com o "Pacote Sem Nome do Amor na Web" da Microsoft
A caixa de diálogo Novo Projeto inclui uma caixa de seleção habilitar versões HTML 5 de modelos de projeto. Esses modelos aproveitam o Modernizr 1.7 para fornecer suporte de compatibilidade para HTML 5 e CSS 3 em navegadores de nível inferior.
ASP.NET MVC 3 vem com um novo mecanismo de exibição chamado Razor que oferece os seguintes benefícios:
Alguns novos recursos do Razor incluem o seguinte:
@model
sintaxe para especificar o tipo que está sendo passado para a exibição.@* *@
sintaxe de comentário.layoutpage
) uma vez para um site inteiro.Html.Raw
método para exibir texto sem codificar HTML.O Razor também inclui novos auxiliares HTML, como o seguinte:
Chart
. Renderiza um gráfico, oferecendo os mesmos recursos que o controle de gráfico no ASP.NET 4.WebGrid
. Renderiza uma grade de dados, completa com a funcionalidade de paginação e classificação.Crypto
. Usa algoritmos de hash para criar senhas corretamente saltadas e com hash.WebImage
. Renderiza uma imagem.WebMail
. Envia uma mensagem de email.Para obter mais informações sobre o Razor, consulte os seguintes recursos:
A caixa de diálogo Adicionar Exibição no ASP.NET MVC 3 permite que você escolha o mecanismo de exibição com o qual deseja trabalhar e a caixa de diálogo Novo Projeto permite especificar o mecanismo de exibição padrão para um projeto. Você pode escolher o mecanismo de exibição Web Forms (ASPX), Razor ou um mecanismo de exibição de software livre, como Spark, NHaml ou NDjango.
Às vezes, você deseja executar a lógica antes que um método de ação seja executado ou depois que um método de ação for executado. Para dar suporte a isso, ASP.NET filtros de ação fornecidos pelo MVC 2. Os filtros de ação são atributos personalizados que fornecem um meio declarativo para adicionar comportamento de pré-ação e pós-ação a métodos de ação de controlador específicos. No entanto, em alguns casos, talvez você queira especificar o comportamento de pré-ação ou pós-ação que se aplica a todos os métodos de ação. O MVC 3 permite especificar filtros globais adicionando-os GlobalFilters
à coleção. Para obter mais informações sobre filtros de ação globais, consulte os seguintes recursos:
Os controladores MVC 2 dão suporte a uma ViewData
propriedade que permite passar dados para um modelo de exibição usando uma API de dicionário com limite tardio. No MVC 3, você também pode usar uma sintaxe um pouco mais simples com a ViewBag
propriedade para realizar a mesma finalidade. Por exemplo, em vez de escrever ViewData["Message"]="text"
, você pode escrever ViewBag.Message="text"
. Você não precisa definir nenhuma classe fortemente tipada para usar a ViewBag
propriedade . Como é uma propriedade dinâmica, você pode obter ou definir propriedades e elas serão resolve dinamicamente em tempo de execução. Internamente, ViewBag
as propriedades são armazenadas como pares nome/valor no ViewData
dicionário. (Observação: na maioria das versões de pré-lançamento do MVC 3, a ViewBag
propriedade foi chamada de ViewModel
propriedade .)
Os seguintes ActionResult
tipos e métodos auxiliares correspondentes são novos ou aprimorados no MVC 3:
RedirectPermanent
, RedirectToRoutePermanent
e RedirectToActionPermanent
. Esses métodos retornam uma instância de RedirectResult
com a Permanent
propriedade definida true
como .Por padrão, o Ajax e os auxiliares de validação no MVC 3 usam uma abordagem JavaScript discreta. JavaScript não discreto evita injetar JavaScript embutido em HTML. Isso torna seu HTML menor e menos desordenado e facilita a troca ou personalização de bibliotecas JavaScript. Os auxiliares de validação no MVC 3 também usam o jQueryValidate
plug-in por padrão. Se você quiser o comportamento do MVC 2, poderá desabilitar o JavaScript discreto usando uma configuração de arquivoweb.config . Para obter mais informações sobre melhorias do JavaScript e do Ajax, consulte os seguintes recursos:
Em versões anteriores do MVC, você precisa chamar explicitamente o Html.EnableClientValidation
método de uma exibição para habilitar a validação do lado do cliente. No MVC 3, isso não é mais necessário porque a validação do lado do cliente está habilitada por padrão. (Você pode desabilitar isso usando uma configuração no arquivo web.config .)
Para que a validação do lado do cliente funcione, você ainda precisa referenciar as bibliotecas de validação jQuery e jQuery apropriadas em seu site. Você pode hospedar essas bibliotecas em seu próprio servidor ou referenciá-las de uma CDN (rede de distribuição de conteúdo), como as CDNs da Microsoft ou do Google.
ASP.NET MVC 3 dá suporte à nova classe RemoteAttribute que permite que você aproveite o suporte do validador remoto do plug-in jQuery Validation. Isso permite que a biblioteca de validação do lado do cliente chame automaticamente um método personalizado que você define no servidor para executar a lógica de validação que só pode ser feita no lado do servidor.
No exemplo a seguir, o Remote
atributo especifica que a validação do cliente chamará uma ação chamada UserNameAvailable
na UsersController
classe para validar o UserName
campo.
public class User
{
[Remote("UserNameAvailable", "Users")]
public string UserName { get; set; }
}
O exemplo a seguir mostra o controlador correspondente.
public class UsersController
{
public bool UserNameAvailable(string username)
{
if(MyRepository.UserNameExists(username))
{
return "false";
}
return "true";
}
}
Para obter mais informações sobre como usar o Remote
atributo, consulte Como implementar a validação remota em ASP.NET MVC na biblioteca MSDN.
ASP.NET MVC 3 inclui suporte interno à associação JSON que permite que os métodos de ação recebam dados codificados em JSON e os associe-os a parâmetros de método de ação. Essa funcionalidade é útil em cenários que envolvem modelos de cliente e associação de dados. (Os modelos de cliente permitem formatar e exibir um único item de dados ou um conjunto de itens de dados usando modelos que são executados no cliente.) O MVC 3 permite que você conecte facilmente modelos de cliente com métodos de ação no servidor que enviam e recebem dados JSON. Para obter mais informações sobre o suporte à associação JSON, consulte a seção Aprimoramentos javaScript e AJAX da postagem de blog MVC 3 Preview de Scott Guthrie.
ASP.NET MVC 3 dá suporte a atributos DataAnnotations
de metadados, como DisplayAttribute
.
A ValidationAttribute
classe foi aprimorada no .NET Framework 4 para dar suporte a uma nova IsValid
sobrecarga que fornece mais informações sobre o contexto de validação atual, como qual objeto está sendo validado. Isso permite cenários mais avançados em que você pode validar o valor atual com base em outra propriedade do modelo. Por exemplo, o novo CompareAttribute
atributo permite comparar os valores de duas propriedades de um modelo. No exemplo a seguir, a ComparePassword
propriedade deve corresponder ao Password
campo para ser válida.
public class User
{
[Required]
public string Password { get; set; }
[Required, Compare("Password")]
public string ComparePassword { get; set; }
}
A interface IValidatableObject permite que você execute a validação no nível do modelo e permite que você forneça mensagens de erro de validação específicas para o estado do modelo geral ou entre duas propriedades dentro do modelo. O MVC 3 agora recupera erros da IValidatableObject
interface ao associar o modelo e sinaliza ou realça automaticamente os campos afetados em uma exibição usando os auxiliares de formulário HTML internos.
A interface IClientValidatable permite que ASP.NET MVC descubra em tempo de execução se um validador tem suporte para validação do cliente. Essa interface foi projetada para que possa ser integrada a uma variedade de estruturas de validação.
Para obter mais informações sobre interfaces de validação, consulte a seção Melhorias de validação de modelo da postagem do blog MVC 3 Preview de Scott Guthrie. (No entanto, observe que a referência a "IValidateObject" no blog deve ser "IValidatableObject".)
ASP.NET MVC 3 oferece melhor suporte para a aplicação da DI (Injeção de Dependência) e para integração com contêineres de Injeção de Dependência ou Inversão de Controle (IOC). O suporte para DI foi adicionado nas seguintes áreas:
O MVC 3 dá suporte à biblioteca do Common Service Locator e a qualquer contêiner de DI que dê suporte à interface dessa IServiceLocator
biblioteca. Ele também dá suporte a uma nova IDependencyResolver
interface que facilita a integração de estruturas de DI.
Para obter mais informações sobre DI no MVC 3, consulte os seguintes recursos:
ASP.NET MVC 3 instala e habilita automaticamente o NuGet como parte de sua instalação. O NuGet é um gerenciador de pacotes de software livre gratuito que facilita a localização, a instalação e o uso de bibliotecas e ferramentas do .NET em seus projetos. Ele funciona com todos os tipos de projeto do Visual Studio (incluindo ASP.NET Web Forms e ASP.NET MVC).
O NuGet permite que desenvolvedores que mantêm projetos código aberto (por exemplo, projetos como Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks e Elmah) empacotem suas bibliotecas e registrem-nas em uma galeria online. Em seguida, é fácil para os desenvolvedores do .NET que desejam usar uma dessas bibliotecas para encontrar o pacote e instalá-lo em projetos em que estão trabalhando.
Com o ASP.NET 3 Tools Update, os modelos de projeto incluem bibliotecas JavaScript pré-instaladas pacotes NuGet, portanto, eles são atualizáveis por meio do NuGet. O Entity Framework Code First também é pré-instalado como um pacote NuGet.
Para saber mais sobre o NuGet, veja a documentação do NuGet.
ASP.NET MVC tem suporte para cache de saída de respostas de página inteira desde a versão 1. O MVC 3 também dá suporte ao cache de saída de página parcial, o que permite armazenar facilmente em cache regiões ou fragmentos de uma resposta. Para obter mais informações sobre cache, consulte a seção Cache de Saída de Página Parcialda postagem no blog de Scott Guthrie sobre o candidato à versão do MVC 3 e a seção Cache de Saída de Ação Filho das Notas de Versão do MVC 3.
ASP.NET MVC tem validação de solicitação interna que ajuda automaticamente a proteger contra ataques de injeção de XSS e HTML. No entanto, às vezes, você deseja desabilitar explicitamente a validação de solicitação, como se você quiser permitir que os usuários publiquem conteúdo HTML (por exemplo, em entradas de blog ou conteúdo CMS). Agora você pode adicionar um atributo AllowHtml a modelos ou modelos de exibição para desabilitar a validação de solicitação por propriedade durante a associação de modelo. Para obter mais informações sobre validação de solicitação, consulte os seguintes recursos:
No ASP.NET MVC 3, você pode adicionar modelos de projeto, mecanismos de exibição e estruturas de projeto de teste de unidade à caixa de diálogo Novo Projeto .
ASP.NET modelos de scaffolding do MVC 3 fazem um trabalho melhor de identificar propriedades de chave primária em modelos e lidar com elas adequadamente do que em versões anteriores do MVC. (Por exemplo, os modelos de scaffolding agora garantem que a chave primária não seja scaffolded como um campo de formulário editável.)
Por padrão, os scaffolds Criar e Editar agora usam o Html.EditorFor
auxiliar em vez do Html.TextBoxFor
auxiliar. Isso melhora o suporte para metadados no modelo na forma de atributos de anotação de dados quando a caixa de diálogo Adicionar Exibição gera uma exibição.
Novas sobrecargas de método foram adicionadas para os LabelFor
métodos auxiliares e LabelForModel
. As novas sobrecargas permitem especificar ou substituir o texto do rótulo.
No ASP.NET MVC 3, você pode indicar se deseja que uma classe de controlador use o estado da sessão e, nesse caso, se o estado da sessão deve ser leitura/gravação ou somente leitura. Para obter mais informações sobre o suporte ao controlador sem sessão, consulte Notas sobre a versão do MVC 3.
Você pode usar o atributo AdditionalMetadata para preencher o ModelMetadata.AdditionalValues
dicionário de uma propriedade de modelo. Por exemplo, se um modelo de exibição tiver uma propriedade que deve ser exibida apenas para um administrador, você poderá anotar essa propriedade, conforme mostrado no exemplo a seguir:
public class ProductViewModel
{
[AdditionalMetadata("AdminOnly", true)]
public string RefundCode {get; set;}
}
Esses metadados são disponibilizados para qualquer modelo de exibição ou editor quando um modelo de exibição de produto é renderizado. Cabe a você interpretar as informações de metadados.
O modelo AccountController no projeto da Internet foi muito aprimorado.
Um novo Modelo de Projeto da Intranet está incluído, que habilita a Autenticação do Windows e remove o AccountController.
Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmoTreinamento
Roteiro de aprendizagem
Implementar aplicativos de finanças e operações - Training
Planeje e projete sua metodologia de projeto para implementar com êxito aplicativos de finanças e operações com serviços do Microsoft FastTrack, gerenciamento de dados e muito mais.