Compartilhar via


Notas de versão prévia do NuGet 3.0

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

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

Visual Studio 2012+

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

Nova interface do usuário

A primeira coisa que você percebe sobre o NuGet 3.0 Preview é a nossa nova interface do usuário. Não é mais uma caixa de 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, mova a janela para outro monitor, encaixe-a como desejar, etc.

A nova interface do usuário do NuGet

Além das diferenças de usabilidade devido ao 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 agora está disponível.

Seleção de versão do pacote

Se você estiver instalando ou atualizando um pacote, a lista suspensa de versões permite que você veja todas as versões disponíveis para o pacote, com algumas versões notáveis colocadas no 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 de Instalação, Online e Atualizações

Nossa interface do usuário anterior tinha três guias para Instalação, 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 frequentemente se confundiam com essa separação.

Agora temos uma experiência combinada, em que você pode instalar, atualizar ou desinstalar um pacote, independentemente de como você selecionou o pacote. Para ajudar com os fluxos de trabalho específicos, agora temos a lista suspensa de Filtros que permite filtrar os pacotes visíveis, mas as ações disponíveis para o pacote permanecem consistentes.

Desinstalar um pacote

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

Atualizar um pacote

Consolidação de versão

É comum ter o mesmo pacote instalado em vários projetos em 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 esse 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 na SamplesClassLibrary com a versão 6.0.4 e na 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 na Action lista suspensa
  3. Utilize a Version lista suspensa 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 estarão esmaecedos)
  5. Clique no Consolidate botão para executar a consolidação

Pré-visualizações de operação

Independentemente de qual operação você está executando, instalar/atualizar/desinstalar, a nova interface do usuário agora oferece uma maneira de visualizar as alterações que serão feitas em 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 ficarã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.

Versão prévia da instalação do 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 arquivos de conteúdo de pacotes entram em conflito com arquivos já em seu projeto.

Ação de conflito de arquivo

Rolagem Infinita

Recebíamos bastante feedback sobre nossa UI possuir os paradigmas de rolagem e 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 rolar novamente. Com a nova interface do usuário, implementamos a rolagem infinita na lista de pacotes para que você só precise rolar, sem mais paginação.

Rolagem Infinita

Faça Funcionar, Faça Rápido, Faça Bonito

Estamos animados para lançar essa nova interface do usuário para você experimentar. Durante este marco da Prévia, estamos seguindo o bom e velho ditado: "Faça funcionar, torná-lo rápido, torná-lo bonito". Nesta prévia, atingimos a maior parte desse primeiro objetivo: ela funciona. Sabemos que ainda não é muito rápido, e sabemos que ainda não é muito bonito. Confie que estaremos trabalhando nessas metas desde agora até a versão candidata a lançamento (RC). Enquanto isso, adoraríamos ouvir seus comentários sobre a usabilidade da nova interface do usuário: os fluxos de trabalho, as operações e a sensação de usar a nova interface do usuário.

Há algumas funções que removemos quando comparadas à interface do usuário antiga. Um deles foi intencional, e o outro não foi feito a tempo.

Pesquisando em todas as fontes de pacotes

A interface do usuário anterior permitia que você pesquisasse pacotes em todas as suas fontes de pacotes. Removemos esse recurso na interface do usuário e não o traremos de volta. Esse recurso era usado para realizar operações de pesquisa em todas as suas fontes de pacotes, integrar os resultados e tentar ordenar os resultados com base na seleção de ordenação.

Descobrimos que a relevância dos resultados de pesquisa é muito difícil de conciliar. Você poderia imaginar a realização de uma pesquisa no Google e no Bing e tecendo os resultados juntos? 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 vários 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 esse recurso para nossa versão do RC.

Nova API de 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 é criar a "API v3" para o NuGet, que foi 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ê verá uma nova fonte de pacote chamada "preview.nuget.org" na lista suspensa de origem do pacote. Se você selecionar essa origem do pacote, usaremos nossa nova API em vez de se conectar ao 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 origem do 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 de API v2 existente, o que significa que eles trabalharão com fontes de pacote existentes diferentes de nuget.org também.

Novos recursos chegando

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

  1. Estamos fazendo parceria com as equipes do Visual Studio e do MSBuild para que o NuGet se aprofunde na plataforma.
  2. Estamos trabalhando para abandonar as convenções de pacotes aplicadas durante a instalação e, em vez disso, aplicá-las durante o empacotamento, introduzindo um novo "manifesto de pacote" autoritário.
  3. Estamos trabalhando para refatorar a base de código do NuGet para tornar os componentes do cliente e do 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" em que 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 exibidas como dependências de nível superior.

Fique ligado

Fique de olho em nosso blog para obter mais progresso e comunicados para o NuGet 3.0!