A decade ago, life was good for Microsoft developers. Most companies relied on the Microsoft development stack, combining ASP.NET, .NET, and SQL Server for effective solutions. Occasional hiccups were considered par for the course, and Microsoft reigned supreme. However, this dominance began to waver at the end of the 2000s. The rise of the iPhone and open source projects shifted the landscape, making it necessary to justify the Microsoft stack. This article presents eight arguments for sticking with Microsoft technologies.
Reason #1: .NET’s Enduring Strength
Launched over a decade ago, the .NET Framework boasts a rich feature set and extensive real-world testing. While early versions required combining native and managed code, today’s .NET supports most tasks natively. Even companies like Oracle embraced .NET with fully managed components like ODP.NET. The .NET API is consistent, well-documented, and widely used.
MSDN, StackOverflow, and countless forums and blogs provide a vast knowledge base. In my experience, framework bugs rarely posed insurmountable challenges, thanks to the wealth of shared solutions online. The upcoming 2015 release will introduce the open-source .NET Core, compatible with non-Windows systems.
Reason #2: The Evolution of ASP.NET

Reflecting on the traditional Microsoft web development stack of 10 years ago reveals both enduring elements and those left behind. While the back-end remains largely unchanged, relying on patterns and components like Dependency Injection, Tasks, Linq, EF, and ADO, the front-end ASP.NET has undergone a fundamental transformation. Moving away from the rigid “Microsoft way” of Web Forms, ASP.NET now embraces flexibility, serving as a platform for diverse approaches. This MVC-based framework offers robust authentication, bundling, and routing, seamlessly integrating with non-Microsoft technologies like Bootstrap and AngularJS. ASP.NET sites render beautifully across devices, from phones to desktops, and its Web API capabilities streamline web service creation. Open-sourced for several years, its codebase is accessible on GitHub. ASP.NET has changed, and for the better.
Reason #3: Combining Web API Simplicity with WCF Power

Alan Kay’s quote, “Simple things should be simple; complex things should be possible,” resonates deeply with me. The 2006 release of Windows Communication Foundation (WCF) was anything but simple, overwhelming developers with behaviors, endpoints, and bindings. In response, Microsoft introduced Web API, a user-friendly framework simplifying HTTP web service exposure. With minimal configuration, your API transforms into a secure, industry-standard web service.
For scenarios requiring granular control over API exposure, WCF remains a powerful option. Its extensive configuration options and hooks enable custom data serialization, logging, message interception and routing, peer-to-peer communication, queuing, and much more. Web API and WCF together address a wide range of service needs within the .NET framework, catering to both simplicity and complexity as needed.
Reason #4: SQL Server’s Unwavering Reliability
While front-end and middle-tier technologies have witnessed waves of change, database back-ends have remained relatively untouched. The venerable “SELECT” statement retains its importance. Perhaps this stems from companies viewing data as their core asset, prioritizing its integrity over experimenting with new database technologies.
SQL Server excels as a data custodian, offering a plethora of features for transactions, referential integrity, backups, mirroring, and replication. Its tight integration with the rest of the Microsoft stack sets it apart. Entity Framework, now in its mature version 6, streamlines data access. For demanding computations, .NET Framework integration within SQL Server allows embedding .NET code as stored procedures, functions, or aggregates without compromising performance. Combine this with SQL Server 2014’s in-memory tables, and you have the foundation for blazing-fast real-time solutions unattainable with SQL and traditional tables alone. After years in the field, SQL Server remains my top RDBMS choice.
Reason #5: Embracing Testability
In my corporate IT experience, I encountered numerous software projects that became untouchable black boxes due to the lack of tests. Fear of unintended consequences prevented anyone from modifying the code. In contrast, working with systems supported by thousands of tests was liberating. The ability to confidently assure the business of seamless implementation of changes, even years after release, was invaluable. The Microsoft stack is designed with testability in mind. ASP.NET MVC supports dependency injection, with version 5 incorporating it directly into the framework. Similarly, the middle tier leverages dependency injection to decouple implementation from interfaces, allowing the replacement of production code with mocks during testing. Even SQL Server offers Data Tools with templates for testing stored procedures. Testing is integral to modern software development, and the Microsoft stack is well-equipped to meet this need.
Reason #6: A Robust Support Network

A wide range of support options is essential, from community forums to direct assistance from experts. The online ecosystem for Microsoft products is vast, a testament to the company’s early recognition of developer support as key to its success. Microsoft was among the pioneers in encouraging employees to share their knowledge through blogs. While the industry has caught up, the quality and quantity of instructional videos, guides, and articles directly from Microsoft remain impressive. This wealth of content is supplemented by community-driven platforms like StackOverflow. While content quality may vary, these resources prove invaluable.
Furthermore, direct phone support from Microsoft is always an option. I rarely needed it, but in a few critical production emergencies, having Microsoft developers analyze core dumps was a lifesaver. This range of support options strengthens the case for the Microsoft stack.
Reason #7: Microsoft’s Commitment to Longevity
Choosing Microsoft Silverlight for an application’s front-end seemed reasonable a few years ago, but the landscape has shifted. The rise of mobile and JavaScript frameworks has rendered Silverlight less viable. Despite this, Microsoft continues to support it through 2021. Microsoft’s commitment to its products benefits those making technology choices without perfect foresight. Investing in the Microsoft stack ensures support even if a technology loses favor within the industry.
Reason #8: Visual Studio: The Unified Development Hub

A decade ago, I divided my time equally between Visual Studio and other tools. Today, Visual Studio dominates my workflow. Microsoft’s vision of Visual Studio as a comprehensive IDE host is becoming a reality, with numerous Microsoft and third-party products integrating seamlessly. From database development with SQL Server Data Tools to building iPad and Android applications with Xamarin, Visual Studio provides a familiar and consistent developer experience. This consistency extends to Microsoft Azure, a cloud platform encompassing database hosting, mobile services, and more.
Visual Studio abstracts away the complexities of distributed cloud infrastructure, aligning the development experience for cloud and non-cloud applications. All components harmonize within the Visual Studio ecosystem, enhancing development efficiency.
Microsoft Stack Technologies: Balancing Innovation and Stability
The options for building high-quality software today are far more diverse than a decade ago. Competition compels tech giants like Google, Apple, Amazon, and Microsoft to innovate relentlessly. While Microsoft may not hold the unchallenged dominance it once did, it has adapted to the evolving technology landscape. ASP.NET embraced open-source technologies and methodologies, leaving Web Forms behind. The .NET framework continues to evolve, pushing boundaries with libraries for multi-threading and many-core computing. The upcoming open-source and cross-platform .NET Core signifies a commitment to inclusivity and transparency.
These improvements come from a company renowned for delivering tested, documented, and supported software. Choosing the Microsoft stack offers the excitement of working with modern technologies while benefiting from the stability of a seasoned industry giant. This is why I continue to recommend the Microsoft development stack today.