Slaying the 70-536, or How to Become an MCP

There haven’t been a lot of updates to the site lately. That’s because I’ve been studying for the Microsoft 70-536 exam, covering the .NET Framework Fundamentals, which I successfully passed today. This is the gateway exam – pretty much all of the development series starts with the 70-536. I thought I’d share some of my thoughts on the experience, in the spirit of good advice for other developers.

First, the test is tough. You definitely need to study for it, as it covers a breadth of topics. The main focus is security, but also up there in difficulty were interop and serialization. The test questions were all random, but I swear, I got the toughest serialization questions. Know things like the different security models, the encryption algorithms, P/Invoke basics, and do a decent skim over the culture-specific stuff.

The 70-536 book from Microsoft Press is okay, but it alone will likely not get you to pass the test. You need to do the practice exams, then use the results to go in depth in the areas that you’re deficient in. The practice test questions, like the rest of the book, contain their fair share of errors.

Don’t give up free points on dumb questions. Know the ranges of data types, and know which are floating point. Know your collections – those are all easy points on the test, and it takes a small amount of time to brush up on them.

I noticed that sometimes (though not often as I’d have liked) there were two answers that were exactly the same. That’s due to the differences between C# and VB.NET (and C++, but I doubt many people take the test in C++) – the answers are likely different in the other languages, but you only see the code samples for your preferred language. If you see this, neither answer can be correct, so toss them both out by default.

One of the most popular question formats would be to present four nearly identical small code segments, but to have a single variance at two distinct places in the segment. This is so there are four choices for answers when all possible answer combinations are used. If the question you’re reading does this and you can knock out one variable as being the wrong call or incorrect syntax or whatever, you’re so much better off since you can drop two choices quickly.

Okay, that’s about all the knowledge I can drop without giving away something I shouldn’t. Michael Christensen put up some bookmarks that I found helpful. I would suggest against paying for sample tests if you can help it – the exam fee and book are enough cost as it is. Good luck on passing!

Windows 7? Isn’t it Windows 9?

Here’s a little detail to nit-pick: Windows 7 shouldn’t be the 7th version of Windows, unless you’re doing some funky math. Let’s recap.

The last numbered version of desktop Windows was 3.1 (Windows for Workgroups), which preceded Windows 95. That would make Windows 95 effectively Windows 4. Now, after that, Microsoft released Windows 98, then ME, XP, and Vista. If each of these major releases were counted, that would Make Windows 7 actually be Windows 9 by my count. That’s not to count any of the server OS’s that Microsoft makes, either!

Getting it down to Windows 9 down to Windows 7 takes some consolidation. I would suspect that Microsoft doesn’t really want to remember the disaster that is Windows ME, so it goes. The other likely suspect that they’re not counting is, by my bet, Vista. Of course, it’s probably all just marketing – people like 7 better than 8 or 9! – than anything else, but speculation is fun…

jQuery and Visual Studio

Did you get the chance to read that Visual Studio will be shipping with jQuery support included in the future? This news just made my day, more or less. If you aren’t in the know, jQuery is a really well developed JavaScript framework library. It includes support for things like making AJAX requests, easy DOM manipulation, and effects. There are a significant amount of controls written on top of jQuery that provide rich web experiences, and are as simple to use as integrating a plugin and adding markup to your HTML. The best part is that the use of a JavaScript framework has huge beneficial aspects on your cross-browser capabilities – all the framework methods are more or less guaranteed to work on everything from IE6 to Chrome!

Visual Studio ships with ASP.NET AJAX, which is kind of like the Microsoft bastardized attempt at a JavaScript framework. It’s been lagging behind jQuery and most other modern JavaScript frameworks since it’s introduction. Now, with full jQuery support, including intellisense, there’s little reason to have to use ASP.NET AJAX, in my opinion.

The one unfortunate aspect of official jQuery support in Visual Studio is that there are a lot of other competing frameworks, many of which are on par with jQuery, but whose market share will inevitably erode. Either way, a choice had to be made in this regard, and the right one was, in my opinion.

JavaScript can provide such a rich user experience nowadays that it rivals Flash/Air and Silverlight in many areas. It’s also getting faster (on a daily basis, seemingly), which bodes well for it’s future. If you haven’t checked out jQuery up to this point, it’s well worth a minute of your time.

Windows Vista is the New Windows ME

I’ve been thinking a lot about exactly where Microsoft has put their operating system lately. It’s obvious to everyone other than pure MS loyalists and apologists that there has been a lot of useless junk (amongst a few hits) coming out of their operating system division. OS development is arguably the core of Microsoft – without it, a lot of their other initiatives would fall flat.

Microsoft is definitely good at a few things. Their .NET platform is amazingly easy and productive to program for. Their XBox 360 is a profit leader finally, and a damn good console to boot. They have a lot great software products – I actually prefer Outlook to a lot of alternatives I’ve used in the past, including Lotus Notes, the most overgrown, craptacular product ever. IIS is solid (though I’m not a fan of 7.0 yet), Powerpoint and Visio are startlingly powerful in the right hands, and there’s some potential to Silverlight. They haven’t exactly shaken things up in the media player division, but their Zunes aren’t all that bad. However, then there’s the trainwreck that is Vista.

Almost every major Vista-related news item has something about how the OS was a stumble for Microsoft. Sooner or later, Microsoft is going to start admitting how much of a stumble it is. It took longer to develop than any previous OS, it’s a resource hog, it’s still unstable, and it introduces a load of features that nobody really needs or wants. On top of that, it’s still a security nightmare – one of the many things Vista promised to fix.

I’m going out on a limb now and calling Vista the next iteration of Windows ME. ME is widely regarded as the weakest Microsoft OS of recent memory. After ME, the Microsoft OS division pulled off one of their wisest moves in a long time – they brought their superior NT kernel down to the consumer level to become XP. XP stands as the most positively reviewed Microsoft consumer OS since Windows 95. It’s very stable in it’s current version, it’s not at all a resource hog on current spec machines, and it does all the things an OS needs to without trying to force you to work a certain way.

So, being an opportunist, where does that leave us? It’s not like Microsoft can pull another theft-job from their server division – they’re tapped out. Windows is in obvious need of an overhaul – it’s security model is intrinsically flawed, it can stand to lose a lot of weight, and the type of environment it was built for doesn’t really exist today. Now it’s all about how many cores you can cram onto a chip, instead of how fast you can pump content through a single pipeline.

Why not have it be a time for a rewrite? Why not of just the OS, but the push for a new direction in hardware as well? Wouldn’t it be great if Microsoft said that they intend to have thir next OS be a ground up rewrite focused wholeheartedly on parallel processing through many cores, that was targeted towards solid state memory, and included things like RAID redundancy out of the box? What about targeting a new type of interface, like how the iPhone has revolutionized the phone interface? If they took a stand today, they could get all the hardware in line for three years down the road when they would actually have the product ready.

They once were revolutionaries in the OS field, and they can be yet again. There hasn’t been a better chance in years – building on top of Vista is not a good idea. In the long run, their market share will dry up as their competitors stay ahead of the curve. It’s time for change (haha, election joke!).