Continuing our look at the future of C#, we now take a look at Proposal 119. This would add first class compiler and syntax support for method-level contracts.
API Design and description is more than just a technical interface contract between machines. Apiary's Co-Founder and CEO Jakub Nesetril points out that the real consumer of an API description is the developer, with all the concerns of engagement, usability and communication that entails. We spoke with Jakub recently about Apiary's approach to API design and emerging API tools and workflows.
Recently Steve Jones from CapGemini commented on some text in a Nokia API project on github which indicated that designing and documenting APIs for REST based services was no longer required and that HATEOAS was sufficient. Given Steve's previous comments on IT valuing technology over thought, this was something he needed to call out as bad practice.
Code Contracts are making slow progress towards being ready for production use. While the technology still shows a lot of initial promise, it doesn’t take long to run into a road block or six that makes them unusable in their current form.
Christian Weyer of Thinktecture, announced the release of WSCF.blue a Visual Studio Add-in that enables contract first development of web services using WCF.
InfoQ has informed on the availability of Code Contracts for .NET. This time we want to offer more details on using Code Contracts, an important addition to .NET.
Code Contracts is the .NET implementation of the Design by Contract concept. While it was supposed to be delivered with .NET 4.0, Code Contracts is already available for download from DevLabs. Contracts impose certain restrictions on using APIs, making programming safer, having more validations and resulting in fewer unexpected errors during runtime.
Hot in the TDD Yahoo group is a discussion concerning the perceived continuum between the "Classic" and "Mockist" TDD. Steve Freeman, Nat Pryce, Michael Feathers, Dale Emery, and many more discuss terminology and describe their approaches. The discussion also debates whether there even really exists such a continuum, and if so, what distinguishes the approaches that represent it's extremes?
At JAOO '07 Bob Martin asserted: "it is irresponsible for a developer to ship a line of code he has not executed in a unit test." In this InfoQ video, Martin debated with another well respected software thought leader, Jim Coplien, on this and other topics, including Design by Contract vs. TDD and how much up-front architecture is needed to keep a system consistent with the business domain model.
In a new InfoQ article, Dennis Sosnoski questions the conventional wisdom that a contract-first approach to web services development, i.e. starting from WSDL, is superior to starting from code. He shows how the JiBX framework can be used to practice start-from-code development without incurring the disadvantages, specifically without coupling implementation and interface too tightly.
Following up on the debate of REST vs. WS-* discussed here last week, it is interesting to note a debate about "contracts" for RESTful services that has been picking up pace over the last few days.
In an article published on Martin Fowler's web site, Ian Robinson describes a new strategy for evolving contract versions in a community of service providers and consumers.
Arjen Poutsma has posted a step-by-step tutorial on contract-first Web service development.