8 Reasons Why Microsoft Stack Is Still a Viable Choice

Life was great for Microsoft developers 10 years ago. Organizations were perfectly happy to commit 100% to use Microsoft for their development projects. With innovative ASP.NET on the frontend, a solid .NET middle-tier and the dependable SQL Server on the backend, things worked very well for the most part. When things didn’t quite work out, developers just accepted that as something that came with the territory. Microsoft was all but running the show.

Then in the last few years, Microsoft status as the world’s de facto development platform began to unravel. Maybe it was due to the cultural evolution instigated by the iPhone and Microsoft missing the paradigm shift to multi-devices, or maybe it was because of the rapid rise of the open source movement, but things changed, and today those same companies need to be persuaded that going with Microsoft Stack is a good idea.

Nowadays there are far more choices for writing quality software compared to a decade ago. While Microsoft may have been pushed off its pedestal with healthy competition from giants such as Google, Apple, and Oracle, the company has shown that it hasn’t been swept away by the tech evolution of the past decade and is willing to adapt and attune to realities of the current technological trends.

ASP.NET has incorporated other popular technologies and agile methodologies, many of them open source, with the homegrown Web Forms fading into history. The evolving .NET framework continues to break new frontiers with libraries for multi-threading and many-core computing. With the 2015 release of the .NET framework, the core is entirely open-source and completely cross-platform (Linux, Solaris, MacOS etc.) which is a step in the direction of inclusiveness and transparency.

This article presents 8 reasons in favor of sticking with the Microsoft software stack.

1. Microsoft Sticks to their Products

With the mobile revolution already underway and popular JavaScript frameworks dominating the front-end space, using Microsoft Silver light as the front-end for an application is no longer feasible; nevertheless, it’s still supported by Microsoft through 2021. Going with the Microsoft stack ensures that time and money is invested into technology that will be supported even if it falls out of favor with the industry at large.

Coming from a company that has a rich history in releasing tested, documented and supported software, these improvements are welcomed. Investing in the Microsoft stack pairs the excitement of working with modern technologies with the stability of being backed by a software giant with decades of experience in the development industry.

2. .NET is Still One of the Best

Introduced more than 10 years ago, .NET Framework is feature-rich and thoroughly battle-tested. While it was commonplace to have to combine native development with managed code in the early days of .NET, the vast majority of development tasks are supported out of the box today. Even companies such as Oracle released components that are 100 percent .NET managed code (i.e. ODP.NET managed driver) to interface with their products. .NET API is consistent, well documented and used by millions.

The knowledge-base available via MSDN, Stackoverflow and thousands of forums and blogs is massive. In my years of developing in .NET, I cannot recall an instance where I would get stuck for long on a framework bug; each time, someone had already experienced, researched and posted an answer, not always the answer I was hoping for, but still something that moved me forward. With the upcoming 2015 release, .NET Core will be open-source and available on non-Windows systems.

3. ASP.NET Has Evolved

Looking back at the traditional web-to-database Microsoft stack from 10 years ago, it’s interesting to see which parts survived the test of time and which parts faded away. While the back-end of the Microsoft stack remained pretty much unchanged (we still use the same set of patterns and components, such as Dependency Injection, Tasks, Linq, EF or ADO) the front-end, the ASP.NET piece, saw a fundamental shift from “do it the Microsoft way “ (i.e. Web Forms) to “do it your way and use ASP.NET as a platform.” Today, ASP.NET is an MVC-based framework featuring robust infrastructure for authentication, bundling and routing that integrates with many non-Microsoft technologies such as Bootstrap and AngularJS. ASP.NET sites look nice on a wide range of form-factors, from phones to desktops, and its Web API capabilities make exposing web services a breeze. The framework has been open-source for a number of years, so if you get stuck on a problem, the source is available on GitHub. ASP.NET has changed, and changed for the better.

4.  SQL Server Is as Solid as Ever

For many years, it seemed like the tidal wave of new development languages, frameworks and patterns came through the front and middle tiers and spared the database back-end. After all, the good old “SELECT” is still as much in use today as it was 20 years ago. I suppose this is due to the fact that many companies view their data as the core of their business, and keeping the integrity of that core far outweighs the excitement of trying “something new” at the database layer.

SQL Server excels at its primary role of a data keeper with a myriad of features for transactions, referential integrity, backups, mirroring and replication, but what sets SQL Server apart from competition is how well it integrates with the rest of the Microsoft stack. For rapid development, there is the Entity Framework, currently in version 6, passed adolescence and delivering well on its promise of streamlining data access. If you need computing power, the .NET Framework is loaded in-process with SQL Server, meaning you can embed .NET code as stored procedures, functions or aggregates without sacrificing performance. Pair that with the fact that SQL Server 2014 comes with in-memory tables, and you can come up with some pretty slick real-time solutions that could not be made fast enough solely with SQL and regular tables. After years in the industry, SQL Server is still on top of my list of RDBMSs.

5. Visual Studio Umbrella

A decade ago, I was spending about 50 percent of my time working in Visual Studio and about 50 percent in other tools. Today, the split is overwhelmingly in favor of Visual Studio. Microsoft’s vision for Visual Studio to be a one-stop solution for hosting IDEs is coming to fruition with many Microsoft and non-Microsoft products offering some level of integration with Visual Studio. From database development with SQL Server Data Tools to writing iPad and Android apps with Xamarin, Visual Studio provides a familiar developer experience with a consistent user interface. The same can be said about working with Microsoft Azure, a cloud platform encompassing a variety of services from database hosting to mobile services.

Visual Studio obfuscated the complexities of distributed cloud infrastructure making the experience of developing cloud applications consistent with that of developing applications not hosted in the cloud. All the pieces seem to fit together nicely under the umbrella of Visual Studio, making the overall development process very efficient.

6. Vibrant Support Ecosystem

It’s always nice to have a range of support options, starting with community forums and ending with an actual live human being working on-site on your server. Microsoft was a pioneer in encouraging their employees to blog about the technology they were working on. While the rest of the industry has certainly caught up, the amount and the quality of instructional videos, guides, and articles coming directly from Microsoft today is quite impressive.

Add to that a large number of community-based support ecosystems such as StackOverflow, which are not as consistent when it comes to content quality, but are, nevertheless, far more helpful than not. By harnessing the power of both proprietary support and the open source community, the online ecosystem for Microsoft products is one of the largest in the industry.

Lastly, there is always an option to pick up the phone and call Microsoft support. Having qualified Microsoft developers can help in a number of production emergencies.

7. Building for Windows Desktop

While all the C++ based GUI toolkits such as MFC and ATL/WTL are off the list, the original .NET UI toolkit WinForms is still considered a viable option along-side WPF. Both support modern concepts such as data binding, async/await, and two-way communication using WCF or SignalR.

The choice between WPF and WinForms involves several considerations:

First is difficulty. WinForms is much easier to understand than WPF, even for senior developers. WinForms uses very simple data binding and prefers a classic MVC or MVP approach. WPF, on the other hand, requires the user to learn a complex data binding framework in order to correctly use the MVVP pattern. Success with WPF also requires knowledge of resource dictionaries, converters, ICommands, and XAML's templating engine.

On the other hand, if you intend to also target Windows Phone or Windows 8 Store you are going to need to learn how to use XAML. In that case, starting with WPF will make it more likely you can share code across platforms.

The flexible rendering engine in WPF also allows for nicer looking applications than can generally be done with WinForms. This comes at a cost; WPF applications often run slower than comparable WinForms applications.

Mentioned in passing is the LightSwitch desktop client. Presumably, this can't offer anything that isn't available in the web client, so there doesn't seem to be much of a reason to choose this.

 Our Trackurstaff Desktop Application an Microsoft Based Product.

8. Client-Server Should be Avoided

When Microsoft says "client-server" they specifically mean applications that directly communicate with the database. Though they acknowledge it is still a very common pattern, they want new projects to use a 3-tier design with a service layer sitting between the client and database. This provides better scalability over direct database access and a way to bypass firewalls and other obstacles. Plus, it allows the application to be ported to platforms where database drivers simply are not available.

Loading