While working on a new software architecture for my company (the old one was getting a little bit to old :)) I found myself wondering what frameworks and architectures were already out there. And more importantly, which ones the clients that employed my colleagues used.
So, I asked a group of colleagues a series of questions about the tech they used. They are employed in both large and small companies, all of which located in Belgium. The results are documented in this blogpost.
Old habits are hard to break
First things first, old habits seem to die hard. Frameworks and technologies that already exist within a company (accompanied by the knowledge, the infrastructure, etc) are most likely to survive within that company. Good examples are frameworks like nHibernate or Entity Framework, which are the most used ORMs and are not easily replaced by new ones. TFS still easily outranks Git, even though one could argue if the latter is a better choice.
All companies seem to be running a good update plan though. All our consultants work on projects targetting .NET 4 and higher.
Another interesting fact: if they use an IoC Container, all companies use Autofac.
Move to web
Probably not a surprise, but none the less an interesting fact. Almost all companies in Belgium are moving their applications to the web.
These web projects use ASP.NET MVC and Web API as most popular technology stacks. The world of .NET is finally released of the powerful grip WebForms had over it a few years ago.
For all projects running in a windows environment, WPF is used almost exclusively. Most of these projects are combined with some kind of MVVM framework. Which, off course, is a good thing :).
One stack to conquer them all! Or not..
It seems that corporations in Belgium are finally willing to combine the Microsoft Technology Stack with technologies like NPM, Angular, React, Node, Grunt, and WebSockets.
This requires a whole new breed of .NET consultants. A jack of all trades becomes an expert of all trades, combining all these worlds to create one maintainable and robust software solution.
I think this is a remarkable evolution. Yes, software development should always strive to build upon the newest and most advanced technologies out there. But, the market needs time to adjust to these changes. If this evolution moves too quickly, poor knowledge amongst available consultants will automatically result in poor implementations.. If available consultants are found, that is.
Yet, the change in technology is there. And it is on us, the consultants, to change with it.