Estou testando o R# com o Visual Studio 2010. Estou trabalhando num exemplo de uma aplicação de ASP.Net MVC com IronRuby pro próximo post, que sai daqui a pouco, e olha a feliz surpresa. Eu tinha este código:

foreach (var itemParaCriar in criarPedido.ItensParaCriar)
{
    var produto = RepositorioProduto.ObterPorId(itemParaCriar.IdProduto);
    var itemPedido = new ItemPedido
                         {
                             Produto = produto,
                             Quantidade = itemParaCriar.Quantidade
                         };
    pedido.Adicionar(itemPedido);
} 

O R# sugeriu uma mudança, algo relacionado com o LINQ. Vejam o resultado:

foreach (var itemPedido in from itemParaCriar in criarPedido.ItensParaCriar
                           let produto = RepositorioProduto.ObterPorId(itemParaCriar.IdProduto)
                           select new ItemPedido
                                      {
                                          Produto = produto, Quantidade = itemParaCriar.Quantidade
                                      })
{
    pedido.Adicionar(itemPedido);
}

Chato né? Ele entendeu que podia trabalhar todo o corpo do foreach dentro de uma expressão LINQ.

A imagem abaixo mostra isso acontecendo (clique para ampliar):

Viva o Resharper! 

Eu já gostava do R#, agora então…


Postado na(s) categoria(s) Visual Studio pelo Giovanni Bassi em 19 de janeiro de 2010 às 17:22 | Tags: ,

image A Microsoft acaba de liberar o segundo beta do Visual Studio 2010, 5 meses depois da liberação do primeiro, que foi em Maio. Quem tem assinatura MSDN (MSDN Subscription) pode baixar online agora. Quem não tem deve aguardar até depois de amanhã (21/10) quando ele estará disponível a todos. O lançamento final será em 22 de Março de 2010. A versão liberada hoje permite ir para produção com o código.

Esta versão já virá com suporte para desenvolvimento com ASP.Net MVC, Azure, e melhorias no desenvolvimento com Silverlight, entre outras coisas. Talvez algumas novidades com relação a Office 2010 (incluindo Sharepoint) também, mas preciso confirmar. Há grandes melhorias na performance do Beta 1 para o Beta 2 também.

Uma grande novidade anunciada é que as versões (SKUs) do Visual Studio foram alteradas. A versão Standard morreu, assim como as versões Team System. Sobrou uma versão Professional, com ou sem MSDN subscription, uma versão premium (com MSDN) e uma versão Ultimate (com MSDN). Veja aqui os detalhes do que entra em cada versão (clique para ampliar):

Versões do Visual Studio 2010

O que é muito legal é que tudo indica que quem tiver MSDN Subscription com Visual Studio vai ganhar horas de computação no Azure!

Aliás, parece que o nome “Team System” já era. Eu não vi ele mais em lugar nenhum. Parece que o foco agora é falar de “Visual Studio” e não “VSTS”.

Pra quem quiser ver a instalação do Visual Studio 2010 agora, é só assistir o vídeo do Brian Keller, que acabou de ser publicado alguns minutos atrás no Channel 9. O vídeo tem só 20 minutos. Quem esteve no TechEd Brasil se lembra do Brian Keller ministrando algumas palestras de VSTS, e participando do painel (veja mais aqui).

Junto com isso tudo vem também a versão “pessoal” do Team Foundation Server, chamada de TFS Basic. A grande novidade desta versão é que dá para instalar no Vista e no 7. A idéia é substituir o Source Safe de vez, que tudo indica não vai ter mais upgrades. E parece que o TFS Workgroup já era.

E viram o logo ali em cima? É o novo logo do Visual Studio. Finalmente foi renovado, o outro ainda era o mesmo usado na época do Visual Interdev, Visual Basic e C++ 6…

Estou baixando os bits do Beta 2 agora. Você pode baixar ela aqui.

Mais novidades em breve.


Postado na(s) categoria(s) Visual Studio pelo Giovanni Bassi em 19 de outubro de 2009 às 14:17 | Tags: ,

Esses dias estávamos discutindo no .Net Architects sobre ferramentas, e sua relação custo x benefício. Em vez de me repetir, vou colocar aqui um pouco do que falei na thread, editado por brevidade. É apenas uma introdução, o que quero apresentar vem em seguida.

(…) Software é barato. Caro é hora de programação. O custo do software, se houver, dilui no custo das horas. Vamos fazer um teste de mesa rápido: um Visual Studio de R$ 2 mil reais (está por aí), e dois desenvolvedores de R$ 8 mil reais (aprox R$47,6 /h a 168 horas/mês). Se os desenvolvedores trabalharem 6 meses, fica aproximadamente 96 mil reais de hora de programação, mais 4 mil de licença, totalizando 100 mil reais. O Windows veio na máquina Dell ou HP que você comprou, OEM. O server você já deve ter, e o Team Foundation Server (TFS) vem de graça para até 5 usuários na versão workgroup. Então a hora subiu cerca de dois reais, para aproximadamente de R$ 49,6. Uma diferença de menos de 5%. E você vai poder usar o VS por mais uns anos, diluindo ainda mais. (…) Poupar na compra de licença do VS chega a ser tão absurdo quanto contratar o melhor cozinheiro do planeta e dar dez reais pra ele comprar os ingredientes. É igual a Ferrari contratar o Senna e jogar na mão dele um fusca, porque o carro é muito caro. Não faz o menor sentido.

Pois é, a produtividade do Visual Studio é absurdamente alta. Chutei o custo de mais ou menos 2 mil reais no VS, e isso pode variar, mas acho que não muito. De qualquer forma, o custo é muito baixo considerando a produtividade que ele entrega. Com 5% de custo a mais, você mais que dobra sua produtividade. Não vou nem comentar o custo de programas como o Microsoft SOL, ou as assinaturas MSDN, porque aí fica barato demais.

Todos estamos felizes com o Visual Studio, dificilmente alguém reclama da ferramenta e quando reclama é que ele consome muita memória. Que tal então ganhar pelo menos mais uns 30% de produtividade, por menos de quinhentos reais? Que tal anabolizar o Visual Studio? Pois é isso que o Resharper (R#) faz.

Eu não usava o R# até me tornar MVP. Quando fui nomeado fiquei sabendo que a JetBrains, fabricante da ferramenta, dava uma licença de graça para todos os MVPs. Já tendo ouvido falar muito da ferramenta, baixei uma versão completa de testes, gostei muito do que vi, daí pedi uma licença full. Já tens uns meses, e continuo ficando cada vez mais produtivo.

Não é brincadeira, a ferramenta aumenta pelo menos uns 30% na produtividade, mas estou desconfiado que é mais. Pra quem gosta de deixar o mouse de lado e machucar o teclado o R# é sensacional. Praticamente todos os atalhos estão ligados ao teclado, e você faz o que quiser sem colocar a mão no mouse.

Você ganha muito tempo na refatoração. Ele tem um módulo que facilita a execução de testes unitários. Tem um revisor de padrão de nomeação de variáveis. Torna os code snippets ainda mais poderosos, e acrescenta mais um monte. Auxilia na geração de código repetitivo, como implementação de interfaces (de maneira bem mais inteligente que a presente no VS), entre mais um monte de outras outras coisas. Ah, já ia esquecendo, ele habilita TDD no VS, tirando boa parte da fricção existente em uma linguagem estática, como o C#. Aliás, programar com R# faz você esquecer que o C# é uma linguagem estática, facilitando muito a refatoração, ao mesmo tempo que permite todo o poder de uma linguagem deste tipo.

Alguns exemplos:

Você renomeia uma classe, quer renomear o arquivo, basta clicar clicar na lampadinha, o R# renomeia o arquivo pra você:

R# renomeando arquivo

Esse é um dos mais legais. Você move uma classe no Visual Studio, ele percebe que ela está sob uma outra estrutura de projeto ou diretório, e sugere o rename do namespace:

R# renomeando namespaces

Ele não só renomeia os namespaces. Ele refatora todo e qualquer uso da classe, adicionando usings em todos os arquivos de classes que chamavam a classe alterada e não tinham elas nos usings ainda.

Repararam que os "usings" estão meio cinzas no exemplo anterior? É porque todo código desnecessário fica assim quando você usa o R#. Por exemplo, usar "this", ou um construtor inútil, e para remover, é só clicar na lampadinha:

R# limpando os usings

E se eu referencio uma classe que não está nos meus usings, ele percebe que ela existe, e coloca o using pra mim. Se está em outro projeto, ele já faz a referência, e adiciona o using, tudo de uma vez. Aqui referenciando uma classe no mesmo projeto.

R# consertando os usings automaticamente

Aqui a de outro projeto, onde ele mesmo adiciona a referência:

R# adicionando uma referência automaticamente

E é assim que ele habilita TDD também. Vocês viram que a segunda opção é criar uma nova Classe1, não é? Ele faz isso também com método, propriedades… Você escreve todo o código, e depois sai criando o que falta.

E a refatoração? Além do comum "Extract Method", que o VS já trás, ele tem mais alguns:

Refatorações do R#

Pouca coisa, né?

Para quem já usa, ou vai testar, tenho duas dicas de atalhos. O R# tem dezenas de atalhos pro teclado, mas há dois que você não pode esquecer. O primeiro é o ALT+Enter, que aparece na quarta figura daqui do post. Toda vez que ele percebe que você fez algo que está errado ou podia ser melhor e aparece a lampadinha amarela ou vermelha, respectivamente, é só entrar com um ALT+Enter, que ele te ajuda. O segundo é CTRL+SHIFT+R. Esse segundo trás o menu de contexto, com as refatorações possíveis no código selecionado, já com os atalhos anotados para da próxima vez você fazer direto:

Refatorando com atalho CTRL+SHIFT+R e R#

Aí é só escolher o que você precisa fazer na refatoração.

Quando estou em clientes costumo usar meu próprio Notebook, porque não é tão comum ainda o cliente ter o R#, então eu ganho em produtividade. E não é fácil programar sem ele quando você acostuma, você fica muito mais rápido… O engraçado é que é muito comum o cliente comprar o R# durante a minha consultoria. Depois de palestras também é bem comum eu ser questionado "que ferramenta é essa" que estou usando.

 

Passamos um tempão procurando melhores maneiras de codificar, estudando padrões, técnicas de acesso a dados, etc, etc. Produtividade é algo difícil de espremer, e os caras conseguiram.

O custo é bem tranquilo. A licença profissional completa (C# e VB) fica USD 350, a só de C# fica USD 250. Licenças para projetos open source são de graça. A licença pessoal vai de 50 dólares (VB) e USD 150 (C#) a USD 200 (C# e VB), e a licença acadêmica vai de zero a USD 50.

Em tempo: não ganho absolutamente nada para indicar a ferramenta. O faço porque a ferramenta é realmente excelente e realmente acho que vocês vão ganhar muito em usá-la. Para ajudar mais, eles me convidaram para fazer parte do programa de incentivo da ferramenta, então se alguém for comprar uma licença, fale comigo que consigo um cupom de 10% de desconto. Basta deixar um comentário aqui que eu entro em contato, ok? Mas antes de me pedir o cupom, baixe a ferramenta, avalie, e, se for realmente comprar, aí sim entre em contato.

Pra terminar, vejam o vídeo de uma sessão chamada Jedi coding. São só 8 minutos, onde você fica de boca aberta, o cara monta um sistema cheio de detalhes em 8 minutos. O nome "Jedi coding" não é à toa.

Quem já usa, ou vier a usar, comente aqui o que achou.


Postado na(s) categoria(s) Visual Studio pelo giovanni bassi em 18 de agosto de 2009 às 01:10 | Tags: ,

Há uma funcionalidade nova no Visual Studio 2010 Beta 1 (baixe ele aqui, tem somente 1.3 GB) chamada hierarquia de chamadas ("Call Hierarchy" no original em inglês). Essa nova funcionalidade permite analisar as chamadas feitas para um método, e a partir dele, e é extremamente útil. Era algo que no Visual Studio 2008 só era possível fazer com Resharper.

Vejam como é simples. Fiz o código a seguir:

class Program
{
    static void Main(string[] args)
    {
        var repositorio = new RepositorioCliente();
        var clientes = repositorio.ObterTodos();
        var quantidadeDeClientes = repositorio.QuantidadeDeClientes();
        Console.WriteLine("{0} clientes encontrados:", clientes.Count());
        foreach (var cliente in clientes)
        {
            Console.WriteLine("Cliente: {0}", cliente.Nome);
        }
        Console.ReadLine();
    }
}

class RepositorioCliente
{

    public int QuantidadeDeClientes()
    {
        return ObterTodos().Count();
    }

    public IEnumerable<Cliente> ObterTodos()
    {
        return new List<Cliente>()
        {
            new Cliente{Nome = "Giovanni"},
            new Cliente{Nome = "Leandro"},
            new Cliente{Nome = "Victor"}
        };
    }
}

class Cliente
{
    public string Nome { get; set; }
} 

 

(O repositório é só um exemplo, e o método QuantidadeDeClientes() é redundante de propósito.)

Imaginem que quero saber quem chamada o método ObterTodos() da classe RepositorioCliente. É simples, basta clicar com o botão direito sobre o método e selecionar "View Call Hierarchy":

Chamando o call hierarchy direto no método

Não preciso fazer isso somente sobre o método, posso também clicar sobre uma chamada do método, assim:

Chamando o call hierarchy a partir de uma chamada existente

Ao clicar, o resultado aparece na janela de Call Hierarchy. Aqui estou mostrando ela já expandida, vejam:

Janela de call hierarchy

Vejam que ela mostra onde são feitas chamadas para o método (Calls To 'ObterTodos'), e chamadas feitas a partir do método (Class From 'ObterTodos'). Podemos notar que as chamadas feitas para o método são feitas a partir do método Main(), e a partir do método QuantidadeDeClientes(). Podemos também notar que ele chama o construtor da classe Cliente e da classe List, e a propridade Nome do Cliente. Clicando duas vezes vamos às declarações destes métodos.

Se você quiser, pode ver exatamente onde a chamada é feita, vejam que à direita da janela de Call Hierarchy aparecem os "Call Sites", ou locais onde a chamadas são feitas, exibindo a linha de código do arquivo onde ela ocorre, assim como o conteúdo da linha:

Call sites no call hierarchy

Clicando sobre o Call Site, você vai à linha de código de chamada. Se houver mais de um Call site, ele é exibido.

Além disso, você pode ir encadeando as chamadas de hierarquia, simplesmente expando o treeview de chamada:

Chamadas encadeadas no call hierarchy

Vou usar muito esse negócio… o que vocês acham? Vale a pena? Vão usar?


Postado na(s) categoria(s) Visual Studio pelo giovanni bassi em 9 de agosto de 2009 às 23:59 | Tags: ,

Eu sempre disse que era a melhor. De lavada.

O Silverlight também ganhou como melhor plataforma RIA, mas empatado com o Flex. Para quem está aí como o competidor que desafia o líder de mercado (no caso o Flash), está muito bom. Ano que vem não tem mais empate!

O mais engraçado é que há uma categoria "alternativa ao office". Não há competição por software de escritório, só por "alternativas". O OpenOffice, coitado, tem que concorrer como alternativa do melhor (e ainda perdeu para o Zoho). O Google Docs, que a revista Info adora dizer que vai acabar com o Office, também ficou para trás... Na verdade, o vencedor Zoho é o primeiro perdedor, porque o vencedor mesmo nem concorre, só suas "alternativas". Deve ser duro.


Postado na(s) categoria(s) Visual Studio pelo giovanni bassi em 5 de março de 2009 às 02:57 | Tags:

Tive que resolver hoje um bug em uma aplicação que havia construído a tempos. A aplicação faz a importação de um arquivo via web, passa o arquivo para um Serviço NT e retorna. O serviço continua o processamento, em outro processo, em outra thread. A comunicação é via .Net Remoting. Funciona muito bem. Fazer o trabalho na thread do ASP.Net era garantia de bloqueio de recursos e timeout.

Só que a depuração da aplicação integrada dá um pouco de problema. Multi-threaded ainda é mais problema. Serviços NT não são exatamente simples de depurar, você passa por um processo extra. Vou mostrar aqui como se faz isso. Pode parecer óbvio, mas precisa de um pouco de conhecimento sobre o Visual Studio e sobre como threads funcionam.

Estou assumindo que o serviço NT já está instalado na máquina. Selecione a aplicação web como startup da solução, recompile a solution para garantir que o serviço NT vai compilar também. Inicie o debug da aplicação web (nas imagens diminuidas clique para ampliar):

Iniciando a depuração

Assim que a aplicação terminar de compilar:

Compilado

Inicie o serviço:

Iniciando no service.msc

Anexe o processo do Serviço:

Anexando o processo

Janela para anexar o processo

Ele vai aparecer na janela de processes:

Janela de processos com o processo anexado

Como o caso era complicado eu queria saber de qualquer exceção que acontecesse, então no Debug > Exceptions habilitei pegar qualquer exceção que fosse lançada, mesmo que fosse capturada:

Depurando todas as exceções

O serviço roda automaticamente a cada determinado tempo. Um método de verificação de importações com erros foi chamado, e ele tinha um breakpoint pré-configurado:

Breakpoint

Abri a janela:

Janela de threads

E congelei a thread de verificação:

Congelando uma thread

Ficou assim:

Thread congelada

Depois liberei a aplicação. A verificação não ia sair de onde eu queria:

Reiniciando a depuração

Fiz algumas ações na aplicação web que fariam o começo de uma importação, que também iria parar em um breakpoint do serviço. Só que em outra thread. Note a thread congelada, e note também que minhas threads de importação têm nome para facilitar a depuração.

Breakpoint em outra thread

A partir daí eu pude colocar a aplicação no estado que queria para a verificação prosseguir. Congelei então a importação, igualzinho fiz com a thread de verificação, depois soltei a thread de verificação:

Liberando a thread

Dei dois cliques sobre a thread, e o Visual Studio me levou ao código que ela estava executando. A partir daí fui depurar o que precisava. Se precisasse voltar à thread de importação era só congelar uma e começar a outra. Se você não faz isso a cada step no código que você dá ele alterna entre as threads de maneira imprevisível e a depuração fica um inferno.

Quando eu falo que o Visual Studio é a melhor IDE de desenvolvimento do planeta, eu não estou brincando. Isso é poder ou o quê?


Postado na(s) categoria(s) Visual Studio pelo giovanni bassi em 9 de fevereiro de 2009 às 11:06 | Tags:

Não é agora que eu vou apagar a minha máquina virtual com o Visual Studio Rosario. Dando uma olhada no release do Visual Studio 2010 já adianto pra vocês que as ferramentas de arquitetura que eu falei aqui não estão lá. Não sei porque, mas simplesmente não estão. É uma pena, porque o grande público vai seguir sem ver as excelentes ferramentas. Porque será?

Agora, que é legal ver o 4.0 entre os frameworks disponíveis, ah, isso é:

Visual Studio 2010

Update: Não vem não. Elas estão lá, só mudaram de lugar. Procure em File > New Project > Modeling Projects > Empty Project. Está tudo lá. Obrigado André pelo toque.


Postado na(s) categoria(s) Visual Studio , .Net pelo giovanni bassi em 28 de outubro de 2008 às 17:17 | Tags: ,

Pessoal, acabou a espera. Várias pessoas me escreveram, pedindo um outro link para baixar o Visual Studio Rosario, desde que falei sobre ele aqui, no comecinho de Julho, e a Microsoft tirou ele do ar no fim de setembro.

Pois bem, liberou:

Microsoft Pre-release Software Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview (CTP)

Se prepare, são 7 GBs. Os meus já tão vindo…


Postado na(s) categoria(s) Visual Studio pelo giovanni bassi em 28 de outubro de 2008 às 00:46 | Tags: ,

O Ayende postou algumas novidades sobre VS 2010 e .Net 4.0, mas o post sumiu. Provavelmente ele tomou um puxão de orelha por ter blogado sobre coisas confidenciais, que só vão ser liberadas no PDC. Por sorte o Google Reader manteve o post no ar, e o Ayende também não apagou as imagens, ou seja, está tudo lá. É isso aí, jogou na nuvem, nunca mais você recupera. Eu já havia falado sobre o Rosario antes, mas há coisas novas. Muitas coisas, pelo visto.

Novidades que, pelo visto, só serão liberadas no PDC:

  • Nova página inicial:

Welcome screen - VS 2010

  • Possibilidade utilizar control + roda do mouse para ampliar o texto (finalmente);
  • Variáveis dinâmicas (parece ser um pedaço do DLR);
  • O .Net 4.0 trará também um novo CLR (só temos 2 grandes CLRs lançados até hoje, o 1.0 – depois virou 1.1 - e o 2.0, o 3.0 e o 3.5 dependem do CLR 2.0).
  • Novidades que aproximam o VS do R#, como a possibilidade de trabalhar melhor com TDD, para criação automática de itens que não existem:
    image
  • Melhorias diversas na modelagem UML;

Nada sobre o OSLO e DSLs, que é algo que eu realmente estou ansioso para ver. Vão ter umas 4 ou 5 sessões de OSLO no PDC, quero ver o que finalmente vem a público. A Microsoft tem chamado o OSLO de “next big thing”. Será?

Update: O post do Ayende voltou agora. Será que é porque o PDC começa hoje?


Postado na(s) categoria(s) Visual Studio pelo giovanni bassi em 26 de outubro de 2008 às 22:19 | Tags: , ,

Quem se interessa por arquitetura e quiser saber o que vem por aí no Visual Studio Rosario Team Architect (agora já rebatizado para Visual Studio 2010) sugiro assistir a conversa no Channel 9 com o Peter Provost, desenvolvedor da divisão de arquitetura do Visual Studio (Team Architect Division).

Ele mostra que o foco em UML agora é bastante forte e, , além do diagrama de classes, conseguiremos fazer também diagrama de componentes, atividades, sequência e use cases.

No vídeo também fiquei sabendo que a Microsoft se afiliou ao OMG, e vão fazer parte da comissão de UML. Muito bom. Mais uma evidência do aumento do foco em padrões na Microsoft, do qual sempre tenho falado.

Mais info:


Postado na(s) categoria(s) Visual Studio , Arquitetura pelo giovanni bassi em 2 de outubro de 2008 às 15:13 | Tags: , , ,

Não sei se vocês já leram nos blogs lá de fora, mas a partir da próxima versão do Visual Studio o JQuery vai estar integrado. A Microsoft vai shipar o JQuery na mesma instalação, sem alterar os fontes, sem retrabalhar absolutamente nada. Inclusive com a licença open source do JQuery. Isso é uma ótima notícia para toda a comunidade pela qualidade do JQuery e estimula também quem trabalha em projetos de fonte aberto.

Quem não conhece o JQuery sugiro uma investigada. É um composto de algumas libraries de Javascript que auxilia muito no desenvolvimento desta linguagem. Além de ser excelente, é estremamente pequena em tamanho, o que facilita seu uso, já que o overhead é mínimo.

Essa introdução do JQuery vai significar melhorias na integração com o ASP.Netm melhorias no Intelisense, e até, possívelmente, utilização do JQuery nos controles de webforms. Na boa, essa é uma graaaaaaande evolução, e deve ser elogiada. A utilização de uma library open source no Visual Studio é um passo significativo, conforme disse o Ayende, autor do Rhino Mocks.

Alguns links interessantes estão abaixo. São sempre os mesmos blogueiros, jogando a notícia no ventilador:

  • Rob Conery comenta o assunto;
  • Scott Hanselman faz uma explicação mais detalhada do que se deve esperar e de JQuery. Como sempre;
  • John Resig, do próprio JQuery, da sua visão;
  • ScottGu, sempre ScottGu, vem com uma explicação bem legal também.

Segundo Rob Conery, o pai da idéia é o Scott Guthrie. Seja ou não, fato é que fará uma grande diferença. Vai popularizar bastante a library.

Bem vindo, JQuery!


Postado na(s) categoria(s) Visual Studio pelo Giovanni Bassi em 29 de setembro de 2008 às 09:51 | Tags: , ,

Terminei minha instalação. É bem tranquilo. Já vou avisando, separe pelo menos uma hora e meia, depedendo do seu PC, mais que duas horas. Demora mesmo. Mas vai. O SP1 do Visual Studio 2008, que também não era só uma coleção de correções (trazia novidades como a nova opção de Web Application, em adição ao Web Site), também demorava. Mas esse SP ganhou em espera.

Já o SQL Server 2008 fez o upgrade rápido. Meia hora depois do último clique. Aliás, já testei, e já posso adiantar que o novo SQL Server Management Studio com Intelisense é o máximo. Depois mostro aqui.

Tudo já está rodando diretinho. E você, está esperando o que?


Postado na(s) categoria(s) Visual Studio pelo giovanni bassi em 12 de agosto de 2008 às 01:43 | Tags: , ,

Acaba de sair hoje o Service Pack 1 do Framework 3.5, juntamente com o SP1 do VS 2008. Você pode baixá-los aqui e aqui. O SP do Visual Studio também pode ser baixado em formato ISO, o que te permite otimizar o download se você tem um download manager. O ISO está aqui.

Alguns links legais para quem quer saber um pouco mais sobre o release:

  1. Por que o VS 2008 SP1 não se chama VS 2009, no blog da Mary Jo Foley.
  2. Post do Somasegar, que sempre detalha bem o que está saindo de novo.

Com o SP 1 o Visual Studio 2008 passa a suportar também o SQL Server 2008. Eu havia tido problemas ao tentar instalar o SQL Server 2008, porque ele pedia o VS 2008 SP1. Imagino que agora consigo instalar. Cheguei a questionar se o RTM do SQL Server 2008 trabalhava com o Beta do VS 2008 SP1. Na verdade, os releases foram separados somente alguns dias, o que levou a essa confusão.

Já tem também alguns brasileiros falando, como o Renato Guimarães, sempre ligadaço.

O que você ganha de significativo, na minha opinião, com o SP1 para o VS 2008:

  • Melhorias no designer do WPF;
  • Suporte ao SQL Server 2008;
  • ADO.NET Entity Designer;
  • Melhorias no Visual Studio Team System Team Foundation Server (TFS), melhorando o versionamento, performance, integração de e-mail, e suporte ao SQL Server 2008;
  • Mais suporte ao javascript (mais?? inacreditável);
  • Mais AJAX.

E com o SP 1 do .Net Framework:

  • Melhorias de performance entre 20 e 45% para aplicações WPF (sem mecher no código);
  • Mais controle sobre o WCF;
  • ADO.NET Entity Framework;
  • ADO.NET Data Services;
  • Suporte às novidades do SQL Server 2008.

Há suporte ao ASP.Net MVC Preview 3. Será que o P4 funciona? Depois atualizo vocês com o que eu descobrir.

É… e eles lançaram mesmo o Entity Framework do jeito que estava. Mesmo com as criticas fortes da comunidade ao EF, não houveram grandes mudanças. Cheguei até a bater uma bola com o Otavio Pecego Coelho, arquiteto da Microsoft, no blog dele, sobre o EF. Ele ficou de colocar um exemplo mostrando que eu poderia ver as coisas de outra maneira com relação ao EF, estou aguardando.

Concordo com a Mary Jo Foley quando ela sugere chamar o VS 2008 de VS 2009. Mas acho que, na prática, ia ser difícil vender uma versão nova depois de apenas 8 meses, e esse deve ter sido um dos grandes motivos da manutenção do nome e ter feito da atualização um SP. Mas que tem muita novidade para ser um Service Pack, tem. Não é só um monte de correções de bugs, como pode-se notar. Tem um monte de coisa nova. Enfim, os nomes dos softwares relacionados ao .Net continuam confusos.

Meu SP 1 está neste momento em processo de instalação. Fiquem atentos à ferramenta de limpeza do Hotfixes do Visual Studio 2008. Vocês podem precisar dar uma faxinada no seu ambiente antes de instalar o SP 1.

E assim que terminar de instalar, vou terminar minha instalação de SQL Server 2008.

E vou matar uma VM, que agora ficou inútil, já que só servia para os testes do SP 1.

E vocês quando pretendem instalar?


Postado na(s) categoria(s) Visual Studio , .Net Framework pelo giovanni bassi em 11 de agosto de 2008 às 22:14 | Tags: , , , ,

Acabo de por as mãos no novo Visual Studio, que vai suceder o Visual Studio 2008, de codename Rosario. A Microsoft já tem uma página só para ele, onde você pode baixar uma imagem do Virtual PC com Windows Server 2003 (porque não 2008, não é?) para rodá-lo, já com SQL Server, Sharepoint e Team Foundation Server.

É o sonho de qualquer arquiteto de software que trabalhe em ambiente Microsoft (e tem ambiente melhor?). Até hoje eu uso o Visio para modelar meus casos de uso, diagramas de sequência e atividades. O diagrama de classes já existe no Visual Studio e ele é lindo, já se mantem totalmente atualizado com relação ao código, é possível adicionar métodos, propriedades e eventos, e trabalhar associação e herança. Quem lê meus artigos na .Net Magazine sabe, uso direto os diagramas para apresentar as soluções. Mas, passado este momento, sou obrigado a criar os outros diagramas no Visio. Porque? E para interagir com o resto do Team System, como o Team Foundation Server? A não ser que eu faça de cada diagrama um arquivo, não é muito fácil associar esses itens à work items (entre outros problemas).

Pois é, aí entra o novo Visual Studio. O vi anunciado no Tech-ed americano. Foi difícil acreditar no que vi. Vi um diagrama das camadas da aplicação, dentro do Visual Studio. E do Visual Studio 2008, porque eu reconheci a cara dele. Não era possível. Fui verificar na minha versão Team Suite, que tem tudo que pode ter, e não tinha. Oras, onde estava? Então descobri o Rosario.

Coloco abaixo algumas mudanças. Para começar, vejam o Add New Item. Reparem nos novos itens, como diagrama de sequência e atividades:

Add new item do Visual Studio Codename Rosario

Abaixo um diagrama de casos de uso. Como é uma versão inicial, a usabilidade ainda está bem ruinzinha, mas já dá para ver onde vai chegar. E ele está suportando inclusive os cenários de uso. Imagina você associando um use case a uma função ou grupo de funções ou classes? Ia ser lindo.

Use case no Visual Studio Codename Rosario

Abaixo há o Architecture Explorer do Visual Studio. É possível navegar por toda a solução, tipos, métodos, etc. Para criar um teste basta selecionar “Test” (vejam janela da direita). Mas cuidado, dá pau ainda (dá-lhe código alpha…). Para compor um diagrama de sequência basta selecionar “Insert into Active Diagram”. Eu fiz isso. E funciona. E é lindo. Eu nem acreditei. Veja o resultado na imagem em seguida.

Architecture Explorer do Visual Studio Codename Rosario

Esse diagrama de sequência foi feito sozinho pelo Visual Studio, analisando o código digitado. Ele verificou as interações do código e compôs o diagrama.

Sequence Diagram do Visual Studio Codename Rosario

Mais fácil atualizar a documentação impossível. Imagina que ao final do projeto você clica em um botão e fala “gera”, e do outro lado sai um PDF ou XPS prontinho. Acabou aquele problema de documentação desatualizada no final do projeto.

Enfim, vou escrever um pouco mais assim que conhecê-lo melhor e vou contando por aqui nos próximos posts.


Postado na(s) categoria(s) Arquitetura , Visual Studio pelo Giovanni Bassi em 1 de julho de 2008 às 23:49 | Tags: , , ,

Estava precisando rodar um script em uma base de dados, e por acaso era uma User Instance, e não uma base padrão do SQL Server. Vocês se lembram o que é uma user instance, certo? É uma base que fica em um arquivo MDF solitário, que não está disponível através de uma conexão padrão do SQL. Ela deve ser anexada por um código .Net. São muito comuns em projeto web, principalmente de testes, e era este mesmo esse o caso. Eu tinha uma instância de usuário e precisava rodar um script:

userinstancessqlserver

Pois bem. Sapequei o Server Explorer do Visual Studio, achei a base, e selecionei "New Query"

serverexplorernewqueryvisualstudio

Inseri o script. Foi pau atrás de pau. Pensei "Não é possível! Não dá para rodar scripts em user instances?" Dá. Veja só como:

Abra o SQL Management Studio ou a ferramenta que você achar melhor (não sendo o VS...). Conecte como admin em alguma base qualquer, pode até ser a master. Rode a seguinte query:

SELECT owning_principal_name, instance_pipe_name
FROM sys.dm_os_child_instances

Vai aparecer o seguinte nos resultados:

owning_principal_name instance_pipe_name
<Maquina>\<Usuario> \\.\pipe\C1377ECE-A57A-48\tsql\query

Essa string em instance_pipe_name é mágica. Coloque ela na string de conexão e voilà. Você está conectado:

sqlmanagementstudioconnecttoserver

Dêem uma olhada. A conexão aberta possui uma base de dados com um nome estranho. Essa é nossa base.

ConexaoRealizada

Atente que você pode ter problemas de conexão (por padrão terá). Isso pode acontecer porque o servidor não aceita conexões remotas. Para resolver, abra o surface area configuration (disponível no Start Menu), selecione "Service Area configuration for services and Connections" e ajuste para aceitar TCP e Named Pipes:

sqlsurfaceareaconfiguration

A partir daí é só rodar os scripts. Mais fácil impossível. Have fun!


Postado na(s) categoria(s) Visual Studio , SQL Server pelo Giovanni Bassi em 1 de junho de 2008 às 15:27 | Tags: , ,

Quem é Giovanni Bassi

Giovanni Bassi Sou uma pessoa apaixonada por tecnologia e especificamente por .Net. Sou consultor independente especialista em .Net, focado em arquitetura e melhores práticas. Tenho dezenas de artigos publicados na .Net Magazine, revista da qual sou editor técnico. Ministro palestras e cursos de vez em quando, e quando dá tempo eu respiro um pouco. Mais detalhes nesta página.

Busca

Selos

MVP

MCPD

MCSD

.Net Magazine

Abaixo ao if!

Calendário

«  março 2010  »
seteququsedo
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234
Ver detalhamento de posts no calendário

Blogs interessantes

    OPMLDownload OPML file

    Postagens recentes

    Comentários recentes

    Disclaimer / Aviso
    As opiniões colocadas neste blog são minhas e pessoais e não expressam necessariamente as opiniões de meus empregadores, pareceiros e amigos. Da mesma forma, os comentários feitos por leitores do blog não expressam a minha opinião.

    © Copyright 2010 .Net Unplugged
    Log in