19

demo video demo Dynamic Languages Simple and succinctImplicitly typedMeta-programmingNo compilation Static Languages RobustPerformantIntelligent

Embed Size (px)

Citation preview

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

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

VB 2010 Resources

question & answer

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

m

THANK YOU!

© 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.