O Rider 2021.3 vem com suporte oficial para o .NET 6 SDK, incluindo o recurso Hot Reload. Ele traz uma barra de ferramentas principal totalmente reformulada, a aba Debug e uma nova janela de ferramentas Problems View. O Rider também oferece suporte a mais recursos C# 10, como namespaces com escopo de arquivo e diretivas de uso global, para ajudar você a usar os recursos de linguagem mais recentes da maneira mais eficaz.
Ele também inclui atualizações para suporte a Unity e F#, Reformat and Cleanup ao salvar, a opção XAML Preview para os SDKs .NET 6, .NET 5 e .NET Core 3.x, e suporte para chips Apple Silicon.
O Rider 2021.3 fornece suporte oficialmente para o SDK .NET 6, incluindo:
O Rider também oferece suporte inicial para projetos Xamarin iOS e Xamarin Android que fazem parte do SDK .NET 6.
O Rider suporta o recurso Hot Reload do .NET 6! Quando você modificar o código-fonte gerenciado na sua aplicação enquanto ela está em execução, o Rider perguntará se você deseja aplicar essa alteração à aplicação em execução sem reiniciá-la. Observe a barra de notificação amarela Sources are modified na parte superior do editor de texto. Se você aceitar a alteração, sua aplicação será atualizada imediatamente, e será possível continuar trabalhando com a aplicação atualizada.
O recurso Hot Reload é habilitado automaticamente ao usar as configurações de execução .NET Project e .NET Launch Settings Profile.
Há uma nova página dedicada para habilitar e desabilitar o recurso Hot Reload: Preferences/Settings | Build, Execution, Deployment | Hot Reload.
Limitações:
Saiba mais: Hot Reload para .NET 6 no Rider 2021.3
A antiga barra de ferramentas principal tinha alguns problemas que queríamos eliminar. Havia muitos ícones, e a maioria deles quase nunca eram usados. O VCS e a funcionalidade de navegação não eram detectáveis. E o mais importante, não era possível controlar múltiplas configurações de execução.
O Rider 2021.3 vem com uma barra de ferramentas principal completamente reformulada. Com o novo design, tentamos fornecer uma barra de ferramentas limpa, mas ainda funcional, para os nossos usuários. Ela inclui o seguinte:
No entanto, como não queremos interromper o fluxo de usuários do Rider que já estão confortáveis usando a barra de ferramentas antiga, a nova versão será habilitada por default apenas nas novas instalações do Rider. Se você já tem o Rider instalado, mas deseja experimentar a nova barra de ferramentas, pode habilitá-la a qualquer momento em View | Appearance | Toolbar em vez de em Toolbar Classic.
Ter todos os problemas potenciais de uma solução em um só lugar pode ser útil, e é por isso que temos o prazer de apresentar a Problems View. A Problems View (a aba Problems na UI do Rider) é uma janela de ferramentas que agrega todos os possíveis problemas existentes em uma solução, como erros de carregamento de projeto, processos de restauração do NuGet com falha, inspeções de um arquivo aberto e todos os erros de SWEA. A janela de ferramentas consiste de três abas.
Aqui, você pode encontrar todos os erros, avisos, sugestões e dicas que a análise de código do Rider encontrou no arquivo com o qual você está trabalhando. Ela funciona da mesma maneira que nos nossos IDEs baseados em IntelliJ – o widget Inspection localizado na parte superior da barra de rolagem vertical leva diretamente a essa aba.
Essa aba agrega todos os diagnósticos e mensagens relacionadas às atividades de carregamento da solução, processos de restauração do NuGet e assim por diante. Para cada problema, ela oferece uma descrição adequada e uma lista correspondente de correções, se houver. Antes, era necessário abrir a janela de ferramentas Event Log para encontrar detalhes para esses tipos de mensagens de diagnóstico.
Este é o novo destino da janela de ferramentas SWEA. Aqui, você pode ver todos os erros que a SWEA (Solution Wide Error Analysis) encontrou em toda a solução.
Introduzimos a nova janela de ferramentas Bookmarks, destinada a substituir uma instância semelhante: Favorites.
Quando você adiciona um bookmark, por default, o Rider o coloca no nó com o nome do seu projeto na janela de ferramentas Bookmarks. Cada vez que você adicionar um novo bookmark, ele aparecerá no topo da lista dentro desse nó. Você também pode criar novos nós e arrastar e soltar itens neles.
Uma nova UI está chegando na aba Debug! Temos muitas mudanças sobre as quais conversar.
Por default, existem três abas: Threads & Variables, Console e Debug Output. Outras abas, como Memory e Parallel Stacks, estão ocultas, mas você pode mostrá-las por meio do menu Options (o ícone de engrenagem à direita).
Removemos completamente a barra de ferramentas à esquerda e transferimos os ícones que estavam localizados nela para a barra de ferramentas superior ou para o menu de contexto. Para manter a barra de ferramentas superior a mais compacta possível, reordenamos o conjunto de ícones e deixamos apenas as ações mais importantes visíveis. O restante dos ícones foram movidos para o menu suspenso More (o ícone de pontos verticais). O ícone Hide Frames from Libraries e o botão de alternância Hide/Show Threads foram movidos para o menu de contexto na exibição Threads.
O menu suspenso More tem um novo submenu Settings. Aqui, você pode encontrar uma lista das configurações mais comuns relacionadas ao depurador sem ter que procurá-las acessando a caixa de diálogo Settings/Preferences e detalhando a navegação na página Build, Execution, Deployment | Debugger.
Existem dois layouts: maximizado e minimizado. No layout minimizado, a exibição Variables mostra o resultado da execução apenas na variável $result
. No layout maximizado, além da variável $result
, você pode ver o histórico das linhas executadas anteriormente, bem como seus resultados. É possível alternar entre os layouts usando o ícone Expand/Collapse.
A opção Add Watch foi movida da exibição Variables para a barra de ferramentas da janela Immediate e agora tem um atalho, Ctrl+Shift+Enter.
A nova opção Stop on Breakpoints força o processo de computação a parar nos pontos de interrupção ao executar uma expressão. Desabilitar essa opção permitirá que o processo de computação ignore os pontos de interrupção.
Para deixar a computação de um objeto com muitas propriedades mais conveniente, adicionamos aqui um ícone Evaluate que abre a janela Evaluate com esse objeto já computado. É muito mais fácil ver as propriedades do objeto como uma árvore nessa janela.
Boas notícias para os desenvolvedores UWP: é possível iniciar um projeto UWP com o depurador anexado imediatamente. Você não precisa mais executar o projeto primeiro e depois anexar manualmente o depurador ao processo em execução.
Agora, você pode depurar aplicativos .NET (Core) e .NET Framework em contêineres Docker locais para Windows. Antes, o depurador funcionava apenas com aplicações .NET Core em contêineres Docker para Linux.
Ao criar um delegado padrão (System.Func
ou System.Action
), você pode navegar facilmente até um método ou uma expressão lambda que será encapsulada pelo delegado. Confira o link Navigate do nó do delegado na lista Variables.
Quando você cria um manipulador de eventos
(delegate
) usando uma expressão Lambda, o novo visualizador permite que você investigue os assinantes e objetos capturados mais de perto.
O manipulador de eventos agora tem um nó Subscribers com um subnó Captured variables. Para navegar rapidamente até onde um evento foi assinado, adicionamos um novo link Navigate para cada assinante.
O Rider continua a adicionar mais recursos para C#10. Hoje temos o prazer de anunciar o suporte a namespaces com escopo por arquivo, ao 'using' global, ao atributo CallerArgumentExpression
, ao conceito de "manipuladores de strings interpoladas" e a lambdas do C# 10.
Vamos começar falando dos namespaces com escopo por arquivo. Além de oferecer suporte à nova sintaxe propriamente dita, adicionamos uma nova opção de Estilo de sintaxe que permite selecionar o estilo desejado (Settings/Preferences | Editor | Code Style | C# | Syntax Style | Code body | Namespaces). Quando você escolher um estilo, o Rider lhe mostrará o resultado de inspeções pelo código que terá que ser mudado para seguir o estilo e lhe sugerirá as correções rápidas apropriadas. Você pode propagar as correções por todo o projeto ou até por toda a solução com apenas um clique.
Agora há duas ações de contexto que permitem a você voltar o seu código ao estilo anterior de sintaxe: Convert to file-scoped namespace e Convert to block-scoped namespace.
Saiba mais em: Namespaces com Escopo por Arquivo
Agora vamos dar uma olhada rápida nos 'using' globais. A análise de código do Rider é sensível a instâncias de 'using' com a palavra-chave global e usa essas instâncias para resolver os símbolos corretamente em todos os arquivos de código do projeto. O Rider também avisará se um 'using' global tiver sido colocado no lugar errado em um arquivo.
O Rider realçará como não utilizado instâncias de 'using' global que não estiverem sendo usadas no projeto e oferecerá uma correção rápida para remover a declaração.
O Rider traz um amplo suporte ao atributo CallerArgumentExpression
, incluindo complementação e inspeções de código, para ajudar você a usar esse atributo adequadamente.
Saiba mais em: CallerArgumentExpression
O C# 10 introduziu o novo conceito de "manipuladores de strings interpoladas". Para os usuários finais, isto significa que expressões de interpolação de strings geralmente funcionam mais rapidamente no .NET 6 e que os novos manipuladores também tornam possível usar valores Span<char>
em lacunas de interpolação. Para os programadores de bibliotecas, este recurso permite controlar se expressões de interpolação de strings são ou não convertidas em strings. O Rider 2021.3 reconhece o padrão de "manipuladores de strings interpoladas" no código da biblioteca e agora pode sugerir usar expressões de interpolação de strings em mais lugares com segurança.
O Rider ajuda você a obter o melhor desempenho com record
structs, sugerindo que você os marque como readonly
. Para evitar atulhar as declarações de tipo com modificadores sem necessidade, esta inspeção só é mostrada quando o tipo record
tiver membros de instância não mutantes e não houver mutações através de setters na solução (requer a análise habilitada em toda a solução).
O C# 10 permite que você simplifique um pouco a sintaxe da correspondência de padrões por permitir o acesso com a sintaxe de pontos em vez do aninhamento de padrões de objeto.
O Rider oferece a inspeção correspondente a essa sintaxe com uma correção rápida, e também uma ação de contexto para desfazer essa correção rápida.
E por último, mas não menos importante:
Program
como nome de classe gerado válido para código com declarações top-level. static abstract
em interfaces. A análise do código considera essa construção válida, o que significa que você não terá mais que lidar com código vermelho. O recurso Generate missing members é sensível a membros do tipo static abstract
e lida com eles corretamente. Esta versão também inclui marcas de medianiz herdadas e a capacidade de navegar até símbolos de base ou derivados. Não é raro que as pessoas copiem trechos de código de outros recursos, como stackoverflow.com. Atualmente, com os tipos de referência anuláveis disponíveis no C#, algumas amostras de código já incluem a sintaxe NRT. Mas e se você não tiver a NRT ativada na sua solução? O Rider tem duas novas correções rápidas para ajudar você a se livrar dessa sintaxe depois de incorporar esse código ao seu projeto: Replace with JetBrains.Annotations attributes e Remove nullable annotations without ‘#nullable’ context.
Ocasionalmente, pode haver discordâncias na possibilidade de ser anulável entre os argumentos de tipo e suas restrições de anulação. Agora há correções rápidas para esses casos, incluindo as que:
notnull
dos argumentos de tipo.Está disponível uma correção rápída em massa para anotações em parâmetros com valores default anuláveis em todo um arquivo, projeto ou solução.
Há também uma correção rápida em massa que torna um parâmetro anulável se for verificado se ele é nulo dentro de um método.
Acrescentamos algumas novas correções rápidas e uma ação de contexto para funções locais ou anônimas do tipo static com closures:
Há uma nova inspeção, Simplify string interpolation, com uma correção rápida correspondente, que substitui as chamadas de método .PadLeft()
e .PadRight()
com expressões de alinhamento dentro de espaços reservados para strings interpoladas.
Além de adicionar o novo record struct
do C# 10, também aprimoramos nosso suporte para structs regulares. Muitos desenvolvedores ainda usam classes com inicializadores de objetos em seus DTOs. Agora você pode transformar rapidamente todos esses usos em construtores com parâmetros. Isso pode ser feito na própria declaração record
ou de qualquer inicializador de objeto. Observe que DTOs que definem um construtor com atribuição de propriedades também podem ser convertidos.
Já há algum tempo, o Rider alerta você a respeito de bloqueios inconsistentes em campos. Nesta versão, acrescentamos uma inspeção complementar que também leva em conta a ordem de vários recursos bloqueados, informando a você sobre possíveis ciclos de deadlock.
Agora o Rider verifica a plausibilidade de expressões aritméticas quanto a tipos adicionais de números inteiros, como byte
, sbyte
, short
, ushort
, uint
, long
, ulong
e enum
. Isto ajuda você a evitar branches inalcançáveis no código.
Reduzimos o tempo que demora para executar correções rápidas e ações de contexto quando invocadas para uma pasta, projeto ou solução.
Se a opção Solution-Wide Error Analysis (SWEA) estiver ativa em Monitor warnings, o Rider agora usará os resultados da SWEA para simplesmente pular os arquivos sem os problemas correspondentes, reduzindo em muito o tempo gasto procurando problemas a corrigir.
Também temos boas notícias para aqueles que não executam a SWEA nas suas soluções! O Rider agora utiliza todos os núcleos de CPU disponíveis para executar a análise de código em paralelo. Isto reduz o tempo total de execução de correções rápidas e ações de contexto de escopo.
Melhoramos significativamente o desempenho do daemon em arquivos que contêm métodos muito grandes, tais como:
switch
. Melhoramos o suporte para injeções de linguagem SQL. Agora, oferecemos suporte a muitos casos comuns em que você escreve código SQL dentro do código C#.
As strings de consulta SQL são resolvidas corretamente para métodos string.Format
, interpolações de string e concatenações de string simples.
Não ocorrem mais erros quando variáveis SQLParameter
para parâmetros dentro de strings de consulta SQL são usadas com o dialeto Microsoft SQL Server ou a biblioteca Dapper.
Este lançamento traz atualizações importantes no suporte do Rider para Arquivos de Definição de Assembly. Você pode usar Ctrl+Clique para navegar até uma referência, encontrar usos de definições de assembly em todo o projeto, até mesmo em pacotes referenciados, renomear definições de assembly e obter complementação ao adicionar novas referências.
O Rider também trabalhará com referências baseadas em GUID, exibindo uma dica útil com o nome da definição do assembly de destino, bem como ações Alt+Enter para converter entre referências nomeadas e baseadas em GUID.
Agora, o Rider realçará “define constraints” não atendidas em Arquivos de Definição de Assembly. Isso torna mais fácil saber por que um assembly foi excluído. Você ainda obtém complementação para símbolos define
.
A configuração de version defines também ficou mais fácil, com complementação para nomes de pacotes e uma dica embutida para a versão atualmente instalada. O Rider também realçará o símbolo se a condição não for atendida.
Agora, o Rider mostrará os arquivos de origem de pacotes Unity referenciados em um contexto especial que fornece informações sobre quais símbolos foram definidos quando os pacotes foram compilados. Isto significa que os arquivos fonte serão mostrados com os branches de pré-processador corretos realçados.
O atributo [Tooltip]
do Unity fornece texto que o Inspetor pode mostrar ao editar campos. O Rider também mostrará esse texto como parte do pop-up Quick Documentation sempre que você estiver usando um campo serializado. Há também uma nova ação de contexto para criar a dica de ferramenta a partir da documentação XML, e vice-versa.
O suporte do Rider para depuração em dispositivos iOS via USB foi atualizado para funcionar com o Apple Silicon, e este lançamento também inclui suporte para Linux.
O índice de ativos agora procura em pacotes referenciados, o que significa que o Rider pode encontrar usos de código em prefabs com base em ativos em pacotes.
O rastreamento de metarquivos foi completamente reescrito para lidar com mais casos de uso. Ele deve funcionar sem percalços quando você adicionar, remover, renomear, mover ou refatorar arquivos na janela de ferramentas Unity Explorer.
Este lançamento também fornece uma série de correções, como a atualização do índice de ativos quando o arquivo está sendo atualizado por certos tipos de aplicações externas, abertura de arquivos do Unity no Apple Silicon e atualização da análise do Burst para corresponder às alterações no compilador Burst. Também melhoramos o desempenho do Rider ao procurar versões instaladas do Unity e atualizar a janela de ferramentas de visualização do log do Unity.
Se você adicionar testes ao seu jogo com a framework de testes Unreal Engine, o Rider agora poderá iniciar testes e exibir seus resultados na janela de ferramentas Unit Test. Nessa janela de ferramentas, você pode revisar os resultados dos testes e executar novamente qualquer um que desejar: testes específicos, testes com falha ou todos. Você também pode agrupar testes pelos flags transmitidos a eles.
O Rider for Unreal Engine está avançando da demonstração pública prévia para o lançamento final. Por enquanto, ele ainda é uma demonstração prévia gratuita como um build separado do Rider que está disponível mediante o envio de um formulário.
Agora, a opção XAML Preview funciona para aplicações direcionadas aos SDKs .NET 6, .NET 5 e .NET Core 3.x. Você pode visualizar os resultados de qualquer alteração feita no código XAML diretamente no Rider.
Introduzimos a configuração Reformat and Cleanup on Save. Esse recurso permite que o seu código seja reformatado e organizado sempre que você invocar explicitamente Save ou Save All no IDE. Nenhum dos gatilhos implícitos de salvamento, como build, mudança para outra aba e commit, fará com que o código seja reformatado. Em vez disso, o Rider adicionará o documento modificado a uma lista interna de arquivos a serem limpos e reformatados no próximo salvamento explícito. Esperamos que esse recurso ajude você a manter seu código limpo e organizado e evite que você tenha que se preocupar com isso.
Para habilitar e ajustar essa configuração, acesse Preferences/Settings | Tools | Actions on Save. Aqui, você pode selecionar o perfil de limpeza que será usado. A lista dos perfis disponíveis é herdada da página Preferences/Settings | Editor | Code Cleanup. Você também pode especificar se a ação deve ser aplicada a todo o arquivo ou apenas às linhas alteradas.
Além disso, o recurso Reformat and Cleanup on Save respeita a configuração Do not format. Para especificar os arquivos e diretórios que devem ser excluídos da formatação, use a aba Preferences/Settings | Editor | Code Style | Formatter.
O recurso Reformat and Cleanup funciona para múltiplos arquivos e diretórios selecionados na janela de ferramentas Solution Explorer.
Adicionamos novas opções ao formatador:
if()
e while()
. if()
, foreach()
e assim por diante. Ela está ATIVADA por default. x is Foo or Bar or Baz
. Começando com o SDK .NET 5, você pode configurar as opções do analisador do Visual Studio com arquivos AnalyzerConfig globais. O Rider 2021.3 pode ler as informações de estilo de código desses arquivos AnalyzerConfig globais e usá-las para ajustar as regras do Rider de acordo.
O Rider permite que você atualize seus pacotes npm para a versão mais recente diretamente a partir do editor! Abra seu arquivo package.json, coloque o cursor na versão do pacote que você deseja atualizar e depois pressione Alt+Enter e selecione Update ‘nome do pacote’ to the latest version. Uma correção rápida também será exibida quando você passar o mouse sobre a versão do pacote. Mais detalhes sobre os motivos por detrás dessa inspeção podem ser encontrados nesta postagem do nosso blog.
Melhoramos o funcionamento da complementação de código em HTML. Sempre que você digitar um nome de tag ou uma abreviação no editor, ou invocar a complementação de código, o Rider mostrará sugestões relevantes imediatamente. Antes, ele só mostrava essas sugestões se você digitasse um <
. Além disso, a complementação de código para referências de entidades de caracteres deve funcionar melhor agora.
O Rider pode gerar Binding Redirects para pacotes NuGet em projetos do .NET Framework. Se os Binding Redirects forem necessários no seu projeto, o Rider os adicionará ao arquivo App.config ou Web.config.
Binding Redirects são gerados quando um pacote NuGet é instalado ou atualizado. No entanto, você pode pedir ao Rider para gerar os Binding Redirects manualmente a qualquer momento via Tools | Generate Binding Redirects, localizado no menu de contexto do projeto dentro da janela de ferramentas Solution Explorer.
Há uma nova propriedade, Auto-Generate Binding Redirects, na aba Applications da página Properties do projeto. Ela solicitará que o MSBuild gere Binding Redirects enquanto o projeto está sendo construído se não houver redirecionamentos no arquivo App.config.
Além de adicionar suporte para Binding Redirects, implementamos uma pequena melhoria de UX (experiência do usuário). Agora, você pode desinstalar pacotes NuGet diretamente da janela de ferramentas Solution Explorer.
A partir deste lançamento, o Rider é executado nativamente em computadores Mac com processadores Apple Silicon. O Rider 2021.3 usa os seguintes runtimes:
Não há mais conversão de x64 para ARM64! Agora, o Rider é super rápido com chips da Apple!
A maior novidade é que o Rider agora oferece suporte oficialmente a F# 6! Neste lançamento, você também encontrará muitas atualizações de qualidade para complementação de código, refatoração e navegação, junto com várias outras melhorias no suporte para a linguagem F#.
A refatoração Introduce Variable recebeu algumas atualizações poderosas. Agora, ela sugere que você desconstrua tuplas e tipos union
de caso único quando necessário e também sugere o uso de tipos de computação em expressões de computação. Além disso, ela recomenda as palavras-chave use
e use!
quando aplicável, e nós melhoramos a colocação de vínculos adicionados.
Este lançamento contém uma série de atualizações para complementação de código, incluindo uma ordem melhor de sugestões e filtragem de palavras-chave com base no contexto inicial (algumas palavras-chave não aparecem mais quando não são aplicáveis). O uso recursivo de funções F# agora é mais fácil, pois você não precisa voltar e adicionar manualmente rec
à função que o contém.
Há outra atualização importante para complementação de código. Ao complementar padrões de caso em union, o Rider sugerirá que você use a correspondência de padrões para seus campos.
Novos ícones nos resultados de Find Usages ajudarão você a distinguir invocações, aplicações parciais, padrões e outros tipos de uso.
Agora, o Rider permite que você estenda adequadamente sua seleção dentro de strings interpoladas. Special thanks to Andrew Rublyov for this contribution! O comportamento de seleção para _
e vários tipos de colchetes também foi aprimorado.
Implementamos uma série de pequenas correções rápidas, refatorações e outras melhorias no suporte à linguagem F#. Please take a look at the full release notes for more information.
Há uma nova métrica Code Vision: Covering tests. Essa métrica será exibida se o Rider tiver as informações de cobertura do projeto e se o método (ou a propriedade, o indexador ou o evento) for coberto por pelo menos um teste.
Ela pode ser habilitada ou desabilitada na página Settings/Preferences | Editor | Code Vision.
Agora, é possível iniciar testes de unidade em uma janela pop-up que aparece quando você clica na linha de cobertura no lado esquerdo do editor de código.
O plug-in dotTrace permite coletar dados em chamadas assíncronas no macOS e Linux. Para obter esses dados, use o modo de profiling do Timeline. A árvore de chamadas Call Tree mostra as chamadas assíncronas, incluindo awaits e continuations.
O plug-in dotTrace pode fazer profiling de processos filho de aplicações no macOS e Linux no modo de profiling do Timeline. Esse suporte só está disponível para aplicativos que usem .NET 5 ou mais recente.
Adicionamos algumas novas marcas de medianiz para ajudar você a navegar rapidamente através da estrutura de herança de uma classe, interface ou struct. Os novos ícones ↑O
e ↑I
mostram respectivamente quando uma entidade de código herda ou implementa outra classe ou interface. Se a herança dessa entidade de código for complexa, ao se clicar em um desses ícones aparecerá um menu com todos os ancestrais acima daquela entidade, até o topo da hierarquia de herança. Se uma classe implementar ou herdar uma interface e uma classe ao mesmo tempo, o Rider mostrará um ícone ↑IO
na medianiz.
Além disso, nesta versão ativamos por default as marcas de medianiz para membros de classes. O Rider adicionará o ícone ↓O
na medianiz à esquerda de um membro de classe se este for sobreposto em classes derivadas. Clicar nesse ícone:
Agora você pode chamar o Find Usages para operadores operator
de conversão implícita definidos pelo usuário! A implementação deste recurso é baseada no mecanismo usado para dicas de conversão de tipos.
Este recurso permite que você descubra se operadores operator
de conversão implícita definidos pelo usuário estão sendo usados ou não, e depois navegar até os blocos de código com as conversões.
Tenha em mente que este algoritmo não é rápido e pode demorar bastante para calcular os resultados e mostrá-los.
Adicionamos a capacidade de mostrar uma visualização agregada (Aggregate) para um intervalo de células. Este é um recurso aguardado há muito tempo que ajudará você a gerenciar os seus dados e evitará que você tenha que criar consultas adicionais! Isto torna o editor de dados mais poderoso e fácil de usar, deixando-o um passo mais próximo das planilhas do Excel e do Google.
Basta selecionar o intervalo de células cuja exibição você deseja mostrar e depois clicar com o botão direito e selecionar Show Aggregate View.
Esta versão é uma continuação lógica da anterior, que introduziu a capacidade de gerar uma fonte de dados DDL com base numa fonte de dados real. Agora, esse workflow tem suporte total. Você pode:
Apenas como lembrete, uma fonte de dados DDL é uma fonte de dados virtual cujo esquema é baseado num conjunto de scripts de SQL. Armazenar esses arquivos no Sistema de Controle de Versões (VCS) é uma maneira de manter o seu banco de dados sob o VCS.
Há uma nova aba DDL mappings nas propriedades de configuração dos dados. Nessa aba, você pode definir qual fonte de dados real será mapeada para cada fonte de dados DDL.
A nova janela Database Diff está disponível no menu de contexto. Ela tem uma UI melhorada que mostra claramente no painel direito o resultado que você obterá depois de executar a sincronização.
A legenda do painel direito mostra o que significam as cores em relação ao resultado em potencial:
A aba Script Preview mostra o script de resultado, que pode ser aberto num novo console ou executado a partir deste diálogo. O resultado desse script é aplicar alterações para fazer o banco de dados à direita (o destino) ser uma cópia do banco de dados à esquerda (a origem).
Além da aba Script preview, há mais duas abas no painel inferior: Object Properties Diff e DDL Diff. Elas exibem a diferença entre as versões específicas do objeto na origem e nos bancos de dados de destino.
Este lançamento traz várias novas configurações para a caixa de diálogo Project Properties:
A tabela na caixa de diálogo Solution Properties tem uma nova coluna Dependencies para especificar as dependências de build para cada projeto. Alguns dos projetos estão desabilitados na seleção para evitar dependências circulares.
A partir do lançamento 2021.3, o Rider importa todos os arquivos .pubxml
de Properties/PublishProfiles quando um projeto é carregado e os converte em configurações de execução. Sempre que você adiciona um novo arquivo .pubxml
, uma nova configuração de execução é gerada automaticamente. Você não precisa mais criar essas configurações de execução manualmente.
Há um seletor de runtimes explícito para especificar o runtime que será usado para rodar a aplicação. A lista depende do sistema operacional usado, mas a lista completa contém.NET/.NET Core
, .NET Framework
e Mono
.
Agora, você pode ajustar a lista de complementação de código para filtrar itens de acordo com o atributo EditorBrowsable. Basta selecionar o comportamento desejado na página Preferences | Editor | General | Code Completion em Filter members by EditorBrowsable attribute.
Conforme solicitado, tornamos possível alterar o tamanho da fonte em todas as abas abertas simultaneamente com ⌘ + roda do mouse no macOS ou Ctrl + roda do mouse no Windows e Linux. Para habilitar essa recurso, acesse Preferences/ Settings | Editor | General, escolha Change font size with Command + Mouse Wheel in e selecione All editors. Se você selecionar Active editor, o atalho mudará o tamanho da fonte apenas no arquivo em que você está trabalhando no momento.