Until recently, committed to carrying the banner of Microsoft. NET. He praised Silverlight, ASP.NET MVC and believed in miracles. Over the four years c .NET has become a certified developer on a wide range
Technologies: ASP.NET, WCF, WPF, ADO.NET. However, during the year of existence of its own Internet agency, he became disillusioned with the chosen path and turned to another faith.
In the series “Big switch or life after Microsoft”, I will tell you about the experience that our team gained when moving from the Windows + .NET web technologies stack to Linux + Ruby on Rails, and also give specific instructions for use that will help you at first.
I will start with 3 reasons that prompted us to say .NET'y no.
1. Dependency

')
Working with .NET products makes you addicted. Dependence on paid software and an infinite number of paid components, starting from a graphical interface and ending with the banal collection of mail using the IMAP protocol.
You spend the lion's share of time studying licenses and prices to find the right configuration. You have to put up with the fact that remote desktop does not support two connections, and the dns server is not included in windows web server 2008.
If you want to scale your decisions only at the cost of buying or renting hardware, then .NET is not for you.
2. Closeness
The extra time and resources spent on dealing with licenses is only half the trouble, much more terrible is the closeness of the .NET technology and its community.
Choosing a paid library, you, as a rule, are guided not by quality, but by the advertising slogan written on the site.
The quality of an open source product can be assessed based on more significant factors:
- Coverage tests.
- The frequency of updates.
- The number of downloads.
- The number and identity of the developers.
By working with open source technologies, you can directly influence development. People who develop the product are publicly known and you can easily make direct contact with them. The problem that has arisen can be solved independently, and the decision should be sent to the court for developers and other members of the community.
In the end, open source products are updated much more often, they take into account the greater needs of developers, and their functionality is ahead of the closed solution a few steps ahead.
It is worth noting that Microsoft began to take steps towards open source. However, so far this can only be called a stride, since in reality only the sections corresponding to a specific beta or release are laid out. As a result, the community is still indifferent to the life of the product and with the saliva at the mouth is waiting for the next release. For the sake of persuasiveness, I’ll give a log of commits from the ASP.NET MVC project:

3. Microsoft way
Another problem caused by the same closeness is the tradition of Microsoft to do everything in its own way. This is reflected in problems with web standards and approaches to the design of their own products.
Yesterday, Microsoft was building its own JavaScript framework, and the benefit eventually was to implement Jquery. The same can be said about the technology ASP.NET, which for 5 years before the advent of ASP.NET MVC showed its complete failure.
Despite the positive trend set by ASP.NET MVC (a web framework completely duplicating Ruby on Rails, however, devoid of the charms of a dynamic language), Microsoft is still attacking the same rake. So, for example, in the new version, instead of adapting
Haml, they promise us
Razor , which will be "very comfortable" and everyone will be "happy."
A similar trend is observed among ordinary .NET developers. All of them, without exception, write their authentication and authorization frameworks, manually implement session lifecycle management in the database and the list goes on and on. However, such initiative is not always well reflected in the quality of projects.

At one point, we realized that in our projects we spend more than half of the time on refining the flaws of .NET and inventing our own “bicycles”, which has a very negative impact on the timing of development.
After analyzing alternative open solutions, we stopped at the Ruby on Rails framework, which, in our opinion, has a very large and most important professional community (it is rare to find a project without tests).
In subsequent articles in this series, I will show you the advantages of Ruby on Rails over ASP.NET MVC and other Microsoft products with specific examples, and give instructions for a smooth transition to Ruby on Rails for people far from the Linux world and open source technologies.