Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Visual Studio .NET2010


Published on

Published in: Education, Technology
  • i am easy to learn dotnet project work
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Visual Studio .NET2010

  1. 1. Ofir Aspis 1/2010 [email_address]
  2. 2. <ul><li>VS 2010 Targets </li></ul><ul><li>High Level - IDE New Features </li></ul><ul><li>VS 2010 As Editor and Platform </li></ul><ul><li>Demo </li></ul><ul><ul><li>Editor features </li></ul></ul><ul><ul><li>Extending the IDE </li></ul></ul><ul><ul><li>Web MVC 2 and TDD </li></ul></ul><ul><li>Break </li></ul><ul><li>What’s new in .Net Framework 4.0 and C# 4.0 </li></ul><ul><ul><li>New Language Features </li></ul></ul><ul><ul><li>New Framework Application Blocks </li></ul></ul>
  3. 3. Audience Feature Set Minimal Complete Hobbyist Enterprise Professional Ultimate Express Premium
  4. 4. VSTS Team Suite w/ MSDN Premium VSTS Development Ed. w/ MSDN Premium VSTS Database Ed. w/ MSDN Premium VSTS Test Ed. w/ MSDN Premium VSTS Architecture Ed. w/ MSDN Premium Visual Studio Professional w/ MSDN Professional Visual Studio Professional w/ MSDN Premium Visual Studio Professional Visual Studio Standard VS 2010 Ultimate w/ MSDN VS 2010 Premium w/ MSDN VS 2010 Professional w/ MSDN VS 2010 Professional
  5. 5. Visual Studio 2010 Professional New WPF Editor Generate From Usage Customizable IDE Silverlight Tooling Multi-Core Development Cloud Development Web Development Windows Development Office Development SharePoint Development
  6. 6. New Look & Feel Web Deploy web.config Transformation Call Hierarchy Inline Call Tree Highlight References Document Map Margin Extensible Test Runner WPF-based Editor Sharepoint Tooling JQuery Intellisense HTML Snippets Historical Debugging Concurrency Profiler Parallel Tasks Window Parallel Stacks Window Quick Search Generate From Usage Improved Multi-Monitor MVC Tooling Dynamic Data Tooling Click-Once Enhancements for Office 64-bit Mixed-Mode Minidump Debugging Breakpoint Grouping Breakpoint Labeling Breakpoint Import/Export New features, the tip of the iceberg… Improved WPF Tooling
  7. 7. <ul><li>Visual Studio As An Editor </li></ul><ul><li>Visual Studio As A Platform </li></ul>
  8. 8. <ul><li>An improved focus on… </li></ul><ul><li>Writing code, </li></ul><ul><li>Understanding code, </li></ul><ul><li>Navigating code, </li></ul><ul><li>Publishing code </li></ul>
  9. 9. <ul><li>Demo </li></ul>
  10. 10. <ul><li>New Extensible Editor allows editor to </li></ul><ul><li>be easily extended to provide a rich </li></ul><ul><li>and robust editing experience </li></ul><ul><li>Online Visual Studio Gallery </li></ul><ul><li>integrated directly into Visual Studio </li></ul>
  11. 11. <ul><li>Enabling the Visual Studio Ecosystem through: </li></ul><ul><li>Online Templates </li></ul><ul><li>Extensions and Extension Manager </li></ul><ul><li>All Contributable by Community </li></ul>
  12. 12. <ul><li>Demo </li></ul>
  13. 13. <ul><li>Beta 2 , October 19 th , 2009 </li></ul><ul><li>RTM , March 22 nd , 2010 </li></ul>
  14. 15. <ul><li>.Net Framework - A Brief Review </li></ul><ul><li>.Net Framework 4.0 Highlights </li></ul><ul><li>Managed Extensibility Framework (MEF) </li></ul><ul><li>Managed Languages </li></ul><ul><li>C# 4.0 New Features </li></ul><ul><li>Dynamic Language Runtime ( DLR) </li></ul><ul><li>F# </li></ul>
  15. 16. WPF Win Forms DLR ASP.NET WCF And more! LINQ Base Class Libraries The CLR JIT & NGEN Garbage Collector Security Model Exception Handling Loader & Binder
  16. 17. .NET 1.0 .NET 1.1 .NET 2.0 3.0 3.5 .NET 4 2002 2003 2008 CTP 2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4 SP1
  17. 18. Client Applications WPF 4 MEF Web Applications Web Forms 4 AJAX 4 Client/Server WCF 4
  18. 19. <ul><li>The Managed Extensibility Framework (MEF) is a new library in the .NET Framework that enables greater reuse of applications and components. </li></ul><ul><li>Using MEF, .NET applications can make the shift from being statically compiled to dynamically composed </li></ul>
  19. 20. <ul><li>Our managed languages are starting to share some very similar features: </li></ul><ul><li>Functional </li></ul><ul><li>Concise </li></ul><ul><li>Declarative </li></ul>
  20. 21. Imperative Declarative What How
  21. 22. <ul><li>IList<Person> FindParentsWithChildNamed(string childName) </li></ul><ul><li>{ </li></ul><ul><li>var matches = new List<Person>(); </li></ul><ul><li>foreach(var person in _people) </li></ul><ul><li>{ </li></ul><ul><li>foreach(var child in person.Children) </li></ul><ul><li>{ </li></ul><ul><li>if (child.Name.Equals(childName)) </li></ul><ul><li>{ </li></ul><ul><li>matches.Add(person); </li></ul><ul><li>break; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>return matches; </li></ul><ul><li>} </li></ul>Before
  22. 23. IList<Person> FindParentsWithChildNamed(string childName) { var matches = from person in people from child in person.Children where child.Name.Equals(childName) select person; return matches.ToList(); } After
  23. 24. <ul><li>Parallel LINQ (PLINQ) enables developers to easily leverage manycore with a minimal impact to existing LINQ programming model </li></ul>var q = from p in people          where p.Name == queryInfo.Name && p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd         orderby p.Year ascending          select p;
  24. 26. C# 1.0 C# 2.0 C# 3.0 Managed Code Generics LINQ C# 4.0 Dynamic
  25. 27. <ul><li>Late-Binding Support </li></ul><ul><li>Named and Optional Parameters </li></ul><ul><li>Improved COM Interop </li></ul><ul><li>Covariance and Contravariance </li></ul>
  26. 28. <ul><li>Consider this example: </li></ul><ul><ul><li>public void M(int x, int y = 5, int z = 7) { } </li></ul></ul><ul><li>In this method, the parameters y and z are assigned default values. Calls to this method might look like this: </li></ul><ul><ul><ul><ul><li>M(1, 2, 3); // ordinary call of M M(1, 2); // omitting z – equivalent to M(1, 2, 7) M(1);  // omitting both y and z – equivalent to M(1, 5, 7) M(1, z: 3); // passing z by name M(x: 1, z: 3); // passing both x and z by name M(z: 3, x: 1); // reversing the order of arguments </li></ul></ul></ul></ul>
  27. 29. <ul><li>Interop Assemblies translate between managed code and COM </li></ul><ul><li>For each interface, struct, enum, </li></ul><ul><li>delegate, and member, contains a </li></ul><ul><li>managed equivalent with marshalling data </li></ul>
  28. 30. <ul><li>Primary Interop Assemblies cause many pain points … </li></ul>
  29. 31. <ul><li>Compilers embed the portions of the interop assemblies that the add-ins actually use </li></ul><ul><li>Runtime ensures the embedded definitions of these types are considered equivalent </li></ul>
  30. 33. Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed
  31. 34. Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed Dynamic Language Runtime
  32. 35. Python Binder Ruby Binder COM Binder JScript Binder Object Binder Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching IronPython IronRuby C# VB.NET Others…
  33. 36. Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember( &quot;Add&quot; , BindingFlags.InvokeMethod, null , new object [] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke( &quot;Add&quot; , 10, 20); int sum = Convert .ToInt32(res); dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Statically typed to be dynamic Dynamic method invocation Dynamic conversion
  34. 38. <ul><li>F# is .NET managed programming language combining functional programming and object-oriented programming. </li></ul><ul><li>It’s ideally suited for parallel, algorithmic, technical and explorative development </li></ul><ul><li>F# is a strongly-typed language like C#, but with a lightweight syntax often seen in a dynamic language like Python </li></ul>
  35. 39. <ul><li>“ Programming in The Small” with Tuples and functions </li></ul><ul><li>Simple, and more error-free asynchronous programming </li></ul><ul><li>Strong types for floating point code </li></ul><ul><li>Integrated with Visual Studio 2010 </li></ul>
  36. 40. <ul><li>let data = (1,2,3) </li></ul><ul><li>  </li></ul><ul><li>let rotations (x, y, z) = </li></ul><ul><li>[ (x, y, z); </li></ul><ul><li>(z, x, y); </li></ul><ul><li>(y, z, x) ] </li></ul><ul><li>  </li></ul><ul><li>let derivative f x = </li></ul><ul><li>let p1 = f (x - 0.05) </li></ul><ul><li>let p2 = f (x + 0.05) </li></ul><ul><li>(p2 - p1) / 0.1 </li></ul><ul><li>  </li></ul><ul><li>let f x = 2.0*x*x - 6.0*x + 3.0 </li></ul><ul><li>  </li></ul><ul><li>let df = derivative f </li></ul><ul><li>  </li></ul><ul><li>System.Console.WriteLine(&quot;The derivative of f at x=4 is {0}&quot;, df 4.0) </li></ul>
  37. 41. <ul><li>let http url = </li></ul><ul><li>async { let req = WebRequest.Create(Uri url) </li></ul><ul><li>let! resp = req.AsyncGetResponse() </li></ul><ul><li>let stream = resp.GetResponseStream() </li></ul><ul><li>let reader = new StreamReader(stream) </li></ul><ul><li>let! contents = reader.AsyncReadToEnd() </li></ul><ul><li>return contents } </li></ul><ul><li>  </li></ul><ul><li>let sites = [&quot;;; &quot;;; </li></ul><ul><li>&quot;;; &quot;;] </li></ul><ul><li>  </li></ul><ul><li>let htmlOfSites = </li></ul><ul><li>Async.Parallel [for site in sites -> http(site)] </li></ul><ul><li>|> Async.RunSynchronously </li></ul>
  38. 42. <ul><li>Visual Studio 2010/.NET Framework 4.0 Training Kit </li></ul><ul><ul><li>November Preview: </li></ul></ul><ul><li>Visual Studio Topic Area on Channel 9 </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Includes videos from VS2010 and VSTS2010 weeks on Channel 9 </li></ul></ul><ul><li>VS2010/NETFX4 Futures on MSDN </li></ul><ul><ul><li> </li></ul></ul>