Visual Studio 2010 – Série de posts chega ao fim

22/11/2009 23:35
vs2010Logo


Sem dúvida o Visual Studio 2010 é uma ferramenta excepcional de desenvolvimento, por isso, estarei abordando com profundidade vários assuntos abordados na série em posts futuros (inclusive falando sobre C# 4.0, SharePoint 2010 e por aí vai).

Para quem não acompanhou a série desde o início, segue um atalho para todos os posts:

Visual Studio 2010 (parte 1) – Dependency Graph
Visual Studio 2010 (parte 2) – Layer Diagram
Visual Studio 2010 (parte 3) – Code Snippets
Visual Studio 2010 (parte 4) – IntelliTrace
Visual Studio 2010 (parte 5) – Visual Web Part
Visual Studio 2010 (parte 6) – Parallel.For
Visual Studio 2010 (parte 7) – SharePoint com novos Event Receivers
Visual Studio 2010 (parte 8) – LINQ to SharePoint
Visual Studio 2010 (parte 9) – Dynamic Objects
Visual Studio 2010 (parte 10) – Database Deployment
Visual Studio 2010 (parte 11) – Code Analysis
Visual Studio 2010 (parte 12) – Call Hierarchy
Visual Studio 2010 (parte 13) – Domain Specific Languages
Visual Studio 2010 (parte 14) – Web.config Transformation
Visual Studio 2010 (parte 15) – Performance Analysis
Visual Studio 2010 (parte 16) – InstallShield Limited Edition
Visual Studio 2010 (parte 17) – Editor Box Selection
Visual Studio 2010 (parte 18) – Extension Manager
Visual Studio 2010 (parte 19) – Web Deployment
Visual Studio 2010 (parte 20) – Dotfuscator Community Edition
Visual Studio 2010 (parte 21) – Nova propriedade ClientIDMode
Visual Studio 2010 (parte 22) – Ícones? Biblioteca de imagens?
Visual Studio 2010 (parte 23) – Test and Lab Manager
Visual Studio 2010 (parte 24) – Novas ribbons no Excel
Visual Studio 2010 (parte 25) – Samples
Visual Studio 2010 (parte 26) – IronPhyton
Visual Studio 2010 (parte 27) - Covariance e Contravariance
Visual Studio 2010 (parte 28) - Office Interop
Visual Studio 2010 (parte 29) – PLINQ
Visual Studio 2010 (parte 30) – ASP.NET AJAX 4 (Declarative instantiation)
Visual Studio 2010 (parte 31) – ASP.NET AJAX 4 (Live Bindings)
Visual Studio 2010 (parte 32) – ASP.NET AJAX 4 (Client Templates)
Visual Studio 2010 (parte 33) – ASP.NET 4 (Routing)
Visual Studio 2010 (parte 34) – ASP.NET 4
Visual Studio 2010 (parte 35) – Ajax Script Loader
Visual Studio 2010 (parte 36) – Configurando o IntelliTrace
Visual Studio 2010 (parte 37) – WPF 4 suportará multitouch
Visual Studio 2010 (parte 38) – Extensible Output Caching
Visual Studio 2010 (parte 39) – Managed Extensibility Framework (MEF)
Visual Studio 2010 (parte 40) – Power Commands
Visual Studio 2010 (parte 41) – Arquitetura da programação paralela
Visual Studio 2010 (parte 42) – Novas classes para programação paralela
Visual Studio 2010 (parte 43) – Parallel Diagnostic Tools

Espero que essa série tenha sido útil para despertar em você o interesse pela nova versão do Visual Studio.

Abraços!

Visual Studio



Visual Studio 2010 (parte 43) – Parallel Diagnostic Tools

17/11/2009 15:16

O Visual Studio 2010 oferece ferramentas de diagnóstico para debubbing e profiling.

Debugging 
Novas janelas Parallel Stacks e Parallel Tasks

Profiling
O Visual Studio Profiling Tools oferece três data views que exibem de forma gráfica, tabular e numérica informações sobre como a aplicação está executando as interações multi-threaded. Com a visão tabular é possível rapidamente identificar áreas críticas e navegar em pontos do gráfico para exibir os call stacks, call sites, e código-fonte.

Visual Studio



Visual Studio 2010 (parte 42) – Novas classes para programação paralela

17/11/2009 14:41

O .NET Framework 4.0 introduz uma série de novas classes úteis para auxiliar o suporte a programação paralela, divididas em três grupos:


Concurrent Collection Classes

System.Collections.Concurrent.BlockingCollection(T)
System.Collections.Concurrent.ConcurrentBag(T)
System.Collections.Concurrent.ConcurrentDictionary(TKey, TValue)
System.Collections.Concurrent.ConcurrentQueue(T)
System.Collections.Concurrent.ConcurrentStack(T)

Essas novas classes trazem meios de trabalharmos com collections com alta performance em cenários de onde múltiplas threads estão manipulando coleções removendo ou adicionando itens.


Synchronization Primitives

System.Threading.Barrier
System.Threading.CountdownEvent
System.Threading.ManualResetEventSlim
System.Threading.SemaphoreSlim
System.Threading.SpinLock
System.Threading.SpinWait

Permite que múltiplas threadings trabalhem com algoritmos de forma paralela.


Lazy Initialization Classes

System.Lazy(T)
System.Threading.ThreadLocal(T)
System.Threading.LazyInitializer

Controla a alocação na memória de forma que seja utilizada apenas quando necessário.

Visual Studio



Visual Studio 2010 (parte 41) – Arquitetura da programação paralela

17/11/2009 14:41

Sem dúvida uma das principais novidades do .NET Framework 4.0 é o suporte a programação paralela. Hoje é fácil constata que grande parte das máquinas roda com processadores com 2 ou 4 núcleos e com foco nessa realidade a Microsoft criou uma arquitetura que permite ao desenvolvedor definir como os recursos de processamento paralelo podem ser utilizados em suas aplicações.

Dd460693_TPL_Architecture(en-us,VS_100)

O diagrama acima ilustra as tecnologias envolvidas na versão Beta 2 do novo .NET Framework. Como um dos benefícios podemos de fato trabalhar com escalabilidade vertical ou horizontal desta arquitetura facilmente, como nunca foi possível antes.

Visual Studio



Visual Studio 2010 (parte 40) – Power Commands

17/11/2009 04:14

Presente em outras versões do Visual Studio é possível baixar essa extensão no menu Tools / Extension Manager em seguida escolhendo a opção Online Gallery / Tools / Coding, e por fim selecionando a opção Power Comands.

Os seguintes recursos estão disponíveis após a instalação:

Enable/Disable PowerCommands in Options dialog …
Format document on save / Remove and Sort Usings on save …
Clear All Panes…
Copy Path…
Email CodeSnippet…
Insert Guid Attribute…
Show All Files…
Undo Close…
Collapse Projects…
Copy Class…
Paste Class…
Copy References…
Paste References…
Copy As Project Reference…
Edit Project File…
Open Containing Folder…
Open Command Prompt…
Unload Projects…
Reload Projects…
Remove and Sort Usings…
Extract Constant…
Clear Recent File List…
Clear Recent Project List…
Transform Templates…
Close All…

Visual Studio



Visual Studio 2010 (parte 39) – Managed Extensibility Framework (MEF)

17/11/2009 03:51

O Managed Extensibility Framework (MEF) é uma nova biblioteca no. NET Framework que permite uma maior reutilização de aplicações e componentes. Usando MEF, aplicações . NET podem fazer deixar de serem estaticamente compiladas para serem dinamicamente compostas.

Abaixo vemos uma pequena amostra de código com o novo framework, representado pelos atributos que decoram a classe SimpleMortgageCalculator.

[Export(typeof(IMortgageCalculator))]
[ExportMetadata(“Calculation”, “Simple”)]
[ExportMetadata(“Tax Aware”, null)]
public class SimpleMortgageCalculator : IMortgageCalculator
{
    public ILogger Logger { get; set; }

    public float Calculate()
    {
        Logger.Log("Calculating Mortgage");

        return ...;
    }
}

blocksO MEF permite ser utilizado num servidor web onde você pode utilizar uma parte isolada de outras instâncias da mesma aplicação. Basicamente, a idéia é simplificar o design e construção de aplicações e componentes com alta extensibilidade.

O MEF está disponível no CodePlex aqui.

Visual Studio



Visual Studio 2010 (parte 38) – Extensible Output Caching

17/11/2009 03:25

Desde que o ASP.NET 1.0 foi lançado, o recurso de output caching permitiu armazenar a saída de páginas geradas, controles e responses HTTP na memória. Em visitas subseqüentes, o ASP.NET conseguia apresentar conteúdo de forma mais rápida, recuperando a saída gerada a partir da memória

O ASP.NET 4 acrescenta um ponto de extensibilidade para o output-cache que permite configurar um ou mais providers personalizados. Basta criar uma output provider de cache personalizado como uma classe que deriva do novo tipo OutputCacheProvider. E a partir daí configurar o provider no arquivo Web.config conforme mostrado no exemplo abaixo:

<caching>
  <outputCache defaultProvider="AspNetInternalProvider">
    <providers>
      <add name = "DiskCache"
          type = "Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider" />
    </ providers>
  </ outputCache>
</ cache>

É possível alterar output-cache padrão usado pela aplicação da Web, especificando um nome do provider diferente para defaultProvider.

Além disso, você pode selecionar diferentes output-cache providers por controle e por request. A maneira mais fácil de escolher um output-cache provider para user controls da Web é fazê-lo declarativamente usando o novo atributo providerName ilustrado a seguir:

<% @ OutputCache Duration = "60" VaryByParam = "Nenhum ProviderName" = "DiskCache%>

Especificar um output-cache provider diferente para uma solicitação HTTP requer um pouco mais de trabalho. Em vez de especificar declarativamente o provider, é necessário substituir o novo método GetOutputCacheProviderName no arquivo Global.asax programaticamente, informando o provider a ser utilizado. O exemplo de código abaixo mostra como fazer isso:

public override string GetOutputCacheProviderName HttpContext (contexto)
(
    if (context.Request.Path.EndsWith ( "Advanced.aspx"))
       return "DiskCache";
    diferente
        base.GetOutputCacheProviderName retorno (contexto);
)

Visual Studio



Visual Studio 2010 (parte 37) – WPF 4 suportará multitouch

17/11/2009 03:01

Uma vez que o Windows 7 suporta nativamente o recurso de multitouch nada mais natural que o WPF seguisse o mesmo caminho. A ilustração abaixo mostra, de maneira muito simplificada, como as mensagens são geradas a partir do hardware e enviado para aplicações no Windows 7.

Dd371413_wm_multitouch_messaging(en-us,VS_85)

O WPF 4 inclui suporte para multitouch (com algum suporte a inércia – veja o que isso significa nesse link). Este suporte estende-se para toda a plataforma; UIElement, UIElement3D e ContentElement todos foram aperfeiçoados para suportar esse recurso.

Visual Studio