Your SlideShare is downloading. ×
Visual Studio 2010 e C# 4
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Visual Studio 2010 e C# 4

1,903
views

Published on

Published in: Technology

1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
1,903
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
68
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • A primeira versão foi lançada em 2002, para Windows 98, Me, NT 4.0, 2000, and XP;A versão 1.1foi a primeiragrandeatualização da plataforma, lançadaemconjunto com o Visual Studio 2003, e jáfazendo parte do Windows Server 2003. Inúmerasmodificações, inclusive lançamento de umaversãoparadispositivospequenos, o .NET Compact Framework.A versão 2.0 foilançadaem 2005/2006, junto com SQL Server 2005, Biztalk 2006, etc. - Novo CLR - Generics - Temas, skins, webparts - classes parciais, métodosanonimos, etcA versão 3.0 funcionamaiscomoumaatualização, semgrandesmudançasarquiteturais, utilziando o CLR passado. (novembro 2006) - WPF - WCF - WF - Windows CardspaceVersão 3.5: Novembro de 2007 - LINQ - Métodos de extensão - ASP.NET AJAX juntoSP1 do 3.5: Agosto 2008 - Entity Framework - ADO.NET Data Services - ASP.NET MVC4.0: Anuncio em setembro 2008Public Beta em maio 2009ParallelLinguagens DinâmicasCode ContractsOsloFevereiro de 2010: RC
  • Expression trees – árvores de expressões Dynamic Dispatch – resolução de métodos em tempo de execução, utiliza cache de chamadas se houberSite Caching – cache das chamadas
  • Diferença entre dynamic e varVar é conhecido em tempo de compilaçãoDynamic é como o tipo object, resolvido somente em runtimeCuidado com uso excessivo de dynamic – ele cauxa box e unboxing, ou seja muito overhead no processador
  • If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.
  • Mostrar Debug Windows Parallel – break point
  • If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.
  • Mostrar Debug Windows Parallel – break point
  • Mostrar Debug Windows Parallel – break point
  • Mostrar Debug Windows Parallel – break point
  • Transcript

    • 1. Visual Studio 2010 e C# 4.0
      Carlos dos Santos
      cds@cds-software.com.br
      Blog: www.carloscds.net
      Twitter: @cdssoftware
      Microsoft MVP C#
      CDS Informática Ltda.
      Microsoft Gold Certified Partner
      Microsoft Visual Studio Team System Inner Circle Partner
    • 2. Agenda
      Um pouco de história...
      Novidades do Visual Studio 2010
      ObjetosTipadosDinamicamente
      ParâmetrosOpcionais e Nomeados
      Programação Paralela
      Entity Framework 4
      WPF
      Silverlight
    • 3. Um pouco de história…
      SP1
      3.5
      3.0
      .NET 1.0
      .NET 1.1
      .NET 2.0
      .NET 4
      200213 de Fevereiro
      2003
      3 de Abril
      2008 CTP
      2005-08
      CLR 1.0
      CLR 1.1
      CLR 2.0
      CLR 4
    • 4. O que é a plataforma .Net
      WPF
      Win Forms
      DLR
      ASP.NET
      WCF
      E muito mais!
      LINQ
      Base Class Libraries
      CLR
      JIT & NGEN
      Garbage Collector
      Security Model
      Exception Handling
      Loader & Binder
    • 5. Quais são as novidades?
      Breakpoint Grouping
      Visual Enhancements
      Dynamic Data Tooling
      WPF-based Editor
      Breakpoint Labeling
      Call Hierarchy
      Improved WPF Tooling
      Historical Debugging
      Inline Call Tree
      Quick Search
      Concurrency Profiler
      Breakpoint Import/Export
      Document Map Margin
      Parallel Stacks Window
      Improved Multi-Monitor
      Parallel Tasks Window
      Extensible Test Runner
      Generate From Usage
      Highlight References
      Click-Once Enchacements for Office
      Web Deploy
      SharePoint Tooling
      Minidump Debugging
      JQueryIntellisense
      64-bit Mixed-Mode
      HTML Snippets
      Web.config Transformation
      Code Contracts
      Parallel Extensions
      BigInteger
      Variance Annotations
      Tuples
      DLR
      SortedSet
      F#
      Memory Mapped Files
      Registry Improvements
    • ProgramaçãoDinâmica .NET
      IronPython
      IronRuby
      C#
      VB.NET
      Outros…
      Dynamic Language Runtime
      Expression Trees
      Dynamic Dispatch
      Call Site Caching
      PythonBinder
      RubyBinder
      COMBinder
      JavaScriptBinder
      ObjectBinder
    • 24. Entendendo o Dynamic
      Tipossão “estaticamentetipadoscomodinâmicos”
      Tipo dinâmicos são System.Object (cuidado com boxing e unboxing)
      Tipos dinâmicos se propagam nas chamadas
      Tipo dinâmicos não possuem checagem em tempo de compilação e nem Intelisence
    • 25. Como o Dynamic funciona:
      CLR
      COM Binder
      Expression Tree
      IronPython Binder
      Exe
      Compile
      Run
      Bind call
      C# Runtime Binder
      Dynamic Call
      Delegate
      DLR
      Cache

    • 26. ObjetosTipadosDinamicamente
      Calculator calc = GetCalculator();
      int sum = calc.Add(10, 20);
      object calc = GetCalculator();
      TypecalcType = calc.GetType();
      object res = calcType.InvokeMember("Add",
      BindingFlags.InvokeMethod, null,
      newobject[] { 10, 20 });
      int sum = Convert.ToInt32(res);
      ScriptObject calc = GetCalculator();
      object res = calc.Invoke("Add", 10, 20);
      int sum = Convert.ToInt32(res);
      Estaticamentetipadocomodinâmico
      dynamic calc = GetCalculator();
      int sum = calc.Add(10, 20);
      Invocaçãodinâmica de método
      Conversãodinâmica
    • 27. ObjetosTipadosDinamicamente
      Tipoem tempo de compilação:dynamic
      Tipoem tempo de execução:System.Int32
      dynamic x = 1;
      dynamic y = "Hello";
      dynamic z = newList<int> { 1, 2, 3 };
      Quandooperandossãodynamic…
      • Seleção do membroadiadopara tempo de execução
      • 28. Em tempo de execução, ostipossãosubtituídos
      • 29. O tipoestáticoresultantedaoperação é dynamic
    • ObjetosTipadosDinamicamente
      public static class Math
      {
      publicstaticdecimal Abs(decimal value);
      publicstaticdouble Abs(double value);
      publicstaticfloat Abs(float value);
      publicstaticint Abs(int value);
      publicstaticlong Abs(long value);
      publicstaticsbyte Abs(sbyte value);
      publicstaticshort Abs(short value);
      ...
      }
      Métodoescolhidoem tempo de compilação: double Abs(double x)
      double x = 1.75;
      double y = Math.Abs(x);
      Métodoescolhidoem tempo de execução: double Abs(double x)
      dynamic x = 1.75;
      dynamic y = Math.Abs(x);
      Métodoescolhidoem tempo de execução:int Abs(int x)
      dynamic x = 2;
      dynamic y = Math.Abs(x);
    • 30. ObjetosTipadosDinamicamente
      demo
    • 31. ParâmetrosOpcionais e Nomeados
      Método principal
      publicStreamReaderOpenTextFile(
      string path,
      Encodingencoding,
      booldetectEncoding,
      intbufferSize);
      Overloads secundários
      publicStreamReaderOpenTextFile(
      string path,
      Encodingencoding,
      booldetectEncoding);
      publicStreamReaderOpenTextFile(
      string path,
      Encodingencoding);
      publicStreamReaderOpenTextFile(
      string path);
      Chama o método principal com valores default
    • 32. ParâmetrosOpcionais e Nomeados
      Parâmetrosopcionais
      publicStreamReaderOpenTextFile(
      string path,
      Encodingencoding,
      booldetectEncoding,
      intbufferSize);
      publicStreamReaderOpenTextFile(
      string path,
      Encodingencoding = null,
      booldetectEncoding = true,
      intbufferSize = 1024);
      Argumentonomeado
      OpenTextFile("foo.txt", Encoding.UTF8);
      OpenTextFile("foo.txt", Encoding.UTF8, bufferSize: 4096);
      Argumentosavaliadosnaordemescrita
      Argumentosnomeadospodemapareceremqualquerordem
      Argumentosnomeadosdevemvirporúltimo
      OpenTextFile(
      bufferSize: 4096,
      path: "foo.txt",
      detectEncoding: false);
      Argumentosnão-opcionais DEVEM ser especificados
    • 33. Programação Paralela
      Aproveitar a capacidade dos processadores com váriosnúcleos
      Suporte do .Net Framework 4.0:
      Parallel For / ForEach
      Task Parallel Library (TPL)
      System.Threading
      System.Treading.Task
      Parallel Linq (PLINQ)
      Estururas de dados em:
      System.Collections.Concurrent
    • 34. Programação Paralela
      demo
    • 35. Programação Orientada a Teste (TDD)
      Escrevaos testes antes do código
      Aprovar, Refactorizar
      Ajuda do Intellisense
      Geração do Código da Classe
      Geração dos Metodos
    • 36. Test Driven Development
      demo
    • 37. Entity Framework 4
      ADO.NET API
      ORM API
      Entity Provider
      Connection
      ObjectContext
      Command
      ObjectQuery
      ModeloConceitual
      DataReader
      Mapeamento
      ModeloFísico
      SQL Provider
      Oracle Provider
      ...
    • 38. ADO.NET x Entity Framework
      Entity Framework
      ADO.Net
    • 39. Entity Framework 4.0
      Ferramenta de designer melhorada (VS2010)
      Maiscontrole e flexibilidade;
      POCO (Plan Old CLR Objects - persistence Ignorance);
      Desenvolvimento N-Tier (emcamadas);
      Lazy Loading (dados carregadospordemanda);
    • 40. Entity Framework 4
      demo
    • 41. WPF
      Desenvolvaaplicações com visual incrível
      Total liberdadepara o designer
      Integração entre o designer e o desenvolvedor
      Ferramentasespecíficaspara o designer: Expression Blend
      Visual criadousando XAML
    • 42. WPF
      demo
    • 43. Silverlight
      Aplicações web com visual incrível
      Poder do XAML aplicado a web
      Smooth Streaming – altaqualidadenosvídeos(http://www.iis.net/media/experiencesmoothstreaming)
      Aceleração via GPU (usaprocessamento local do usuário)
      Instalação no client (out of browser)
      Obtenha feedback do cliente sem escrever a aplicação (Sketch Flow)
    • 44. Silverlight
      demo
    • 45. Produtividade
      Navegando
      Escrevendo
      • Code generation
      • 46. Consume first development
      • 47. Symbol navigation
      • 48. File navigation
      Modificando
      Entendendo
      • Refactor code
      • 49. Organize code
      • 50. Analyze relationships and structure
      • 51. Quick information
      Testando
      Depurando
    • O que mais?
      Managed Extensibility Framework?
      WPF / Silverlight
      ADO.NET Data Services
      Azure
      Domain Specific Language
      Visual Studio Team System
    • 55. Links Úteis
      C# 4.0 Samples and Whitepaper
      http://code.msdn.microsoft.com/csharpfuture
      Visual C# Developer Center
      http://csharp.net
      SharpCode
      http://www.sharpcode.com.br
      Meu Blog
      http://www.carloscds.net
    • 56. Querusar a plataforma.Net ?
      • Temos consultoria especializada em treinamento para equipes de desenvolvimento;
      • 57. Migração de Delphi para C#;
      • 58. Migração de PHP para Asp.Net;
      • 59. Migraçao de WebServices para WCF;
      • 60. Implementação de Visual Studio Team System;
      • 61. Desenvolvimento Asp.Net, Silverlight, Windows Mobile;
      www.cds-software.com.br
    • 62. Perguntas ?
      Carlos dos Santos
      cds@cds-software.com.br
      www.carloscds.net
      @cdssoftware