Thomas BallMicrosoft Research
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
• 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
Contract Library
in .NET 4.0
Contract Library
in .NET 4.0
Coming soon: Tools for contracts at
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 …
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!
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))
Greater developer productivity
More reliable code
More precise downstream analysis
End-to-end integrated solutionLanguagesLibraries, frameworks, middlewareTools (testing, debugging, performance, etc.)Planning/managementTracking (features, schedule, bugs)Group coordinationDeployment, monitoring, update, etc.
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.
Top Related