16
Thomas Ball Microsoft Research

Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

Embed Size (px)

Citation preview

Page 1: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

Thomas BallMicrosoft Research

Page 2: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets
Page 3: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

C# 3.0C# 3.0C# 3.0C# 3.0 Visual Visual Basic 9.0Basic 9.0

Visual Visual Basic 9.0Basic 9.0 OthersOthersOthersOthers

.NET Language Integrated Query.NET Language Integrated QueryLINQ LINQ

totoObjeObjectscts

LINQ LINQ toto

ObjeObjectscts

LINQ LINQ toto

DataDataSetsSets

LINQ LINQ toto

DataDataSetsSets

LINQ LINQ toto

SQLSQL

LINQ LINQ toto

SQLSQL

LINQ LINQ toto

EntitEntitiesies

LINQ LINQ toto

EntitEntitiesies

LINQ LINQ toto

XMLXML

LINQ LINQ toto

XMLXML

ObjectsObjects RelationalRelational

<book> <title/> <author/> <year/> <price/></book>

XMLXML

Page 4: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets
Page 5: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets
Page 6: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

• Improvements to the F# research release

April 2008 Microsoft Research

refresh release

• Broadly improved VS 2008 integration• Simplifications in language and libraries

Just ReleasedSeptember 2008

CTP

• Full product-quality release• Fully stable and supported language• Aligned with future VS releases

2009Supported Release

Page 7: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

• On the Web:• http://fsharp.net

• Books:

Page 8: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets
Page 9: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

Contract Library

in .NET 4.0

Contract Library

in .NET 4.0

Coming soon: Tools for contracts at

Page 10: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

string GetDescription(int x);string GetDescription(int x);

/// <param name=“x”>/// should be greater than zero/// </param>/// <returns>/// non-null string/// </returns>string GetDescription(int x);

/// <param name=“x”>/// should be greater than zero/// </param>/// <returns>/// non-null string/// </returns>string GetDescription(int x);

string s = o.GetDescription(i);… s.Length …

string s = o.GetDescription(i);… s.Length …

Page 11: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

string GetDescription(int x) { Contract.Requires( 0 < x ); Contract.Ensures( Contract.Result<string>() != null ); …}

string GetDescription(int x) { Contract.Requires( 0 < x ); Contract.Ensures( Contract.Result<string>() != null ); …}

Design-by-Contract meets .NET!

Design-by-Contract meets .NET!

Page 12: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

class Rational {

public Rational(int n, int d) { Contract.Requires( 0 < d ); this.N = n; this.D = d; }}

DocumentatiDocumentationon

Runtime Runtime CheckingCheckingRuntime Runtime CheckingChecking

Static Static CheckingChecking

Static Static CheckingChecking

Test Test GenerationGeneration

((PexPex))

Test Test GenerationGeneration

((PexPex))

Page 13: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets
Page 14: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

Greater developer productivity

More reliable code

More precise downstream analysis

Page 15: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

End-to-end integrated solutionLanguagesLibraries, frameworks, middlewareTools (testing, debugging, performance, etc.)Planning/managementTracking (features, schedule, bugs)Group coordinationDeployment, monitoring, update, etc.

Page 16: Thomas Ball Microsoft Research. C# 3.0C# 3.0 Visual Basic 9.0Visual Basic 9.0 OthersOthers.NET Language Integrated Query LINQ to Objects LINQ to DataSets

Microsoft Visual Studio Team System 2008 is an integrated Application Life-cycle Management (ALM) solution comprising tools, processes, and guidance to help everyone on the team improve their skills and work more effectively together. Visual Studio Team System enables members of your team to:

Collaborate and communicate more effectively with other team members and business stakeholders. Ensure software quality using advanced quality tools at every step of the application life cycle. Gain visibility into project activity and priorities to make informed decisions based on real-time data.

In addition, over 200 Visual Studio Industry Partners offer products to support a broad range of software processes, tools, and platforms.