Am I a Fanboy?
{EAV:435579fc06d84e62}
It’s pretty obvious that I like Microsoft products. A lot. I have an Xbox, Windows Phone, and AT&T U-Verse (running Microsoft Media Room). My platform of choice for technology is Microsoft (Windows, SQL Server, Hyper-V, Azure, .NET, Visual Studio, Systems Center, etc.). I am so quick to jump on an attack of Microsoft products that you would think the person was insulting my mom.
From all outside appearances it would seem that yes I am a fanboy. And I will go on record and admit right here that indeed I am. But there’s a reason. Microsoft specializes in making what’s normally difficult in technology easy. Case in point let’s look at Novell Netware. Novell was the king of the Network OS space in the early 90s. Entering the world of Network Administration in 96 meant that I needed to learn Netware…period. And learn it I did. Netware was powerful. You could do a lot with it. Once you learned HOW to do it. 96 was also the year that Microsoft introduced Windows NT 4. And it was the dawn of destruction for Netware. NT4 had a wizard for everything and it was obvious what any given setting would do. It was the release of Windows Server 2000 and Active Directory (Microsoft’s equivalent of Novel Directory Services) that put the nail in the coffin of Netware. Having had experienced the difficulty of installing and configuring NDS I was amazed at how easy Active Directory was to configure.
We geeks pride ourselves on becoming masters over what many fear. And there is a tendency to look down our noses at those who use tools to accomplish what can be done by hand.
- “I never use an HTML designer, I write it by hand.”
- “Visual Debuggers make programmers lazy.”
- “Why do I need a GUI to do the same thing I can do by command prompt.”
All of these arguments basically boil down to “I learned how to do this task the hard way, and so should you.” I do agree to an extent…everyone should learn how to do things manually for those occasions when the tool messes stuff up. But why use a scrub-board when there’s a perfectly fine washing machine right there? The reason I like Microsoft’s products is that they simplify difficult tasks so that you can be more productive. From a programming stand point what does that mean? Here are a few examples:
- Instead of mapping objects to a database by hand, I can use EF to do it for me. On the flip side, I still need to understand how it works so that when an error pops up (why isn’t this object that inherits from an abstract class getting mapped to my database) I know how to fix it. For 80% of the scenarios, it just works. For those final 20%, a solid foundation in database design is necessary.
- WCF RIA services lets me pretend that there isn’t a “cloud” between my rich client and my database. Again 80% of the time it will just work. The other 20%, understanding how WCF works, and good SOA design (because there IS a cloud between your rich client and database after all) is helpful.
- Just this week, having never configured a firewall more complex than what comes on my wireless router, I successfully installed Forefront Threat Management Gateway in a 3 Legged Network Configuration, and used it to publish a Remote Desktop Gateway from my internal network. Now I can connect to any machine on my network over RDP without having to VPN in first. (Oh yeah I got the VPN working as well for those times when the Gateway is overloaded.)
These are just a few examples of how Microsoft gets it right. Yes I can take the effort of building my own service framework that exposes my rich server-side model over the web to my Silverlight Client, but that is a detail which doesn’t add value to the product. The sooner you get to solving your customer’s problems the better. Microsoft has excelled at providing solutions that allow me to do just that.