I would start with better languages from microsoft research
Download
1 / 16

I would start with Better Languages from Microsoft (Research) - PowerPoint PPT Presentation


  • 58 Views
  • Uploaded on

I would start with Better Languages from Microsoft (Research). Thomas Ball Microsoft Research. LINQ: Language Integrated Query .NET technology that bridges the gap between programming languages and data 101 LINQ examples http:// msdn.microsoft.com/en-us/aa336746.aspx

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' I would start with Better Languages from Microsoft (Research)' - oneida


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
I would start with better languages from microsoft research

I would start withBetter Languages from Microsoft (Research)

Thomas Ball

Microsoft Research


  • LINQ: Language Integrated Query

    • .NET technology that bridges the gap between programming languages and data

    • 101 LINQ examples

    • http://msdn.microsoft.com/en-us/aa336746.aspx

    • Based on ideas from Comega experimental language from MSR


The linq project

<book>

<title/>

<author/>

<year/>

<price/>

</book>

Relational

Objects

XML

The LINQ Project

.NET Language Integrated Query

C# 3.0

Visual Basic 9.0

Others

LINQ toObjects

LINQ toDataSets

LINQ toSQL

LINQ toEntities

LINQ toXML


F#

Declarative

let f x = x * x

Concurrent

async { … }

type Foo() = …

OO on .NET


F roadmap

April 2008

Microsoft Research refresh release

F# Roadmap

  • Improvements to the F# research release

Just Released

September 2008 CTP

  • Broadly improved VS 2008 integration

  • Simplifications in language and libraries

2009

Supported Release

  • Full product-quality release

  • Fully stable and supported language

  • Aligned with future VS releases


F resources
F# Resources

  • On the Web:

    • http://fsharp.net

  • Books:


Code contracts for net

Contract Library in .NET 4.0

announcing

Code Contracts for .NET

Coming soon: Tools for contracts at


How do you know what it does
How Do You Know What It Does?

string s = o.GetDescription(i);

… s.Length …

stringGetDescription(int x);

/// <param name=“x”>

/// should be greater than zero

/// </param>

/// <returns>

/// non-null string

/// </returns>

stringGetDescription(int x);


Let s fix it for once and all
Let’s Fix It For Once And All!

Design-by-Contract

meets .NET!

stringGetDescription(int x) {

Contract.Requires( 0 < x );

Contract.Ensures(Contract.Result<string>() != null );

}


What can i do with contracts
What Can I Do With Contracts?

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

Static Checking

Runtime Checking

Test Generation

(Pex)

Documentation


What contracts can i write
What Contracts Can I Write?

  • Requires

    • What must be true at method entry

  • Ensures

    • What must be true at method exit

  • Invariants

    • What must be true at all method exits

  • Assertions

    • What must be true at a particular point

  • Assumptions

    • What should be true at a particular point


Better languages
Better Languages

  • Greater developer productivity

  • More reliable code

  • More precise downstream analysis


What people want
What People Want

  • End-to-end integrated solution

    • Languages

    • Libraries, frameworks, middleware

    • Tools (testing, debugging, performance, etc.)

    • Planning/management

    • Tracking (features, schedule, bugs)

    • Group coordination

    • Deployment, monitoring, update, etc.


Visual studio team system 2008
Visual Studio Team System 2008

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


ad