Welcome!

Microsoft Cloud Authors: Andreas Grabner, Stackify Blog, Liz McMillan, David H Deans, Automic Blog

Related Topics: Microsoft Cloud, @CloudExpo

Microsoft Cloud: Blog Feed Post

Code Contracts in .NET Help Distributed Software Development Teams

The notion of design-by-contract programming has been around for quite a while

Microsoft’s Research in Software Engineering (RiSE) team is on to something.  Luckily, for developers around the world, they have released it to the public.  I’m talking about Code Contracts in Microsoft .NET.  Code Contracts are very useful under any circumstance; however, they are particularly useful in helping distributed software development teams increase team efficiency, improve product quality, and mitigate against risks associated with team dispersion.

The notion of design-by-contract programming has been around for quite a while.  In fact, Bertrand Meyer (founder of Eiffel) was writing about the trade marked Design by Contract approach as early as 1992.  Design-by-contract programming, according to Meyer, is a fundamental but often overlooked tenant of object oriented programming.  The addition of design-by-contract programming into the .NET framework provides a mechanism by which all .NET languages can benefit from increased reliability.

Code

Distributed software development teams will find Code Contracts particularly useful.  Distributed teams deal with the same issues as non-distributed teams.  In addition; however, the distributed team must manage through issues related to communication, location, and sometimes culture.  Development assignments, in the distributed team scenario, are often partitioned along horizontal or vertical boundaries.  Parallel implementation typically requires up-front design and agreement upon the application interfaces.  This allows the team members, or sub-teams, to code independently of one another.  This approach requires a fair amount of blind trust that the various parts of the application will function as designed.  Code Contracts eliminate the need for blind trust.

Consumers of internal and external APIs that include Code Contracts will know that all of the contract-defined pre- and post-conditions have been met.  This will not only engender trust in current development efforts, it will support the promotion of code/object/service re-use during future development efforts.

Additionally, code contracts:

  • Make the product stabilization process more efficient by weeding out potential run-time errors at compile time.  In a distributed team, this reduces the probability that one group wastes time unknowingly debugging errors introduced by a remote group.  Additionally, it helps reduce the vicious cycle of compile-deploy-test-debug-compile-deploy-test; which can be very time consuming and, thus, expensive.
  • Enhance the continuous integration process by leveraging contracts to generate more meaningful unit tests.  Improved testing and the guarantee that preconditions and postconditions have been met combine to produce more robust, higher quality software.
  • Empower the software architects with additional tools that allow them to programmatically constrain developers.  This is quite useful when managing offshore teams.  In this scenario, the design-by-contract approach can help reduce documentation-derived management overhead and increase quality and reliability at the same time.

The announcement of .NET Code Contracts was a pleasant surprise, as it represents a maturity milestone for the Microsoft .NET platform.  I look forward to adopting it because it gives my software architects another tool that can be leveraged to enforce the architectural fidelity of our products.

Code Contracts can be downloaded for use with Visual Studio 2008 Team System.  The Code Contracts library will be included as a native namespace in the .NET Frameworks 4.0 release.  Mike Barnett provides a great Code Contract tutorial on channel9.msdn.com.

Photo credit David Reeves, El Fotopakismo.

More Stories By Walter Pinson

Walter Pinson is the Chief Software Architect at SMBLive; whose IAmFound social marketing platform helps SMBs (small and medium-sized businesses) get discovered online and generate inbound sales leads. In his role as CSA, Walter manages a globally distributed product development group and has SaaS products deployed at major telecommunications channel partners in the US, UK, Switzerland, Canada, and Mexico. Additionally, Walter is a co-founder and principal of Pinson3 Systems; a boutique software engineering concern serving the intelligence and defense sectors with solutions ranging from enterprise web-based multi-modal biometric analysis systems to information warfare training systems. Prior to his role at SMBLive and founding Pinson3 Systems, Walter was a Senior Strategy Consultant with Microsoft focused on SaaS, SOA, and .NET adoption in the telecommunications sector. Walter has published articles for Cloud Computing Journal, is a member of ACM and IEEE, and currently has one patent pending. He holds a bachelor's degree in computer science from The Volgenau School of Information Technology and Engineering at George Mason University, where he focused on distributed and parallel computing. Walter is currently working on his MBA at the GMU School of Management.

@ThingsExpo Stories
Existing Big Data solutions are mainly focused on the discovery and analysis of data. The solutions are scalable and highly available but tedious when swapping in and swapping out occurs in disarray and thrashing takes place. The resolution for thrashing through machine learning algorithms and support nomenclature is through simple techniques. Organizations that have been collecting large customer data are increasingly seeing the need to use the data for swapping in and out and thrashing occurs ...
DevOps at Cloud Expo – being held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real r...
Detecting internal user threats in the Big Data eco-system is challenging and cumbersome. Many organizations monitor internal usage of the Big Data eco-system using a set of alerts. This is not a scalable process given the increase in the number of alerts with the accelerating growth in data volume and user base. Organizations are increasingly leveraging machine learning to monitor only those data elements that are sensitive and critical, autonomously establish monitoring policies, and to detect...
SYS-CON Events announced today that CollabNet, a global leader in enterprise software development, release automation and DevOps solutions, will be a Bronze Sponsor of SYS-CON's 20th International Cloud Expo®, taking place from June 6-8, 2017, at the Javits Center in New York City, NY. CollabNet offers a broad range of solutions with the mission of helping modern organizations deliver quality software at speed. The company’s latest innovation, the DevOps Lifecycle Manager (DLM), supports Value S...
SYS-CON Events announced today that A&I Solutions named "Bronze Sponsor" of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded over 15 years ago in 1999, A&I Solutions continues to provide companies with premier integrated enterprise solutions. By partnering with the trusted and proven solutions of leading technology companies, our customers are assured high performance levels across all IT environments including:...
SYS-CON Events announced today that Progress, a global leader in application development, has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Enterprises today are rapidly adopting the cloud, while continuing to retain business-critical/sensitive data inside the firewall. This is creating two separate data silos – one inside the firewall and the other outside the firewall. Cloud ISVs ofte...
SYS-CON Events announced today that Loom Systems will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded in 2015, Loom Systems delivers an advanced AI solution to predict and prevent problems in the digital business. Loom stands alone in the industry as an AI analysis platform requiring no prior math knowledge from operators, leveraging the existing staff to succeed in the digital era. With offices in S...
SYS-CON Events announced today that Enzu will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Enzu’s mission is to be the leading provider of enterprise cloud solutions worldwide. Enzu enables online businesses to use its IT infrastructure to their competitive ad...
The 21st International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Digital Transformation, Machine Learning and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding busin...
SYS-CON Events announced today that delaPlex will exhibit at SYS-CON's @CloudExpo, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. delaPlex pioneered Software Development as a Service (SDaaS), which provides scalable resources to build, test, and deploy software. It’s a fast and more reliable way to develop a new product or expand your in-house team.
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm.
SYS-CON Events announced today that T-Mobile will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. As America's Un-carrier, T-Mobile US, Inc., is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to 67.4 million customers who are unwilling to compromise on ...
SYS-CON Events announced today that SoftLayer, an IBM Company, has been named “Gold Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. SoftLayer, an IBM Company, provides cloud infrastructure as a service from a growing number of data centers and network points of presence around the world. SoftLayer’s customers range from Web startups to global enterprises.
Five years ago development was seen as a dead-end career, now it’s anything but – with an explosion in mobile and IoT initiatives increasing the demand for skilled engineers. But apart from having a ready supply of great coders, what constitutes true ‘DevOps Royalty’? It’ll be the ability to craft resilient architectures, supportability, security everywhere across the software lifecycle. In his keynote at @DevOpsSummit at 20th Cloud Expo, Jeffrey Scheaffer, GM and SVP, Continuous Delivery Busine...
SYS-CON Events announced today that Peak 10, Inc., a national IT infrastructure and cloud services provider, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Peak 10 provides reliable, tailored data center and network services, cloud and managed services. Its solutions are designed to scale and adapt to customers’ changing business needs, enabling them to lower costs, improve performance and focus intern...
SYS-CON Events announced today that Linux Academy, the foremost online Linux and cloud training platform and community, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Linux Academy was founded on the belief that providing high-quality, in-depth training should be available at an affordable price. Industry leaders in quality training, provided services, and student certification passes, its goal is to c...
SYS-CON Events announced today that Hitachi Data Systems, a wholly owned subsidiary of Hitachi LTD., will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City. Hitachi Data Systems (HDS) will be featuring the Hitachi Content Platform (HCP) portfolio. This is the industry’s only offering that allows organizations to bring together object storage, file sync and share, cloud storage gateways, and sophisticated search and...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with the 21st International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. @ThingsExpo Silicon Valley Call for Papers is now open.
SYS-CON Events announced today that DivvyCloud will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. DivvyCloud software enables organizations to achieve their cloud computing goals by simplifying and automating security, compliance and cost optimization of public and private cloud infrastructure. Using DivvyCloud, customers can leverage programmatic Bots to identify and remediate common cloud problems in rea...
SYS-CON Events announced today that Tintri, Inc, a leading provider of enterprise cloud infrastructure, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Tintri offers an enterprise cloud platform built with public cloud-like web services and RESTful APIs. Organizations use Tintri all-flash storage with scale-out and automation as a foundation for their own clouds – to build agile development environments...