Fun fact: “dogfood” (one word) has become a verb, at least in the business slang lexicon. “Dogfooding” is synonymous with “eating one’s own dog food,” which in turn refers to a business’s practice of using its own products—the same products it manufactures and sells to its customers—in the conduct of its business. This practice is generally considered a healthy sign for a business—how can you trust a business that uses its competitors’ products? It has a dark flip side, however: “not invented here,” the refusal to use someone else’s technology simply because your business didn’t come up with it, even if your own equivalent technology is inferior or nonexistent.
In any case, Microsoft, at least their Bing.com team, has been dogfooding up a storm. The Bing.com search service, which runs on thousands of servers in data centers around the world, was originally built using the .NET Framework, but has recently made a smooth transition to .NET Core.
.NET Core: A Recap
As we’ve discussed previously in this blog, .NET Core is a subset of the .NET Framework that is intended to support back-end software development—exactly the environment on which Bing.com relies. It’s designed to run on Windows. MacOS, and Linux operating systems. The .NET Core framework hews to the .NET Standard libraries, the set of APIs that are common to all frameworks in the .NET landscape. These design principles make .NET Core a strong player in cross-platform development in general and cloud software development in particular.
.NET Core and Bing.com
What prompted the Bing.com team to make the switch to .NET Core? A Microsoft blog article offers two main reasons:
- Reduced serving latency. Bing’s performance increased dramatically after the transition to .NET Core.
- Pre-compiling capability. .NET Core’s “crossgen” tool enables code to be pre-compiled as a pre-deployment step, simplifying and streamlining the deployment of code to the many servers in the Bing.com landscape.
The performance enhancements were driven in large part by numerous tweaks to various components of the framework. Although each one seems minor on its face, such as the slight speedup of a string comparison method to an incremental performance increase in parsing URLs, these tweaks add up when you consider the thousands of queries Bing.com has to process every second of every day.
Overall, .NET Core gives the Bing.com team greater flexibility by eliminating its reliance on libraries that work only on Windows machines. The Bing.com developers worked closely with the .NET Core team, who appreciated having some real-world feedback. Using .NET Core, Bing.com found it easier to deploy framework updates to its servers, reducing the deployment time to mere days after a .NET Core update.
What It All Means
For those of us who make our livings in part by eating Microsoft’s dog food, it’s good to know that a major Microsoft product has adopted the .NET Core framework as its foundation. And more important, that they’ve seen tangible improvements as a result, in both the product itself and the effort required to develop and maintain it. Given the growing demands placed on the product, and the business need for the product to adapt quickly to evolving customer needs, Bing.com is a natural fit for adopting a cloud-oriented framework such as .NET Core. It would be puzzling and a bit worrisome if they didn’t make the transition to .NET Core—it would imply that perhaps the framework isn’t all it’s cracked up to be, once one really starts using it for developing mission-critical applications.
So on that basis, .NET Core seems to be a solid toolset for building cross-platform, cloud applications, and will only get better as it matures and more APIs are added to the .NET Standard environment. At AndPlus, we’re pleased and excited about the possibilities .NET Core brings to our own work and to the aspirations of our customers. If you have a cloud-based application in mind for your business, we’d like to explore it with you and see if .NET Core is the right technology to power it.