For folks condemned to work in the world of Microsoft, there is usually a lot of complicated technical work to interface various proprietary Microsoft technologies using abstract frameworks on the back end.
What Microsoft is actually good at is linking front and back end. People can pretty much take the mouse, pull an SQL table on a website and have all the CRUD generated for them and it works. The open source / linux world with its strong focus on the separation of concerns and modular architecture is very good for the kind of projects where you want to build with scalability in mind and you don’t mind not getting immediate results.
Microsoft (ASP.NET and many other products) is for a different philosophy or situation. For example you work at a business where the boss figures out it would be good if we would have a central database of ours customer contacts instead of salespeople just keeping business cards of their contacts in their briefcases and phones. But it is not good to put it into the accounting software because that is desktop based and besides you don’t want to buy expensive licences for the salesies. So you volunteer to solve it even though you never even saw ASP.NET, but you watch an 1 hour tutorial, make that one table, pull that on the website, sort out the authentication, and you have an application. Then as the new and new requests keep rolling you keep googling and learning how to do them. In two years you are an expert in ASP.NET and you have a complicated app with 100 tables. (And usually an utter mess and you probably will need to make up a bullshit excuse to be allowed to rewrite clean.)
So… Microsoft is for the cases when you want something immediately useful, and then it will just grow organically out of it, and you learn while doing it. Open source is when you already know how to, you have a project with plans and designs, and you don’t need something immediately useful.
What Microsoft is actually good at is linking front and back end. People can pretty much take the mouse, pull an SQL table on a website and have all the CRUD generated for them and it works. The open source / linux world with its strong focus on the separation of concerns and modular architecture is very good for the kind of projects where you want to build with scalability in mind and you don’t mind not getting immediate results.
Microsoft (ASP.NET and many other products) is for a different philosophy or situation. For example you work at a business where the boss figures out it would be good if we would have a central database of ours customer contacts instead of salespeople just keeping business cards of their contacts in their briefcases and phones. But it is not good to put it into the accounting software because that is desktop based and besides you don’t want to buy expensive licences for the salesies. So you volunteer to solve it even though you never even saw ASP.NET, but you watch an 1 hour tutorial, make that one table, pull that on the website, sort out the authentication, and you have an application. Then as the new and new requests keep rolling you keep googling and learning how to do them. In two years you are an expert in ASP.NET and you have a complicated app with 100 tables. (And usually an utter mess and you probably will need to make up a bullshit excuse to be allowed to rewrite clean.)
So… Microsoft is for the cases when you want something immediately useful, and then it will just grow organically out of it, and you learn while doing it. Open source is when you already know how to, you have a project with plans and designs, and you don’t need something immediately useful.