Notas de Versão Preliminar do NuGet 3.0
Notas sobre a versão do NuGet 2.9 RC | Notas sobre a versão do Nuget 3.0 Beta
O NuGet 3.0 versão preliminar foi lançado em 12 de novembro de 2014 como parte da versão do Visual Studio 2015 versão preliminar. Lançamos o NuGet 3.0 versão preliminar. Este é um grande lançamento para nós (embora seja uma prévia), e estamos animados para começar a receber comentários sobre nossas mudanças.
Visual Studio 2012+
Este NuGet 3.0 versão preliminar está incluído no Visual Studio 2015 versão preliminar. Estamos trabalhando para obter drops de versão preliminar para Visual Studio 2012 e 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
O primeiro item que você percebe sobre o NuGet 3.0 versão preliminar é 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) de uma só vez, leve a janela para outro monitor, encaixe-a como quiser etc.
Além das diferenças de usabilidade devido ao abandono da caixa de diálogo modal, também temos muitos novos recursos 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 de pacotes. Isso já está disponível.
Se você estiver instalando ou atualizando um pacote, o menu suspenso de versão permitirá que veja todas as versões disponíveis para o pacote, com algumas versões notáveis promovidas ao 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/de 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, soubemos que muitos de vocês se atrapalhavam com essa separação.
Agora temos uma experiência combinada, em que é possível instalar, atualizar ou desinstalar um pacote, independentemente de como você o selecionou. Para ajudar nos fluxos de trabalho específicos, agora temos um menu suspenso Filtro que permite filtrar os pacotes visíveis, mas as ações disponíveis para o pacote são consistentes.
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 alterar a ação disponível.
Consolidação de versão
É 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 versão preliminar 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 no SamplesClassLibrary
com a versão 6.0.4
e instalado em SamplesConsoleApp
com a versão 5.0.4
.
Aqui está o fluxo de trabalho para consolidação em uma única versão.
- Selecione o pacote
Newtonsoft.Json
na lista - Escolha
Consolidate
na lista suspensaAction
- Use a lista suspensa
Version
para selecionar a versão na qual consolidar - Marque as caixas dos projetos que devem ser consolidados nessa versão (observe que os projetos que já estão na versão selecionada ficarão acinzentados)
- Clique no botão
Consolidate
para executar a consolidação
Visualizações da Operação
Independentemente da operação que 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 no seu projeto. Essa 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.
Opções de instalação
Usando o Console do PowerShell, você teve controle sobre algumas opções de instalação notáveis. Agora trouxemos esses recursos para a interface do usuário também. Agora você pode controlar o comportamento de resolução de dependência para saber como as versões das dependências são selecionadas.
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 que já estão em seu projeto.
Rolagem infinita
Costumávamos receber muitos comentários sobre o fato de nossa interface do usuário ter os paradigmas de rolagem e paginação ao listar pacotes. Era muito comum ter que rolar até o final 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 rolagem infinita na lista de pacotes para que você só precise rolar, sem mais paginação.
Faça funcionar, faça depressa, torne-o belo
Estamos entusiasmados em lançar esta nova interface do usuário para você experimentar. Durante este marco da versão preliminar, seguimos o bom e velho ditado de "Fazer funcionar, fazer depressa, torná-lo belo". Nesta versão preliminar, cumprimos a maior parte desse primeiro objetivo: ele funciona. Sabemos que ainda não é muito rápido ou muito belo. Saiba que trabalharemos nesses objetivos até o lançamento do 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 como é usar a nova interface do usuário.
Há algumas funções que removemos quando comparadas à interface do usuário antiga. Uma delas foi intencional e a outra simplesmente não foi concluída a tempo.
Pesquisa de "todos" os códigos-fonte do pacote
A interface do usuário antiga permitia que você realizasse uma pesquisa de pacotes em todos os códigos-fonte do pacote. 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 de pacote, reunir os resultados e tentar ordenar os resultados com base em sua seleção de classificação.
Descobrimos que a relevância da pesquisa é realmente difícil de reunir. Já imaginou fazer uma pesquisa no Google e no Bing e juntar os resultados? Além disso, esse recurso era lento e fácil de usar acidentalmente, e acreditamos que raramente era útil de fato. 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á na nova interface do usuário. Vamos ressuscitar este recurso em nossa versão 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 Hipermedia e selecionamos JSON-LD como nosso formato de recurso.
Nos bits do NuGet 3.0 versão preliminar, há uma nova fonte de pacote chamada "preview.nuget.org" na lista suspensa de origem do pacote. Se você selecionar essa origem de pacote, usaremos nossa nova API para nos conectarmos a nuget.org. Disponibilizamos a fonte de versão preliminar 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 fazendo na API v3, fizemos com que todos esses novos recursos também funcionassem com nosso protocolo API v2 existente, o que significa que eles funcionarão com fontes de pacotes existentes além nuget.org também.
Novos recursos em breve
Entre agora e a 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 importantes:
- Estamos fazendo parceria com as equipes do Visual Studio e do MSBuild para aprofundar o NuGet na plataforma.
- Estamos trabalhando para abandonar as convenções de pacote de tempo de instalação e, em vez disso, aplicar essas convenções no momento do empacotamento, introduzindo um novo manifesto de pacote "autoritativo".
- Estamos trabalhando para refatorar a base de código NuGet para tornar os componentes de cliente e servidor reutilizáveis em diferentes domínios além do gerenciamento de pacotes no Visual Studio.
- 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 apresentadas como dependências de nível superior.
Fique atento
Fique de olho em nosso blog para ver mais progresso e anúncios para o NuGet 3.0!