SDP 2011—Wrapping Up and Session Materials

Monday, March 21, 2011

It’s been a busy couple of months! The SELA Developer Practice, SELA’s annual conference for .NET developers, has taken place on March 13-16 in SELA’s offices and the Crowne Plaza hotel in Tel-Aviv. Dear conference attendees: thanks for being there! I personally appreciate your coming to the sessions, mingling with the speakers, telling us your pain points and participating in active discussions. I hope to see you again next year, and if there’s any feedback you have or tips for us to improve the conference, please feel free to use the comments or the contact form. I...
no comments

PDC 2009 Day 1: Code Contracts and Pex: Power Charge Your Assertions and Unit Tests

Wednesday, November 18, 2009

Code Contracts are a mechanism coming out of incubation at Microsoft Research for expressing design intent when implementing an API. The idea is to specify assertions that are verified at runtime to ensure that callers provide proper information to your methods. There are ways to specify contractual information on methods – Contract.Requires and Contract.Ensures, and there are also interface contracts (for any implementation of the interface) and object invariants. Finally, there are automatic tools that perform runtime checking and static checking and even generate documentation from contracts! (It’s embedded in the XML documentation and Sandcastle can be used to...

PDC Day 3: What’s Coming in CLR 4.0 (Part 2)

Thursday, October 30, 2008

In part 1 we looked at CLR side-by-side support for multiple versions, at interoperability-related features and at DLR-related changes in the CLR. There have been various complaints about performance aspects of the CLR that are sometimes neglected - the installation experience, the startup experience and the GC latency experience for high-performance applications.  This feedback will be addressed in CLR 4.0: The .NET installer can be branded and customized, and begins with a 200K bootstrapper.  Downloading, installing and NGEN-ing the framework all occur in parallel, enabling a faster setup experience with less clicks to install. Startup improvements (around cold...

Exposing Custom Performance Counters in .NET

Saturday, July 19, 2008

One of the first things I do as part of the .NET Performance course is demonstrating some of the ways we have for measuring the performance of individual applications and of the system as a whole. As part of that quest, we encounter tools that require no ad-hoc participation on our part: Fire them up, give them an executable or a process to do their magic, and analyze the results.  Some other tools need more love and care on our part to produce anything remotely useful. A profiler can tell you that you're spending 90% of the time in...

Interception and Attributes: A Design-By-Contract Sample

Saturday, February 23, 2008

A Design-By-Contract programming paradigm specifies that classes and methods in the language specify pre- and post-conditions which must hold when entering and leaving the class code.  For example, the following Eiffel snippet is a counter class which can be incremented, decremented and reset to 0.  Note the ensure, require and invariant clauses sprinkled across the definition: class TINY COUNTER feature item: INT feature increment is do item = item + 1 ...