Welcome!

Microsoft Cloud Authors: Janakiram MSV, Pat Romanski, Steven Mandel, John Basso, Liz McMillan

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
DevOps at Cloud Expo, taking place Nov 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 19th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long dev...
Is the ongoing quest for agility in the data center forcing you to evaluate how to be a part of infrastructure automation efforts? As organizations evolve toward bimodal IT operations, they are embracing new service delivery models and leveraging virtualization to increase infrastructure agility. Therefore, the network must evolve in parallel to become equally agile. Read this essential piece of Gartner research for recommendations on achieving greater agility.
Personalization has long been the holy grail of marketing. Simply stated, communicate the most relevant offer to the right person and you will increase sales. To achieve this, you must understand the individual. Consequently, digital marketers developed many ways to gather and leverage customer information to deliver targeted experiences. In his session at @ThingsExpo, Lou Casal, Founder and Principal Consultant at Practicala, discussed how the Internet of Things (IoT) has accelerated our abil...
SYS-CON Events announced today that 910Telecom will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Housed in the classic Denver Gas & Electric Building, 910 15th St., 910Telecom is a carrier-neutral telecom hotel located in the heart of Denver. Adjacent to CenturyLink, AT&T, and Denver Main, 910Telecom offers connectivity to all major carriers, Internet service providers, Internet backbones and ...
With so much going on in this space you could be forgiven for thinking you were always working with yesterday’s technologies. So much change, so quickly. What do you do if you have to build a solution from the ground up that is expected to live in the field for at least 5-10 years? This is the challenge we faced when we looked to refresh our existing 10-year-old custom hardware stack to measure the fullness of trash cans and compactors.
The emerging Internet of Everything creates tremendous new opportunities for customer engagement and business model innovation. However, enterprises must overcome a number of critical challenges to bring these new solutions to market. In his session at @ThingsExpo, Michael Martin, CTO/CIO at nfrastructure, outlined these key challenges and recommended approaches for overcoming them to achieve speed and agility in the design, development and implementation of Internet of Everything solutions wi...
19th Cloud Expo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Meanwhile, 94% of enterpri...
Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more business becomes digital the more stakeholders are interested in this data including how it relates to business. Some of these people have never used a monitoring tool before. They have a question on their mind like “How is my application doing” but no id...
Pulzze Systems was happy to participate in such a premier event and thankful to be receiving the winning investment and global network support from G-Startup Worldwide. It is an exciting time for Pulzze to showcase the effectiveness of innovative technologies and enable them to make the world smarter and better. The reputable contest is held to identify promising startups around the globe that are assured to change the world through their innovative products and disruptive technologies. There w...
SYS-CON Events announced today Telecom Reseller has been named “Media Sponsor” of SYS-CON's 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
SYS-CON Events announced today that Venafi, the Immune System for the Internet™ and the leading provider of Next Generation Trust Protection, will exhibit at @DevOpsSummit at 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Venafi is the Immune System for the Internet™ that protects the foundation of all cybersecurity – cryptographic keys and digital certificates – so they can’t be misused by bad guys in attacks...
Smart Cities are here to stay, but for their promise to be delivered, the data they produce must not be put in new siloes. In his session at @ThingsExpo, Mathias Herberts, Co-founder and CTO of Cityzen Data, will deep dive into best practices that will ensure a successful smart city journey.
The 19th International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Digital Transformation, Microservices 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 business opportuni...
In today's uber-connected, consumer-centric, cloud-enabled, insights-driven, multi-device, global world, the focus of solutions has shifted from the product that is sold to the person who is buying the product or service. Enterprises have rebranded their business around the consumers of their products. The buyer is the person and the focus is not on the offering. The person is connected through multiple devices, wearables, at home, on the road, and in multiple locations, sometimes simultaneously...
Internet of @ThingsExpo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 19th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devices - comp...
For basic one-to-one voice or video calling solutions, WebRTC has proven to be a very powerful technology. Although WebRTC’s core functionality is to provide secure, real-time p2p media streaming, leveraging native platform features and server-side components brings up new communication capabilities for web and native mobile applications, allowing for advanced multi-user use cases such as video broadcasting, conferencing, and media recording.
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, will discuss the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
Amazon has gradually rolled out parts of its IoT offerings in the last year, but these are just the tip of the iceberg. In addition to optimizing their back-end AWS offerings, Amazon is laying the ground work to be a major force in IoT – especially in the connected home and office. Amazon is extending its reach by building on its dominant Cloud IoT platform, its Dash Button strategy, recently announced Replenishment Services, the Echo/Alexa voice recognition control platform, the 6-7 strategic...
Akana has announced the availability of version 8 of its API Management solution. The Akana Platform provides an end-to-end API Management solution for designing, implementing, securing, managing, monitoring, and publishing APIs. It is available as a SaaS platform, on-premises, and as a hybrid deployment. Version 8 introduces a lot of new functionality, all aimed at offering customers the richest API Management capabilities in a way that is easier than ever for API and app developers to use.
Cloud computing is being adopted in one form or another by 94% of enterprises today. Tens of billions of new devices are being connected to The Internet of Things. And Big Data is driving this bus. An exponential increase is expected in the amount of information being processed, managed, analyzed, and acted upon by enterprise IT. This amazing is not part of some distant future - it is happening today. One report shows a 650% increase in enterprise data by 2020. Other estimates are even higher....