gurinder cto. lisa feigenbaum microsoft program manager visual studio languages

22
Gurinder CTO

Upload: brice-leonard

Post on 24-Dec-2015

226 views

Category:

Documents


2 download

TRANSCRIPT

GurinderCTO

Lisa FeigenbaumMicrosoft Program ManagerVisual Studio Languageshttp://blogs.msdn.com/lisa

A Lap Around Visual Studio 2010 for C# & VB Developers

A Lap Around VS 2010

•Session Objectives• Discover what’s available• See how to take advantage of new features

•Agenda• New Editor & Shell• C# & VB IDE• C# & VB Language• VS 2010 & .NET 4 Highlights

New Editor & Shell

•WPF User Interface• New Look

•Start Page• View directory, Remove or pin projects, Customize

•Editor• Zoom, Tear off windows, Tab wells, Block selection• Outlining, Collapse from bottom, Hide selection

•Extensibility• VS Gallery, Extension Manager

Code-Focused C# & VB IDE

•Understanding• Highlight References• Type Colorization• Call Hierarchy

•Navigating• Navigate To: Files & Members, Ctrl+,

•Writing & Testing• IntelliSense: Non-aggressive, Substring, PascalCase• Generate From Usage: Type, Method, Property

C# Language

•Syntax Enhancements & Office Development• Named & Optional Parameters• Omit Ref on COM calls• Indexed Properties• Co/contravariance

•Office Deployment: No PIA•Dynamic Language Interop on the DLR

VB Language

•Syntax Enhancements•Multiline Statement Lambdas• Auto-implemented Properties• Collection Initializers• Array Literals• Implicit Line Continuation• Co/contravariance

•Office Deployment: No PIA•Dynamic Language Interop on the DLR

Dynamic Versus Static

DynamicLanguages

Simple and succinct

Implicitly typed

Meta-programming

No compilation

StaticLanguages

Robust

Performant

Intelligent tools

Better scaling

Open Source versus Commercial

PythonBinder

RubyBinder

COMBinder

JavaScript

Binder

ObjectBinder

Dynamic Languages On .NET

Dynamic Language Runtime

Expression TreesDynamic Dispatch

Call Site Caching

IronPython

IronRuby C# VB.NET Others…

ScriptObject calc = GetCalculator();object res = calc.Invoke("Add", 10, 20);int sum = Convert.ToInt32(res);

Dim calc As ScriptObject = GetCalculator()Dim res As Object = calc.Invoke("Add", 10, 20)Dim sum As Integer = Convert.ToInt32(res)

VB 10, C# 4.0 And Dynamic

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);

dynamic calc = GetCalculator();int sum = calc.Add(10, 20);Dynamic

method invocation

Dynamic conversio

n

Dim calc As Calculator = GetCalculator()Dim sum As Integer = calc.Add(10, 20)

Dim calc As Object = GetCalculator()Dim sum As Integer = calc.Add(10, 20)

Dim calc As Object = GetCalculator()Dim sum As Integer = calc.Add(10, 20)

Visual C# Visual Basic

Static binding

Dynamic binding

(pre-VS 2010)

Binding to ScriptObjects (JavaScript)

Statically typed to be dynamic

Dynamic method

invocation

Dynamic conversio

n

VB & C# 2010 LanguageFeature VB C#

Auto-implemented Properties

Collection Initializers

Array Literals

Statement Lambdas

Implicit Line Continuation N/A

Named/Optional Parameters

Latebinding support (dynamic)

Omit ref on COM calls

Indexed Properties

Interop with Dynamic Languages

Co/contravariance

PIA deployment not needed

New in VS 2010Already exists in VS 2008

VB & C# 2010 IDEFeature VB C#

Generate From Usage: Generate Method

Type colorization

Background Squiggles: Top Level Analysis

IntelliSense: Builder UI

IntelliSense: Prefix Filtering Completion List

Generate From Usage: Generate Type, Constructor, Property, Field

IntelliSense: Consume First Mode

IntelliSense: Substring & Camel-Case Match

Navigate To

Highlight References

Call Hierarchy New in VS 2010Already exists in VS 2008

VS 2010 / .NET 4 Highlights

•DGML Graphs•WPF Drag & Drop •IntelliTrace•Parallel Extensions•New Editor & Shell

Summary

•What We’ve Seen• New Editor & Shell• C# & VB IDE• C# & VB Language• VS 2010 & .NET 4 Highlights

•Call to Action• Download Beta2• Use the resources and try it out• Tell us your feedback

C# Resources•Visual Studio 2010 Beta 2

• http://go.microsoft.com/fwlink/?LinkID=151797

•C# Developer Center• http://csharp.net

•C# 2010 Resources• http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx

•C# Forums• http://social.msdn.microsoft.com/Forums/en-US/category/

visualcsharp

•Bugs & Suggestions• https://connect.microsoft.com/VisualStudio

VB Resources•Visual Studio 2010 Beta 2

• http://go.microsoft.com/fwlink/?LinkID=151797

•VB Developer Center• http://msdn.com/vbasic

•VB 2010 Resources• http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx

•VB Forums• http://social.msdn.microsoft.com/Forums/en-US/category/

visualbasic

•Bugs & Suggestions• https://connect.microsoft.com/VisualStudio

VB 2010 Resources

question & answer

http://blogs.msdn.com/[email protected]

m

THANK YOU!

GurinderCTO

00%Lorem ipsum dolor sit amet,

consectetur adipiscing elit.

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.