Daryl Zuniga - Viewing Code Contracts.NET in Visual Studio

Download this episode

Download Video

Description

Daryl Zuniga gives a fast and furious demo of the new editor extensions for Code Contracts.NET. When a developer overrides a method with Contracts, the rewritter would automatically insert the pre-conditions and post-conditions in the method body. Unfortunately, the editor is not aware of that - leaving the developer confused... Not anymore, Daryl's extension mines the Contracts on the fly and hosts them in the shiny new WPF editor of Visual Studio 2010.

The Research in Software Engineering team (RiSE) coordinates Microsoft's research in Software Engineering in Redmond, USA.

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image
      RobertAMc​Carter

      This is great (and so is design-by-contract)! Thanks Daryl.

      Will this be included in VS2010 or will it be a seprate extension?

       

    • User profile image
      wkempf

      How does this handle contracts in the "if-then-throw" form?

    • User profile image
      aL_

      interesting Smiley did we just get a sneak preview of intellisense in b2 or was that some custom addon btw? :O

    • User profile image
      peli

      The intellisense is some sample that Daryl installed on his machine.

    • User profile image
      sokhaty

      I wonder if it is or someday would be possible to interrogate a method about its contracts at runtime, so the caller could ensure compliance before actually invoking the method? E.g. before sending big batch of data over the wire for pre-processing and loading into a database in one transaction, I get an abstract code tree from the transformation service that represents all or at least some of the checks and run them locally and perform corrective actions proactively.

    • User profile image
      mbarnett

      This will be a separate download that will be part of the Code Contracts installation. We hope to get it out in the next release, but we'll have to see if it is ready or not.

    • User profile image
      mbarnett

      This is something we've talked about, but haven't started work on. It might even be that a component could register its contracts with a component framework so that if there's a failure, the framework could check the contracts and assign blame properly. (Not as good as your idea of proactively preventing the problem, but another use of the same facility.)

    • User profile image
      sokhaty

      Thanks Mike. It sounds like registering contracts with the framework would be the core enabling technology for proper blame assignment and proactive failure prevention. It almost can be read as you guys are planning start working on that Smiley

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.