28 Jan 2009

What the ‘Microsoft’?!

I’ve had about enough of Microsoft and its approach to help small businesses develop application. The .NET platform is FAR FAR from ‘working everywhere’ and being compatible to everything. Let me write down some points to what I mean.

Windows Applications that are developed in Visual Studio.NET by SMBs usually (almost always):

  • Do not work on other machines, even when its .NET. Don’t assume a .NET application will work on every machine. You need an installation of visual studio for each machine you want your application to work on.
  • Do not work with Crystal Reports. It might work “ok” on your computer, but if/when it doesn’t print on someone else’s machine, try to find some support.
  • Stop working when you update windows. Update at your own risk
  • Randomly disconnects from the network or has DNS problems. From the words of my system administrator “its being windows”.
  • Randomly doesn’t connect to the database. See above.
  • Locks up the database with all the open connections. That’s what happens when you distribute fat clients to everyone.
  • Crashes when some windows services mysteriously stop working.
  • Have issues when being deployed and make you click 10 ‘OK’ buttons just to open it. I do not know why, but someone previously decided to have a shared network drive with the .NET files on it, so that we can update one place and everyone goes there to run it (every single time). But try as they might, they still needed to put some config files on each machine.
  • Have a low learning curve which lets idiots make decisions on software architecture which afterwards are too complicated to change.

My personal opinion is that the Microsoft lock-in, is the problem. It starts off with
  1. Oh yes, its so comfy and easy using Excel sheets
  2. Oh.. lets write some functions using my macros
  3. Now lets try some VBA/VB6
  4. Hmm… we need a database… oh.. lets use Access.
  5. (A year goes by….)
  6. Hmm.. we need something more serious, we have more people using our system…. lets call someone and ask what we need…
  7. Salesman: “yes, what you need is first of all 2 Windows servers, one with a domain controller/Active Directory and one with MS SQL database. Then you will need lots of CALs (licenses). If you are already there, you might as well use Exchange too. Then you need 2-3 copies of Visual Studio.NET team edition for your small development team. You know what?.. I think you will need a BizTalk server as well, just to be on the safe side. Oh.. and finally, installation and maintenance fees will come to ££££££££££££££££££!”.
  8. Managing Director *gulp*.

Maybe nowadays this scenario may not be so common and more people would be happy cutting down costs. Perhaps by using MySQL instead of MS SQL. However, then you have interfered with the natural order of the way Microsoft wants things to be.

I don’t know, obviously this is a rant because I’m frustrated about some things. I guess I am glad I decided to do something about it.


  1. Pretty much my experience with .NET apps in the small business world as well. Or just plain .NET apps at all.

  2. Wow. What a great post, assuming of course, that your aim was to prove how little you know about windows and the .net framework.

    Keep up the good work.

  3. @Stu, you are right. I've only been working with windows for 15 years, but clearly its not enough for a person such as yourself.
    Mind telling us which specific parts you disagree with?

  4. Well you started off bad and then got worse...

    You don't need visual studio on each machine, you don't even need vs on a build machine (just the .net sdk)

    You may have been working with windows for 15 years, but, sadly I feel that those 15 years were wasted on you.

    You might want to try posting about things you actually know about.

  5. If your argument is that it "should" work on all machines then its exactly what our vb.net developer tells us: "well, it works on my machine".

    Fact is, we have on and off problems with the applications and very little feedback as to why it happens.

    Here is another story. My wife and I went to buy some contact lenses from a big chain store. The woman sat us down next to one of the terminals there and try to register us on the system. For some reason it didn't work on that machine and her solution to this was to walk over to another terminal and try there to get it to work. She was successful the second time and guess what system they were using? .NET

    Although, I am not saying that it doesn't work 100% of the time, it doesn't work enough for me to write something about it.
    It also doesn't work enough for my company to change the whole platform.