Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ofir Aspis 1/2010 VS 2010 Targets High Level - IDE New Features VS 2010 As Editor and Platform Demo Editor features Extending.

Similar presentations


Presentation on theme: "Ofir Aspis 1/2010 VS 2010 Targets High Level - IDE New Features VS 2010 As Editor and Platform Demo Editor features Extending."— Presentation transcript:

1 Ofir Aspis 1/2010

2 VS 2010 Targets High Level - IDE New Features VS 2010 As Editor and Platform Demo Editor features Extending the IDE Web MVC 2 and TDD Break Whats new in.Net Framework 4.0 and C# 4.0 New Language Features New Framework Application Blocks

3 Audience Feature Set Minimal Complete HobbyistEnterprise Professional Ultimate Express Premium

4 VSTS Team Suite w/ MSDN Premium VSTS Team Suite w/ MSDN Premium VSTS Development Ed. w/ MSDN Premium VSTS Development Ed. w/ MSDN Premium VSTS Database Ed. w/ MSDN Premium VSTS Database Ed. w/ MSDN Premium VSTS Test Ed. w/ MSDN Premium VSTS Test Ed. w/ MSDN Premium VSTS Architecture 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 Ultimate w/ MSDN VS 2010 Premium w/ MSDN VS 2010 Premium w/ MSDN VS 2010 Professional w/ MSDN VS 2010 Professional

5 Visual Studio 2010 Professional Visual Studio 2010 Professional New WPF Editor Generate From Usage Generate From Usage Customizable IDE Silverlight Tooling Multi-Core Development Multi-Core Development Cloud Development Cloud Development Web Development Web Development Windows Development Windows Development Office Development Office Development SharePoint Development SharePoint Development

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 Visual Studio As An Editor Visual Studio As A Platform

8 An improved focus on… Writing code, Understanding code, Navigating code, Publishing code

9 Demo

10 New Extensible Editor allows editor to be easily extended to provide a rich and robust editing experience Online Visual Studio Gallery integrated directly into Visual Studio

11 Enabling the Visual Studio Ecosystem through: Online Templates Extensions and Extension Manager All Contributable by Community

12 Demo

13 Beta 2, October 19 th, 2009 RTM, March 22 nd, 2010

14

15 .Net Framework - A Brief Review.Net Framework 4.0 Highlights Managed Extensibility Framework (MEF) Managed Languages C# 4.0 New Features Dynamic Language Runtime ( DLR) F#

16 Base Class Libraries The CLR JIT & NGEN Garbage Collector Security Model Exception Handling Loader & Binder WPF Win Forms DLR ASP.NET WCF And more! LINQ

17 .NET 1.0.NET 1.1.NET NET CTP CLR 1.0 CLR 1.1 CLR 2.0 CLR 4 SP1

18 Client Applications WPF 4 MEF Web Applications Web Forms 4 AJAX 4 Client/Server WCF 4

19 The Managed Extensibility Framework (MEF) is a new library in the.NET Framework that enables greater reuse of applications and components. Using MEF,.NET applications can make the shift from being statically compiled to dynamically composed

20 Our managed languages are starting to share some very similar features: Functional Concise Declarative

21 ImperativeDeclarative What How

22 Before IList FindParentsWithChildNamed(string childName) { var matches = new List (); foreach(var person in _people) { foreach(var child in person.Children) { if (child.Name.Equals(childName)) { matches.Add(person); break; } return matches; }

23 IList 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

24 Parallel LINQ (PLINQ) enables developers to easily leverage manycore with a minimal impact to existing LINQ programming model 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; 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;

25 Declarative ConcurrentDynamic

26 C# 1.0 C# 2.0 C# 3.0 Managed Code Generics LINQ C# 4.0 Dynamic

27 1. Late-Binding Support 2. Named and Optional Parameters 3. Improved COM Interop 4. Covariance and Contravariance

28 Consider this example: public void M(int x, int y = 5, int z = 7) { } In this method, the parameters y and z are assigned default values. Calls to this method might look like this: 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

29 Interop Assemblies translate between managed code and COM For each interface, struct, enum, delegate, and member, contains a managed equivalent with marshalling data

30 Primary Interop Assemblies cause many pain points…

31 1. Compilers embed the portions of the interop assemblies that the add-ins actually use 2. Runtime ensures the embedded definitions of these types are considered equivalent

32

33 Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed

34 Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed Dynamic Language Runtime

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…

36 Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 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

37

38 F# is.NET managed programming language combining functional programming and object-oriented programming. Its ideally suited for parallel, algorithmic, technical and explorative development F# is a strongly-typed language like C#, but with a lightweight syntax often seen in a dynamic language like Python

39 Programming in The Small with Tuples and functions Simple, and more error-free asynchronous programming Strong types for floating point code Integrated with Visual Studio 2010

40 let data = (1,2,3) let rotations (x, y, z) = [ (x, y, z); (z, x, y); (y, z, x) ] let derivative f x = let p1 = f (x ) let p2 = f (x ) (p2 - p1) / 0.1 let f x = 2.0*x*x - 6.0*x let df = derivative f System.Console.WriteLine("The derivative of f at x=4 is {0}", df 4.0)

41 let http url = async { let req = WebRequest.Create(Uri url) let! resp = req.AsyncGetResponse() let stream = resp.GetResponseStream() let reader = new StreamReader(stream) let! contents = reader.AsyncReadToEnd() return contents } let sites = ["http://bing.com"; "http://microsoft.com"; "http://msdn.com"; "http://msnbc.com"] let htmlOfSites = Async.Parallel [for site in sites -> http(site)] |> Async.RunSynchronously

42 Visual Studio 2010/.NET Framework 4.0 Training Kit November Preview: Visual Studio Topic Area on Channel 9 Includes videos from VS2010 and VSTS2010 weeks on Channel 9 VS2010/NETFX4 Futures on MSDN us/vs2008/products/cc aspx


Download ppt "Ofir Aspis 1/2010 VS 2010 Targets High Level - IDE New Features VS 2010 As Editor and Platform Demo Editor features Extending."

Similar presentations


Ads by Google