gurinder cto. lisa feigenbaum microsoft program manager visual studio languages
TRANSCRIPT
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
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
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.