Visual Studio .NET2010


Published on

Published in: Education, Technology
1 Comment
  • 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

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

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>