demo video demo dynamic languages simple and succinctimplicitly typedmeta-programmingno compilation...
TRANSCRIPT
A Lap Around Visual Studio 2010 for the Visual Basic DeveloperLisa FeigenbaumProgram ManagerMicrosoft Corporationhttp://blogs.msdn.com/lisa
A Lap Around VS 2010 for the VB Dev> Session Objectives
> Discover what’s available> See how to take advantage of new
features> Agenda
> New Editor & Shell> VB IDE> VB Language> VS 2010 & .NET 4 Highlights
New Editor & Shell
> WPF User Interface> New Look, Rich Experience
> Start Page> Remove or pin projects, View directory,
Customize> Editor
> Zoom, Multi-Monitor, Block selection, Outlining
> Extensibility> Visual Studio Gallery, Extension Manager
Code-Focused VB IDE
> Understanding> Highlight References> Type Colorization
> Navigating> Navigate To: Files & Members, Ctrl+,
> Writing & Testing> IntelliSense: Non-aggressive,
Substring,PascalCase> Generate From Usage: Type, Method,
Property
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 IDE
Feature 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> VB IDE> VB Language> VS 2010 & .NET 4 Highlights
> Call to Action> Download Beta2> Use the resources and try it out> Tell us your feedback
Resources
Visual Basic Developer Centerhttp://msdn.com/vbasic
VB 2010 Resourceshttp://msdn.microsoft.com/en-us/vbasic/dd819153.aspx
Blogshttp://blogs.msdn.com/vbteam (VB Team)http://blogs.msdn.com/lisa (Lisa)
Visual Basic Forumshttp://forums.msdn.microsoft.com/en-US/tag/visualbasic/forums/
Connecthttps://connect.microsoft.com/VisualStudio
© 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.