At Unstoppable Software, we try to stay current with software industry trends, but we are aware how easy it is to fall in love with the “new technology stack du jour.” While many new frameworks, libraries, and processes build upon the lessons learned from predecessors, many of them still lack the maturity to handle real-world business scenarios. With that in mind, is the Microsoft stack an appropriate framework on which to hitch our wagon?
The .NET Framework and Microsoft as a company do not get much buzz right now. Sometimes they feel like the old, crumbling giant giving way to the young, disruptive upstarts. Sure, I’ve heard C# .NET called a “legacy language.” You may even hear timidity in someone’s voice when introducing themselves as a “.NET programmer” at a developer conference. So, from a business perspective, why do we use the Microsoft stack to build custom software applications? You’d be surprised at the power that can be extracted from this mature yet evolving framework.
Rapid Application Development on the Microsoft Stack
The number one reason why we use C# .NET as our programming language of choice is because software developers are extremely productive in it. .NET enables Rapid Application Development by including numerous libraries that implement common programming requirements, like automated email delivery, XML parsing, database connectivity, etc. .NET even has many security elements built-in, such as how the MVC Razor View Engine encodes output. All these libraries are versatile, well-tested, and well-documented.
Lastly, C# is not limited to one environment. Instead, if designed the right way, a C# program can be run cross-platform:
- As a thick client on Windows machines
- As a web application rendered in any browser
- As a web plugin if Silverlight is installed
- As a mobile app on Windows Phones or on iPhones and Android with Xamarin
Being able to write the code once but run it in many places reduces the effort needed to support multiple platforms.
Solving the Difficult Problems
When ideas for business software are formed, people are not thinking “we should build an iPhone app so we can leverage the Objective-C programming language.” No, instead they are considering what the software needs to do, as well as how it can be most easily deployed and maintained. The Microsoft stack is a great solution for businesses because it can be used for almost any business need.
- It can support the most modern web browser capabilities with HTML5
- It can enable Rich Internet Application capabilities with Silverlight
- It can integrate with other sources of information using web services
- It can be installed on Windows machines without the extra hassle of installing prerequisites (the .NET Framework is already installed on Windows).
- It can be used in cases where functional programming is beneficial, such as machine learning and business intelligence scenarios.
Let’s face it, Windows is the Operating System of business users and it comprises over 80% of the world’s Internet browsing machines. Since it has been around for a couple decades, businesses often find they are already using Line of Business software in that environment. Likewise, they need new software to interoperate with what they already have. This scenario is where the Microsoft stack wins. Because .NET is native to Windows, it is usually the best choice for connecting to legacy applications already in that environment. At Unstoppable Software, we’ve successfully used this technique to integrate with software packages, such as AutoDesk Inventor, M-Files, and Adobe Illustrator, among others. Similarly, the Microsoft stack is a modern framework that allows for an easy migration path from older technologies, like Classic Active Server Pages (ASP) or Microsoft Access.
It must be noted that while the Microsoft stack is well-suited for Windows applications, it can still be used with many other competitive offerings and technologies:
- Microsoft offers Azure but .NET can run on Amazon Web Services
- Microsoft offers SQL Server but .NET can connect to Oracle or NoSQL databases
- Microsoft includes front-end libraries like jQuery and Bootstrap in its latest development environment, but others like AngularJS or Ember.js can be easily included.
Visual Studio Integrated Development Environment (IDE)
To discuss C# .NET without discussing Visual Studio would be to tell only part of the story. Microsoft Visual Studio is the Integrated Development Environment in which C# programmers work. It includes a text editor and a plethora of productivity-multiplying programming tools. With Visual Studio, otherwise troublesome practices become easy:
- Automated Testing
- Coding Standards Enforcement
The goal of a custom software development project is not to help the programmers learn a new language to stay relevant in the industry nor to support one’s alignment with a computer company’s brand. The goal is ultimately to make or save money.
Simply put, when it comes to custom software solutions, businesses just want something that gets the job done and won’t cause long-term headaches or carve a hole in their pocketbooks. More often than not, we can provide relief and tremendous Return on Investment (ROI) for them by using the Microsoft stack. At the point in time where this stops being true, we will reevaluate, retool, and get back to being unstoppable.