Notas de Lançamento do ASP.NET e Ferramentas Web 2013.2 para Visual Studio 2013

por Microsoft

Notas de Instalação

ASP.NET e Web Tools para Visual Studio 2013.2 vêm incluídos no instalador principal e podem ser descarregados como parte da Atualização 2 do Visual Studio 2013.

Documentação

Tutoriais e outras informações sobre ASP.NET e Ferramentas Web para Visual Studio 2013.2 estão disponíveis no site da ASP.NET.

Requisitos de software

ASP.NET e as Ferramentas Web para Visual Studio 2013.2 requerem o Visual Studio 2013.

Novas funcionalidades em ASP.NET e ferramentas web para Visual Studio 2013.2

As secções seguintes descrevem as funcionalidades introduzidas no comunicado.

Modelos de Projeto Único do ASP.NET

  • Atualizações nos modelos de projeto do ASP.NET para suportar a confirmação de conta e a redefinição de palavra-passe.
  • Atualize ASP.NET modelo de API Web para suportar autenticação usando Contas Organizacionais On-Premises.
  • O modelo ASP.NET SPA contém agora autenticação baseada em vistas MVC e do lado do servidor. O modelo tem um controlador WebAPI que só pode ser acedido por utilizadores autenticados.

Suportar SSL ao lançar Aplicações Web no IIS Express

Para eliminar o aviso de segurança ao navegar e depurar HTTPS no localhost, adicionámos um diálogo para permitir que o Internet Explorer e o Chrome confiem no certificado SSL expresso do IIS auto-assinado.

Por exemplo, uma propriedade de projeto web pode ser definida para usar SSL. Clique em F4 para abrir o diálogo de propriedades. Alterar SSL ativado para verdadeiro. Copie a URL SSL.

Propriedade Habilitada por SSL

Defina a aba 'web' na página de propriedades do projeto para usar a URL baseada em HTTPS (A URL SSL será https://localhost:44300/, a menos que já tenha criado sites SSL anteriormente).

Definir URL do Projeto (HTTPS)

Prima CTRL+F5 para executar a aplicação. Siga as instruções para confiar no certificado auto-assinado que o IIS Express gerou.

Aviso SSL

Leia a janela de Aviso de Segurança e depois clique em Sim se quiser instalar o certificado que representa o localhost.

Aviso de Segurança

O site será mostrado no IE ou Chrome sem o aviso de certificado no navegador.

Página HTTPS sem avisos

O Firefox usa a sua própria loja de certificados, por isso irá mostrar um aviso.

Melhorias no Visual Studio Web Editor

  • Novo item de projeto JSON e editor: Adicionámos um item de projeto JSON e um editor ao Visual Studio. As funcionalidades atuais do editor JSON incluem colorização, validação de sintaxe, completamento de braçadeiras, contorno, definição de opções de ferramentas e muito mais.

    JSON Editor

    O IntelliSense suporta agora JSON Schema v3 e v4. Existe uma caixa de combinação de esquemas para selecionar esquemas existentes, editar o caminho local do esquema ou simplesmente arrastar e soltar um ficheiro JSON do projeto para obter o caminho relativo.

    Intellisense JSON Editor de esquemas JSON

  • Novo editor Sass (SCSS): Adicionámos LESS no VS2013 RTM, e agora temos um editor e item de projeto Sass. As funcionalidades do editor Sass são comparáveis ao editor LESS, incluindo colorização, variáveis e IntelliSense Mixins, comentário/descomentário, informação rápida, formatação, validação de sintaxe, esboço, definição de goto, seletor de cores, definição de opções, etc.

    Adicionar Novo Item: Folha de Estilo SCSS Editor de folhas de estilo

  • Novo seletor de URL em documentos HTML, Razor, CSS, LESS e Sass: O VS 2013 foi lançado sem seletor de URLs fora das páginas Web Forms. O novo seletor de URL para editores HTML, Razor, CSS, LESS e Sass é um seletor de digitação fluente e livre de diálogos que compreende '..' e filtra adequadamente as listas de ficheiros para etiquetas e ligações.

    Captura de ecrã de um novo Seletor de entrada fluente e sem janela de diálogo que filtra as listas de ficheiros adequadamente. O exemplo ilustra ligações de imagens. Captura de ecrã de um novo Seletor de entrada fluente e sem janela de diálogo que filtra as listas de ficheiros adequadamente. O exemplo ilustra ligações HTML. Captura de ecrã de um novo Seletor para editores CSS que filtra as listas de ficheiros adequadamente para etiquetas IMG e ligações.

  • Atualizações do editor LESS adicionando mais funcionalidades

  • Atualização do Knockout Intellisense: Adicionámos uma sintaxe não padrão do KnockOut para o intelliSense do VS: "ko-vs-editor viewModel:". Pode ser usado para atribuir a múltiplos modelos de visualização numa página usando comentários na forma:

    Knockout Intellisense

    Também adicionámos suporte para o IntelliSense aninhado do ViewModel, para que possa explorar objetos profundamente aninhados no ViewModel.

    <div data-bind="text: foo.bar.baz.etc" />

    O IntelliSense apresentado é o IntelliSense completo do Objeto JavaScript.

    Mostrar o objeto JavaScript completo no Intellisense

  • Novo seletor de URL em documentos HTML, Razor, CSS, LESS e Sass: VS 2013 foi lançado sem seletor de URL fora das páginas Web Forms. O novo seletor de URL para editores HTML, Razor, CSS, LESS e Sass é um seletor que permite uma digitação fluida e livre de diálogos, compreendendo '..' e filtra as listas de ficheiros adequadamente para tags IMG e ligações.

    Captura de ecrã de um novo Selector de digitação fluente, sem caixa de diálogo, que filtra as listas de ficheiros adequadamente para etiquetas i m g e links. Captura de ecrã de um novo Selector fluente e sem caixa de diálogo que filtra as listas de ficheiros adequadamente, mostrando os links h t m l. Captura de ecrã do novo Selector de digitação fluente e sem caixa de diálogo para editores c s s que filtra as listas de ficheiros adequadamente para etiquetas i m g e links.

  • O Browser Link agora suporta ligações HTTPS e irá listá-las no Dashboard com outras ligações, desde que o certificado seja confiável pelo navegador.
  • Mapeamento estático de fontes HTML
  • Suporte SPA para mapeamento de dados
  • Atualização automática dos dados de mapeamento

Suporte para Azure App Service Web Apps em Visual Studio

Crie recursos remotos Azure ao criar um novo projeto Web

Adicionámos uma caixa de seleção "Criar Recursos Remotos" no Azure no novo diálogo da aplicação web. Ao escolhê-lo, poderá integrar a experiência de criar uma nova aplicação web, configurar o site de publicação do Azure para testes e criar um perfil de publicação em poucos passos simples.

Novo Projeto com recursos do Azure Publicação no Azure

Melhorias na Publicação Web

  • Melhorar a experiência do utilizador na publicação.

ASP.NET Andaimes

  • Suporte ao enum: Se o teu modelo estiver a usar Enums, então o Scaffolder MVC gerará um menu suspenso para Enum. Isto utiliza os ajudantes Enum no MVC.
  • Suporte ao Bootstrap: Os templates do EditorFor no MVC Scaffolding foram atualizados para que usem as classes do Bootstrap.
  • Suporte a pacotes: MVC e Web API Scaffolders vão adicionar pacotes 5.1 para MVC e Web API

As capturas de ecrã seguintes demonstram modelos de andaimes.

  • Código do modelo:

    Código modelo

  • Compila o código do modelo, clica com o botão direito e seleciona Adicionar, Novo Item Estruturado.

    Adicionar Novo Item Estruturado

  • Escolha o Controlador MVC5 com vistas, usando o Entity Framework:

    Adicionar novo controlador MVC5 com vistas

  • Adicionar Controlador usando o modelo:

    Captura de ecrã do diálogo Adicionar Controlador, com a classe Model selecionada e o campo da classe de contexto Data selecionado e destacado.

  • Verifique o código gerado, por exemplo Views/WeekdayModels/Edit.cshtml contém @Html.EnumDropDownListFor: View containing EnumDropDownListFor

  • Execute a página para ver a combobox de enum gerada, note que se um valor puder ser nulo, pode escolher uma string vazia para a caixa de combinação. Por exemplo, a página Criar mostra o seguinte:

    Caixa combinada que permite cadeia de caracteres vazia

NuGet 2.8.1

O NuGet 2.8.1 RTM será lançado em abril de 2014. Aqui estão os pontos principais das notas de lançamento, mas por favor consulte as notas completas para mais informações sobre estas alterações.

  • Aplicações Target para Windows Phone 8.1: O NuGet 2.8.1 agora suporta o direcionamento para aplicações Windows Phone 8.1 usando os nomes de framework de destino 'WindowsPhoneApp', 'WPA', 'WindowsPhoneApp81' e 'WPA81'.

  • Resolução de Patches para Dependências: Ao resolver dependências de pacotes, a NuGet implementou historicamente uma estratégia de selecionar a versão maior e menor de pacotes mais baixa que satisfaz as dependências do pacote. Ao contrário da versão principal e secundária, no entanto, a versão do patch foi sempre resolvida para a versão mais alta. Embora o comportamento tenha sido bem intencionado, criou uma falta de determinismo para a instalação de pacotes com dependências.

  • DependencyVersion Switch: Embora o NuGet 2.8 altere o comportamento padrão para resolver dependências, também adiciona um controlo mais preciso sobre o processo de resolução de dependências através do switch -DependencyVersion na consola do gestor de pacotes. O switch permite resolver dependências para a versão mais baixa possível (comportamento padrão), a versão mais alta possível ou a versão secundária ou patch mais alta. Essa opção só funciona para install-package no comando powershell.

  • Atributo DependencyVersion: Para além do -DependencyVersion switch detalhado acima, o NuGet também permitiu a capacidade de definir um novo atributo no ficheiro nuget.config definindo qual é o valor padrão, caso o -DependencyVersion switch não esteja especificado numa invocação do install-package. Esse valor também será respeitado pela caixa de diálogo do Gestor de Pacotes NuGet para qualquer operação de instalação de pacotes. Para definir este valor, adicione o atributo abaixo ao seu ficheiro nuget.config:

    <config> <add key="dependencyversion" value="Highest" /> </config>

  • Visualizar Operações NuGet com -WhatIf: Alguns pacotes NuGet podem ter grafos de dependência profundos e, por isso, pode ser útil, durante uma operação de instalação, desinstalação ou atualização, ver primeiro o que irá acontecer. O NuGet 2.8 adiciona o switch -what if padrão do PowerShell aos comandos install-package, uninstall-package e update-package para permitir visualizar toda a cadeia de pacotes à qual o comando será aplicado.

  • Pacote de Downgrade: Não é incomum instalar uma versão pré-lançamento de um pacote para investigar novas funcionalidades e depois decidir voltar à última versão estável. Antes do NuGet 2.8, esse era um processo de várias etapas para desinstalar o pacote de pré-lançamento e suas dependências e, em seguida, instalar a versão anterior. Com o NuGet 2.8, no entanto, o pacote de atualização agora reverterá todo o fechamento do pacote (por exemplo, a árvore de dependência do pacote) para a versão anterior.

  • Dependências de Desenvolvimento: Muitos tipos diferentes de capacidades podem ser entregues como pacotes NuGet – incluindo ferramentas usadas para otimizar o processo de desenvolvimento. Estes componentes, embora possam ser fundamentais no desenvolvimento de um novo pacote, não devem ser considerados uma dependência do novo pacote quando este for posteriormente publicado. O NuGet 2.8 permite que um pacote se identifique como uma dependência de desenvolvimento no ficheiro .nuspec. Quando instalados, estes metadados serão também adicionados ao ficheiro packages.config do projeto onde o pacote foi instalado. Quando esse ficheiro packages.config for posteriormente analisado para dependências NuGet durante nuget.exe pack, excluirá essas dependências marcadas como dependências de desenvolvimento.

  • Ficheiros packages.config Individuais para Diferentes Plataformas: Ao desenvolver aplicações para múltiplas plataformas alvo, é comum ter ficheiros de projeto diferentes para cada um dos respetivos ambientes de construção. Também é comum consumir diferentes pacotes NuGet em diferentes arquivos de projeto, pois os pacotes têm diferentes níveis de suporte para diferentes plataformas. O NuGet 2.8 oferece suporte melhorado para este cenário, criando diferentes ficheiros de packages.config para ficheiros de projeto específicos de cada plataforma.

  • Recurso à Cache Local: Embora os pacotes NuGet sejam normalmente consumidos a partir de uma galeria remota, como a galeria NuGet usando uma ligação de rede, existem muitos cenários em que o cliente não está ligado. Sem uma conexão de rede, o cliente NuGet não foi capaz de instalar pacotes com êxito - mesmo quando esses pacotes já estavam na máquina do cliente no cache NuGet local. O NuGet 2.8 adiciona fallback automático de cache ao console do gestor de pacotes.

    O recurso de fallback de cache não requer argumentos de comando específicos. Além disso, a funcionalidade de fallback do cache funciona atualmente apenas no console do gerenciador de pacotes - esse comportamento não está funcionando na caixa de diálogo do gerenciador de pacotes.

  • Correções de Bugs: Uma das principais correções foi a melhoria de desempenho no comando update-package -reinstall.

    Além desses recursos e da correção de desempenho acima mencionada, esta versão do NuGet também inclui muitas outras correções de bugs. No total, foram abordados 181 problemas no lançamento. Para uma lista completa dos itens de trabalho corrigidos no NuGet 2.8, consulte o NuGet Issue Tracker desta versão.

ASP.NET Web Forms

ASP.NET MVC 5.1.2

ASP.NET Web API 2.1.2

ASP.NET Páginas Web 3.1.2

Estrutura de Entidades 6.1

O Entity Framework foi atualizado para a versão 6.1 tanto para tempo de execução como para ferramentas. Entity Framework (EF) 6.1 é uma atualização menor do Entity Framework 6 e inclui várias correções de bugs e novas funcionalidades. Para informações detalhadas sobre o EF6.1, incluindo ligações para a documentação das novas funcionalidades, consulte Histórico de Versões do Entity Framework. As novas funcionalidades desta versão incluem:

  • A consolidação de ferramentas fornece uma forma consistente de criar um novo modelo EF. Esta funcionalidade estende o assistente ADO.NET Entity Data Model para suportar a criação de modelos Code First, incluindo engenharia reversa a partir de uma base de dados existente. Estas funcionalidades estavam anteriormente disponíveis em qualidade Beta nas EF Power Tools.
  • A gestão de falhas de commit de transações fornece o novo System.Data.Entity.Infrastructure.CommitFailureHandler que utiliza a recém-introduzida capacidade de intercetar operações de transação. O CommitFailureHandler permite a recuperação automática de falhas de conexão durante o commit de uma transação.
  • O IndexAttribute permite especificar índices colocando um atributo numa propriedade (ou propriedades) no seu modelo Code First. O Code First criará então um índice correspondente na base de dados.
  • A API pública de mapeamento fornece acesso à informação que a EF possui sobre como as propriedades e tipos são mapeados para colunas e tabelas na base de dados. Em versões anteriores, esta API era interna.
  • Capacidade de configurar interceptores através do ficheiro App/Web.config (permitindo adicionar interceptores sem necessidade de recompilar a aplicação).
  • O DatabaseLogger é um novo interceptor que facilita o registo de todas as operações da base de dados num ficheiro. Em combinação com a funcionalidade anterior, isto permite-lhe ativar facilmente o registo das operações de base de dados de uma aplicação implementada, sem necessidade de recompilar.
  • A deteção de alterações no modelo de migrações foi melhorada para que as migrações em andaimes sejam mais precisas; O desempenho do processo de deteção de alterações também foi significativamente melhorado.
  • Melhorias de desempenho incluem redução das operações na base de dados durante a inicialização, otimizações para comparação de igualdade nula em consultas LINQ, geração mais rápida de visualizações (criação de modelo) em mais cenários e materialização mais eficiente de entidades rastreadas com múltiplas associações.

ASP.NET Identidade 2.0.0

  • Autenticação de dois fatores: ASP.NET Identity agora suporta autenticação de dois fatores. A autenticação de dois fatores oferece uma camada extra de segurança às suas contas de utilizador caso a sua palavra-passe seja comprometida. Existe também proteção para ataques de força bruta contra os códigos de dois fatores.

  • Bloqueio da Conta: Proporciona uma forma de bloquear o utilizador se este introduzir incorretamente a sua palavra-passe ou códigos de dois fatores. O número de tentativas inválidas e a duração de bloqueio para os utilizadores podem ser configurados. Um programador pode, opcionalmente, desativar o bloqueio da conta para certas contas de utilizador, caso seja necessário.

  • Confirmação da Conta: O sistema ASP.NET Identity agora suporta Confirmação de Conta. Este é um cenário bastante comum na maioria dos sites hoje em dia, onde, ao registar uma nova conta no site, é obrigado a confirmar o seu email antes de poder fazer qualquer coisa no site. A Confirmação por Email é útil porque previne a criação de contas falsas. Isto é extremamente útil se estiver a usar o email como forma de comunicar com os utilizadores do seu site, como fóruns, bancos, comércio eletrónico ou redes sociais.

  • Reposição de Palavra-Passe: O Reset de Palavra-passe é uma funcionalidade em que o utilizador pode redefinir as suas palavras-passe caso a tenha esquecido.

  • Carimbo de Segurança (Sair em todo o lado): Suporta uma forma de regenerar o Token de Segurança para o utilizador em casos em que o utilizador altera a sua palavra-passe ou qualquer outra informação relacionada com segurança, como remover um login associado (como Facebook, Google, Conta Microsoft, entre outros). Isto é necessário para garantir que quaisquer tokens gerados com a palavra-passe antiga sejam invalidados. No projeto de exemplo, se alterar a palavra-passe do utilizador, gera-se um novo token para o utilizador e quaisquer tokens anteriores são invalidados. Esta funcionalidade oferece uma camada extra de segurança à sua aplicação, pois ao alterar a sua palavra-passe, será desconectado de todos os locais (todos os outros navegadores) onde iniciou sessão nesta aplicação.

  • Tornar o tipo de Chave Primária extensível para Utilizadores e Papéis: No ASP.NET Identity 1.0, o tipo de chave primária para Utilizadores e Papéis da tabela eram strings. Isto significa que, quando o sistema ASP.NET Identity foi mantido no SQL Server usando o Entity Framework, estávamos a usar nvarchar. Houve muitas discussões sobre esta implementação padrão no Stack Overflow e com base no feedback recebido. Disponibilizámos um gancho de extensibilidade onde pode especificar qual deve ser a chave principal da sua tabela de Utilizadores e Papéis. Este hook de extensibilidade é particularmente útil se estiver a migrar a sua aplicação e se a aplicação armazenava os UserIds como GUIDs ou inteiros.

  • Suporte ao IQueryable em Utilizadores e Papéis: Suporte adicionado para o IQueryable na UsersStore e na RolesStore permite obter facilmente a lista de Utilizadores e Papéis.

  • Suportar a operação de eliminação através do UserManager

  • Indexação no Nome de Utilizador: Na implementação ASP.NET Identity Entity Framework, adicionámos um índice único ao Nome de Utilizador usando o novo IndexAttribute no EF 6.1.0. Isto garante que os nomes de utilizador são sempre únicos e que não existe uma condição de corrida em que se possa acabar com nomes de utilizador duplicados.

  • Validador de Passwords Melhorado: O validador de palavra-passe fornecido em ASP.NET Identity 1.0 era um validador de palavra-passe bastante básico que validava apenas o comprimento mínimo. Há um novo validador de palavra-passe que lhe dá mais controlo sobre a complexidade da palavra-passe. Por favor, note que, mesmo que ative todas as definições desta palavra-passe, incentivamos a ativar a autenticação de dois fatores para as contas de utilizador.

  • IdentityFactory Middleware/ CreatePerOwinContext:

    • Gestor de Utilizadores: Pode usar a implementação de fábrica para obter uma instância do UserManager a partir do contexto OWIN. Este padrão é semelhante ao que usamos para obter o AuthenticationManager do contexto OWIN para LogIn e LogOut. Esta é uma forma recomendada de obter uma instância do UserManager por pedido para a aplicação.
    • DbContextFactory: O ASP.NET Identity utiliza o Entity Framework para armazenar o sistema de Identity no SQL Server. Para isso, o Sistema de Identidade tem uma referência ao ApplicationDbContext. O Middleware DbContextFactory devolve uma instância do ApplicationDbContext por pedido que pode usar na sua aplicação.
  • Pacote NuGet de Exemplos do ASP.NET Identity: O pacote NuGet de Exemplos pode facilitar a instalação e execução de exemplos para o ASP.NET Identity e o seguimento das melhores práticas. Este é um exemplo ASP.NET aplicação MVC. Por favor, modifique o código para se adequar à sua aplicação antes de implementar isto em produção. A amostra deve ser instalada numa aplicação ASP.NET vazia. Para mais informações sobre o pacote, consulte o seguinte artigo no blog: Anunciando o RTM da ASP.NET Identity 2.0.0

Componentes Microsoft OWIN

Houve muitos bugs que foram corrigidos nesta versão.

ASP.NET SignalR 2.0.2

Houve muitos bugs que foram corrigidos nesta versão. Por favor, consulte as notas de lançamento da versão 2.0.2 para informações mais detalhadas.