Partilhar via


Notas de versão do NuGet 3.0 Preview

Notas de versão do NuGet 2.9 RC | Notas de versão do NuGet 3.0 Beta

O NuGet 3.0 Preview foi lançado em 12 de novembro de 2014 como parte da versão Visual Studio 2015 Preview. Lançamos o NuGet 3.0 Preview. Este é um grande lançamento para nós (embora uma prévia), e estamos animados para começar a receber feedback sobre nossas mudanças.

Visual Studio 2012+

Este NuGet 3.0 Preview está incluído no Visual Studio 2015 Preview. Estamos a trabalhar para lançar versões de pré-visualização para o Visual Studio 2012 e o Visual Studio 2013 muito em breve. Anteriormente, compartilhamos nossa intenção de descontinuar as atualizações para o Visual Studio 2010 e tomamos essa difícil decisão.

Nova interface do usuário

A primeira coisa que você nota sobre o NuGet 3.0 Preview é nossa nova interface do usuário. Não é mais um diálogo modal; agora é uma janela de documento completa do Visual Studio. Isso permite que você abra a interface do usuário para vários projetos (e/ou a solução) ao mesmo tempo, rasgue a janela para outro monitor, encaixe-a como quiser, etc.

A nova interface do usuário do NuGet

Além das diferenças de usabilidade por causa do abandono da caixa de diálogo modal, também temos muitos recursos novos na nova interface do usuário.

Seleção de versão

Talvez o recurso de interface do usuário mais solicitado seja permitir a seleção de versão para instalação e atualização do pacote - isso já está disponível.

Seleção de versão do pacote

Se você estiver instalando ou atualizando um pacote, o menu suspenso de versão permite que você veja todas as versões disponíveis para o pacote, com algumas versões notáveis promovidas para o topo da lista para facilitar a seleção. Você não precisa mais usar o Console do PowerShell para obter versões específicas que não são as mais recentes.

Fluxos de trabalho combinados instalados/online/atualizações

Nossa interface do usuário anterior tinha 3 guias para Instalado, Online e Atualizações. Os pacotes listados eram específicos para esses fluxos de trabalho e as ações disponíveis também eram específicas para os fluxos de trabalho. Embora isso parecesse lógico, ouvimos que muitos de vocês se confundiam frequentemente com essa separação.

Agora temos uma experiência combinada, onde você pode instalar, atualizar ou desinstalar um pacote, independentemente de como você selecionou o pacote. Para ajudar com fluxos de trabalho específicos, introduzimos agora um menu suspenso de filtros que permite filtrar os pacotes visíveis, assegurando que as ações disponíveis para o pacote se mantêm consistentes.

Desinstalar um pacote

Utilizando o filtro "Instalado", é possível ver facilmente os seus pacotes instalados, quais têm atualizações disponíveis e, em seguida, desinstalar ou atualizar o pacote alterando a seleção de versão para modificar a ação disponível.

Atualizar um pacote

Consolidação de versões

É comum ter o mesmo pacote instalado em vários projetos dentro da sua solução. Às vezes, as versões instaladas em cada projeto podem se separar e é necessário consolidar as versões em uso. O NuGet 3.0 Preview apresenta um novo recurso apenas para este cenário.

A janela de gerenciamento de pacotes no nível da solução pode ser acessada clicando com o botão direito do mouse na solução e escolhendo Gerenciar pacotes NuGet para solução. A partir daí, se você selecionar um pacote instalado em vários projetos, mas com versões diferentes em uso, uma nova ação "Consolidar" ficará disponível. Na captura de tela abaixo, Newtonsoft.Json foi instalado no SamplesClassLibrary com a versão 6.0.4 e foi instalado no SamplesConsoleApp com a versão 5.0.4.

Consolidar versões

Aqui está o fluxo de trabalho para consolidação em uma única versão.

  1. Selecione o Newtonsoft.Json pacote na lista
  2. Escolha Consolidate a partir da Action lista pendente
  3. Utilize a lista suspensa Version para selecionar a versão a ser consolidada
  4. Marque as caixas para os projetos que devem ser consolidados nessa versão (observe que os projetos que já estão na versão selecionada ficarão acinzentados)
  5. Clique no Consolidate botão para executar a consolidação

Pré-visualizações da Operação

Independentemente da operação que você está executando--install/update/uninstall--, a nova interface do usuário agora oferece uma maneira de visualizar as alterações que serão feitas no seu projeto. Esta visualização mostrará todos os novos pacotes que serão instalados, pacotes que serão atualizados e pacotes que serão desinstalados, juntamente com pacotes que permanecerão inalterados durante a operação.

No exemplo abaixo, podemos ver que a instalação do Microsoft.AspNet.SignalR resultará em algumas alterações no projeto.

Pré-visualização Instalando o SignalR

Opções de Instalação

Usando o Console do PowerShell, você teve controle sobre algumas opções de instalação notáveis. Agora também trouxemos esses recursos para a interface do usuário. Agora você pode controlar o comportamento de resolução de dependência para saber como as versões das dependências são selecionadas.

Comportamento de dependência

Você também pode especificar a ação a ser executada quando os arquivos de conteúdo de pacotes entrarem em conflito com os arquivos já em seu projeto.

Ação de conflito de arquivo

Rolagem infinita

Costumávamos receber bastante feedback sobre a nossa interface de utilizador, que possuía tanto o paradigma de rolagem quanto o de paginação ao listar pacotes. Era muito comum ter que rolar até a parte inferior da lista curta, clicar no número da próxima página e, em seguida, rolar novamente. Com a nova interface do usuário, implementamos a rolagem infinita na lista de pacotes para que você só precise rolar - não mais paginação.

Rolagem infinita

Faça funcionar, torne-o rápido, torne-o bonito

Estamos entusiasmados em lançar esta nova interface do usuário para você experimentar. Durante este marco da Pré-visualização, temos seguido o bom e velho adágio de "Faça funcionar, faça rápido, torne bonito". Nesta prévia, alcançamos a maior parte desse primeiro objetivo - ele funciona. Sabemos que ainda não é muito rápido, e sabemos que ainda não é muito bonito. Confie que estaremos trabalhando nesses objetivos até o lançamento do RC. Enquanto isso, gostaríamos de ouvir seus comentários sobre a usabilidade da nova interface do usuário - os fluxos de trabalho, as operações e como é usar a nova interface do usuário.

Há algumas funções que removemos em comparação com a interface do usuário antiga. Uma delas foi intencional e a outra simplesmente não foi feita a tempo.

Pesquisando "Todos" os códigos-fonte de pacotes

A interface do usuário antiga permitia que você realizasse uma pesquisa de pacotes em todas as fontes de pacotes. Removemos esse recurso na interface do usuário e não o traremos de volta. Esse recurso é usado para executar operações de pesquisa em todas as fontes do pacote, entrelaçar os resultados e tentar ordenar os resultados com base na sua seleção de classificação.

Descobrimos que a relevância da pesquisa é realmente difícil de integrar. Já imaginou fazer uma pesquisa no Google e no Bing e entrelaçar os resultados? Além disso, esse recurso era lento, fácil de usar acidentalmente e acreditamos que raramente era realmente útil. Devido aos problemas que o recurso introduziu, recebemos uma série de relatórios de bugs sobre ele que nunca poderiam ter sido corrigidos.

Atualizar tudo

Costumávamos ter um botão "Atualizar tudo" na interface do usuário antiga que ainda não está lá na nova interface do usuário. Vamos ressuscitar este recurso para o nosso lançamento RC.

Nova API Cliente/Servidor

Além de todos os novos recursos em nossa nova interface do usuário de gerenciamento de pacotes, também estamos trabalhando em alguns detalhes de implementação para o protocolo cliente/servidor do NuGet. O trabalho que fizemos foi criar a "API v3" para o NuGet, que é projetada em torno da alta disponibilidade para cenários críticos, como restauração de pacotes e instalação de pacotes. A nova API é baseada em REST e Hypermedia e selecionamos JSON-LD como nosso formato de recurso.

Nos bits do NuGet 3.0 Preview, você vê uma nova fonte de pacote chamada "preview.nuget.org" na lista suspensa de origem do pacote. Se você selecionar essa fonte de pacote, usaremos nossa nova API para nos conectarmos a nuget.org. Disponibilizamos a fonte de visualização na interface do usuário enquanto continuamos a testar, revisar e melhorar a nova API. No NuGet 3.0 RC, essa nova fonte de pacote baseada em API v3 substituirá a fonte de pacote "nuget.org" baseada em v2.

Apesar do investimento que estamos colocando na API v3, fizemos com que todos esses novos recursos também funcionassem com nosso protocolo API v2 existente, o que significa que eles também funcionarão com fontes de pacotes existentes além nuget.org.

Novas funcionalidades a caminho

Entre agora e o RTM 3.0, também estamos trabalhando em alguns novos recursos fundamentais do NuGet, além do que você vê na interface do usuário. Aqui está uma pequena lista de áreas de investimento salientes:

  1. Estamos fazendo uma parceria com as equipes do Visual Studio e do MSBuild para aprofundar o NuGet na plataforma.
  2. Estamos a trabalhar para abandonar as convenções de pacote durante a instalação e, em vez disso, aplicar essas convenções durante o processo de empacotamento, introduzindo um novo manifesto de pacote "definitivo".
  3. Estamos trabalhando para refatorar a base de código do NuGet para tornar os componentes de cliente e servidor reutilizáveis em domínios diferentes além do gerenciamento de pacotes no Visual Studio.
  4. Estamos investigando a noção de "dependências privadas", onde um pacote pode indicar que ele tem dependências em outros pacotes apenas para detalhes de implementação, e essas dependências não devem ser apresentadas como dependências de nível superior.

Fique atento

Por favor, fique de olho em nosso blog para mais progresso e anúncios para NuGet 3.0!